Inhoudsopgave:

KREQC: Kentucky's roterende geëmuleerde kwantumcomputer - Ajarnpa
KREQC: Kentucky's roterende geëmuleerde kwantumcomputer - Ajarnpa

Video: KREQC: Kentucky's roterende geëmuleerde kwantumcomputer - Ajarnpa

Video: KREQC: Kentucky's roterende geëmuleerde kwantumcomputer - Ajarnpa
Video: KREQC in operation 2024, Juli-
Anonim
KREQC: Kentucky's roterend geëmuleerde kwantumcomputer
KREQC: Kentucky's roterend geëmuleerde kwantumcomputer
KREQC: Kentucky's roterend geëmuleerde kwantumcomputer
KREQC: Kentucky's roterend geëmuleerde kwantumcomputer

We noemen het "creek" -- gespeld als KREQC: Kentucky's Rotationally Emulated Quantum Computer. Ja, deze instructable laat je zien hoe je je eigen werkende kwantumcomputer kunt maken die betrouwbaar werkt bij kamertemperatuur met een minimale cyclustijd van ongeveer 1/2 seconde. De totale bouwkosten bedragen $ 50- $ 100.

In tegenstelling tot de IBM Q-kwantumcomputer die op de tweede foto wordt getoond, gebruikt KREQC niet rechtstreeks kwantumfysica-fenomenen om zijn volledig verstrengelde qubits te implementeren. Nou, ik veronderstel dat we zouden kunnen beweren dat alles kwantumfysica gebruikt, maar het zijn eigenlijk gewoon conventioneel bestuurde servo's die Einstein's "spookachtige actie op afstand" in KREQC implementeren. Aan de andere kant stellen die servo's KREQC in staat om het gedrag vrij goed na te bootsen, waardoor de bediening gemakkelijk te zien en uit te leggen is. Over uitleg gesproken….

Stap 1: Wat is een kwantumcomputer?

Image
Image

Voordat we onze uitleg geven, is hier een link naar een mooie uitleg uit IBM Q Experience-documentatie. Nu gaan we onze slag slaan….

Je hebt ongetwijfeld meer dan een beetje gehoord (bedoelde woordspeling) over hoe qubits magische rekenvaardigheden verlenen aan kwantumcomputers. Het basisidee is dat terwijl een gewoon bit 0 of 1 kan zijn, een qubit 0, 1 of onbepaald kan zijn. Op zich lijkt dat niet bijzonder nuttig -- en met slechts één qubit is het dat ook niet -- maar meerdere verstrengelde qubits hebben de nogal nuttige eigenschap dat hun onbepaalde waarden tegelijkertijd alle mogelijke combinaties van bitwaarden kunnen dekken. 6 bits kunnen bijvoorbeeld elke waarde van 0 tot 63 hebben (d.w.z. 2^6), terwijl 6 qubits een onbepaalde waarde kunnen hebben die alle waarden van 0 tot 63 zijn met een mogelijk verschillende waarschijnlijkheid die aan elke mogelijke waarde is gekoppeld. Wanneer de waarde van een qubit wordt gelezen, worden de waarden ervan en alle qubits die ermee verstrengeld zijn bepaald, waarbij de enkele waarde die voor elke qubit wordt gelezen willekeurig wordt geselecteerd in overeenstemming met de waarschijnlijkheden; als de onbepaalde waarde 75% 42 en 25% 0 is, dan is ongeveer 3 van de vier keer dat de kwantumberekening wordt uitgevoerd, het resultaat 42 en de andere keren 0. Het belangrijkste punt is dat de kwantumberekening evalueert alle mogelijke waarden en retourneert één (van mogelijk meerdere) geldige antwoorden, waarbij exponentieel veel waarden tegelijkertijd worden geprobeerd - en dat is het opwindende deel. Er zouden 64 6-bit-systemen nodig zijn om te doen wat één 6-qubit-systeem kan doen.

