Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

Relevanta dokument
Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna

1-1 Hur lyder den tidsberoende Schrödingerekvationen för en partikel som rör sig längs x-axeln? Definiera ingående storheter!

TATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning

SF1624 Algebra och geometri

Föreläsning 3: Dekomposition. Dekomposition

KOSMOS VÅR KVANTVÄRLD KVANTDATORER SUPERDATORER I SUPERPOSITION ERIKA ANDERSSON SÄRTRYCK UR: SVENSKA FYSIKERSAMFUNDETS ÅRSBOK 2017

Vektorrum. EX. Plan och linjer i rummet genom origo. Allmänt; mängden av lösningar till AX = 0.

Kvantmekanik II Föreläsning 2 Joakim Edsjö 1/37

TAIU07 Matematiska beräkningar med Matlab

Kvantteknologi. Superpositioner, entanglement, kvantbitar och helt döda katter

a = a a a a a a ± ± ± ±500

Andragradspolynom Några vektorrum P 2

Vektorgeometri för gymnasister

TANA17 Matematiska beräkningar med Matlab

Sökning och sortering

Explorativ övning 7 KOMPLEXA TAL

Linjära ekvationssystem

Föreläsning 1. Introduktion. Vad är en algoritm?

Linjära ekvationssystem

12. SINGULÄRA VÄRDEN. (u Av) u v

Oändligtdimensionella vektorrum

SF1624 Algebra och geometri Lösningsförslag till tentamen Lördagen den 5 juni, 2010 DEL A

Block 2: Lineära system

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Föreläsningsanteckningar Linjär Algebra II Lärarlyftet

FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar

Andragradsekvationer. + px + q = 0. = 3x 7 7 3x + 7 = 0. q = 7

Föreläsning 9: NP-fullständighet

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

9 Funktioner. Exempel. f(x) = x + 1 sqr(y) = y 2. x, om x < 0. abs(x) =

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Lösningar till utvalda uppgifter i kapitel 8

1 Linjära ekvationssystem. 2 Vektorer

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

Föreläsning 7. Felrättande koder

Tentamen i Programmering

Signalanalys med snabb Fouriertransform

TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1. Omfattning. Innehåll Lay, kapitel , Linjära ekvationer i linjär algebra

Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b?

Självkoll: Ser du att de två uttrycken är ekvivalenta?

Övningshäfte 2: Komplexa tal

Determinanter, egenvectorer, egenvärden.

Föreläsning 5: Dynamisk programmering

Kvantteknologi. Superpositioner, entanglement, kvantbitar och helt döda katter

Definition 1 Ett vektorrum M (över R) är en mängd element, vektorer, sådan att det finns en kommutativ operation + på mängden M som uppfyller

Sammanfattninga av kursens block inför tentan

Mer om analytisk geometri

TMV166 Linjär algebra för M, vt 2016

Föreläsning 2. Operativsystem och programmering

Kvantmekanik II (FK5012), 7,5 hp

TENTAMEN I KVANTFYSIK del 1 (5A1324 och 5A1450) samt KVANTMEKANIK (5A1320) med SVAR och LÖSNINGSANVISNINGAR Tisdagen den 5 juni 2007

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

Komplexitetsklasser och repetition

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604, den 9 juni 2011 kl

Föreläsning 3, Matematisk statistik Π + E

Algoritmer, datastrukturer och komplexitet

Asymptotisk komplexitetsanalys

5.7. Ortogonaliseringsmetoder

1 Positivt definita och positivt semidefinita matriser

Övningshäfte 2: Komplexa tal (och negativa tal)

Isometrier och ortogonala matriser

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Tentamen TMV140 Linjär algebra Z

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Lösningsförslag, Tentamen, Differentialekvationer och transformer II, del 2, för CTFYS2 och CMEDT3, SF1629, den 9 juni 2011, kl.

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

DEL I. Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604, den 17 april 2010 kl

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

2 Matrisfaktorisering och lösning till ekvationssystem

Föreläsning 8: Aritmetik och stora heltal

Matematisk statistik 9 hp Föreläsning 3: Transformation och simulering

TANA17 Matematiska beräkningar med Matlab

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

Tentamen i Linjär algebra (TATA31/TEN1) ,

Transformationer i 3D. Gustav Taxén

SF1624 Algebra och geometri Tentamen med lösningsförslag onsdag, 11 januari 2017

Atom- och kärnfysik med tillämpningar -

TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning

Föreläsning 12+13: Approximationsalgoritmer

SF1901 Sannolikhetsteori och statistik I

Atom- och kärnfysik med tillämpningar -

Egenvärdesproblem för matriser och differentialekvationer

Ht Läsanvisningar till Hilbertrum och partiella differentialekvationer. Del 1. Ur Anton, Rorres; Elementary Linear Algebra

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

M = c c M = 1 3 1

Mer om geometriska transformationer

Preliminärt lösningsförslag

Kvadratkomplettering

Linjär Algebra, Föreläsning 8

Svar till vissa uppgifter från första veckan.

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 15-18, 30/11-12/

Carl Olsson Carl Olsson Linjär Algebra / 18

7 november 2014 Sida 1 / 21

! &'! # %&'$# ! # '! &!! #

