Γνωριμία με τον κβαντικό επεξεργαστή σας

Οι κβαντικοί υπολογιστές είναι κατασκευασμένοι από qubit. Δεν αρκεί όμως να έχουμε πολλά qubits.

Ένα δισεκατομμύριο qubits που εργάζονται σε πλήρη απομόνωση δεν θα επιτύχουν ποτέ τίποτα. Πρέπει να μιλούν μεταξύ τους. Αυτό σημαίνει ότι η ανάγκη σύνδεσης με τις λεγόμενες ελεγχόμενες λειτουργίες. Κάθε συσκευή έχει τους δικούς της κανόνες για τους οποίους ζεύγη qubits μπορούν να συνδεθούν με αυτόν τον τρόπο. Όσο καλύτερη είναι η συνδεσιμότητα μιας συσκευής, τόσο πιο γρήγορα και ευκολότερα θα είναι για εμάς να εφαρμόσουμε ισχυρούς κβαντικούς αλγόριθμους.

Η φύση των σφαλμάτων είναι επίσης ένας σημαντικός παράγοντας. Στην εγγύς εποχή της κβαντικής πληροφορικής, τίποτα δεν θα είναι τέλειο. Επομένως, πρέπει να γνωρίζουμε τι είδους σφάλματα θα συμβούν, πόσο πιθανά είναι και αν είναι δυνατόν να μετριαστούν οι επιπτώσεις τους στις εφαρμογές που μας ενδιαφέρουν.

Αυτές είναι οι τρεις πιο σημαντικές πτυχές μιας κβαντικής συσκευής: αριθμός qubit, συνδεσιμότητα και επίπεδο θορύβου. Για να έχετε οποιαδήποτε ιδέα για το τι μπορεί να κάνει ένας κβαντικός υπολογιστής, πρέπει να τα γνωρίζετε όλα.

Ας κάνουμε λοιπόν ένα παιχνίδι που τρέχει σε μια κβαντική συσκευή και δείχνει όλα αυτά τα πράγματα απευθείας. Παίζοντας απλώς το παιχνίδι, ο παίκτης θα δει ακριβώς πόσο μεγάλη και συνδεδεμένη είναι η συσκευή. Συγκρίνοντας ένα τρέξιμο στην πραγματική συσκευή με έναν σε έναν προσομοιωτή, θα δουν ακριβώς πόσο ισχυρός είναι ο θόρυβος. Στη συνέχεια, παίζοντας ξανά με κάποιο μετριασμό σφαλμάτων, θα πάρουν μια ιδέα για το πόσες χρήσιμες πληροφορίες μπορούν να σωθούν ακόμη και στην εποχή των ελαφρώς θορυβώδους κβαντικών υπολογιστών. Θα ονομάσουμε αυτό το παιχνίδι Quantum Awesomeness και θα το παίξουμε στη συσκευή IBM γνωστή ως «ibmq_16_melbourne».

Η παραπάνω εικόνα παρέχει έναν γρήγορο οδηγό για το τι συμβαίνει στη συσκευή της Μελβούρνης. Υπάρχουν 14 qubits, αριθμημένα από 0 έως 13, που εμφανίζονται από χρωματιστούς κύκλους. Τα qubits που μπορούν να μιλήσουν μεταξύ τους μέσω ελεγχόμενης λειτουργίας εμφανίζονται συνδεδεμένα με γραμμές, στις οποίες έχει δοθεί ένα γράμμα για ένα όνομα.

Το πιο χρήσιμο πράγμα που μπορείτε να κάνετε με ελεγχόμενες λειτουργίες είναι να δημιουργήσετε και να χειριστείτε την εμπλοκή. Μόνο με αυτό μπορούμε να διερευνήσουμε τον πλήρη χώρο των δυνατοτήτων που είναι ανοιχτό στα qubit μας, και ελπίζουμε να κάνουμε πράγματα που είναι πρακτικά αδύνατο για τους κλασικούς υπολογιστές.

Το απλούστερο είδος εμπλοκής περιλαμβάνει μόνο δύο qubit. Θα προκαλέσει το καθένα να αποδώσει εξόδους που είναι τυχαίες, αλλά με συσχετίσεις μεταξύ τους. Για παράδειγμα, εξετάστε το ενδεχόμενο να ακολουθήσετε πρόγραμμα σε μερικά qubits.

