QuantumSim è un simulatore di circuiti quantistici progettato per aiutare a comprendere e visualizzare l'esecuzione di vari algoritmi quantistici. Supporta la conversione tra diversi formati di descrizione del circuito e offre strumenti per analizzare i risultati dei test.
- Simulazione dei Circuiti Quantistici: Simula vari circuiti quantistici e supporta molteplici algoritmi noti.
- Parser QASM: Converte file QASM (Quantum Assembly Language) in rappresentazioni eseguibili.
- Parser C a QASM: Converte descrizioni di circuiti scritte in C in file QASM.
- Analisi della Code Coverage: Integrata nel processo di Continuous Integration per garantire la qualità del codice.
Per compilare il progetto, assicurati di avere gcc
installato e poi esegui:
make
Questo comando creerà i seguenti eseguibili:
QuantumSim
: Il simulatore principale dei circuiti quantistici.QasmParser
: Parser per file QASM.CtoQasm
: Parser per convertire codice C in file QASM.
Abbiamo configurato una serie di test per garantire che ogni parte del progetto funzioni correttamente. Per eseguire i test, usa:
make test
Oppure puoi eseguire direttamente lo script di test:
./run_tests.sh
Per generare un report di copertura del codice e visualizzare quali parti del codice sono coperte dai test, usa:
make coverage
I risultati saranno salvati in un file coverage.info
e puoi visualizzarli direttamente nel terminale.
Questo progetto utilizza GitHub Actions per Continuous Integration. Ogni commit e ogni pull request attiva automaticamente la compilazione del codice, l'esecuzione dei test e la generazione di report di code coverage. Gli stati della build e della copertura sono visibili direttamente in questo README tramite i badge sopra.
QuantumSim è un simulatore di calcolo quantistico che supporta gate universali a 2 qubits e la funzionalità di misurazione. Questo simulatore consente di inizializzare stati quantistici, applicare gate quantistici e misurare gli stati quantistici risultanti.
Introduzione al Progetto: Esplora il mondo della computazione quantistica con il simulatore open-source
QuantumSim è un simulatore di computazione quantistica progettato per programmatori C che desiderano esplorare il mondo della programmazione quantistica senza dover necessariamente avere una profonda conoscenza della meccanica quantistica.
Per una descrizione dettagliata del progetto, consulta la Introduzione completa.
- Inizializzazione di stati quantistici con qualsiasi numero di qubits.
- Applicazione di gate quantistici a 1, 2 e 3 qubit, tra cui Hadamard, Pauli-X, Pauli-Z, CNOT, e gate a 3 qubit come Toffoli (CCNOT), Fredkin, CCZ e CCY.
- Decomposizione dei gate a 3 qubit: Come in un vero hardware quantistico, i gate a 3 qubit vengono decomposti in operazioni elementari, utilizzando gate a 1 e 2 qubit (vedi Khaneja Glaser Decomposition (KGD)), garantendo una simulazione accurata e realistica.
- Misurazione dello stato quantistico e collasso in uno stato base.
- Stampa di debug per tracciare il flusso di esecuzione e visualizzare lo stato quantistico in ogni momento.
Per una spiegazione dettagliata su come vengono rappresentati e inizializzati gli stati quantistici nel simulatore, consulta la Documentazione sugli Stati Quantistici.
Questo documento copre:
- La base teorica degli stati quantistici.
- La rappresentazione matematica degli stati con ( n ) qubit.
- La relazione tra concetti fisici e implementazione nel codice.
- Applicazione dei Quantum Gates: Scopri come vengono applicati i quantum gates agli stati quantistici in questo progetto.
QuantumSim/
├── src/ # Directory principale dei file sorgente
│ ├── quantum_sim.c # Implementazione del simulatore quantistico
│ ├── circuit.c # Implementazione del circuito quantistico
│ ├── main.c # Punto di ingresso principale del simulatore
│ ├── qasm_to_c/ # Directory contenente il parser da QASM a C
│ │ └── qasm_parser.c # Codice sorgente per il parser QASM-to-C
│ └── c_to_qasm/ # Directory contenente il parser da C a QASM
│ └── c_to_qasm.c # Codice sorgente per il parser C-to-QASM
├── Makefile # Makefile per la compilazione del progetto
├── README.md # Documentazione del progetto
└── LICENSE # Licenza del progetto
- GCC (GNU Compiler Collection)
- Make
Clona il repository e naviga nella directory del progetto:
git clone https://github.com/francescosisini/QuantumSim.git
cd QuantumSim
Il Makefile di QuantumSim
è stato aggiornato per facilitare la compilazione e l'esecuzione di circuiti quantistici definiti in file C. Ora è possibile specificare un file di circuito personalizzato da compilare direttamente tramite il Makefile.
CIRCUIT_FILE
: Nome del file contenente il circuito quantistico in C che si desidera compilare. Se non viene specificato, verrà utilizzato il file predefinitosrc/circuit.c
.
Compilare QuantumSim con un circuito predefinito:
make
Compilare QuantumSim con un file di circuito personalizzato:
make CIRCUIT_FILE=src/my_custom_circuit.c
Pulire gli eseguibili compilati:
make clean
Supponiamo di avere un circuito personalizzato definito nel file src/custom_circuit.c
. Per compilare e eseguire QuantumSim con questo circuito, eseguire:
make CIRCUIT_FILE=src/custom_circuit.c
./QuantumSim
./QuantumSim
Questo progetto è stato creato con finalità didattiche e divulgative. Sebbene sia stato sviluppato con cura, potrebbero esserci errori o imprecisioni. Per maggiori dettagli, consulta il Disclaimer completo.
QuantumSim è rilasciato sotto la licenza GNU General Public License v3. Per maggiori informazioni, leggi il file LICENSE
.
Per qualsiasi domanda, suggerimento o per segnalare bug, sentiti libero di aprire una issue o di contattarmi direttamente.
Grazie per il tuo interesse nel contribuire a QuantumSim!