Lösningsförslag till övningsuppgifter, del V

Hjälpmedel: Det för kursen ociella formelbladet samt TeFyMa. 0 x < 0

ELLER (fyll bara i om du saknar tentamenskod): Datum: 32 maj Bordsnummer: Kontrollera att du fått rätt tentamensuppgifter

MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET MED MATRISINVERSER = = =

Transkript:

Faktorisering med hjälp av kvantberäkningar Lars Engebretsen 003-11-18

Bakgrund Vanliga datorer styrs av klassiska fysikens lagar. Vanliga datorer kan simuleras av turingmaskiner i polynomisk tid. Kanske kan vi lösa svårare problem med kvantmekanik? Vi behöver en vettig modell som dessutom går att implementera. Modellen bör kunna lösa svårare problem än vanliga datorer. Lars Engebretsen 003-11-18 1

Vad är en kvantdator? Klassisk programmering: C, C++, Java, källkod och kompilering: g++ -O4 gurka.cc; javac apelsin.java;./a.out; gdb;... Såsmåningom hoppas vi på något liknande för kvantdatorer. Tekniken är nu mycket mer primitiv, söker analogier till turingmaskinen. Ett kvantprogram : matematiska operationer på ett matematiskt objekt. Detta kan (ska kunna) realiseras fysiskt i laboratorium. Lars Engebretsen 003-11-18

Vad är en kvantdator? Man kan tänka på kvantdatorn på två sätt. 1) En klump materia i ett laboratorium. ) En följd av abstrakta matematiska beräkningssteg efter vissa regler. Vi kommer att använda det senare idag. Lars Engebretsen 003-11-18 3

Modell översikt Informationslagring: Vågfunktionen, en linjärkombination av tillstånd. Programsteg: Lokala unitära transformationer av vågfunktionen. Mätning: Vi frågar systemet vilket tillstånd det är i. Slumpvis svar som beror på vågfunktionen. En mätning förstör nästan all information som finns i vågfunktionen. Lars Engebretsen 003-11-18 4

Modell kvantbiten En kvantbit beskrivs av två bastillstånd: 0 och 1. Kvantbiten kan vara i tillstånd α 0 0 + α 1 1 så snart α 0 + α 1 = 1. ( ) α0 Ibland skriver vi α 0 0 + α 1 1 som. α 1 Lars Engebretsen 003-11-18 5

Modell kvantbiten En kvantbit beskrivs av två bastillstånd: 0 och 1. Kvantbiten kan vara i tillstånd α 0 0 + α 1 1 så snart α 0 + α 1 = 1. ( ) α0 Ibland skriver vi α 0 0 + α 1 1 som. α 1 Mätning: Vi frågar kvantbiten vilket tillstånd den är i. Sannolikheten att vi får svaret i är α i. Efter mätningen kollapsar kvantbiten till det tillstånd vi såg vid mätningen. Lars Engebretsen 003-11-18 5

Modell programsteg Minsta byggstenen: Unitära operatorer. Lars Engebretsen 003-11-18 6

Modell programsteg Minsta byggstenen: -matriser sådana att A = A 1. ( ) ( ) α0 α0 En matris A avbildar tillståndet på A. α 1 α 1 Lars Engebretsen 003-11-18 6

Modell programsteg Minsta byggstenen: -matriser sådana att A = A 1. ( ) ( ) α0 α0 En matris A avbildar tillståndet på A. α 1 α 1 ( ) 1 0 0 1 Lars Engebretsen 003-11-18 6

Modell programsteg Minsta byggstenen: -matriser sådana att A = A 1. ( ) ( ) α0 α0 En matris A avbildar tillståndet på A. α 1 α 1 ( ) ( ) ( ) ( ) 1 0 α0 1 0 α0 avbildar på 0 1 α 1 0 1 α 1 Lars Engebretsen 003-11-18 6

Modell programsteg Minsta byggstenen: -matriser sådana att A = A 1. ( ) ( ) α0 α0 En matris A avbildar tillståndet på A. α 1 α 1 ( ) ( ) ( ) ( ) ( ) 1 0 α0 1 0 α0 α0 avbildar på =. 0 1 α 1 0 1 α 1 α 1 Lars Engebretsen 003-11-18 6

Modell programsteg Minsta byggstenen: -matriser sådana att A = A 1. ( ) ( ) α0 α0 En matris A avbildar tillståndet på A. α 1 α 1 ( ) 1 0 avbildar varje tillstånd på sig själv 0 1 Lars Engebretsen 003-11-18 6

Modell programsteg Minsta byggstenen: -matriser sådana att A = A 1. ( ) ( ) α0 α0 En matris A avbildar tillståndet på A. α 1 α 1 ( ) 1 0 avbildar varje tillstånd på sig själv 0 1 ( ) ( ) ( ) ( ) ( ) 0 1 α0 0 1 α0 α1 avbildar på =. 1 0 α 1 1 0 α 1 α 0 Lars Engebretsen 003-11-18 6

Modell programsteg Minsta byggstenen: -matriser sådana att A = A 1. ( ) ( ) α0 α0 En matris A avbildar tillståndet på A. α 1 α 1 ( ) 1 0 avbildar varje tillstånd på sig själv 0 1 ( ) 0 1 definierar α 1 0 0 0 + α 1 1 α 1 0 + α 0 1. Lars Engebretsen 003-11-18 6

