File size: 3,548 Bytes
06e4b6f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//! Tecnologia Pensamento — módulos: motor, combinador ridge,
//! quebra-cabeça pós-treino (divisão SRP v0.10.0 — r-35 §2).

//! Tecnologia **Pensamento** v0.5.0 — N-redes neurais flexíveis paralelizadas
//! integradas ao NCM, conectadas ao Mecanismo de Atenção, com raciocínio
//! temporal-estratégico (item d = a + b + c).
//!
//! **O que é (motivação do usuário):** Pensamento é semelhante ao
//! pós-treinamento — N-redes paralelas de tentativas cooperativas para
//! resolver o problema do item c (requisição do usuário) quando a
//! informação tem POUCA CONFIANÇA para gerar novo conhecimento (fora dos
//! padrões comuns), a partir de:
//! - **a)** conhecimento aprendido durante o treinamento;
//! - **b)** estado de inferência corrente;
//! - **c)** a requisição (prompt) do usuário;
//! e da ativação de **difusores** (exploração estocástica) e
//! **combinadores/montadores** (re-encaixe de peças por projeção algébrica).
//!
//! **Ciclo d (raciocínio temporal-estratégico):**
//! `planejamento → construção de etapas e distribuição/desmembramento de
//! competências → volta ao planejamento OU envio da resposta ao usuário`.
//!
//! **Provas (completas em `docs/memorias/r-21-provas-pensamento-v050.md`):**
//! - **T-P1 (gatilho mensurável e causal):** o gatilho
//!   `1{conf(p) < τ_c}` com `conf = 1 − H(p)/log K` é função apenas da
//!   distribuição preditiva CORRENTE — não transporta informação do futuro,
//!   preservando a causalidade (mesma estrutura do gate G1 do NCM).
//! - **T-P2 (tentativas paralelas — auto-consistência):** com N tentativas
//!   independentes, cada uma correta com prob. `p > 1/2`, a votação por
//!   maioria tem `P(erro) ≤ exp(−2N(p−1/2)²)` (Hoeffding); com seleção
//!   best-of-N por verificador exato, `P(sucesso) ≥ 1−(1−p)^N`.
//! - **T-P3 (combinador ótimo):** o montador por mínimos quadrados com
//!   regularização ridge resolve `r* = (WᵀW+εI)^{−1}Wᵀr_alvo` — o resíduo é
//!   o MÍNIMO possível na norma (pseudo-inversa, Teo V-1' do outro agente).
//! - **T-P4 (terminação e soundness do planejador):** o potencial
//!   `Φ(k) = B − k` decresce estritamente a cada iteração do ciclo d ⇒ o
//!   loop termina em ≤ B iterações (indução bem-fundada); a resposta só é
//!   emitida com confiança ≥ τ_c OU com orçamento esgotado (declaração
//!   honesta de queda de confiança na telemetria).
//! - **T-P5 (neutralidade no nascimento na atenção):** com o gate de
//!   atenção das tentativas inicializado em ZERO, a saída da atenção é
//!   bit-a-bit a da atenção base; a perturbação é limitada por
//!   `‖Δy‖ ≤ L·|g|·‖W_k z‖` (Lipschitz com constante L do softmax).
//! - **T-P6 (composição d = a + b + c):** o condicionamento de cada
//!   tentativa é `cond = [a; b; c]` — a estrutura de independência
//!   condicional `p(resposta | a, b, c)` fatoriza pelo estado conjunto; as
//!   tentativas só veem o PASSADO (causalidade preservada).

use candle_core::{Device, Result, Tensor, Var};
use crate::camadas::Linear;
use crate::jepa::MlpJepa;
use crate::rng::RngDeterministico;
use std::collections::HashMap;

// ---- divisão SRP v0.10.0 (r-35 §2): submódulos + re-exports ----
#[cfg(test)]
mod testes;
mod combinador;
mod motor;
mod quebra_cabeca;

pub use combinador::*;
pub use motor::*;
pub use quebra_cabeca::*;

// ---- itens mantidos no próprio mod.rs ----


pub fn versao() -> &'static str {
    "pensamento-0.7.0"
}