Elk van de 6 volledig verstrengelde qubits van KREQC kan een rotatiewaarde hebben die 0, 1 of onbepaald is. De even waarschijnlijke onbepaalde waarde wordt weergegeven doordat alle qubits zich in de horizontale positie bevinden. Naarmate een kwantumberekening vordert, veranderen de waarschijnlijkheden van verschillende waarden - weergegeven in KREQC door de individuele qubits die wiebelen en statistische posities aannemen die de waarschijnlijkheden van waarden weerspiegelen. Uiteindelijk wordt de kwantumberekening beëindigd door de verstrengelde qubits te meten, die de onbepaalde waarde samenvouwen tot een volledig bepaalde reeks van nullen en enen. In de video hierboven zie je KREQC het "antwoord op de ultieme vraag van het leven, het universum en alles" berekenen -- met andere woorden, 42… wat in binair getal 101010 is, met 101 in de achterste rij van qubits en 010 in de voorzijde.

Natuurlijk zijn er enkele problemen met kwantumcomputers, en KREQC heeft daar ook last van. Een voor de hand liggende is dat we echt miljoenen qubits willen, niet slechts 6. Het is echter ook belangrijk op te merken dat kwantumcomputers alleen combinatorische logica implementeren -- in tegenstelling tot wat wij computeringenieurs een toestandsmachine noemen. Dat betekent in feite dat een kwantummachine op zichzelf minder capabel is dan een Turing-machine of een conventionele computer. In het geval van KREQC implementeren we toestandsmachines door KREQC te besturen met behulp van een conventionele computer om een reeks kwantumberekeningen uit te voeren, één per toestandsbezoek in de uitvoering van de toestandsmachine.

Laten we dus een kwantumcomputer op kamertemperatuur gaan bouwen!

Stap 2: Gereedschap, onderdelen en materialen

3D-geprinte onderdelen: het binnenste deel
3D-geprinte onderdelen: het binnenste deel

Er is niet veel aan KREQC, maar je hebt wel wat onderdelen en gereedschap nodig. Laten we beginnen met de hulpmiddelen:

  • Toegang tot een 3D-printer van consumentenkwaliteit. Het zou mogelijk zijn om de qubits van KREQC te maken met behulp van een CNC-freesmachine en hout, maar het is een stuk eenvoudiger en netter om ze te maken door PLA-plastic te extruderen. Het grootste 3D-geprinte deel is 180x195x34mm, dus het is veel gemakkelijker als de printer een voldoende groot printvolume heeft om dat in één stuk af te drukken.
  • Een soldeerbout. Te gebruiken voor het lassen van PLA onderdelen.
  • Draadknippers of iets anders dat kleine plastic onderdelen van 1 mm dik kan snijden (de servohoorns).
  • Optioneel houtbewerkingsgereedschap voor het maken van een houten basis om de qubits op te monteren. Een basis is niet strikt nodig omdat elke bit een ingebouwde standaard heeft waarmee een besturingskabel naar buiten kan worden geleid.

Je hebt ook niet veel onderdelen of materialen nodig:

  • PLA voor het maken van de qubits. Als het wordt afgedrukt met 100% vulling, zou het nog steeds minder dan 700 gram PLA per qubit zijn; bij een meer redelijke 25% vulling zou 300 gram een betere schatting zijn. Er kunnen dus 6 qubits worden gemaakt met slechts één spoel van 2 kg, tegen een materiaalkost van ongeveer $ 15.
  • Eén SG90-microservo per qubit. Deze zijn direct beschikbaar voor minder dan $ 2 per stuk. Zorg ervoor dat u micro-servo's krijgt die een positionering van 180 graden specificeren - u wilt geen 90-graden en u wilt ook geen servo's die zijn ontworpen voor continue rotatie met variabele snelheid.
  • Een servobesturingskaart. Er zijn veel keuzes, waaronder het gebruik van een Arduino, maar een zeer gemakkelijke keuze is de Pololu Micro Maestro 6-kanaals USB-servocontroller die minder dan $ 20 kost. Er zijn andere versies die 12, 18 of 24 kanalen aankunnen.
  • Verlengkabels voor de SG90s indien nodig. De kabels op de SG90's variëren enigszins in lengte, maar je hebt qubits nodig die minimaal ongeveer 15 cm uit elkaar liggen, dus er zijn verlengkabels nodig. Deze zijn gemakkelijk minder dan $ 0,50 per stuk, afhankelijk van de lengte.
  • Een 5V voeding voor de Pololu en SG90s. Normaal gesproken wordt de Pololu gevoed via een USB-aansluiting op een laptop, maar het kan verstandig zijn om een aparte voeding voor de servo's te hebben. Ik gebruikte een 5V 2.5A muurwrat die ik in de buurt had, maar nieuwe 3A's kunnen worden gekocht voor minder dan $ 5.
  • Optioneel dubbelzijdig plakband om dingen bij elkaar te houden. VHB-tape (Very-High Bond) werkt goed om de buitenste schil van elke qubit bij elkaar te houden, hoewel lassen nog beter werkt als je hem nooit uit elkaar hoeft te halen.
  • Eventueel hout en afwerkingsmateriaal voor het maken van de basis. De onze is gemaakt van winkelafval en wordt bij elkaar gehouden door biscuitverbindingen, met verschillende lagen helder polyurethaan als laatste afwerking.