Αυτό είναι ένα διάγραμμα κυκλώματος: μια ιστορία των qubits στο πρόγραμμά μας που αναφέρεται από αριστερά προς τα δεξιά.

Εδώ εκτελούμε μια λειτουργία rx για τη γωνία π / 2, η οποία οδηγεί σε ουσιαστικά μισή πύλη x. Αυτό είναι ένα παράδειγμα αυτού που ονομάσαμε «μερικό ΟΧΙ» στα θωρηκτά με μερικό παιχνίδι ΔΕΝ πύλες. Αντί να αναστρέφει το qubit από το | 0⟩ στο | 1⟩, το σταθμεύει σε μια κατάσταση κβαντικής υπέρθεσης στο ενδιάμεσο.

Η λειτουργία που ενεργεί και στα δύο qubits είναι ελεγχόμενη-NOT, η οποία εφαρμόζει NOT στο κάτω qubit μόνο όταν η κορυφή βρίσκεται σε κατάσταση | 1⟩. Δεδομένου ότι η κορυφή είναι σε υπέρθεση και των δύο δυνατοτήτων, η επίδραση του ελεγχόμενου-ΟΧΙ είναι να επεκτείνει την υπέρθεση στο κάτω qubit επίσης: μια συνδυασμένη υπέρθεση και των δύο | 0⟩ και των δύο | 1⟩.

Το τελευταίο μέρος του κυκλώματος είναι να εξαγάγετε ένα απλό bit από κάθε qubit: | 0⟩ γίνεται 0, | 0⟩ γίνεται 1 και η υπέρθεση γίνεται τυχαία επιλογή του ενός ή του άλλου. Αλλά παρόλο που και τα δύο qubits θα δώσουν ένα τυχαίο αποτέλεσμα σε αυτήν την περίπτωση, είναι βέβαιο ότι θα συμφωνούν πάντα.

Για να το επαληθεύσουμε, ας το εκτελέσουμε. Το αποτέλεσμα που πήρα ήταν,

{'11': 503, '00': 521}

Από τα 1024 δείγματα για τα οποία εκτελέστηκε το πρόγραμμα, όλα τα αποτελέσματα βγήκαν είτε «00» είτε «11». Και έχουμε περίπου ίσους αριθμούς δειγμάτων για κάθε ένα. Όλα όπως προβλέπονται.

Αντικαθιστώντας την τιμή π / 2 μπορούμε να αλλάξουμε τη φύση της υπέρθεσης. Μια χαμηλότερη τιμή θα παράγει αποτελέσματα πιο προκατειλημμένα στις εξόδους του 0 και μια τιμή πλησιέστερη στο π θα έχει ως αποτέλεσμα μια προκατάληψη προς 1s. Αυτό σημαίνει ότι μπορούμε να διαφοροποιήσουμε την πιθανότητα με την οποία κάθε έξοδος θα δώσει 1. Αλλά ανεξάρτητα από την τιμή που επιλέγουμε, αυτή η μορφή κυκλώματος διασφαλίζει ότι τα αποτελέσματα για τα δύο qubit θα συμφωνούν πάντα.

Σε αυτό το παιχνίδι θα δημιουργήσουμε πολλά από αυτά τα ζεύγη εμπλεγμένων qubits σε όλη τη συσκευή. Για να το κάνουμε αυτό, πρέπει πρώτα να διαλέξουμε έναν τρόπο σύζευξης των qubits μονογαμικά (πιθανόν να αφήσουμε μερικά εφεδρικά). Αυτό το ζεύγος θα επιλεγεί τυχαία, και ολόκληρο το σημείο του παιχνιδιού είναι ο παίκτης να μαντέψει τι ήταν το ζεύγος.

Μόλις έχουμε το τυχαίο ζεύγος, θα εκτελέσουμε βασικά το κβαντικό πρόγραμμα παραπάνω σε κάθε ανεξάρτητο ζεύγος. Αν και θα εισαγάγουμε μία διαφορά: για κάθε ζεύγος θα επιλέξουμε τυχαία μια διαφορετική τιμή για τη λειτουργία rx, οπότε ο βαθμός τυχαιότητας που μοιράζεται τα ζεύγη qubits θα διαφέρει από ζεύγος σε ζεύγος.

