1. Εισαγωγή και Βασικές Έννοιες
Στην κλασική πληροφορική, η βασική μονάδα πληροφορίας είναι το bit (0 ή 1). Στους κβαντικούς υπολογιστές, η βασική μονάδα είναι το qubit, το οποίο λόγω της υπέρθεσης μπορεί να είναι 0 και 1 ταυτόχρονα. Οι κβαντικές πύλες δεν είναι διακόπτες, αλλά μαθηματικές περιστροφές της κατάστασης του qubit πάνω στη λεγόμενη Σφαίρα Bloch.
- Πύλη X (NOT): Αντιστρέφει την κατάσταση (το |0⟩ γίνεται |1⟩).
- Πύλη Hadamard (H): Βάζει το qubit σε τέλεια υπέρθεση (50% πιθανότητα για 0 ή 1).
- Πύλη Z: Αλλάζει τη φάση του qubit χωρίς να επηρεάζει τις πιθανότητες μέτρησης.
Αντιστρεψιμότητα: Όλες οι κβαντικές πύλες είναι αντιστρέψιμες. Δεν χάνεται ποτέ πληροφορία κατά τη διάρκεια των υπολογισμών.
2. Κβαντικός Εναγκαλισμός & Πύλες Πολλών Qubits
Η πύλη CNOT (Controlled-NOT) είναι η βάση για τη συνεργασία πολλών qubits. Αν το qubit-ελεγκτής είναι |1⟩, τότε αντιστρέφει την κατάσταση του qubit-στόχου.
| Είσοδος Ελεγκτή | Είσοδος Στόχου | Έξοδος Ελεγκτή | Έξοδος Στόχου |
|---|---|---|---|
| |0⟩ | |0⟩ | |0⟩ | |0⟩ |
| |0⟩ | |1⟩ | |0⟩ | |1⟩ |
| |1⟩ | |0⟩ | |1⟩ | |1⟩ |
| |1⟩ | |1⟩ | |1⟩ | |0⟩ |
Συνδυάζοντας μια πύλη Hadamard και μια CNOT, δημιουργούμε το φαινόμενο του Κβαντικού Εναγκαλισμού (Entanglement), συνδέοντας τα qubits έτσι ώστε η κατάσταση του ενός να καθορίζει ακαριαία το άλλο.
3. Αλγόριθμος του Shor (Σπάσιμο Κρυπτογράφησης)
Ο αλγόριθμος του Shor βρίσκει τους πρώτους παράγοντες μεγάλων αριθμών, σπάζοντας την κρυπτογράφηση RSA. Λειτουργεί μετατρέποντας το πρόβλημα σε εύρεση περιόδου (συχνότητας).
- Υπέρθεση: Οι πύλες Hadamard δημιουργούν μια μαζική υπέρθεση όλων των πιθανών αριθμών.
- Παράλληλος Υπολογισμός: Ελεγχόμενες πύλες εκτελούν μαθηματικές πράξεις για όλες τις τιμές ταυτόχρονα.
- Κβαντικός Μετασχηματισμός Fourier (QFT): Πύλες φάσης και Hadamard ευθυγραμμίζουν τις φάσεις, προκαλώντας εποικοδομητική συμβολή στις σωστές απαντήσεις και καταστρεπτική στις λάθος.
4. Αλγόριθμος του Grover (Αναζήτηση σε Βάσεις Δεδομένων)
Ο αλγόριθμος του Grover επιτρέπει την αναζήτηση σε μη ταξινομημένες βάσεις δεδομένων σε χρόνο √N αντί για N προσπάθειες. Χρησιμοποιεί την τεχνική της Ενίσχυσης Πλάτους.
Το Μαντείο (Oracle) αναποδογυρίζει τη φάση της σωστής απάντησης σε αρνητική. Στη συνέχεια, ο Διαχύτης (Diffusion Operator), ένα δίκτυο από πύλες H και X, κάνει κατοπτρισμό γύρω από τον μέσο όρο, εκτοξεύοντας την πιθανότητα της σωστής απάντησης προς τα πάνω.
5. Πρακτική Εφαρμογή και Υλοποίηση σε Κώδικα
Ακολουθεί η υλοποίηση του αλγορίθμου Grover για 2 qubits με τη χρήση της βιβλιοθήκης Qiskit της IBM για την εύρεση της κατάστασης |11⟩:
from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler
qc = QuantumCircuit(2, 2)
# ΒΗΜΑ 1: Υπέρθεση
qc.h(0)
qc.h(1)
qc.barrier()
# ΒΗΜΑ 2: Μαντείο (Oracle)
qc.cz(0, 1)
qc.barrier()
# ΒΗΜΑ 3: Διαχύτης
qc.h(0)
qc.h(1)
qc.x(0)
qc.x(1)
qc.cz(0, 1)
qc.x(0)
qc.x(1)
qc.h(0)
qc.h(1)
qc.barrier()
# ΒΗΜΑ 4: Μέτρηση
qc.measure([0, 1], [0, 1])
sampler = StatevectorSampler()
job = sampler.run([qc])
print(job.result()[0].data.c.get_counts())
# Έξοδος: {'11': 1} (100% επιτυχία)