Skip to content

francescosisini/QuantumSim

Repository files navigation

QuantumSim

Build Status codecov

Introduzione

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.

πŸ“š Il Libro su QuantumSim

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

Scarica il PDF

Per chi preferisce consultare il libro in formato elettronico, Γ¨ possibile scaricare il PDF gratuitamente direttamente da questo repository.

πŸ“₯ Scarica il libro in formato PDF

Segnalazioni di errori o problemi

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!

Caratteristiche

  • 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.

Come Compilare

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.

Eseguire i Test

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

Generare Report di Code Coverage

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.

Continuous Integration

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 - Simulatore Quantistico in C

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.

Scarica ora

QuantumSim - Scopri di piΓΉ e scaricalo

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.

Caratteristiche

  • 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.

Documentazione di Supporto

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.

Documentazione Aggiuntiva

Struttura del 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

Requisiti

  • GCC (GNU Compiler Collection)
  • Make

Installazione

Clona il repository e naviga nella directory del progetto:

git clone https://github.com/francescosisini/QuantumSim.git
cd QuantumSim

Compilazione

Utilizzo del Makefile per 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.

Opzioni Disponibili

  • CIRCUIT_FILE: Nome del file contenente il circuito quantistico in C che si desidera compilare. Se non viene specificato, verrΓ  utilizzato il file predefinito src/circuit.c.
Comandi del Makefile

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
Esempio

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

Uso

./QuantumSim

Disclaimer

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.

Note Legali

QuantumSim Γ¨ rilasciato sotto la licenza GNU General Public License v3. Per maggiori informazioni, leggi il file LICENSE.

Contatti

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!

About

No description, website, or topics provided.

Resources

License

GPL-3.0, GPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
GPL-3.0
GNU_LICENSE

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published