Alles bij elkaar kostte de 6-qubit KREQC die we bouwden ongeveer $ 50 aan benodigdheden.

Stap 3: 3D-geprinte onderdelen: het binnenste deel

3D-geprinte onderdelen: het binnenste deel
3D-geprinte onderdelen: het binnenste deel
3D-geprinte onderdelen: het binnenste deel
3D-geprinte onderdelen: het binnenste deel

Alle 3D-geprinte onderdeelontwerpen zijn vrij verkrijgbaar als Thing 3225678 bij Thingiverse. Ga nu uw exemplaar halen… we wachten af….

Ah, zo snel terug? OK. Het eigenlijke "bit" in de qubit is een eenvoudig onderdeel dat in twee delen wordt afgedrukt, omdat het gemakkelijker is om twee delen aan elkaar te lassen dan om steunen te gebruiken om op beide zijden van één deel verhoogde letters te printen.

Ik raad aan om dit in een kleur af te drukken die contrasteert met het buitenste deel van de qubit -- zwart bijvoorbeeld. In onze versie hebben we de bovenkant 0,5 mm in wit geprint om contrast te geven, maar daarvoor was een ander filament nodig. Als je dat liever niet doet, kun je altijd gewoon de verhoogde vlakken van de "1" en "0" schilderen. Beide delen printen zonder overspanningen en dus zonder steunen. We gebruikten 25% vulling en 0,25 mm extrusiehoogte.

Stap 4: 3D-geprinte onderdelen: het buitenste deel

3D-geprinte onderdelen: het buitenste deel
3D-geprinte onderdelen: het buitenste deel
3D-geprinte onderdelen: het buitenste deel
3D-geprinte onderdelen: het buitenste deel

Het buitenste deel van elke qubit is een wat lastiger afdruk. Ten eerste zijn deze stukken groot en plat, dus onderhevig aan veel tillen van uw printbed. Ik print normaal gesproken op heet glas, maar hiervoor was de extra bedrukking op warmblauwe schilderstape nodig om kromtrekken te voorkomen. Nogmaals, 25% vulling en 0,25 mm laaghoogte zouden meer dan genoeg moeten zijn.

Deze delen hebben ook beide overspanningen. De holte die de servo vasthoudt, heeft aan beide zijden overspanningen en het is van cruciaal belang dat de afmetingen van deze holte correct zijn - dus deze moet met ondersteuning worden afgedrukt. Het kabelgeleidingskanaal bevindt zich alleen aan de dikkere achterkant en is geconstrueerd om overspanningen te voorkomen, behalve een klein beetje aan de basis. De binnenkant van de basis op beide stukken heeft technisch gezien een niet-ondersteunde overspanning voor de binnenste curve van de basis, maar het maakt niet uit of dat deel van de print een beetje doorzakt, dus daar heb je geen ondersteuning nodig.

Nogmaals, een kleurkeuze die contrasteert met de binnenste delen zal de "Q" van de qubits beter zichtbaar maken. Hoewel we de voorkant hebben bedrukt met de delen "AGGREGATE. ORG" en "UKY. EDU" in wit PLA op de blauwe PLA-achtergrond, zou het contrastarme uiterlijk van de carrosseriekleur aantrekkelijker kunnen zijn. We stellen het op prijs dat je ze daar achterlaat om kijkers eraan te herinneren waar het ontwerp vandaan komt, maar het is niet nodig om deze URL's visueel te schreeuwen.

