Czy istnieje przewodnik po studiach, który zaczyna się od „czysto CS” i postępuje w kierunku „tworzenia nowego kwantowego języka programowania”?

12

Pochodzę z informatyki i trudno mi decydować o zasobach, na których powinienem się skoncentrować, ucząc się obliczeń kwantowych, ponieważ jest tak wiele do czytania / oglądania. Moim ostatecznym celem jest stworzenie języka programowania działającego jako interfejs między komputerami kwantowymi a osobą podobną do roku 1972, kiedy powstało C. Jako realistyczny etap pośredni chciałbym przejść do pisania programów na QISKit IBM.

W tym celu potrzebowałbym schematycznego przewodnika po studiach, aby uzyskać niezbędne podstawy fizyki i powiązanych dziedzin wymaganych do nurkowania w dziedzinie obliczeń kwantowych. Czy to już istnieje: uporządkowana lista niezbędnych pojęć i umiejętności do opanowania, która, jeśli to możliwe, wymienia również odpowiedni materiał do zdobycia każdego z nich ?

Załóż znajomość fizyki na poziomie szkoły średniej. Zapewnij przewodnik do nauki, tj. Przewodnik dla początkujących i ekspertów. Spróbuj wymienić zasoby wideo / książkowe, których należy przestrzegać w porządku chronologicznym, aby stać się ekspertem w dziedzinie obliczeń kwantowych do poziomu, w którym mogę pisać własny język obliczeń kwantowych (zakładając, że masz już inne umiejętności CS do pisania języka) .

Kushajveer
źródło
3
Witamy w Quantum Computing SE! Obecnie tytuł tego pytania sprawia, że wydaje się , że pytasz o coś szerokiego i opartego na opiniach (do czego nie jest przeznaczony format pytań i odpowiedzi na SE), chociaż główna treść pytania wyjaśnia, że ​​jest to w rzeczywistości żądanie zasobów (co jest dopuszczalne). W związku z tym najbardziej przydatne byłoby edytowanie tytułu pytania, aby bardziej szczegółowo określić, co chcesz wiedzieć. Ponadto może być przydatne, jeśli podasz dokładnie to, czego brakuje odpowiedzi na pytanie, do którego link znajduje się w komentarzach, abyśmy mogli lepiej pomóc. Dzięki!
Mithrandir24601
1
Zobacz w szczególności nasze zasady dotyczące pytań o zasoby . To jest zbyt szerokie.
wrzos
1
Czy myślisz o czymś takim jak nand2tetris, ale kwantowym? A może coś w rodzaju książki „Obliczenia kwantowe dla informatyków”?
James Wootton
1
Dzięki twoim modyfikacjom uważam, że teraz spełnia on wymagania dotyczące zasobów, więc otworzyłem ponownie.
wrzos

Odpowiedzi:

11

Nie sądzę, że istnieje jeden złoty zasób, który może zapewnić ci całą niezbędną wiedzę. Ale mogę zasugerować ścieżkę (lub schematyczny przewodnik po twoich słowach):

Jeśli twoim celem jest stworzenie nowego języka programowania kwantowego, wolę powiedzieć, że powinieneś najpierw dokładnie nauczyć się istniejącego języka programowania kwantowego wraz z podstawowymi pojęciami obliczeń kwantowych, zarówno od strony fizyki, jak i informatyki (może nawet matematyki bok!).

  • Microsoft ma swój kwantowy język programowania o nazwie Q # (który jest częścią ich Quantum Development Kit ). Kompletny przewodnik po dokumentacji znajduje się na ich stronie internetowej: https://docs.microsoft.com/en-us/quantum . Jeśli jesteś po stronie CS, mam nadzieję, że masz już pewną wiedzę na temat wektorów, macierzy i algebry liniowej w ogóle. Jeśli tak, możesz bezpośrednio zacząć czytać przewodnik po artykule. Początkowo zaczynają się od krótkiej rewizji macierzy, wektorów itp., A następnie krótkiego wprowadzenia do kubitów. Tyle wystarczy, aby przynajmniej zacząć pisać podstawowy program kwantowy, przy minimalnym zrozumieniu fizyki. Nawiasem mówiąc, jeśli twoje pojęcia algebry liniowej są słabe, zawsze możesz spróbowaćWykłady Khan Academy na ten sam temat.

  • Następnie chciałbyś nauczyć się przynajmniej kilku podstaw mechaniki kwantowej. Osobiście uwielbiam wykłady profesora Vazirani , które są teraz na Youtube. W około 60 dziesięciominutowych wykładach omawia wszystkie niezbędne podstawy mechaniki kwantowej i algorytmów obliczeń kwantowych. Po tym będziesz w dobrym stanie, aby samodzielnie wybrać nowe algorytmy.

  • Jako trzeci krok zaproponowałbym wybranie „ Obliczeń kwantowych i informacji kwantowych” Isaaca Chuanga i Michaela Nielsena, a także „ Obliczeń kwantowych dla informatyków Mirco A. Mannucciego i Nosona S. Yanofsky'ego ” za omówienie ważnych tematów przegapiłem.

