Hur kvantprogrammering förvandlades till ett 3D-pusselspel

Programvara är den del av en dator som består av kodad information och instruktioner. Den är helt skild från hårdvaran – de fysiska strukturerna som utför dessa instruktioner. Åtminstone är det sant för konventionella datorer.





Men på senare år har datavetare blivit allt mer fokuserade på kvantdatorer som använder kvantmekanikens konstiga lagar för att bearbeta information. Detta resulterar i mycket kraftfullare beräkningar. Men i kvantvärlden är det mycket svårare att separera mjukvaran och hårdvaran.

Ändå börjar ett kraftfullt nytt sätt att tänka kring kvantmjukvara att växa fram. Och det märkliga med detta tillvägagångssätt är att det förvandlar kvantprogrammering till ett slags 3D-pussel. Det leder till en intressant fråga: är det möjligt att gamifiera kvantprogram på ett sätt som ger användbara resultat?

Idag får vi svar tack vare Simon Devitts arbete på Riken i Saitama, Japan, som har byggt ett onlinespel som har potential att spela en avgörande roll i framtiden för kvantprogrammering. Spelet kan inte bara hjälpa människor att skapa bättre program, utan det kan också hjälpa en ny generation av maskiner med artificiell intelligens att ta sig an uppgiften själva.



Först lite bakgrund. Ett sätt att tänka på ett kvantprogram är som ett tvådimensionellt gitter av qubits, som ett ark, eller ett tredimensionellt gitter, som en kristall. Informationen kodas genom att skapa ett hål eller defekt i gittret.

Detta är ett kraftfullt tillvägagångssätt eftersom informationen är naturligt skyddad mot fel av själva gallrets egenskaper, vilket effektivt låser den på plats.

Informationen kan bearbetas genom att defekter flyttas genom gallret och lindas runt varandra, som ett trassligt snöre. Trasslingsprocessen kan skapa logiska grindar som tillsammans utför beräkningar.



Detta är i huvudsak en topologisk process. Så topologins matematik beskriver hela processen, oavsett hur rörigt trasslet blir. Så länge gittren är topologiskt identiska spelar de andra detaljerna i trasslet ingen roll.

Detta är analogt med den berömda länken mellan en munk och en kaffekopp. Dessa former är helt olika att se på men är topologiskt identiska eftersom de båda innehåller ett enda hål. Var och en kan omvandlas till den andra genom att klämma och stretcha men inte genom att riva.

Exakt samma sak gäller kvantprogram. Två program utför samma jobb förutsatt att de är topologiskt identiska men oavsett hur trassliga gallren blir.



Det väcker ett intressant problem. Med tanke på ett trassligt gitter som representerar ett kvantdatorprogram, hur enkelt kan det göras samtidigt som dess topologi bevaras? Med andra ord, hur kan kvantprogrammet optimeras?

Det är viktigt eftersom dagens kvantdatorer bara kan hantera några få kvantbitar. Med så knappa kvantresurser, ju enklare ett program kan göras, desto lättare kan det implementeras.

Det är här Devitt kliver in. Han har utvecklat ett kraftfullt sätt att visualisera kvantprogram som 3D-gitter med sammankopplade sektioner som representerar hur information lagras och bearbetas. Optimeringens uppgift är att förenkla gallret genom att flytta, krympa, sträcka och omarbeta de sammankopplade sektionerna samtidigt som samma topologi bevaras.



Devitt's har gått längre genom att gamifiera uppgiften - han har förvandlat den till ett webbaserat pussel som heter MeQuanics, som du kan prova här . Tanken bakom spelet är att ett kvantprogram kan driva din rymdfarkost. Men programmet du har är för stort och måste därför göras mindre med hjälp av olika verktyg som kan göra om det.

Spelet är fascinerande och inte så annorlunda från olika andra pusselspelare. Det är lite buggigt men det ser bra ut och är värt ett försök om du har några minuter på dig.

Det finns en annan dold aspekt av spelet. Ett sätt att påskynda processen med att optimera kvantprogram skulle vara att träna en maskininlärningsalgoritm för att göra jobbet. Dessa algoritmer har varit enormt framgångsrika i andra uppgifter och den här typen av optimering verkar vara idealisk.

Men det är ett problem. Dessa algoritmer måste tränas, och det kräver en stor datamängd med exempel som de kan lära sig av. Kvantprogramoptimering är dock så nytt att det inte finns några lämpliga datamängder för denna uppgift.

Det är därför MeQuanics är viktigt - processen att spela spelet skapar en databas med exempel som kan användas för att träna en maskin. Och givet tillräckligt med data borde maskinerna så småningom överträffa människor. Googles AlphaGo-program visade hur kraftfulla de kan vara när det nyligen slog en av de bästa mänskliga Go-spelarna efter att ha slukt en enorm datauppsättning av Go-spel som spelas online.

Devitt's är ett intressant arbete som har potential att introducera en ny generation människor till kvantprogrammering. Och det bästa av allt, det låter dem ha lite kul medan de lär sig.

Ref: arxiv.org/abs/1609.06628 : Programmering av kvantdatorer med 3D-pussel, kaffekoppar och munkar

Dölj