Algorytm Shora
Teraz skupimy naszą uwagę na problemie faktoryzacji liczb całkowitych i zobaczymy, jak można go efektywnie rozwiązać na komputerze kwantowym, używając estymacji fazy. Algorytm, który otrzymamy, to algorytm Shora faktoryzacji liczb całkowitych. Shor nie opisał swojego algorytmu konkretnie w kategoriach estymacji fazy, ale jest to naturalny i intuicyjny sposób wyjaśnienia, jak on działa.
Zaczniemy od omówienia pośredniego problemu znanego jako problem znajdowania rzędu i zobaczymy, jak estymacja fazy dostarcza rozwiązania tego problemu. Następnie zobaczymy, jak efektywne rozwiązanie problemu znajdowania rzędu daje nam efektywne rozwiązanie problemu faktoryzacji liczb całkowitych. (Gdy rozwiązanie jednego problemu zapewnia rozwiązanie innego problemu w ten sposób, mówimy, że ten drugi problem redukuje się do pierwszego — więc w tym przypadku redukujemy faktoryzację liczb całkowitych do znajdowania rzędu.) Ta druga część algorytmu Shora w ogóle nie korzysta z obliczeń kwantowych; jest całkowicie klasyczna. Obliczenia kwantowe są potrzebne tylko do rozwiązania problemu znajdowania rzędu.
Problem znajdowania rzędu
Kilka podstawowych pojęć z teorii liczb
Aby wyjaśnić problem znajdowania rzędu i sposób, w jaki można go rozwiązać za pomocą estymacji fazy, pomocne będzie rozpoczęcie od kilku podstawowych pojęć z teorii liczb oraz wprowadzenie po drodze przydatnej notacji.
Na początek, dla dowolnej dodatniej liczby całkowitej zdefiniujmy zbiór w następujący sposób.
Na przykład, i tak dalej.
Są to zbiory liczb, ale możemy myśleć o nich jako o czymś więcej niż tylko zbiorach. W szczególności możemy rozważać operacje arytmetyczne na takie jak dodawanie i mnożenie — a jeśli umówimy się, że zawsze bierzemy nasze wyniki modulo (czyli dzielimy przez i bierzemy resztę jako wynik), zawsze pozostaniemy wewnątrz tego zbioru podczas wykonywania tych operacji. Te dwie konkretne operacje dodawania i mnożenia, obie brane modulo czynią pierścieniem, który jest fundamentalnie ważnym typem obiektu w algebrze.
Na przykład, i są elementami a jeśli pomnożymy je przez siebie, otrzymamy co daje resztę po podzieleniu przez Czasami wyrażamy to w następujący sposób.
Ale możemy również po prostu napisać o ile jasne jest, że pracujemy w po to tylko, aby utrzymać naszą notację tak prostą, jak to możliwe.
Jako przykład, oto tabliczki dodawania i mnożenia dla
Spośród elementów szczególne są elementy spełniające Często zbiór zawierający te elementy oznacza się gwiazdką, w następujący sposób.
Jeśli skupimy naszą uwagę na operacji mnożenia, zbiór tworzy grupę — konkretnie grupę abelową — która jest kolejnym ważnym typem obiektu w algebrze. Podstawowym faktem dotyczącym tych zbiorów (i skończonych grup w ogóle) jest to, że jeśli wybierzemy dowolny element i będziemy wielokrotnie mnożyć przez siebie, to w końcu zawsze otrzymamy liczbę
Jako pierwszy przykład weźmy Mamy, że ponieważ a jeśli pomnożymy przez siebie, otrzymamy co potwierdza powyższa tabela.
Jako drugi przykład weźmy Jeśli przejdziemy przez liczby od do to te, które mają NWD równe z są następujące.
Dla każdego z tych elementów możliwe jest podniesienie tej liczby do dodatniej potęgi całkowitej, aby otrzymać Oto najmniejsze potęgi, dla których to działa:
Naturalnie pracujemy w dla wszystkich tych równań, czego nie zawracaliśmy sobie głowy zapisywaniem — przyjmujemy to za domyślne, aby uniknąć zaśmiecania. Będziemy to kontynuować przez resztę lekcji.
Sformułowanie problemu i związek z estymacją fazy
Możemy teraz sformułować problem znajdowania rzędu.
Alternatywnie, używając notacji, którą właśnie wprowadziliśmy powyżej, mamy dane i szukamy najmniejszej dodatniej liczby całkowitej takiej, że Tę liczbę nazywamy rzędem elementu modulo
Aby powiązać problem znajdowania rzędu z estymacją fazy, rozważmy operację zdefiniowaną na układzie, którego stany klasyczne odpowiadają gdzie mnożymy przez ustalony element
Dla jasności: mnożenie wykonujemy w więc niejawnie zakładamy, że bierzemy iloczyn modulo wewnątrz ketu po prawej stronie równania.
Na przykład, jeśli weźmiemy i to działanie na bazie standardowej wygląda następująco.