Pochodzę ze środowisk niefizycznych i bardzo interesuję się obliczeniami kwantowymi - zwłaszcza ich programowaniem. Wszelkie wskazówki, jak zacząć, będą bardzo pomocne.
resource-request
programming
Koder101
źródło
źródło
Odpowiedzi:
Możesz zacząć od wprowadzenia do komputerów kwantowych, takich jak ten z Voxxed Days Vienna 2018 - jest on przeznaczony dla osób z wykształceniem programistycznym, ale posiadających niewielką lub żadną wcześniejszą wiedzę na temat mechaniki kwantowej. Następnie możesz sprawdzić przewodniki w IBM Quantum Experience lub przewodniki dotyczące Microsoft Quantum Development Kit .
Oprócz tego na YouTube jest na przykład mnóstwo filmów, które mogą pomóc w głębszym zrozumieniu tematu.
źródło
Myślę, że programiści kwantowi niekoniecznie muszą wiedzieć o fizyce kwantowej i algebrze liniowej. Są to z pewnością rzeczy, które pomogą poszerzyć wiedzę programistów kwantowych, ale nie należy ich uważać za warunki wstępne.
Mimo to większość zasobów pomaga początkującemu programistom kwantowemu rozpocząć od założenia algebry liniowej. Te, które nie skupiają się głównie na QISKit, SDK dla urządzenia kwantowego IBM (a niektóre z nich zostały napisane przeze mnie).
Najprostszym programem, jaki możesz wymyślić, jest „Hello World”. Jak to robisz dla komputerów kwantowych? Moja propozycja to superpozycja emotikonów .
Po wyjściu poza „Hello World” w programowaniu kwantowym będziesz chciał zrobić coś bardziej złożonego. Często ludzie tworzą proste gry. Zróbmy to z komputerem kwantowym. Zrobiłem pancerniki .
Te i wiele innych przykładów programowania kwantowego znajdziesz w samouczku QISKit . Myślę, że jest to prawdopodobnie najlepsze miejsce dla nowych programistów kwantowych, aby zobaczyć, co można zrobić i jak to zrobić.
źródło
pyQuil jest biblioteką programowania kwantowego o otwartym kodzie źródłowym w języku Python. Dokumentacja obejmuje wprowadzenie do obliczeń kwantowych, gdzie uczysz się przez programowanie. Nie zakłada żadnego tła fizycznego.
Oto kilka linków do głównych tematów:
źródło
Nie jest konieczne pełne zrozumienie mechaniki kwantowej, aby zrozumieć teorię QC. Jestem programistą matematyki / programistą i czytałem na ten temat, a także zrobiłem stary kurs edX QC (niestety nie jest dostępny, ale są inne). Myślę, że mogę powiedzieć, że rozumiem istotę QC, ale prawie nic nie wiem o mechanice kwantowej.
Kluczową kwestią jest to, że Quantum Computing używa głównie algebry liniowej, która opiera się na matematyce, której zwykle uczy się na studiach inżynierskich / informatycznych. Porównaj to z prawdziwą mechaniką kwantową, która wykorzystuje przestrzenie nieskończenie wymiarowe (lub analizę funkcjonalną, jeśli chcesz).
Jeśli czujesz się komfortowo z tymi matematykami na studiach licencjackich, możesz sprawdzić Mechanikę kwantową Susskinda : teoretyczne minimum - nie chodzi w rzeczywistości o „prawdziwą” mechanikę kwantową, to głównie rzeczy przydatne w QC. BTW cała seria książek Teoretyczne minimum skierowana jest do osób, które znają matematykę (np. Informatyków lub kierunków inżynierskich) i chcieliby dowiedzieć się więcej o fizyce. Istnieje również wiele kursów online, na przykład są nowe kursy na edX, ale nie zrobiłem żadnego z nich, więc nie mogę polecić żadnego.
źródło
Jeśli chcesz wyjść poza naukę pisania obwodów kwantowych w różnych ramach programowania kwantowego, takich jak Q # , pyQuil i QISKit , bardzo polecam ten najnowszy artykuł z tytułem Implementacje algorytmu kwantowego dla początkujących z Narodowego Laboratorium Los Alamos. Jest to doskonałe źródło wiedzy na temat kompilowania i implementacji różnych algorytmów kwantowych, a także ich wyroczni i określonych podprogramów jako obwodów kwantowych za pomocą IBM Q Experience. Polecam zaimplementować je w dowolnym ze wspomnianych ram programistycznych i nauczyć się drobiazgowych szczegółów w trakcie pracy.
źródło
Komputery kwantowe są programowane przez (ewoluujące języki programowania) tak zwane obwody kwantowe. Są to sekwencje bramek kwantowych oraz informacje, na które działają bity kwantowe (kubity).
Jedyne, co naprawdę musisz wiedzieć o bramkach kwantowych, to to, że reprezentują one obroty (w przestrzeni o wyższym wymiarze, tzw. Przestrzeni Hilberta). Dlatego są odwracalne: komputery kwantowe są programowane z odwracalną logiką.
Co obracają się bramy kwantowe? To hipersfery, na których powierzchni żyją stany kubitowe. Każdy stan podstawy obliczeniowej ( , , ,|00⟩ |01⟩ |10⟩ |11⟩ dla układu 2-kubitowego w zwykłej notacji Diraca) otrzymuje liczbę zespoloną jako współczynnik lub tak zwaną amplitudę prawdopodobieństwa. Wektory podstawowe są ortogonalne i obejmują przestrzeń Hilberta stanu, amplitudy prawdopodobieństwa mogą być w niej postrzegane jako współrzędne. To jest obraz, na którym bramki kwantowe wpływają na obroty. Przekonasz się, że fizycy często używają innego obrazu, kuli Blocha, dla pojedynczych układów kubitowych, w których bramki kwantowe również powodują obrót (ale czasami o większy kąt lub o jeden, który jest pominięty na tym zdjęciu).
Cała konwencjonalna logika może zostać zaimplementowana przez komputer kwantowy, najpierw wyrażając ją w logice odwracalnej (która może wymagać bitów pomocniczych). Klasyczna bramka NOT odpowiada bramce kwantowej X, ale w przeciwieństwie do klasycznego przypadku, w którym jedynymi 1-bitowymi bramkami odwracalnymi są tożsamość, a brama NOT, komputer kwantowy ma cztery odpowiadające bramki (X, Y, Z zgodnie z obrotami na Kula Blocha plus tożsamość). Co więcej, możesz mieć obroty, które obracają się tylko o ułamek tego, jak daleko te bramy się obracają; kilka szczególnie interesujących ma specjalne nazwy i skróty, takie jak brama Hadamarda lub brama H, która tworzy równe nałożenie wszystkich stanów.
Niestety, wcześni inżynierowie oprogramowania kwantowego prawdopodobnie będą musieli dowiedzieć się trochę o sprzęcie komputerowym, którego będą używać: Z powodu arbitralnie i ciągle wybieranego kąta efektywnego obrotu bramki kwantowej istnieje coś w rodzaju elementu analogowego do komputerów kwantowych, który z konieczności powoduje błędy (a fizyczne komputery kwantowe mają nawet więcej źródeł błędów niż tylko to). Istnieje sposób, aby sobie z tym poradzić, kwantowa korekcja błędów, która dyskrecjonuje błędy i koryguje najbardziej prawdopodobne ich dyskretyzacje, aby osiągnąć (idealnie) dowolnie złożone obliczenia z błędami powiązanymi. Ale optymalizacja prawdopodobnie będzie oznaczać, że jeden komputer kwantowy z jedną kwantową korekcją błędów będzie bardziej odpowiedni dla pewnej bramki kwantowej lub nawet algorytmów niż inne,
źródło