To powinno wystarczyć, aby uzyskać solidne podstawy do pisania własnego kwantowego języka programowania. Możesz także zapoznać się z samouczkami dotyczącymi innych popularnych języków obliczeń kwantowych, aby dowiedzieć się, jak pisać programy kwantowe i projektować kwantowe języki programowania.

Sanchayan Dutta
źródło
6

Proponuję zastanowić się nad tym, czy cel „stworzenia nowego języka programowania kwantowego” jest odpowiedni na tym etapie rozwoju obliczeń kwantowych. To nie jest najczęstsze podejście, ponieważ przeważnie wciąż jesteśmy na etapie myślenia o tym, czym jest język maszynowy. Kiedy tworzymy algorytmy, poziom, na którym się to robi, jest podobny do wyrażania klasycznych algorytmów w kategoriach bramek logicznych (takich jak ten przykład mnożenia). Kwantowe zestawy SDK, takie jak QISKit, są zasadniczo sposobami do tworzenia zadań wysyłanych do sprzętu kwantowego lub symulatorów. Obejmuje to narzędzia do przeprowadzania symulacji, optymalizacji czasu pracy lub poziomu hałasu itp. Nie są to tak naprawdę języki w sensie wysokiego poziomu, do którego jesteśmy przyzwyczajeni w obliczeniach klasycznych.

Dla wprowadzenia do tego, co dzieje się na tym poziomie stosu kwantowego, pomocne może być Q dla Quantum autorstwa Terry'ego Rudolpha.

Jako pośredni cel pisania programów za pomocą QISKit polecam samouczek QISKit . Ma wiele sprawdzonych przykładów wdrażania krótkich programów kwantowych. Istnieje również publikacja QISKit na Medium, w której niektóre elementy tego samouczka są wyjaśnione bardziej szczegółowo. Istnieje także z gamizowany samouczek dotyczący QISKit , który może być przydatny jako rozgrzewka do pełnego samouczka QISKit.

Pełne ujawnienie: przyczyniłem się do wszystkich rzeczy wymienionych w ostatnim akapicie.

James Wootton
źródło
3
Chciałbym się z tym nie zgodzić. Gdy tylko opracowano FORTRAN (gdy komputery cyfrowe były jeszcze dość prymitywne), ludzie zaczęli go używać zamiast języka maszynowego, i był to prawdopodobnie największy skok w językach programowania w historii klasycznych komputerów. Dlaczego powinniśmy zmuszać ludzi do programowania w języku maszynowym dla komputerów kwantowych? (Jestem pewien, że zrobią to ze względu na skuteczność, ale nie należy ich zmuszać.)
Peter Shor
1
Świetny punkt! Powiedziałbym, że sprzęt nie jest w tej chwili zdolny do myślenia poza językiem maszynowym. Ale byłoby świetnie, gdyby udowodniono, że się mylą.
James Wootton
Trochę zredagowałem swoją odpowiedź, aby stłumić negatywność, i po prostu zaznaczam, że nie jest to obecnie zwykły sposób robienia rzeczy (choć to nie znaczy, że to źle)
James Wootton