POLITECHNIKA WARSZAWSKA. Wydział Elektroniki i Technik Informacyjnych ROZPRAWA DOKTORSKA. mgr inż. Marek Szyprowski
|
|
- Michał Wójtowicz
- 6 lat temu
- Przeglądów:
Transkrypt
1 POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych ROZPRAWA DOKTORSKA mgr inż. Marek Szyprowski Metoda redukcji kosztu kwantowego binarnych układów odwracalnych Promotor dr hab. inż Paweł Kerntopf Warszawa 2013
2
3 Streszczenie Projektowanie układów odwracalnych oraz układów kwantowych jest aktualnie dynamicznie rozwijającą się dziedziną nauki, łączącą informatykę, elektronikę i fizykę kwantową. Zaproponowano wiele algorytmów konstruowania takich układów, jednak otrzymywane wyniki nie są zadowalające ze względu na wysoką nadmiarowość. Problem znajdowania optymalnych układów odwracalnych, które byłyby odpowiednie do budowania w technologiach kwantowych, nie został jeszcze rozwiązany dla układów realizujących funkcje więcej niż trzech zmiennych. Niniejsza rozprawa poświęcona jest problemowi redukcji kosztu kwantowego w układach odwracalnych. Zaprezentowana jest w niej metoda projektowania układów o zredukowanym koszcie kwantowym, które realizują funkcje czterech zmiennych. Układy skonstruowane z bramek NCT dla znanych funkcji wzorcowych (ang. benchmark function) mają układy średnio o 44,9% niższy koszt kwantowy niż znane z literatury. Opracowane podejście jest na tyle ogólne, że pozwoliło również redukować koszt kwantowy w układach zbudowanych z innych bibliotek bramek odwracalnych oraz konstruować optymalne semi-klasyczne układy kwantowe. Ponadto, opracowano konstrukcję układu kwantowego realizującego uogólnioną bramkę Peresa, która ma zastosowanie do redukcji kosztu kwantowego układów realizujących funkcje więcej niż czterech zmiennych. Analiza uzyskanych wyników potwierdziła przydatność zaproponowanej metody oraz wskazała nowe kierunki badań związane z projektowaniem układów odwracalnych i kwantowych. Słowa kluczowe: układy odwracalne, układy kwantowe, koszt kwantowy. 3
4 Abstract A method of quantum cost reduction in binary reversible circuits Reversible and quantum circuit synthesis has been intensively studied for the last decade. Although many synthesis algorithms have been developed, it has been shown that they generate redundant reversible circuits. Synthesis of circuits optimal under the metric appropriate for quantum computing, called quantum cost, has not been solved for functions of more than three variables. Optimal designs are needed to estimate quality of synthesis algorithms for reversible and quantum circuits. This thesis is focuses on quantum cost reduction in reversible Boolean circuits. It presents a method for constructing 4-bit reversible circuits with reduced quantum cost. Quantum cost of the constructed circuits for the set of reversible benchmarks was on average 44.9% lower than the quantum cost of the circuits previously published in the literature. The presented approach is general enough to allow for quantum cost reduction in reversible circuits built from different reversible gate libraries as well as generating optimal semi-classical quantum circuits for the given reversible specification. Moreover, a quantum circuit design for n-control Peres gate has been developed, which can be applied to reduce quantum cost in circuits implementing reversible functions of more than three variables. Analysis of the experimental results has shown that the proposed method can be applied to reduce quantum cost of reversible circuits and opened new directions for the future research on reversible and quantum circuits. Keywords: reversible circuits, quantum circuits, quantum cost. 4
5 Spis treści 1. Wprowadzenie Układy odwracalne Układy kwantowe Motywacje do powstania rozprawy Zakres i teza rozprawy Układ pracy Funkcje i układy odwracalne Podstawowe definicje Biblioteka bramek NCT Bramka NOT Bramka CNOT Bramka Toffoliego Uogólniona bramka Toffoliego Sterowanie pozytywne, negatywne oraz mieszane Zapis układów odwracalnych Metody konstruowania układów odwracalnych Układy kwantowe Informacja kwantowa, kubit Układy fizyczne z wieloma kubitami Stany splątane Bramki kwantowe Jednokubitowe bramki kwantowe Wielokubitowe bramki kwantowe Koszt kwantowy bramki odwracalnej Biblioteka bramek NCV Bramka Peresa Biblioteka bramek NCVW Przegląd dotychczasowych metod redukcji kosztu kwantowego Optymalne układy kwantowe Konstruowanie układów kwantowych Konstruowanie i redukcja układów odwracalnych Dekompozycja kwantowa Redukcja układów kwantowych
6 4.3. Podsumowanie Optymalne układy odwracalne dla funkcji czterech zmiennych Algorytm konstruowania układu optymalnego Reprezentacja funkcji odwracalnej Baza układów optymalnych Symetrie i postać kanoniczna Konstruowanie bazy układów optymalnych Dalsza redukcja ilości pamięci wymaganej przez algorytm Redukcja kosztu kwantowego nowe możliwości Motywacja Konstruowanie 4-bitowych układów odwracalnych o niższym koszcie kwantowym Wyniki obliczeń przeprowadzonych dla funkcji czterech zmiennych Bazy układów optymalnych pod względem kosztu kwantowego Wyniki dla bramek NCT ze sterowaniem mieszanym Redukcja kosztu kwantowego w układach o więcej niż czterech liniach Semi-klasyczne układy kwantowe Wprowadzenie Logiki wielowartościowe Funkcje kwantowe i semi-klasyczne Bazy optymalnych semi-klasycznych układów kwantowych Konstruowanie optymalnych układów kwantowych Wyniki przeprowadzonych obliczeń Uogólniona bramka Peresa Uogólnienie bramki Peresa Dowód poprawności przedstawionej konstrukcji Własności uogólnionej bramki Peresa Realizacja uogólnionej bramki Toffoliego Uogólniona bramka Peresa ze sterowaniem mieszanym Podsumowanie Podsumowanie i dalsze kierunki badań Bibliografia A. Dodatek: Wyniki przeprowadzonych obliczeń A.1. Układy zbudowane z biblioteki NCT A.2. Układy zbudowane z biblioteki NCT ze sterowaniem mieszanym A.3. Układy z 4-bitową uogólnioną bramką Peresa A.4. Optymalne semi-klasyczne układy kwantowe
7 1. Wprowadzenie Układy logiczne są podstawowymi elementami, z który konstruowane są współczesne urządzenia elektroniki cyfrowej i technologii przetwarzania informacji. Dziedziny te rozwijają się bardzo dynamicznie komputery zyskują coraz to większą moc obliczeniową i coraz to większe pamięci. Wzrost tych parametrów dość dobrze charakteryzuje tzw. prawo Moore a [Moo65], według którego parametry te są podwajane średnio w ciągu dwóch lat 1. Przewiduje się, że obecnie rozwijane technologie półprzewodnikowe wkrótce osiągną granice swojej stosowalności i konieczne będzie opracowanie zupełnie nowych technologii Układy odwracalne Jednym z trudnych problemów, który muszą stale rozwiązywać konstruktorzy, jest ilość energii wydzielanej podczas pracy układów logicznych. Obecnie energia ta jest wydzielana głównie z powodu niedoskonałości samej technologii (np. oporność elektryczna materiałów). Szacuje się jednak, że w ciągu najbliższych dekad osiągnie się znaczny postęp w redukcji tych strat. Natomiast fizycy udowodnili [Lan61], że strat energii podczas tradycyjnego przetwarzania informacji nie da się wyeliminować zupełnie, bowiem są one powodowane zmniejszaniem entropii informacyjnej, co pociąga za sobą zmiany entropii termodynamicznej i wydzielanie energii. Utrata pojedynczego bitu informacji, zgodnie z tzw. zasadą Landauera, powoduje wydzielenie energii o wartości co najmniej kt ln 2 [Lan84], gdzie k jest stałą Boltzmana, T temperaturą pracy urządzenia, w którym nastąpiła utrata informacji. Wynika z tego, że w tradycyjnych układach logicznych, musi wystąpić wydzielanie energii wszędzie tam, gdzie następuje utrata informacji, np. na wejście klasycznej bramki koniunkcji logicznej podawanych jest wiele bitów, a na wyjściu otrzymujemy tylko jeden. Jeśli jednak układ logiczny posiada tyle samo wyjść co wejść i realizuje funkcję, która każdej kombinacji wejść przyporządkowuje jednoznacznie inną kombinację wartości wyjściowych, to nie następuje w nim utrata informacji. Dla takiej funkcji możliwe jest pełne odtworzenie wartości wejściowych na podstawie wartości wyjściowych, zatem zawsze istnieje przekształcenie odwrotne. Takie układy nazwane zostały odwracalnymi (ang. reversible). W pracach [Ben73, Ben85] wykazano, że zgodnie z zasadą Landauera, takie układy mogłyby 1 Jest to tzw. prawo empiryczne wynikające z obserwacji postępu technologicznego. 7
8 pracować bez wydzielania energii. W pracach [Car11, Lam11, Bér12] zasada Landauera została potwierdzona eksperymentalnie. Pokazano również, że układy odwracalne mogą być efektywnie zrealizowane w klasycznych technologiach, takich jak półprzewodniki CMOS [De 10b]. Taką realizację układów odwracalnych przyjęto w projekcie MicroPower [Glü13], który jest wspólnym projektem badawczym Uniwersytetu w Kopenhadze oraz Uniwersytetu w Gandawie. Jego celem jest praktyczne zastosowanie obliczeń odwracalnych poprzez zbudowanie prototypu odwracalnego procesora o małym poborze mocy, oraz opracowanie odwracalnego języka programowania dla takich układów [De 10a, Axe11, Tho12b, Tho12a]. Od dłuższego czasu prowadzone są również prace nad innymi technologiami, w których możliwe byłoby realizowanie obliczeń odwracalnych. Wśród najnowszych prac wyróżnić można postępy w konstruowaniu układów odwracalnych w technologiach optycznych [Mai11, Gar11] oraz biokomputerach DNA [Gen11, Sar11]. Układy odwracalne mają również zastosowania w innych dziedzinach, takich jak kryptografia, cyfrowe przetwarzanie sygnałów, przetwarzanie danych graficznych, nanotechnologia i nanokomputery oraz bioinformatyka. Obszerny przegląd badań nad układami odwracalnymi znajduje się w [Sae13] Układy kwantowe Informatyka kwantowa jest jedną z najszybciej rozwijających się dziedzin w ostatnich latach. Okazało się, że połączenie mechaniki kwantowej z teorią przetwarzania informacji doprowadziło m.in. do powstania teorii, które wykorzystując prawa fizyki kwantowej pozwalają na opracowanie w pełni bezpiecznego klucza kryptograficznego oraz realizację algorytmów kwantowych pozwalających rozwiązać pewne problemy NP-zupełne w czasie wielomianowym. Obie te koncepcje wymagają przetwarzania stanów kwantowych, które są nośnikiem informacji kwantowej, będącej uogólnieniem informacji klasycznej, gdyż dopuszczają zjawiska superpozycji oraz tzw. kwantowe splątanie. Jednym z największych wyzwań dla fizyków i informatyków stało się skonstruowanie układów kwantowych, gdyż oczekuje się, że zrewolucjonizowałyby one przetwarzanie informacji. DiVincenzo podał kryteria, które spełniać muszą układy fizyczne, aby możliwe było w nich przetwarzanie i przechowywanie informacji kwantowej [DiV00]. Zaproponowano wiele realizacji fizycznych układów kwantowych, a wyniki dotychczasowych prac są bardzo obiecujące. W laboratoriach udało się zbudować i przebadać pierwsze, na razie bardzo proste układy kwantowe [Hug04, Mar04]. Do tej pory zaproponowano osiem głównych technologii, które mogą być użyte do realizacji komputera kwantowego [Hug04, Jac11]. Obecnie największe nadzieje wiąże się z technologią opartą na jądrowym rezonansie magnetycznym (ang. Nuclear 8
9 Magnetic Resonance, w skrócie NMR) oraz technologią opartą na tzw. pułapkach jonowych (ang. ion traps). Równolegle do prac nad układami kwantowymi prowadzone są badania nad algorytmami, które mogłyby wykorzystywać potencjał takich układów. Pokazano, że układy kwantowe mogą rozwiązywać pewne problemy algorytmiczne znacznie szybciej niż tradycyjne komputery. Przykładem takiego algorytmu jest kwantowy algorytm Shora, który pozwala rozwiązać problem faktoryzacji wielkich liczb w czasie wielomianowym [Sho94]. Praktyczna realizacja takiego algorytmu doprowadziłaby do rewolucji m.in. w kryptografii. Mimo ogromnych postępów nad technologiami konstruowania układów kwantowych na pierwsze układy o praktycznym zastosowaniu trzeba jeszcze poczekać. Jednak gwałtowny postęp w zakresie eksperymentalnej mechaniki kwantowej doprowadził również do wielu ważnych odkryć i praktycznych zastosowań, istotnych np. w zakresie zabezpieczeń i transmisji danych. Kwantowa kryptografia jako pierwsza doczekała się praktycznych realizacji i komercyjnego wdrożenia. Dostępne są urządzenia realizujące kwantowe generatory liczb losowych oraz realizujące algorytm kwantowej dystrybucji klucza (ang. quantum key distribution, w skrócie QKD) [Ben84, Nie00, Zha06]. Zjawiska kwantowe zostały również wykorzystane do przyspieszenia obliczeń wykonywanych na klasycznych komputerach. Amerykańska agencja NASA oraz firma Google za ponad 15 mln USD zakupiły w kanadyjskiej firmie D-Wave Systems komputer D-Wave Two [Jon13], który sprzętowo realizuje algorytm kwantowego wyżarzania (ang. quantum annealing) [McG13]. Metoda ta pozwala na szybkie znalezienie rozwiązania odpowiednio sformułowanego problemu matematycznego poprzez jednoczesne, równoległe sprawdzenie całej przestrzeni wszystkich możliwych rozwiązań. W [Jon13] podano, że na komputerze tym osiągnięto ponad 3600-krotne przyspieszenie obliczeń w porównaniu z szybkością rozwiązywania tego rodzaju problemów na najlepszych konwencjonalnych komputerach Motywacje do powstania rozprawy Układy odwracalne są jedną ważnych podklas układów kwantowych, a projektowanie układów odwracalnych często jest pierwszym krokiem podczas budowania układów kwantowych [She03, Mar04, Sas12b]. W literaturze pokazano różne metody przekształcenia (dekompozycji) układów i bramek odwracalnych na podstawowe elementy konstrukcyjne układów kwantowych, nazywane elementarnymi bramkami kwantowymi. W pracach [Nie00, Mar04] omówione zostały wyniki badań, które pokazują, że przyjęte w literaturze modele elementarnych bramek kwantowych będą możliwe do realizacji w rzeczywistych układach. Zaawansowanie prac nad technologiami pozwalającymi na praktyczną realizację 9
10 układów kwantowych wymaga opracowania algorytmów projektowania takich układów, które uwzględniałyby ograniczenia i możliwości tych technologii. Problem konstruowania układów odwracalnych optymalnych pod względem liczby bramek nawet dla funkcji czterech zmiennych długo pozostawał nierozwiązany, głównie ze względu na szybszy niż wykładniczy wzrost liczby wszystkich funkcji odwracalnych ze wzrostem liczby zmiennych i dużą złożoność obliczeniową dotychczas opracowanych metod konstruowania takich układów. Wszystkich funkcji odwracalnych trzech zmiennych jest 2 3! = 40320, czterech zmiennych ponad ( 2 4!), a pięciu zmiennych już ponad ( 2 5!). Z tego powodu w większości prac skupiano się na konstruowaniu i analizowaniu jedynie optymalnych układów dla funkcji trzech zmiennych. Przełomem, w 2010 roku, była dopiero praca [Gol10], w której opisano metodę konstruowania odwracalnego układu optymalnego pod wzlędem liczby bramek dla dowolnej funkcji czterech zmiennych. Większość algorytmów projektowania układów odwracalnych skupia się jedynie na optymalizacji liczby bramek w układzie odwracalnym, co jednak nie jest odpowiednim kryterium przy rozpatrywaniu realizacji kwantowych tych układów. W przypadku kwantowych realizacji układów odwracalnych najważniejsza bowiem jest optymalizacja tzw. kosztu kwantowego (szczegółowo omówionego w rozdziale 3). Problem uwzględnienia kosztu kwantowego w projektowaniu układów odwracalnych nie doczekał się satysfakcjonującego rozwiązania. W najnowszych pracach dotyczących optymalnych układów kwantowych, w dalszym ciągu prowadzone są analizy jedynie układów realizujących funkcje trzech zmiennych [Rah12a]. Ponadto, autorzy pracy [Gol10], przełomowej dla projektowania układów odwracalnych optymalnych pod względem liczby bramek, w ogóle nie rozpatrywali możliwości adaptacji swojej metody do projektowania układów optymalnych pod względem kosztu kwantowego. Rozwiązanie problemu konstruowania odwracalnych układów optymalnych pod względem kosztu kwantowego, realizujących funkcje więcej niż trzech zmiennych, w dalszym ciągu pozostawało otwartym problemem, przez co nie było nawet możliwe ocenienie stopnia nadmiarowości układów, które są generowane przez współcześnie stosowane algorytmy, w przypadku realizacji ich w technologiach kwantowych Zakres i teza rozprawy Celem niniejszej rozprawy jest wykazanie, że algorytm konstruowania kombinacyjnych układów odwracalnych, wykorzystujący biblioteki optymalnych układów, umożliwia konstruowanie układów odwracalnych i kwantowych o niskim koszcie kwantowym oraz ma istotne zalety w porównaniu z dotychczas stosowanymi rozwiązaniami. W ramach tej pracy skupiłem się na projektowaniu układów realizujących funkcje czterech zmiennych, choć pokazane są również zastosowania przedstawionych metod do redukcji kosztu 10
11 kwantowego układów realizujących funkcje więcej niż czterech zmiennych. Mimo, że układy odwracalne czterech zmiennych są za małe do praktycznych zastosowań, ich konstruowanie jest skomplikowanym problemem obliczeniowym. Uzyskane wyniki pozwalają lepiej ocenić jakość układów odwracalnych konstruowanych przez aktualnie stosowane algorytmy. Dotychczasowa analiza układów optymalnych realizujących funkcje nawet niewielu zmiennych pozwoliła i pozwala zauważyć pewne prawidłowości i zależności, które prowadzą do opracowania metod konstruowania układów odwracalnych i kwantowych o niższym koszcie kwantowym. W ramach tej pracy zaproponowane są rozszerzenia i ulepszenia podstawowego algorytmu (omówionego w rozdziale 5) pozwalające na konstruowanie układów odwracalnych o jak najmniejszej wartości kosztu kwantowego oraz uwzględniające inne biblioteki podstawowych bramek odwracalnych. Dalsze prace nad rozszerzeniem tej metody pozwoliły, po raz pierwszy w literaturze, na skonstruowanie optymalnych układów kwantowych czterech kubitów (zmiennych), które zbudowane byłyby z więcej niż 10 elementarnych bramek kwantowych. Zaproponowane metody konstruowania przetestowane zostały na benchmarkach znanych z literatury, co umożliwiło znalezienie wielu układów o parametrach lepszych niż dotychczas znane. Opracowane podejście okazało się uniwersalne na tyle, że pozwoliło w analogiczny sposób zbadać układy zbudowane z innych bibliotek bramek odwracalnych oraz budować optymalne semi-klasyczne układy kwantowe. W wyniku przeprowadzonych eksperymentów obliczeniowych znalezione zostały również układy kwantowe o dużo niższym koszcie kwantowym niż znane układy odwracalne realizujące te same funkcje odwracalne. Jeden z tak znalezionych układów kwantowych został następnie uogólniony na przypadek dowolnej liczby zmiennych, jako układ realizujący uogólnioną bramkę Peresa Układ pracy W rozdziale 2 przedstawione są podstawowe pojęcia związane z funkcjami i układami odwracalnymi, przegląd bramek odwracalnych używanych w tej pracy oraz przegląd metod projektowania układów odwracalnych. Rozdział 3 zawiera opis matematyczny układów i bramek kwantowych, przegląd bramek kwantowych używanych w tej pracy. Omówione są relację między układami odwracalnymi a układami kwantowymi oraz podane informacje o koszcie kwantowym bramek i układów odwracalnych. W rozdziale 4 przedstawiony jest przegląd dotychczasowych metod konstruowania optymalnych układów kwantowych i redukcji kosztu kwantowego układów odwracalnych i kwantowych. W rozdziale 5 omówiony jest algorytm konstruowania optymalnych układów odwracalnych czterech zmiennych pod względem liczby bramek. 11
12 W rozdziale 6 przedstawiona jest opracowana w ramach niniejszej pracy metoda konstruowania układów odwracalnych o niskim koszcie kwantowym oraz omówione są wyniki uzyskane w ramach przeprowadzonych eksperymentów obliczeniowych. W rozdziale 7 zaprezentowana jest adaptacja algorytmów omówionych w rozdziale 6 do projektowania optymalnych semi-klasycznych układów kwantowych oraz zaprezentowane są wyniki przeprowadzonych eksperymentów obliczeniowych. W rozdziale 8 omówiona została uogólniona bramka Peresa, metody konstruowania układów kwantowych realizujących takie bramki oraz przykłady zastosowania tej bramki do redukcji kosztu kwantowego układów odwracalnych. Rozdział 9 stanowi szczegółowe podsumowanie niniejszej pracy. W dodatku A, który znajduje się na końcu pracy, przedstawione są szczegółowe wyniki przeprowadzonych obliczeń. 12
13 2. Funkcje i układy odwracalne W tym rozdziale podane są podstawowe pojęcia związane z funkcjami i układami odwracalnymi oraz przedstawiony jest przegląd bramek odwracalnych używanych w tej pracy oraz przegląd metod konstruowania układów odwracalnych [De 10b, Sae13] Podstawowe definicje Definicja 2.1. Funkcja boolowska n m to odwzorowanie: f : (x 1, x 2,..., x n ) (y 1, y 2,..., y m ), (2.1) gdzie x i, y j {0, 1} dla i = 1,..., n oraz j = 1,..., m. Funkcja boolowska może być zdefiniowana na wiele różnych sposobów. Najprostszym sposobem jest zapis za pomocą wyrażeń algebry Boole a np. f : (x 1, x 2 ) (x 1 + x 2 ). Inną bardzo często spotykaną formą zapisu funkcji boolowskiej są tzw. tablice prawdy. Tablica taka w kolejnych wierszach zawiera wszystkie możliwe kombinacje wartości argumentów tej funkcji wraz z wartościami funkcji przyporządkowanymi tym kombinacjom. Wiersze w tablicy prawdy nazywane są odpowiednio wektorami wejściowymi (x 1,..., x n ) oraz wektorami wyjściowymi (y 1,..., y m ). Definicja 2.2. Bramką logiczną nazywany sprzętową realizację prostej funkcji boolowskiej. Zmienne wejściowe podawane na wejście bramki nazywane są sygnałami wejściowymi, a zmienne wyjściowe (wynik operacji zrealizowanej przez bramkę) sygnałami wyjściowymi. Definicja 2.3. Układ logiczny to dowolne, poprawne z punktu widzenia ograniczeń sprzętowych, połączenie bramek logicznych w celu zrealizowania bardziej skomplikowanych funkcji logicznych. Definicja 2.4. Funkcja boolowska n m jest odwracalna, gdy: 1. liczba wejść tej funkcji jest równa liczbie jej wyjść (n = m), 2. jest funkcją wzajemnie jednoznaczną. Dla funkcji odwracalnej możliwe jest pełne odtworzenie wartości wejściowych na podstawie wartości wyjściowych stąd nazwa odwracalna. Funkcja jest permutacją elementów ze swojej dziedziny. Istnieje zatem dokładnie 2 n! różnych funkcji odwracalnych o n wejściach i wyjściach. 13
14 W dalszej części pracy, jeżeli nie będzie zaznaczone inaczej, odwracalna funkcja boolowska będzie nazywana funkcją odwracalną. Przykład 2.1. Funkcja 2 2 f : (x 1, x 2 ) (x 1, x 1 x 2 ) jest funkcją odwracalną, gdyż każdemu wektorowi wejściowemu przyporządkowany jest unikalny wektor wyjściowy (tabela 2.1). Tabela 2.1. Tablica prawdy dla funkcji f : (x 1, x 2 ) (x 1, x 1 x 2 ) x 2 x 1 y 2 y Przykład 2.2. Funkcja 2 2 f : (x 1, x 2 ) (x 1, x 1 x 2 ) nie jest funkcją odwracalną, gdyż wektor wyjściowy 00 został przypisany dwóm wektorom wejściowym: 00 oraz 10 (tabela 2.2). Tabela 2.2. Tablica prawdy dla funkcji f : (x 1, x 2 ) (x 1, x 1 x 2 ) x 2 x 1 y 2 y Definicja 2.5. Bramka logiczna jest odwracalna, gdy realizuje funkcję odwracalną. Dla takiej bramki stan wyjść można w pełni określić na podstawie wartości wejściowych oraz odwrotnie stan wejść można określić na podstawie tylko wartości wyjściowych. Bramka odwracalna o k wejściach i wyjściach jest nazywana bramką o rozmiarze k k lub bramką k-bitową. Definicja 2.6. Układem odwracalnym nazywany takie połączenie bramek odwracalnych, które realizuje funkcję odwracalną. W układzie odwracalnym nie mogą występować rozgałęzienia sygnału z jednego wyjścia do wielu wejść bramek (ang. fan-out). Układ odwracalny ma z definicji taką samą liczbę wejść i wyjść. Układ odwracalny o n wejściach jest nazywany układem o rozmiarze n n lub układem n-bitowym. Z faktu, że w układzie odwracalnym nie są dozwolone rozgałęzienia sygnału wynika, iż bramki wchodzące w jego skład mogą być łączone tylko w kaskadę, przy czym do budowy układu o rozmiarze n n mogą być użyte dowolne bramki odwracalne o rozmiarze k k dla k n. Przykład takiej kaskady pokazany jest na rys
15 Rysunek 2.1. Przykład kaskady bramek odwracalnych tworzących 3-bitowy układ odwracalny. W układach odwracalnych drogi propagowania sygnałów nazywane są liniami (rys. 2.1). Dla większości bramek odwracalnych funkcje przez nie realizowane są bardzo proste i wiele sygnałów wejściowych jest przekazywanych na wyjście bramki w postaci niezmienionej. Pojęcie linii odpowiada przyjętej w literaturze notacji graficznej bramek i układów odwracalnych, wprowadzonej w [Fey85b] (rys. 2.2). Poziome kreski na rys. 2.2, na których umieszczane są symbole bramek odwracalnych oznaczają linie w układzie odwracalnym. Przyjmuje się, że w przyjętej notacji graficznej sygnały propagują się po liniach od lewej do prawej strony układu lub bramki. Bramki odwracalne oznaczane są pionowymi liniami z dodatkowymi symbolami (ich znaczenie będzie podane w podrozdziale 2.2). Rysunek 2.2. Przykład notacji graficznej dla 4-bitowego układu odwracalnego zbudowanego z pięciu bramek odwracalnych (zdefiniowanych w dalszej części tego rozdziału). Definicja 2.7. Linią dodatkową (ang. ancillary line) w układzie odwracalnym nazywamy taką linię, która choć występuje w układzie odwracalnym, na jej początku nie ma sygnału wejściowego, a na końcu wyjściowego, wynikających z funkcji realizowanej przez dany układ. Przyjmuje się, że wartość sygnału wyjściowego na linii dodatkowej jest równa wartości sygnału wejściowego, choć wewnątrz układu odwracalnego mogą występować bramki odwracalne, które modyfikują sygnały na liniach dodatkowych. Linie dodatkowe w układach odwracalnych stosuje się do obliczania pewnych wartości pośrednich, które są potrzebne do obliczenia sygnałów wyjściowych, po czym wartości sygnałów na liniach dodatkowych są przywracane do swoich wartości początkowych. Przykład 2.3. Na rys. 2.3 pokazany jest przykładowy układ realizujący funkcję odwracalną f(x 1,..., x n ), który jest kaskadowym połączeniem trzech innych układów realizujących odpowiednio funkcje f 1, f 2 i f 3 z wykorzystaniem dodatkowej linii a. Wartość sygnału na linii 15
16 dodatkowej a nie jest zmieniana przez ten układ, jednak linia ta jest niezbędna do zrealizowania funkcji odwracalnej f. Rysunek 2.3. Przykład układu odwracalnego implementującego pewną funkcję f(x 1,..., x n ), zrealizowanego jako kaskadowe połączenie trzech układów realizujących funkcje f 1, f 2 oraz f 3 z wykorzystaniem dodatkowej linii a. Definicja 2.8. Złożeniem dwóch n-bitowych funkcji odwracalnych, g i h nazywamy funkcję odwracalną f realizującą przekształcenie: (x 1,..., x n ) (h(g(x 1,..., x n ))). (2.2) Złożenie oznaczane będzie symbolem. Działanie to jest łączne, nieprzemienne, a kolejne składane funkcje są zapisywane od lewej strony do prawej. Układ odwracalny realizujący funkcję f = g h jest kaskadą dwóch układów realizujących funkcje g i h. Taki układ pokazany jest na rys Rysunek 2.4. Układ realizujący funkcję odwracalną f = g h jest kaskadą układów realizujących funkcje g i h. Definicja 2.9. Odwracalną funkcją odwrotną do f nazywamy taką funkcję f 1, która złożona z funkcją f dane przekształcenie identycznościowe: f f 1 = f 1 f = I. (2.3) Dla każdej funkcji odwracalnej f zawsze istnieje funkcja f 1 odwrotna do niej, którą będziemy nazywać odwrotnością funkcji f. Istnieją funkcję odwracalne f, które są swoimi własnymi odwrotnościami, tzn: f = f 1, f f = I. 16
17 Układ odwracalny C 1 realizujący funkcję f 1 można uzyskać z układu odwracalnego C zbudowanego z bramek G 1,..., G k, realizującego funkcję f, poprzez odwrócenie kolejności bramek G i i zastąpienie każdej z bramek przez bramkę, która realizuje funkcję odwrotną do funkcji realizowanej przez bramkę G i : C = G 1 G 2... G k 1 G k, C 1 = G 1 k G 1 k 1... G 1 2 G Biblioteka bramek NCT Definicja Biblioteką bramek nazywamy zbiór typów bramek odwracalnych, z których mogą być budowane układy odwracalne. Definicja Biblioteka bramek jest uniwersalna, jeżeli za pomocą bramek wchodzących w jej skład możliwe jest skonstruowanie układu odwracalnego realizującego dowolną funkcję odwracalną. W literaturze zaproponowano wiele bibliotek bramek odwracalnych, jednak najwięcej prac rozpatruje bramki z tzw. biblioteki NCT, w której skład wchodzą bramka NOT, bramka CNOT oraz bramka Toffoliego. Rozpatrywane są również następujące rozszerzenia tej biblioteki: rodzina uogólnionych bramek Toffoliego [Sae13, De 10b] oraz biblioteka uogólnionych bramek Toffoliego ze sterowaniem mieszanym [Ara10, Mor12a, Mor11, Mor12c, Sae08, Sae07a, Szy12c, Szy13b, Wil12, Zhu09] Bramka NOT Najprostszą bramką odwracalną, która zarazem jest dobrze znana z tradycyjnych układów logicznych, jest klasyczna bramka negacji, realizująca następującą funkcję odwracalną jednej zmiennej: f NOT : (x 1 ) (1 x 1 ). (2.4) W zapisie tekstowym układów odwracalnych oznaczana jest symbolem N(x 1 ). Symbol graficzny pokazany jest na rys. 2.5a Bramka CNOT Bramka ta nazywana jest też bramką Feynmana. Jest to jedna z najczęściej rozpatrywanych w literaturze bramek o rozmiarze 2 2. Realizuje ona funkcję dwóch zmiennych: f CNOT : (x 1, x 2 ) (x 1, x 1 x 2 ). (2.5) 17
18 Pierwszy z sygnałów podanych na wejście tej bramki jest przekazany w postaci niezmienionej na jej pierwsze wyjście. Sygnał ten nazywany jest sterującym. Funkcją realizowaną na drugim wyjściu bramki jest operacja sumy modulo 2 (XOR) obu sygnałów wejściowych. Dlatego drugi z sygnałów nazywany jest sterowanym. Ze względu na realizowaną funkcję bramka ta jest nazywana bramką sterowanej negacji (ang. controlled-not gate), bowiem sygnał na drugim wyjściu jest negacją drugiego wejścia, gdy na pierwszym wejściu pojawi się wartość 1, w przeciwnym przypadku sygnał nie jest zmieniany. W zapisie tekstowym bramka ta oznaczana jest symbolem C(x 1 ; x 2 ). Symbol graficzny bramki pokazany jest na rys. 2.5b Bramka Toffoliego Bramka ta wprowadzona została w pracy [Tof80] i jest bramką realizującą następującą funkcję odwracalną trzech zmiennych: f Toffoli : (x 1, x 2, x 3 ) (x 1, x 2, x 1 x 2 x 3 ). (2.6) Sposób działania tej bramki jest podobny do bramki CNOT: ma dwa wejścia sterujące i jedno sterowane, które jest negowane, gdy na obu wejściach sterujących wystąpią sygnały o wartości 1. W zapisie tekstowym bramka oznaczana jest symbolem T(x 1, x 2 ; x 3 ), zaś symbol graficzny pokazany jest na rys. 2.5c. a) NOT b) CNOT c) bramka Toffoliego d) uogólniona bramka Toffoliego Rysunek 2.5. Symbole graficzne bramek z biblioteki NCT. W notacji graficznej pokazanej na rys. 2.5 poziome linie symbolizują sygnały (zmienne). Na liniach odpowiadających sygnałom bramki zaznaczane są w postaci symboli połączonych pionowymi liniami. Symbol umieszczony na linii oznacza operację, którą wykonuje bramka w tym przypadku negację sterowaną (jest to linia sterowana danej bramki), a do jego sterowania wykorzystane są linie, na których umieszczony jest symbol. Sygnał na linii sterowanej jest negowany tylko wówczas, gdy na wszystkich liniach sterujących oznaczonych symbolami wystąpią sygnały o wartości 1. 18
19 Uogólniona bramka Toffoliego W wielu publikacjach, oprócz wcześniej przedstawionych trzech bramek, rozpatruje się tzw. rodzinę bramek Toffoliego z wieloma sygnałami sterującymi (ang. multiple-control Toffoli gate), czyli uogólnienie bramki Toffoliego na n sygnałów sterujących (ang. n-control Toffoli gate). Taka bramka, o rozmiarze (n + 1) (n + 1), realizuje funkcję odwracalną: (x 1,..., x n, x 1...x n x n+1 ), dla n 1, f n-toffoli : (x 1,..., x n, x n+1 ) (2.7) (1 x 1 ), dla n = 0. Pierwsze n sygnałów wejściowych jest przez taką bramkę przekazywane na pierwsze n wyjść bez jakiejkolwiek modyfikacji. Wszystkie te sygnały są nazywane sterującymi. Wartość ostatniego, (n+1)-tego wejścia jest przekazywana na (n+1)-te wyjście w postaci zanegowanej, gdy wartość wszystkich linii sterujących wynosi 1, albo w postaci niezmienionej w przeciwnym przypadku. W zapisie tekstowym bramka oznaczana jest symbolem T(x 1,..., x n ; x n+1 ), zaś symbol graficzny pokazany jest na rys. 2.5d. Wcześniej omówione trzy bramki NOT, CNOT oraz standardowa bramka Toffoliego są szczególnym przypadkiem uogólnionych bramek Toffoliego, odpowiednio: bez linii sterujących (n = 0), z jedną linią sterującą (n = 1) lub z dwoma liniami sterującymi (n = 2). W pracy [Bar95] pokazano, w jaki sposób uogólnione bramki Toffoliego mogą być zrealizowane przez układy odwracalne skonstruowane ze standardowych bramek Toffoliego o dwóch sygnałach sterujących. Z kolei w pracy [She03] znajduje się dowód, że dowolna funkcja odwracalna n zmiennych może być zrealizowana przez układ odwracalny z co najwyżej jedną linią dodatkową, zbudowany z bramek NOT, CNOT oraz standardowych bramkek Toffoliego o dwóch sygnałach sterujących. Łatwo zauważyć, że uogólnione bramki Toffoliego realizują funkcje odwracalne, które są swoimi własnymi odwrotnościami. Układ odwracalny składający się z dwóch takich samych kolejnych bramek realizuje więc przekształcenie tożsamościowe. Dlatego też każdą parę sąsiednich takich samych uogólnionych bramek Toffoliego można usunąć z układu odwracalnego bez wpływu na funkcję realizowaną przez układ Sterowanie pozytywne, negatywne oraz mieszane Przedstawiona rodzina uogólnionych bramek Toffoliego realizuje operację negacji na linii sterowanej wtedy i tylko wtedy, gdy wartość wszystkich sygnałów sterujących jest równa 1. W literaturze spotyka się również dalsze uogólnienie bramek Toffoliego, w którym zakłada się, że bramka realizuje operację negacji, gdy sygnały sterujące przyjmują arbitralne wartości 19
20 [Sae07a, Sae08, Zhu09, Ara10, Mor11, Mor12c, Sas11, Szy12c, Szy13b, Wil12, Mor12a]. Taka bramka realizuje następującą funkcję odwracalną: f m-toffoli : (x 1,..., x n, x n+1 ) (x 1,..., x n, (a 1 x 1 )(a 2 x 2 )...(a n x n ) x n+1 ), (2.8) dla n 1, gdzie a 1,..., a n {0, 1}. Gdy do zrealizowania operacji negacji sygnału sterowanego bramki wymagane jest, aby wszystkie sygnały sterujące miały wartość 1 (a 1,..., a n = 0), to jest ona nazywana jest bramką ze sterowaniem pozytywnym (ang. positive-polarity control). Gdy do zanegowania sygnału sterowanego wymagane jest, aby wszystkie sygnały sterujące przyjęły wartość 0 (a 1,..., a n = 1), to bramka nazywana jest bramką ze sterowaniem negatywnym (ang. negative-polarity control). W przypadku ogólnym, gdy dowolne wartości sygnałów sterujących (dowolne wartości współczynników a 1,..., a n ) mogą być stosowane do realizacji negacji sygnału sterowanego używane będzie określenie sterowania mieszanego (ang. mixed-polarity control). W notacji graficznej sygnały sterujące pozytywne oznaczane są symbolem, zaś negatyne symbolem. Przykłady uogólnionej bramki Toffoliego ze sterowaniem mieszanym pokazane są na rys a) T(x 1, x 2 ; x 3 ) b) T(x 1, x 2 ; x 3 ) c) T(x 1, x 2 ; x 3 ) Rysunek 2.6. Symbole graficzne uogólnionych bramek Toffoliego ze strowaniem pozytywnym (a), negatywnym (b) oraz mieszanym (c) Zapis układów odwracalnych Kaskady bramek odwracalnych tworzące układ odwracalny mogą być zapisane w postaci graficznej oraz tekstowej. W pracy używana będzie notacja graficzna wprowadzona w [Fey85b], która występuje w większości publikacji dotyczących układów odwracalnych. Jej przykład został pokazany na rys Zapis kaskady bramek odwracalnej w postaci tekstowej zawiera symbole poszczególnych bramek odwracalnych w kolejności ich działania na sygnały wejściowe. Układ pokazany na rys. 2.2 ma w zapisie tekstowym następującą postać: T(x 2, x 3 ; x 4 ) T(x 1, x 3 ; x 2 ) C(x 2 ; x 1 ) T(x 1, x 2, x 3 ; x 4 ) N(x 3 ). Dla większej czytelności oraz zwięzłości zapisu w dodatku A do niniejszej pracy, który zawiera listę skonstruowanych układów, zmienne x 1,..., x n będą oznaczane kolejnymi literami 20
21 alfabetu łacińskiego: a, b, c,..., pominięte będą nawiasy i przecinki oddzielające sygnały sterujące, a sygnał sterowany będzie oddzielany myślnikiem. Sygnały zanegowane będą oznaczane symbolem prim. Układ pokazany na rys. 2.2 będzie miał następującą postać: Tbc-d Tac-b Cb-a Tabc-d Nc, zaś układ z rys. 2.6c: Tab -c Metody konstruowania układów odwracalnych Konstruowanie układów odwracalnych jest bardzo złożonym problemem, któremu poświęcono więcej uwagi dopiero w ostatniej dekadzie (obszerny przegląd tych badań podano w [Sae13] oraz książkach [Wil10b, De 10b]). Aktualnie dziedzina ta jest rozwijana bardzo intensywnie ze względu na liczne potencjalne zastosowania. Zaproponowano wiele różnorodnych metod jego rozwiązania, ale w dalszym ciągu nie został znaleziony algorytm, który pozwalałby na konstruowanie układów odwracalnych dla dowolnych funkcji odwracalnych dowolnej liczby zmiennych i dla dowolnych bibliotek bramek. Obecnie rozwijane są prawie wyłącznie algorytmy dla bibliotek bramek NCT oraz m-nct. Ze względu na sposób konstruowania układu można je podzielić na następujące grupy: 1. Algorytmy oparte na przeszukiwaniu. Cechą wspólną tych algorytmów jest budowanie drzewa przeszukiwań, w którym każdy węzeł odpowiada wyborowi kolejnej bramki w konstruowanym układzie. W celu efektywnego przeszukiwania takiego drzewa i ograniczenia czasu działania algorytmu wykorzystywane są różne heurystyki do obliczania tzw. miary złożoności funkcji odwracalnej. W literaturze zaproponowano wiele takich heurystycznych miar złożoności: miary wykorzystujące odległość Hamminga w tablicy prawdy funkcji odwracalnej [Due03], liczbę wyrazów w zapisie funkcji odwracalnej w postaci wyrażeń Positive Polarity Reed-Muller (PPRM) [Gup06], liczbę wyrazów w zapisie funkcji odwracalnej w postaci widm Reeda-Mullera [Mil03a, Mas07a] czy liczbę węzłów współdzielonego binarnego diagramu decyzyjnego z zanegowanymi krawędziami (diagramy CSBDD) opisującego funkcję odwracalną [Ker04, Ker05]. Główną wadą algorytmów opartych na przeszukiwaniu jest brak gwarancji otrzymania układu, brak efektywnych miar złożoności, ograniczona skalowalność i długi czas działania algorytmu w przypadku, gdy zastosowana miara złożoności jest daleka od idealnej [Szy08, Szy10c]. 2. Algorytmy transformacyjne. Ich ogólna zasada działania polega na przekształcaniu tablicy prawdy funkcji odwracalnej według ściśle określonych reguł, aż do uzyskania funkcji tożsamościowej. W każdym kolejnym kroku takich algorytmów kolejne różnice między 21
22 zadaną funkcją a funkcją tożsamościową są zmniejszane przy użyciu odpowiednio dobieranych bramek. Cechą charakterystyczną jest ograniczona od góry liczba kroków, które są potrzebne do skonstruowania układu realizującego funkcję odwracalną danej liczby zmiennych. Jednym z pierwszych algorytmów realizujących takie transformacje była metoda MMD opisana w pracy [Mil03b], wielokrotnie później ulepszana i rozszerzana (m.in. w [Mas07a]). Inne metody transformacji tablicy prawdy, które prowadzą do skonstruowania układu odwracalnego, zostały zaproponowane w pracach [De 10b, Szy10a, Sae07a]. Algorytmy transformacyjne są szybkie i dobrze skalują się wraz ze wzrostem liczby zmiennych funkcji odwracalnych (dopóki tablice prawdy nie staną się zbyt duże), jednak szybkość ich działania uzyskiwana jest kosztem jakości generowanych układów. Pokazano, że generowane układy odwracalne zbudowane są ze znacznie większej liczby bramek niż znane minimalne układy realizujące dane funkcje. Często algorytmy te są używane jako pierwszy etap konstruowania układu, który jest potem poddawany przekształceniom mającym na celu redukcję liczby bramek lub przyjętego kosztu całego układu. 3. Algorytmy oparte na teorii grup i reprezentacji funkcji odwracalnej jako permutacji [She03, Yan05, Sae08, Sae10]. Zbiór wszystkich funkcji odwracalnych tworzy grupę algebraiczną z działaniem złożenia funkcji odwracalnych, izomorficzną z grupą wszystkich permutacji n elementów. Takie grupy były wielokrotnie badane w literaturze, znane są też algorytmy i narzędzia, dzięki którym możliwe jest ich analizowanie i dekomponowanie permutacji na cykle. W metodzie tej permutację odpowiadającą funkcji odwracalnej dekomponuje się na cykle o liczbie elementów od dwóch do pięciu, które następnie przekształca się na odpowiednie kaskady bramek odwracalnych. Wadą tego podejścia jest wysoka redundancja generowanych układów. 4. Algorytmy oparte na rozwiązywaniu problemu spełnialności formuł logicznych (ang. Boolean satisfiability problem, w skrócie SAT) [Gro07, Gro08, Wil08b, Gro09, Wil12]. Metoda ta polega na przekształceniu zadania konstruowania układu kwantowego na szereg formuł logicznych, których spełnialność badana jest przy użyciu znanych algorytmów rozwiązywania problemów SAT. Główną wadą tej metody jest wykładnicza złożoność względem liczby zmiennych i długi czas potrzebny do znalezienia rozwiązania. Jednak metoda ta, jako jedyna poza pełnym przeszukiwaniem wszystkich możliwych kaskad bramek odwracalnych, prowadzi do znalezienia układów optymalnych. Pozwala również zbudować układy odwracalne dla funkcji nie w pełni określonych. W praktycznych zastosowaniach możliwe jest jednak znajdywanie układów zbudowanych tylko z około 10 bramek. 5. Algorytmy oparte na reprezentacji funkcji odwracalnej jako sumy modulo 2 iloczynów zmiennych (ang. exclusive-or sum of products, w skrócie ESOP) [Faz07]. W metodzie tej poszczególne wyrazy sumy modulo 2 iloczynów zmiennych wejściowych (niezanegowanych lub zanegowanych) przekształcane są na odpowiadające im kaskady bramek Toffoliego. 22
23 W podstawowym wariancie tej metody do generowanego układu dodawane są dodatkowe linie, po jednej na każdy sygnał wyjściowy danej specyfikacji układu i aby realizować zanegowane zmienne wejściowe albo (1) dodatkowe linie dla wszystkich sygnałów wejściowych, albo (2) dodatkowe bramki NOT. Metoda ta może być również stosowana do projektowania układów odwracalnych realizujących dowolne funkcje logiczne, a nie tylko funkcje odwracalne. 6. Algorytmy oparte na binarnych diagramach decyzyjnych (BDD) [Wil09a, Wil10b]. W metodzie tej funkcję odwracalną zapisuje się w postaci binarnego diagramu decyzyjnego, a następnie każdy z węzłów diagramu przekształca się na odpowiadającą mu sekwencję bramek odwracalnych. Przy tym węzły diagramu, w których schodzą się gałęzie, wymagają dodania nowych linii do układu odwracalnego. W ramach ulepszania tej metody zaproponowano algorytmy redukujące liczbę linii w generowanym układzie [Wil10a], jednak ich stosowanie jest czasochłonne i prowadzi do znacznego zwiększenia liczby bramek w układzie. W związku z dużą redundancją układów konstruowanych przez wyżej opisane algorytmy, opracowano szereg różnych metod poprawiających jakość generowanych układów według przyjętej funkcji kosztu układu. Są one oparte na tym, że w wielu układach odwracalnych możliwe jest wymienianie pewnej części kaskady bramek na inną, np. krótszą, bez zmiany funkcji realizowanej przez całą kaskadę. Metody te są krótko opisane w rozdziale
24 3. Układy kwantowe Wiecie już teraz, o czym będę mówił. Powstaje pytanie, czy zrozumiecie to, o czym powiem. (...) Nie rozumieją tego moi studenci fizyki. Sam tego nie rozumiem. Nikt tego nie rozumie. (...) Z punktu widzenia zdrowego rozsądku teoria elektrodynamki kwantowej opisuje Naturę w sposób absurdalny i zgadza się znakomicie z doświadczeniem. Mam zatem nadzieję, że zaakceptujecie Naturę taką, jaka jest absurdalną. Richard Feynman [Fey85a] W tym rozdziale podane są podstawowe pojęcia związane z mechaniką kwantową, opisem stanu kwantowego, układami kwantowymi [Nie00, Le 05, Mar04, Jac11] oraz realizacją układów odwracalnych w postaci układów kwantowych Informacja kwantowa, kubit W informatyce kwantowej elementarnym nośnikiem informacji kwantowej jest bit kwantowy, nazywany również kubitem (ang. quantum bit, w skrócie qubit). Informacja kwantowa jest zakodowana w pewnych własnościach kwantowych danego układu fizycznego 1, nazywanych stanem kwantowym. Wykonując pewne operacje na fizycznym układzie kwantowym możliwe jest przesyłanie i przetwarzanie informacji kwantowej. Najprostszym fizycznym układem kwantowym realizującym kubit jest układ fizyczny posiadający dwa stany bazowe, zwykle oznaczane jako 0 i 1. Stany te mogą być np. kierunkiem spinu pewnej cząstki elementarnej ( 0 dla spinu oraz 1 dla spinu ), czy poziomami energii elektronu ( 0 dla stanu podstawowego oraz 1 dla stanu wzbudzonego). Prowadzonych jest wiele badań nad fizycznymi układami, w których możliwe będzie realizowanie obliczeń kwantowych [Nie00]. Kubit jest odpowiednikiem bitu znanego z klasycznej teorii przetwarzania informacji. W logice klasycznej (binarnej) pojedynczy bit przyjmuje jedynie wartości 0 ( fałsz ) lub 1 ( prawda ), nigdy jednak obu w tym samym czasie. Tymczasem w układzie kwantowym stan kubitu przyjmuje wartości ciągłe będące kombinacją liniową jego dwóch stanów bazowych i 1 Określenie fizyczny układ kwantowy wprowadzone zostało w celu rozróżnienia układu kwantowego w znaczeniu układu cząstek kwantowych (ang. quantum system) od układu kwantowego w znaczeniu kaskadowego połączenia bramek kwantowych (ang. quantum circuit), w dalszej części pracy nazywanego po prostu układem kwantowym. 24
25 może być reprezentowany jako unormowany wektor ψ w przestrzeni Hilberta o bazie { 0, 1 }: ψ = c c 1 1, (3.1) gdzie c 0, c 1 są liczbami zespolonymi spełniającymi warunek c c 1 2 = 1, a 0 i 1 odpowiednimi wektorami bazowymi danego układu fizycznego. Współczynniki c 0 i c 1 nazywa się amplitudami stanu wektora ψ. Stosując notację Diraca [Nie00, Le 05] można zapisać następujące zależności: ψ = ( c0 c 1 ) ( ) ( ) 1 0, 0 =, 1 =. 0 1 Stan kubitu opisany powyższymi równaniami nazywany jest superpozycją stanów bazowych. Jest to zjawisko charakterystyczne dla mechaniki kwantowej, które jest jednocześnie przyczyną podstawowych różnic między mechaniką klasyczną i kwantową. Gdy cząstka znajduje się w stanie superpozycji, w tym samym czasie posiada zarówno część informacji odpowiadającą stanowi 0 jak i część odpowiadającą stanowi 1. Wartości c 0 oraz c 1 nie mogą być określone poprzez bezpośredni pomiar stanu kubitu. Podczas pomiaru układu fizycznego, w jakim znajduje się cząstka kwantowa, następuje bowiem oddziaływanie między układem a urządzeniem pomiarowym, co powoduje, że zmierzone wartości stanu kubitu są rzutowane na jego stany podstawowe (np. 0 lub 1 ). Prawdopodobieństwo zmierzenia danego stanu podstawowego określone jest kwadratem amplitud c 0 oraz c 1 dla poszczególnych stanów bazowych 0 i 1. Stan kubitu może być również zapisany w następującej postaci [Le 05]: ψ = e iϕ/2 cos θ eiϕ/2 sin θ 1, (3.2) 2 co pozwala przedstawić go jako punkt na powierzchni sfery, nazywanej sferą Blocha (rys. 3.1). Stany bazowe ( 0 i 1 ) znajdują się na biegunach tej sfery, kubit zaś może przyjąć nieskończenie wiele wartości znajdujących się na całej sferze. W wyniku pomiaru kubitu jego stan zostanie sprowadzony (ang. collapse) do jednej z wartości bazowych. W celu użycia całej dostępnej przestrzeni wartości, jakie może przyjąć kubit, ważne jest, aby nie dokonywać na nim żadnych pomiarów w czasie działania danego fizycznego układu kwantowego. Wówczas wartość kubitu, w układzie izolowanym, w pełni podlega prawom mechaniki kwantowej i pozwala na pełne wykorzystanie własności kwantowych. W mechanice kwantowej proces opisujący oddziaływanie obiektu kwantowego z otoczeniem nazywany jest dekoherencją kwantową. Dekoherencja jest jednym z głównych problemów, jakie należy rozwiązać w celu skonstruowania układów kwantowych, które będą miały praktyczne zastosowanie [Nie00]. 25
26 Rysunek 3.1. Reprezentacja stanu kubitu ψ opisanego równaniem (3.2) jako punktu na sferze Blocha Układy fizyczne z wieloma kubitami Dwa lub więcej kubity mogą utworzyć wspólny fizyczny układ kwantowy. Bazą takiego układu jest iloczyn tensorowy przestrzeni bazowych poszczególnych podukładów. Fizyczny układ kwantowy składający się z n kubitów może być opisany jako unormowany wektor rozpięty w przestrzeni Hilberta o 2 n stanach bazowych: ψ = a X X. (3.3) X {0,1} n Dla przykładu, stan fizycznego układu kwantowego składającego się z dwóch kubitów A i B jest wektorem rozpiętym w przestrzeni wektorowej Hilberta o następujących stanach bazowych: 00 AB, 01 AB, 10 AB oraz 11 AB : ψ = c AB + c AB + c AB + c AB, gdzie c 00, c 01, c 10, c 11 są amplitudami prawdopodobieństwa wyrażonymi liczbami zespolonymi, które spełniają warunek c c c c 11 2 = 1. W zapisie kolumnowym taki układ ma następującą postać: ψ = c 00 c 01 c 10 c
27 3.3. Stany splątane Definicja 3.1. Gdy nie jest możliwe wyrażenie stanu układu kubitów jako iloczynu tensorowego stanów bazowych poszczególnych kubitów, wówczas mówimy, że kubity znajdują się w stanie splątanym. Jeżeli fizyczny układ kwantowy jest złożeniem dwóch niezależnych kubitów ψ A = c 0A 0 + c 1A 1 i ψ B = c 0B 0 + c 1B 1, to stan takiego układu fizycznego dany jest równaniem: ψ = ψ A ψ B = ( c0a c 1A ) ( c0b c 1B c ) 0A c 0B = c 0A c 1B c 1A c 0B = c 00 c 01 c 10. c 1A c 1B c 11 Dla fizycznego układu dwóch kubitów stan splątany następuje, gdy c 00 c 11 c 01 c 10. Występowanie stanu splątanego jest jedną z przyczyn dużej mocy obliczeniowej układów kwantowych. Dwie cząstki kwantowe mogą być w stanie splątanym nawet wówczas, gdy znajdują się daleko od siebie [Nie00]. Pojemność informacyjna nawet niewielkich układów kwantowych jest nieporównywalna z klasycznymi układami przetwarzania informacji, gdyż funkcja opisująca stan n-kubitowego układu o dwóch stanach bazowych ma wymiar 2 n (jest to wymiar przestrzeni Hilberta będącej iloczynem tensorowym n dwuwymiarowych przestrzeni), zatem rośnie wykładniczo z liczbą kubitów. Układ kwantowy umożliwia zatem przetwarzanie informacji zawartych w macierzach 2 n 2 n, choć klasyczna informacja, jaka jest możliwa do odczytania z układu kwantowego jako wyniki pomiarów, rośnie już tylko liniowo z liczbą kubitów (tak jak dla klasycznej informatyki). Przewaga informatyki kwantowej polega na naturalnie silnie równoległym przetwarzaniu ogromnej ilości kwantowej informacji, z której później można odczytać tylko niewielką klasyczną część (liniową z liczbą kubitów) Bramki kwantowe Klasyczne układy logiczne budowane są z bramek logicznych połączonych linami sygnałowymi służącymi do przesyłania informacji. Model bramki kwantowej oraz układu kwantowego jest istotnie różny od klasycznych układów. W kwantowym przetwarzaniu informacji podstawowym nośnikiem informacji jest stan kubitu, którym mogą być np. kwantowe cechy cząstek elementarnych. Terminem bramki kwantowej nazywane są wszelkie operacje związane z procesami fizycznymi, które powodują zmianę stanu danego kubitu (mogą to być np. 27
28 impulsy lasera, czy odpowiedni kwant promieniowania mikrofalowego) lub interakcję między kubitami wchodzącymi w skład układu kwantowego. Układ kwantowy przedstawiany jest jako kaskadowe połączenie bramek kwantowych działających na pewnym zbiorze kubitów, przy czym działanie kolejnych bramek kwantowych związane jest z przeprowadzeniem kolejnych procesów fizycznych na kubitach znajdujących się w danym układzie kwantowym. Ponieważ działanie kolejnych bramek następuje kolejno w czasie, nie jest możliwe tworzenie pętli sprzężenia zwrotnego, gdyż nie jest możliwe przesłanie stanu kubitu do tyłu w czasie. W przyjętej reprezentacji graficznej bramki kwantowe oznacza się podobnie jak bramki odwracalne, jako symbole naniesione na poziome linie oznaczające poszczególne kubity (rys. 3.2). Bramki kwantowe oddziaływują kolejno na kubity od lewej do prawej strony rysunku. W niektórych publikacjach stosuje się dodatkowy symbol na końcu każdej linii oznaczający pomiar stanu kubitu, jednak dla czytelności w dalszej części pracy dla układów kwantowych będzie stosowana reprezentacja graficzna taka sama jak dla układów odwracalnych. Rysunek 3.2. Przykład 3-kubitowego układu kwantowego zbudowanego z czterech bramek kwantowych. Bramki kwantowe ze swojej natury realizują operacje odwracalne, gdyż według mechaniki kwantowej zawsze możliwe jest zrealizowanie operacji, która przywróci poprzedni stan kubitu lub kubitów. Dla zwiększenia zwięzłości i czytelności, w dalszej części rozprawy termin bramka odwracalna będzie używany jedynie w znaczeniu binarnej bramki odwracalnej, mimo że bramki kwantowe również są odwracalne Jednokubitowe bramki kwantowe Bramka kwantowa jest operatorem liniowym na stanie kubitu, dlatego możliwe jest zdefiniowanie operacji realizowanej przez taką bramkę jako zespolonej macierzy kwadratowej o rozmiarze równym liczbie stanów bazowych kubitu. Stan kubitu po działaniu bramki ψ uzyskujemy mnożąc macierz operacji realizowanej przez daną bramkę M przez wektor stanu kubitu ψ : ψ = M ψ. 28
29 Operację realizowaną przez układ kwantowy składający się z kilku bramek można uzyskać mnożąc macierze poszczególnych bramek. Można pokazać, że operator, który przekształca unormowany wektor stanu kubitu w taki sposób, że wynikowy wektor również jest wektorem unormowanym, jest operatorem unitarnym, więc macierz opisująca przekształcenie realizowane przez bramkę kwantową jest macierzą unitarną. Dla macierzy unitarnych zawsze istnieje macierz odwrotna, która jest równa jej sprzężeniu hermitowskiemu 2. Dla układu składającego się z pojedynczego kubitu przekształcanego bramką opisaną przez macierz U oznacza to, że: U ψ = U (c c 1 1 ) = ψ = c c 1 1, gdzie c c 1 2 = 1 oraz c c 1 2 = 1. Jedną z najprostszych bramek kwantowych jest kwantowa bramka NOT, realizująca kwantowe uogólnienie klasycznej bramki NOT. Operacja realizowana przez tą bramkę zdefiniowana jest macierzą 2 2: ( ) 0 1 NOT =. (3.4) 1 0 Bramka ta zamienia amplitudy stanów bazowych odpowiednio z c 0 na c 1 oraz c 1 na c 0 : NOT ( c0 c 1 ) ( ) ( ) 0 1 c0 = = 1 0 W niektórych pracach macierz opisująca operację realizowaną przez bramkę NOT oznaczana jest symbolem X, gdyż jest ona równoważna macierzy Pauliego σ x [Nie00]. Symbol graficzny kwantowej bramki NOT jest taki sam jak odwracalnej bramki NOT (rys. 3.3a). W literaturze wprowadzono wiele bramek kwantowych. Szczególnym zainteresowaniem, zwłaszcza w kontekście układów odwracalnych, cieszą się kwantowe bramki realizujące operację pierwiastka k-tego stopnia z NOT [De 12, Van12, Sas12b, Sas12a]. Operacje te są zdefiniowane następującą macierzą: c 1 ( c1 ( ) 1 + i 2/k R k = NOT 1/k = 1 1 i 2/k. (3.5) 2 1 i 2/k 1 + i 2/k Potoczna nazwa tych bramek kwantowych odzwierciedla operację, którą realizują, bowiem układ kwantowy będący kaskadą k takich bramek realizuję operację równoważną kwantowej bramce NOT: R k... R }{{} k = NOT. k 2 Złożenie operacji transpozycji i sprzężenia zespolonego macierzy zespolonych. c 0 ). 29
30 Zdefiniujmy R + k jako sprzężenie hermitowskie macierzy R k: ( ) 1 + i 2/k R + k = 1 1 i 2/k. (3.6) 2 1 i 2/k 1 + i 2/k Można łatwo wykazać, że macierz R k jest macierzą unitarną: gdzie I n oznacza kwadratową macierz jednostkową wymiaru n. R k R + k = R+ k R k = I n, (3.7) Macierz R + k realizuje operację odwrotną do operacji pierwiastka k-tego stopnia z NOT opisanej macierzą R k, stąd bramka realizująca tą operację jest również nazywana odwrotnym pierwiastkiem k-tego stopnia z NOT. Symbole graficzne bramek realizujących operacje R k oraz R + k pokazane są na rys. 3.3b i 3.3c. Układ będący kaskadowym połączeniem bramek kwantowych opisanych macierzami R k oraz R + k zgodnie z równaniem (3.7) realizuje funkcję tożsamościową (rys. 3.4a). Układy będące kaskadowym połączeniem k bramek pierwiastka k-tego stopnia z NOT lub odwrotnego pierwiastka k-tego stopnia z NOT realizują operację równoważną bramce NOT (rys. 3.4b). Operacje realizowane przez macierze R k oraz R + k mogą być przedstawione również jako obroty odpowiednio o 1π oraz 1 π wokół osi OX na sferze Blocha (rys. 3.1). k k a) N(x 1 ) b) R k (x 1 ) c) R + k (x 1) d) V (x 1 ) e) V + (x 1 ) f) W (x 1 ) g) W + (x 1 ) h) X(x 1 ) i) X + (x 1 ) Rysunek 3.3. Symbole graficzne jedno-kubitowych bramek kwantowych. a) R k R + k = R+ k R k = I n b) R k... R }{{} k = R + k... R+ k = NOT }{{} k k Rysunek 3.4. Równoważne układy kwantowe zbudowane z bramek realizujących operacje dane macierzami R k oraz R + k. 30
31 Macierze R k, dla k = 2,..., 2 m posiadają następujące własności: R 2 m R 2 m = R 2 m 1, R + 2 m R+ 2 m = R+ 2 m 1. (3.8) Dla macierzy R k i R + k wprowadzone zostały specjalne oznaczenia dla pewnych wartości k. Macierze te dla k = 2 nazywane są macierzami V i V + [Bar95], dla k = 4 odpowiednio W oraz W + [Sas12b, Sas12a], a dla k = 8 odpowiednio X oraz X + [Mor12a]. Między tymi macierzami zachodzą następujące zależności: V = R 2 = NOT 1/2, ( ) ( ) 1 + i 1 i 1 i V = 1 = 1+i, i 1 + i i 1 ( ) ( ) 1 i 1 + i 1 i V + = V 1 = 1 = 1 i, i 1 i i 1 V V = NOT, V + V + = NOT, (3.9) V V + = V + V = I n W =R 4 =NOT 1/4, ( ) 1 + i 1/2 W = 1 1 i 1/2, 2 1 i 1/2 1 + i ( 1/2 ) 1 i 3/2 W + =W 1 = i 3/2, i 3/2 1 i 3/2 W W = V, W + W + = V +, (3.10) W W + = W + W = I n X =R 8 =NOT 1/8, ( ) 1 + i 1/4 X = 1 1 i 1/4, 2 1 i 1/4 1 + i ( 1/4 ) 1 i 1/4 X + =X 1 = i 1/4, i 1/4 1 i 1/4 X X = W, X + X + = W +, (3.11) X X + = X + X = I n Symbole graficzne bramek realizujące powyższe operacje pokazane są na rys. 3.3d-i Wielokubitowe bramki kwantowe Macierzą unitarną o rozmiarze 2n 2n może być opisana dowolna operacja wykonana na układzie n kubitów. Jednak fizyczna realizacja takiej operacji może być trudna do zrealizowania, 31
32 dlatego też operacje na wielu kubitach dekomponuje się na proste elementy składowe, których wykonanie kolejno w czasie byłoby tożsame wykonaniu całościowej operacji. Okazuje się, że wystarczy w tym celu wykorzystać jednokubitowe operacje oraz jedną uniwersalną bramkę dwukubitową. Wybór bramki dwukubitowej jest dowolny, często jako taką bramkę wybiera się kwantową bramkę sterowanej negacji (CNOT). Kwantowa bramka CN OT działająca na dwa kubity, z których pierwszy jest sterującym, a drugi sterowanym, jest opisana następującą macierzą 4 4: CNOT = (3.12) W postaci zapisu macierzowego bramka CNOT zmienia odpowiednio amplitudy prawdopodobieństw tylko dwóch wektorów bazowych danego układu składającego się z dwóch kubitów: CNOT c 0 c 1 c 2 c = c 0 c 1 c 2 c 3 = Kwantowa bramka CNOT jest pewnym uogólnieniem odwracalnej bramki CNOT. Kwantowe bramki działają bowiem nie tylko na stany bazowe, ale także na pełny iloczyn tensorowy przestrzeni Hilberta, zaś bramka odwracalna zdefiniowana jest wyłącznie na dyskretnym zbiorze logicznych wartości bitów. Działanie kwantowej bramki CNOT na stany kubitów sterującego i sterowanego wygląda następująco: jeżeli kubit sterujący znajduje się w stanie 0, to stan kubitu sterowanego nie ulega zmianie, jeżeli kubit sterujący znajduje się w stanie 1, to stan kubitu sterowanego zmieni się na przeciwny, jeżeli kubit sterujący znajduje się w innym stanie niż 0 lub 1, to stan końcowy układu jest pewnym stanem splątanym, który nie jest możliwy do zapisania jako iloczyn stanów bazowych 0 i 1. Definicja 3.2. Kwantowa bramka sterowana U jest bramką kwantową oddziaływającą na dwa kubity, nazywane odpowiednio sterującym oraz sterowanym, która wykonuje przekształcenie opisane macierzą U na kubicie sterowanym wtedy i tylko wtedy, gdy wartość kubitu sterującego wynosi 1. Kwantowej bramka sterowana U działająca na dwa kubity, z których pierwszy jest sterującym, a drugi sterowanym, jest opisana następującą macierzą 4 4: c 0 c 1 c 3 c 2. 32
33 c-u = u 11 u 12, (3.13) 0 0 u 21 u 22 gdzie u 11, u 12, u 21 i u 22 są elementami macierzy U opisującej operację jaka jest wykonywana na kubicie sterowanym: ( ) u11 u 12 U =. u 21 u 22 Bramką realizującą operację odwrotną do danej kwantowej bramki sterowanej U jest kwantowa bramka sterowana wykonująca operację U 1. W literaturze przyjmuje się, że dowolna bramka kwantowa działająca na jednym lub dwóch kubitach, opisana macierzą unitarną, jest uważana za elementarną bramkę kwantową Koszt kwantowy bramki odwracalnej Układy odwracalne mogą być realizowane w postaci układów kwantowych. W pracy [Nie00] pokazano, że badania nad układami kwantowymi, które będą miały praktyczne znaczenie są zaawansowane. W literaturze najczęściej spotykaną metodą budowania układów kwantowych realizujących układy odwracalne jest tzw. kwantowa dekompozycja bramek odwracalnych. Metoda ta polega na wyznaczeniu układów kwantowych realizujących poszczególne bramki odwracalne i budowaniu układu kwantowego poprzez kaskadowe łączenie układów kwantowych realizujących poszczególne bramki odwracalne. Definicja 3.3. Kosztem kwantowym bramki odwracalnej (układu odwracalnego) nazywamy minimalną liczbę elementarnych bramek kwantowych potrzebnych do skonstruowania układu kwantowego, który realizuje daną bramkę odwracalną (układ odwracalny). Koszt kwantowy zależy od przyjętej biblioteki bramek kwantowych, liczby kubitów w układzie kwantowym oraz przyjętej metody dekompozycji bramek odwracalnych. Dla wielu bramek odwracalnych nie zostały jeszcze znalezione minimalne układy kwantowe realizujące je. W literaturze rozpatrywane są różne biblioteki bramek kwantowych [Sas12b], jednak największe znaczenie ma biblioteka NCV oraz jej rozszerzona wersja biblioteka NCVW. 33
34 a) CNOT b) c-r k c) c-r + k d) c-v e) c-v + f) c-w g) c-w + h) c-x i) c-x + Rysunek 3.5. Symbole graficzne dwukubitowych sterowanych bramek kwantowych Biblioteka bramek NCV Definicja 3.4. Biblioteką NCV nazywamy bibliotekę bramek kwantowych składającą się z bramek kwantowych: NOT, sterowanej NOT (CNOT), sterowanej V oraz sterowanej V + (ang. controlled-v/v + ). Biblioteka NCV jest jedną pierwszych i najczęściej rozpatrywanych bibliotek bramek kwantowych w kontekście układów odwracalnych. Symbole graficzne bramek z biblioteki NCV pokazane są na rys. 3.3a oraz 3.5ade. W pracy [Bar95] po raz pierwszy pokazany został układ kwantowy realizujący odwracalną bramkę Toffoliego z dwoma liniami sterującymi. Układ ten składa się z 5 bramek kwantowych (rys. 3.6). Ponieważ biblioteka bramek NCT pozwala zbudować układ odwracalny dla dowolnej funkcji odwracalnej n zmiennych, więc biblioteka NCV jest również wystarczająca do skonstruowania układu kwantowego realizującego dowolną funkcję odwracalną n zmiennych. Realizacja pewnych funkcji odwracalnych może jednak wymagać wprowadzenia dodatkowej linii (dodatkowego kubitu) w układzie kwantowym. Koszt kwantowy podstawowych bramek z biblioteki NCT: NOT, CNOT oraz Toffoliego z dwoma liniami sterującymi wynosi odpowiednio: 1, 1 oraz 5 jednostek. Rysunek 3.6. Układ kwantowy z bramek NCV realizujący bramkę Toffoliego o dwóch sygnałach sterujących [Bar95]. W pracach [Mas04, Mil09, Mil10, Sas12b] ulepszano metody konstruowania układów kwantowych realizujących uogólnione bramki Toffoliego w celu zredukowania liczby bramek kwantowych. W tabeli 3.1 podana jest liczba kwantowych bramek NCV potrzebnych do zbudowania minimalnego układu kwantowego realizującego bramki Toffoliego o n sygnałach sterujących w zależności od liczby dostępnych dodatkowych linii w układzie kwantowym [Sas12b]. 34
35 Koszt kwantowy uogólnionych bramek Toffoliego ze sterowaniem mieszanym jest równy kosztowi kwantowemu uogólnionych bramek Toffoliego ze sterowaniem pozytywnym, gdy występuje choć jeden sygnał sterujący pozytywny. Koszt kwantowy bramek ze sterowaniem negatywnym jest o jedną jednostkę większy od kosztu kwantowego bramek ze sterowaniem pozytywnym [Sas12b]. W zapisie tekstowym do oznaczania kwantowej bramki sterowanej V oraz sterowanej V + używane będą symbole V oraz V +, analogicznie do bramki CNOT. Tabela 3.1. Minimalna liczba bramek NCV potrzebnych do zbudowania układu kwantowego (koszt kwantowy) realizującego uogólnioną bramkę Toffoliego o n sygnałach sterujących (tabela 5.2 w [Sas12b]). Liczba dostępnych linii dodatkowych n Bramka Peresa Koszt kwantowy w ogólnym przypadku jest addytywny, co oznacza, że dołączenie kolejnej bramki odwracalnej do układu zwiększa jego koszt kwantowy. W pracy [Mas04] pokazano jednak, że istnieje para bramek odwracalnych, której koszt kwantowy jest mniejszy niż suma kosztów kwantowych poszczególnych bramek. Ta para bramek realizuje tzw. bramkę Peresa, wprowadzoną po raz pierwszy w pracy [Per85]. Bramka Peresa realizuje następującą funkcję: f Peres : (x 1, x 2, x 3 ) (x 1, x 1 x 2, x 1 x 2 x 3 ). (3.14) Powyższą funkcję odwracalną realizuje układ odwracalny będący parą bramek: Toffoliego o dwóch sygnałach sterujących oraz CNOT, których sumaryczny koszt kwantowy wynosi 6 jednostek. Z kolei optymalny układ kwantowy realizujący funkcję odwracalną opisaną 35
36 równaniem 3.14 składa się jedynie z czterech bramek NCV, co oznacza, że koszt kwantowy realizacji tej bramki jako optymalnego układu kwantowego jest o dwie jednostki mniejszy niż koszt kwantowy odpowiadającej jej pary bramek odwracalnych. Ta własność bramki Peresa spowodowała, że jest ona często wykorzystywana do redukcji kosztu kwantowego układów odwracalnych [Mas04]. Oba układy, kwantowy oraz odwracalny, pokazane są na rys Rysunek 3.7. Układ odwracalny (koszt kwantowy: 5+1 = 6 jednostek) i równoważny mu układ kwantowy z czterech bramek NCV realizujący bramkę Peresa. Bramka Peresa realizuje funkcję odwracalną, która nie jest odwrotnością samej siebie [Per85]. Układ kwantowy realizujący odwrotność bramki Peresa pokazany jest na rys Rysunek 3.8. Układ odwracalny (koszt kwantowy: 5+1 = 6 jednostek) i równoważny mu układ kwantowy z czterech bramek NCV realizujący odwrotność bramki Peresa. W niniejszej pracy przy obliczaniu kosztu kwantowego układu odwracalnego dla wszystkich par bramek Toffoliego i CNOT, które tworzą bramkę Peresa lub odwrotność bramki Peresa, przyjmowany będzie koszt kwantowy równy 4 jednostki. W zapisie tekstowym para bramek Toffoliego i CNOT tworząca bramkę Peresa będzie oznaczana nawiasami ostrokątnymi: T(x 1, x 2 ; x 3 ) C(x 1 ; x 2 ), w skróconej notacji używanej w dodatku A: Tab-c Ca-b). Koszt kwantowy bramek Peresa z mieszanym sterowaniem wraz z układami kwantowymi realizującymi takie bramki podany jest w tabeli 3.2. Tabela 3.2. Koszt kwantowy oraz układy kwantowe realizujące bramki Peresa z mieszanym sterowaniem. bramka Peresa układ kwantowy koszt kwantowy T(x 1, x 2 ; x 3 ) C(x 1 ; x 2 ) V(x 1 ; x 3 ) V(x 2 ; x 3 ) C(x 1 ; x 2 ) V + (x 2 ; x 3 ) 4 T(x 1, x 2 ; x 3 ) C(x 1 ; x 2 ) V(x 2 ; x 3 ) V + (x 1 ; x 3 ) C(x 1 ; x 2 ) V + (x 2 ; x 3 ) 4 T(x 1, x 2 ; x 3 ) C(x 1 ; x 2 ) V(x 1 ; x 3 ) V + (x 2 ; x 3 ) C(x 1 ; x 2 ) V + (x 2 ; x 3 ) N(x 2 ) 5 T(x 1, x 2 ; x 3 ) C(x 1 ; x 2 ) V(x 1 ; x 3 ) N(x 2 ) V + (x 2 ; x 3 ) C(x 1 ; x 2 ) V + (x 2 ; x 3 ) 5 36
37 3.10. Biblioteka bramek NCVW Definicja 3.5. Biblioteka NCVW jest rozszerzeniem biblioteki NCV o bramki: sterowaną W oraz sterowaną W +. Bramki sterowane W i W + wprowadzone zostały w celu konstruowania układów kwantowych z mniejszą liczbą bramek kwantowych [Sas12a]. Ich wprowadzenie pozwoliło również na zbudowanie układu kwantowego realizującego uogólnioną bramkę Toffoliego o trzech liniach sterujących bez wprowadzania dodatkowej linii [Bar95] (rys. 3.9). Taki układ kwantowy zbudowany jest z 13 bramek. Symbole graficzne bramek sterowanej W oraz W + pokazane są na rys. 3.5fg. W tabeli 3.3 podana jest liczba kwantowych bramek NCVW potrzebnych do zbudowania układu kwantowego realizującego bramki Toffoliego o n sygnałach sterujących w zależności od liczby dostępnych dodatkowych linii w układzie kwantowym [Sas12b]. Rysunek 3.9. Układ kwantowy z bramek NCVW realizujący bramkę Toffoliego o trzech sygnałach sterujących [Bar95]. Tabela 3.3. Minimalna liczba bramek NCVW potrzebnych do zbudowania układu kwantowego (koszt kwantowy) realizującego uogólnioną bramkę Toffoliego o n sygnałach sterujących (tabela 5.5 w [Sas12b]). Liczba dostępnych linii dodatkowych n
38 4. Przegląd dotychczasowych metod redukcji kosztu kwantowego Konstruowanie układów kwantowych jest zadaniem bardzo skomplikowanym obliczeniowo i jest znacznie trudniejsze niż konstruowanie układów odwracalnych. Wynika to głównie ze znacznie większej przestrzeni stanów, jakie mogą przyjmować kubity, w porównaniu z dwoma stanami logicznymi występującymi w układach odwracalnych Optymalne układy kwantowe Prace nad skonstruowaniem optymalnych układów kwantowych realizujących układy odwracalne opisane są w pracy [Mas07b]. W pracy tej skupiono się na znalezieniu optymalnych układów kwantowych dla wszystkich funkcji odwracalnych trzech zmiennych zbudowanych z bramek NCV. Wprowadzony został zapis funkcji kwantowej w postaci rozszerzonej tablicy prawdy i przedstawiony został algorytm budowania bazy optymalnych układów kwantowych, który jest algorytmem wykorzystującym pełne przeszukiwanie wszystkich możliwych kaskad bramek kwantowych. Metoda ta była dalej rozwijana w pracy [Rah12a]. W wyniku przeprowadzonych eksperymentów obliczeniowych autorzy pokazali, że optymalne układy kwantowe realizujące funkcje odwracalne trzech zmiennych składają się maksymalnie z 14 bramek z biblioteki NCV, a średnia liczba bramek wynosi 10,03 [Mas07b]. Stosowanie tej metody konstruowania układów optymalnych jest również ograniczone jedynie do układów z trzema kubitami. Do projektowania optymalnych układów kwantowych zastosowane zostały również metody znane z projektowania układów odwracalnych, czyli podejście wykorzystujące algorytmy rozwiązujące problem spełnialności formuły logicznej [Gro08, Wil08b], gdzie problem konstruowania układu zamieniany jest na szereg formuł logicznych, których spełnialność analizowana jest przy użyciu znanych algorytmów rozwiązywania problemów SAT. Główną wadą tego podejścia jest wykładnicza złożoność względem liczby kubitów i długi czas potrzebny do znalezienia rozwiązania. Podejście to może być zastosowane jedynie do konstruowania bardzo małych układów kwantowych, zawierających kilka bramek kwantowych umieszczonych na kilku liniach. 38
39 4.2. Konstruowanie układów kwantowych Projektowanie układów kwantowych realizujących funkcje odwracalne jest najczęściej realizowane wieloetapowo. Ze względu na trudności, jakie występują przy bezpośrednim konstruowaniu układów kwantowych, w literaturze powszechnie stosuje się w tym celu technikę tzw. dekompozycji układu odwracalnego na elementarne bramki kwantowe. Metoda ta polega na skonstruowaniu układu odwracalnego realizującego daną funkcję odwracalną i następnie zastąpieniu każdej z bramek odwracalnych podukładem kwantowym realizującym daną bramkę odwracalną. Liczba elementarnych bramek kwantowych potrzebnych do zrealizowania danej bramki odwracalnej nazywana jest jej kosztem kwantowym. Metoda ta pozwala również ocenić koszt realizacji układu odwracalnego w technologiach kwantowych. Ogólny schemat wieloetapowego projektowania układu kwantowego [Sas12b] pokazany jest na rys Rysunek 4.1. Ogólny schemat wieloetapowego projektowania układu kwantowego realizującego funkcję odwracalną. Podczas realizowania kolejnych etapów projektowania w konstruowanym układzie powstają redundancje, które wynikają z nieoptymalnego rozwiązywania poszczególnych zagadnień projektowania układów. Redundancje te są również powodem wprowadzenia dodatkowych etapów, jakimi są redukcja układu odwracalnego i redukcja układu kwantowego. Na etapie redukcji układu odwracalnego stosowane są techniki zmniejszające liczbę bramek odwracalnych oraz liczbę linii używanych w układzie. Większość algorytmów zaproponowanych do tego celu jest heurystykami, które wykonują lokalne optymalizacje polegające na przestawianiu i eliminacji pewnych bramek oraz zastępują pewne podukłady równoważnymi podukładami, ale zbudowanymi z mniejszej liczby bramek lub bramek o mniejszym koszcie kwantowym Konstruowanie i redukcja układów odwracalnych Głównym kryterium oceny kosztu układu odwracalnego, jakie jest rozpatrywane w większości zaproponowanych w literaturze metod, jest liczba bramek w układzie. Opracowano kilka metod redukcji liczby bramek w projektowanych układach odwracalnych. 39
40 Jedną z pierwszych technik, jakie zaproponowane zostały do tego celu, jest tzw. metoda redukcji układu z wykorzystaniem wzorców (ang. templates) [Mas05b, Mas07a]. Technika ta polega na znalezieniu w danym układzie odwracalnym pewnej sekwencji bramek, która może zostać zamieniona na krótszą. Metoda ta ma jednak poważną wadę: proces wykrycia wzorca w badanym układzie jest bardzo czasochłonny. Nie jest też możliwe proste zdefiniowanie kryterium stopu tego algorytmu, bowiem algorytm dopasowywania wzorców może być powtarzany wielokrotnie. Mianowicie, po udanym dopasowaniu wzorca i podstawieniu nowej, krótszej kaskady bramek, może się okazać, że bramki z nowej sekwencji wraz z innymi bramkami z układu będą pasowały do następnego wzorca. Resynteza jest kolejną techniką wprowadzoną w celu zredukowania układu odwracalnego [Mas07a]. Jej autorzy wykorzystali to, że projektowanie układów odwracalnych dla funkcji o małej liczbie zmiennych jest znacznie prostsze niż układów o większej liczbie zmiennych. Dla takich funkcji z reguły uzyskiwane są układy, które są bliskie optymalnym. Metoda ta polega na wyodrębnieniu pewnego podukładu realizowanego przez wybraną sekwencję bramek, obliczenie jaka funkcja f jest realizowana przez taki podukład, a następnie przeprowadzana jest ponowna synteza układu dla funkcji f. W przypadku, gdy nowy układ realizujący funkcję f ma mniejszy koszt od wcześniej wyodrębnionego podukładu, następuje wymiana danego podukładu. W literaturze analizowane były również układy odwracalne optymalne pod względem kosztu kwantowego. Takie układy konstruowane były metodami przeszukiwania [Szy08], co jednak ograniczało taką metodę jedynie do układów trzech zmiennych. Dla biblioteki bramek NCT uzyskane zostały układy o koszcie kwantowym wynoszącym średnio 13,74 jednostki i maksymalnie 20 jednostek. Dla układów zbudowanych z biblioteki NCT rozszerzonej o bramki Peresa (prostą i odwrotną) koszt kwantowy wyniósł średnio 10,52 jednostki oraz maksymalnie 15 jednostek, czyli wartościami bliskimi do wyników uzyskanych dla optymalnych układów kwantowych [Mas07b] (średnio 10,03 jednostki i maksymalnie 14 jednostek). Nie były jednak znane metody konstruowania układów optymalnych pod względem kosztu kwantowego dla funkcji więcej niż trzech zmiennych Dekompozycja kwantowa W kolejnym etapie projektowania układów kwantowych wykonywana jest kwantowa dekompozycja bramek odwracalnych. W literaturze zaproponowano wiele metod takiej dekompozycji. Metody te zależą od przyjętej biblioteki bramek kwantowych oraz liczby linii (kubitów) w układzie kwantowym. Pierwsze dekompozycje bramek NCT na bramki kwantowe z biblioteki NCV zaproponowane zostały w pracy [Bar95]. Następnie metody konstrukcji układów kwantowych realizujących uogólnione bramki Toffoliego były wielokrotnie ulepszane [Mas04, Mil09, Mil10, Sas12b] w celu zmniejszenia liczby bramek w uzyskiwanych układach 40
41 kwantowych. Dopiero od niedawna rozpatrywane są inne biblioteki bramek kwantowych niż NCV, m.in. biblioteki NCVW [Sas12a, Sas12b] oraz NCV- v 1 [Soe12, Sas12c, Sas12b]. Oprócz prac nad ulepszaniem tych konstrukcji prowadzone są również badania nad innymi bramkami kwantowymi, które pozwoliłyby na budowanie prostszych układów realizujących poszczególne bramki odwracalne, np. bibliotek z dodatkową bramką Hadamarda [Mas11]. Liczba bramek kwantowych w uzyskanym układzie zależy również od wyboru odpowiedniej metody dekompozycji poszczególnych bramek odwracalnych, gdyż można tak dobrać dekompozycje, aby powstawały pary sąsiadujących bramki kwantowych, które mogą być wyeliminowane [Ban10, Sas12b] Redukcja układów kwantowych W wyniku powyżej opisanego postępowania otrzymywany jest układ kwantowy realizujący zadaną funkcję odwracalną. W literaturze zaproponowano również pewne metody zmniejszenia liczby bramek w układach kwantowych. Jedną z pierwszych metod zmniejszania liczby bramek kwantowych była adaptacja metody redukowania układów odwracalnych, czyli opracowanie wzorców dla układów kwantowych oraz dodatkowych reguł pozwalających na ich stosowanie [Mas05a, Rah12b]. Metoda ta została sprawdzona na układach kwantowych realizujących wszystkie funkcji odwracalne trzech zmiennych. Rozpatrywane układy zostały otrzymane w wyniku kwantowej dekompozycji układów odwracalnych optymalnych pod względem liczby bramek. Koszt kwantowy został zredukowany o 17,3% do średniej wartości równej 11,49 bramek i maksymalnej wartości 25 bramek kwantowych (dla optymalnych układów kwantowych wartości te wynoszą: średnia 10,02 i maksymalna 14) [Rah12b]. Autorzy pokazali również przypadki, w których nie jest możliwa redukcja kosztu kwantowego zaproponowaną metodą Podsumowanie Powyżej przedstawione metody konstruowania układów kwantowych oraz redukcji kosztu kwantowego (liczby elementarnych bramek kwantowych) opierają się na założeniu, że wieloetapowe projektowanie układów kwantowych z układów odwracalnych, zoptymalizowanych głównie pod względem liczby bramek, prowadzi do powstania układów o niskim koszcie kwantowym. W niektórych pracach formułowane było spostrzeżenie, że układy zbudowane z większej niż minimalna liczby bramek mogą charakteryzować się jeszcze niższym kosztem kwantowym, jednak żadne badania w tym kierunku nie były prowadzone [Wil09b]. Główną wadą powyżej przedstawionego wieloetapowego projektowania układów kwantowych jest wykorzystywanie informacji o koszcie kwantowym poszczególnych bramek odwracalnych jedynie w końcowych etapach projektowania układu do lokalnych optymalizacji. W pracy [Ker12] pokazano, że metody projektowania, które polegają na podejmowaniu decyzji jedynie 41
42 w oparciu o ograniczone, lokalne informacje i kryteria prowadzą do konstruowania układów, które są dalekie od optymalnych. Odwracalne układy optymalne pod względem kosztu kwantowego oraz optymalne układy kwantowe skonstruowane zostały jedynie dla funkcji odwracalnych trzech zmiennych. Jest to jednak niewystarczające do oceny efektywności znanych metod redukcji kosztu kwantowego oraz opracowania metod redukcji kosztu kwantowego, które działałyby dla funkcji większej liczby zmiennych. Podczas rozpoczynania prac nad niniejszą rozprawą skonstruowanie optymalnych układów kwantowych realizujących funkcje odwracalne więcej niż trzech zmiennych wciąż było otwartym problemem. Nie były znane też żadne metody systematycznego zmniejszania kosztu kwantowego układów odwracalnych oraz nieznane były algorytmy kompleksowe, które od początku uwzględniałyby konstruowanie układów z bramek kwantowych. Możliwość rozwiązania tego problemu stała się tezą niniejszej rozprawy. Metody, opisane w rozdziałach 6 i 7 pozwalają skonstruować układy odwracalne o niskim koszcie kwantowym oraz optymalne semi-klasyczne układy kwantowe realizujące zadaną prostą funkcję odwracalną czterech zmiennych. W wyniku przeprowadzonych eksperymentów obliczeniowych znaleziony został optymalny układ kwantowy, który realizuje 4-bitową bramkę Peresa. Konstrukcja tego układu kwantowego została następnie uogólniona w rozdziale 8 na przypadek układów o n wejściach. Pokazano, że zastosowanie takich uogólnionych bramek Peresa przyczynia się do dalszej redukcji kosztu kwantowego układów odwracalnych. 42
43 5. Optymalne układy odwracalne dla funkcji czterech zmiennych Pierwsze próby projektowania optymalnych układów dla funkcji odwracalnych polegały na generowaniu wszystkich możliwych układów i stworzeniu bazy zawierającej układy optymalne pod względem danej funkcji kosztu. W tych próbach jako funkcję kosztu przyjmowano liczbę bramek odwracalnych. Wszystkich funkcji odwracalnych n zmiennych jest 2 n!, co dla przypadku 3 zmiennych oznacza 2 3! = 8! = funkcji odwracalnych. Wygenerowanie bazy optymalnych układów dla wszystkich funkcji odwracalnych nie jest skomplikowane obliczeniowo. Takie bazy były wielokrotnie konstruowane dla różnych bibliotek bramek odwracalnych oraz poddawane analizom [Pra06, Mas07a, Ker07, Szy08, Ker08, Szy10c]. Jednak wszystkich funkcji odwracalnych czterech zmiennych jest 2 4! = 16! = Taka liczba wszystkich funkcji oznacza, że metody polegające na wyczerpującym przeszukiwaniu wszystkich możliwych układów nie mogą być zastosowane ze względu na ogromną ilość pamięci potrzebną do przechowywania takiej bazy i ograniczone zasoby pamięci operacyjnej współczesnych komputerów. Należy zauważyć, że hipotetyczna mapa bitowa, w której pojedyncza funkcja odwracalna czterech zmiennych oznaczona byłaby 1 bitem zajmowałaby aż 2TiB 1 (czyli 2 41 bajtów = 2 44 bitów), a taka struktura nie umożliwiałaby przechowania żadnej dodatkowej informacji związanej z daną funkcją. Struktura przechowująca układy dla wszystkich odwracalnych funkcji czterech zmiennych zajmowałaby setki tebibajtów, przez co jej praktyczne stosowanie byłoby ograniczone. Problem znalezienia algorytmu, który byłby w stanie skonstruować układy optymalne pod względem liczby bramek dla dowolnej funkcji odwracalnej czterech zmiennych przyciągnął uwagę wielu badaczy na przestrzeni ostatnich lat. Jednak tylko jeden zespół badaczy pokazał, że możliwe jest wykorzystanie tablic mieszających do przechowywania bazy układów optymalnych dla funkcji o układach optymalnych mających nie więcej niż 8 bramek [Li08a, Li08b]. W pracach tych jednak nie pokazano jak w rozwiązać problem konstruowania układów optymalnych dla dowolnych funkcji czterech zmiennych. 1 Aby uniknąć wieloznaczności przy określaniu rozmiaru pamięci zajmowanej przez opisywane struktury, w niniejszej pracy stosuję przedrostki kibi-, mebi-, gibi- i tebi- w znaczeniu odpowiednio: 2 10 = 1024, 2 20, 2 30 i 2 40, zgodnie z tzw. przedrostkami binarnymi wg norm ICE i IEEE [IEE09], a nie przedrostkami zgodnymi z układem SI: kilo-, mega-, giga- oraz tera-, które oznaczają odpowiednio: 10 3, 10 6, 10 9 czy
44 5.1. Algorytm konstruowania układu optymalnego Przełomem w konstruowaniu układów optymalnych była praca [Gol10] trójki autorów z Kanady: Golubitsky, Falconer i Maslov. Opracowali oni metodę konstrukcji układów optymalnych pod względem liczby bramek dla dowolnej funkcji odwracalnej czterech zmiennych. Pokazali, że mając bazę układów optymalnych o maksymalnie k bramkach możliwe jest konstruowanie układów optymalnych dla funkcji odwracalnych posiadających do 2k bramek w układach optymalnych. Zaprezentowany algorytm konstrukcji układu optymalnego dla funkcji f najpierw sprawdza, czy odpowiedni układ istnieje w bazie. Jeśli tak, to zwracany jest znaleziony układ. Jeżeli taki układ nie istnieje, oznacza to, że układ optymalny dla tej funkcji wymaga więcej niż k bramek. Załóżmy, że: f = h g, czyli funkcja f jest złożeniem funkcji odwracalnych h i g. Załóżmy również, że układy optymalne dla funkcji h i g mają odpowiednio dokładnie k bramek oraz maksymalnie k bramek. Jeśli zostanie znaleziona taka funkcja g, której układ optymalny ma najmniejszą liczbę bramek, wówczas układ optymalny dla funkcji f będzie złożeniem optymalnych układów dla tak wyznaczonych funkcji h i g. Przekształcając powyższą zależność otrzymujemy: f g 1 = h. Z własności układów odwracalnych wiadomo, że układ optymalny dla funkcji odwrotnej g 1 ma taką samą liczbę bramek co optymalny układ odwracalny dla funkcji g. Algorytm poszukuje funkcji g i h o powyższych własnościach, wybierając jako g po kolei wszystkie funkcje odwracalne z bazy układów optymalnych o l bramkach, kolejno dla l = 1,..., k. Następnie oblicza funkcję h i sprawdza ponownie w bazie, czy istnieje układ o k bramkach realizujący tak obliczoną funkcję h. Jeżeli zostanie znaleziona funkcja h spełniająca te warunki, konstruowany jest układ będący kaskadowym połączeniem układów optymalnych dla funkcji h i g. W przeciwnym wypadku l jest zwiększane o jeden i sprawdzane są funkcje odwracalne mające układy optymalne dłuższe o jedną bramkę. Algorytm realizujący konstruowanie układu optymalnego według powyższego opisu podany jest w ramce Algorytm 1. Przedstawiony algorytm pozwala na konstruowanie układów optymalnych pod względem liczby bramek dla dowolnej funkcji odwracalnej mając do dyspozycji bibliotekę układów optymalnych zawierających tylko układy mające co najwyżej k bramek. Taka baza może być obliczona raz i później wielokrotnie wykorzystywana podczas konstruowania dowolnych układów. Przedstawiony algorytm wykonuje sekwencyjny dostęp do wszystkich funkcji zapisanych w bazie układów optymalnych oraz wykonuje sprawdzenie, czy istnieje układ optymalny o k 44
45 Algorytm 1 Skonstruuj optymalnych układ odwracalny dla funkcji odwracalnej f Wejście: f: funkcja odwracalna, H, k: baza wszystkich optymalnych układów odwracalnych o maksymalnie k bramkach, H = {H 1,..., H k }, gdzie H i to baza wszystkich optymalnych układów odwracalnych o i bramkach. Wyjście: Optymalny układ odwracalny C realizujący funkcję f. procedure ZnajdźUkładOptymalny(f) if f = TOŻSAMOŚĆ then return C Ø else if f H then return C układ optymalny odczytany z bazy H dla funkcji f else for i 1 to k do for all g H i do h f g 1 if h H then C g układ optymalny odczytany z bazy H dla funkcji g C h układ optymalny odczytany z bazy H dla funkcji h return C C h C g end if end for end for end if return Błąd: układ optymalny dla f wymaga >2k bramek end procedure bramkach dla pewnej funkcji odwracalnej h. Oznacza to, że do efektywnego działania obie te operacje muszą być bardzo szybkie. W praktycznej implementacji, aby zapewnić odpowiednio szybki dostęp do dowolnego układu optymalnego, baza układów optymalnych powinna być przechowywana w całości w pamięci operacyjnej komputera, na którym wykonywane są obliczenia. Wprowadza to ograniczenie na rozmiar tej biblioteki Reprezentacja funkcji odwracalnej W celu możliwie zwartego zapisu funkcji odwracalnej czterech zmiennych, autorzy zastosowali znaną z literatury notację wektorową: [f(0), f(1),..., f(2 n 1 )], gdzie wartości funkcji f(i) są zapisane jako liczby całkowite z przedziału {0,..., 2 n 1}. Taka notacja pozwala zapisać daną funkcję odwracalną czterech zmiennych jako wektor 64-bitowy, w 45
46 którym kolejne czwórki bitów oznaczają wartość funkcji dla kolejnych wektorów wejściowych. Przykład tej notacji podany jest w tabeli 5.1. Tabela 5.1. Reprezentacja funkcji czterech zmiennych f : (x 1, x 2, x 3, x 4 ) (x 1, x 2, x 3, x 4 x 1 x 2 x 3 ) w postaci tablicy prawdy, wektora wartości wyjściowych oraz 64-bitowej liczby w zapisie szesnastkowym. x 4 x 3 x 2 x 1 y 4 y 3 y 2 y [0, 1, 2, 3, 4, 5, 6, 15, 8, 9, 10, 11, 12, 13, 14, 7] f89abcde7 (16) W pracach [Gol10, Gol12] pokazano również, że taka reprezentacja funkcji odwracalnej pozwala na szybkie wykonywanie podstawowych operacji na funkcjach odwracalnych, takich jak obliczanie funkcji odwrotnej oraz złożenie z inną funkcją odwracalną. Operacje te mogą być wykonane bezpośrednio na postaci wektorowej i dla współczesnych komputerów wymagają odpowiednio 96 instrukcji maszynowych dla złożenia oraz 59 instrukcji maszynowych dla obliczenia funkcji odwrotnej Baza układów optymalnych Autorzy algorytmu 1 zaproponowali, aby bazę układów optymalnych skonstruować jako hierarchię k tablic mieszających zawierających: a) funkcje odwracalne, których układy optymalne mają odpowiednio 1,..., k bramek oraz b) ostatnią bramkę tych optymalnych układów. Funkcja odwracalna używana jest jako klucz w takiej tablicy, a ostatnia bramka układu optymalnego jako wartość skojarzona z danym kluczem. W celu minimalizacji użytej pamięci, autorzy zaproponowali, aby problem kolizji kluczy takiej tablicy rozwiązany został poprzez adresowanie otwarte. Taka hierarchia tablic mieszających może być bezpośrednio użyta do sprawdzenia, ile bramek posiada optymalny układ odwracalny dla danej funkcji. Układ optymalny dla zadanej funkcji odwracalnej może być zaś skonstruowany metodą rekurencyjną w czasie liniowym względem liczby bramek w danym układzie optymalnym. W tym celu dla zadanej funkcji 46
47 odwracalnej f należy odczytać ostatnią bramkę G układu optymalnego z bazy, obliczyć funkcję f = f f 1 G, gdzie f G jest funkcją realizowaną przez bramkę G, i ponowić procedurę dla tak otrzymanej funkcji f. Mimo przyjętej zwartej reprezentacji funkcji odwracalnej (jako pojedyncza liczba 64-bitowa), na typowym komputerze z 4GiB pamięci operacyjnej możliwe było zmieszczenie w pamięci biblioteki wszystkich układów optymalnych jedynie dla k = 6, co pozwala na skonstruowanie układów optymalnych zawierających do 12 bramek. Nie jest to jednak liczba wystarczająca do skonstruowania układów optymalnych dla dowolnej funkcji odwracalnej czterech zmiennych, dlatego istotne było poszukiwanie metod dalszego zmniejszenia rozmiaru pamięci zajmowanego przez takie biblioteki układów optymalnych Symetrie i postać kanoniczna W pracach [Gol10, Gol12] autorzy zauważyli, że ilość pamięci zajmowanej przez bibliotekę układów optymalnych można zredukować dzięki wykorzystaniu pewnych symetrii w zbiorze odwracalnych układów optymalnych. Autorzy zauważyli również, że ten sam układ optymalny układ odwracalny może realizować wiele funkcji odwracalnych, jeżeli uwzględni się jednakowe permutacje indeksów zmiennych wejściowych i wyjściowych. Przykład takiej permutacji i odpowiadającego jej przekształcenia pokazany jest na rys. 5.1a oraz 5.1b. Każda z permutacji zmiennych jednoznacznie określa, w jaki sposób należy zamienić linie sterujące oraz linię sterowaną wszystkich bramek w układzie odwracalnym. Z jednego układu odwracalnego n zmiennych można zatem utworzyć w ten sposób n! układów optymalnych. Mając układ optymalny dla funkcji f, możliwe jest również szybkie skonstruowanie układu optymalnego dla funkcji odwrotnej do f układ dla funkcji odwrotnej składa się bowiem z tych samych bramek odwracalnych, tyle że połączonych kaskadowo w odwrotnej kolejności (rys. 5.1a i 5.1c). Powyższe obserwacje pozwalają wprowadzić następującą definicję klas równoważności C w zbiorze funkcji odwracalnych: Definicja 5.1. Dwie odwracalne funkcje boolowskie f i g należą do tej samej klasy równoważności C, gdy istnieje taka funkcja permutująca zmienne σ 1 lub σ 2, że: f = σ 1 1 g σ 1 lub f = σ 1 2 g 1 σ 2. Układy optymalne dla funkcji należących do tej samej klasy równoważności C zbudowane są z takich samych bramek, a zatem mają ten sam koszt dla dowolnej funkcji kosztu. Różnią się jedynie permutacją indeksów linii oraz ewentualną inwersją (układ realizujący funkcję odwrotną). Dana klasa równoważności może zawierać maksymalnie 2 n! funkcji (liczba 47
48 a) podstawowy układ b) układ powstały z a) poprzez permutację zmiennych (x 1, x 2, x 3, x 4 ) (x 2, x 1, x 3, x 4 ) c) układ realizujący funkcję odwrotną do układu a) Rysunek 5.1. Przykład symetrii w układach odwracalnych czterech zmiennych. Pokazane układy skonstruowane są z bramek tego samego typu i różnią się jedynie permutacją indeksów zmiennych lub odwrotną kolejnością bramek. wszystkich permutacji n zmiennych, podwojona ze względu na możliwość inwersji funkcji). Przykład układów realizujących funkcje odwracalne należące do tej samej klasy równoważności C pokazany jest na rys Definicja 5.2. Postacią kanoniczną klasy równoważności C funkcji odwracalnych jest ta funkcja f należąca do klasy C, której zapis wektorowy [f(0), f(1),..., f(2 n 1 )] ma wartość najmniejszą leksykograficznie. Autorzy pokazali, że wyznaczenie postaci kanonicznej dla funkcji f zapisanej w reprezentacji wektorowej oraz wyznaczenie wszystkich funkcji należących do jednej klasy równoważności może być wykonane na współczesnych komputerach w pomijalnym czasie. Postać kanoniczna pozwala zredukować liczbę funkcji odwracalnych, które są przechowywane w bazie układów optymalnych prawie 2 4! = 48 razy. Dla pewnych funkcji odwracalnych liczność ich klas równoważności jest mniejsza, gdyż niektóre permutacje zmiennych prowadzą do tych samych funkcji. Taka redukcja rozmiaru bazy z optymalnymi układami wymaga obliczania postaci kanonicznej dla danej funkcji przed wykonaniem przeszukiwania bazy oraz przekształcania bramek odwracalnych według zadanej permutacji 48
49 i inwersji układu optymalnego odczytanego z bazy. W pracach [Gol10, Gol12] pokazano, że tablice mieszające H i zawierające wszystkie układy optymalne zbudowane z i bramek, realizujące jedynie wszystkie funkcje odwracalne w postaci kanonicznej mają rozmiary odpowiednio 256MiB, 2GiB i 32GiB dla i = 7, 8, 9. Oznacza to, że tak zredukowane tablice mieszające H i osiągają rozmiary, które pozwalają przechowywać je w pamięci operacyjnej współczesnych komputerów Konstruowanie bazy układów optymalnych Bibliotekę układów optymalnych, zbudowaną jako hierarchię tablic mieszających H i można wygenerować metodą przeszukiwania wszerz. Kolejne tablice H i+1 można uzyskać poprzez dołączenie każdej bramki, należącej do rozpatrywanej biblioteki bramek odwracalnych, λ do każdego układu odwracalnego zapisanego w tablicy H i. Pseudokod algorytmu podany jest w ramce Algorytm 2. Raz zbudowana baza układów optymalnych może być następnie wykorzystywana wielokrotnie do konstruowania układów optymalnych dla dowolnych funkcji odwracalnych. Algorytm 2 Zbuduj bazę układów optymalnych o maksymalnie k bramkach Wejście: k: maksymalna liczba bramek w generowanych optymalnych układach tworzących bazę, G: zbiór wszystkich dostępnych bramek odwracalnych. Wyjście: H = {H 0,..., H k }: hierarchia tablic mieszających H i, każda zawiera postacie kanoniczne wszystkich funkcji odwracalnych posiadających optymalne układy odwracalne o i bramkach (kluczem i wartością jest funkcja odwracalna). procedure ZbudujBaze(k) dodaj TOŻSAMOŚĆ do tablicy mieszającej H 0 for i 1 to k do for all f H i 1 {a 1 a H i 1 } do for all λ G do f λ funkcja odwracalna realizowana przez bramkę λ h f f λ h postać kanoniczna funkcji h if h / H then dodaj h do tablicy mieszającej H i end if end for end for end for end procedure 49
50 W pracy [Gol10] po raz pierwszy opisana została metoda konstrukcji układów optymalnych dla dowolnej funkcji odwracalnej czterech zmiennych. Zaprezentowana metoda pozwoliła na wygenerowanie bazy układów optymalnych do 9 bramek włącznie w mniej niż 3 godziny. Wykorzystując taką bazę układów optymalnych, konstruowanie układu optymalnego dla dowolnej funkcji czterech zmiennych wymagało średnio mniej niż 0,001 sekundy. Autorzy pokazali również rozkład liczby bramek w układach optymalnych dla wszystkich 16! funkcji odwracalnych czterech zmiennych (tabela 5.2) oraz udowodnili, że tylko 144 funkcje odwracalne wymagają aż 15 bramek w układach optymalnych, podczas gdy wszystkie pozostałe funkcje wymagają mniej bramek. Z uzyskanych rozkładów wynika, że do praktycznego konstruowania optymalnych układów dla dowolnej funkcji czterech zmiennych wystarczy baza układów optymalnych do 7 bramek (optymalne układy wymagające 15 bramek można stablicować). Taka baza zajmuje jedynie 256MiB. Jest to zaskakujący wynik, biorąc pod uwagę rozmiar przestrzeni wszystkich rozwiązań hipotetyczna baza z zapisanymi wszystkimi układami optymalnymi dla wszystkich funkcji odwracalnych czterech zmiennych zajęłaby w najbardziej zwięzłej postaci ponad 100TiB [Gol10, Gol12]. Tabela 5.2. Rozkład liczby bramek w układach optymalnych dla wszystkich funkcji odwracalnych czterech zmiennych [Gol12]. liczba bramek liczba funkcji odwracalnych liczba postaci kanonicznych razem:
51 5.6. Dalsza redukcja ilości pamięci wymaganej przez algorytm Autorzy pracy [Gol10] pokazali, że możliwa jest również implementacja, która w tablicach mieszających przechowuje jedynie same funkcje odwracalne. Taka implementacja zmniejsza rozmiar tablic mieszających, jednak czas działania algorytmu konstruującego układ optymalny jest większy. Otóż dzieje się tak ze względu na konieczność przeglądania wszystkich bramek odwracalnych w każdym kroku algorytmu, wyznaczającym kolejną bramkę układu. Układ optymalny jest w takim przypadku konstruowany poprzez obliczenie funkcji resztowej dla każdej z dostępnych bramek odwracalnych. Następnie rekurencyjnie wykonywane jest konstruowanie optymalnego układu dla tej funkcji resztowej, która posiada układ optymalny o jedną bramkę krótszy. Szczegóły takiej implementacji przedstawione są w ramce Algorytm 3. Baza optymalnych układów składająca się z takich tablic mieszających została wygenerowana w ramach przeprowadzonych w niniejszej rozprawie eksperymentów obliczeniowych i stała się podstawą algorytmów opisanych w następnych rozdziałach. Parametry skonstruowanych tablic mieszających takiej biblioteki układów optymalnych pokazane są w tabeli 5.3. Przedstawiona biblioteka została skonstruowana na komputerze IBM xseries x3650 z procesorem 8x8-core Intel Xeon 6C X GHz, 320 GiB pamięci RAM, działającym pod kontrolą systemu operacyjnego Linux RedHat RHEL6 (64-bit) z wirtualizacją KVM (maszyna wirtualna miała do dyspozycji 62 logiczne procesory i 300 GiB pamięci RAM), nazywanym w dalszej części pracy Serwerem 1. Przedstawione w pracach [Gol10, Gol12] podejście oraz algorytmy 1-3 zostały rozwinięte w ramach niniejszej rozprawy i zastosowane do opracowania algorytmów redukcji kosztu kwantowego, opisanych w kolejnych rozdziałach. Tabela 5.3. Parametry tablic mieszających H i tworzących bazę układów odwracalnych, skonstruowanych z bramek NCT, optymalnych pod względem liczby bramek. i liczba funkcji odwracalnych liczba postaci kanonicznych rozmiar tablicy liczba prób wypełnienie czas B 1 25,0% 0s B 3 51,6% 0s KiB 57 83,0% 0s KiB 88 79,8% 0s KiB ,8% 2s MiB ,7% 29s MiB 77 58,0% 456s GiB ,9% 6 633s GiB 81 51,4% s razem: ,3GiB s 51
52 Algorytm 3 Skonstruuj optymalny układ odwracalny dla funkcji odwracalnej f Wejście: f: funkcja odwracalna, G: zbiór wszystkich dostępnych bramek odwracalnych, H = {H 0,..., H k }: hierarchia tablic mieszających H i, każda zawiera optymalne układy odwracalne o i bramkach dla wszystkich funkcji odwracalnych w postaci kanonicznej (kluczem i zawartością jest jedynie funkcja odwracalna realizująca układ o danej liczbie bramek). Wyjście: Optymalny układ odwracalny C realizujący funkcję f. procedure ZnajdźUkładOptymalny(f) if f = TOŻSAMOŚĆ then return C Ø end if f postać kanoniczna funkcji f if f H then l i f H i return C UkładOptymalnyZBazy(f, l) else for i 1 to k do for all g H i do h f g 1 h postać kanoniczna funkcji h if h H k then C g UkładOptymalnyZBazy(g, i) C h UkładOptymalnyZBazy(h, k) return C C h C g end if end for end for end if return Błąd: układ optymalny dla f wymaga >2k bramek end procedure procedure UkładOptymalnyZBazy(f, a) for all λ G do h f f λ if h = TOŻSAMOŚĆ then return C λ end if h postać kanoniczna funkcji h if h H a 1 then return C λ UkładOptymalnyZBazy(h, a 1) end if end for end procedure 52
53 6. Redukcja kosztu kwantowego nowe możliwości Przedstawiony w poprzednim rozdziale algorytm 1 do konstruowania odwracalnych układów optymalnych został zaprojektowany uwzględniając jedynie koszt układu będący liczbą bramek odwracalnych w układzie. Większość dotychczas zaproponowanych technologii realizacji układów odwracalnych jest związana z badaniami nad układami kwantowymi. Więcej informacji o bramkach i układach kwantowych podano w rozdziale 3. Z punktu widzenia praktycznych realizacji układów odwracalnych istotne jest minimalizowanie kosztu kwantowego układu, a nie tylko minimalizowanie liczby jego bramek. Koszty kwantowe podstawowych bramek z rodziny Toffoliego podane zostały w podrozdziałach 3.8 i W tym rozdziale przyjęte zostały koszty kwantowe podane w tabeli 3.3 z uwzględnieniem redukcji kosztu kwantowego wynikającego z zastosowania bramek Peresa (podrozdział 3.9) Motywacja W pracach [Ker07, Szy08] przeprowadzona została analiza optymalnych układów odwracalnych trzech zmiennych zbudowanych z bramek z biblioteki NCT dla dwóch funkcji kosztu: liczby bramek w układzie oraz całkowitego kosztu kwantowego układu. Metodą wyczerpującego przeszukiwania wygenerowane zostały bazy wszystkich optymalnych układów dla wszystkich funkcji odwracalnych trzech zmiennych. Zaobserwowano, że dla pewnych funkcji odwracalnych istnieje więcej niż jeden układ optymalny. Dla przykładu, dla kosztu określonego liczbą bramek w układzie odwracalnym ponad 50% funkcji trzech zmiennych posiada więcej niż 10 wariantów układów optymalnych, zaś ok. 5% funkcji posiada ponad 100 wariantów układów optymalnych. Dla niektórych funkcji liczba wariantów układu optymalnego przekracza nawet Porównując układy optymalne dla obu omawianych funkcji kosztu, zauważono, że dla pewnych funkcji odwracalnych układy optymalne pod względem kosztu kwantowego zbudowane są ze znacznie większej liczby bramek niż układy optymalne pod względem liczby bramek. Rys. 6.1 przedstawia dwa układy realizujące pewną funkcję odwracalną pierwszy układ jest optymalny pod względem liczby bramek, drugi kosztu kwantowego. Z tego przykładu widać wyraźnie, że układ, który ma tylko o jedną bramkę więcej ma istotnie mniejszy koszt kwantowy. Dla funkcji realizowanej przez te układy wydłużenie układu o jedną 53
54 bramkę spowodowało redukcję kosztu kwantowego z 24 do 13 (czyli o 45%), przy założeniu, że uwzględnia się również redukcję kosztu kwantowego wynikającą ze stosowania bramek Peresa. a) liczba bramek: 8, koszt kwantowy: 24. b) liczba bramek: 9, koszt kwantowy: 13. Rysunek 6.1. Dwa układy odwracalne realizujące tą samą funkcję odwracalną trzech zmiennych, układ a) jest optymalny pod względem liczby bramek, zaś układ b) pod względem kosztu kwantowego. Przedstawiona własność układów optymalnych pod względem kosztu kwantowego występuje w układach o większej liczbie bramek. Przeprowadzona analiza wykazała również, że układy odwracalne realizujące daną funkcję f, skonstruowane z tej samej liczby bramek mogą znacznie różnić się kosztem kwantowym. Różnica między najmniejszą wartością kosztu kwantowego, a największą powiększa się wraz ze wzrostem liczby bramek układów realizujących daną funkcję. Przykład takiej zależności, dla układów realizujących funkcję czterech zmiennych nth_prime4_inc [Mas13] pokazany jest w tabeli 6.1. Tabela 6.1. Porównanie kosztu kwantowego wszystkich układów realizujących funkcję odwracalną nth_prime4_inc [Mas13] skonstruowanych z 11, 12, 13 i 14 bramek NCT [Szy11b]. liczba bramek liczba optymalnych układów minimalny koszt kwantowy maksymalny koszt kwantowy Konstruowanie 4-bitowych układów odwracalnych o niższym koszcie kwantowym Omówiony w poprzednim rozdziale algorytm 1 konstruuje dla zadanej funkcji jeden z układów optymalnych pod względem liczby bramek. Bezpośrednio nie może być więc zastosowany do konstruowania układów optymalnych pod względem kosztu kwantowego. 54
55 Jednak z powyżej przedstawionego porównania układów optymalnych pod względem kosztu kwantowego z układami optymalnymi pod względem liczby bramek wynika, że redukcję kosztu kwantowego w algorytmach opartych na przeszukiwaniu można uzyskać konstruując więcej niż jeden układ o danej liczbie bramek, a następnie wybierając układ o najmniejszym koszcie kwantowym. Przedstawiony w poprzednim rozdziale algorytm 3 jest szczególnym przypadkiem ogólnego sposobu konstruowania układów metodą przeszukiwania, szczegółowo opisanej w [Szy10c]. Konstruowanie układów metodą przeszukiwania polega na zbudowaniu drzewa przeszukiwań, w którym każdy węzeł odpowiada wyborowi kolejnej bramki w układzie odwracalnym. Pełne drzewo przeszukiwań dla skonstruowania układu zbudowanego z l bramek odwracalnych z biblioteki zawierającej k bramek ma l k węzłów. Konstruowanie oraz przeszukiwanie pełnego drzewa jest bardzo nieefektywne, dlatego w metodzie tej wprowadza się heurystyki odcinające te węzły, które nie prowadzą do zbudowania poszukiwanego układu [Szy08, Szy10c]. Definicja 6.1. Częściową realizacją funkcji odwracalnej nazywam dowolną kaskadę bramek, która po dodaniu kolejnych bramek odwracalnych będzie łącznie realizowała zadaną funkcję odwracalną. Definicja 6.2. Funkcja resztowa to funkcja, jaką ma zrealizować układ bramek, który należy dodać do częściowej realizacji funkcji w celu uzyskania układu realizującego zadaną funkcję odwracalną. Ważne cechy funkcji resztowej: 1. Dla układu bramek nie zawierającego ani jednej bramki ( pusty układ bramek ) funkcja resztowa jest równa funkcji odwracalnej, jaka ma być zrealizowana w układzie. 2. Dla układu realizującego zadaną funkcję odwracalną funkcja resztowa jest równa funkcji tożsamościowej. Definicja 6.3. Miara złożoności to funkcja, która każdej funkcji odwracalnej przyporządkowuje pewną liczbę, w taki sposób, aby w pełnym drzewie przeszukiwań odciąć węzły nie prowadzące do skonstruowania układu realizującego zadaną funkcję. Idealna miara złożoności przyporządkowuje wartości monotonicznie malejące funkcjom resztowym po każdej kolejnej bramce w optymalnym układzie realizującym daną funkcję odwracalną oraz wartości malejące niemonotonicznie funkcjom resztowym po każdej kolejnej bramce dla układów realizujących zadaną funkcję odwracalną, ale nie będącymi optymalnymi według zadanych kryteriów jego optymalności. Schemat algorytmu konstruowania układu odwracalnego opartego na przeszukiwaniu jest następujący: 1. Rozpocznij od układu C, nie zawierającego żadnej bramki. 55
56 2. Dla dostępnego zbioru bramek odwracalnych dodaj po kolei po jednej bramce λ do obecnego układu bramek C i oblicz funkcje resztowe f λ. Dla każdej z nich oblicz miarę złożoności funkcji resztowej M(f λ ). 3. Dla każdej z bramek λ, dla której miara złożoności M(f λ ) jest mniejsza niż miara złożoności M(f), dodaj bramkę λ do rozpatrywanego układu C. Powtórz kroki 2 i 3, aż do momentu, w którym funkcja resztowa będzie funkcją tożsamościową. Jeżeli istnieje więcej niż jedna bramka λ, dla której wartość miary złożoności M(f λ ) jest mniejsza od miary złożoności M(f), kroki 2, 3 powtórz równolegle dla wszystkich takich bramek. Znalezienie takiej kaskady bramek, dla którego funkcja resztowa jest równa funkcji tożsamościowej oznacza znalezienie układu realizującego zadaną funkcję odwracalną. Pozostałe równoległe kroki algorytmu mogą być dokończone w celu ewentualnego znalezienia pozostałych układów, które byłyby lepsze według założonych dodatkowych kryteriów. Powyższy algorytm zaprezentowany jest również w postaci pseudokodu jako algorytm 4. Algorytm 4 Skonstruuj układ odwracalny realizujący funkcję f metodą przeszukiwania Wejście: M(f): funkcja będąca miarą złożoności funkcji odwracalnej, G: zbiór wszystkich dostępnych bramek kwantowych. Wyjście: S: zbiór odwracalnych układów realizujących funkcję f. procedure SkonstruujUkłady(f) S Ø KonstruujUkładyRekurencyjnie(f, Ø, S) return S end procedure procedure KonstruujUkładyRekurencyjnie(f, C, S) m f M(f) for all λ G do g f λ f m g M(g) C C λ if g = TOŻSAMOŚĆ then S S C end if if m g < m f then KonstruujUkładyRekurencyjnie(g, C, S) end if end for end procedure 56
57 W pracy [Szy10c] pokazano, że jeżeli jako miarę złożoności M(f) przyjmiemy liczbę bramek w układzie optymalnym, to otrzymamy algorytm, który konstruuje wszystkie układy optymalne względem kosztu będącego liczbą bramek. Jako miara złożoności funkcji resztowej M(f) wybrana została funkcja określająca liczbę bramek w układzie optymalnym, zastosowana w algorytmie 3, opisana rozdziale 5.6. Przedstawiony algorytm skonstruuje jednak tylko wszystkie układy optymalne pod względem liczby bramek. W celu uzyskania algorytmu konstruującego układy o jak najniższym koszcie kwantowym potrzebne jest rozszerzenie algorytmu o dodatkowy krok. Dla wszystkich uzyskanych układów wyznaczane są ich koszty kwantowe, a jako układ wynikowy wybierany jest ten, którego koszt kwantowy jest najmniejszy. W celu skonstruowania układów o większej niż minimalna liczbie bramek wprowadzona została heurystyka, która po raz pierwszy zaprezentowana została w pracy [Szy11b]. Zastosowanie tej heurystyki pozwoliło na uzyskanie dalszej redukcji kosztu kwantowego w konstruowanych układach. Heurystyka ta zwiększa wartości miary złożoności M(f) w pierwszej iteracji algorytmu o pewną liczbę naturalną a. Prowadzi to do konstruowania wszystkich układów odwracalnych realizujących funkcję f składających się z opt(f) + a bramek, gdzie opt(f) oznacza minimalną liczbę bramek potrzebnych do skonstruowania układu odwracalnego realizującego funkcję f (układu optymalnego pod względem liczby bramek). Algorytm wykorzystujący taką heurystykę jest wykonywany kolejno dla a = 0, 1, 2,..., zaś wśród skonstruowanych układów wybierany jest ten o najniższym koszcie kwantowym. Dzięki tej heurystyce algorytm w dalszym ciągu wykorzystuje tą samą, już wcześniej przygotowaną bazę układów optymalnych pod względem liczby bramek. Przedstawiony algorytm może być łatwo zrównoleglony w celu szybszego skonstruowania poszukiwanego układu, gdyż każda z gałęzi w drzewie przeszukiwań może być analizowana osobno. Ponieważ jednak dla coraz większej wartości parametru a otrzymywane jest coraz bardziej rozbudowane drzewo przeszukiwań i rozpatrywane są coraz większe zbiory układów, w podejściu tym wskazane jest wprowadzenie ograniczenia czasowego i przerwanie algorytmu po upływie zadanego czasu, jeżeli przeglądanie drzewa przeszukiwań nie zakończyło się. Pełny pseudokod powyższej metody konstruowania układów odwracalnych podany jest w ramce jako algorytm 5. Algorytm 5 jest algorytmem heurystycznym i nie musi prowadzić do skonstruowania układów odwracalnych optymalnych pod względem kosztu kwantowego. Konstruuje on jedynie układy odwracalne, którą są minimalne pod względem kosztu kwantowego, ale budowane z zadanej liczby bramek. Na podstawie zaobserwowanych wyników eksperymentalnych, opisanych w następnym podrozdziale, można zauważyć, że dla pewnej wartości parametru a, nie następuje już zmniejszanie kosztu kwantowego otrzymywanych układów. Nie oznacza to jednak, że układy o jeszcze większej liczbie bramek i niższym koszcie kwantowym nie istnieją. 57
58 Algorytm 5 Skonstruuj układy odwracalne realizujące funkcję f o danej liczbie bramek Wejście: f: funkcja odwracalna, a: liczba naturalna (określa o ile bramek konstruowany układ jest dłuższy od optymalnego), G: zbiór wszystkich dostępnych bramek odwracalnych, H = {H 0,..., H k }: hierarchia tablic mieszających H i, każda zawiera optymalne układy odwracalne o i bramkach dla wszystkich funkcji odwracalnych w postaci kanonicznej (kluczem i zawartością jest funkcja odwracalna realizująca układ o danej liczbie bramek), QC(C): funkcja obliczająca koszt kwantowy układu odwracalnego. Wyjście: S: zbiór odwracalnych układów realizujących funkcję f, C: układ realizujący funkcję f o najniższym koszcie kwantowym. procedure SkonstruujUkłady(f, a) S Ø l LiczbaBramek(f) + a KonstruujUkładyRekurencyjnie(f, Ø, S, l) return C C i C i S, QC(C) = min(qc(c i )) end procedure procedure KonstruujUkładyRekurencyjnie(f, C, S, l) for all λ G do g f λ f l g LiczbaBramek(g) C C lambda if g = TOŻSAMOŚĆ then S S C else if l g < l then KonstruujUkładyRekurencyjnie(g, C, S, l g ) end if end for end procedure procedure LiczbaBramek(f) f postać kanoniczna funkcji f if f H then return l i f H i else for i 1 to k do for all g H i do h f g 1 h postać kanoniczna funkcji h if h H k then return k + i end if end for end for end if return Błąd: układ optymalny dla f wymaga >2k bramek end procedure 58
59 6.3. Wyniki obliczeń przeprowadzonych dla funkcji czterech zmiennych W ramach niniejszej pracy przeprowadzone zostały eksperymenty obliczeniowe polegające na znalezieniu układów odwracalnych o jak najniższym koszcie kwantowym dla znanych z literatury funkcji odwracalnych czterech zmiennych. Koszty kwantowe układów uzyskanych w wyniku działania przedstawionego heurystycznego algorytmu dla takich funkcji odwracalnych pokazane są w tabeli 6.2. Działanie algorytmu zbadane zostało na funkcjach odwracalnych będących benchmarkami w pracach [Gol10, Gol12], pochodzących z biblioteki RevLib [Wil08a] i biblioteki benchmarków [Mas13] oraz innych funkcjach odwracalnych 4 zmiennych, dla których w publikacjach budowane były układy odwracalne z bramek NCT. Funkcje rd32 i shift4 (również wymienione w pracach [Gol10, Gol12]) zostały pominięte, gdyż są one na tyle proste, że znane były dla nich układy optymalne pod względem kosztu kwantowego. Obliczenia przeprowadzone zostały na komputerze Serwer 1, z wykorzystaniem bazy układów optymalnych pod względem liczby bramek, zawierającej układy do 9 bramek (rozdział 5.6). Szczegółowe wyniki dla każdej z analizowanych funkcji odwracalnych, zawierające liczbę znalezionych układów odwracalnych, ich zakresy wartości kosztu kwantowego oraz listę skonstruowanych układów przedstawione są w dodatku A w tabeli A.1. Wyniki te zostały również częściowo opublikowane w pracy [Szy11b]. Jak można zauważyć z tabeli A.1, wartości kosztu kwantowego dla wszystkich układów o minimalnej liczbie bramek (parametr a algorytmu równy zero) realizujących badane funkcje odwracalne, należą do stosunkowo szerokich przedziałów. Już sam fakt wybrania układu o najmniejszym koszcie kwantowym ze wszystkich układów optymalnych pod względem liczby bramek, prowadzi do znalezienia układów o koszcie kwantowym znacząco mniejszym niż układy dotychczas znane z literatury. Układy skonstruowane dla pięciu funkcji odwracalnych 4 zmiennych, które wymagają aż 15 bramek odwracalnych do skonstruowania układu optymalnego charakteryzują się o 34% niższym kosztem kwantowym od układów znanych dotychczas z literatury. Tak znacząca redukcja kosztu kwantowego wynika z bardzo dużej liczby układów realizujących te funkcje (od dla funkcji 4b15g_5 do dla funkcji 4b15g_1). Otrzymane układy charakteryzują się znacznie mniejszym kosztem kwantowym od wcześniej znanych. Dla rozpatrywanych funkcji odwracalnych uzyskana została redukcja kosztu kwantowego średnio o 44,9%. W przypadku funkcji mini_alu, gyang, dmasl, App2.2 oraz App2.11 koszt kwantowy został zmniejszony nawet o ponad 60%. W przypadku funkcji imark i oc5 można zaobserwować, że zwiększanie liczby bramek układu powyżej pewnej wartości nie powoduje zmniejszania kosztu kwantowego. Przeprowadzone obliczenia pokazały, że w układach o niskim koszcie kwantowym w wielu przypadkach nie występują bramki Toffoliego o trzech sygnałach sterujących, które mają wysoki, w porównaniu z pozostałymi bramkami, koszt kwantowy. W układach o najniższej wartości kosztu kwantowego zauważyć można również bardzo częste występowanie bramek Peresa 59
60 Tabela 6.2. Porównanie kosztu kwantowego układów z literatury oraz układów uzyskanych w wyniku działania algorytmu 5). Szczegóły układów podane są w dodatku A w tabeli A.1. układ znany z literatury o najniższym QC uzyskany układ o najniższym koszcie kwantowym (algorytm 5) funkcja źródło GC QC GC QC QC redukcja QC 4b15g_1 [Gol10] ,3% 4b15g_2 [Gol10] ,5% 4b15g_3 [Gol10] ,5% 4b15g_4 [Gol10] ,5% 4b15g_5 [Gol10] ,6% 4_49 [Gol10] ,5% 4bit87 [Gol10] ,0% decode42 [Gol10] ,7% hwb4 [Gol10] ,5% imark [Gol10] ,5% mperk [Gol10] ,3% oc5 [Gol10] ,8% oc6 [Gol10] ,0% oc7 [Gol10] ,1% oc8 [Gol12] ,2% nth_prime4_inc [Gol12] ,0% primes4 [Gol10] ,6% mini_alu [Wil08a] ,2% aj_e11 [Wil08a] ,7% mod10_171 [Wil08a] ,9% mod10_176 [Wil08a] ,8% 4_49+hwb4 [Li08b] ,3% msaee [Sae07b] ,8% gyang [Yan11] ,0% dmasl [Mas11] ,3% App2.2 [You11] ,7% App2.11 [You11] ,3% średnio: 12,3 50,2 12,3 27,7-22,6-44,9% 60
61 (prostej i odwrotnej), które istotnie przyczyniają się do redukcji kosztu kwantowe całego układu. Najlepiej widać to na przykładzie funkcji mini_alu, dla której układ o najniższym koszcie kwantowym zbudowany jest z czterech bramek Peresa o sumarycznym koszcie kwantowym wynoszącym jedynie 16 jednostek. Otrzymane wyniki pokazały, że powszechnie stosowane w literaturze podejście do konstruowania układów odwracalnych polegające w pierwszej kolejności na konstruowaniu układów o jak najmniejszej liczbie bramek, a dopiero potem uwzględnianiu konkretnych ograniczeń technologicznych (jakim np. jest koszt kwantowy), prowadzi do układów które są dalekie od optymalnych. Zaawansowanie prac nad realizacją fizycznych układów kwantowych wskazuje jednak, że technologia kwantowa będzie odgrywała istotną rolę w przyszłości i poszukiwanie metod konstruowania układów o jak najniższym koszcie kwantowym jest ważnym problemem badawczym. Porównanie układów, które zostały otrzymane w wyniku działania przedstawionego algorytmu z układami znanymi z literatury, które były konstruowane pod kątem jak najmniejszej liczby bramek, pokazuje, że kryterium kosztu kwantowego powinno być uwzględniane podczas całego procesu konstruowania układu. Projektowanie układów odwracalnych powinno uwzględniać istotną redukcję kosztu kwantowego wynikającą ze stosowania bramek Peresa. Konsekwencje nieuwzględniania kosztu kwantowego od początku procesu projektowania układów odwracalnych omówione są również w pracy [Ker12] Bazy układów optymalnych pod względem kosztu kwantowego Algorytm opisany w poprzednim rozdziale oraz jego rozszerzenie opisane powyżej wykorzystują bazę układów optymalnych pod względem liczby bramek, zbudowanych z bramek NCT. W celu znalezienia układów o najmniejszym koszcie kwantowym naturalne jest skonstruowanie i użycie bazy układów optymalnych właśnie pod względem kosztu kwantowego. W tym celu algorytm 2, opisany w podrozdziale 5.5 należy zmodyfikować tak, aby uwzględniał koszt kwantowy poszczególnych bramek. W celu uwzględnienia redukcji wynikającej ze stosowania bramki Peresa i odwrotnej bramki Peresa, bramki te należy dodać do biblioteki używanych bramek. Główne różnice w algorytmie występują w sposobie konstruowania tablic H i, w których przechowywane są układy optymalne mające koszt kwantowy równy i. Tablice te, podobnie jak w oryginalnym algorytmie są konstruowane kolejno dla kolejnych wartości i poczynając od 1, jednak w tym przypadku każda tablica H i jest konstruowana poprzez dołączanie po kolei wszystkich bramek dostępnych w przyjętej bibliotece bramek odwracalnych do wszystkich układów optymalnych znajdujących się w tablicach H i k, gdzie k jest równe kosztowi kwantowemu danej bramki. Na komputerze Serwer 1, na którym prowadzone były obliczenia, możliwe było skonstruowanie bazy układów optymalnych pod względem kosztu kwantowego do wartości 21 jednostek. Schemat tego algorytmu podany jest w ramce Algorytm 61
62 6, a parametry skonstruowanych tablic mieszających tworzących bazę układów optymalnych podane są w tabeli 6.3. Przedstawione rozszerzenie algorytmu zostało opublikowane w pracy [Szy12c]. Algorytm 6 Zbuduj bazę układów optymalnych pod względem kosztu kwantowego Wejście: k: maksymalna wartość kosztu kwantowego w generowanych optymalnych układach tworzących bazę, G: zbiór wszystkich dostępnych bramek odwracalnych, QC(λ): koszt kwantowy danej bramki odwracalnej. Wyjście: H = {H 0,..., H k }: hierarchia tablic mieszających H i, każda zawiera postacie kanoniczne wszystkich funkcji odwracalnych posiadających optymalne układy odwracalne o koszcie kwantowym wynoszącym i jednostek (kluczem i wartością jest funkcja odwracalna). procedure ZbudujBaze(k) dodaj TOŻSAMOŚĆ do tablicy mieszającej H 0 for i 1 to k do for all λ G do c = QC(λ) if i c 0 then for all f H i c {a 1 a H i c } do h f f λ h postać kanoniczna funkcji h if h / H then dodaj h do tablicy mieszającej H i end if end for end if end for end for end procedure Algorytm opisany w rozdziale 5.1, który konstruuje układ optymalny z dwóch optymalnych podukładów może być również zastosowany z bazą układów optymalnych pod względem kosztu kwantowego. Jedyną różnicą względem konstruowania układów optymalnych pod względem liczby bramek jest to, że układy otrzymane tą metodą mogą nie być układami optymalnymi pod względem kosztu kwantowego. Układy te są konstruowane z bramek kwantowych dostępnych w przyjętej bibliotece bramek, a dodanie pewnych bramek odwracalnych do konstruowanego układu powoduje wzrost kosztu kwantowego o więcej niż jedną jednostkę. Może zatem istnieć taki układ optymalny, którego nie można skonstruować jako kaskadę dwóch układów optymalnych, których koszty kwantowe byłyby równe wartościom k i j określonym przez algorytm, gdyż taki podział przypadałby wewnątrz bramki odwracalnej o koszcie kwantowym większym od 1. Przykład 62
63 Tabela 6.3. Parametry tablic mieszających H i tworzących bazę układów odwracalnych optymalnych pod względem kosztu kwantowego, zbudowanych z bramek NCT i liczba funkcji odwracalnych liczba postaci kanonicznych rozmiar tablicy liczba prób wypełnienie czas B 1 25,0% 0s B 4 56,2% 0s B 5 62,5% 0s KiB 29 69,1% 0s KiB 30 63,2% 0s KiB ,7% 0s KiB 33 63,6% 0s KiB 38 55,0% 0s KiB 32 55,2% 2s MiB ,5% 8s MiB ,4% 23s MiB 43 51,4% 51s MiB 54 52,6% 141s MiB ,3% 580s MiB 95 63,4% 1 690s MiB ,3% 3 044s GiB ,6% 8 217s GiB ,0% s GiB ,8% s GiB ,5% s razem: ,9GiB s układu optymalnego pod względem kosztu kwantowego, ale niemożliwego do skonstruowania z dwóch części pokazany jest na rys Układ składa się z trzech bramek odwracalnych o kosztach kwantowych wynoszących kolejno 13, 5 i 1. Koszt kwantowy całego układu wynosi 19 jednostek (bez uwzględniania bramek Peresa). Układu tego jednak nie można skonstruować wykorzystując bazę układów optymalnych o koszcie kwantowym nawet do 12 jednostek, gdyż nie jest możliwe podzielenie układu na dwa podukłady o kosztach kwantowych wynoszących mniej niż 13 jednostek (koszt kwantowy 4-bitowej bramki Toffoliego). Dla analizowanych benchmarków odwracalnych metodą tą nie udało się skonstruować układów o mniejszym koszcie kwantowym niż te otrzymane w rozdziale Wyniki dla bramek NCT ze sterowaniem mieszanym Zarówno oryginalny algorytm opisany w poprzednim rozdziale, jak i dotychczas opisane jego rozszerzenia konstruowały układy odwracalne z bramek należących do standardowej biblioteki NCT, czyli do uogólnionych bramek Toffoliego ze sterowaniem pozytywnym. 63
64 Rysunek 6.2. Przykład optymalnego układu odwracalnego (koszt kwantowy: = 19 jednostek), którego nie można podzielić na dwa układy o kosztach kwantowych mniejszych niż 13 jednostek. Przedstawione algorytmy mogą być również użyte z szerszą biblioteką bramek odwracalnych biblioteką uogólnionych bramek Toffoliego ze sterowaniem mieszanym (pozytywnym, częściowo pozytywnym i negatywnym oraz wyłącznie negatywnym), wprowadzoną w rodziale 2.3. W ramach przeprowadzonych eksperymentów obliczeniowych [Szy12c, Szy13b] zbudowane zostały również bazy układów optymalnych zbudowanych z bramek NCT ze sterowaniem mieszanym. Parametry tych baz układów optymalnych podane są w tabelach 6.4 i 6.5. Następnie bazy te zostały wykorzystane do skonstruowania układów o jak najniższym koszcie kwantowym dla tych samych funkcji odwracalnych, które były rozpatrywane w rozdziale 6.3. Otrzymane układy podane są w tabeli A.2 w dodatku A. W tabeli 6.6 zestawione są wartości liczby bramek oraz kosztu kwantowego dla otrzymanych układów budowanych z bramek NCT ze sterowaniem mieszanym oraz układów budowanych z oryginalnych bramek NCT (ze sterowaniem wyłącznie pozytywnym) z rodziału 6.3 (odpowiednie układy wybrane są z tabel A.1 oraz A.2). W kolejnych kolumnach tabeli podane są: nazwy funkcji odwracalnej, oraz liczba bramek i koszt kwantowy dla a) układów znanych z literatury, b) układów NCT o minimalnej liczbie bramek, c) układów NCT najmniejszym koszcie kwantowym, d) układów m-nct o minimalnej liczbie bramek oraz e) układów m-nct o najmniejszym koszcie kwantowym. Tabela 6.4. Parametry tablic mieszających H i tworzących bazę układów odwracalnych optymalnych pod względem liczby bramek, skonstruowanych z bramek NCT o sterowaniu mieszanym i liczba funkcji odwracalnych liczba postaci kanonicznych rozmiar tablicy liczba prób wypełnienie czas B 1 62,5% 0s KiB 51 95,3% 0s KiB ,0% 1s MiB ,6% 4s MiB ,1% 195s GiB ,7% 5 877s GiB % s razem: GiB s 64
65 Tabela 6.5. Parametry tablic mieszających H i tworzących bazę układów odwracalnych optymalnych pod względem kosztu kwantowego, skonstruowanych z bramek NCT o sterowaniu mieszanym i liczba funkcji odwracalnych liczba postaci kanonicznych rozmiar tablicy liczba prób wypełnienie czas B 1 25,0% 0s B 4 56,2% 0s B 5 62,5% 0s KiB 29 68,8% 0s KiB 30 60,8% 0s KiB 56 80,9% 0s KiB 50 69,3% 0s KiB 95 87,1% 0s KiB 41 65,8% 1s KiB 87 73,2% 1s MiB 64 58,0% 6s MiB 55 54,6% 18s MiB 25 48,5% 40s MiB ,8% 52s MiB ,8% 93s MiB ,8% 422s MiB ,1% 1 686s MiB ,0% 4 113s MiB ,8% 5 692s MiB ,4% 6 528s GiB ,6% s GiB ,6% s GiB ,1% s razem: ,9GiB s Z przedstawionych tabel widać, że układy odwracalne konstruowane z bramek NCT ze sterowaniem mieszanym charakteryzują się zauważalnie mniejszą liczbą bramek. Wynika to z tego, że pojedyncza bramka Toffoliego z mieszanym sterowaniem realizuje funkcję odwracalną, która w przypadku biblioteki NCT wymagałaby dwóch lub wiecej bramek posiadających jedynie sterowanie pozytywne. Koszt kwantowy układów zbudowanych z biblioteki m-nct przy użyciu algorytmu 5 jest większy niż dla układów zbudowanych z biblioteki NCT. Układy te jednak zbudowane są z mniejszej liczby bramek, co powoduje, że układów m-nct o danej liczbie bramek jest znacznie więcej niż układów NCT o tej samej liczbie bramek. Oznacza to, że drzewo przeszukiwań w przypadku biblioteki m-nct jest znacznie większe i w każdym z poziomów posiada znacznie więcej węzłów. Czas potrzebny do skonstruowania wszystkich układów o zadanej liczbie bramek jest zatem znacznie większy w przypadku biblioteki m-nct. Oznacza to, że przedstawiona metoda nie pozwala jednak na efektywne konstruowanie układów, 65
66 Tabela 6.6. Porównanie liczby bramek (GC) oraz kosztu kwantowego (QC) układów z literatury oraz układów uzyskanych w ramach tej pracy. W kolejnych kolumnach tabeli podane są: nazwy funkcji odwracalnej oraz liczba bramek i koszt kwantowy dla a) układów znanych z literatury, b) układów NCT o minimalnej liczbie bramek, c) układów NCT najmniejszym koszcie kwantowym, d) układów m-nct o minimalnej liczbie bramek oraz e) układów m-nct o najmniejszym koszcie kwantowym. biblioteka NCT biblioteka m-nct a) układy z literatury b) min. GC c) min. QC d) min. GC e) min. QC funkcja źródło GC QC GC QC GC QC GC QC GC QC 4b15g_1 [Gol10] b15g_2 [Gol10] b15g_3 [Gol10] b15g_4 [Gol10] b15g_5 [Gol10] _49 [Gol10] bit87 [Gol10] decode42 [Gol10] hwb4 [Gol10] imark [Gol10] mperk [Gol10] oc5 [Gol10] oc6 [Gol10] oc7 [Gol10] oc8 [Gol12] nth_prime4_inc [Gol12] primes4 [Gol10] mini_alu [Wil08a] aj_e11 [Wil08a] mod10_171 [Wil08a] mod10_176 [Wil08a] _49+hwb4 [Li08b] msaee [Sae07b] gyang [Yan11] dmasl [Mas11] App2.2 [You11] App2.11 [You11] średnio: 12,3 50,2 10,9 33,8 12,3 27,7 8,1 35,5 9,9 28,7 66
67 gdy biblioteka bramek jest bardzo liczna. Dla wielu analizowanych funkcji odwracalnych, ze względu na ograniczenie czasowe narzucone na prowadzone obliczenia, nie było możliwe skonstruowanie układów o takiej samej liczbie bramek co skonstruowane wcześniej układy o najmniejszym koszcie kwantowym, zbudowane z bramek NCT Redukcja kosztu kwantowego w układach o więcej niż czterech liniach Metoda przedstawiona w podrozdziale 6.2 ma zastosowanie jedynie do konstruowania układów odwracalnych dla funkcji czterech zmiennych. Metoda ta nie jest skalowalna, gdyż zbudowanie bazy optymalnych układów dla funkcji odwracalnych większej liczby zmiennych nie jest możliwe ze względu na zbyt dużą ilość pamięci potrzebnej do przechowywania takiej bazy. Znane są jednak metody konstruowania układów odwracalnych, które pozwalają na konstruowanie układów dla funkcji odwracalnych wielu zmiennych, choć otrzymywane układy mogą być dalekie od optymalnych, zarówno pod względem liczby bramek, jak i kosztu kwantowego. Koszt kwantowy takich układów może być zredukowany metodami resyntezy oraz optymalizacji wewnątrz okna (ang. window optimization) opisanych w [Mas07a, Soe10]. Metody te polegają na wydzieleniu w istniejącym układzie odwracalnym pewnych podukładów. Następnie obliczane są funkcje odwracalne realizowane przez te podukłady i dla tych funkcji konstruowane są nowe układy odwracalne. Jeżeli oryginalne podukłady mają wyższy koszt niż nowe skonstruowane układy, to dane podukłady są zastępowane układami o niższym koszcie. Podejście takie pozwala zastosować metody konstruowania układów odwracalnych, które mają pewne ograniczenia, do redukcji kosztu bardziej skomplikowanych układów. Metoda wykorzystująca resyntezę z użyciem przedstawionych w tym rozdziale algorytmów konstruowania układów odwracalnych wykorzystujących bazy układów optymalnych opisana została po raz pierwszy w literaturze w [Szy11a]. Metoda ta polega na wyszukiwaniu w analizowanym układzie odwracalnym wszystkich podukładów realizujących funkcje odwracalne maksymalnie czterech zmiennych i redukcji kosztu kwantowego takich podukładów. Podukłady wyszukiwane są metodą zachłanną, tak, aby zawierały jak największej bramek, przy czym podukłady te mogą zawierać również bramki, które nie są sąsiadujące w oryginalnym układzie. Takie bramki mogą być dołączane do podukładów, gdy bramki oddzielające je są w pełni niezależne od sygnałów wejściowych i wyjściowych danego podukładu. Wszystkie znalezione podukłady umieszczane są w kolejce priorytetowej z priorytetem równym kosztowi kwantowemu danego podukładu. Następnie dla podukładu o najwyższym koszcie kwantowym konstruowany jest równoważny układ o jak najniższym koszcie kwantowym. Jeżeli tak znaleziony układ ma niższy koszt kwantowy, to dany podukład w oryginalnym układzie jest zastępowany układem o niższym koszcie kwantowym, a potem cała procedura jest powtarzana. Jeżeli nie znaleziono układu o niższym koszcie kwantowy, to sprawdzany jest kolejny ze 67
68 znalezionych podukładów 4-bitowych. Cała procedura kończy się, gdy nie można znaleźć podukładu, którego koszt kwantowy mógłby być zredukowany. Wyniki redukcji kosztu kwantowego trzech układów odwracalnych znanych z literatury, stosując powyżej przedstawioną metodę podane są w tabeli 6.7 oraz na rys , zaś poszczególne przebiegi algorytmu dla układu odwracalnego realizującego funkcję majority5 [Gup06] pokazane są na rys Szarym tłem oznaczone są 4-bitowe podukłady, których koszt został zmniejszony w każdym przebiegu. Tabela 6.7. Porównanie liczby bramek (GC) oraz kosztu kwantowego (QC) 5-bitowych układów z literatury oraz układów uzyskanych w ramach tej pracy. układ znany z literatury układ zredukowany funkcja źródło GC QC GC QC QC redukcja QC majority5 [Gup06] ,3% hwb5 [Mas13] ,1% nth_prime5_inc [Mas13] ,1% Rysunek 6.3. Otrzymany układ odwracalny dla funkcji majority5 [Gup06] liczba bramek: 27, koszt kwantowy: 65. Rysunek 6.4. Otrzymany układ odwracalny dla funkcji hwb5 [Mas13] liczba bramek: 38, koszt kwantowy:
69 Rysunek 6.5. Otrzymany układ odwracalny dla funkcji nth_prime5_inc [Mas13] liczba bramek: 36, koszt kwantowy: 80. a) liczba bramek: 16, koszt kwantowy: 102 [Gup06]. b) liczba bramek: 19, koszt kwantowy: 79. Rysunek 6.6. Redukcja układu realizującego funkcję majority5 przebieg nr 1 algorytmu. b) liczba bramek: 19, koszt kwantowy: 79. b) liczba bramek: 24, koszt kwantowy: 68. Rysunek 6.7. Redukcja układu realizującego funkcję majority5 przebieg nr 2 algorytmu. 69
70 b) liczba bramek: 24, koszt kwantowy: 68. b) liczba bramek: 24, koszt kwantowy: 66. Rysunek 6.8. Redukcja układu realizującego funkcję majority5 przebieg nr 3 algorytmu. b) liczba bramek: 24, koszt kwantowy: 66. b) liczba bramek: 27, koszt kwantowy: 65. Rysunek 6.9. Redukcja układu realizującego funkcję majority5 przebieg nr 4 algorytmu. 70
71 7. Semi-klasyczne układy kwantowe 7.1. Wprowadzenie Projektowanie układów kwantowych jest procesem bardzo trudnym i do tej pory nie zostały zaproponowane skalowalne algorytmy konstruowania takich układów. W wielu pracach wprowadza się dodatkowe założenia oraz skupia jedynie na pewnych podklasach układów kwantowych. W kontekście układów realizujących binarne funkcje odwracalne często rozpatrywane są tzw. semi-klasyczne układy kwantowe. Uważa się, że będą one miały praktyczne zastosowanie przy realizacji układów odwracalnych w technologiach kwantowych. Dla układów należących do tej klasy zaproponowano szereg algorytmów i struktur danych, które pozwalają na symulowanie działania układów, ich optymalizację, redukcję liczby bramek oraz dekompozycję binarnych układów odwracalnych na realizujące je semi-klasyczne układy kwantowe [Yam08, Yam12, Sas12b, Sas13]. Definicja 7.1. Układ kwantowy nazywamy semi-klasycznym (ang. semi-classical), jeśli dla wszystkich bazowych stanów początkowych 0 i 1 (wartości binarnych) na wejściach tego układu, wszystkie możliwe stany na liniach sterujących wszystkich bramek sterujących są również w jednym ze stanów bazowych 0 lub 1 (mają wartości binarne). W semi-klasycznych układach kwantowych nie występuje splątanie kubitów, jeżeli stany początkowe są stanami bazowymi (mają wartości binarne). Ważną własnością semi-klasycznych układów kwantowych jest to, że układ będący odwrotnością danego układu semi-klasycznego w ogólnym przypadku może nie być układem semi-klasycznym, a układem kwantowym, w którym występuje splątanie dla pewnych wartości sygnałów wejściowych. Istnieją również podukłady semi-klasycznego układu kwantowego, które nie są układami semi-klasycznymi Logiki wielowartościowe Ponieważ w semi-klasycznych układach kwantowych nie występuje stan splątany, zatem stan całego układu kwantowego w dowolnej chwili może być przedstawiony poprzez indywidualne stany poszczególnych kubitów tworzących dany układ. Jeżeli operacje wykonywane przez bramki kwantowe na stanie kubitów tworzą algebraiczne grupy skończone, stan całego układu 71
72 kwantowego może być opisany za pomocą elementów takiej grupy. W takim przypadku, możliwe jest zdefiniowanie logiki wielowartościowej opisującej stan układu oraz zmiany stanu kubitu po wykonaniu operacji realizowanej przez każdą z bramek. Przykładem operacji, które generują grupę skończoną dla stanów kubitu, są wcześniej zdefiniowane operacje R k (pierwiastki k-tego stopnia z NOT, dla k = 2 1, 2 2,..., 2 n ). Operacje te można interpretować również jako obroty wokół osi OX na sferze Blocha. W literaturze dotyczącej realizacji układów odwracalnych w postaci układów kwantowych najczęściej rozpatrywana jest, wprowadzona w podrozdziale 3.8, biblioteka bramek NCV. Bramki z tej biblioteki realizują operacje na kubicie zdefiniowane macierzami: N (NOT), V, oraz V +, które można interpretować jako obroty wokół osi OX na sferze Blocha odpowiednio o π, 1π oraz 1 π. Te trzy operacje pozwalają na uzyskanie czterech stanów kubitu i analizowanie 2 2 stanu układu za pomocą logiki czterowartościowej podanej w tabeli 7.1. Tabela 7.1. Przykład logiki czterowartościowej opisującej stan kubitu dla układów realizujących operacje N, V oraz V +. stan θ N V V v v + 1 v π 2 v π 0 v + v v + 3 π v Biblioteka bramek kwantowych NCVW, oprócz bramek z biblioteki NCV, zawiera dodatkowe bramki realizujące operacje W i W +. Na sferze Blocha operacje te odpowiadają obrotom o 1π oraz 1 π wokół osi OX. W układach zbudowanych z bramek realizujących 4 4 te operacje wyróżnić można osiem stanów kubitu, co prowadzi do logiki ośmiowartościowej podanej w tabeli 7.2. Tabela 7.2. Przykład logiki ośmiowartościowej opisującej stan kubitu dla układów realizujących operacje N, V, V +, W oraz W +. stan θ N V V + W W v v + w w + 1 w π 4 v+ w + vw w + v 0 1 v π 2 v+ 1 0 vw w 3 vw π 4 w+ v + w + w 1 v 1 π 0 v + v v + w + vw v + w + 5 π w 4 w+ vw v + 1 v + 3 π v 0 1 v 2 w+ + w + w + 7 π vw w w 4 v+ + 0 v + 72
73 Opis stanu semi-klasycznego układu kwantowego przy użyciu logiki wielowartościowej pozwala m.in. na zapis funkcji, realizowanej przez taki układ, w postaci rozszerzonej tablicy prawdy. Taka tablica prawdy zawiera stany poszczególnych kubitów dla wszystkich dozwolonych początkowych wartości. Oznacza to, że taka tablica prawdy jest zdefiniowana tylko dla wszystkich kombinacji stanów bazowych 0 i 1 (wartości binarnych). Przykład funkcji kwantowej realizowanej przez układ z rys. 7.1 po każdej z bramek kwantowych pokazany jest w tabeli 7.3. Rysunek 7.1. Przykład semi-klasycznego układu kwantowego, realizującego fukcję odwracalną bramki Toffoliego z dwoma sygnałami sterującymi. Tabela 7.3. Rozszerzona tablica prawdy dla semi-klasycznego układu kwantowego z rys. 7.1, kolejne kolumny pokazują wyjściową część tablicy prawdy po bramce wskazanej w nagłówku danej kolumny; szarym tłem pokazane są zmiany stanu danego kubitu względem tablicy z poprzedniej kolumny. x 3 x 2 x 1 c-v(x 2 ; x 3 ) c-v(x 1 ; x 3 ) c-n(x 1 ; x 2 ) c-v + (x 2 ; x 3 ) c-n(x 1 ; x 2 ) y 3 y 2 y v 0 1 v v 1 0 v 1 0 v v v v v v v v Funkcje kwantowe i semi-klasyczne Definicja 7.2. Funkcją kwantową n n nazywamy przekształcenie stanu ψ układu n kubitów opisane kwadratową zespoloną macierzą unitarną o rozmiarze 2n. Dziedziną i przeciwdziedziną funkcji kwantowej jest ciągła przestrzeń unormowanych zespolonych wektorów stanu rozpiętych w przestrzeni iloczynu tensorowego n przestrzeni Hilberta o stanach bazowych 0 i 1. Funkcja kwantowa opisuje dowolne przekształcenie realizowane przez układ kwantowy. 73
74 Definicja 7.3. k-wartościową funkcją kwantową n n nazywamy taką funkcję kwantową, której dziedziną i przeciwdziedziną jest dyskretna przestrzeń k n wektorów stanu n kubitów będąca złożeniem niezależnych k stanów poszczególnych kubitów. k-wartościowa funkcja kwantowa jest realizowana przez układ kwantowy, w którym nie występuje splątanie, zaś operacje realizowane przez bramki kwantowe tworzą algebraiczną grupę skończoną i definiują k stanów, jakie mogą przyjąć poszczególne kubity w układzie. Funkcja taka może być zdefiniowana za pomocą rozszerzonej tablicy prawdy, określającej wartości funkcji dla wszystkich k n wektorów stanu kubitów. W pełni określona k-wartościowa funkcja kwantowa jest odwracalna. Przykład wartościowa funkcja kwantowa realizowana przez bramkę V w logice 4-wartościowej opisującej stan kubitu (tabela 7.1) zdefiniowana jest za pomocą rozszerzonej tablicy prawdy podanej w tabeli 7.4. Tabela wartościowa funkcja kwantowa realizowana przez bramkę kwantową V w logice opisującej stan kubitu danej tabelą 7.1. x 1 y 1 0 v v 1 1 v + v + 0 Tabela 7.5. Rozszerzone tablice prawdy dla 4-wartościowych funkcji kwantowych realizowanych przez bramki sterowane c-v (x 1 ; x 2 ) oraz c-v + (x 1 ; x 2 ). (y 2 y 1 ) = c-v (x 1 ; x 2 ) x 2 x 1 y 2 y v - v 0 1 v 1 0 v + - v + v 0 v 0 v v - v v v v + - v v - v 1 1 v v + - v + v + 0 v + 0 v + v - v v v + v + - v + (y 2 y 1 ) = c-v + (x 1 ; x 2 ) x 2 x 1 y 2 y v - v 0 1 v v + - v + v 0 v 0 v v - v v v v + - v v - v 1 1 v 1 1 v + - v + v + 0 v + 0 v + v - v v v + v + - v + 74
75 Przykład 7.2. W logice 4-wartościowej opisującej stan kubitu (tabela 7.1) 4-wartościowe funkcje kwantowe realizowane przez bramki sterowane c-v (x 1 ; x 2 ) oraz c-v + (x 1 ; x 2 ) zdefiniowane są za pomocą rozszerzonej tablicy prawdy podanej w tabeli 7.5. Wartości funkcji dla wektorów wejściowych, których x 1 { 0, 1 } są częściowo nieokreślone, gdyż w takim przypadku występuje stan splątany kubitów, a funkcja kwantowa realizowana przez bramkę sterowaną przyjmuje wartości spoza zbioru { 0, v, 1, v + }. Przedstawione funkcje są jednak swoimi odwrotnościami w zakresie wektorów wejściowych i wyjściowych, dla których są w pełni określone. Definicja 7.4. Funkcją semi-klasyczną n n nazywamy taką k-wartościową funkcję kwantową n n, która jest w pełni zdefiniowana jedynie dla 2 n binarnych wektorów wejściowych (określonych stanami bazowymi 0 oraz 1 ). Semi-klasyczne układy kwantowe realizują funkcje semi-klasyczne. Wartości dla stanów początkowych innych niż kombinacje stanów bazowych 0 i 1 są nieokreślone. Układ odwrotny do układu semi-klasycznego w ogólnym przypadku realizuje funkcję kwantową, która nie musi być funkcją semi-klasyczną czy nawet k-wartościową. Rozszerzona tablica prawdy funkcji odwrotnej f 1 możliwa jest do obliczenia jedynie dla funkcji semi-klasycznej f zdefiniowanej rozszerzoną tablicą prawdy, dla której wartości wyjściowe są jedynie kombinacją stanów bazowych 0 i 1. Rozszerzone tablice prawdy pozwalają na pełny opis w dowolnym momencie całego stanu układu kwantowego realizującego dowolną funkcję odwracalną. Przykład 7.3. Układ przedstawiony na rys. 7.2a realizuje funkcję semi-klasyczną f, której rozszerzona tablica prawdy podana jest w tabeli 7.6. Funkcja odwrotna f 1 jest funkcją kwantową. Realizujący ją układ odwrotny podany jest na rys. 7.2b. Układ odwrotny nie jest układem semi-klasycznym, gdyż następuje w nim splątanie dla stanów początkowych 0 1 oraz 1 0. a) f b) f 1 Rysunek 7.2. Układ semi-klasyczny realizujący funkcję semi-klasyczną f, zdefiniowaną za pomocą rozszerzonej tablicy prawdy podanej w tabeli 7.6, oraz układ realizujący funkcję odwrotną f 1. Relacje pomiędzy funkcjami kwantowymi, funkcjami kwantowymi k-wartościowymi, funkcjami semi-klasycznymi oraz funkcjami odwracalnymi są następujące: {f. odwracalne} {f. semi-klasyczne} {k-wartościowe f. kwantowe} {f. kwantowe}. (7.1) 75
76 Tabela 7.6. Funkcja semi-klasyczna f realizowana przez układ podany na rys. 7.2a. x 2 x 1 y 2 y v v Bazy optymalnych semi-klasycznych układów kwantowych Konstruowanie semi-klasycznych układów kwantowych jest pod wieloma względami podobne do konstruowania binarnych układów odwracalnych. Zapis funkcji semi-klasycznej realizowanej przez semi-klasyczny układ kwantowy w postaci tablicy prawdy pozwala na rozszerzenie algorytmu konstruowania optymalnych układów odwracalnych dla funkcji czterech zmiennych, opisanego w rozdziale 5, również do konstruowania optymalnych semi-klasycznych układów kwantowych [Szy12b, Szy13d]. W dalszej części pracy, jeżeli nie jest napisane inaczej, semi-klasyczne układy kwantowe będą nazywane po prostu układami kwantowymi, dla odróżnienia ich od binarnych układów odwracalnych, nazywanych układami odwracalnymi. W celu adaptacji algorytmu 2 do zbudowania bazy optymalnych układów kwantowych niezbędne są pewne zmiany wynikające z różnicy pomiędzy układami kwantowymi a układami odwracalnymi. Zmiany te dotyczą: definicji postaci kanonicznej funkcji semi-klasycznej, definicji podstawowych operacji na funkcjach semi-kwantowych, definicji i sposobu działania bramek kwantowych, obliczenia funkcji odwrotnej dla danej funkcji semi-kwantowej. Rozszerzoną tablicę prawdy funkcji semi-klasycznej można zapisać analogicznie do tablicy prawdy funkcji odwracalnych. Jedyną różnicą jest to, że stan każdej z linii dla wszystkich rozpatrywanych wartości sygnałów wejściowych wymaga więcej niż jednego bitu. Przy opisie za pomocą logiki czterowartościowej 2 bitów, ośmiowartościowej 3 bitów. Tablica prawdy funkcji kwantowej n zmiennych może być jednoznacznie zapisana na n 2 n α bitach, gdzie α oznacza liczbę bitów potrzebnych do zapisania stanu pojedynczego kubitu. Tabela 7.7 pokazuje, ile miejsca w pamięci zajmuje rozszerzona tablica prawdy funkcji kwantowej dla skonstruowanych baz układów optymalnych. Dla porównania w tabeli umieszczone zostały również dane dotyczące 4-bitowej funkcji odwracalnej. W kolejnych wierszach tej tablicy podane są: liczba stanów, jaką może przyjąć kubit (linia), rozmiar reprezentacji binarnej, rozmiar rozszerzonej tablicy prawdy zapisanej w postaci reprezentacji binarnej i liczba 64-bitowych słów maszynowych mieszczących całą tablicę prawdy. 76
77 Tabela 7.7. Porównanie parametrów reprezentacji funkcji odwracalnych i kwantowych w postaci rozszerzonej tablicy prawdy w zależności od liczby bitów/kubitów i użytej biblioteki bramek odwracalne NCV NCVW NCV 4-bity 4-kubity 4-kubity 5-kubitów liczba stanów linii reprezentacja stanu [bitów] tablica prawdy [bitów] liczba słów maszyn. 64-bit liczba symetrii Kolejną różnicą pomiędzy układami odwracalnymi oraz kwantowymi jest sposób konstruowania funkcji odwrotnej. Algorytm 2 wymagał wyznaczenia funkcji odwrotnej w celu dwukrotnego zwiększenia liczby symetrii przy obliczaniu postaci kanonicznej. Jednak dla funkcji semi-klasycznej nie w każdym przypadku możliwe jest skonstruowanie funkcji odwrotnej, która również byłaby funkcją semi-klasyczną. Postać kanoniczna funkcji semi-klasycznej jest wyznaczana spośród wszystkich funkcji semi-klasycznych będących permutacjami linii w układzie kwantowym. Dla układów kwantowych, podobnie jak dla odwracalnych, istnieje n! symetrii wynikających z permutowania linii. Wyznaczenie funkcji, której reprezentacja ma najmniejszą wartość leksykograficzną, jest możliwe dzięki standardowemu rozszerzeniu operacji arytmetycznych na liczby binarne o rozmiarze równym liczbie bitów rozszerzonej tablicy prawdy, przy czym nie ma znaczenia sposób kodowania binarnego poszczególnych stanów kwantowych. Operację wyznaczenia wszystkich permutacji linii realizuje się tak samo jak dla funkcji odwracalnych. Następną różnicą, w porównaniu z algorytmem generującym bazę optymalnych układów odwracalnych, jest sposób generowania bazy układów optymalnych. W semi-klasycznych układach kwantowych dozwolone są jedynie binarne wartości sygnałów sterujących, gdyż pozostałe wartości sygnałów sterujących prowadzą do powstania stanów splątanych. Dlatego podczas konstruowania układu optymalnego najpierw należy sprawdzić, czy wartość sygnału sterującego dla wszystkich dozwolonych wartości sygnałów wejściowych jest wartością binarną. Jeżeli sygnał sterujący ma wartość binarną dana bramka może być dodana do układu kwantowego, jeżeli zaś dla danego wektora wejściowego otrzymywana jest wartość nie będąca wartością binarną, wówczas daną bramkę sterowaną należy pominąć w danym kroku algorytmu. Dzięki powyższym modyfikacjom opracowany został algorytm 7, który pozwala na skonstruowanie baz optymalnych układów kwantowych. W ramach przeprowadzonych eksperymentów obliczeniowych skonstruowane zostały następujące bazy układów optymalnych: 1. biblioteka bramek NCV układy 4-kubitowe, 77
78 2. biblioteka bramek NCVW układy 4-kubitowe, 3. biblioteka bramek NCV układy 5-kubitowe. Algorytm 7 Zbuduj bazę semi-klasycznych układów optymalnych o maksymalnie k bramkach kwantowych Wejście: k: maksymalna liczba bramek w generowanych optymalnych układach tworzących bazę, G: zbiór wszystkich dostępnych bramek kwantowych. Wyjście: H = {H 0,..., H k }: hierarchia tablic mieszających H i, każda zawiera postacie kanoniczne wszystkich funkcji odwracalnych posiadających optymalne układy odwracalne o i bramkach (kluczem i wartością jest funkcja odwracalna). procedure ZbudujBazę(k) dodaj TOŻSAMOŚĆ do tablicy mieszającej H 0 for i 1 to k do for all f H i 1 do for all λ G do h f f λ if STAN_SPLĄTANY(h) = FAŁSZ then h postać kanoniczna funkcji h if h / H then dodaj h do tablicy mieszającej H i end if end if end for end for end for end procedure Parametry obliczonych baz układów optymalnych podane są w tabelach 7.8, 7.9 oraz W każdej z nich, w kolejnych wierszach podane są parametry poszczególnych tablic mieszających tworzących daną bazę układów optymalnych. W pierwszej kolumnie podana jest liczba bramek kwantowych w układach optymalnych zapisanych w danej tablicy mieszającej. W drugiej kolumnie podana jest liczba unikalnych funkcji semi-klasycznych realizowanych przez układy zapisane w danej tablicy. W trzeciej kolumnie podana jest liczba postaci kanonicznych funkcji semi-klasycznych, które są przechowywane w danej tablicy mieszającej. W kolejnych kolumnach podany jest rozmiar danej tablicy mieszającej w pamięci RAM, liczbę prób w przypadku kolizji kluczy w tablicy mieszającej oraz współczynnik wypełnienia danej tablicy. Ostatnia kolumna pokazuje czas pojedynczego procesora (w sekundach) potrzebny do obliczenia danej tablicy mieszającej. Bardzo mała wartość liczby prób adresowania otwartego w porównania do liczby obiektów przechowywanych w tablicach mieszających oraz wartość współczynnika wypełnienia powyżej 50% wskazuje, że użyta funkcja obliczająca klucz adresowania otwartego została dobrana poprawnie. Oznacza to również, że operacja 78
79 sprawdzenia, czy dana funkcja semi-klasyczna występuje w danej tablicy mieszającej, jest praktycznie natychmiastowa. Przedstawione bazy zostały obliczone na tym samym komputerze Server 1, co bazy optymalnych układów odwracalnych omówione w rozdziale 6 i podrozdziale 5.6. Tabela 7.8. Parametry bazy optymalnych semi-klasycznych układów kwantowych skonstruowanych z bramek NCV dla 4-kubitowych funkcji semi-klasycznych. k liczba funkcji semi-klasycznych liczba postaci kanonicznych rozmiar tablicy liczba prób czas generowania B 1 25,0% 0s B 10 71,9% 0s KiB 15 53,5% 0s KiB 31 70,4% 0s KiB ,3% 0s MiB ,8% 3s MiB 44 53,6% 23s MiB ,3% 152s MiB ,4% 875s GiB ,6% 4 123s GiB 78 53,3% s GiB ,3% s razem: ,3GiB s Tabela 7.9. Parametry bazy optymalnych semi-klasycznych układów kwantowych skonstruowanych z bramek NCVW dla 4-kubitowych funkcji semi-klasycznych. k liczba funkcji semi-klasycznych liczba postaci kanonicznych rozmiar tablicy liczba prób wypełnienie wypełnienie czas generowania B 3 37,5% 0s KiB 7 46,5% 0s KiB 24 56,3% 0s KiB 36 53,8% 1s MiB ,7% 3s MiB 61 54,6% 41s MiB ,6% 449s GiB ,7% 4 309s GiB 76 47,2% s razem: ,7GiB s 79
80 Tabela Parametry bazy optymalnych semi-klasycznych układów kwantowych skonstruowanych z bramek NCV dla 5-kubitowych funkcji semi-klasycznych. k liczba funkcji semi-klasycznych liczba postaci kanonicznych rozmiar tablicy liczba prób wypełnienie czas generowania B 1 25,0% 0s KiB 3 35,9% 0s KiB 17 61,1% 1s KiB 43 59,4% 4s MiB 34 54,3% 63s MiB ,7% 860s , MiB ,7% s GiB ,2% s GiB 95 48,9% s razem: ,3GiB s 7.5. Konstruowanie optymalnych układów kwantowych Bazy optymalnych układów kwantowych skonstruowane według algorytmu 7 pozwalają na badanie układów optymalnych składających się jedynie z 13 bramek (biblioteka NCV, 4 kubity) lub 9 bramek (biblioteka NCVW, 4 kubity oraz biblioteka NCV, 5 kubitów). Nie są one jednak wystarczające nawet do skonstruowania optymalnych układów kwantowych dla prostych układów 4-bitowych zbudowanych bramek z biblioteki NCT, gdyż optymalny układ kwantowy dla 4-bitowej bramki Toffoliego składa się z 13 bramek kwantowych dla biblioteki NCVW lub 14 bramek dla bibilioteki NCV (z wykorzystaniem dodatkowej linii pomocniczej, wobec czego wymaga układu 5-kubitowego). W celu skonstruowania optymalnych układów kwantowych składających się z większej liczby bramek zmodyfikowany i rozszerzony został algorytm 3 opisany w rozdziale 5. Podstawowym problemem w adaptacji algorytmu 3 do konstruowania optymalnego układu składającego się z 2k bramek kwantowych wykorzystując bazę optymalnych układów semi-kwantowych o maksymalnie k bramkach są: brak możliwości bezpośredniego wyznaczenia funkcji odwrotnej dla pewnych funkcji semi-klasycznych oraz brak możliwości obliczenia złożenia dwóch dowolnych funkcji semi-klasycznych. Oznacza to, że funkcja odwrotna może być realizowana przez układ, który nie jest semi-klasycznym układem kwantowym, co pokazano na rys Jeżeli dowolny semi-klasyczny układ kwantowy podzielimy na dwie części A i B, to pierwsza część dalej jest układem semi-klasycznym, jednak druga część już nie musi być układem semi-klasycznym, mimo że razem z pierwszą częścią stanowi układ semi-klasyczny. Przykład takiego układu pokazany jest na rys Oznacza to, że nie ma bezpośredniej możliwości znalezienia układu optymalnego dla części B w bazie układów optymalnych zawierających jedynie układy semi-klasyczne. Podobny problem stanowi trudność wyznaczenia, 80
81 jaką funkcję kwantową realizuje kaskada dwóch układów semi-klasycznych, gdyż podobnie jak w przypadku inwersji, powstały układ może nie być kwantowym układem semi-klasycznym. A Rysunek 7.3. Przykład semi-klasycznego układu kwantowego podzielonego na dwa podukłady A i B, z których podukład B nie jest układem semi-klasycznym (dla wektora wejściowego 11 wystąpiłby stan splątany, gdyż sygnał sterujący bramką C(x 2 ; x 1 ) miałby wartość różną od 0 lub 1. B Możliwe jest jednak takie zmodyfikowanie algorytmu 3, aby nie było potrzebne wykonywanie ww. problematycznych operacji, jeżeli ograniczymy zakres działania tej metody do skonstruowania optymalnego semi-klasycznego układu kwantowego dla podzbioru funkcji kwantowych, jaką stanowią jedynie binarne układy odwracalne. Możliwe jest bowiem wykonanie następujących operacji: wyznaczenie rozszerzonej tablicy prawdy funkcji kwantowej realizowanej przez kaskadowe połączenie układu odwracalnego z układem kwantowym (rys. 7.4), porównanie (stwierdzenie tożsamości) dwóch funkcji semi-klasycznych opisanych rozszerzoną tablicą prawdy, skonstruowanie układu kwantowego realizującego funkcję odwrotną do funkcji realizowanej przez dany kwantowy układ semi-klasyczny. Rysunek 7.4. Układ realizujący funkcję semi-klasyczną f Q = f R f Q, gdzie f R jest funkcją odwracalną, a f Q funkcją semi-klasyczną; otrzymana funkcja f Q również jest funkcją semi-klasyczną i może być realizowana przez układ semi-klasyczny. Wyznaczenie funkcji semi-klasycznej realizowanej przez kaskadowe połączenie układu odwracalnego z semi-klasycznym układem kwantowym możliwe jest poprzez prostą permutację wierszy rozszerzonej tablicy prawdy. Permutację tę definiuje funkcja odwracalna, z którą składana jest funkcja kwantowa realizowana przez układ semi-klasyczny. Z definicji kwantowych układów semi-klasycznych, wynika, że kaskadowe połączenie układu realizującego funkcję odwracalną z układem semi-klasycznym jest również układem semi-klasycznym. Układ kwantowy realizujący funkcję odwrotną f 1 do funkcji f realizowanej przez dany kwantowy układ semi-klasyczny C f zbudowany z bramek G 1,..., G k (C f = G 1... G k ) 81
82 można uzyskać konstruując kaskadę, zawierającą odwrotności wszystkich bramek, z których zbudowany był dany układ, ustawione w kolejności odwrotnej niż w układzie C f : C f 1 = G 1 k... G 1 1. Brak możliwości wyznaczenia funkcji odwrotnej wymaga pewnych modyfikacji w procedurze konstruowania układu optymalnego z dwóch części. W algorytmach 1 i 3 wykorzystywana była zależność f = h g (podrozdział 5.1). W równaniu tym funkcja f jest binarną funkcją odwracalną, dla której konstruowany jest układ kwantowy, zaś funkcja h jest funkcją semi-klasyczną realizowaną przez semi-klasyczny układ kwantowy. Z powyższego równania wynika również, że funkcja g nie musi być realizowalna przez układ semi-klasyczny. Wykorzystując przekształcenie równania do postaci f g 1 = h (rozdział 5.1) można zauważyć, że funkcja g 1 jest funkcją semi-klasyczną, gdyż złożona z funkcją odwracalną f realizuje to samo przekształcenie to funkcja semi-klasyczna h. Oznacza to, że układy realizujące funkcję g 1 można odczytać bezpośrednio z bazy kwantowych układów optymalnych. W celu skonstruowania układu dla kwantowej funkcji g wystarczy odwrócić kolejność bramek kwantowych oraz zastąpić każdą z bramek, bramką odwrotną do niej. Tak zbudowany algorytm podany jest w postaci pseudokodu w ramce o nazwie algorytm Wyniki przeprowadzonych obliczeń Przedstawiony w poprzednim podrozdziale algorytm wraz z bazami optymalnych semi-klasycznych układów kwantowych podanymi w podrozdziale 7.4 pozwalają na konstruowanie optymalnych semi-klasycznych układów kwantowych składających się maksymalnie z 18 bramek dla układów 4-kubitowych zbudowanych z bibliotek NCV i NCVW oraz układów 5-kubitowych zbudowanych z biblioteki NCV. Przedstawiona metoda konstruowania układów kwantowych jest ważnym osiągnięciem, gdyż wcześniejsze prace pozwalały jedynie na konstruowanie optymalnych układów kwantowych budowanych z biblioteki NCV dla wszystkich funkcji odwracalnych trzech zmiennych [Mas07b, Sco08, Rah12a] oraz 4-kubitowych układów kwantowych składających się maksymalnie z 10 bramek [Gro08, Hun06]. Mimo że układy kwantowe składające się maksymalnie z 18 bramek nie pozwalają na zrealizowanie wszystkich 4-bitowych funkcji odwracalnych, przedstawiona metoda pozwoliła na analizę optymalnych układów kwantowych dla wielu prostych funkcji odwracalnych czterech zmiennych. W ramach weryfikacji poprawnego działania narzędzia implementującego algorytm 8 skonstruowane zostały optymalne układy kwantowe dla 4-bitowej bramki Toffoliego. Zgodnie z oczekiwaniami zbudowany został 4-kubitowy układ składający się z 13 bramek z biblioteki NCVW (rys. 7.5) oraz 5-kubitowy układ składający się z 14 bramek z biblioteki NCV (rys. 7.6). 82
83 Algorytm 8 Skonstruuj optymalny semi-klasyczny układ kwantowy dla funkcji odwracalnej f Wejście: f: funkcja odwracalna, G: zbiór wszystkich dostępnych bramek kwantowych, H = {H 0,..., H k }: hierarchia tablic mieszających H i, każda zawiera optymalne semi-klasyczne układy kwantowe o i bramkach dla wszystkich funkcji semi-klasycznych w postaci kanonicznej (kluczem i zawartością jest jedynie funkcja odwracalna realizująca układ o danej liczbie bramek). Wyjście: Optymalny semi-klasyczny układ kwantowy C realizujący funkcję odwracalną f. procedure ZnajdźUkładOptymalny(f) if f = TOŻSAMOŚĆ then return C Ø end if f postać kanoniczna funkcji f if f H then l i f H i return C UkładOptymalnyZBazy(f, l) else for i 1 to k do for all g H i do h f g h postać kanoniczna funkcji h if h H k then C g UkładOptymalnyZBazy(g, i) C h UkładOptymalnyZBazy(h, k) Cg 1 układ odwrotny do C g return C C h Cg 1 end if end for end for end if return Błąd: układ optymalny dla f wymaga >2k bramek end procedure procedure UkładOptymalnyZBazy(f, a) for all λ G do h f λ if h = TOŻSAMOŚĆ then return C λ end if if STAN_SPLĄTANY(h) = FAŁSZ then h postać kanoniczna funkcji h if h H a 1 then return C λ UkładOptymalnyZBazy(h, a 1) end if end if end for end procedure 83
84 Wśród układów 4-kubitowych konstruowanych z bramek z biblioteki NCV nie został znaleziony układ realizujący taką bramkę Toffoliego. Znalezione układy są zgodne z dotychczasową wiedzą o optymalnych układach kwantowych realizujących 4-bitową bramkę Toffoliego. Układ 13 bramek NCVW realizujący 4-bitową bramkę Toffoliego przedstawiony został po raz pierwszy w pracy [Bar95], zaś układ 14 bramek NCV, wykorzystujących dodatkową linię, pokazany był m.in. w pracach [Mil09, Sas12b]. W pracy [Bar95] pokazano, że skonstruowanie układu kwantowego 4-kubitowego z bramek NCV dla bramki Toffoliego o trzech sygnałach sterujących nie jest możliwe. Wyniki działania algorytmu 8 wykazały, że nie jest możliwe skonstruowanie układów semi-kwantowych zawierających mniej bramek niż te znane dotychczas z literatury, co pokazuje, że dotychczas znane układy są układami optymalnymi. Rysunek 7.5. Skonstruowany w ramach niniejszej rozprawy 4-kubitowy semi-klasyczny układ kwantowy z bramek NCVW realizujący funkcję bramki Toffoliego o trzech sygnałach sterujących. Rysunek 7.6. Skonstruowany w ramach niniejszej rozprawy 5-kubitowy semi-klasyczny układ kwantowy z bramek NCV realizujący funkcję bramki Toffoliego o trzech sygnałach sterujących. Następnie, przedstawiona metoda została wykorzystana do skonstruowania optymalnych układów kwantowych dla wszystkich funkcji odwracalnych czterech zmiennych realizowanych przez układy odwracalne składające się z dwóch lub trzech bramek z biblioteki NCT. Dla każdego z tak uzyskanych układów porównana została liczba bramek w układzie kwantowym z kosztem kwantowym układów odwracalnych, wyznaczonym jako sumę kosztów kwantowych poszczególnych bramek. Celem tego eksperymentu obliczeniowego było znalezienie układów kwantowych realizujących proste funkcje odwracalne, które mają mniejszy koszt kwantowy (liczbę bramek kwantowych) niż suma kosztów kwantowych dla bramek odwracalnych w układach realizujących te funkcje. Przedstawiona metoda pozwoliła po raz pierwszy 84
85 na skonstruowanie optymalnych układów kwantowych dla funkcji odwracalnych czterech zmiennych i bibliotek układów kwantowych NCV oraz NCVW. Tak znalezione układy kwantowe mogą być następnie wykorzystane do redukcji kosztu kwantowego podczas konstruowania układów kwantowych realizujących funkcje odwracalne poprzez dekompozycję poszczególnych bramek układu odwracalnego na odpowiadające im układy kwantowe. W wyniku przeprowadzonych obliczeń znalezionych zostało kilkanaście układów kwantowych mających mniejszy koszt kwantowy niż koszt kwantowy równoważnych im układów odwracalnych. Szczególnie interesujące okazały się dwa układy o największej różnicy między tymi kosztami, gdyż mogą one być wykorzystane do znaczącej redukcji kosztu kwantowego układów odwracalnych. Rysunek 7.7. Układ odwracalny zawierający trzy uogólnione bramki Toffoliego o sumarycznym koszcie kwantowym wynoszącym 19 oraz równoważny mu układ kwantowy zawierający tylko 9 bramek NCVW. Pierwszy z tych układów pokazany jest na rys Po lewej stronie znaku równoważności pokazany jest układ odwracalny zawierający trzy bramki NCT, zaś po lewej stronie układ kwantowy. Jest to układ realizujący następującą funkcję odwracalną czterech zmiennych: (x 1, x 2, x 3, x 4 ) (x 1 x 2 x 3 x 4, x 2 x 3 x 4, x 3 x 4, x 4 ). (7.2) Układ odwracalny realizujący tę funkcję składa się z trzech bramek z biblioteki NCT, których sumaryczny koszt kwantowy wynosi 19 jednostek, zaś optymalny układ kwantowy realizujący tę samą funkcję odwracalną wymaga jedynie 9 bramek z biblioteki NCVW. Podobne własności redukcji kosztu kwantowego mają obydwa dwubramkowe podukłady odwracalne tego układu, co pokazano na rys Można zauważyć, że układ kwantowy z rys. 7.8b jest układem realizującym 3-bitową bramkę Peresa [Per85]. Układy pokazane na rys. 7.7 oraz 7.8a, mogą być uważane za uogólnienia bramek Peresa [Szy12b, Szy13a], co zostało szerzej opisane w następnym rozdziale. Tak duża redukcja kosztu kwantowego w przypadku zbudowania układu bezpośrednio z bramek kwantowych dla funkcji odwracalnej opisanej równaniem (7.2) występuje tylko w przypadku konstruowania układu z bramek kwantowych NCVW. Optymalny układ kwantowy zbudowany z bramek NCV nie wykazuje takich własności (rys. 7.9) [Szy13d]. Drugi ze znalezionych układów kwantowych, który posiada znaczące własności redukcji kosztu kwantowego, pokazany jest na rys. 7.10a (układ kwantowy 4-kubitowy zawierający 85
86 a) b) Rysunek 7.8. Dwa dwubramkowe podukłady odwracalne z rys. 7.7 oraz równoważne im układy kwantowe. Rysunek 7.9. Układ odwracalny zawierający trzy uogólnione bramki Toffoliego o sumarycznym koszcie kwantowym wynoszącym 19 oraz równoważny mu układ kwantowy zawierający 17 bramek NCV. 13 bramek NCVW) oraz 7.10b (układ kwantowy 5-kubitowy zawierający 14 bramek NCV). Znalezione układy kwantowe realizują funkcję odwracalną implementowaną przez 4-bitową bramkę Toffoliego z mieszanym sterowaniem (z dwoma pozytywnymi liniami sterującymi i jedną negatywną linią sterującą). Układ kwantowy realizujący taką funkcję znany jest m.in. z prac [Soe12, Mor12a] i również składa się odpowiednio z 13 bramek NCVW lub 14 bramek NCV. Znaleziony optymalny układ kwantowy o takiej samej liczbie bramek jak znane dotychczas układy optymalne ponownie potwierdza poprawne działanie algorytmu 8. Pozostałe znalezione układy charakteryzują się redukcją kosztu kwantowego o trzy lub mniej jednostek [Szy12b]. Pełna lista znalezionych układów redukujących koszt kwantowy podana jest w tabelach A.4 i A.5 w dodatku A. Znalezione w ten sposób układy kwantowe mogą służyć jako elementy do konstruowania układów kwantowych o zmniejszonym koszcie kwantowym, podczas dokonywania dekompozycji układów odwracalnych na układy kwantowe. 86
87 a) czterokubitowy układ kwantowy zbudowany z bramek NCVW. b) pięciokubitowy układ kwantowy zbudowany z bramek NCV. Rysunek Równoważne układy odwracalne i kwantowe realizujące 4-bitową bramkę Toffoliego z mieszanym sterowaniem (z dwoma pozytywnymi liniami sterującymi i jedną negatywną linią sterującą). 87
88 8. Uogólniona bramka Peresa W podrozdziale 7.6 opisany został eksperyment obliczeniowy, którego wynikiem jest optymalny układ kwantowy (rys. 7.7) zbudowany jedynie z 9 bramek kwantowych, podczas gdy aż 19 bramek potrzebnych jest do wykonania kwantowej dekompozycji wszystkich trzech bramek odwracalnych (4-bitowa Toffoliego, 3-bitowa Toffoliego oraz CNOT) wchodzących w skład układu odwracalnego (19 = ). Układ ten skonstruowany jest nawet z mniej niż 13 bramek kwantowych, które potrzebne są do zbudowania układu kwantowego realizującego 4-bitową bramkę Toffoliego. Układ kwantowy pokazany na rys. 7.7 można łatwo przekształcić do postaci pokazanej na rys. 8.1 poprzez proste przesuwanie niezależnych od siebie bramek oraz permutację linii. Tak przekształcony układ realizuje następującą funkcję odwracalną: (x 1, x 2, x 3, x 4 ) (x 1, x 1 x 2, x 1 x 2 x 3, x 1 x 2 x 3 x 4 ). (8.1) Funkcja odwracalna dana równaniem (8.1) oraz układ kwantowy, który ją realizuje, mają podobne własności redukcji kosztu kwantowego jak bramka Peresa opisana w podrozdziale 3.9. Rysunek 8.1. Układ odwracalny i kwantowy realizujący uogólnioną bramkę Peresa o dwóch liniach sterujących: x 1 i x Uogólnienie bramki Peresa Porównując równania (3.14) i (8.1) oraz układy kwantowe pokazane na rys. 3.7 i 8.1 można zauważyć pewną analogię, która pozwala sformułować następującą definicję uogólnienia bramki Peresa: 88
89 Definicja 8.1. Uogólniona bramka Peresa o n sygnałach sterujących jest bramką odwracalną o rozmiarze (n+1) (n+1), która realizuje następującą funkcję odwracalną: (x 1,..., x n, x n+1 ) (x 1, x 1 x 2, x 1 x 2 x 3,..., x 1 x 2...x n x n+1 ), dla n 2. (8.2) Dla tak zdefiniowanej uogólnionej bramki Peresa o n sygnałach sterujących, przez analogię do uogólnionej bramki Toffoliego, wprowadzone zostają pojęcia sygnałów (linii) sterujących oraz sygnałów (linii) sterowanych. Pojęcie sygnału sterowanego odnosi się do sygnału x n+1, który jest negowany przez bramkę wtedy i tylko wtedy, gdy wszystkie pozostałe sygnały wejściowe mają wartość 1. Wszystkie pozostałe sygnały wejściowe x 1,..., x n nazywane są sygnałami sterującymi, mimo że sygnały x i (dla i = 2,..., n) również są negowane w zależności od wartości sygnałów wejściowych x j, dla j < i. Rysunek 8.2. Układ odwracalny zbudowany z uogólnionych bramek Toffoliego, który realizuje uogólnioną bramkę Peresa. Układ odwracalny realizujący tak zdefiniowaną uogólnioną bramkę Peresa o n sygnałach sterujących może być skonstruowany jako kaskada n 1 odwracalnych bramek Toffoliego, zgodnie ze schematem pokazanym na rys Łatwo można zauważyć, że kolejne bramki Toffoliego realizują iloczyny sygnałów wejściowych x 1...x i 1, które negują wartości sygnału x i, dla i = 2,..., n + 1 tak, że cały układ realizuje funkcję odwracalną opisaną równaniem (8.2). Przez analogię do układów pokazanych na rys. 3.7 i 8.1 można skonstruować układ kwantowy, który realizuje 5-bitową bramkę Peresa o 4 sygnałach sterujących (rys. 8.3). Rysunek 8.3. Układ odwracalny i kwantowy realizujące 5-bitową uogólnioną bramkę Peresa. Podukład układu kwantowego realizujący 4-bitową uogólnioną bramkę Peresa oznaczony jest szarym tłem. 89
90 Konstrukcję tę można następnie uogólnić do układu kwantowego realizującego uogólnioną bramkę Peresa o n sygnałach sterujących (rys. 8.4). Ważną cechą zaproponowanego układu kwantowego jest to, że jego konstrukcja nie wymaga dodatkowych linii do obliczeń tymczasowych. W zaprezentowanym układzie kwantowym wyróżnić można trzy części. Pierwsza od lewej część składa się z n kwantowych bramek o jednej linii sterującej. Każda z tych bramek kwantowych sterowana jest linią x i i realizuje operację pierwiastka k-tego stopnia z NOT na linii sterowanej x n+1, przy czym k = 2 n 1 dla i = 1 oraz k = 2 n i+1 dla i = 2,..., n. Drugą część układu stanowi podukład, który realizuje uogólnioną bramkę Peresa o n 1 sygnałach sterujących, realizującą swoją operację na liniach x 1,..., x n. Trzecia część układu podobna jest do pierwszej części. Składa się ona z n 1 sterowanych bramek kwantowych, które realizują operacje odwrotne do odpowiednich bramek sterowanych z pierwszej części układu. Bramki te sterowane są liniami x i i realizują operację odwrotnego pierwiastka k-tego stopnia z NOT na linii sterowanej x n+1, przy czym k = 2 n i+1 dla i = 2,..., n. Ogólny schemat tej konstrukcji układu kwantowego pokazany jest na rys Rysunek 8.4. Układ odwracalny i układ kwantowy realizujące uogólnioną bramkę Peresa z n sygnałami sterującymi, k = 2 n 1. Prostokątem oznaczony jest podukład kwantowy realizujący uogólnioną bramkę Peresa o (n 1) sygnałach sterujących. Wszystkie bramki kwantowe, używane w zaprezentowanej konstrukcji, są sterowanymi bramkami realizującymi operację pierwiastka k-tego stopnia z NOT oraz operację odwrotnego pierwiastka k-tego stopnia z NOT, przy czym k = 2 1, 2 2, 2 3,..., 2 n 1. Bramki te uznawane są za elementarne bramki kwantowe Dowód poprawności przedstawionej konstrukcji Twierdzenie 8.1. Opisana powyżej rekurencyjna procedura konstruowania układu kwantowego prowadzi do skonstruowania układu realizującego uogólnioną bramkę Peresa o n sygnałach sterujących, realizującą funkcję odwracalną opisaną równaniem (8.2). Dowód. Poprawność zaproponowanego układu kwantowego zostanie wykazana poprzez sprawdzenie, jaka funkcja realizowana jest przez układ kwantowy dla wszystkich binarnych 90
91 wartości sygnałów wejściowych, przy założeniu, że podukład realizujący bramkę Peresa o (n 1) sygnałach sterujących również realizuje funkcję odwracalną opisaną równaniem (8.2). Dla n = 2 zaproponowany układ (rys. 3.7) jest tożsamy z układem kwantowym realizującym funkcję oryginalnej bramki Peresa, znanym z literatury [Mas04]. Dla n > 2 rozpatrzone zostaną następujące cztery przypadki: Przypadek 1: Wartość wszystkich sygnałów sterujących x 1,..., x n wynosi 1. n pierwszych bramek kwantowych, sterowanych przez sygnały x 1,..., x n, jest aktywnych i realizuje operację pierwiastka k-tego stopnia z NOT na linii sterowanej x n+1. Każda z pierwszych dwóch bramek (sterowanych sygnałami x 1 oraz x 2 ) realizuje operację pierwiastka 2 n 1 -tego stopnia z NOT, co daje w efekcie wykonanie operacji pierwiastka 2 n 2 -tego stopnia z NOT. Kolejna bramka kwantowa (sterowana sygnałem x 3 ) realizuje operację 2 n 2 -tego stopnia z NOT, co razem z dwoma poprzednimi bramkami daje realizację operacji 2 n 3 -tego stopnia z NOT na linii x n+1. Rozumowanie to można powtórzyć dla kolejnych bramek aż do bramki kwantowej sterowanej sygnałem x n, która realizuje operację pierwiastka kwadratowego z NOT. Całkowita operacja realizowana przez n bramek kwantowych w pierwszej części układu jest równoważna operacji NOT i oznacza zanegowanie sygnału x n+1. Następnie, druga z części układu realizuje operację uogólnionej bramki Peresa o n 1 sygnałach sterujących na liniach x 1,..., x n, co powoduje zmianę wartości sygnałów x 2,..., x n z 1 na 0, zgodnie ze wzorem (8.2). Trzecia część układu zawiera n 1 bramek kwantowych sterowanych linami x 2,..., x n, jednak wartość sygnałów na tych liniach wynosi 0, więc żadna z tych bramek sterowanych nie jest aktywna, zatem na linii x n+1 nie jest już wykonywana żadna operacja. Podsumowując, przedstawiony układ zmienił wartość sygnału na liniach x 2,..., x n z 1 na 0 oraz zanegował wartość sygnału na linii x n+1, co jest zgodne z funkcją realizowaną przez uogólnioną bramkę Peresa, daną wzorem (8.2). Przypadek 2: Wartość sygnału sterującego x 1 wynosi 0, zaś sygnały sterujące x 2,..., x n mają dowolne wartości. Pierwsza bramka kwantowa, sterowana sygnałem x 1 nie jest aktywna, zatem nie zmienia wartości na linii x n+1. Sygnały x 2,..., x n przechodzą przez podukład realizujący uogólnioną bramkę Peresa o n 1 sygnałach sterujących, jednak zgodnie ze wzorem (8.2) nie są one modyfikowane, gdyż wartość sygnału x 1 wynosi 0. Oznacza to, że wartości sygnałów x 1,..., x n nie są w ogóle zmieniane przez cały układ. Z kolei, w zależności od wartości sygnałów na liniach x 2,..., x n, część spośród n 1 bramek kwantowych sterowanych sygnałami x 2,..., x n w pierwszej oraz trzeciej części układu może być aktywna. Bramki są jednak zawsze aktywne parami i każdej z bramek w pierwszej części układu odpowiada bramka sterowana tym samym sygnałem x i w trzeciej części układu, która realizuje na linii x n+1 operację odwrotną do danej bramki z pierwszej części układu. Razem każda z takich par bramek sterowanych realizuje przekształcenie tożsamościowe na linii x n+1. Oznacza to, że bez względu na wartości sygnałów 91
92 x 2,..., x n, wartość sygnału na linii x n+1 po przejściu przez cały układ jest przywrócona do wartości początkowej, więc układ jako całość nie powoduje zmiany żadnego sygnału, co jest zgodne z funkcją realizowaną przez uogólnioną bramkę Peresa, daną wzorem (8.2). Przypadek 3: Wartość sygnału sterującego x 1 wynosi 1, sygnału sterującego x 2 wynosi 0, a sygnały sterujące x 3,..., x n mają dowolne wartości. Ten przypadek jest podobny do przypadku nr 2. Główną różnicą jest to, że pierwsza bramka kwantowa, sterowana przez sygnał x 1 jest aktywna i operacja pierwiastka 2 n 1 -tego stopnia z NOT realizowana jest na linii x n+1, zaś bramka sterowana sygnałem wejściowym x 2, którego wartość wynosi 0, nie powoduje modyfikacji linii x n+1. Podukład realizujący uogólnioną bramkę Peresa o n 1 sygnałach sterujących na liniach x 1,..., x n, zgodnie ze wzorem (8.2) nie modyfikuje wartości sygnałów x 3,..., x n, gdyż wartość sygnału sterującego x 2 wynosi 0, oraz neguje wartość sygnału na linii x 2 z 0 na 1, gdyż wartość sygnału sterującego x 1 wynosi 1. Oznacza to, że linia x 2 w trzeciej części układu ma wartość 1 i aktywowana jest bramka kwantowa sterowana tą linią, co powoduje zrealizowanie operacji odwrotności pierwiastka 2 n 1 stopnia z NOT na linii x n+1, co razem z operacją pierwiastka 2 n 1 stopnia z NOT realizowaną przez pierwszą bramkę układu prowadzi do przekształcenia identycznościowego realizowanego na linii x n+1. Dla pozostałych kwantowych bramek sterowanych liniami x 3,..., x n w pierwszej i trzeciej części układu można przeprowadzić rozumowanie opisane w przypadku nr 2, tj. bramki te, pomimo bycia aktywnymi, parami realizują operacje będące swoimi odwrotnościami, co razem prowadzi do przekształcenia identycznościowego. Podsumowując, zaprezentowany układ kwantowy realizuje jedynie negację sygnału x 3, co jest zgodne z funkcją realizowaną przez uogólnioną bramkę Peresa, daną wzorem (8.2). Przypadek 4: Wartość sygnałów sterujących x 1,..., x k wynosi 1, wartość sygnału x k+1 wynosi 0, zaś sygnały sterujące x k+1,..., x n mają dowolne wartości (k n 1). Ten przypadek jest rozszerzeniem rozumowania z poprzedniego przypadku. k pierwszych kwantowych bramek, sterowanych sygnałami wejściowymi x 1,..., x k jest aktywnych i realizuje w sumie operację pierwiastka 2 n k -tego stopnia z NOT na linii x n+1 (zgodnie z rozumowaniem opisanym dla przypadku nr 1). Następnie podukład realizujący na liniach x 1,..., x n uogólnioną bramkę Peresa o n 1 sygnałach sterujących, zgodnie ze wzorem (8.2) nie modyfikuje wartości sygnałów x k+2,..., x n, gdyż wartość sygnału sterującego x k+1 wynosi 0, oraz neguje wartość sygnału na liniach x 2,..., x k+1, gdyż wartość sygnałów sterujących x 1,..., x k wynosi 1. W efekcie, w trzeciej części układu kwantowego wartość sygnałów na liniach x 2,..., x k wynosi 0, a sygnału x k+1 wynosi 1. Oznacza to, że w trzeciej części układu kwantowe bramki sterowane liniami x 2,..., x k nie są aktywne i nie modyfikują linii x n+1. Bramka kwantowa sterowana linią x k+1 jest aktywna i realizuje operację odwrotności pierwiastka 2 n k stopnia z NOT na linii x n+1, co jest odwrotnością operacji realizowanej przez pierwsze k bramek kwantowych układu i prowadzi do przekształcenia identycznościowego realizowanego na linii 92
93 x n+1. Dla pozostałych kwantowych bramek sterowanych liniami x k+2,..., x n w pierwszej i trzeciej części układu można przeprowadzić rozumowanie opisane w przypadku nr 2, tj. bramki te, pomimo bycia aktywnymi, parami realizują operacje będące swoimi odwrotnościami, co razem prowadzi do przekształcenia identycznościowego. Podsumowując, zaprezentowany układ kwantowy realizuje jedynie negację sygnałów x 2,..., x k+1, co jest zgodne z funkcją realizowaną przez uogólnioną bramkę Peresa, daną wzorem (8.2). Powyższe rozumowanie obejmuje wszystkie możliwe wartości binarne sygnałów wejściowych. Dla wszystkich przypadków pokazano, że zaproponowany układ kwantowy realizuje funkcję odwracalną opisaną wzorem (8.2), co kończy dowód. Lemat 8.1. Przedstawiona konstrukcja układu kwantowego realizującego uogólnioną bramkę Peresa o n sygnałach sterujących składa się z n 2 elementarnych bramek kwantowych. Dowód. Przedstawiona konstrukcja układu kwantowego dla n = 2 wymaga 4 elementarnych bramek kwantowych i jest tożsama z konstrukcją układu kwantowego realizującego oryginalną bramkę Peresa [Mas04]. Dla n > 2 można sformułować następującą zależność rekurencyjną: P n = 2n 1 + P n 1, (8.3) gdzie P k jest liczbą elementarnych bramek kwantowych potrzebnych do zbudowania układu kwantowego dla uogólnionej bramki Peresa o k sygnałach sterujących. Poprzez prosty dowód wykorzystujący indukcję matematyczną można wykazać, że P n = n 2. Lemat 8.2. Przedstawiona konstrukcja układu kwantowego realizującego uogólnioną bramkę Peresa o n sygnałach sterujących prowadzi do układu, który jest semi-klasycznym układem kwantowym. Dowód. Wszystkie kwantowe bramki sterowane w pierwszej i trzeciej części układu, realizują operacje na linii x n+1. Linia ta, nie jest linią sterującą dla żadnej z pozostałych bramek kwantowych znajdujących się w układzie, zaś wartość sygnału na linii x n+1 na wyjściu układu jest binarna, gdyż układ ten realizuje funkcję odwracalną określoną w definicji Własności uogólnionej bramki Peresa Układ kwantowy przedstawiony na rys. 8.4 jest symetryczny względem zastosowanych bramek kwantowych, realizujących operację pierwiastka k-tego stopnia z NOT oraz odwrotności pierwiastka k-tego stopnia z NOT. Inaczej mówiąc, kwantowe bramki sterowane zastosowane w pierwszej i trzeciej części układu mogą być zastąpione przez odpowiednie bramki realizujące operacje odwrotne, a funkcja odwracalna realizowana przez cały układ pozostanie taka sama. Przykład takiej zamiany pokazany jest na rys Zamianę operacji realizowanej w pierwszej 93
94 i trzeciej części układu kwantowego przez sterowane bramki kwantowe na odpowiednie operacje odwrotne realizowane na linii x n+1 można wykonać dla każdego poziomu rekurencji niezależnie, otrzymując różne układy kwantowe realizujące uogólnioną bramkę Peresa o n sygnałach sterujących. Oryginalna bramka Peresa (o dwóch sygnałach sterujących) realizuje funkcję odwracalną, która nie jest odwrotnością samej siebie [Per85]. Układ realizujący odwrotność bramki Peresa można uzyskać poprzez odwrócenie kolejności wszystkich bramek w układzie i zastąpienie każdej z bramek bramką, która realizuje operację odwrotną do danej. W ten sam sposób można uzyskać układ kwantowy realizujący odwrotność uogólnionej bramki Peresa o n sygnałach sterujących. Taki układ pokazany jest na rys Rysunek 8.5. Dwa równoważne układy kwantowe realizujące uogólnioną bramkę Peresa o trzech sygnałach sterujących. Szarym tłem zaznaczone są podukłady realizujące bramkę Peresa o dwóch sygnałach sterujących. Rysunek 8.6. Układ odwracalny i kwantowy realizujący odwrotną uogólnioną bramkę Peresa o n sygnałach sterujących. Podukład oznaczony prostokątem realizuje odwrotną uogólnioną bramkę Peresa o (n 1) sygnałach sterujących. Można łatwo wykazać, że układ kwantowy pokazany na rys. 8.6 oraz układ kwantowy pokazany na rys. 8.4 połączone w jedną kaskadę będą realizowały przekształcenie identycznościowe, gdyż kolejne bramki z obu układów parami kolejno znoszą się co prowadzi jedynie do przekształcenia identycznościowego. Układ kwantowy realizujący 4-bitową bramkę Peresa składa się z 9 elementarnych bramek kwantowych (rys. 8.1), ma więc mniejszy koszt kwantowy niż 4-bitowa bramka Toffoliego, której kwantowa realizacja wymaga aż 13 elementarnych bramek kwantowych. W pracy [She03] pokazane zostało, że do skonstruowania funkcji odwracalnych n zmiennych, które są nieparzystymi permutacjami 1, wymagane jest użycie przynajmniej jednej n-bitowej bramki 1 Permutacja jest nieparzysta, gdy może być przedstawiona jako nieparzysta liczba transpozycji. 94
95 Toffoliego. W ramach przeprowadzonych eksperymentów obliczeniowych sprawdzono, czy wśród wszystkich układów odwracalnych skonstruowanych w podrozdziale 6.3 istnieją układy, które zawierają 4-bitową bramkę Peresa. Okazało się, że prawie dla wszystkich funkcji nieparzystych takie układy istnieją, a ich koszt kwantowy jest jeszcze niższy niż koszt kwantowy układów znalezionych w rozdziale 6.3. Wyniki tego eksperymentu znajdują się w tabeli 8.1. W kolejnych kolumnach podane są nazwa funkcji odwracalnej, źródło najlepszego znanego układu (tzn. o najmniejszym koszcie kwantowym), liczba bramek NCT w układzie realizującym daną funkcję, wartość kosztu kwantowego układu z uwzględnieniem 4-bitowej bramki Peresa (QC1), najmniejsza wartość kosztu kwantowego dla wcześniej skonstruowanego układu realizującego daną funkcję (QC2), różnica kosztu kwantowego oraz redukcja kosztu kwantowego wyrażona w procentach. Uwzględnienie 4-bitowych bramek Peresa pozwoliło na ponad 17% redukcję kosztu kwantowego. Lista znalezionych układów odwracalnych z 4-bitowymi bramkami Peresa znajduje się w tabeli A.3 w dodatku A. Tabela 8.1. Koszt kwantowy układów odwracalnych z uwzględnieniem 4-bitowej bramki Peresa. funkcja źródło GC QC1 QC2 QC redukcja QC 4b15g_1 [Gol10] ,6% 4b15g_4 [Gol10] ,9% decode42 [Gol10] ,1% oc5 [Gol10] ,1% oc6 [Gol10] ,5% oc7 [Gol10] ,1% oc8 [Gol12] ,6% aj_e11 [Wil08a] ,8% mod10_171 [Wil08a] ,8% msaee [Sae07b] ,6% gyang [Yan11] ,2% App2.2 [You11] ,4% średnio: 13,5 27,7 33,7-6,0-17,8% 8.4. Realizacja uogólnionej bramki Toffoliego Konstruowanie układów kwantowych realizujących funkcje odwracalne wielu zmiennych jest procesem bardzo trudnym. Wynika to z faktu, że nie opracowano jeszcze algorytmu konstruowania takich układów, który pozwalałby na praktyczne konstruowanie układów o więcej niż trzech wejściach, generował układy zbudowane z więcej niż kilkunastu bramek oraz nie dodawał wielu dodatkowych linii. Algorytm przedstawiony w rozdziale 7.5 również 95
96 posiada istotne ograniczenia, gdyż pozwala konstruować układy kwantowe jedynie dla funkcji odwracalnych czterech zmiennych, a uzyskane układy mogą mieć maksymalnie 18 bramek. Dlatego w literaturze zaproponowano inną niż bezpośrednia metodę konstruowania układów kwantowych metodę bazującą na konstruowaniu układu odwracalnego, którego poszczególne bramki następnie są dekomponowane na realizujące je podukłady kwantowe. Najpopularniejszą i najszerzej badaną biblioteką bramek odwracalnych stosowaną do konstruowania układów odwracalnych jest rodzina uogólnionych bramek Toffoliego. Z tego względu problem skonstruowania układu kwantowego realizującego uogólnioną bramkę Toffoliego o n sygnałach sterujących z jak najmniejszej liczby bramek kwantowych i jak najmniejszej liczby dodatkowych linii jest ważnym zagadnieniem i jest szeroko badany w literaturze: [Mas04, Mil11, Mil09, Mil10, Sas12b, Sas12a, Sas13]. Układy kwantowe realizujące uogólnioną bramkę Peresa mogą być wykorzystane do skonstruowania układu, który realizuje uogólnioną bramkę Toffoliego, nie wymagając dodawania do układu dodatkowych linii. Na rys. 8.7 pokazany jest układ realizujący pojedynczą bramkę Toffoliego o n sygnałach sterujących jako kaskadę uogólnionej bramki Peresa o n sygnałach sterujących oraz uogólnionej odwrotnej bramki Peresa o n 1 sygnałach sterujących. Rysunek 8.7. Układ odwracalny realizujący uogólnioną bramkę Toffoliego o n sygnałach sterujących jako kaskadowe połączenie układu realizującego uogólnioną bramkę Peresa o n sygnałach sterujących oraz układu realizującego odwrotną uogólnioną bramkę Peresa o (n 1) sygnałach sterujących (oba te podukłady oznaczone są osobno szarym tłem). Można łatwo zauważyć, że układ pokazany po prawej stronie rys. 8.7 realizuje funkcję uogólnionej bramki Toffoliego o n sygnałach sterujących, gdyż kolejne pary bramek Toffoliego umieszczone w podukładach odwracalnych realizujących uogólnioną bramkę Peresa i uogólnioną odwrotną bramkę Peresa są takie same, a zatem znoszą się. Układ pokazany na rys. 8.7 może być skonstruowany z n 2 + (n 1) 2 = 2n 2 2n + 1 bramek kwantowych i nie wymaga dodatkowych linii. Przedstawiona konstrukcja ma mniejszy koszt kwantowy (liczbę bramek kwantowych) w porównaniu z konstrukcjami wcześniej znanymi w literaturze, które wymagały 2 n 1 3 bramek kwantowych (konstrukcja wg Lematu 7.1 w [Bar95] i późniejszych prac nad rozszerzeniami w [Mor12a]) lub 48n 2 + O(n) bramek kwantowych (konstrukcja wg Lematu 7.5 w [Bar95]). Wszystkie te konstrukcje realizowały 96
97 uogólnioną bramkę Toffoliego z takiej samej biblioteki sterowanych bramek kwantowych we wszystkich tych konstrukcjach używane są sterowane bramki realizujące unitarną operację pierwiastka k-tego stopnia z NOT dla k = 2 1, 2 2, 2 3,..., 2 n 1. Porównanie kosztu kwantowego układów kwantowych zbudowanych tymi metodami pokazane jest w tablicy 8.2. Układ kwantowy realizujący uogólnioną bramkę Toffoliego o takim samym koszcie kwantowym jak zaprezentowana w tym rozdziale konstrukcja został ostatnio zaprezentowany w pracy [Abd13], jednak jego konstrukcja oparta jest na innych założeniach, bez wykorzystywania konstrukcji uogólnionej bramki Peresa. Tabela 8.2. Koszt kwantowy układów realizujących uogólnione bramki Peresa i Toffoliego o wielu sygnałach sterujących. Porównywane konstrukcje nie wymagają dodawania dodatkowych linii do otrzymanego układu kwantowego. Liczba linii sterujących Bramka Peresa (rys. 8.4) Bramka Toffoliego (rys. 8.7) Bramka Toffoliego [Bar95, Mor12a] Bramka Toffoliego [Bar95] n/d n/d n/d n/d n n 2 2n 2 2n n n 2 + O(n) Przedstawiona metoda konstruowania układów kwantowych realizujących uogólnioną bramkę Toffoliego ma zastosowanie tylko do przypadków, gdy nie dodajemy do układu dodatkowych linii. Koszt dodatkowych linii (kubitów) jest zależny od przyjętej technologii realizacji układów kwantowych, jednak obecnie wszystkie znane technologie nie pozwalają na skonstruowanie układów o więcej niż ok. 10 kubitach [Le 05]. Ograniczenie dodawania dodatkowych linii podczas konstruowania układu kwantowego ma więc istotne uzasadnienie. Jeżeli jednak w układzie dostępne już są dodatkowe linie, to uogólnioną bramkę Toffoliego można zrealizować używając dekompozycji kwantowych opisanych w pracach [Mil11, Mil09, Mil10, Sas12a, Sas12b, Sas13]. W pracach [Sas12a, Sas12b] opisana została metoda konstruowania układów kwantowych z bramek NCVW i jednej dodatkowej linii do obliczeń tymczasowych dla uogólnionej bramki Toffoliego o n sygnałach sterujących. Przedstawioną metodę można ulepszyć poprzez zastąpienie par jednakowych bramek Toffoliego następującą parą bramek: uogólnioną Peresa oraz odwrotną uogólnioną bramką Peresa, które mają niższy koszt kwantowy. Taką zamianę bramek Toffoliego na bramki Peresa (uogólnioną i odwrotną uogólnioną) można wykonać, jeżeli linie sterujące nie są używane pomiędzy daną parą bramek Toffoliego. W podobny sposób redukowany był koszt kwantowy układu realizującego bramkę Toffoliego przy użyciu bramki Peresa opisany w pracy [Mas04]. 97
98 Przykład zastosowania par bramek Peresa o 3 liniach sterujących (uogólnionych i odwrotnych uogólnionych) do redukcji kosztu kwantowego układu realizującego bramkę Toffoliego o 8 sygnałach sterujących pokazany jest na rys Układ kwantowy, który powstanie z dekompozycji przedstawionego układu odwracalnego zbudowany jest z bramek NCVW i nie zawiera dodatkowych linii. Przedstawiony układ odwracalny jest wynikiem działania algorytmu opisanego w pracach [Sas12a, Sas12b], w którym pary 4-bitowych bramek Toffoliego zostały zastąpione parami 4-bitowych uogólnionych bramek Peresa oraz bramek do nich odwrotnych. Koszt kwantowy przedstawionego układu wynosi 60 jednostek (4 c-w + 4 c-w bitowa bramka Peresa bitowa bramka Peresa = = 60), podczas gdy koszt kwantowy otrzymany w pracach [Sas12a, Sas12b] wynosi 64 jednostki. Rysunek 8.8. Przykład zastosowania 4-bitowej uogólnionej bramki Peresa do redukcji kosztu kwantowego układu realizującego uogólnioną bramkę Toffoliego o 8 sygnałach sterujących Uogólniona bramka Peresa ze sterowaniem mieszanym W podrozdziale 2.3 opisane zostało znane z literatury rozszerzenie uogólnionej bramki Toffoliego o n sygnałach sterujących na przypadek sterowania negatywnego i mieszanego. Analogiczne rozszerzenie można wprowadzić dla uogólnionej bramki Peresa. Taka bramka realizuje następującą funkcję odwracalną: (x 1,..., x n, x n+1 ) (x 1, (a 1 x 1 ) x 2,..., (a 1 x 1 )(a 2 x 2 )...(a n x n ) x n+1, (8.4) dla n 2, gdzie a 1,..., a n {0, 1}. Wykorzystując metodę opisaną w podrozdziale 7.6 w ramach niniejszej pracy skonstruowane zostały optymalne układy kwantowe realizujące funkcje opisaną równaniem (8.4) dla n = 3 i wszystkich możliwych wartości parametrów a 1, a 2 i a 3. Otrzymane układy pokazane są na rys Przeprowadzony eksperyment obliczeniowy pokazał, że układy kwantowe realizujące 98
Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu.
Zakład Optyki Nieliniowej http://zon8.physd.amu.edu.pl 1/35 Informatyka kwantowa wykład z cyklu Zaproszenie do fizyki Ryszard Tanaś Umultowska 85, 61-614 Poznań mailto:tanas@kielich.amu.edu.pl Spis treści
dr inż. Andrzej Skorupski Wydział Elektroniki i Technik Informacyjnych Politechnika Warszawska
dr inż. Andrzej Skorupski Wydział Elektroniki i Technik Informacyjnych Politechnika Warszawska Zasilacz pierwszego polskiego komputera UMC1 produkowanego seryjnie w ELWRO opracowanego w katedrze kierowanej
Obliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 12 - Algorytmy i protokoły kwantowe Jarosław Miszczak IITiS PAN Gliwice 19/05/2016 1 / 39 1 Motywacja rozwoju informatyki kwantowej. 2 Stany kwantowe. 3 Notacja Diraca.
Wstęp do algorytmiki kwantowej
Koło naukowe fizyków Migacz, Uniwersytet Wrocławski Komputer kwantowy - co to właściwie jest? Komputer kwantowy Komputer, którego zasada działania nie może zostać wyjaśniona bez użycia formalizmu mechaniki
Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 13
Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 13 Spis treści 19 Algorytmy kwantowe 3 19.1 Bit kwantowy kubit (qubit)........... 3 19. Twierdzenie
Wstęp do Techniki Cyfrowej... Algebra Boole a
Wstęp do Techniki Cyfrowej... Algebra Boole a Po co AB? Świetne narzędzie do analitycznego opisu układów logicznych. 1854r. George Boole opisuje swój system dedukcyjny. Ukoronowanie zapoczątkowanych w
Historia. Zasada Działania
Komputer kwantowy układ fizyczny do opisu którego wymagana jest mechanika kwantowa, zaprojektowany tak, aby wynik ewolucji tego układu reprezentował rozwiązanie określonego problemu obliczeniowego. Historia
Arytmetyka liczb binarnych
Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1
VIII. TELEPORTACJA KWANTOWA Janusz Adamowski
VIII. TELEPORTACJA KWANTOWA Janusz Adamowski 1 1 Wprowadzenie Teleportacja kwantowa polega na przesyłaniu stanów cząstek kwantowych na odległość od nadawcy do odbiorcy. Przesyłane stany nie są znane nadawcy
Wykład nr 1 Techniki Mikroprocesorowe. dr inż. Artur Cichowski
Wykład nr 1 Techniki Mikroprocesorowe dr inż. Artur Cichowski ix jy i j {0,1} {0,1} Dla układów kombinacyjnych stan dowolnego wyjścia y i w danej chwili czasu zależy wyłącznie od aktualnej kombinacji stanów
W5. Komputer kwantowy
W5. Komputer kwantowy Komputer klasyczny: Informacja zapisana w postaci bitów (binary digit) (sygnał jest albo go nie ma) W klasycznych komputerach wartość bitu jest określona przez stan pewnego elementu
Architektura komputerów Wykład 2
Architektura komputerów Wykład 2 Jan Kazimirski 1 Elementy techniki cyfrowej 2 Plan wykładu Algebra Boole'a Podstawowe układy cyfrowe bramki Układy kombinacyjne Układy sekwencyjne 3 Algebra Boole'a Stosowana
Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 13 - Układy bramkowe Instytut Automatyki i Robotyki Warszawa, 2015 Układy z elementów logicznych Bramki logiczne Elementami logicznymi (bramkami logicznymi) są urządzenia o dwustanowym sygnale wyjściowym
Technika cyfrowa Synteza układów kombinacyjnych
Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych Wykład dla studentów III roku Informatyki Wersja 2.0, 05/10/2011 Podział układów logicznych Opis funkcjonalny układów logicznych x 1 y 1
Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014
Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Temat 1. Algebra Boole a i bramki 1). Podać przykład dowolnego prawa lub tożsamości, które jest spełnione w algebrze Boole
Informatyka Kwantowa Sekcja Informatyki Kwantowej prezentacja
Informatyka Kwantowa Sekcja Informatyki Kwantowej prezentacja Robert Nowotniak Wydział FTIMS, Politechnika Łódzka XV konferencja SIS, 26 października 2007 Streszczenie Informatyka kwantowa jest dziedziną
Tranzystor JFET i MOSFET zas. działania
Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej
12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:
PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej
Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych
1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie
Schematy Piramid Logicznych
Schematy Piramid Logicznych geometryczna interpretacja niektórych formuł Paweł Jasionowski Politechnika Śląska w Gliwicach Wydział Matematyczno-Fizyczny Streszczenie Referat zajmuje się następującym zagadnieniem:
Bramki logiczne Podstawowe składniki wszystkich układów logicznych
Układy logiczne Bramki logiczne A B A B AND NAND A B A B OR NOR A NOT A B A B XOR NXOR A NOT A B AND NAND A B OR NOR A B XOR NXOR Podstawowe składniki wszystkich układów logicznych 2 Podstawowe tożsamości
Technika cyfrowa Synteza układów kombinacyjnych (I)
Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych (I) Wykład dla studentów III roku Informatyki Wersja 2.0, 05/10/2011 Podział układów logicznych Opis funkcjonalny układów logicznych x 1
Aproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego
Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego Piotr Rybak Koło naukowe fizyków Migacz, Uniwersytet Wrocławski Piotr Rybak (Migacz UWr) Odkrywanie algorytmów kwantowych 1 / 17 Spis
1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie
Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest
Synteza układów kombinacyjnych
Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych Wykład dla studentów III roku Informatyki Wersja 4.0, 23/10/2014 Bramki logiczne Bramki logiczne to podstawowe elementy logiczne realizujące
Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.
Elementy cyfrowe i układy logiczne Wykład Legenda Kryterium kosztu realizacji Minimalizacja i optymalizacja Optymalizacja układów dwupoziomowych Tablica (mapa) Karnaugh a Metoda Quine a-mccluskey a Złożoność
b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.
DODATEK: FUNKCJE LOGICZNE CD. 1 FUNKCJE LOGICZNE 1. Tablice Karnaugha Do reprezentacji funkcji boolowskiej n-zmiennych można wykorzystać tablicę prawdy o 2 n wierszach lub np. tablice Karnaugha. Tablica
Metody Programowania
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 8: Wyszukiwanie
Algorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
UKŁADY MIKROPROGRAMOWALNE
UKŁAD MIKROPROGRAMOWALNE Układy sterujące mogą pracować samodzielnie, jednakże w przypadku bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ sterujący jest tylko jednym z układów drugim
Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych
Elementy logiki: Algebra Boole a i układy logiczne 1 Elementy logiki dla informatyków Wykład III Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych Elementy logiki: Algebra Boole a
TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH
Praca laboratoryjna 2 TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH Cel pracy poznanie zasad funkcjonowania przerzutników różnych typów w oparciu o różne rozwiązania układowe. Poznanie sposobów
Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku
Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku Wstęp czyli (próba) odpowiedzi na pewne pytania (Silna) Teza Church
Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 13 - Układy bramkowe Instytut Automatyki i Robotyki Warszawa, 2015 Układy z elementów logicznych Bramki logiczne Elementami logicznymi (bramkami logicznymi) są urządzenia o dwustanowym sygnale wyjściowym
Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.
Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z funktorami realizującymi podstawowe funkcje logiczne poprzez zaprojektowanie, wykonanie i przetestowanie kombinacyjnego układu logicznego realizującego
WSTĘP. Budowa bramki NAND TTL, ch-ka przełączania, schemat wewnętrzny, działanie 2
WSTĘP O liczbie elementów użytych do budowy jakiegoś urządzenia elektronicznego, a więc i o możliwości obniżenia jego ceny, decyduje dzisiaj liczba zastosowanych w nim układów scalonych. Najstarszą rodziną
bity kwantowe zastosowania stanów splątanych
bity kwantowe zastosowania stanów splątanych Jacek Matulewski Karolina Słowik Jarosław Zaremba Jacek Jurkowski MECHANIKA KWANTOWA DLA NIEFIZYKÓW Bit kwantowy zawiera więcej informacji niż bit klasyczny
Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.
Logika binarna Logika binarna zajmuje się zmiennymi mogącymi przyjmować dwie wartości dyskretne oraz operacjami mającymi znaczenie logiczne. Dwie wartości jakie mogą te zmienne przyjmować noszą przy tym
bity kwantowe zastosowania stanów splątanych
bity kwantowe zastosowania stanów splątanych Jacek Matulewski Karolina Słowik Jarosław Zaremba Jacek Jurkowski MECHANIKA KWANTOWA DLA NIEFIZYKÓW Bit jest jednostką informacji tzn. jest "najmniejszą możliwą
WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA I GIMNAZJUM Małgorzata Janik
WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA I GIMNAZJUM Małgorzata Janik DOPUSZCZAJĄCY DOSTATECZNY DOBRY BARDZO DOBRY LICZBY I DZIAŁANIA zna pojęcie liczby naturalnej, całkowitej, wymiernej. rozumie rozszerzenie
Definicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Wymagania edukacyjne z matematyki dla uczniów klasy VII szkoły podstawowej
Wymagania edukacyjne z matematyki dla uczniów klasy VII szkoły podstawowej Ocenę dopuszczającą otrzymuje uczeń, który: rozumie rozszerzenie osi liczbowej na liczby ujemne umie porównywać liczby wymierne,
WYMAGANIA KONIECZNE - OCENA DOPUSZCZAJĄCA:
WYMAGANIA KONIECZNE - OCENA DOPUSZCZAJĄCA: zna pojęcie liczby naturalnej, całkowitej, wymiernej rozumie rozszerzenie osi liczbowej na liczby ujemne umie zaznaczać liczbę wymierną na osi liczbowej umie
Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak
Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Politechnika Łódzka 13 listopada 2007 Plan wystapienia 1 Informatyka Kwantowa podstawy 2 Opis problemu (przeszukiwanie zbioru) 3 Intuicyjna
Technologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl
System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy
Programowanie liniowe
Badania operacyjne Problem Model matematyczny Metoda rozwiązania Znaleźć optymalny program produkcji. Zmaksymalizować 1 +3 2 2 3 (1) Przy ograniczeniach 3 1 2 +2 3 7 (2) 2 1 +4 2 12 (3) 4 1 +3 2 +8 3 10
Wymagania edukacyjne z matematyki dla klasy VII
Wymagania edukacyjne z matematyki dla klasy VII Szkoły Podstawowej nr 100 w Krakowie Na podstawie programu Matematyka z plusem Na ocenę dopuszczającą Uczeń: rozumie rozszerzenie osi liczbowej na liczby
w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą
Modelowanie logiki rewersyjnej w języku VHDL
PNIEWSKI Roman 1 Modelowanie logiki rewersyjnej w języku VHDL WSTĘP Konwencjonalne komputery wykorzystują dwuwartościową logikę Boole a. Funkcje opisujące układ cyfrowy wykorzystują najczęściej dwa operatory
ćwiczenie 202 Temat: Układy kombinacyjne 1. Cel ćwiczenia
Opracował: dr inż. Jarosław Mierzwa KTER INFORMTKI TEHNIZNEJ Ćwiczenia laboratoryjne z Logiki Układów yfrowych ćwiczenie 202 Temat: Układy kombinacyjne 1. el ćwiczenia Ćwiczenie ma na celu praktyczne zapoznanie
Informatyka kwantowa. Karol Bartkiewicz
Informatyka kwantowa Karol Bartkiewicz Informacja = Wielkość fizyczna Jednostka informacji: Zasada Landauera: I A =log 2 k B T ln 2 1 P A R. Landauer, Fundamental Physical Limitations of the Computational
Informatyka kwantowa
VI Festiwal Nauki i Sztuki na Wydziale Fizyki UAM Informatyka kwantowa Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas 16 października 2003 Spis treści 1 Rozwój komputerów 4 1.1 Początki..................
Asynchroniczne statyczne układy sekwencyjne
Asynchroniczne statyczne układy sekwencyjne Układem sekwencyjnym nazywany jest układ przełączający, posiadający przynajmniej jeden taki stan wejścia, któremu odpowiadają, zależnie od sygnałów wejściowych
Układy równań i nierówności liniowych
Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +
AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ
KDEMI MORSK KTEDR NWIGCJI TECHNICZEJ ELEMETY ELEKTRONIKI LORTORIUM Kierunek NWIGCJ Specjalność Transport morski Semestr II Ćw. 4 Podstawy techniki cyfrowej Wersja opracowania Marzec 5 Opracowanie: mgr
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane
Ćwiczenie 26. Temat: Układ z bramkami NAND i bramki AOI..
Temat: Układ z bramkami NAND i bramki AOI.. Ćwiczenie 26 Cel ćwiczenia Zapoznanie się ze sposobami konstruowania z bramek NAND różnych bramek logicznych. Konstruowanie bramek NOT, AND i OR z bramek NAND.
Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).
Ćw. 10 Układy sekwencyjne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną układy rejestrów
Wstęp do komputerów kwantowych
Obwody kwantowe Uniwersytet Łódzki, Wydział Fizyki i Informatyki Stosowanej 2008/2009 Obwody kwantowe Bramki kwantowe 1 Algorytmy kwantowe 2 3 4 Algorytmy kwantowe W chwili obecnej znamy dwie obszerne
WYMAGANIA na poszczególne oceny-klasa I Gimnazjum
WYMAGANIA na poszczególne oceny-klasa I Gimnazjum Oceny z plusem lub minusem otrzymują uczniowie, których wiadomości i umiejętności znajdują się na pograniczu wymagań danej oceny głównej. (Znaki + i -
Wykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Elementy cyfrowe i układy logiczne
Elementy cyfrowe i układy logiczne Wykład 5 Legenda Procedura projektowania Podział układów VLSI 2 1 Procedura projektowania Specyfikacja Napisz, jeśli jeszcze nie istnieje, specyfikację układu. Opracowanie
Wstęp do Modelu Standardowego
Wstęp do Modelu Standardowego Plan (Uzupełnienie matematyczne II) Abstrakcyjna przestrzeń stanów Podstawowe własności Iloczyn skalarny amplitudy prawdopodobieństwa Operatory i ich hermitowskość Wektory
Obliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga
Algebra Boole a i jej zastosowania
lgebra oole a i jej zastosowania Wprowadzenie Niech dany będzie zbiór dwuelementowy, którego elementy oznaczymy symbolami 0 oraz 1, tj. {0, 1}. W zbiorze tym określamy działania sumy :, iloczynu : _ oraz
Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15
Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:
W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.
1. Podstawy matematyki 1.1. Geometria analityczna W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. Skalarem w fizyce nazywamy
Podstawy Informatyki Systemy sterowane przepływem argumentów
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer
WYMAGANIA EDUKACYJNE NIEZBĘDNE DO UZYSKANIA ŚRÓDROCZNYCH I ROCZNYCH OCEN KLASYFIKACYJNYCH Z MATEMATYKI W KLASIE I GIMNAZJUM
WYMAGANIA EDUKACYJNE NIEZBĘDNE DO UZYSKANIA ŚRÓDROCZNYCH I ROCZNYCH OCEN KLASYFIKACYJNYCH Z MATEMATYKI W KLASIE I GIMNAZJUM OCENA ŚRÓDROCZNA: NIEDOSTATECZNY ocenę niedostateczny otrzymuje uczeń, który
Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.
Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/
Rozdział 1 PROGRAMOWANIE LINIOWE
Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując
Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca
Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia
Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Poznanie zasad budowy działania komparatorów cyfrowych. Konstruowanie komparatorów
Symulacja obliczeń kwantowych
Model kwantowych bramek logicznych w NumPy Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Politechnika Łódzka Sekcja Informatyki Kwantowej, 10 października 2007 Plan prezentacji 1 Python
3. FUNKCJA LINIOWA. gdzie ; ół,.
1 WYKŁAD 3 3. FUNKCJA LINIOWA FUNKCJĄ LINIOWĄ nazywamy funkcję typu : dla, gdzie ; ół,. Załóżmy na początek, że wyraz wolny. Wtedy mamy do czynienia z funkcją typu :.. Wykresem tej funkcji jest prosta
Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.
Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów
Macierze. Rozdział Działania na macierzach
Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy
Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka
Modelowanie jako sposób opisu rzeczywistości Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka 2015 Wprowadzenie: Modelowanie i symulacja PROBLEM: Podstawowy problem z opisem otaczającej
Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 5 Prof. dr hab. inż. Jan Magott DMT rozwiązuje problem decyzyjny π przy kodowaniu e w co najwyżej wielomianowym czasie, jeśli dla wszystkich łańcuchów wejściowych
Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.
Projekt z przedmiotu Systemy akwizycji i przesyłania informacji Temat pracy: Licznik binarny zliczający do 10. Andrzej Kuś Aleksander Matusz Prowadzący: dr inż. Adam Stadler Układy cyfrowe przetwarzają
Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności
Algorytmy sztucznej inteligencji
www.math.uni.lodz.pl/ radmat Przeszukiwanie z ograniczeniami Zagadnienie przeszukiwania z ograniczeniami stanowi grupę problemów przeszukiwania w przestrzeni stanów, które składa się ze: 1 skończonego
Automatyka Treść wykładów: Literatura. Wstęp. Sygnał analogowy a cyfrowy. Bieżące wiadomości:
Treść wykładów: Automatyka dr inż. Szymon Surma szymon.surma@polsl.pl pok. 202, tel. +48 32 603 4136 1. Podstawy automatyki 1. Wstęp, 2. Różnice między sygnałem analogowym a cyfrowym, 3. Podstawowe elementy
5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.
5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów. Algebra jest jednym z najstarszych działów matematyki dotyczącym początkowo tworzenia metod rozwiązywania równań
Kwantowa kooperacja. Robert Nowotniak. Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Politechnika Łódzka
Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Politechnika Łódzka Sekcja Informatyki Kwantowej, 17 maja 2007 Materiały źródłowe Prezentacja oparta jest na publikacjach: Johann Summhammer,
I. Liczby i działania
I. Liczby i działania porównywać liczby wymierne, zaznaczać liczby wymierne na osi liczbowej, zamieniać ułamki zwykłe na dziesiętne i odwrotnie, zaokrąglać liczby do danego rzędu, szacować wyniki działań,
Wymagania edukacyjne z matematyki dla klasy I gimnazjum wg programu Matematyka z plusem
Wymagania edukacyjne z matematyki dla klasy I gimnazjum wg programu Matematyka z plusem pojęcie liczby naturalnej, całkowitej, wymiernej rozszerzenie osi liczbowej na liczby ujemne sposób i potrzebę zaokrąglania
Modelowanie niezawodności prostych struktur sprzętowych
Modelowanie niezawodności prostych struktur sprzętowych W ćwiczeniu tym przedstawione zostaną proste struktury sprzętowe oraz sposób obliczania ich niezawodności przy założeniu, że funkcja niezawodności
Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.
Kilka informacji o przerzutnikach Jaki układ elektroniczny nazywa się przerzutnikiem? Przerzutnikiem bistabilnym jest nazywany układ elektroniczny, charakteryzujący się istnieniem dwóch stanów wyróżnionych
teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015
teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 1 wczoraj Wprowadzenie matematyczne. Entropia i informacja. Kodowanie. Kod ASCII. Stopa kodu. Kody bezprefiksowe.
Maciej Piotr Jankowski
Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji
Mgr Kornelia Uczeń. WYMAGANIA na poszczególne oceny-klasa VII-Szkoła Podstawowa
Mgr Kornelia Uczeń WYMAGANIA na poszczególne oceny-klasa VII-Szkoła Podstawowa Oceny z plusem lub minusem otrzymują uczniowie, których wiadomości i umiejętności znajdują się na pograniczu wymagań danej
Wstęp do Techniki Cyfrowej... Teoria automatów
Wstęp do Techniki Cyfrowej... Teoria automatów Alfabety i litery Układ logiczny opisywany jest przez wektory, których wartości reprezentowane są przez ciągi kombinacji zerojedynkowych. Zwiększenie stopnia
Modele i narzędzia optymalizacji w systemach informatycznych zarządzania
Politechnika Poznańska Modele i narzędzia optymalizacji w systemach informatycznych zarządzania Joanna Józefowska POZNAŃ 2010/11 Spis treści Rozdział 1. Metoda programowania dynamicznego........... 5
WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą
1. Statystyka odczytać informacje z tabeli odczytać informacje z diagramu 2. Mnożenie i dzielenie potęg o tych samych podstawach 3. Mnożenie i dzielenie potęg o tych samych wykładnikach 4. Potęga o wykładniku
Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26
Rozdział 4 Macierze szyfrujące Opiszemy system kryptograficzny oparty o rachunek macierzowy. W dalszym ciągu przypuszczamy, że dany jest 26 literowy alfabet, w którym utożsamiamy litery i liczby tak, jak
Rijndael szyfr blokowy
Rijndael szyfr blokowy Andrzej Chmielowiec 24 lipca 2002 1 Podstawy matematyczne Kilka operacji w standardzie Rijndael jest zdefiniowanych na poziomie bajta, przy czym bajty reprezentują elementy ciała