Citat:
Ursprungligen postat av
WbZV
Vi kan ta vanliga RAM-minnen som ett vardagligt exempel. För att besvara frågan "vilket värde finns på adressen X" så låter vi inte en central processor löpa igenom allt minne sekventiellt tills den hittar en minnescell med adressen X (vilket skulle vara O(N) i tid), utan vi delegerar frågan till minneskretsarnas adressavkodare som det finns många av. Den minnescell som har adressen X lägger sedan ut sitt värde på bussen så att den centrala processorn kan läsa av den medan de andra minnescellerna håller tyst.
I det generella fallet kan vi besvara mer komplexa ja/nej-frågor genom att bygga ett nätverk där varje minnescell representeras av en egen dator så att vi får N orakel istället för att använda bara ett. ...
Rätta mig om jag har fel. Men jag antar att kostnaden kommer i form av O(N) minnesceller och fysisk adresslogik, som möjliggör direkt åtkomst i O(1) tid, vilket i praktiken motsvarar att bygga N parallella orakel i hårdvara. Korrekt?
Citat:
Ursprungligen postat av
WbZV
... Hur mycket hårdvara kräver då en kvantalgoritm för att lösa motsvarande uppgift? Jag är lite osäker på exakt vilken algoritm som syftas på i just det här fallet, men en snabb AI-sökning visar att det finns en algoritm vid namn "Grover search" som kräver O(N * 2^{N/2}) antal grindar, alltså en exponentiell hårdvarukostnad för att lösa problemet på en kvantdator, medan exampelvis Shor's algoritm bara kräver O(N^3 log N) grindar. Vet inte var vi landar i det här fallet, men för att göra en rättvis jämförelse så behöver vi jämföra med en klassisk dator som har tillgång till samma mängd hårdvara. ...
Grovers algoritm kräver inte en exponentiell ökning av grindar. I det scenario jag beskrev kräver Grovers algoritm O(√N) oracle-anrop. Varje iteration kan implementeras med O((log N)^k) grindar, där k = 1 i mitt exempel med ett enkelt ja/nej-oracle (mer komplexa orakel kräver högre k). Detta ger en total grindkostnad, och därmed tidskostnad, på O(√N·log N). Antalet qubits som krävs samtidigt är O(log N), vilket räcker för att utföra dessa grindar över tid och motsvarar hårdvarukostnaden. Det innebär alltså O(log N) hårdvara för en tidskostnad på O(√N·log N).
Citat:
Ursprungligen postat av
WbZV
...Jag uppfattade det som att du ville ge exempel på problem där en tänkt kvantdator överträffar en klassisk dator. Eftersom vi då måste konstruera en ny kvantdator för ändamålet så måste vi rimligen jämföra med en klassisk dator optimalt konstruerad för samma ändamål, annars kan vi ju bevisa vad som helst.
Grovers algoritm visar en kvantfördel just när klassisk och kvantalgoritm har samma oracle-åtkomst till en osorterad databas, och jag använde detta som ett exempel i mitt första inlägg i denna tråd för att illustrera hur en kvantdator fungerar i jämförelse med en klassisk dator. Om indexet redan är känt så är givetvis inte Grovers algoritm mera effektiv än den klassiska datorn. Så Grovers algoritm är alltså effektiv just för osorterad sökning med oracle-åtkomst, inte för sorterad sökning eller direkt åtkomst. För osorterad data kan jag tänka mig att man i de flesta fall kan klassiskt välja att lösa problemet sekventiellt med en tidskostnad på O(N), eller ifall praktiskt möjligt bygga direkt åtkomst genom extra struktur med en resurskostnad på O(N). Alternativt kan man använda Grovers algoritm, som ger en grind-/tidskostnad på O(√N log N) med en hårdvarukostnad på O(log N) qubits. Valet mellan dessa alternativ är i praktiken en ekonomisk fråga.
Grover kan vara potentiellt intressant i situationer där det är opraktiskt att sortera data eller bygga index och extra struktur, och där varje test är dyrt. Samtidigt måste man komma ihåg att Grover endast ger en kvadratisk, inte exponentiell, förbättring. Även om man lyckas med att skala kvantdatorer kommer kvantresurser sannolikt att vara mycket dyra under överskådlig framtid i jämförelse med klassiska resurser, vilket lätt kan äta upp denna fördel. Den praktiska potentialen för Grovers algoritm är därför sannolikt begränsad, även om den i vissa nischade fall kan vara relevant.
Applikationer där man förväntar sig betydligt större kvantfördelar än för Grovers algoritm är kvantsimulering av kemi och material, samt faktorisering av stora tal med Shors algoritm. I dessa fall finns teoretiska resultat som pekar på exponentiella förbättringar jämfört med de bästa kända klassiska algoritmerna, med polynomisk skalning av grindar och hårdvaruresurser. Samtidigt vet man ännu inte i vilken utsträckning klassiska algoritmer, eventuellt med approximationer eller nya insikter, kan komma att minska eller helt eliminera dessa fördelar. Även om man hypotetiskt lyckas skala kvantdatorer så att de blir jämförbara med klassiska datorer i storlek och tillförlitlighet, är det därför inte självklart att de praktiska kvantfördelarna blir så stora som de teoretiska resultaten antyder.
Detta är ett aktivt forskningsområde, vilket bland annat diskuteras i en intressant intervju med Ewin Tang som är forskare inom detta fält,
What Is the True Promise of Quantum Computing? | PODCAST: The Joy of Why. Hur användbara kvantdatorer faktiskt kommer att bli i framtiden vet vi därför inte. Däremot finns det sannolikt på kortare sikt potential i kvantteknologier som spin-offs från kvantdatorforskning, såsom kvantoptik och kvantsensorer. Samtidigt är det inte uteslutet att just kvantmekanisk simulering av kemi och material på längre sikt visar sig bli en mycket stor tillämpning i en skala vi inte kan föreställa oss, precis som forskningen kring kvantmekanik och halvledare under första halvan av 1900-talet lade grunden för den digitala utvecklingen vi ser idag. Men det är ett ämne för en annan tråd, eftersom denna tråd handlar om hur en kvantdator fungerar.