-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Suite di cross-validazione fisica per Dense-Evolution: TFIM, gradienti VQE, mitigazione degli errori (ZNE), bandstructure del silicio, VQE molecolare. Ogni script produce un dataset + un grafico, e (dove sensato) ha un test dedicato in tests/ eseguito dalla CI GitHub Actions su ogni push.
-
Transizione di Fase Ising (TFIM) —
scan_ising.py,plot_ising.py -
Mitigazione degli Errori (ZNE) —
zne_mitigation.py -
Gradiente VQE: Differenze Finite vs PSR Esatta —
vqe_gradient.py,vqe_jax_grad.py -
Mappatura dei Difetti Quantistici —
quantum_defect_scanner.py -
Bandstructure Silicio e Termodinamica Reticolare —
next_gen_silicon.py,manufacturing_thermodynamics.py -
VQE Molecolare e Ottimizzazione Adam —
vqe_silicon_molecular.py,vqe_silicon_molecular_optimized.py -
Suite di Test e CI — struttura dei test,
test_integration_smoke.py
DenseSVSimulator.run_parametric_batch_jit() assegna una colonna di parameter_batch a ogni gate di rotazione, in ordine di apparizione nel circuito — anche se gli passi un float letterale invece di un placeholder stringa. Il letterale veniva ignorato in silenzio, e se il numero di colonne non combaciava col numero di gate parametrici, JAX non sollevava errore: clippava l'indice fuori range all'ultima colonna valida, corrompendo silenziosamente il risultato.
Questo ha causato due bug reali in questo repo (quantum_defect_scanner.py e vqe_jax_grad.py, vedi capitoli 4 e 3) — entrambi corretti qui, e il bug stesso è stato poi segnalato a monte come Dense-Evolution#6.
Da dense-evolution 8.1.28: run_parametric_batch_jit valida parameter_batch.shape[1] contro il numero reale di gate parametrici e solleva ValueError su un mismatch, invece di clippare in silenzio. Chi è su una versione precedente resta esposto al comportamento vecchio — questa pagina resta comunque il riferimento corretto sul perché del bug, utile a chiunque debba ancora capirlo o lavori su una versione più vecchia.
dense-evolution versioni successive all'8.1.21 usato per l'audit di questo repo hanno corretto (o aggiunto) cose direttamente rilevanti a quanto documentato qui:
-
8.1.28 —
run_parametric_batch_jitsollevaValueErrorsu mismatch di colonne invece di clippare in silenzio (#6, vedi avvertimento sopra).run_circuit/run_circuit_jit_beast_mode/run_parametric_batch_jitsollevanoValueErrorsu un nome di gate non riconosciuto invece di scartarlo in silenzio (#4).NoiseModel.apply_to_svnon ignora piùrngsu statevector JAX (#7). -
8.1.27 — aggiunto
dense_evolution.mitigation(richardson_extrapolate,zero_noise_extrapolation): la stessa Zero-Noise Extrapolation di Richardson usata a mano nel capitolo 2 e nella variante "predictive healing" ditests/test_zne_predictive_healing.pyè ora anche una funzione reale, riusabile e standard-named del pacchetto, non solo logica hand-written locale a questo repo. -
8.1.26 — chiuse lacune di copertura test su
Chunk(dispatch multi-chunk) e suifor-loop QASM a bound non risolvibile; nessun bug trovato, solo test aggiuntivi. -
8.1.24-8.1.25 — fix su
healing.py(crash su statevector complessi incalculate_phi_ab) e suMPSSimulator(violazione silenziosa deljsd_budget) non toccano direttamente gli script di questo repo, ma erano la fonte del dubbio "ho perso pezzi di healing?" chiarito durante questa sessione: nessuna funzionalità persa, solo bug fix.
Changelog completo, versione per versione: README di Dense-Evolution.
- Repository principale (dense-evolution) — wiki
- README di questo repo — dati, grafici e formule complete
- CI Actions
Dense-Evolution-Ising-Tests · MIT License © 2026 Salvatore Pennacchio (tatopenn-cell) · dipende da Dense-Evolution (Business Source License 1.1)