Innholdsfortegnelse:

KREQC: Kentuckys rotasjonsemulerte kvantecomputer: 9 trinn
KREQC: Kentuckys rotasjonsemulerte kvantecomputer: 9 trinn

Video: KREQC: Kentuckys rotasjonsemulerte kvantecomputer: 9 trinn

Video: KREQC: Kentuckys rotasjonsemulerte kvantecomputer: 9 trinn
Video: KREQC in operation 2024, Juli
Anonim
KREQC: Kentuckys rotasjonsemulerte kvantecomputer
KREQC: Kentuckys rotasjonsemulerte kvantecomputer
KREQC: Kentuckys rotasjonsemulerte kvantecomputer
KREQC: Kentuckys rotasjonsemulerte kvantecomputer

Vi kaller det "creek" - stavet KREQC: Kentucky's Rotationally Emulated Quantum Computer. Ja, denne instruksjonsfilen vil vise deg hvordan du lager din egen kvantemaskin som fungerer pålitelig ved romtemperatur med en minimum syklustid på omtrent 1/2 sekund. Total byggekostnad er $ 50-$ 100.

I motsetning til IBM Q-kvantemaskinen som er vist på det andre bildet, bruker KREQC ikke direkte kvantefysikkfenomener for å implementere sine fullt sammenviklede qubits. Vel, jeg antar at vi kan argumentere for at alt bruker kvantefysikk, men det er egentlig bare konvensjonelt kontrollerte servoer som implementerer Einsteins "uhyggelige handling på avstand" i KREQC. På den annen side lar disse servoene KREQC etterligne oppførselen ganske bra, noe som gjør operasjonen lett å se og forklare. Apropos forklaringer ….

Trinn 1: Hva er en kvantemaskin?

Image
Image

Før du gir vår forklaring, her er en lenke til en fin forklaring fra IBM Q Experience -dokumentasjonen. Nå tar vi vår sjanse ….

Ingen tvil om at du har hørt mer enn litt (ordspill beregnet) om hvordan qubits gir magiske beregningsevner på kvantemaskiner. Den grunnleggende ideen er at mens en vanlig bit enten kan være 0 eller 1, kan en qubit være 0, 1 eller ubestemt. I seg selv virker det ikke spesielt nyttig - og med bare en qubit er det ikke det - men flere sammenfiltrede qubits har den ganske nyttige egenskapen at deres ubestemte verdier samtidig kan dekke alle mulige kombinasjoner av bitverdier. For eksempel kan 6 biter ha en hvilken som helst verdi fra 0 til 63 (dvs. 2^6), mens 6 qubits kan ha en ubestemt verdi som alle er verdier fra 0 til 63 med en potensielt forskjellig sannsynlighet knyttet til hver mulig verdi. Når verdien av en qubit blir lest, blir verdiene for den og alle qubits som er viklet inn i den bestemt, med enkeltverdien som blir lest for hver qubit valgt tilfeldig i samsvar med sannsynlighetene; hvis den ubestemte verdien er 75% 42 og 25% 0, så er omtrent 3 av hver fjerde gang kvanteberegningen utføres, vil resultatet være 42 og de andre gangene være 0. Hovedpoenget er at kvanteberegningen evaluerer alle mulige verdier og returnerer ett (av potensielt flere) gyldige svar, og prøver eksponensielt mange verdier samtidig - og det er den spennende delen. Det ville ta 64 6-biters systemer å gjøre det ett 6-qubit-system kan gjøre.

Hver av KREQCs 6 fullstendig sammenfiltrede qubits kan ha en rotasjonsverdi som er 0, 1 eller ubestemt. Den ubestemmelige ubestemte verdien er representert ved at alle qubits er i horisontal posisjon. Etter hvert som en kvanteberegning fortsetter, endres sannsynligheter for forskjellige verdier - representert i KREQC ved at de enkelte qubits vingler og antar statistiske posisjoner som gjenspeiler sannsynligheten for verdier. Etter hvert avsluttes kvanteberegningen ved å måle de sammenfiltrede qubits, som kollapser den ubestemte verdien til en fullstendig bestemt sekvens av 0s og 1s. I videoen ovenfor ser du KREQC som beregner "svaret på det ultimate spørsmålet om liv, universet og alt" - med andre ord 42 … som i binær er 101010, med 101 på bakre rad med qubits og 010 i fronten.