Όταν εκτελούμε το κύκλωμα, το αποτέλεσμα θα είναι μια συμβολοσειρά 14 bit: με κάθε bit να περιγράφει την έξοδο κάθε qubit. Δεδομένου ότι εκτελέσαμε πολλά δείγματα για τη λήψη στατιστικών στοιχείων, το πλήρες αποτέλεσμα θα είναι μια λίστα με όλες τις συμβολοσειρές bit που βγήκαν, μαζί με τον αριθμό των φορών που εμφανίστηκε το καθένα.

Δεδομένου ότι ο στόχος του παιχνιδιού είναι ο παίκτης να συμπεράνει το ζεύγος από την έξοδο, θα μπορούσαμε απλώς να απορρίψουμε όλα αυτά τα δεδομένα σε αυτά. Αλλά αυτό πιθανώς δεν θα ήταν πολύ διασκεδαστικό. Αντ 'αυτού, μπορούμε απλώς να επικεντρωθούμε στα σημαντικά σημεία:

  • Ποια είναι η πιθανότητα κάθε qubit να δίνει έξοδο 1 αντί 0;
  • Ποια είναι η πιθανότητα κάθε ζεύγος συνδεδεμένων qubits να δίνει την ίδια τιμή;

Στη συνέχεια μπορούμε να βάλουμε αυτές τις πληροφορίες στην εικόνα της συσκευής μας. Για παράδειγμα, εδώ είναι ένα συγκεκριμένο σετ τρεξίματος.

Ο αριθμός που εμφανίζεται σε κάθε qubit είναι το ποσοστό των δειγμάτων για τα οποία το αποτέλεσμα ήταν 1. Ο αριθμός σε κάθε σύνδεση είναι το ποσοστό των δειγμάτων για τα οποία το αντίστοιχο ζεύγος qubits είχε αποτελέσματα που διαφωνούν. Με αυτές τις πληροφορίες, μπορούμε εύκολα να βρούμε τα ζεύγη qubits που μπλέχτηκαν: είτε ψάχνοντας για τα qubits που μοιράζονται την ίδια πιθανότητα να βγάλουμε ένα 1, είτε βρίσκοντας τα ζεύγη που δεν διαφωνούσαν ποτέ.

Τα παραπάνω δεδομένα εξήχθησαν από έναν προσομοιωτή. Τώρα ας το δοκιμάσουμε στην πραγματική κβαντική συσκευή.

Εδώ τα αποτελέσματα δεν είναι τόσο σαφή όσο για τον προσομοιωτή. Τα αποτελέσματα του θορύβου είναι πολύ ισχυρότερα, καθιστώντας πολύ πιο δύσκολο τον εντοπισμό των ζευγαριών.

Αλλά όλα δεν χάνονται! Μπορούμε να κάνουμε κάποιο μετριασμό σφαλμάτων. Γνωρίζουμε ότι η έξοδος πρέπει να έχει μια συγκεκριμένη δομή, έτσι μπορούμε να αναζητήσουμε αυτήν τη δομή και να την χρησιμοποιήσουμε για να καθαρίσουμε το αποτέλεσμα.

Εδώ είναι ένας πολύ απλοϊκός τρόπος για να το κάνετε αυτό. Κατ 'αρχάς, κάθε qubit θα κοιτάξει όλους τους γείτονές του και θα δει με ποιον συμφωνεί περισσότερο. Στη συνέχεια θα υποθέσει ότι αυτό το πιο ευχάριστο qubit είναι ο συνεργάτης του. Για να προσπαθήσουμε να εξισορροπήσουμε τα σφάλματα στα αποτελέσματά του, θα αντικαταστήσουμε στη συνέχεια την πιθανότητα να έχουμε έξοδο 1 για αυτό το qubit με τον μέσο όρο και από τους δύο.

