Po pierwsze: jestem początkującym w dziedzinie obliczeń kwantowych.
Chciałbym otrzymać zasób (lub odpowiedź, jeśli nie jest to skomplikowane) wyjaśniający, gdzie umieszczamy kody korekcji błędów w obwodzie kwantowym.
Rzeczywiście, wiem, że mamy różne możliwe błędy, które mogą wystąpić (odwracanie bitów, odwracanie faz itp.), I mamy algorytm do ich poprawiania. Chciałbym jednak wiedzieć, czy istnieją strategie, w których umieszczamy algorytm korekcji błędów. Czy to po każdej bramce zaangażowanej w główny algorytm? Czy istnieje mądrzejsza strategia zastosowana do pojedynczej korekty dla zestawu bram?
Jeśli odpowiedź jest „skomplikowana”, chciałbym mieć zasób, aby się tego wszystkiego nauczyć (znajduję wiele rzeczy na temat kodu korekcji błędów, ale nie znalazłem nic na temat tego, gdzie musimy dokonać korekty).
Odpowiedzi:
Na podstawie twojego pytania myślę, że nie szukałeś właściwego terminu. Kody korekcji błędów są metodami wykrywania i korygowania możliwych błędów, które pojawiają się w kubitach z powodu efektu dekoherencji.
Termin kwantowe obliczenie odporne na uszkodzenia odnosi się do paradygmatu urządzeń kwantowych, które działają skutecznie nawet wtedy, gdy jego elementarne elementy są niedoskonałe, a szukane kody korekcji błędów są podstawą do zbudowania tego rodzaju obliczeń. Zachęcam do samodzielnego poszukiwania informacji związanych z odpornością na uszkodzenia, ponieważ jest to dość duży obszar w obliczeniach kwantowych. Jednak zdecydowanie polecam tekst Obliczenia kwantowe tolerancyjne na błędy przez Preskill. W takim artykule autor rzeczywiście zaczyna mówić o kodach korekcji błędów, ale potem zagłębia się w koncepcję tolerancji na błędy i myślę, że rozwiąże to wiele twoich wątpliwości na ten temat.
źródło
W odpornym na błędy obliczeniu kwantowym rozróżniamy kubity fizyczne i kubity logiczne .
Kubity fizyczne są tymi, które faktycznie istnieją i są hałaśliwe. Tego używamy do tworzenia logicznych kubitów, ale zwykle potrzeba wielu fizycznych kubitów, aby stworzyć jeden logiczny kubit. Wynika to z dużej nadmiarowości potrzebnej do wykrywania i korygowania błędów.
Rzeczywisty kod uruchamiany na fizycznych kubitach będzie się układał warstwowo. Inżynier oprogramowania do korekcji błędów kwantowych zaprojektuje logiczne kubity, pisząc program niezbędny do wdrożenia kodu korekcji błędów kwantowych. Dla każdej operacji, której ktoś może potrzebować w algorytmie, zaprojektuje wersję zgodną z korekcją błędów, która wykonuje operację na kubitach logicznych w sposób umożliwiający wykrycie i skorygowanie niedoskonałości.
Następnie programista przyjdzie i napisze swój program. Nie będą musieli w ogóle myśleć o kubitach fizycznych lub korekcie błędów.
Na koniec kompilator połączy wszystko, aby utworzyć odporną na błędy wersję programu do działania na fizycznych kubitach. Nie będzie to wyglądało tak, jak napisał programista. Nie będzie to wyglądało na ciągłe zmienianie się rzeczy napisanych przez programistę, po których następują korekty błędów w celu wyczyszczenia. Prawie całkowicie poradzi sobie z wykrywaniem i korygowaniem stale pojawiających się błędów, z niewielkimi zaburzeniami w implementacji algorytmu.
Jako odniesienie myślę, że najlepiej polecić coś, co wyjaśnia, w jaki sposób operacje na kubitach logicznych są realizowane na kubitach fizycznych za pomocą kodu korygującego błędy. Jeden z moich własnych artykułów wykonuje tę pracę, wyjaśniając to na wiele sposobów uzyskania logicznych operacji w kodzie powierzchniowym. Zawiera także odniesienia do wielu prac innych w tym samym obszarze.
źródło