Selvfølgelig er det noen problemer med kvantemaskiner, og KREQC lider også av dem. En åpenbar er at vi virkelig ønsker millioner av qubits, ikke bare 6. Imidlertid er det også viktig å merke seg at kvantemaskiner bare implementerer kombinatorisk logikk - i motsetning til det vi datamaskiningeniører kaller en statsmaskin. I utgangspunktet betyr det at en kvantemaskin i seg selv er mindre i stand enn en Turing -maskin eller en konvensjonell datamaskin. I tilfellet KREQC implementerer vi statlige maskiner ved å kontrollere KREQC ved hjelp av en konvensjonell datamaskin for å utføre en sekvens av kvanteberegninger, en per statsbesøk i utførelsen av statsmaskinen.

Så la oss bygge en romtemperatur kvantemaskin!

Trinn 2: Verktøy, deler og materialer

3D-trykte deler: den indre delen
3D-trykte deler: den indre delen

Det er ikke mye å KREQC, men du trenger noen deler og verktøy. La oss starte med verktøyene:

  • Tilgang til en 3D-skriver av forbrukerklasse. Det ville være mulig å lage KREQCs qubits ved hjelp av en CNC -fresemaskin og tre, men det er mye enklere og penere å lage dem ved å ekstrudere PLA -plast. Den største 3D-trykte delen er 180x195x34mm, så ting er mye lettere hvis skriveren har et stort nok utskriftsvolum til å skrive det ut i ett stykke.
  • Et loddejern. Skal brukes til sveising av PLA -deler.
  • Trådkuttere eller noe annet som kan kutte små 1 mm tykke plastdeler (servohornene).
  • Eventuelt trebearbeidingsverktøy for å lage en trebase for montering av qubits. En base er ikke strengt nødvendig fordi hver bit har et innebygd stativ som gjør at en kontrollkabel kan føre ut baksiden.

Du trenger ikke mange deler eller materialer heller:

  • PLA for å lage qubits. Hvis det skrives ut med 100% fylling, vil det fortsatt være mindre enn 700 gram PLA per qubit; ved en mer fornuftig fylling på 25% ville 300 gram være et bedre estimat. Dermed kan 6 qubits lages med bare en 2 kg spole, til en materialkostnad på omtrent $ 15.
  • Én SG90 mikro servo per qubit. Disse er lett tilgjengelige for under $ 2 hver. Sørg for å få mikroservoer som angir 180-graders posisjoneringsoperasjon-du vil ikke ha 90-graders, og du vil ikke ha dem designet for kontinuerlig rotasjon med variabel hastighet.
  • Et servokontrollerkort. Det er mange valg, inkludert bruk av en Arduino, men et veldig enkelt valg er Pololu Micro Maestro 6-kanals USB-servokontroller som koster under $ 20. Det er andre versjoner som kan håndtere 12, 18 eller 24 kanaler.
  • Forlengelseskabler for SG90 -er etter behov. Kablene på SG90 -ene varierer noe i lengde, men du trenger qubits for å være atskilt med minimum 6 tommer, så forlengelseskabler vil være nødvendig. Disse er enkelt under $ 0,50 hver, avhengig av lengde.
  • En 5V strømforsyning for Pololu og SG90s. Normalt drives Pololu via USB -tilkobling til en bærbar datamaskin, men det kan være lurt å ha en separat strømforsyning for servoene. Jeg brukte en 5V 2.5A veggvorter jeg hadde rundt, men nye 3A kan kjøpes for under $ 5.
  • Eventuelt tosidig tape for å holde ting sammen. VHB (Very-High Bond) tape fungerer godt for å holde det ytre skallet på hver qubit sammen, selv om sveising fungerer enda bedre hvis du aldri trenger å skille den fra hverandre.
  • Eventuelt tre og etterbehandling forsyninger for å lage basen. Vårt ble laget av butikkskrap og holdes sammen av kjeksfuger, med flere strøk med klar polyuretan som siste finish.

Alt i alt koster 6-qubit KREQC vi bygde omtrent $ 50 i rekvisita.

Trinn 3: 3D-trykte deler: den indre delen

3D-trykte deler: den indre delen
3D-trykte deler: den indre delen
3D-trykte deler: den indre delen
3D-trykte deler: den indre delen

Alle 3D-trykte deldesigner er fritt tilgjengelige som Thing 3225678 på Thingiverse. Få hentet ditt eksemplar nå … vi venter….

Ah, tilbake så snart? Ok. Selve "biten" i qubit er en enkel del som skrives ut i to deler fordi det er lettere å håndtere sveising av to deler sammen enn å bruke støtter til å skrive ut hevet skrift på begge sider av den ene delen.