Αν και τα πράγματα έχουν βελτιωθεί, δεν έχουν γίνει τέλεια με κανένα τρόπο. Αυτό συμβαίνει επειδή το σχήμα μετριασμού των σφαλμάτων μας είναι πολύ απλό και απλώς ενεργοποιείται στο τέλος της διαδικασίας. Ο μετριασμός των σφαλμάτων μπορεί να έχει ισχυρά αποτελέσματα, αλλά είναι πιο αποτελεσματικό όταν ενσωματωθεί στο ίδιο το κβαντικό πρόγραμμα (κάτι που θα μπορούσατε να δοκιμάσετε με τον εαυτό σας εάν θέλετε να επεκταθείτε σε αυτό το έργο).

Προς το παρόν, ας παίξουμε απλώς το παιχνίδι χρησιμοποιώντας αυτά τα μετριασμένα αποτελέσματα.

Η δουλειά μας είναι να κοιτάξουμε τους αριθμούς στα qubits και να προσπαθήσουμε να βρούμε ζεύγη που είτε έχουν τον ίδιο αριθμό είτε τουλάχιστον έχουν αριθμούς που είναι όσο το δυνατόν πιο κοντά. Οι δύο 48s στα αριστερά φαίνονται σαν μια καλή αρχή. Ας πάμε λοιπόν για το ζεύγος Α, καθώς πιστεύουμε ότι είναι εμπλεγμένο.

Τα δύο 46s του ζεύγους Η είναι τα ίδια μεταξύ τους, και επίσης αρκετά διαφορετικά από τους γείτονές τους. Θα πάμε λοιπόν για αυτό.

Τότε το ζευγάρι Ε φαίνεται αρκετά σίγουρο.

Και ζεύγος Γ.

Τώρα φτάσαμε σε ένα σημείο όπου ο θόρυβος το καθιστά λίγο δύσκολο για εμάς. Πρέπει τα 42 να συνδυαστούν με το 55 ή το 56; Δεδομένου ότι το 55 είναι πιο κοντά στην αξία, θα πάμε για το ζεύγος Ο.

Τελικά μένουμε με δύο qubit που πρέπει να έχουν συνδυαστεί με τίποτα. Αυτό θα συμβαίνει πάντα σε αυτήν τη συσκευή λόγω του τρόπου δομής του γραφήματος συνδεσιμότητας. Φτάσαμε λοιπόν στη λύση! Αλλά ήταν το σωστό;

Ας δούμε ξανά την αθόρυβη προσομοίωση, όπου η σωστή αντιστοίχιση ήταν πολύ πιο εύκολη.

Τα ζευγάρια που δείχνουν τέλεια συμφωνία εδώ είναι ακριβώς αυτά που μόλις επιλέξαμε. Οπότε ήμασταν σωστοί. Παίξαμε ένα παιχνίδι σε έναν κβαντικό υπολογιστή και κερδίσαμε!

Ποιο είναι το επόμενο?

Αν θέλετε να ξεκινήσετε με τον κβαντικό προγραμματισμό, γιατί να μην ρίξετε μια ματιά στον πηγαίο κώδικα για αυτό το παιχνίδι, διαθέσιμο στον οδηγό Qiskit.

Συλλέξαμε ακόμη και μερικές ιδέες για τρόπους με τους οποίους μπορείτε να τις επεκτείνετε

  • Γράψτε έναν αλγόριθμο για να παίξετε το παιχνίδι. Αυτό θα μαντέψει τα ζεύγη όσο το δυνατόν πιο σωστά αναλύοντας έξυπνα την ανάλυση των δεδομένων.
  • Το παζλ είναι πολύ εύκολο να λυθεί όταν δεν υπάρχει θόρυβος. Θα μπορούσατε να εισαγάγετε διαφορετικά επίπεδα δυσκολίας.
  • Ο μετριασμός των σφαλμάτων που χρησιμοποιείται εδώ είναι πολύ απλοϊκός. Θα μπορούσατε να προσπαθήσετε να εφαρμόσετε κάτι πιο εξελιγμένο, όπως η «ισχυρή εκτίμηση φάσης» που περιγράφεται σε αυτήν την ομιλία.
  • Θα μπορούσαν να χρησιμοποιηθούν πιο πολύπλοκες καταστάσεις που εμπλέκονται, όπως αυτές με τρία qubit, για να διασφαλιστεί ότι κανένα qubits σε μια συσκευή δεν θα μείνει εκτός διασκέδασης;

Καλή διασκέδαση, με αυτό και τα άλλα κβαντικά παιχνίδια μας!