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.
Abbiamo il piacere di annunciare che il libro su QuantumSim, che illustra le basi del quantum computing con esempi pratici utilizzando la libreria QuantumSim, Γ¨ disponibile su Amazon in formato HardCover.
π Acquista il libro su Amazon
Per chi preferisce consultare il libro in formato elettronico, Γ¨ possibile scaricare il PDF gratuitamente direttamente da questo repository.
π₯ Scarica il libro in formato PDF
Se trovi errori, refusi o hai suggerimenti per migliorare il libro, ti invitiamo a segnalarli creando un'Issue nella sezione dedicata di questo repository. Saremo felici di analizzare il tuo feedback e migliorare il materiale.
π Crea una nuova Issue
Grazie per il tuo supporto e buon apprendimento del quantum computing con QuantumSim!
- 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!