Jeg anbefaler å skrive ut dette i en farge som står i kontrast til den ytre delen av qubit - for eksempel svart. I vår versjon trykket vi den øverste 0,5 mm i hvitt for å gi kontrast, men det krevde å bytte filament. Hvis du heller ikke vil gjøre det, kan du alltid male de hevede overflatene på "1" og "0." Begge disse delene skrives ut uten spenn og dermed uten støtter. Vi brukte 25% fylling og 0,25 mm ekstruderingshøyde.

Trinn 4: 3D-trykte deler: den ytre delen

3D-trykte deler: den ytre delen
3D-trykte deler: den ytre delen
3D-trykte deler: den ytre delen
3D-trykte deler: den ytre delen

Den ytre delen av hver qubit er litt vanskeligere. For det første er disse brikkene store og flate, og kan derfor løftes mye fra utskriftssengen. Jeg skriver vanligvis ut på varmt glass, men disse krevde den ekstra utskriften på varmblå malertape for å unngå å bli vridd. Igjen skal 25% fylling og 0,25 mm laghøyde være mer enn nok.

Disse delene har også begge spenn. Hulrommet som holder servoen har spenn på begge sider, og det er kritisk at dimensjonene til dette hulrommet er riktige - så det må skrives ut med støtte. Kabelføringskanalen er bare på den tykkere baksiden, og er konstruert for å unngå spenn, bortsett fra en mindre bit helt i bunnen. Innsiden av basen på begge stykkene har teknisk sett et spenn som ikke støttes for den indre kurven på basen, men det spiller ingen rolle om den delen av utskriften faller litt, så du trenger ikke støtte der.

Igjen, et fargevalg som står i kontrast til de indre delene, vil gjøre Q -quittene mer synlige. Selv om vi trykte fronten med delene "AGGREGATE. ORG" og "UKY. EDU" i hvit PLA på den blå PLA-bakgrunnen, kan det hende du synes utseendet med lavere kontrast ved å ha kroppsfargen mer tiltalende. Vi setter pris på at du forlot dem der for å minne seerne på hvor designet kom fra, men det er ikke nødvendig å visuelt rope disse nettadressene.

Når disse delene er skrevet ut, fjerner du eventuelt støttemateriale og sørger for at servoen passer med de to stykkene som holdes sammen. Hvis det ikke passer, fortsett å plukke ut støttematerialet. Det er en ganske tett passform, men bør tillate at begge halvdelene skyves i flukt sammen. Legg merke til at det bevisst ikke er noen justeringsstrukturer i utskriften fordi selv svake vridninger vil føre til at de forhindrer montering.

Trinn 5: Monter den indre delen

Monter den indre delen
Monter den indre delen
Monter den indre delen
Monter den indre delen

Ta de to indre delene og juster dem bak-til-bak slik at den spisse svingningen til venstre for "1" er på linje med den spisse pivoten på "0." Du kan midlertidig holde dem sammen med 2-sidig tape hvis ønskelig, men nøkkelen er å bruke et varmt loddejern for å sveise dem sammen.

Det er tilstrekkelig å sveise der kantene kommer sammen. Gjør dette ved å først klebe sveising ved å bruke loddejernet til å dra PLA sammen over kanten mellom de to stykkene på flere steder. Etter at delene er klistret sammen, kjører du loddejernet rundt sømmen for å lage en permanent sveis. De to delene skal gjøre delen vist på bildet ovenfor.

Du kan kontrollere passformen til denne sveisede delen ved å sette den inn i den bakre ytre delen. Du må vippe den litt for å få den spisse pivoten inn i siden som ikke har servohulen, men når den er inne, skal den rotere fritt.

Trinn 6: Orienter servoen og sett hornet

Orienter servoen og sett hornet
Orienter servoen og sett hornet

For at dette skal fungere, må vi ha en kjent direkte samsvar mellom servostyring og servoposisjon. Hver servo har en minimum og maksimal pulsbredde som den vil reagere på. Du må oppdage dem empirisk for servoene dine, fordi vi stoler på hele 180-graders bevegelse og forskjellige produsenter produserer SG90-er med litt forskjellige verdier (faktisk har de også litt forskjellige størrelser, men de bør være nær nok til passer innenfor det tillatte rommet). La oss kalle den korteste pulsbredden "0" og den lengste "1".

Ta et av hornene som fulgte med servoen din, og klipp av vingene av den ved hjelp av trådkutter eller annet passende verktøy - som vist på bildet ovenfor. Den veldig fine girhøyden på servoen er veldig vanskelig å 3D-skrive ut, så vi vil i stedet bruke midten av et av servohornene for det. Sett det trimmede servohornet på en av servoene. Koble til servoen, sett den til "1" -posisjon og la den stå i den posisjonen.