Nadat deze onderdelen zijn afgedrukt, verwijdert u eventueel ondersteunend materiaal en zorgt u ervoor dat de servo past met de twee stukken die bij elkaar worden gehouden. Als het niet past, ga dan door met het uitkiezen van het ondersteuningsmateriaal. Het is een vrij strakke pasvorm, maar moet ervoor zorgen dat beide helften vlak tegen elkaar kunnen worden geduwd. Merk op dat er bewust geen uitlijningsstructuren in de print zitten, omdat zelfs een lichte kromtrekking de montage zou verhinderen.

Stap 5: Monteer het binnenste deel

Monteer het binnenste deel
Monteer het binnenste deel
Monteer het binnenste deel
Monteer het binnenste deel

Neem de twee binnenste delen en lijn ze rug aan rug uit zodat het puntige draaipunt aan de linkerkant van de "1" op één lijn ligt met het puntige draaipunt op de "0". Je kunt ze desgewenst tijdelijk bij elkaar houden met 2-zijdig plakband, maar het belangrijkste is om een hete soldeerbout te gebruiken om ze aan elkaar te lassen.

Het is voldoende om te lassen waar de randen samenkomen. Doe dit door eerst hechtlassen door met de soldeerbout PLA op verschillende plekken over de rand tussen de twee stukken samen te slepen. Nadat de onderdelen aan elkaar zijn geplakt, laat u de soldeerbout rondom de naad lopen om een permanente las te maken. De twee stukken moeten het onderdeel vormen dat in de bovenstaande afbeelding wordt getoond.

U kunt de pasvorm van dit gelaste onderdeel controleren door het in het achterste buitenste gedeelte te plaatsen. Je moet het een beetje kantelen om het puntige draaipunt in de kant te krijgen die geen servoholte heeft, maar eenmaal erin zou het vrij moeten draaien.

Stap 6: Oriënteer de servo en stel de hoorn in

Oriënteer de servo en stel de hoorn in
Oriënteer de servo en stel de hoorn in

Om dit te laten werken, moeten we een bekende directe overeenkomst hebben tussen servobesturing en rotatiepositie van de servo. Elke servo heeft een minimale en maximale pulsbreedte waarop hij zal reageren. Je zult die empirisch moeten ontdekken voor je servo's, want we rekenen op de volledige beweging van 180 graden en verschillende fabrikanten produceren SG90's met iets andere waarden (in feite hebben ze ook iets andere maten, maar ze zouden dicht genoeg moeten zijn om passen binnen de toegestane ruimte). Laten we de kortste pulsbreedte "0" noemen en de langste "1".

Pak een van de hoorns die bij je servo zijn geleverd en knip de vleugels eraf met een draadknipper of een ander geschikt gereedschap - zoals te zien is op de bovenstaande foto. De zeer fijne versnellingsafstand op de servo is erg moeilijk te 3D-printen, dus we zullen daarvoor in plaats daarvan het midden van een van de servohoorns gebruiken. Zet de getrimde servohoorn op een van de servo's. Sluit nu de servo aan, zet hem in de "1" positie en laat hem in die positie staan.

Je hebt waarschijnlijk gemerkt dat het niet-puntige draaipunt een cilindrische holte heeft die ongeveer zo groot is als de tandwielkop op je servo - en iets kleiner dan de diameter van je getrimde hoorncentrum. Neem de hete soldeerbout en draai deze voorzichtig in het gat in de spil en ook rond de buitenkant van het bijgesneden midden van de hoorn; je probeert ook niet te smelten, maar gewoon om ze zacht te krijgen. Houd vervolgens de servo vast en duw het midden van de hoorn recht in het gat in de spil met de servo in wat de "1" -positie zou moeten zijn - waarbij het binnenste gedeelte de "1" toont wanneer de servo is gepositioneerd zoals het zou zijn wanneer rustend in de holte in het buitenste achterste deel.

Je zou moeten zien dat de PLA een beetje op zichzelf vouwt als je de getrimde hoorn naar binnen duwt, waardoor een zeer stevige verbinding met de hoorn ontstaat. Laat de binding een beetje afkoelen en trek dan de servo eruit. De hoorn moet het onderdeel nu goed genoeg hechten zodat de servo het onderdeel vrij kan draaien zonder noemenswaardige speling.

