5.3.1 Hoekvergroting
Het laatste quantumalgoritme dat we zullen bespreken is een belangrijke subroutine die in veel andere quantumalgoritmes wordt gebruikt (het is bijvoorbeeld de kern van Grovers algoritme voor functies met meer dan invoerbits).
Het probleem dat deze subroutine oplost lijkt op het eerste gezicht een beetje apart. Het is namelijk een puur quantumprobleem dat niet een heel zinvolle klassieke formulering heeft. Toch komt het op natuurlijke wijze voor in verschillende andere algoritmes, waardoor de subroutine erg nuttig is. Dit laat zien hoe verschillend de ideeën achter quantumalgoritmes zijn en dat er nieuwe manieren van denken nodig zijn voor het uitvinden van nieuwe quantumalgoritmes!
Bovendien is dit een voorbeeld van een probleem waarbij het orakel meer dan één keer geraadpleegd moet worden. Dit is anders dan alle quantumalgoritmes die we eerder in deze quest hebben bekeken, waarbij het orakel maar één keer geraadpleegd hoefde te worden.
Huiswerkopdracht 5.6 (Wat is de hoek? (uitdagend)).
Alice en Bob zijn overstuur. "Het spijt ons voor de overlast,"vertellen ze. "We hebben deze prachtige reflectie met hoek
gemaakt, maar we kunnen ons niet herinneren welke het was – we herinneren ons alleen het gehele getal !"1616 16 Als je wilt, kun je deze reflectie zien als een orakel dat één van de twee hoeken op een vreemde manier verbergt. Wat hun probleem nog erger maakt is dat de gate zichzelf vernietigt als het meer dan keer gebruikt wordt.
Kan jij ze helpen? Jouw taak, als je die aanvaardt, is om te bepalen welke van de twee hoeken de juiste is door de gate maximaal keer te gebruiken.
Hint: Twee opeenvolgende spiegelingen geven een rotatie. Wat krijg je als je en combineert? (Je hebt de algemene formule van 4.6 niet nodig om deze vraag te beantwoorden).
Hack.
We volgen de hint, dus we bekijken . We zien dat
een rotatie is met hoek . In de tweede stap hebben we gebruikt dat , dit is precies hoe we hebben gedefinieerd in Vgl. 2.33.
In Paragraaf 4.1.4 hebben we besproken dat twee opeenvolgende rotaties een rotatie maken waarvan de hoek de som is van de twee oorspronkelijke hoeken. Aangezien een rotatie is met een hoek , betekent dit dat als we dit keer herhalen, we een rotatie krijgen met een hoek van . Dat wil zeggen:
Als we als begintoestand nemen, dan krijgen we
Dus de eindtoestand is of (als het teken een ’’ was) of (als het teken een ’’ was). We kunnen deze twee gevallen onderscheiden door de eindtoestand te meten.