Ingegneria Informatica e dell’Intelligenza Artificiale Applicata LM-32
Introduzione al trattamento quantistico delle informazioni
| Settore scientifico disciplinare | Numero crediti formativi (CFU) | Docente |
| FIS/03 | 6 | -- Nessun gestore -- |
Obiettivi Formativi
L’insegnamento si propone di fornire agli studenti una solida conoscenza dei principi teorici e matematici alla base dell’elaborazione quantistica dell’informazione, introducendo i concetti di qubit, sovrapposizione, entanglement e basi di rappresentazione.
L’obiettivo è sviluppare la capacità di analizzare, progettare e implementare semplici algoritmi quantistici, comprendendone la logica operativa e le potenzialità rispetto ai corrispettivi classici.
Il corso introduce inoltre gli strumenti software per la modellazione, la sintesi, la simulazione e la verifica di circuiti quantistici, nonché le metodologie di realizzazione hardware su piattaforme FPGA mediante linguaggio VHDL.
Particolare attenzione è dedicata all’integrazione tra teoria e pratica, favorendo la comprensione del legame tra il modello quantistico e la sua implementazione digitale.
L’insegnamento contribuisce infine al potenziamento delle competenze trasversali quali l’autonomia di giudizio, la capacità di apprendimento autonomo e le abilità comunicative e progettuali.
Risultati di apprendimento attesi
Conoscenza e capacità di comprensione
Lo studente acquisisce una conoscenza strutturata dei principi fondamentali della meccanica quantistica applicati all'elaborazione dell'informazione. Comprende i concetti di qubit, sovrapposizione, entanglement e misura quantistica, nonché la loro formulazione matematica mediante algebra lineare e spazi di Hilbert. Conosce la struttura e il funzionamento dei principali algoritmi quantistici (Deutsch, Deutsch-Jozsa, Simon, Shor e Grover) e le architetture hardware per la loro implementazione su FPGA.
Capacità di applicare conoscenza e comprensione
Lo studente è in grado di applicare le conoscenze acquisite nella progettazione di semplici circuiti quantistici e nella realizzazione di gate quantistici mediante VHDL su piattaforme FPGA. Sa tradurre algoritmi quantistici in descrizioni digitali, effettuare analisi temporale e di potenza di circuiti digitali, e verificare il funzionamento attraverso simulazioni e test su hardware reale. Sviluppa competenze nell'utilizzo di strumenti software professionali (Vivado, simulatori quantistici) per la sintesi, implementazione e verifica di sistemi digitali.
Abilità di giudizio
Lo studente sviluppa la capacità di valutare criticamente le potenzialità e i limiti del quantum computing rispetto al calcolo classico, riflettendo sulla complessità teorica e sulla fattibilità pratica. Sa riconoscere i vincoli tecnologici e fisici delle implementazioni attuali, nonché le implicazioni etiche e sociali derivanti dal controllo della sicurezza crittografica (es. minaccia agli algoritmi RSA). Integra conoscenze quantistiche, digitali e di hardware design per prendere decisioni consapevoli sulla scelta tecnologica più appropriata.
Abilità di comunicare
Lo studente è in grado di comunicare in modo chiaro e rigoroso i concetti di quantum computing a interlocutori specialisti, utilizzando il linguaggio matematico e tecnico appropriato. Sa inoltre descrivere e motivare scelte progettuali, risultati di simulazioni e implementazioni hardware con chiarezza sia orale che scritta. Sviluppa la capacità di presentare idee complesse in forma accessibile a uditori con diversi livelli di competenza tecnica.
Capacità di apprendimento
Lo studente acquisisce autonomia nel proseguire lo studio di tematiche avanzate del quantum computing e della progettazione digitale. Sviluppa la capacità di consultare autonomamente letteratura scientifica, documentazione tecnica di piattaforme hardware e software, e risorse online specializzate. Sa inoltre identificare autonomamente lacune nella propria conoscenza e integrarle mediante approfondimenti self-directed, favorendo un apprendimento consapevole e strategico.
PROGRAMMA DEL CORSO
Lezione 0: Introduzione al corso
Modulo 1: Fondamenti di Meccanica Quantistica e Teoria dell'Informazione (1 CFU)
1. Lezione 1 –Introduzione al quantum computing
1.1. L’esperimento di Stern e Gerlach
1.2. L’analogia dell’orologio
1.3. Misura e Casualità nel Quantum Computing
1.4. Fotoni e Polarizzazione
2. Lezione 2 – Algebra lineare: i vettori
2.1. La definizione di Paul Dirac
2.2. Operazioni e proprietà tra vettori
2.3. Basi ortonormali
2.4. Matrici
3. Lezione 3 – Probabilità e basi associate
3.1. Probabilità e stati equivalenti
3.2. Relazione Spin -Base Associata
3.3. Relazione polarizzazione -Base Associata
4. Lezione 4 – Qubit e non entangled Qubits
4.1. Qubits
4.2. Transizioni di Stato e Ampiezze di Probabilità
4.3. Protocollo BB84
4.4. Non Entangled Qubit
5. Lezione 5 – Entanglement
5.1. I Qubit Entangled
5.2. Comunicazione Superluminale
5.3. La Base Standard per Prodotti Tensoriali
5.4. Gate CNOT per rendere i Qubit Entangled
5.5. Orologi Quantistici Entangled
Modulo 2: Teoria Quantistica Avanzata e Protocolli Quantistici (1 CFU)
6. Lezione 6 - Il teorema di Bell
6.1. Qubit Entangled in basi differenti
6.2. Einstein: il Realismo Locale e le Variabili Nascoste
6.3. Una Spiegazione Classica dell'Entanglement
6.4. Disuguaglianza di Bell: La Risposta della Meccanica Quantistica
6.5. Disuguaglianza di Bell: La Risposta Classica
7. Lezione 7 - Logica classica
7.1. Il Protocollo Ekert per la Distribuzione Quantistica di Chiavi
7.2. Logica Classica e logic gates
7.3. Minterm e Maxterm
8. Lezione 8 - I Quantum gate
8.1. Reversable computation
8.2. Fan-Out
8.3. Qubits e quantum gates
8.4. Le porte I, Z, X e Y
8.5. La porta di Hadamard
8.6. Porte quantistiche universali
9. Trasmettere informazioni tramite i Qubit
9.1. No Cloning Theorem
9.2. Il circuito di Bell
9.3. Superdense Coding
9.4. Teletrasporto quantistico
10. Lezione 10 - I Primi algoritmi quantistici
10.1. Correzione degli errori
10.2. La velocità degli algoritmi quantistici
10.3. Algoritmo di Deutsch
Modulo 3: Algoritmi Quantistici Fondamentali (1 CFU)
11. Lezione 11 - Due algoritmi base del quantum computing
11.1. Dal Kronecker product agli operatori su molti qubit
11.2. Algoritmo di Deutsch–Jozsa
11.3. Algoritmo di Simon
12. Lezione 12 – Algoritmo di Shor
12.1. Introduzione
12.2. Trasformata di Fourier quantistica (QFT)
12.3. Algoritmo di Shor
12.4. Conclusioni
13. Lezione 13 – Algoritmo di Grover e le tecnologie del quantum computing
13.1. Algoritmo di Grover
13.2. Algoritmi quantistici e l’uso nel mondo reale
13.3. Dalla teoria alla pratica: tecnologie per circuiti quantistici e uso delle FPGA
14. Lezione 14 – Field Programmable Gate Arrays
14.1. Processori, ASIC ed FPGA
14.2. Architettura delle FPGA
14.3. Componenti aggiuntivi
Modulo 4: Progettazione Digitale in VHDL – Fondamenti (1CFU)
15. Lezione 15 – Introduzione al VHDL
15.1. Struttura base del VHDL
15.2. Livelli di astrazione
15.3. I processi in VHDL
15.4. Descrizione strutturale e testbench
16. Lezione 16 – VHDL OBJECTs E TYPE
16.1. Introduzione agli Oggetti VHDL
16.2. Introduzione ai Dati in VHDL
16.3. Tipi di Dato VHDL
16.4. Conversioni di Tipo Comuni
17. Lezione 17 – Logica Combinatoria in VHDL
17.1. VHDL statements
17.2. differenza di sintesi
17.3. for statements
18. Lezione 18 – Logica Sequenziale in VHDL
18.1. D-Flip-Flop: sintassi e funzionamento
18.2. Clock
18.3. Reset
18.4. D-FF
18.5. Segnali vs Variabili
19. Lezione 19 – I più comuni circuiti sequenziali
19.1. Shift Register
19.2. Contatori
19.3. Finite State Machines (FSM)
19.4. Memoria RAM
Modulo 5: Progettazione Digitale Avanzata e Verifica (1CFU)
20. Lezione 20 – Esempio di MSF: la Snack Drink Machine
20.1. Design della Snack Drink Machine
20.2. Realizzazione in VHDL
20.3. Descrizione Circuitale RTL
20.4. Conclusioni
21. Lezione 21 – lavorare con i vettori in VHDL
21.1. Rappresentazione fixed point
21.2. Esempio: moltiplicazione fixed-point
21.3. I Vettori in VHDL: definizione e operazioni
22. Lezione 22 – Lavorare con le matrici in VHDL
22.1. Definizione delle Matrici in VHDL
22.2. Operazioni sulla singola matrice
22.3. Operazioni tra vettori e matrici e tra matrice e matrice
23. Lezione 23 – Static Timing Analysis (STA)
23.1. Cos'è la Static Timing Analysis
23.2. Il Clock nell' STA
23.3. Input e Output Delay
23.4. Pipelining e Retiming
24. Lezione 24 - Test-bench e verification
24.1. Definizioni
24.2. Semplice testbench senza stimoli esterni
24.3. Standard test-bench con stimuli da file
24.4. Asserting
25. Lezione 25 – Power Consumption
25.1. Introduzione
25.2. Definizioni
25.3. Dissipazioni nei circuiti digitali
Modulo 6: Implementazione Hardware e Circuiti Quantistici su FPGA (1CFU)
26. Lezione 26 – Flusso Vivado
26.1. Nuovo progetto RTL in Vivado
26.2. Creare un file VHDL
26.3. Creazione di un file di testbench
26.4. Simulazione
26.5. Sintesi, implementazione, bitstream
27. Lezione 27 – Pauli X e Z in RTL
27.1. Moduli VHDL per X e per Z
27.2. Testbench
27.3. Risultati simulativi
28. Lezione 28 – Hadamard “numerico” (superposizione approssimata)
28.1. matrice H
28.2. Modulo VHDL
28.3. Testbench
28.4. Risultati simulativi
29. Lezione 29 - CNOT e H+CNOT
29.1. CNOT (matrice 4×4)
29.2. Modulo VHDL per CNOT
29.3. Modulo VHDL H + CNOT
29.4. Testbench
29.5. Risultati simulativi
30. Lezione 30 – Emulazione della struttura di Deutsch
30.1. Richiamo concetto Deutsch
30.2. Emulazione della struttura di Deutsh
30.3. Testbench
30.4. Risultati simulativi
Testi consigliati
Il docente consiglia l’integrazione del materiale fornito (videolezioni, slides, esercitazioni) con i seguenti testi, a cui il docente può fare riferimento durante le lezioni:
- Donzellini, G., Oneto, L., Ponta, D., & Anguita, D. (2018). Introduzione al progetto di sistemi digitali. Springer Milan.
- Ercegovac, M. D., Moreno, J. H., & Lang, T. (1998). Introduction to digital systems. John Wiley & Sons, Inc..
- Pong P. Chu “RTL HARDWARE DESIGN USING VHDL”
- Mark Zwolinski ”VHDL progetto di sistemi digitali”
- Douglas Perry “VHDL Programming by Example”
- Maxfield C.“The Design Warrior’s Guide to FPGAs”
- Bernhardt, Chris. Quantum computing for everyone. Mit Press, 2019.
- Bandini, Michele. "Crittografia quantistica e algoritmo di Shor." (2017).
MODALITÀ DI ESAME, PREREQUISITI, ESAMI PROPEDEUTICI
Modalità di accertamento dei risultati di apprendimento acquisiti dallo studente
Per valutate le capacità acquisite nel governare le nozioni apprese, nel creare delle connessioni con altri insegnamenti del corso di studi in maniera autonoma lo studente sarà sottoposto a una prova scritta da svolgere in presenza o a distanza e alla valutazione di un progetto pratico da consegnare prima dell’esame. Attraverso la prova scritta sarà valutata la conoscenza degli elementi di carattere teorico e pratico mentre la valutazione del progetto valuterà la capacità di applicazione pratica delle nozioni acquisite.
Modalità di esame
Al termine del corso è previsto lo svolgimento di un esame di profitto composto da una parte progettuale e da una prova teorica.
La valutazione della prova teorica andrà a fare media aritmetica con la valutazione del progetto pratico richiesto. Lo svolgimento del progetto è obbligatorio e il conseguimento di una votazione sufficiente (18/30) costituisce prerequisito per l’accesso alla prova teorica.
Il progetto pratico è volto a dimostrare la capacità da parte dello studente di implementare un sistema di emulazione di gate o algoritmi di quantum computing.
La prova scritta composta da 31 domande a scelta multipla, della durata di 30 minuti. A ciascuna risposta corretta viene attribuito un punto, senza penalizzazione per le risposte errate o mancanti. Il superamento della prova richiede il raggiungimento di una soglia minima di risposte corrette pari a 18. Il punteggio massimo di 31/31 corrisponde alla lode: lo studente che risponde correttamente a tutte le domande ottiene 30 e lode, a sottolineare il conseguimento pieno e approfondito dei risultati di apprendimento previsti.
Per gli studenti che seguono la didattica interattiva sono previsti bonus sul voto dell’esame scritto, a riconoscimento della partecipazione attiva e del lavoro svolto durante il semestre. In particolare:
- +1 punto sul voto d’esame se lo studente ha seguito almeno il 50% delle lezioni erogate in modalità sincrona e ha superato i relativi test in itinere.
- +2 punti sul voto d’esame se lo studente ha seguito almeno il 75% delle lezioni sincrone e ha superato i relativi test in itinere.
I punti aggiuntivi vengono applicati solo se il voto ottenuto alla prova scritta finale è almeno pari a 18/30 e possono contribuire all’attribuzione della lode nel caso in cui il punteggio complessivo raggiunga o superi la soglia prevista per 30 e lode.
Propedeuticità
Come da regolamento del corso di studi, non sono previste propedeuticità.
Prerequisiti
Per seguire il corso con adeguata proficuità, è opportuno che lo studente abbia già superato i seguenti esami, da considerarsi prerequisiti:
· Analisi matematica I e Geometria
· Fondamenti di informatica
· Fisica
· Analisi matematica 2
· Algoritmi e strutture dati
· Reti di calcolatori