Stap 7: Monteer elke Qubit

Monteer elke Qubit
Monteer elke Qubit
Monteer elke Qubit
Monteer elke Qubit

Nu ben je klaar om de qubits te bouwen. Plaats het buitenste achterste deel op een plat oppervlak (bijvoorbeeld een tafel) zodat de servo-holte naar boven is gericht en de standaard over de oppervlakterand hangt, zodat het buitenste achterste deel plat zit. Neem nu de servo en het binnenste deel bevestigd door de hoorn en plaats ze in het achterste buitenste deel. Druk de kabel van de servo in het kanaal ervoor.

Zodra dat allemaal gelijk zit, plaatst u het voorste buitenste deel over het geheel. Sluit de servo aan en bedien deze terwijl u het geheel bij elkaar houdt om ervoor te zorgen dat niets bindt of niet goed is uitgelijnd. Gebruik nu ofwel VHB-tape of gebruik een soldeerbout om de buitenste voor- en achterkant aan elkaar te lassen.

Herhaal deze stappen voor elke qubit.

Stap 8: Montage

Montage
Montage
Montage
Montage

De kleine basis van elke qubit heeft een snee in de achterkant waarmee je de servokabel aan de achterkant kunt aansluiten om verbinding te maken met je controller, en de basis is breed genoeg om elke qubit op zichzelf stabiel te maken, dus je zou gewoon kunnen zetten verlengkabels op elke servo en leg ze verspreid over een tafel of een ander plat oppervlak. Dat zal echter draden tonen die ze verbinden ….

Ik heb het gevoel dat het zien van draden de illusie van spookachtige actie op afstand verpest, dus ik verberg de draden liever volledig. Om dat te doen, hebben we alleen een montageplatform nodig met een gat onder elke qubit dat groot genoeg is om de servokabelconnector door te laten. Natuurlijk willen we dat elke qubit blijft waar hij is geplaatst, dus er zijn drie 1/4-20 getapte gaten in de basis. De bedoeling is om de middelste te gebruiken, maar de andere kunnen worden gebruikt om dingen veiliger te maken of als de centrale draad wordt gestript door te strak aan te draaien. Zo boort men twee dicht bij elkaar liggende gaten in de basis voor elke qubit: één om een 1/4-20 schroefdraad door te laten, de andere om de servokabelconnector door te laten.

Aangezien 3/4 "hout het meest voorkomt, wil je het waarschijnlijk gebruiken voor de bovenkant van de basis - zoals ik deed. In dat geval heb je een 1/4-20 schroef of bout van ongeveer 1,25" nodig lang. Je kunt ze bij elke ijzerhandel kopen voor ongeveer $ 1 voor zes. Je kunt ze ook 3D-printen… maar ik raad aan om ze een voor een af te drukken als je ze toch print, want dat minimaliseert de defecten in de fijne schroefdraad.

Het is duidelijk dat de afmetingen van de houder niet kritisch zijn, maar ze bepalen wel de lengte van de verlengkabels die je nodig hebt. KREQC werd uitgevoerd als twee rijen van drie qubits, voornamelijk zodat de houder in een handbagagekoffer zou passen, en zo brachten we hem naar onze IEEE/ACM SC18-onderzoekstentoonstelling.

Stap 9: merk het

Merk het
Merk het
Merk het
Merk het
Merk het
Merk het

Vergeet als laatste stap je kwantumcomputer niet te labelen!

We hebben een naamplaat in zwart op goud 3D-geprint, die vervolgens op de houten voorkant van de basis werd bevestigd. Voel je vrij om de jouwe op een andere manier te labelen, zoals 2D-printen van de bijgevoegde PDF-naamplaatafbeelding met een laser- of inkjetprinter. Het zou ook geen kwaad om elke qubit te labelen met zijn positie, vooral als je te creatief bent in het rangschikken van de qubits op de basis.

Misschien vind je het ook leuk om 3D-geprinte qubit-sleutelhangers uit te delen; ze zijn niet verstrikt en ook niet gemotoriseerd, maar ze draaien vrij rond als je erop blaast en vormen een geweldige herinnering aan een KREQC-demonstratie.

Aanbevolen: