next up previous contents
Next: Kvantové obvody Up: Matematické modely počítačů Previous: Kvantový Turingův stroj   Obsah

Modely kvantových počítačů

Před tím, než je možné vůbec nějaký kvantový počítač vyrobit, je nutné přijít s modelem funkce takového počítače. V roce 1980 přišel Benioff s modelem, který se podobal KTS. Čtecí hlava byla vyměněna za zařízení, které zprostředkovává kvantově-mechanické interakce a ovlivňuje například spiny částic, kterými kódujeme stavy 0 a 1. Vývoj byl nahrazen Hamiltoniánem ve Schrödingerově rovnici. Důležité bylo, že se stroj vyvíjel po pevných krocích. Na konci každého z nich byl klasicky odečten bit z pásky. Mezi kroky se systém kvantově vyvíjel. Klasické měření na konci každého cyklu však neumožnilo využít vlastností kvantových počítačů úplně, protože zničilo křehkou superpozici stavů na pásce. Navíc s použitím časově nezávislého Hamiltoniánu by bylo nesmyslně potřeba znát výsledek výpočtu na počátku, protože by takový Hamiltonián musel obsahovat všechny informace o tom, jak se bude výpočet ubírat a nemohl se dynamicky vyvíjet. Jeho nedokonalost dále souvisí také s velkou vzdáleností, kterou působí čtecí hlava na pásku a nedovoluje navrhnout pouze lokálně působící evoluční operátor s časově nezávislým Hamiltoniánem. Tyto nedostatky odstranil v roce 1985 Richard Feynman. Popsal výpočet na kvantovém počítači jako posloupnost výpočetních úkonů na logických kvantových branách a jejich zapojení v kombinačním obvodu. Jak bylo dokázáno, je popis výpočtu pomocí kvantových obvodů výpočetně ekvivalentní výpočtu na kvantovém Turingově stroji. Obvod se musel skládat z reverzibilních logických operací (bran). Každá taková operace byla vyjádřena nějakým operátorem $\textbf{\textit{A}}$. Provedení $k$ operací během výpočtu pak bylo zapsáno jako součin operátoru každé operace. Aby bylo možné vyjádřit Hamiltonián, který by implementoval funkci daného obvodu a zároveň sledoval v jakém stádiu se výpočet nachází, navrhl Feynman přidat ke qubitům reprezentujícím vstupy a výstupy obvodu dalších $k+1$ qubitů, kde $k$ je počet bran obvodu. Tyto qubity slouží vlastně jako čítač programu a informují nás, kolik logických bran již bylo použito, tj. v jakém stádiu se výpočet nachází. Místo, ve kterém se právě nachází výpočet je označeno obsazeným qubitem (s hodnotou 1), který se nazývá kurzor. Abychom mohli postupně qubity čítače nastavovat a mazat, je zapotřebí nových operátorů, které by to prováděly. Tyto operátory se označují $c$ a $a$ a nazývají se kreační a anihilační operátory, které nastavují kurzor na 1, respektive 0. Kdykoliv naměříme kurzor na posledním qubitu, je jasné, že při výpočtu již byly aplikovány všechny brány a výpočet je u konce. Výsledný Hamiltonián má pak tvar:

\begin{displaymath}\textbf{\textit{H}} = \sum_{i=0}^{k-1} \textbf{\textit{c$_{i+...
...\textit{a$_i$}} \cdot \textbf {\textit {A$_{i+1}$}})^{\dagger}.\end{displaymath}

Oba zmíněné operátory tak vlastně pohybují kurzorem dopředu a dozadu, podle použitých bran. S průběhem výpočtu jsou přímo korelovány přes operátory logických funkcí A. O všech operátorech budeme blíže hovořit v kapitole o kvantových obvodech. U Feynmanova modelu se předpokládá, že evoluční operátor umožňuje qubitům interakce na libovolnou vzdálenost. Tento problém (vzhledem k možné implementaci) vyřešil ještě v roce 1985 David Deutsch s jeho lokálním časově nezávislým evolučním operátorem, ovlivňujícím pouze přilehlé qubity. V takovém případě je však potřeba mít časově závislý Hamiltonián.


next up previous contents
Next: Kvantové obvody Up: Matematické modely počítačů Previous: Kvantový Turingův stroj   Obsah
Bashar 2001-01-23