Modell programsteg Minsta byggstenen: -matriser sådana att A = A 1. ( ) ( ) α0 α0 En matris A avbildar tillståndet på A. α 1 α 1 ( ) 1 0 avbildar varje tillstånd på sig själv 0 1 ( ) 0 1 definierar α 1 0 0 0 + α 1 1 α 1 0 + α 0 1. ( ) 1 1 1 definierar 0 1 1 1 0 + 1 1. Lars Engebretsen 003-11-18 6

Modell ett exempel Systemet startar i tillstånd 0. Lägg på operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Lars Engebretsen 003-11-18 7

Modell ett exempel Systemet startar i tillstånd 0. Lägg på operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Systemet byter tillstånd till 1 ( ( ) 1 + i 1 i 1 = 1 i 1 + i) 1 ( ) 1 + i. 0 1 i Lars Engebretsen 003-11-18 7

Modell ett exempel Systemet startar i tillstånd 0. Lägg på operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Systemet byter tillstånd till 1 ( ( ) 1 + i 1 i 1 = 1 i 1 + i) 1 ( ) 1 + i. 0 1 i En mätning nu ger 0 och 1 med samma sannolikhet. Lars Engebretsen 003-11-18 7

Modell ett exempel Systemet startar i tillstånd 0. Lägg på operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Systemet byter tillstånd till 1 ( ( ) 1 + i 1 i 1 = 1 i 1 + i) 1 ( ) 1 + i. 0 1 i En mätning nu ger 0 och 1 med samma sannolikhet. Antag att vi mäter och ser 1. Efteråt vet vi att systemet är i tillstånd 1. Lars Engebretsen 003-11-18 7

Modell ett exempel Systemet startar i tillstånd 0. Lägg på operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Systemet byter tillstånd till 1 ( ( ) 1 + i 1 i 1 = 1 i 1 + i) 1 ( ) 1 + i. 0 1 i En mätning nu ger 0 och 1 med samma sannolikhet. Antag att vi mäter och ser 1. Efteråt vet vi att systemet är i tillstånd 1. Använd A igen; systemet hamnar i tillstånd 1 i 1+i 0 + 1. Mät igen. Lars Engebretsen 003-11-18 7

Modell ett exempel Systemet startar i tillstånd 0. Lägg på operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Systemet byter tillstånd till 1 ( ( ) 1 + i 1 i 1 = 1 i 1 + i) 1 ( ) 1 + i. 0 1 i En mätning nu ger 0 och 1 med samma sannolikhet. Antag att vi mäter och ser 1. Efteråt vet vi att systemet är i tillstånd 1. Använd A igen; systemet hamnar i tillstånd 1 i Mätningen ger 0 och 1 med samma sannolikhet. 1+i 0 + 1. Mät igen. Lars Engebretsen 003-11-18 7

Modell ett liknande exempel Samma början: Vi startar i 0 och kör operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Lars Engebretsen 003-11-18 8

Modell ett liknande exempel Samma början: Vi startar i 0 och kör operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Systemet byter tillstånd till 1 ( ( ) 1 + i 1 i 1 = 1 i 1 + i) 1 ( ) 1 + i. 0 1 i Lars Engebretsen 003-11-18 8

Modell ett liknande exempel Samma början: Vi startar i 0 och kör operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Systemet byter tillstånd till 1 ( ( ) 1 + i 1 i 1 = 1 i 1 + i) 1 ( ) 1 + i. 0 1 i Men nu kör vi A igen; Då hamnar vi i 1 ( ) ( ) ( 1 + i 1 i 1 1 + i 0 =. 1 i 1 + i 1 i 1) Lars Engebretsen 003-11-18 8

Modell ett liknande exempel Samma början: Vi startar i 0 och kör operatorn A = 1 ( ) 1 + i 1 i. 1 i 1 + i Systemet byter tillstånd till 1 ( ( ) 1 + i 1 i 1 = 1 i 1 + i) 1 ( ) 1 + i. 0 1 i Men nu kör vi A igen; Då hamnar vi i 1 ( ) ( ) ( 1 + i 1 i 1 1 + i 0 =. 1 i 1 + i 1 i 1) En mätning nu ger 1 med sannolikhet ett. Lars Engebretsen 003-11-18 8

Modell fler bitar Vi behöver fler bitar än en. Bastillstånden blir då b för binära strängar b. Systemets tillstånd skrivs α b b där α b = 1. Vid mätning ser vi b med sannolikhet α b. Efter en mätning kollapsar systemet till det tillstånd vi såg. Lars Engebretsen 003-11-18 9

Feynmans motivering av kvantberäkningar Hur många bastillstånd finns det? Två bitar: 00, 01, 10, 11. Tre bitar: 000, 001, 010, 011, 100, 101, 110, 111. n bitar: n bastillstånd! Lars Engebretsen 003-11-18 10

Feynmans motivering av kvantberäkningar Hur många bastillstånd finns det? Två bitar: 00, 01, 10, 11. Tre bitar: 000, 001, 010, 011, 100, 101, 110, 111. n bitar: n bastillstånd! Det tar exponentiell tid att simulera ett n-bitarsystem klassiskt. Så kanske ger kvantberäkningar en exponentiell uppsnabbning? Lars Engebretsen 003-11-18 10

Modell operationer på två bitar Operationer definieras, som tidigare, som unitära matriser. 1 0 0 0 Vilken transformation definieras av 0 1 0 0 0 0 0 1? 0 0 1 0 α 00 00 + α 01 01 + α 10 10 + α 11 11 α 00 00 + α 01 01 + α 11 10 + α 10 11. Lars Engebretsen 003-11-18 11

Modell operationer på två bitar Operationer definieras, som tidigare, som unitära matriser. 1 0 0 0 Vilken transformation definieras av 0 1 0 0 0 0 0 1? 0 0 1 0 α 00 00 + α 01 01 + α 10 10 + α 11 11 α 00 00 + α 01 01 + α 11 10 + α 10 11. Om den första biten är noll ändras inte den andra biten. Om den första biten är ett negeras den andra biten. Lars Engebretsen 003-11-18 11

Modell sammanfattning Information lagras som en vektor i ett komplext vektorrum. Vektorrummet har n dimensioner om vi har n kvantbitar. Programmet består av unitära operationer på högst två kvantbitar åt gången. Mått på komplexitet: Antal sådana operationer. Vi får resultatet genom att mäta. Vi ser b med sannolikhet koefficienten framför b. En mätning gör att vågfunktionen kollapsar. Lars Engebretsen 003-11-18 1

Är modellen användbar? Vad klarar vi av att göra i kvantmodellen? Lars Engebretsen 003-11-18 13

Är modellen användbar? Vad klarar vi av att göra i kvantmodellen? Alla kvantberäkningar är reversibla; de kan alltså köras baklänges. Därför finns inte operationer av typen sätt x till 17. Lars Engebretsen 003-11-18 13

Är modellen användbar? Vad klarar vi av att göra i kvantmodellen? Alla kvantberäkningar är reversibla; de kan alltså köras baklänges. Därför finns inte operationer av typen sätt x till 17. Trots detta kan alla deterministiska beräkningar simuleras. Huvudidé: NAND-grindar är universella; det räcker alltså att simulera dem. [NAND(x 1, x ) = (x 1 x ).] NAND-grindar kan simuleras reversibelt om man behåller indata. Lars Engebretsen 003-11-18 13

Faktorisering Vi vill dela upp N, ett tal med n-bitar, i primfaktorer. Lars Engebretsen 003-11-18 14

Faktorisering Vi vill dela upp N, ett tal med n-bitar, i primfaktorer. Välj ett slumpvis x och låt r vara dess ordning mod N; x r 1 mod N. Det är känt att gcd(x r/ 1, N) ofta är en icke-trivial faktor. Lars Engebretsen 003-11-18 14

Faktorisering Vi vill dela upp N, ett tal med n-bitar, i primfaktorer. Välj ett slumpvis x och låt r vara dess ordning mod N; x r 1 mod N. Det är känt att gcd(x r/ 1, N) ofta är en icke-trivial faktor. Så om vi kan beräkna ordningen mod N så kan vi även faktorisera N. Shors algoritm beräknar ordningen mod N i polynomisk tid. Lars Engebretsen 003-11-18 14

Faktorisering Vi vill dela upp N, ett tal med n-bitar, i primfaktorer. Välj ett slumpvis x och låt r vara dess ordning mod N; x r 1 mod N. Det är känt att gcd(x r/ 1, N) ofta är en icke-trivial faktor. Så om vi kan beräkna ordningen mod N så kan vi även faktorisera N. Shors algoritm beräknar ordningen mod N i polynomisk tid, dvs antalet operationer är polynomiskt i n. Lars Engebretsen 003-11-18 14

Översikt av algoritmen Shors algoritm har tre faser: 1. Konvertera 0 till en likformig fördelning. Lars Engebretsen 003-11-18 15

Översikt av algoritmen Shors algoritm har tre faser: 1. Konvertera 0 till en likformig fördelning. Kan göras genom att köra 1 ( ) 1 1 på varje kvantbit. 1 1 Lars Engebretsen 003-11-18 15

Översikt av algoritmen Shors algoritm har tre faser: 1. Konvertera 0 till en likformig fördelning. Kan göras genom att köra 1 ( ) 1 1 på varje kvantbit. 1 1. Beräkna x a mod N givet x, a och N. Lars Engebretsen 003-11-18 15

Översikt av algoritmen Shors algoritm har tre faser: 1. Konvertera 0 till en likformig fördelning. Kan göras genom att köra 1 ( ) 1 1 på varje kvantbit. 1 1. Beräkna x a mod N givet x, a och N. Går att göra om vi behåller indata. Lars Engebretsen 003-11-18 15

Översikt av algoritmen Shors algoritm har tre faser: 1. Konvertera 0 till en likformig fördelning. Kan göras genom att köra 1 ( ) 1 1 på varje kvantbit. 1 1. Beräkna x a mod N givet x, a och N. Går att göra om vi behåller indata. m 1 3. Beräkna fouriertransformen av a: a m/ ω ac c där ω = e πi/m. Lars Engebretsen 003-11-18 15

Översikt av algoritmen Shors algoritm har tre faser: 1. Konvertera 0 till en likformig fördelning. Kan göras genom att köra 1 ( ) 1 1 på varje kvantbit. 1 1. Beräkna x a mod N givet x, a och N. Går att göra om vi behåller indata. m 1 3. Beräkna fouriertransformen av a: a m/ Antag tillsvidare att detta går att göra. ω ac c där ω = e πi/m. Lars Engebretsen 003-11-18 15

Mer detaljerad version av algoritmen Givet x and N vill vi beräkna ordningen av x mod N. N består av n bitar. 1. Skapa a genom att skapa m = 3n likafördelade slumpbitar. Tillstånd: m/ m 1 a=0 a, x, N Lars Engebretsen 003-11-18 16

Mer detaljerad version av algoritmen Givet x and N vill vi beräkna ordningen av x mod N. N består av n bitar. 1. Skapa a genom att skapa m = 3n likafördelade slumpbitar. Tillstånd: m/ m 1 a=0 a, x, N. Beräkna x a mod N. Tillstånd: m/ m 1 a=0 xa, a, x, N Lars Engebretsen 003-11-18 16

Mer detaljerad version av algoritmen Givet x and N vill vi beräkna ordningen av x mod N. N består av n bitar. 1. Skapa a genom att skapa m = 3n likafördelade slumpbitar. Tillstånd: m/ m 1 a=0 a, x, N. Beräkna x a mod N. Tillstånd: m/ m 1 a=0 xa, a, x, N 3. Fouriertransformera a. a m/ m 1 ω ac c Lars Engebretsen 003-11-18 16

Mer detaljerad version av algoritmen Givet x and N vill vi beräkna ordningen av x mod N. N består av n bitar. 1. Skapa a genom att skapa m = 3n likafördelade slumpbitar. Tillstånd: m/ m 1 a=0 a, x, N. Beräkna x a mod N. Tillstånd: m/ m 1 a=0 xa, a, x, N 3. Fouriertransformera a. Tillstånd: m m 1 a=0 m 1 ω ac x a, c, x, N Lars Engebretsen 003-11-18 16

Mer detaljerad version av algoritmen Givet x and N vill vi beräkna ordningen av x mod N. N består av n bitar. 1. Skapa a genom att skapa m = 3n likafördelade slumpbitar. Tillstånd: m/ m 1 a=0 a, x, N. Beräkna x a mod N. Tillstånd: m/ m 1 a=0 xa, a, x, N 3. Fouriertransformera a. Tillstånd: m m 1 a=0 4. Mät tillståndet och beräkna r givet observationen av c. m 1 ω ac x a, c, x, N Lars Engebretsen 003-11-18 16

Analys av algoritmen intuition m 1 Tillstånd när vi mäter: m a=0 m 1 ω ac x a, c, x, N Vad är sannolikheten att se ett visst x k, c, x, N? Lars Engebretsen 003-11-18 17

Analys av algoritmen intuition m 1 Tillstånd när vi mäter: m a=0 m 1 ω ac x a, c, x, N Vad är sannolikheten att se ett visst x k, c, x, N? Eftersom x k x k+r x k+r bidrar flera a till samma x k, c, x, N. Lars Engebretsen 003-11-18 17

Analys av algoritmen intuition m 1 Tillstånd när vi mäter: m a=0 m 1 ω ac x a, c, x, N Vad är sannolikheten att se ett visst x k, c, x, N? Eftersom x k x k+r x k+r bidrar flera a till samma x k, c, x, N. Pr[ x k, c, x, N ] = m a:x a x k ω ac Lars Engebretsen 003-11-18 17

Analys av algoritmen intuition m 1 Tillstånd när vi mäter: m a=0 m 1 ω ac x a, c, x, N Vad är sannolikheten att se ett visst x k, c, x, N? Eftersom x k x k+r x k+r bidrar flera a till samma x k, c, x, N. Pr[ x k, c, x, N ] = m a:x a x k ω ac = m ω (k+jr)c j Lars Engebretsen 003-11-18 17

Analys av algoritmen intuition m 1 Tillstånd när vi mäter: m a=0 m 1 ω ac x a, c, x, N Vad är sannolikheten att se ett visst x k, c, x, N? Eftersom x k x k+r x k+r bidrar flera a till samma x k, c, x, N. Pr[ x k, c, x, N ] = m a:x a x k ω ac = m ω kc ω jrc j Lars Engebretsen 003-11-18 17

Analys av algoritmen intuition m 1 Tillstånd när vi mäter: m a=0 m 1 ω ac x a, c, x, N Vad är sannolikheten att se ett visst x k, c, x, N? Eftersom x k x k+r x k+r bidrar flera a till samma x k, c, x, N. Pr[ x k, c, x, N ] = m a:x a x k ω ac = m ω kc j ω jrc Lars Engebretsen 003-11-18 17

Analys av algoritmen intuition m 1 Tillstånd när vi mäter: m a=0 m 1 ω ac x a, c, x, N Vad är sannolikheten att se ett visst x k, c, x, N? Eftersom x k x k+r x k+r bidrar flera a till samma x k, c, x, N. Pr[ x k, c, x, N ] = m När är denna summa stor? a:x a x k ω ac ( = ) m ω rc j j. Lars Engebretsen 003-11-18 17

