Kwantummechanische computers

Moderators: jkien, Xilvo

Reageer

Kwantummechanische computers

Een beschouwing over het pricipiële verschil tussen de huidige computers en de toekomstige quantumcomputers.

De huidige computers gebruiken als grondbouwsteen het bit met zijn 2 toestanden 1 en 0.

Op deze bits kunnen slechts enkele bewerkingen worden uitgevoerd. Bijvoorbeeld, het bit kan worden omgekeerd, dwz 1 wordt 0 en 0 wordt 1 (een zogenaamde NOT poort).

Voor twee bits, zeg a en b, kennen we nog de bekende logische poorten AND (
\(a\wedge b\)
), OR (
\(a\vee b\)
) en NAND (
\(\neg(a\wedge b)\)
.

Dit zijn de enige bewerkingen die huidige computer uitvoert. De rest is administratie.

Een quantumcomputer gebruikt als grondbouwsteen ook een soort bit, toepasselijk quantumbit geheten en afgekort tot qubit. Ook het qubit kent 2 toestanden, die niet worden weergegeven door een keiharde 0 en 1, maar door
\(|\psi> = \alpha|0> + \beta|1>\)
. Er kunnen dus overlappingen plaatsvinden.

Stellen we het qubit voor als kolomvector
\(\left(\begin{array}{c}\alpha \\ \beta \end{array}\right)\)
, dan kunnen we de bewerkingen die we op qubits uitvoeren weergeven m.b.v. 2x2 matrices.

De keuze van 2x2 matrices is oneindig groot, dus kiest met er een aantal representanten uit waarmee alle gewenste berekeningen kunnen worden uitgevoerd.

Op 1 bit kenden we slechts de NOT poort. Voor qbits hebben we er 3 nodig om alle mogelijke overgangen te beschrijven:

De NOT poort
\(N\)
is eenvoudig. Er moet namelijk gelden
\(N\left(\begin{array}{c}\alpha \\ \beta \end{array}\right) = \left(\begin{array}{c}\beta \\ \alpha \end{array}\right)\)
.

De lezer kan zelf nagaan hoe de 2x2 matrix
\(N\)
er uit ziet.

De Z poort met
\(Z = \left(\begin{array}{cc}1 & 0 \\0 & -1 \end{array}\right)\)
De H poort met
\(H = \frac{\sqrt{2}}{2}\left(\begin{array}{cc}1 & 1 \\1 & -1 \end{array}\right)\)
.

Bewerkingen op meer qubits.

Daarvan is de belangrijkste de poort waarbij slechts in ingangstoestand
\(|1>\)
het uitgaande qubit wordt ontkend, d.w.z.
\(|0>\)
wordt
\(|1>\)
en omgekeerd. Verder spelen Hadamard poorten (Hadamard matrices) een balangrijke rol.

Algoritmen schrijven voor quantumcomputers is nog een moeizame aangelegenheid. Dat was het ook voor de huidige computer toen er nog geen programmeertalen bestonden. Er zijn nog geen programmeertalen voor quantumcomputers ontwikkeld.

Gebruikersavatar
Berichten: 3.112

Re: Kwantummechanische computers

Je uitleg is zeer interessant maar wat verlang je van 'ons'?

Kunnen we dit opvatten als een minicursus?

Gebruikersavatar
Berichten: 3.135

Re: Kwantummechanische computers

Een quantumcomputer gebruikt als grondbouwsteen ook een soort bit, toepasselijk quantumbit geheten en afgekort tot qubit. Ook het qubit kent 2 toestanden, die niet worden weergegeven door een keiharde 0 en 1, maar door
\(|\psi> = \alpha|0> + \beta|1>\)
. Er kunnen dus overlappingen plaatsvinden.


Interessant onderwerp! Gaan we een programmeertaal voor quantumcomputers ontwerpen? Wat betekent:
\(|\psi> = \alpha|0> + \beta|1>\)
in woorden?
Heb je interesse in journalistiek? Wij zoeken versterking! Speurwerk, deel van het team, meer weten: klik.

Re: Kwantummechanische computers

thermo1945 schreef:Je uitleg is zeer interessant maar wat verlang je van 'ons'?

Kunnen we dit opvatten als een minicursus?
Zo je wilt.
Wat betekent:
\(|\psi> = \alpha|0> + \beta|1>\)
in woorden?
Zoals je bekend zal zijn kun je op het niveau van elementaire deeltjes niet meer spreken van de plaats van een deeltje. Je kunt slechts een kansverdeling geven van de plaats waar je deeltje kunt aantreffen.

Die onzekerheid is er ook wat betreft de toestand waarin het qubit zich bevindt. Het bevindt zich met een zekere kans
\(\alpha\)
in toestand
\(|0>\)
en met kans
\(\beta\)
in toestand
\(|1>\)
.

Bij gewone computers kun je 10 toestanden (bits) invoeren en als output 1 toestand creëren.

Dat is bij quantumcomputers niet mogelijk. Het aantal ingangstoestanden is altijd gelijk aan het aantal uitgangstoestanden. Een vermenigvuldiging met een 2x2 matrix zet namelijk een 2x1 vector om in een 2x1 vector.

Vergelijk dat met de bits operator AND, die een 2 bits toestand omzet in een 1 bits toestand.

Gebruikersavatar
Berichten: 7.556

Re: Kwantummechanische computers

Het bevindt zich met een zekere kans [url=http://java%20script:void(0);]java script:void(0);[/url] in toestand [url=http://java%20script:void(0);]java script:void(0);[/url] en met kans [url=http://java%20script:void(0);]java script:void(0);[/url] in toestand [url=http://java%20script:void(0);]java script:void(0);[/url].
Moet dat niet zijn: een kans
\(|\alpha|^2\)
in toestand
\(\left|0\right>\)
en een kans
\(|\beta|^2\)
in toestand
\(\left|1\right>\)
?

Immers de golffunctie moet genormaliseerd zijn:
\(|\psi|^2=|\alpha|^2+|\beta|^2=1\)
Never express yourself more clearly than you think.

- Niels Bohr -

Re: Kwantummechanische computers

Phys schreef:Moet dat niet zijn: een kans
\(|\alpha|^2\)
in toestand
\(\left|0\right>\)
en een kans
\(|\beta|^2\)
in toestand
\(\left|1\right>\)
?

Immers de golffunctie moet genormaliseerd zijn:
\(|\psi|^2=|\alpha|^2+|\beta|^2=1\)
Uiteraard, maar dat vind ik hier niet van belang. Iemand die vraagt wat
\(|\psi> = \alpha|0> + \beta|1>\)
voorstelt hoef je niet met dat soort details te belasten (vind ik).

Gebruikersavatar
Berichten: 3.112

Re: Kwantummechanische computers

Hoe leidt een verzameling van een miljoen qubits, elk met hun eigen waarschijnlijkheid tot een reëel en betrouwbaar resultaat en hoe worden die miljoen waarschijnlijkheden bepaald?

Of is de vraagstelling in dit kader fout?

Re: Kwantummechanische computers

Je vraag is gerechtvaardigd.

De kunst van het programmeren voor quantumcomputers is, dat je van de miljoen qubits die als output gecreëerd worden de relevante uitvoerinformatie onderbrengt in slechts enkele van die qubits, waarbij je ook met 100% zekerheid de juiste informatie kunt aflezen.

Ik zal een programmaatje schrijven dat dat duidelijk zal maken (hoop ik).

Gebruikersavatar
Berichten: 5.679

Re: Kwantummechanische computers

Het bevindt zich met een zekere kans
\(\alpha\)
in toestand
\(|0>\)
en met kans
\(\beta\)
in toestand
\(|1>\)
.
Wat bedoel je met |0> en |1>, is dat "gewoon" 0 en 1, met dien verstande dat dat voor een qubit geen "vaste" toestand is?
In theory, there's no difference between theory and practice. In practice, there is.

Re: Kwantummechanische computers

We willen van een functie
\(f\)
beslissen of het een constante functie is of niet.

Voor het domein en bereik van
\(f\)
nemen we
\(\{0,1\}\)
.

Simpel, zou je denken, je voert
\(\left|x\right>\)
in (voor x=0,1) en bekijkt uitvoer
\(\left|f(x)\right>\)
.

Maar hier duikt een probleem op, want ik geval van een constante functie is informatie verloren gegaan. Het proces behoort altijd reversibel te zijn. Uitgaande van de uitvoer en teruggaand in de tijd, moet je de invoer kunnen terugvinden.

De (altijd) eerste stap is het mengen van de begintoestanden
\(\left|0\right>\)
en
\(\left|1\right>\)
, door er een Hadamard-poort
\(H\)
op toe te passen.

Daarbij gaat
\(\left|0\right>\)
over in
\(\frac{\sqrt{2}}{2}(\left|0\right> + \left|1\right>)\)
en
\(\left|1\right>\)
over in
\(\frac{\sqrt{2}}{2}(\left|0\right> - \left|1\right>)\)
.

Deze toestanden worden zoals gebruikelijk afgekort tot
\(\left|+\right>\)
en
\(\left|-\right>\)
.

We hebben 3 poorten gezien die op 1 qubit werken. Er zijn ook poorten die op 2 qubits werken, zoals de exclusive-OR-poort, die toestand
\(\left|\Psi\right> = \left|x\right>\left|y\right>\)
overzet in toestand
\(\left|x\right>\left|x \mbox{ XOR } y\right>\)
.

Samenstelling met de functie
\(f\)
levert een operator
\(O\)
die toestand
\(\left|x\right>\left|y\right>\)
omzet in toestand
\(\left|x\right>\left|x \mbox{ XOR } f(y)\right>\)
.

We bekijken nu het resultaat van de operatoren
\(H\)
en
\(O\)
op de begintoestanden
\(\left|0\right>\)
en
\(\left|1\right>\)
.
\(OH(\left|0\right>\left|1\right>) = O(\frac{\sqrt{2}}{2}(\left|0\right>+\left|1\right>)\left|-\right>) = \frac{\sqrt{2}}{2}O(\left|0\right>\left|-\right>+\left|1\right>\left|-\right>)\)
(*).

Ik moet nu
\(O(\left|0\right>\left|-\right>)\)
en
\(O(\left|1\right>\left|-\right>)\)
berekenen.

Schrijf
\(g(x) = 1 \mbox{ als } f(x)=0 \mbox{ en } g(x)=-1 \mbox{ als } f(x)=1\)
.
\(O(\left|x\right>\left|-\right>) = O(\left|x\right>(\frac{\sqrt{2}}{2}(\left|0\right>-\left|1\right>))) = \frac{\sqrt{2}}{2}(O\left|x\right>\left|0\right> - O\left|x\right>\left|1\right>) =\)
\(\frac{\sqrt{2}}{2}(\left|x\right>\left|0 \mbox{ XOR } f(x)\right> - \left|x\right>\left|1 \mbox{ XOR } f(x)\right>) = g(x)\left|x\right>\left|-\right>\)
Dus kunnen we (*) schrijven als
\(\frac{\sqrt{2}}{2}(g(0)\left|0\right>\left|-\right> + g(1)\left|1\right>\left|-\right>)\)
\(= \pm\left|+\right>\left|-\right>\)
als f constant is en
\(= \pm\left|-\right>\left|-\right>\)
als f niet constant is.

We zijn er bijna. Nog even een Hadamard-poortje plaatsen op de eerste uitgang om van
\(+\)
en
\(-\)
weer
\(0\)
en
\(1\)
te maken, want
\(H\left|+\right> = \left|0\right>\)
en
\(H\left|-\right> = \left|1\right>\)
.

Dit levert de uitgangstoestand
\(\Psi_{\mbox{uit}}\)
met
\(\Psi_{\mbox{uit}}= \pm\left|0\right>\left|-\right>\)
als f constant is en
\(\Psi_{\mbox{uit}}= \pm\left|1\right>\left|-\right>\)
als f niet constant is.

Het eerste qubit geeft dus 100% uitsluitsel.

Re: Kwantummechanische computers

Wat bedoel je met |0> en |1>, is dat "gewoon" 0 en 1, met dien verstande dat dat voor een qubit geen "vaste" toestand is?
Je kunt |0> en |1> gewoon zien als 0 en 1. Je moet daarbij niet denken aan spanninkjes, maar aan aangeslagen toestanden.

In het verhaal hierboven heb ik het over de begintoestanden |0> en |1>. Dat zijn uiteraard geen begintoestanden, maar basistoestanden.

Gebruikersavatar
Berichten: 691

Re: Kwantummechanische computers

Even wat opmerkingen:

Er zitten op dit forum ook mensen die alleen nog havo-wiskunde hebben...

die willen het een en ander ook nog begrijpen.

Een processor kan meer dan alleen de 3 logische bewerkingen uitvoeren:

SHL en SHR bijvoorbeeld. shiftleft van het register, alle bits opschuiven en de laatste wegkieperen

of andersom, alle bits opschuiven naar rechts en de eerste wegkieperen.

Het setten van een bit op 1 of 0 bij een shr of shr is ook een handeling.

Met alleen and, or en not kan men nooit een 0 of 1 bekomen op punt A.

bit:=not(? and ?);

bit is en blijft ?

En administratie is ook een proces in de handeling omdat dit op een bepaald tijdstip plaatsvindt.

Een quantum-computer werkt gewoon met interferentie waarbij de verschillende toestanden van de verschillende registers tegenover weggeschrapt worden intern door de parallelle universes waarin deze toestanden afgewikkeld worden.

Bij het inzien van deze kiest men een toestand waardoor men een uitkomst heeft.

Men moet alleen op het juiste moment deze keuze maken:

is men te vroeg dan heeft men geen optimale interferentie gehad..(uitkomst is benaderd maar onzeker)

is men te laat dan is dat zonde van de tijd en kan de uitkomst weer verstoord zijn.

Door het over elkaar leggen van uitkomsten in de registers, het gemiddelde nemen, kan men een betoruwbare uitkomst opstellen.

Een quantum-computer berekening laten doen is het strategisch opstellen van de bits zodat de interferentie in de quantum-computer de uitkomst geeft.

Is net zoiets als het opstellen van de spleten in een dubbele-spleet experiment, men zou met wat laser-dioden, polaroid-stuurbare filters en fotocellen een quantum-computer achtig apparaat kunnen maken.

De interferentie patronen, die door de parallelle-universes ontstaan, in relatie met David Deutsch, geven dan een uitkomst die meteen, (met lichtsnelheid berekend) uitkomsten bieden.

Indien men de fotocellen terugkoppeld aan de laser-dioden met bepaalde elektronische matrixen kan men hiermee berekeningen maken.
Een computertaal is voor mensen, niet voor de computer.

Re: Kwantummechanische computers

Een processor kan meer dan alleen de 3 logische bewerkingen uitvoeren:
Dat was nu net niet mijn bedoeling. Mijn betoog ging niet over processoren

Mijn verhaal ging over de elementairste bouwsteen van de huidige computers, het bit.

Dat bit kent slechts 2 toestanden en de belangrijkste operaties die op bits worden toegepast kunnen worden weergegeven met behulp van de logische poorten NOT, OR, AND en NAND

Op bitniveau kunnen de volgende "bewerkingen" worden uitgevoerd: Het bit kan constant gehouden worden, op 0 gezet worden, op 1 gezet worden, en van waarde wisselen (NOT).

Hoe dat wordt gerealiseerd vond ik voor mijn verhaal niet relevant.
Schwartz schreef:Even wat opmerkingen:

Er zitten op dit forum ook mensen die alleen nog havo-wiskunde hebben...

die willen het een en ander ook nog begrijpen.
Daarvoor ben ik je erkentelijk voor je verdere uitleg.

Reageer