5.3 Op zoek met Grover
Na een veilige terugkeer op aarde zijn Hila en Iman goede vrienden geworden met Alice en Bob. Ze besluiten met z’n vieren nieuwjaarsavond samen door te brengen. Deze dag valt toevallig ook samen met de trekking van de jaarlijkse quantumloterij! Ze weten dat maar één van de vier de hoofdprijs kan winnen, maar wie zal dat zijn? Als we onze vier hoofdpersonen labelen met bitstrings, bijvoorbeeld als
dan kunnen we de loterij beschrijven met een functie die de waarde 1 geeft voor de bitstring die overeenkomt met de winnaar. Als bijvoorbeeld , dan is Hila de winnaar van de loterij van dit jaar.
Hoe kunnen onze vrienden de winnaar bepalen? Met een klassiek algoritme moeten ze de functie tot drie keer evalueren om de winnaar te bepalen. Stel bijvoorbeeld dat ze te weten komen dat en – dan weten ze nog steeds niet of Alice of Iman de winnaar is! Door ouderwetse redenen die al lang vergeten zijn, staat in de regels van de loterij dat de functie maar één keer geëvalueerd mag worden. Maar de loterij vindth het ook prima als we het fase-orakel uitvoeren – het is tenslotte een quantumloterij!
Alice en haar vrienden komen bij elkaar en beginnen na te denken. Na een tijdje wordt Bob ongeduldig en hij stelt voor: "Laten we gewoon de eerste stappen van Deutsch-Jozsa en Bernstein-Vazirani volgen – dezelfde truc zal vast nog wel een keer werken…"missing De anderen weten niet echt een beter alternatief, dus ze gaan aan de slag en bereiden de volgende toestand voor:
Vervolgens geven ze de toestand door aan de quantumloterij, die het fase-orakel toepast en de toestand teruggeeft. Laat en de twee bits zijn die de winnaar aanduiden, d.w.z. en alle andere functiewaarden zijn nul. De loterij stuurt dan de volgende twee-qubit-toestand terug:
waarbij de in de eerste regel een van de plustekens vervangt door een minteken. Na het toepassen van een Hadamard-transformatie krijgen ze de volgende toestand:
Nu zijn onze vrienden in de war en weten ze niet goed wat ze moeten doen. Hila heeft een idee: "Ik vind het minteken voor de maar niks. Waarom passen we geen quantumbewerking toe die er als volgt uitziet?"missing
Iman voegt toe: "Ik denk dat ik weet hoe ik dit kan maken met behulp van een controlled-Z-bewerking en een handvol NOTs…” In een mum van tijd, komen onze vrienden tot de volgende toestand:
Na een klein poosje realiseert Alice zich: "Deze twee-qubit-toestand kan worden geschreven als een tensorproduct!"missing
Bob zegt enthousiast: "Aha! We hoeven alleen nog maar een Hadamard-transformatie toe te passen en beide qubits te meten. Kan je er ook achter komen wie de winnaar van de quantumloterij van dit jaar wordt?
Huiswerkopdracht 5.5 (Quantumloterij).
-
1.
Schrijf de kwantumoperatie van Vgl. 5.16 uit met behulp van een controlled-Z-bewerking en een paar NOT-bewerkingen.
Hint: Houd in gedachten dat de controlled-Z-bewerking als volgt werkt op de basistoestanden : Als dan doet het niets. Als dan werkt het als een op de tweede qubit. Je hebt vorige week geleerd hoe je dit kunt maken in Quirky.
-
2.
Maak het quantumalgoritme dat Alice, Bob, Hila en Iman hebben bedacht in Quirky en bepaal de winnaar van de quantumLoterij van dit jaar.
Hack.
-
1.
We kunnen de quantumbewerking van Vgl. 5.16 schrijven als
Dit werkt, omdat als volgt werkt (volgens de hint en wat doet)
Dit is bijna wat we willen, konden we maar de rollen van en van alle invoer- en uitvoerbits omdraaien. Maar dit is precies wat doet! Dus we passen toe op alle bits voor en na de .
- 2.
Het quantumalgoritme dat onze vrienden net ontdekt hebben is een speciaal geval van het algoritme van Grover. Grovers algoritme lost het volgende probleem op: Gegeven een orakel voor een functie , vindt het de waarvoor geldt dat . We kunnen dit probleem zien als het vinden van een loterijwinnaar tussen deelnemers of, wat eenvoudiger gezegd, het vinden van een item dat voldoet aan een bepaalde interessante eigenschap in een ongestructureerde database (waarmee we bedoelen dat de items in de database niet gesorteerd of vergelijkbaar zijn). Met hetzelfde argument dat we eerder gaven, zal elk klassiek algoritme in het slechtste geval naar alle items moeten kijken voordat het klaar is (gemiddeld zal je nog steeds naar ongeveer de helft van de items moeten kijken). Grovers algoritme daarentegen hoeft het orakel maar een paar keer te gebruiken en dat aantal is evenredig met - een hoeveelheid die veel langzamener groeit dan de ‘klassieke’ . Het algoritme van Grover is een veelzijdig hulpmiddel dat een kwadratische versnelling geeft voor veel rekenproblemen.