Analys av algoritmen intuition m 1 Tillstånd när vi mäter: m a=0 m 1 ω ac x a, c, x, N Vad är sannolikheten att se ett visst x k, c, x, N? Eftersom x k x k+r x k+r bidrar flera a till samma x k, c, x, N. Pr[ x k, c, x, N ] = m a:x a x k ω ac När är denna summa stor? Studera j (ωrc ) j. ( = ) m ω rc j j. Lars Engebretsen 003-11-18 17

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i 1 1 i Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc 1 1 i Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc ω rc 1 1 i Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc ω rc 1 1 ω 3rc i Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc ω rc 1 1 ω 3rc i Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc ω rc 1 1 ω 3rc i Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc ω rc 1 1 ω 3rc i Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc ω rc 1 1 ω 3rc i Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc ω rc 1 1 ω 3rc i Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc ω rc 1 1 ω 3rc i j (ωrc ) j = längden av summan av ovanstående vektorer. Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc i ω rc 1 1 1 ω rc 1 ω 3rc i i j (ωrc ) j = längden av summan av ovanstående vektorer. Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc i ω rc 1 1 1 ω rc 1 ω 3rc i i j (ωrc ) j = längden av summan av ovanstående vektorer. Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc i ω rc 1 1 1 ω 3rc rc 1 ω 3rc i i j (ωrc ) j = längden av summan av ovanstående vektorer. Lars Engebretsen 003-11-18 18

Analys av algoritmen summor av enhetsrötter När är j (ωrc ) j stort? (ω komplext tal med norm 1.) i ω rc i ω rc 1 1 1 ω 3rc rc 1 ω 3rc i i j (ωrc ) j = längden av summan av ovanstående vektorer. Lars Engebretsen 003-11-18 18

Analys av algoritmen sammanfattning m 1 Tillstånd när vi mäter: m a=0 m 1 Pr[ x k, c, x, N ] = m ω ac x a, c, x, N a:x a x k ω ac Stort om ω rc är nära 1, dvs om e πirc/m är nära 1. ( = ) m ω rc j j. Lars Engebretsen 003-11-18 19

Analys av algoritmen sammanfattning m 1 Tillstånd när vi mäter: m a=0 m 1 Pr[ x k, c, x, N ] = m ω ac x a, c, x, N a:x a x k ω ac ( = ) m ω rc j Stort om ω rc är nära 1, dvs om e πirc/m är nära 1, dvs om rc/ m är nästan ett heltal. j. Lars Engebretsen 003-11-18 19

Analys av algoritmen sammanfattning m 1 Tillstånd när vi mäter: m a=0 m 1 Pr[ x k, c, x, N ] = m ω ac x a, c, x, N a:x a x k ω ac ( = ) m ω rc j Stort om ω rc är nära 1, dvs om e πirc/m är nära 1, dvs om rc/ m är nästan ett heltal, dvs om c m är nära d/r för något heltal d. j. Lars Engebretsen 003-11-18 19

Analys av algoritmen sammanfattning m 1 Tillstånd när vi mäter: m a=0 m 1 Pr[ x k, c, x, N ] = m ω ac x a, c, x, N a:x a x k ω ac ( = ) m ω rc j Stort om ω rc är nära 1, dvs om e πirc/m är nära 1, dvs om rc/ m är nästan ett heltal, dvs om c m är nära d/r för något heltal d. Vi observerar c och vet m, så vi får en approximation till d/r. Om approximationen är bra kan vi beräkna d och r. j. Lars Engebretsen 003-11-18 19

Analys av algoritmen sannolikheten att se ett visst c 0.01 Figuren nedan visar Pr[c] då r = 10 och m = 8. 0.01 0.008 0.006 0.004 0.00 0 0 50 100 150 00 50 Med hög sannolikhet är c d m r 1 m+1; detta räcker. Lars Engebretsen 003-11-18 0

Fouriertransformen m 1 Vi vill implementera a m/ e πiac/m c Lars Engebretsen 003-11-18 1

Fouriertransformen m 1 Vi vill implementera a m/ e πiac/m c En kvantbit: a 1 1 e πiac/ c = 1 1 ( 1) ac c Lars Engebretsen 003-11-18 1

Fouriertransformen m 1 Vi vill implementera a m/ e πiac/m c En kvantbit: a 1 0 1 ( 0 + 1 ); 1 e πiac/ c = 1 1 ( 1) ac c Lars Engebretsen 003-11-18 1

Fouriertransformen m 1 Vi vill implementera a m/ e πiac/m c En kvantbit: a 1 1 e πiac/ c = 1 1 ( 1) ac c 0 1 ( 0 + 1 ); 1 1 ( 0 1 ) Lars Engebretsen 003-11-18 1

Fouriertransformen m 1 Vi vill implementera a m/ e πiac/m c En kvantbit: a 1 1 e πiac/ c = 1 1 ( 1) ac c 0 1 ( 0 + 1 ); 1 1 ( 0 1 ) Detta kan göras med rotationen R = 1 ( ) 1 1 1 1 Lars Engebretsen 003-11-18 1