Du har sikkert lagt merke til at den ikke-spisse pivoten har et sylindrisk hulrom i det som er omtrent på størrelse med girhodet på servoen din-og noe mindre enn diameteren på det trimmede hornsenteret. Ta det varme loddejernet og virvl det forsiktig inn i hullet i pivoten og også rundt utsiden av det trimmede hornsenteret; du prøver ikke å smelte heller, men bare for å få dem myke. Deretter holder du servoen, skyver hornsenteret rett inn i hullet i svingen med servoen i posisjonen "1" - med den indre delen som viser "1" når servoen er plassert slik den ville være når hviler i hulrommet i den ytre bakre delen.

Du bør se PLA brette seg litt over seg selv mens du skyver det trimmede hornet inn, og skaper en veldig fast forbindelse til hornet. La bindingen avkjøles litt og trekk deretter ut servoen. Hornet skal nå binde delen godt nok til at servoen fritt kan snurre delen uten noe vesentlig spill.

Trinn 7: Monter hver Qubit

Sett sammen hver Qubit
Sett sammen hver Qubit
Sett sammen hver Qubit
Sett sammen hver Qubit

Nå er du klar til å bygge qubits. Plasser den ytre bakre delen på en flat overflate (f.eks. Et bord) slik at servohulen vender opp og stativet henger over overflatekanten slik at den ytre bakdelen sitter flatt. Ta nå servoen og den indre delen festet av hornet og sett dem inn i den bakre ytre delen. Trykk kabelen fra servoen inn i kanalen for den.

Når alt som sitter i flukt, plasserer du den fremre ytre delen over enheten. Koble til servoen og betjen den mens du holder enheten sammen for å sikre at ingenting binder eller er feiljustert. Bruk enten VHB -tape eller bruk et loddejern for å sveise ytterfronten og baksiden sammen.

Gjenta disse trinnene for hver qubit.

Trinn 8: Montering

Montering
Montering
Montering
Montering

Den lille basen på hver qubit har et kutt i ryggen som lar deg kjøre servokabelen ut bak for å koble til kontrolleren, og basen er bred nok til at hver qubit kan være stabil av seg selv, så du kan ganske enkelt sette forlengelseskabler på hver servo og før dem spredt over et bord eller en annen flat overflate. Det vil imidlertid vise ledninger som kobler dem….

Jeg føler at det å se ledninger ødelegger illusjonen om skummel handling på avstand, så jeg foretrekker å gjemme ledningene helt. For å gjøre det trenger vi bare en monteringsplattform med et hull under hver qubit som er stort nok til at servokabelkontakten kan passere gjennom. Selvfølgelig vil vi at hver qubit skal bli der den er satt, så det er tre 1/4-20 tappede hull i basen. Intensjonen er å bruke den midtre, men de andre kan brukes til å gjøre ting sikrere, eller hvis den sentrale tråden blir fjernet ved å stramme for mye. Dermed borer en to hull med tett mellomrom i basen for hver qubit: en for å passere en 1/4-20 skruegjeng, den andre for å passere servokabelkontakten.

Siden 3/4 "tre er mest vanlig, vil du sannsynligvis bruke det på toppen av basen-som jeg gjorde. I så fall trenger du en 1/4-20 skrue eller bolt omtrent 1,25" lang. Du kan kjøpe dem i en hvilken som helst jernvarehandel til en pris av omtrent $ 1 for seks. Alternativt kan du 3D-skrive dem ut … men jeg anbefaler å skrive dem ut en om gangen hvis du skriver dem ut fordi det minimerer feilene i den fine skruegjengen.

Det er åpenbart at dimensjonene på festet ikke er kritiske, men de vil bestemme lengden på forlengelseskabler du trenger. KREQC ble utført som to rader med tre qubits først og fremst slik at festet ville passe i en håndbagasje, slik vi tok det med til vår IEEE/ACM SC18 forskningsutstilling.

Trinn 9: Merk det

Merke det
Merke det
Merke det
Merke det
Merke det
Merke det

Som et siste trinn, ikke glem å merke kvantemaskinen din!

Vi 3D-trykte et navneskilt i svart på gull, som deretter ble festet til trefronten på basen. Merk deg gjerne på andre måter, for eksempel 2D-utskrift av det vedlagte PDF-navneskiltbildet med en laser- eller blekkskriver. Det ville heller ikke skade å merke hver qubit med sin posisjon, spesielt hvis du blir for kreativ om hvordan du arrangerer qubits på basen.

Du kan også like å dele ut 3D-trykte qubit nøkkelringer; de er ikke viklet inn og er heller ikke motoriserte, men de snurrer fritt når du blåser på dem og lager en flott påminnelse om en KREQC-demonstrasjon.

Anbefalt: