Uwaga: ta odpowiedź zakłada, że chcesz, aby permutacja była spójna , tzn. Chcesz zamiast 1/3 szansa , 1/3 szansa i 1/3 szansa .13√(|001⟩+|010⟩+|100⟩)001010100
Uważaj, jak określisz to zadanie, ponieważ może być bardzo łatwo niemożliwe z powodu ograniczeń odwracalności. Na przykład dla wejściowego chcesz wyprowadzić stan GHZ . Ale jeśli chcesz również wyprowadzić stan GHZ dla wejściowego i , to nie zadziała. Nie można wysłać wielu stanów wejściowych do tego samego stanu wyjściowego (bez dekoherencji). Tak długo, jak powiesz: „Dbam tylko o posortowane rosnąco, takie jak 0000111, ale nie 1110000 lub 0010110; możesz zrobić z nimi co chcesz”, to będzie w porządku.|001⟩∣∣31⟩=13√(|001⟩+|010⟩+|100⟩)|010⟩|100⟩
Jedną sztuczką w tworzeniu kwantowej permutacji posortowanego wejścia jest najpierw przygotowanie „stanu permutacji” poprzez zastosowanie sieci sortującej do listy wartości początkowych, z których każda znajduje się w jednolitej superpozycji. Sieć sortująca wysyła kubity zawierające posortowane nasiona, ale także kubity zawierające porównania sieci sortującej. Stan permutacji to tylko kubity porównawcze. Aby zastosować go do danych wejściowych, wystarczy uruchomić dane wejściowe przez sieć sortującą w odwrotnej kolejności. Zauważ, że są tu pewne trudne szczegóły; patrz artykuł „ Udoskonalone techniki przygotowania stanów własnych fermionowych hamiltonianów ”. Trzeba by uogólnić tę technikę, aby pracować z danymi wejściowymi z powtarzanymi wartościami, a nie tylko wartościami unikatowymi.
Możesz także przyjrzeć się „ kompresji kwantowej ”, która jest bardzo ściśle związana z stany (jednolite superpozycje wszystkich bitowych stanów z zestawem bitów), które chcesz utworzyć. Główna różnica polega na tym, że obwód kompresji kwantowej działałby w odwrotnej kolejności i oczekuje liczby kodującej „ile jest tych?” zamiast „daj mi stan z poprawną liczbą”.∣∣nk⟩nk
Myślę, że mówię, że tworzenie tego rodzaju stanów jest bardziej skomplikowane, niż można się było spodziewać. Myślę, że powodem tego jest skomplikowanie, ponieważ amplituda amplitud wyjściowych zależy od obliczeniowego stanu wejściowego. Na przykład, dla chcesz wyjście, które jest superpozycją stanów czterech klasycznych, więc masz prefactor z ukryte wewnątrz . Ale dla pożądany wynik ma sześć klasycznych stanów, więc ukrywa prefiks .|0001⟩14√∣∣41⟩|0011⟩∣∣42⟩16√