Fouriertransformen av två kvantbitar verktyg Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. Vi kommer att behöva rotationerna från enbitsfallet: R k roterar bit k. 1 0 0 0 Vi kommer också att behöva byta fas: S = 0 1 0 0 0 0 1 0 0 0 0 i Lars Engebretsen 003-11-18

Fouriertransformen av två kvantbitar verktyg Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. Vi kommer att behöva rotationerna från enbitsfallet: R k roterar bit k. 1 0 0 0 Vi kommer också att behöva byta fas: S = 0 1 0 0 0 0 1 0 0 0 0 i α 00 00 + α 01 01 + α 10 10 + α 11 11 α 00 00 + α 01 01 + α 10 10 + iα 11 11. Lars Engebretsen 003-11-18

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 00 3 e πiac/4 c = 1 3 i ac c. Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 00 1 3 e πiac/4 c = 1 3 i ac c. Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 00 1 ( 00 3 e πiac/4 c = 1 3 i ac c. Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 00 1 ( 00 + 01 3 e πiac/4 c = 1 3 i ac c. Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. 00 1 ( 00 + 01 + 10 + 11 ) Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. 00 1 ( 00 + 01 + 10 + 11 ) 01 1 ( 00 Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. 00 1 ( 00 + 01 + 10 + 11 ) 01 1 ( 00 + i 01 10 i 11 ) Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. 00 1 ( 00 + 01 + 10 + 11 ) 01 1 ( 00 + i 01 10 i 11 ) 10 1 ( 00 Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. 00 1 ( 00 + 01 + 10 + 11 ) 01 1 ( 00 + i 01 10 i 11 ) 10 1 ( 00 01 + 10 11 ) Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. 00 1 ( 00 + 01 + 10 + 11 ) 01 1 ( 00 + i 01 10 i 11 ) 10 1 ( 00 01 + 10 11 ) 11 1 ( 00 Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. 00 1 ( 00 + 01 + 10 + 11 ) 01 1 ( 00 + i 01 10 i 11 ) 10 1 ( 00 01 + 10 11 ) 11 1 ( 00 i 01 10 + i 11 ) Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. 00 1 ( 00 + 01 + 10 + 11 ) 01 1 ( 00 + i 01 10 i 11 ) 10 1 ( 00 01 + 10 11 ) 11 1 ( 00 i 01 10 + i 11 ) Vi kan multiplicera med i genom att byta fas. Samla därför termer som innehåller i. Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar intuition Vi vill implementera a 1 3 e πiac/4 c = 1 3 i ac c. 00 1 ( 00 + 01 + 10 + 11 ) 01 1 ( 00 10 ) + i1 ( 01 11 ) 10 1 ( 00 01 + 10 11 ) 11 1 ( 00 10 ) + i1 ( 01 + 11 ) Vi kan multiplicera med i genom att byta fas. Samla därför termer som innehåller i. Notera att i enbart dyker upp om bit noll är 1 i VL. Rotation av bit ett ändrar b 1 b 0 till ungefär 0b 0 ± 1b 0. Lars Engebretsen 003-11-18 3

Fouriertransformen av två kvantbitar konstruktion Rotera först bit ett (R 1 ): 00 1 00 + 1 10 ; 01 1 01 + 1 11 10 1 00 1 10 ; 11 1 01 1 11 Lars Engebretsen 003-11-18 4

Fouriertransformen av två kvantbitar konstruktion Rotera först bit ett (R 1 ): 00 1 00 + 1 10 ; 01 1 01 + 1 11 10 1 00 1 10 ; 11 1 01 1 11 Byt sedan fas (S R 1 ): 00 1 00 + 1 10 ; 01 1 01 + i 1 11 10 1 00 1 10 ; 11 1 01 i 1 11 Lars Engebretsen 003-11-18 4

Fouriertransformen av två kvantbitar konstruktion Rotera först bit ett (R 1 ): 00 1 00 + 1 10 ; 01 1 01 + 1 11 10 1 00 1 10 ; 11 1 01 1 11 Byt sedan fas (S R 1 ): 00 1 00 + 1 10 ; 01 1 01 + i 1 11 10 1 00 1 10 ; 11 1 01 i 1 11 Mönstermatchning vi vill egentligen ha: 00 1 ( 00 + 01 ) + 1 ( 10 + 11 ); 01 1 ( 00 10 ) + i1 ( 01 11 ) 10 1 ( 00 01 ) + 1 ( 10 11 ); 11 1 ( 00 10 ) i1 ( 01 11 ) Lars Engebretsen 003-11-18 4

Fouriertransformen av två kvantbitar konstruktion S R 1 ger: 00 1 00 + 1 10 ; 01 1 01 + i 1 11 10 1 00 1 10 ; 11 1 01 i 1 11 Lars Engebretsen 003-11-18 5

Fouriertransformen av två kvantbitar konstruktion S R 1 ger: 00 1 00 + 1 10 ; 01 1 01 + i 1 11 10 1 00 1 10 ; 11 1 01 i 1 11 Rotera nu bit noll (R 0 S R 1 ): 00 1 ( 00 + 01 ) + 1 ( 10 + 11 ); 01 1 ( 00 01 ) + i1 ( 10 11 ) 10 1 ( 00 + 01 ) 1 ( 10 + 11 ); 11 1 ( 00 01 ) i1 ( 10 11 ) Lars Engebretsen 003-11-18 5

Fouriertransformen av två kvantbitar konstruktion S R 1 ger: 00 1 00 + 1 10 ; 01 1 01 + i 1 11 10 1 00 1 10 ; 11 1 01 i 1 11 Rotera nu bit noll (R 0 S R 1 ): 00 1 ( 00 + 01 ) + 1 ( 10 + 11 ); 01 1 ( 00 01 ) + i1 ( 10 11 ) 10 1 ( 00 + 01 ) 1 ( 10 + 11 ); 11 1 ( 00 01 ) i1 ( 10 11 ) Mönstermatchning vi vill egentligen ha: 00 1 ( 00 + 01 ) + 1 ( 10 + 11 ); 01 1 ( 00 10 ) + i1 ( 01 11 ) 10 1 ( 00 01 ) + 1 ( 10 11 ); 11 1 ( 00 10 ) i1 ( 01 11 ) Lars Engebretsen 003-11-18 5

Fouriertransformen av två kvantbitar konstruktion S R 1 ger: 00 1 00 + 1 10 ; 01 1 01 + i 1 11 10 1 00 1 10 ; 11 1 01 i 1 11 Rotera nu bit noll (R 0 S R 1 ): 00 1 ( 00 + 01 ) + 1 ( 10 + 11 ); 01 1 ( 00 01 ) + i1 ( 10 11 ) 10 1 ( 00 + 01 ) 1 ( 10 + 11 ); 11 1 ( 00 01 ) i1 ( 10 11 ) Mönstermatchning vi vill egentligen ha: 00 1 ( 00 + 01 ) + 1 ( 10 + 11 ); 01 1 ( 00 10 ) + i1 ( 01 11 ) 10 1 ( 00 01 ) + 1 ( 10 11 ); 11 1 ( 00 10 ) i1 ( 01 11 ) Vi är nästan klara, vi behöver bara byta ordning på bitarna i HL! Lars Engebretsen 003-11-18 5

Fouriertransformen generella fallet Transformen av två kvantbitar kan skrivas R 0 S R 1 (bitvändning). Detta går att generalisera. Lars Engebretsen 003-11-18 6

Fouriertransformen generella fallet Transformen av två kvantbitar kan skrivas R 0 S R 1 (bitvändning). Detta går att generalisera. Vi använder operationerna R k operera med 1 ( ) 1 1 på bit k och 1 1 1 0 0 0 S kl operera med 0 1 0 0 0 0 1 0 på bitarna k och l. 0 0 0 e πi/l k Lars Engebretsen 003-11-18 6

Fouriertransformen generella fallet Transformen av två kvantbitar kan skrivas R 0 S R 1 (bitvändning). Detta går att generalisera. Vi använder operationerna R k operera med 1 ( ) 1 1 på bit k och 1 1 1 0 0 0 S kl operera med 0 1 0 0 0 0 1 0 på bitarna k och l. 0 0 0 e πi/l k Transformen av n bitar kan då skrivas R 0 S 0,1 S 0,n 1 R 1 R n 3 S n 3,n S n 3,n 1 R n S n,n 1 R n 1. Lars Engebretsen 003-11-18 6

Fouriertransformen grafiskt schema a 0 R 0 c 3 a 1 R 1 S 01 c a R S 1 S 0 c 1 a 3 R 3 S 3 S 13 S 03 c 0 Antal operationer: O(n ). Lars Engebretsen 003-11-18 7

Avslutning Vi kan faktorisera i polynomisk tid med kvantberäkningar. Är modellen realistisk? Lars Engebretsen 003-11-18 8

Avslutning Vi kan faktorisera i polynomisk tid med kvantberäkningar. Är modellen realistisk? Svårt att säga... Lars Engebretsen 003-11-18 8

Avslutning Vi kan faktorisera i polynomisk tid med kvantberäkningar. Är modellen realistisk? Svårt att säga... Det verkar svårt att bygga datorer enligt modellen. Rekord för närvarande: 7 bitar, faktorisera 15. (Nature 414, ss 883 887, 001.) Lars Engebretsen 003-11-18 8

Avslutning Vi kan faktorisera i polynomisk tid med kvantberäkningar. Är modellen realistisk? Svårt att säga... Det verkar svårt att bygga datorer enligt modellen. Rekord för närvarande: 7 bitar, faktorisera 15. (Nature 414, ss 883 887, 001.) Å andra sidan har den klassiska datorn utvecklas en hel del sedan turingmaskinen introducerades kanske ska vi inte bygga kvantdatorer exakt enligt modellen? Lars Engebretsen 003-11-18 8

Avslutning Vi kan faktorisera i polynomisk tid med kvantberäkningar. Är modellen realistisk? Svårt att säga... Det verkar svårt att bygga datorer enligt modellen. Rekord för närvarande: 7 bitar, faktorisera 15. (Nature 414, ss 883 887, 001.) Å andra sidan har den klassiska datorn utvecklas en hel del sedan turingmaskinen introducerades kanske ska vi inte bygga kvantdatorer exakt enligt modellen? Ett modellproblem: Hur stoppar vi in indata i kvantbitarna? Kräver att bitarna tvingas till ett specifikt tillstånd. Lars Engebretsen 003-11-18 8