MATEMATICA E INFORMATICAInformaticaAnno accademico 2023/2024

9795447 - QUANTUM COMPUTER PROGRAMMING

Docente: SIMONE FARO

Risultati di apprendimento attesi

Conoscenza e capacità di comprensione (knowledge and understanding): saranno acquisite le conoscenze relative alle principali metodologie per la progettazione di algoritmi quantistici. Nello specifico saranno acquisite le conoscenze relative alle basi della computazione quantistica, ai principali circuiti quantistici, e agli algoritmi quantistici di base. Saranno acquisite le tecniche per l'analisi di complessità di algoritmi quantistici e la loro programmazione attraverso linguaggi dedicati. Il sistema di sviluppo Qiskit verrà usato come strumento principale per presentare l'applicazione dei costrutti e le implementazioni degli algoritmi studiati.

Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): saranno acquisite le capacità di risolvere semplici problemi che richiedono la progettazione e l'analisi di soluzioni algoritmiche nel campo della computazione quantistica.

Autonomia di giudizio (making judgements): lo studente sarà in grado di valutare l'applicabilità di una soluzione quantistica per la risoluzione di un problema computazione oltre ad acquisire la capacità di valutare un algoritmo quantistico in termini di efficienza e possibilità di riutilizzo.

Abilità comunicative (communication skills): saranno acquisite le necessarie abilità comunicative ed un'adeguata appropriatezza espressiva nella comunicazione di problematiche inerenti gli studi algoritmici nel campo della computazione quantistica, anche ad interlocutori non esperti.

Capacità di apprendimento (learning skills): lo studente avrà la capacita di adattare le conoscenze acquisite anche a nuovi contesti, nonché di aggiornarsi attraverso la consultazione delle fonti specialistiche del settore del quantum computing.

Modalità di svolgimento dell'insegnamento

Lezioni frontali.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.

Prerequisiti richiesti

Conoscenze di base della programmazione in Python e del notebook Jupyter.
Elementi di matematica discreta e di algebra lineare, di programmazione I e II, e di analisi matematica.

Frequenza lezioni

Per una piena comprensione degli argomenti del corso e delle tecniche illustrate, la frequenza delle lezioni è fortemente consigliata.

Contenuti del corso

Il corso fornisce un'introduzione agli algoritmi quantistici, coprendo molti algoritmi chiave. Richiede un background minimo e non presuppone alcuna conoscenza della teoria quantistica o della meccanica quantistica. Il corso presenta il calcolo quantistico in termini di algebra lineare elementare assumendo che il lettore abbia una certa familiarità con i vettori, le matrici e le loro proprietà di base, ma offrendo una rassegna di tutto il materiale rilevante dell'algebra lineare. Enfatizzando il calcolo e gli algoritmi piuttosto che la fisica, questo corso rende gli algoritmi quantistici accessibili a studenti e ricercatori in informatica senza le complicazioni della notazione della meccanica quantistica, dei concetti fisici e delle questioni filosofiche.

Dopo aver spiegato lo sviluppo di operazioni e calcoli quantistici basati sull'algebra lineare, il corso presenta le principali porte quantistiche e algoritmi quantistici, dagli algoritmi di Deutsch, Jozsa e Simon, passando per Shor, fino all'algoritmo di ricerca di Grover. Le dimostrazioni matematiche sono generalmente brevi e dirette.

Il corso introduce anche i principi della programmazione quantistica attraverso l'uso dell'SDK Qiskit, che consente agli utenti di eseguire esperimenti su dispositivi quantistici reali all'avanguardia. Il corso fornisce agli studenti gli strumenti per utilizzare Qiskit nella sperimentazone degli algoritmi su hardware quantistici e utilizza tali strumenti per rafforzare la loro comprensione.

Testi di riferimento

1) Quantum Algorithms via Linear Algebra, di Richard J. Lipton e Kenneth W. Regan. The MIT Press Cambridge, Massachusetts London, England.

2) Qiskit Textbook, Learn Quantum Computation Using Qiskit, 2020. Disponibile online: http://community.qiskit.org/textbook

Programmazione del corso

 ArgomentiRiferimenti testi
1Il modello di computazione quantisticaCap. 1 di 1)
2Numeri e stringheCap. 2 di 1)
3Elementi di Algebra LineareCap. 3 di 1)
4Funzioni booleane e fattibilitàCap. 4 di 1)
5Elementi di programmazione in QiskitCap. 1-2 di 2)
6Circuiti QuantisticiCap. 3.1 of 2)
7Matrici specialiCap. 5 di 1)
8Quantum OraclesCap. 3.2 di 2)
9Procedure ausiliarieCap. 6 di 1)
10Algoritmi quantistici elementariCap. 7 di 1)
11Quantum TeleportationCap. 3.10 di 2)
12Superdense CodingCap. 3.11 di 2)
13Algoritmo di DeutschCap. 8 di 1)
14Algoritmo di Deutsch-JozsaCap. 9 di 1) e Cap. 3.2 di 2)
15Algoritmo di SimonCap. 10 di 1) 3 Cap. 3.4 di 2)
16Algoritmo di ShorCap. 11-12 di 1) e Cap. 3.5-3.6-3.7 di 2)
17Algoritmo di GroverCap. 13 di 1) e Cap. 3.8 di 2)

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

La prova di esame del corso è suddivisa in due parti: una prima prova scritta di laboratorio e una successiva prova orale. Tali prove potranno avere luogo per via telematica, qualora le condizioni lo dovessero richiedere. La prova orale potrà svolgersi il giorno stesso in cui è stata svolta la prova scritta o a distanza di pochi giorni da esso. Tale prova avrà lo scopo di valutare più nel dettaglio la preparazione dello studente, la sua capacità di ragionamento relativamente agli argomenti trattati a lezione, nonché la sua proprietà di linguaggio. La valutazione della prova orale si dovrà intendere ad integrazione del voto ottenuto nella prova scritta e non a suo incremento.

Per l'attribuzione del voto finale si seguiranno di norma i seguenti criteri:
- non approvato: lo studente non ha acquisito i concetti di base e non è in grado di svolgere gli esercizi.
- 18-23: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di esposizione e di collegamento dei contenuti sono modeste, riesce a risolvere semplici esercizi.
- 24-27:  lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di esposizione e di collegamento dei contenuti sono buone,  risolve gli esercizi con pochi errori.
- 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di esporli compiutamente e di collegarli con spirito critico; risolve gli esercizi in modo completo e senza errori.

Esempi di domande e/o esercizi frequenti

Durante le lezioni verranno svolti degli esercizi simili a quelli che gli studenti dovranno affrontare nel loro esame finale. Ulteriori esercizi verranno resi disponibili nel corso delle lezioni. 


English version