Algoritmo di fattorizzazione di Shor
L'algoritmo di fattorizzazione di Shor è un algoritmo ideato da Peter Williston Shor nel 1994 per risolvere il problema della fattorizzazione dei numeri interi in numeri primi.
Su un computer quantistico questo algoritmo ha una complessità computazionale BQP (Bounded error Quantum Polynomial time): i fattori primi vengono trovati con un margine d'errore arbitrariamente piccolo in un "tempo polinomiale" legato alla lunghezza del numero intero da fattorizzare.
Procedura
[modifica | modifica wikitesto]Introduzione
[modifica | modifica wikitesto]L'algoritmo di Shor consiste di due passi:
- una riduzione, che può essere eseguita su un computer classico, del problema di fattorizzazione a un problema di calcolo dell'ordine moltiplicativo;
- la risoluzione, tramite un algoritmo quantistico, del problema del calcolo dell'ordine moltiplicativo.
Riduzione del problema
[modifica | modifica wikitesto]Sia il numero da fattorizzare.
Passo 1
[modifica | modifica wikitesto]Viene scelto un numero intero casuale .
Passo 2
[modifica | modifica wikitesto]Mediante l'algoritmo esteso di Euclide si calcola il massimo comun divisore tra i due, cioè . Se , il risultato è uno dei due fattori di e il problema è risolto, altrimenti implica che è coprimo con e quindi esiste un inverso moltiplicativo del modulo tale che (si veda ancora l'algoritmo esteso di Euclide). Essendoci l'inverso ed essendo i valori di limitati da , esso appartiene al gruppo moltiplicativo finito degli interi modulo , che è periodico, ossia esiste un intero (ordine moltiplicativo) tale che
dove è il più piccolo intero positivo che soddisfa la congruenza. Infatti per valori dell'esponente di compresi tra 1 e si ottengono elementi del gruppo moltiplicativo. Per valori tra e si riottengono gli stessi elementi e così via per gli intervalli successivi ().
Passo 3
[modifica | modifica wikitesto]Calcolo dell'ordine con l'algoritmo quantistico.
Passo 4
[modifica | modifica wikitesto]Se è pari, almeno uno, se non entrambi i seguenti numeri sono fattori di :
infatti
Se è dispari, non potendo essere diviso per due, si ritorna al passo 1 per generare un nuovo .
In questo modo si trovano due fattori di . Nel caso tali fattori non siano primi, vanno fattorizzati a loro volta. Si può arrivare al massimo a log(N) fattorizzazioni.
Esempio numerico
[modifica | modifica wikitesto]Dato e scegliendo l'ordine moltiplicativo è , infatti .
Essendo pari, si prosegue con il passo 4, ottenendo
da cui segue che .
I tra i due termini e sono i candidati fattori primi:
che sono effettivamente i fattori di , 11 e 13.
Calcolo dell'ordine
[modifica | modifica wikitesto]Individuare l'ordine è un problema di cui non si conosce una soluzione deterministica efficiente con un computer classico. L'introduzione di Peter Shor è quella di un algoritmo quantistico in grado di fornire l'ordine in un "tempo polinomiale" legato alla lunghezza di (con ciò si intende che se la lunghezza del numero è , allora l'algoritmo richiede un tempo polinomiale del tipo con ).[1] L'algoritmo utilizza la codifica e l'estrazione di informazioni (tramite la trasformata di Fourier quantistica) dalle fasi relative tra gli stati quantistici (qubit), proprietà che non ha un equivalente classico.
Esistono diverse versioni dell'algoritmo. Quella presentata da Shor nel 1994 è la seguente:[2]
- si considerino due registri, di e qubit. Il primo sia inizializzato alla rappresentazione binaria di , ossia . Il secondo a , rappresentato su cifre come ;
- sul primo registro si opera una porta di Hadamard a qubit. Il primo registro si trova così in uno stato (si omettono le normalizzazioni). Si può osservare che questo stato è la sovrapposizione uniforme di tutti gli stati che codificano per numeri ;
- il primo registro controlla l'azione di sul secondo. L'operatore si definisce come . L'operatore è una radice -esima dell'unità, dove è l'ordine moltiplicativo di modulo , ha quindi autovalori del tipo per . Si può mostrare che la sovrapposizione omogenea degli autostati è esattamente lo stato . Far controllare l'azione di allo stato del primo registro, in sovrapposizione di tutti gli fa in modo che le fasi compaiano nello stato finale;
- la trasformata di Fourier quantistica estrae queste fasi e le rende misurabili in base computazionale sul primo registro.
Diverse ripetizioni dell'algoritmo forniscono varie stime di , da cui si può riconoscere . Il misurato ad ogni esecuzione è casuale, tra tutti quelli minori di : da solo può risultare fuorviante (ad esempio se divide ).
Efficienza
[modifica | modifica wikitesto]L'algoritmo presentato ha complessità di ordine . La restante parte della fattorizzazione, espressa sopra, è comune agli algoritmi classici ed è già efficiente: l'accelerazione che l'algoritmo di Shor dà al problema del calcolo dell'ordine, quindi, rende efficiente l'intero algoritmo di fattorizzazione.
L'algoritmo, tuttavia, non è deterministico, ed ha una probabilità di successo minore di 1: si può comunque ripeterne l'iterazione per abbassare la soglia d'errore.
Implementazione
[modifica | modifica wikitesto]Non esiste una macchina quantistica scalabile che implementi la versione descritta dell'algoritmo di Shor. Versioni compilate, ossia ridotte per casi specifici, sono invece già state eseguite: ad esempio su sistemi ottici lineari, dove i qubit sono codificati nella polarizzazione dei fotoni.
Note
[modifica | modifica wikitesto]- ↑ John E. Hopcroft, Rajeev Motwani e Jeffrey D. Ullman, p. 392.
- ↑ (EN) Peter W. Shor, Algorithms for quantum computation. Discrete logarithms and factoring, in 35th Annual Symposium on Foundations of Computer Science. Proceedings; November 20-22, 1994, Santa Fe, New Mexico, IEEE Computer Society Press, 1994, pp. 124–134, ISBN 9780818665820.
Bibliografia
[modifica | modifica wikitesto]- John E. Hopcroft, Rajeev Motwani e Jeffrey D. Ullman, Problemi intrattabili, in Automi, linguaggi e calcolabilità, 3ª ed., Torino, Pearson Italia (collana "Informatica"), 2017, ISBN 9788891907806.
- (EN) Phillip R. Kaye, Raymond Laflamme e Michele Mosca, Finding-Orders, in An Introduction to Quantum Computing, Oxford, Oxford University Press, 2007, pp. 130–141, ISBN 978-0-19-857049-3. URL consultato il 7 novembre 2025.
- (EN) Peter W. Shor, Algorithms for quantum computation. Discrete logarithms and factoring, in 35th Annual Symposium on Foundations of Computer Science. Proceedings; November 20-22, 1994, Santa Fe, New Mexico, IEEE Computer Society Press, 1994, pp. 124–134, ISBN 9780818665820.