Hybrid engine (Armatura's core)¶
hybrid_engine ¶
core/hybrid_engine.py¶
Motore di healing a trigger binario per Armatura — sostituisce lo stadio AdaptiveSignalStabilizer + ABCollatz (vedi CHANGELOG [1.0.10]: il gate ABCollatz era matematicamente non discriminante, verificato con sweep numerico e mai risolto in modo dimostrabile).
Le funzioni pure sotto sono portate da Dense-Evolution/dense_evolution/healing.py
(calculate_phi_ab, calculate_vettore_dinamico, evaluate_phi_trigger,
GLOBAL_CONSTANTS), verificate in quel repo con test dedicati e già in
produzione (PyPI dense-evolution >= 8.1.9). Vendorizzate qui (non importate
a runtime) per non aggiungere una dipendenza pesante a un core che oggi è
solo numpy+jax+psutil — dense-evolution resta un extra opzionale ([quantum]).
ADATTAMENTO rispetto all'originale: calculate_phi_ab normalizzava la
distanza state_A/state_B rispetto a una costante fissa (MAX_SEMANTIC_DISTANCE
= sqrt(2)), corretta quando state_A/state_B sono vettori GIA' normalizzati
(embedding di stati quantistici in Dense-Evolution, dove sqrt(2) è davvero
la distanza massima possibile). Qui state_A/state_B sono numeri grezzi di
scala arbitraria (loss, sensori, metriche): con la costante fissa, un salto
reale anche di poche unità saturava sempre coherence_component a valori
molto negativi, quindi phi_ab restava clippato a 0 per QUALSIASI cambiamento
genuino di ampiezza superiore a ~1.4 — il trigger restava "statico" per
sempre anche davanti a un gradino sostenuto e mai isolato (verificato con
un test manuale: una serie con un vero gradino a +4 unità restava appiattita
all'infinito).
Primo tentativo di fix: normalizzare sulla scala assoluta di state_A/state_B (max(|state_A|,|state_B|)) — risolve il gradino, ma poi un salto enorme sembra "proporzionalmente" coerente quanto uno piccolo, quindi anche uno spike isolato passava intatto (verificato su segnale sia sintetico sia rumoroso realistico: pulito==grezzo sullo spike). Fix definitivo: la distanza è normalizzata sulla VOLATILITÀ LOCALE della finestra recente (MAD scalato, robusto a un singolo outlier residuo nella finestra), non sulla grandezza assoluta dei valori né su una costante fissa — un salto enorme rispetto a quanto il segnale oscilla di solito resta sospetto (spike filtrato), un gradino sostenuto viene giudicato in base a quanto è anomalo rispetto al rumore normale, non alla scala del numero.
hybrid_shield generalizza la logica già corretta di
ia_utils.vector_healing.enhanced_dense_healing_hybrid (sequenza di vettori)
a una serie scalare 1D, con lo stesso schema a 2 stati (mai 3): per ogni
punto, trigger deciso da evaluate_phi_trigger è strettamente binario
(0.0 statico/rumore, 1.0 dinamico/genuino) — non esiste un ramo intermedio.
calculate_phi_ab ¶
calculate_phi_ab(state_A: ndarray, state_B: ndarray, ipg_vector: ndarray, scale: ndarray) -> jnp.ndarray
Fattore di allineamento e coerenza spaziale Phi_AB (vedi ADATTAMENTO nel
docstring del modulo). scale è la volatilità locale della finestra
recente (MAD scalato, calcolata dal chiamante) — non più una costante
fissa né la grandezza assoluta di state_A/state_B.
Source code in dense_armor/core/hybrid_engine.py
calculate_vettore_dinamico ¶
Vettore Dinamico (V_dinamic): variazione logaritmica differenziale energetica (porting identico).
Source code in dense_armor/core/hybrid_engine.py
evaluate_phi_trigger ¶
Phi-Trigger: strettamente binario, 1.0 (dinamico) o 0.0 (statico) (porting identico).
Source code in dense_armor/core/hybrid_engine.py
hybrid_shield ¶
hybrid_shield(serie: ndarray, riferimento: Optional[ndarray] = None, radius_baseline: Optional[int] = None) -> Tuple[np.ndarray, np.ndarray, Dict]
Applica lo schema a 2 stati (pass-through / fallback a baseline) punto per punto su una serie scalare 1D.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
serie
|
ndarray
|
array 1D di float (NaN/Inf ammessi, vengono sanificati). |
required |
riferimento
|
Optional[ndarray]
|
se dato, la baseline per il punto i è riferimento[i] (modalità anti-deriva). Se None (modalità cieca), la baseline è la media di una finestra locale dei punti precedenti della stessa serie (raggio adattivo, stessa formula di ia_utils: min(20, max(3, n // 3))). |
None
|
radius_baseline
|
Optional[int]
|
raggio fisso opzionale per la modalità cieca. |
None
|
Returns:
| Type | Description |
|---|---|
(pulito, trigger, metadata)
|
pulito — array 1D, stessa shape di |
LIMITE NOTO: i primi 2 punti (i=0, i=1) non passano mai dal ciclo del trigger — serve un ipg_vector dai due punti precedenti, quindi restano sempre pass-through (trigger=1) qualunque sia il loro valore. Comportamento ereditato identico da enhanced_dense_healing_hybrid, trascurabile su serie realistiche; gli eventuali NaN/spike su questi 2 punti vanno intercettati da controlli indipendenti a monte (es. i controlli robusti già presenti in Armatura.analizza).
Source code in dense_armor/core/hybrid_engine.py
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 | |
See also: Armatura, the wearable class built on this engine. Generalizes
the logic already verified in Dense-Evolution's
ia_utils.vector_healing.enhanced_dense_healing_hybrid.