Co parę lat podchodziłem do tematu jak to zrozumieć, za każdym razem bezskutecznie.
Nawet sobie wygooglowałem, że tu trzeba znać algebrę liniową, prawdopodobieństwo, analizę matematyczną i wtedy człowiek bez problemu sobie poradzi.
No tak bardzo dużo programów napisałem wykorzystując wszystkie działy matematyki, a mimo to nie ma opcji jakiegokolwiek sensu wyciągnąć z tych algorytmów kwantowych.
Nie można całej bazy danych i tak załadować do pamięci to możemy co najwyżej jedną zmienną np. jakiegoś inta, dajmy na to liczbę 13.
Potem grover search algorytmem szukamy liczby 13 i znajdujemy 13 liczbę, algorytm zakończony.
Klasycznie jak wiemy, że szukamy 13 liczby i wiemy, że znaleziona liczba to 13, to trochę bez sensu jest bo dobrze możemy znając indeks pomnożyć razy wielkość elementu i od razu wiemy gdzie w pamięci jest dana struktura.
Możliwe, że ludzie, którzy opisują algorytmy w internecie są mało dokładni bo nie ma drugiego schrodingera na świecie.
Jako, że praktycznie jedną liczbę możemy tam mieć to w sumie możemy tylko jakąś własność tej liczby wyciągnąć czy obliczyć, podzielność czy inne.
Czasem mam wrażenie, że ludzie, którzy wymyślili komputery kwantowe zrobili to dla pieniędzy, bo nawet jak byś miał odpowiednią ilość kubitów, żeby złamać szyfrowanie RSA czy inne, zrobić fałszywy token i go podpisać, a potem mieć pełen dostęp to i tak ci zajmie to zamiast 1500lat powiedzmy 30 lat, gdzie jak co miesiąc dana strona/serwis, będzie generować nowe klucze to i tak na nic się to zda, tylko jak przez 30 lat ktoś hasła nie zmienił i wyczytałeś to z tamtej konwersacji między przeglądarką, a serwisem.
Tak jak każdy problem da się łatwo rozwiązać w dowolnej technologii.
Np. miałbym warunek jakiś czy chcę zrobić jedno czy drugie, to w języku programowania zrobisz if
zwykłe.
Jak będziesz chciał to zrobić żeby procesor nie musiał myśleć to zrobisz jakiś cmove
warunkowy move.
Jak to będzie fpga czy niżej, to zrobisz dwa rejestry jeden dla wartości pierwszej i drugi dla wartości false, teraz robisz multiplexer i podajesz obok 1 lub 0 bit, a multiplekser albo podaje pierwszy rejestr albo drugi.
Ogarnianie pde, partially differential equations, probabilistic programming i zwykłą matmę to pryszcz przy tym.
Np. jak obliczyć wygrywający ruch w kółko i krzyżyk za pomocą rzutu monetą? No trochę zakłamanie to brzmi, ale to działa to tak, że rzucasz miliony tych monet, one decydują, którą gałąź grafu wybierasz i potem zliczasz średnią wygraną dla każdej gałęzi wygranej i wybierasz tą, która ma największą średnią wygranych.
Ogólnie same prawdopodobieństwo ma zawsze pole powierzchni równę 1.0, tylko kształt decyduje o tym jak losowość przebiega.
Jednym z dobrych algorytmów jest monte carlo metropolish hasting do oszacowywania kształtu prawdpodobieństwa.
Taki prosty przykład z bramką hadamara i not jest logiczne i bez komputera kwantowego obliczalne.
A ktoś z was umie wytłumaczyć jak działają algorytmy kwantowe lub zrozumiał?