Č FAKULTET ELEKTROTEHNIKE I RAČUNARSTVAsigurnost.zemris.fer.hr/kvant/2004_hrg/diplomski.pdf ·...

54
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1444 Simulator kvantnog računala Dalibor Hrg Zagreb, travanj 2004.

Transcript of Č FAKULTET ELEKTROTEHNIKE I RAČUNARSTVAsigurnost.zemris.fer.hr/kvant/2004_hrg/diplomski.pdf ·...

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD br. 1444

Simulator kvantnog računala

Dalibor Hrg

Zagreb, travanj 2004.

2

Ovim putem zahvaljujem velikanima matematike i fizike kao što su Carl Friedrich Gauss, Erwin Schrödinger, Werner Heisenberg i Richard P. Feynman, za niz lijepih teorema i teorija koje su me inspirirale ne samo za pisanje ovog rada već za samostalno istraživanje u području kvantnog računarstva i kvantne mehanike. Isto tako zahvaljujem svi profesorima i prijateljima koji su diskusijama doprinijeli razumijevanju pojedinih stvari.

3

Sadržaj 1. Uvod ................................................................................................................................5 2. Turingov stroj ................................................................................................................6

2.1. Definicija Turingovog stroja.....................................................................................6 2.2. Izračunljivost funkcije i odlučivost predikata...........................................................7 2.3. Church-Turing hipoteza i univerzalni Turingov stroj...............................................8

2.3.1. Halting problem.............................................................................................. 10 2.4. Klase polinomske složenosti...................................................................................10

2.4.1. Turingov stroj s više traka .............................................................................. 11 3. Logički sklopovi ...........................................................................................................13

3.1. Kompletnost baze ...................................................................................................13 Teorem 3.1. Baza { , , }AND OR NOT je kompletna.................................................. 14

3.2. Turingov stroj i logički sklopovi ............................................................................15 3.2.1. Klasa složenosti P/poly.................................................................................. 15 Teorem 3.2. P⊂P/poly ............................................................................................. 15

4. NP klasa složenosti.......................................................................................................17

4.1. Polinomska reducibilnost i NP kompletnost...........................................................18 Teorem 4.1 (Cook, Levin) SAT ∈ NP i SAT je NP kompletan .............................. 20 Teorem 4.2 SAT∝ 3-SAT. ........................................................................................ 20

5. BPP klasa složenosti ....................................................................................................22

Teorem 5.2 BPP ⊆ P/poly ....................................................................................... 23 6. Hijerarhija klasa složenosti ........................................................................................25 7. Linearna algebra i Diracova notacija ........................................................................27

7.1. Diracova notacija ....................................................................................................27 7.2. Unitarni (Hilbertovi) prostori .................................................................................28 7.3. Tenzorski produkt...................................................................................................30

8. Qubit i kvantna informacija .......................................................................................32

8.1. Qubit .......................................................................................................................32 8.2. Sustav s više qubitova.............................................................................................32 8.3. Kvantna vrata..........................................................................................................33 8.4. Kvantni sklopovi i kopiranje kvantnih stanja .........................................................35

Teorem 8.1 (No-cloning teorem). ............................................................................. 35 9. Kvantni algoritmi.........................................................................................................37

9.1. Kvantni paralelizam................................................................................................37 9.2. Deutsch-Jozsa algoritam.........................................................................................39 9.3. Groverov algoritam.................................................................................................42

4

10. Simulator kvantnog računala ...................................................................................47 10.1. Pokretanje aplikacije QPS ....................................................................................47 10.2. Inicijalizacija kvantnog registra............................................................................48 10.3. Uporaba operatora Hadamard, Pauli-X i Pauli-Z .................................................49 10.4. Simulacija Deutsch-Jozsa algoritma.....................................................................50 10.5. Simulacija Groverovog algoritma.........................................................................50

11. Zaključak....................................................................................................................53 12. Literatura ...................................................................................................................54

5

1. Uvod Sa stanovišta povijesti može se slobodno reći kako je temelj postojanja računala spremnik u kojem se nalazi niz bitova nad kojim se obavljaju logičke i aritmetičke operacije. Prvo računalo je pokušao izgraditi Charles Babbage 1833. kada je započeo rad na tzv. analitičkom računalu. To računalo nije nikada napravljeno. Razvoj današnjih računala započinje 1936. kada Turing i Church uvode nezavisno definiciju algoritma. U vremenu od 1900. do 1936. stvorena je kvantna mehanika koja opisuje ponašanje mikrosvijeta poput atoma, elektrona i fotona. Teorija dopušta da se foton nalazi na više puteva istovremeno kao i da se pobuđen elektron nalazi istovremeno u dvije orbite. Kvantna mehanika je zasnovana na Hilbertovom prostoru odnosno unitarnom vektorskom prostoru nad poljem kompleksnih brojeva. Vektor u tom prostoru predstavlja stanje neke čestice ili objekta nad kojim djeluju unitarni i hermitski linearni operatori. Za razliku od klasičnog računarstva, osnovni elementi u kvantnom računarstvu nisu bitovi već qubitovi ili elementi dvodimenzionalnog Hilbertovog prostora ( 2C ). Qubitovi mogu poprimiti jedno od stanja baze | 0⟩ , |1⟩ ili njihovu superpoziciju stanja (eng. superposition of states) koja se prikazuje kao | | | Cψ α β α β⟩ = 0⟩ + 1⟩ , ∈ . Niz qubitova čini kvantni registar a stanje u registru se opisuje tenzorskim produktom 2

1 2| | ... | ( )nnCψ ψ ψ ⊗⊗ ⊗ ⊗⟩ ⟩ ⟩∈ . Ideju

kvantnog računarstva je prvi uveo Feynman 1982. kao mogućnost simuliranja kvantnog sustava na kvantnom računalu. Matematički model prvi uvodi Deutsch 1985. te je sličan Turingovom stroju. Danas uz Deutsch-Jozsa algoritam postoje još pet kvantna algoritma među kojima slijedeća dva navedena imaju veliku ulogu u računarstvu. Shor je 1994. pokazao kako postoji algoritam faktorizacije brojeva polinomijalne složenosti 3( )O n dok je Grover 1996. pokazao algoritam pretraživanja nesortirane baze podataka složenosti

( )O n gdje je n broj zapisa u bazi podataka. Jedan od važnijih rezultata teorije kvantne informacije je teorem o nemogućnosti kopiranja nepoznatog kvantnog stanja (superponiranog stanja) za razliku od bitova koji se mogu kopirati Booleovim sklopovima. Kopiranjem superponiranog stanja dobiva se tzv. Bell-ovo ili EPR (Einstein-Podolsky-Rosen) stanje a ne originalno stanje što je glavni adut kvantne kriptografije. Kako bi se shvatila veća učinkovitost kvantnog nad klasičnim računarstvom, potrebno je vidjeti u koje klase složenosti pripadaju postojeći kvantni algoritmi i kako oni utječu na neke hipoteze klasičnog računarstva. Posebno poglavlje se bavi pitanjem velikih matematičkih problema kao što su uređenosti klasa P, PSPACE i NP. U radu su prikazani matematički temelji klasičnog računarstva kao i definicije klasa složenosti te njihova međusobna uređenost. Dan je potreban matematički formalizam kvantne mehanike, nužan za opisivanje kvantnih algoritama. Pokazat će se kako kvantno računarstvo zapravo predstavlja generalizaciju klasičnog računarstva i da je moguće simulirati kvantne algoritme na klasičnom računalu ali uz veliku vremensku neučinkovitost. U svrhu boljeg razumijevanja kvantne obrade informacija i algoritama poput Deutschovog i Groverovog, izrađen je simulator kvantnog računala. Simulator omogućuje lakše baratanje operatorima i qubitovima kao i vizualizaciju stanja kvantnog registra.

6

2. Turingov stroj Može se neformalno reći da je algoritam recept kojim se rješava neki problem. Jedan od najkorisnijih algoritama je npr. zbrajanje brojeva. Brojevi se znaju zbrajati bez obzira na veličinu što je osnovno svojstvo algoritma. Općenito, algoritam se primjenjuje na neki niz znakova koji predstavlja ulaz u algoritam, čime se dobije rezultat ili izlaz iz algoritma. Ulaz u algoritam može predstavljati vrijednosti varijabli neke funkcije ili samo podatke. Na matematičkoj definiciji algoritma radilo se intenzivno oko 1930. sve do 1936. godine kada Turing prvi definira algoritam. 2.1. Definicija Turingovog stroja Definicija 2.1. Turingov stroj (TM) se sastoji od sljedećih komponenata [2]:

- konačni skup znakova S (alfabet); - prazni znak "_" ; - skup A S⊂ kojeg zovemo vanjski alfabet; - konačan skup Q čiji se elementi nazivaju stanjima od TM; - početno stanje 0q ∈ Q ; - funkcija prijelaza : { 1,0, 1}Q S Q Sδ × → × × − + ;

Turingov stroj se prikazuje kao uređen šesterac: TM 0( , _, , , , )S A Q q δ= . Navedene komponente predstavljaju određeni računalni program te je potrebno opisati i arhitekturu na kojoj se taj program izvršava. Temelj te arhitekture čini beskonačna traka koja sadrži elementarne ćelije u koje se zapisuju elementi skupa S . Nad ćelijama trake djeluje zamišljena glava za čitanje i pisanje kojom upravlja kontrolni uređaj. Ćelije se numeriraju brojevima 0,1,2,...., , 1,...N N + . Kontrolni uređaj se sastoji od funkcija prijelaza i spremnika u kojem se zapisuje trenutno stanje tj. element skupa Q . U samom početku, na traci se nalazi niz znakova iz vanjskog alfabeta koji predstavlja ulaz. Kontrolni uređaj se nalazi u početnom stanju 0q . Glava za čitanje i pisanje se nalazi nad krajnje lijevom ćelijom s brojem 0 . Nizovi znakova nad A čine skup koji označavamo *A . Program se izvodi tako da se u svakom koraku izvede jedna prijelazna funkcija čime se mijenja sadržaj trake, stanje kontrolnog uređaja i pozicija glave (može ostati i na istom mjestu). U svakom se koraku pročita znak ps S∈ nad kojim se nalazi glava te se pogleda u kojem se stanju q Q∈ nalazi stroj. Na temelju definirane prijelazne funkcije ( , ) ( ', ', )pq s q s pδ = ∆ , zapiše se novi znak 's na mjesto pročitanog, odredi se novo stanje 'q stroja te se glava za čitanje i pisanje pomakne na novu poziciju indeksa p p+ ∆ .

7

Turingov stroj završava s radom ukoliko nepostoji definirana funkcija prijelaza ili ako se glava za čitanje i pisanje želi pomaknuti nad ćeliju indeksa 0p < . Nakon završetka rada Turingovog stroja, znakovi na traci predstavljaju izlaz algoritma. U nekim literaturama [1, 6] postoji drugačija definicija Turingovog stroja. Ukoliko je potrebno odrediti da li je ulaz u Turingov stroj, prihvatljiv ili ne, može se definiciji 2.1 dodati skup prihvatljivih stanja F Q⊂ . Kaže se da TM prihvaća ulaz, ako je TM završio s izvođenjem i nalazi se u prihvatljivom stanju. Inače se ulaz ne prihvaća. Izmjenjena definicija Turingovog stroja s prihvatljivim stanjima i definicija 2.1 su međusobno istovjetne. TM iz definicije 2.1 se u slučaju prihvaćanja ulaza zaustavi i zapiše na traku znak “1”. Inače se zapiše znak “0” [2]. 2.2. Izračunljivost funkcije i odlučivost predikata Svaki Turingov stroj M izračunava funkciju * * :M A Aϕ → gdje je *A skup svih nizova znakova nad A [2]. Izlaz Turingovog stroja za neki ulaz α je ( )Mϕ α . Ukoliko M nikada ne stane s izračunom, izlaz ostaje nedefiniran. Skup *A čine svi nizovi znakova koji se mogu pojaviti kao ulaz i izlaz na traci TM-a. Svi drugi pomoćni znakovi koji se pojavljuju na traci (osim praznog znaka koji označava da je neka ćelija prazna) su elementi skupa S . Definicija 2.2. Za neku funkciju * *:f A A→ se kaže da je izračunljiva ako postoji Turingov stroj M tako da je M fϕ = [2]. Osim funkcija, postoje i predikati. Pod predikatom se smatra funkcija s Booleovim vrijednostima: 1 (istina) i 0 (laž). Za neki predikat *( ) : {0,1}P Aα → se kaže da je odlučiv ako postoji Turingov stroj koji odluči da li je P istina ili laž za svaki *Aα ∈ [2]. Navedene definicije izračunjljivosti i odlučivosti se mogu lako proširiti na funkcije i predikate s više varijabli. Definicija 2.3. Za neku funkciju * *: ( )nf A A→ se kaže da je izračunljiva ako postoji Turingov stroj M tako da je , M n fϕ = [2]. Turingov stroj M izračunava funkciju s n varijabli * *

, : ( )nM n A Aϕ → ako vrijedi izraz

(2.1). , 1 2 ( # #...# )M n nϕ α α α = izlaz od M za ulaz na traci 1 2# #...# nα α α (2.1)

p

0s 1s 2s 3s 4s ∆

Slika 2.1. Traka Turingovog stroja s pozicijom glave nad p-tom ćelijom.

8

U ovom slučaju se vanjski alfabet proširuje znakom # koji odjeljuje varijable tj. nizove znakova na traci Turingovog stroja M. Često puta se govori da neki Turingov stroj M prihvaća jezik L [6]. Ako postoji vanjski alfabet A tog stroja, pod jezikom se smatra skup *L A⊂ za koji vrijedi:

*{ | ( ) 1}ML u u A uϕ= ∈ ∧ = . Skup L je skup svih nizova znakova koje TM M prihvaća. Kao primjer rada Turingovog stroja, izrađuje se stroj M koji prihvaća jezik

* *{ | {0} {1} | | | |}L uv u v u v= ∈ ∧ ∈ ∧ = . Npr. niz 000111 pripada dok nizovi 001 i 0001111 ne pripadaju jeziku. TM M se radi na sljedeći način: TM 0 1 2 3 4 4 0: ( {0,1, _, , }, {0,1}, Q { , , , , }, { }, , )M S c d A q q q q q F q q δ= = = = Funkcije prijelaza su: 0 1( ,0) ( , , 1)q q cδ = + 1 1( ,0) ( ,0, 1)q qδ = + 2 2( , ) ( , , 1)q d q dδ = − 0 3( , ) ( , , 1)q d q dδ = + 1 1( , ) ( , , 1)q d q dδ = + 2 2( ,0) ( ,0, 1)q qδ = − 3 3( , ) ( , , 1)q d q dδ = + 1 2( ,1) ( , , 1)q q dδ = − 2 0( , ) ( , , 1)q c q cδ = + 3 4( , _) ( , _,0)q qδ = U samom početku glava se nalazi nad krajnje lijevom ćelijom i u početnom je stanju 0q . Prvi znak 0 se označi s znakom c i u stanju 1q se traži prvi znak 1 koji se zamjeni s znakom d. Pređe se u novo stanje 2q u kojem glava ide lijevo čime se traži najlijeviji znak 0. Stvar se ponavlja od početnog stanja sve dok na traci nisu svi znakovi c i d čime se uspijeva doći u prihvatljivo stanje 4q i tu stroj stane. Za sve druge slučajeve postoje nedefinirani prijelazi a stroj tada stane u stanjima koja nisu prihvatljiva. 2.3. Church-Turing hipoteza i univerzalni Turingov stroj Prema svemu prije navedenom, očigledno je da je konstrukcija Turingovog stroja jasna i logična za izvedbu nekog algoritma. Takvo razmišljanje je potaklo Turinga da iznese hipotezu (2.2) [1].

“ Svaki algoritam se može realizirati Turingovim strojem.” (2.2) Sličnu hipotezu je postavio i Church ali nad drugačijim modelom od Turingovog stroja jer se bavio lambda proračunom. Hipoteza je dobila ime Church-Turing jer su je istovremeno i nezavisno donijeli ali je model ostao prema Turingu, Turingov stroj. Sama hipoteza nije matematički teorem već formalna izjava o algoritmu te ju prate mnogi empirički dokazi kao i sama logika o konstruiranju Turingovog stroja za neki algoritam [1]. Uz Turingov stroj koji ima jednu traku, postoji i prošireni modeli s više traka kao i s više tragova [6]. Turingovi strojevi s više tragova mogu stavljati u jednu ćeliju više znakova.

9

Prijelazna funkcija je u tom slučaju dana izrazom (2.3). 1 2 1 2 ( ,[ , ,..., ]) ( ,[ , ,..., ], ) , , , , { 1,0, 1}n k m k n m i iq a a a q b b b p q q S a b S pδ = ∆ ∈ ∈ ∆ = − + (2.3) To se može shvatiti kao da traka stroja ima k paralelnih podtraka ili tragova koje su jedna ispod druge. Svaki znak ia pripada i -tom tragu i zapisuje se u ćeliju nekog indeksa j . Prema tome, ti znakovi imaju isti indeks ćelija u kojima se nalaze, što glava za čitanje vidi kao znak 1 2[ , ,..., ]ka a a koji je u ćeliji indeksa j . Ovaj apstraktni model se nesmije shvatiti kao model s više traka jer taj model ima onoliko glava koliko i traka. Isto tako, postoje i drugi modeli poput modela s proširenim stanjem gdje je stanje stroja [ , ] Q, i j jq a a S∈ ∈ . Time se omogućuje da stroj pamti u samom stanju jedan ili više pročitanih znakova s trake. To se koristi kada je potrebno simulirati strojeve s više traka na stroju s jednom trakom [6]. Turingov stroj je konačan objekt tj. ima alfabet, prijelazne funkcije i skup stanja što se prikazuje nizom znakova. Prema tome, neki TM se može kodirati (predstaviti) nizom znakova koji se zapisuju kao ulaz u drugi TM. Tako se dolazi do pojma univerzalnog Turingovog stroja U koji simulira rad nekog Turingovog stroja M. Univerzalni Turingov stroj U prihvaća kao ulaz par ([ ], )M x gdje [ ]M predstavlja kodirane instrukcije stroja M dok je *x A∈ ulaz za stroj M. Na traku stroja U se prvo smjeste instrukcije stroja M a potom slijedi niz znakova kao ulaz stroja M. U izračunava funkciju u ako vrijedi (2.4) [2]. ([ ], ) ( )Mu M x xϕ= (2.4) U tom se slučaju kaže da U simulira M za bilo koji ulaz *x A∈ . Postojanje univerzalnog stroja koji simulira neki stroj M je posljedica Church-Turingove hipoteze [2]. Turingov stroj je algoritam ali i niz znakova koji može predstavlja ulaz za neki drugi Turingov stroj. Postojanje univerzalnog stroja za bilo koji stroj M je teorem za razliku od Church-Turing hipoteze koja se ne može dokazati. Dokaz da se može konstruirati univerzalni stroj U za neki stroj M je jednostavan. Dokaz ide ovako: Na traku univerzalnog stroja U se redaju instrukcije ili funkcije prijelaza stroja M tako da se između svake instrukcije stavlja znak koji predstavlja graničnik. Potom se dodaje na kraj zadnje instrukcije niz znakova kao ulaz u stroj M. Ovdje se ne koristi više tragova trake odnosno viši apstraktni model stroja već se radi s jednom trakom u čiju ćeliju stane jedan znak. Univerzalni stroj mora staviti oznaku pozicije glave stroja M pored mjesta prvog znaka i tražiti instrukcije koje imaju na lijevoj strani par (početno stanje, znak). Potom se glava univerzalnog stroja vraća do oznake gdje se glava za čitanje i pisanje stroja M nalazi i napravi promjenu u skladu s nađenom funkcijom prijelaza. Potrebno je dodatno mjesto na traci u koje se zapisuje stanje stroja M koji se simulira. Stanja univerzalnog stroja se razlikuju od stanja stroja M koja se moraju zapisivati na traku kako bi se mogla naći odgovarajuća instrukcija za sljedeći korak. Za potrebe traženja stanja i odgovarajućih funkcija prijelaza, potrebno je napraviti dodatne prijelazne funkcije za uspoređivanje niza znakova. Uglavnom, stvar je postala komplicirana ali je U uvijek moguće konstruirati na opisani način [2].

10

2.3.1. Halting problem Neka je dan predikat P koji je istinit ukoliko se neki Turingov stroj M za ulaz *x A∈ zaustavi ili je lažan ako se M ne zaustavi (ušao je u beskonačnu petlju ili npr. pomiče glavu zauvijek u desno). ( , )P M x = “ Turingov stroj M se zaustavi za ulaz x ” (2.5) Može se pokazati da predikat (2.5) nije odlučiv tj. ne postoji Turingov stroj U koji bi odlučio taj predikat. U dokazu se koriste univerzalni Turingovi strojevi. Dokaz. Pretpostavi se da postoji algoritam odnosno stroj U koji kao ulaz dobije niz znakova ([ ], )M x te stane s izvođenjem i zapiše na traku znak “1” ili “0”. “1” se zapiše ukoliko M stane za ulaz x a “0” ako M ne stane što znači da je u beskonačnoj petlji. Definira se novi stroj 'U koji ima ulaz y i simulira stroj U za ulaz ( , )y y . Stroj 'U radi ovako: uđe u petlju ako U vrati “1” ili se zaustavi ako U vrati “0”. Da li se 'U zaustavi za ulaz [ ']U ? Pretpostavi se da se 'U zaustavi. Prema tome U se zaustavi i vrati “0”. Kao ulaz, U dobiva ([ '],[ '])U U što znači da je stroj 'U iz prvog argumenta u beskonačnoj petlji. To je kontradikcija pretpostavki da se 'U zaustavio [2]. Q.E.D. 2.4. Klase polinomske složenosti Izračunljivost neke funkcije ili odlučivost predikata ne garantira izvodljivost algoritama u praksi. Od važnosti su algoritmi koji su učinkoviti zbog čega se uvodi pojam klase složenosti. Iako za izračun neke funkcije mogu postojati različiti TM-ovi, oni mogu ali i nemoraju pripadati u istu klasu složenosti. Svrstavanjem algoritama u pojedine klase složenosti kao i njihovom međusobnom uređenošću, bavi se područje računalne složenosti (eng. Computational complexity). U ovom poglavlju od interesa su problemi koji se mogu učinkovito riješiti tj. postoji učinkovit Turingov stroj koji izračunava neku funkciju ili odlučuje neki predikat. Za neku funkciju ( )f n se kaže da je polinomskog rasta ako je ( ) df n cn≤ gdje su c i d konstante. Kraće se piše ( ) ( )f n poly n= . Često se još kaže (preciznije zbog stupnja polinoma) da se ( )f n ponaša kao ( )dO n gdje se konstanta c zanemaruje. Definicija 2.4. Za neku funkciju ( )f n se kaže da se ponaša kao ( )dO n ako postoji konstanta c i broj 0n tako da je ( ) df n cn≤ za sve 0n n> [2]. Od interesa su u nastavku poglavlja funkcije i predikati koji za domenu imaju skup *B gdje je {1,0}B = . Dakle, niz znakova nad skupom B .

11

Definicija 2.5. Neka funkciju F na skupu *B je izračunljiva u polinomskom vremenu ako postoji Turingov stroj kojemu je potrebno ( ) ( )T n poly n= pomaka glave da izračuna F gdje je n duljina ulaza u znakovima [2]. Definicija je ista ako se radi o predikatu *:F B B→ pa se kaže da je predikat odlučiv u polinomskom vremenu. Skup svih funkcija i predikata izračunljivih odnosno odlučivih u polinomskom vremenu se označava s P [2]. Osim broja koraka, važno je znati i koliko ćelija trake se koristi u odlučivanju (izračunavanju) nekog predikata (funkcije). Iz tog razloga je stvorena klasa prostorne složenosti. Definicija 2.6. Neka funkcija F na skupu *B je izračunljiva u polinomskom prostoru ako postoji Turingov stroj kojemu je potrebno ( ) ( )s n poly n= ćelija trake da izračuna F gdje je n duljina ulaza u znakovima [2]. Skup svih funkcija i predikata izračunljivih odnosno odlučivih u polinomskom prostoru se označava s PSPACE [2]. Svaki stroj koji radi u polinomskom vremenu zapravo radi i u polinomskom prostoru što znači da je P⊆ PSPACE [2]. Većina eksperata i matematičara vjeruje da je to istina tj. P≠ PSPACE iako to još nije dokazano (nije dokazan drugi smjer). Ovo je jedan je od poznatih matematičkih problema. 2.4.1. Turingov stroj s više traka Osim Turingovog stroja s jednom trakom, postoji Turingov stroj koji se sastoji od jedne ulazne trake, m ( 1)m ≠ radnih traka i jedne izlazne trake. Prema tome za svaku traku postoji jedna glava za čitanje i pisanje. Takav stroj se naziva Turingov stroj s m traka. U svakom koraku TM pročita 2m + znaka, pređe u novo stanje, zapiše 2m + znaka i pomakne međusobno nezavisne glave na nove pozicije. Može se pokazati kako je TM s više traka učinkovitiji od TM-a s jednom trakom odnosno moguće je simulirati rad TM-a s više traka na TM-u s jednom trakom uz povećanje vremenske složenosti. Neka se uzme TM s dvije trake koji radi u vremenu ( )T n za ulaz duljine n. Tvrdi se da je moguće simulirati njegov rad na TM-u s jednom trakom u vremenu 2( ( ) )O T n [6]. Dokaz. Neka je TM2 stroj s dvije trake i prema gore opisanom ima zapravo četiri trake: ulaznu, dvije radne i jednu izlaznu. Funkcija prijelaza je dana s (2.6).

1 2 3 4 1 1 2 2 3 3 4 4

,

( , , , , ) ( , , , , , , , , ) , , , { 1,0, 1}

n m

n m i i i

q a a a a q b p b p b p b pq q Q a b A pδ = ∆ ∆ ∆ ∆

∈ ∈ ∆ ∈ − + (2.6)

TM1 je stroj s jednom trakom. Potrebno je kodirati znakove k-tih ćelija na sve četiri trake stroja TM2 s znakom koji se zapisuje u k-tu ćeliju stroja TM1. Još se moraju zapisati i četri oznake koje označavaju da li su nad tim znacima glave za čitanje i pisanje što daje ukupno osam potrebnih znakova. To isto se može shvatiti kao da traka stroja TM1 ima osam

12

tragova na koje se zapisuju osam znakova. Prema tome radi se o stroju s proširenim znakovima (četiri znaka + četiri bita koja označavaju položaj glava nad ćelijama istog indeksa) i proširenim stanjima (stanje + brojač glava + četiri znaka za pohranu sadržaja). Prema tome, jedan znak na traci stroja TM1 kodira četiri znaka na trakama stroja TM2 i dodatna četiri bita za oznake pozicija glava. Funkcija prijelaza stroja TM1 je dana s (2.7).

1 2 3 4 1 1 2 2 3 3 4 4

1 2 3 4 1 1 2 2 3 3 4 4

,

([ , , , , , ],[ , , , , , , , ])([ , ', , , , ],[ , , , , , , , ], )

, , , , { 1,0, 1}, {0,1}, , ' {0,1,2,3,4}

n

m

n m i i i i

q c s s s s t a t a t a t aq c s s s s t b t b t b t b p

q q Q s a b S p t c c

δ == ∆

∈ ∈ ∆ ∈ − + ∈ ∈ (2.7)

Stroj TM1 ima prve komponente stanja iste stanjima stroja TM2 samo što se duže u njima zadržava jer postoji brojač pozicija glava c i četiri znaka za memoriranje sadržaja kojeg čitaju glave. TM1 radi u ciklusima tako da svaki ciklus simulira jedan korak stroja TM2. Ciklus se sastoji od dvije akcije: glava stroja TM1 se postavi na krajnje lijevu ćeliju a brojač je 4c = . Glava se počinje kretati na desno sve dok ne nađe jednu ili više od glava što je označeno jednim ili više bitovima u složenom pročitanom znaku. Smanji brojač za broj nađenih glava i redom memorira u složeno stanje komponente (znakove) ispod tih glava. Nastavlja ići desno sve dok brojač nije jednak 0. Potom se brojač postavi na 4 i glava se vraća na lijevo simulirajući akciju stroja TM2 od najdesnije oznake glave prema krajnje lijevoj. Akcija se može izvesti jer je u komponenti stanja zapisano stanje stroja TM2 a u ostalim komponentama stanja TM1, znakovi sa svih traka stroja TM2 nad kojima su glave. Nailaskom na oznaku glave promjeni se sadržaj ćelija oba dva traga koja predstavljaju određenu traku TM2. Nastavi se ići lijevo ponovno sve dok brojač nije 0 tj. dok se ne napravi akcija nad svim tragovima. Time se simulirao jedan korak stroja TM2. Ako stroj TM2 radi u ( )T n koraka onda koristi najviše 2 ( )T n ćelija što je ( ( ))O T n ćelija jer dvije glave mogu ići svaka na svoju stranu u ( )T n koraka. Prema tome, TM1 koristi najviše ( ( ))O T n koraka za simulaciju jednog koraka stroja TM2. Kako ima ( )T n koraka koje je potrebno simulirati, to je ukupno ( ) ( ( ))T n O T n što je 2( ( ) )O T n koraka stroja TM1 [6]. Q.E.D. Dobro je uočiti da gornji dokaz vrijedi i za primjer stroja s n traka gdje je potrebno proširiti složene znakove trake na 2n komponenata dok složena stanja na 2n + komponente. To je u skladu s gornjim dokazom. Prema tome, bilo koji Turingov stroj s n traka se može simulirati na stroju s jednom trakom uz kvadratno povećanje vremenske složenosti. Iz samog dokaza slijedi da se prostorna složenost ne mijenja.

13

3. Logički sklopovi Iako je nemoguće zamisliti rad bilo kojeg računala bez logičkih sklopova, potrebno ih je definirati kako bi se pokazala istovjetnost u izračunavanju funkcija s Turingovim strojem. Pokazat će se da je moguće rad Turingovog stroja za predikat koji je u klasi P, prikazati s logičkim sklopom polinomske složenosti. Logički sklopovi izračunavaju Booleove funkcije. Pod Booleovom funkcijom se smatra funkcija : nF B B→ gdje je {0,1}B = . Skup A je konačan i sadrži elementarne funkcije koje mogu imati različit broj argumenata kao ulaze. Taj se skup još naziva baza. Definicija 3.1. Sklop C nad A je niz pridruživanja. Pridruživanja uključuju ulazne varijable 1 2, ,..., nx x x i pomoćne varijable 1 2, ,..., my y y . Pod j -tim pridruživanjem se smatra 1 2( , ,..., )j j ry f u u u= gdje je jf A∈ a varijable 1 2, ,..., ru u u su ulazne ili pomoćne. Vrijednost zadnjeg pridruživanja odnosno zadnja pomoćna varijabla je vrijednost izračunavanja. Sklop s n ulaznih varijabli 1 2, ,..., nx x x izračunava Booleovu funkciju

: nF B B→ ako je rezultat izračunavanja jednak 1 2( , ,..., )nF x x x za sve 1 2, ,..., nx x x . Na isti način se definira izračunavanje funkcije : n mF B B→ samo što izlaz iz sklopa predstavlja m pomoćnih varijabli [2]. Neki logički sklop izračunava neku Booleovu funkciju na način da se svaka pomoćna varijabla koristi u pridruživanju (desni dio, ulaz u funkciju baze) točno jednom. Time se funkcija može prikazati kao binarno stablo gdje su listovi ulazne varijable a korijen je izlaz. Izlaz se može prikazati kao ovisnost ulaznih varijabli jer je svaka pomoćna varijabla ovisna o ulaznim varijablama u smjeru prema korijenu. 3.1. Kompletnost baze Elementarne Booleove funkcije s dva argumenta su (konjunkcija, disjunkcija i negacija):

1 2 1 2( , )AND x x x x= ∧ , 1 2 1 2( , )OR x x x x= ∨ , ( )NOT x x= ¬ . Njihove tablice vrijednosti (tablica mogućih kombinacija ulaza i pridruženih izlaza svakoj kombinaciji) su dobro poznate i izgledaju: Bilo koja Booleova funkcija se može prikazati svojom tablicom vrijednosti kao i elementarne funkcije (tablica 3.1).

1x 2x 1 2x x∧ 0 0 0 0 1 0 1 0 0 1 1 1

1x 2x 1 2x x∨0 0 0 0 1 1 1 0 1 1 1 1

Tablica 3.1. Prikaz tablica vrijednosti elementarnih Booleovih funkcija.

x x¬ 0 1 1 0

14

Definicija 3.2. Za neku bazu A se kaže da je kompletna ako za svaku Booleovu funkciju F postoji sklop C nad A koji ju izračunava [2]. Teorem 3.1. Baza { , , }AND OR NOT je kompletna [2].

Dokaz. Svaku Booleovu funkciju od n argumenata je moguće prikazati tablicom koja sadrži 2n redaka. Toliko ima različitih mogućih kombinacija vrijednosti ulaznih argumenata. Svakoj kombinaciji je pridružena vrijednost izlaza 1 ili 0. Prema tome, svaka kombinacija ulaznih vrijednosti argumenata za izlaz 1 se može prikazati kao niz konjunkcija literala (varijable ili negacije varijabli). Ukoliko varijabla u kombinaciji poprima vrijednost 0, ona se negira. Gledaju se sve kombinacije koje imaju izlaz 1 i radi se disjunkcija svih napravljenih konjunkcija varijabli tih kombinacija. Očito je da će funkcija za te kombinacije imati izlaz 1. Naveden postupak se može zapisati kao (3.1) [2].

{ , ( ) 1}( ) ( )uu F u

F x xκ=

= ∨ (3.1)

U relaciji (3.1), 1( ,..., )nu u u= je kombinacija ulaznih vrijednosti argumenata dok je funkcija ( ) 1u xκ = za x u= , odnosno ( ) 0u xκ = u suprotnom. Reprezentacija funkcije na način (3.1) se naziva disjunktivna normalna forma ili DNF (disjunctive normal form) [2]. Q.E.D. Teoremom 3.1 se pokazalo da je baza { , , }AND OR NOT kompletna ali ne i minimalna. Upotrebom DeMorganovih teorema, dobiva se: ( )x y x y∧ = ¬ ¬ ∨¬ i ( )x y x y∨ = ¬ ¬ ∧¬ . Prema tome može se zaključiti da su baze { , }, { , }NOT OR NOT AND minimalne i kompletne. Očigledno je da za logički sklop nad bazom { , , }AND OR NOT treba manji broj pridruživanja nego za sklop nad bazom{ , }NOT OR a da izračunavaju istu funkciju. Svako AND pridruživanje je u prvom sklopu potrebno zamijeniti s tri NOT i jednim OR pridruživanjem da se dobije drugi sklop. Definicija 3.3. Broj pridruživanja nekog sklopa nad bazom A koji izračunava Booleovu funkciju F zove se sklopovska složenost i označava se s ( )Ac F . Kako se složenost dva sklopa koja izračunavaju istu funkciju u različitim bazama razlikuje za konstantu tj. 1 2 2 2( ) ( ( )) (1)( ( )) ( ( ))A A A Ac F d c F O c F O c F= = = [2], notacija sklopovske složenosti se piše bez oznake baze: ( )c F .

15

3.2. Turingov stroj i logički sklopovi Turingov stroj odlučuje neki predikat *:F B B→ za bilo koju duljinu znakova koji predstavljaju ulaz. Općenito, svakom predikatu nad *B se može ograničiti ulaz na n znakova. Predikat F u tom slučaju predstavlja Booleovu funkciju za tu duljinu ulaza:

1 2 1 2( ... ) ( , ,..., ), n n inF x x x F x x x x B= ∈ . 3.2.1. Klasa složenosti P/poly Definicija 3.4. Neki predikat F pripada klasi složenosti P/poly ako i samo ako vrijedi

( ) ( )nc F poly n= [2]. Teorem 3.2. P⊂P/poly [2]. Dokaz. Ideja dokaza je pokazati da logički sklop može simulirati rad Turingovog stroja za bilo koji ulaz. Neka je predikat F odlučiv u polinomskom vremenu od nekog Turingovog stroja M. Vrijedi F ∈ P. Kako se ograničuje duljina ulaza na n znakova, predikat postaje Booleova funkcija nF . Za tu funkciju je potrebno konstruirati sklop složenosti

( ) ( )nc F poly n= čime bi se dokazao teorem. Kako je (najvjerojatnije) P⊂ PSPACE, slijedi da je F ∈ PSPACE. Neka je Turingovom stroju M potrebno ( )T poly n= koraka i

( )s poly n= ćelija za izračun predikata. Napravi se tablica koja ima T redaka i s stupaca. U svaki se redak stavlja s ćelija trake koje M koristi. Svaki element ćelije ide u jedan stupac. Tako ulaz koji se stavlja na početak trake ide u red indeksa 0 a nakon što se izvrši jedan korak, sadržaj trake ( s ćelija) se stavlja u redak indeksa 1. Nakon T koraka, u redak indeksa 1T − zapiše se rješenje izračuna predikata koje se nalazi na traci. Dakle, u svaki redak tablice stavlja se jedna konfiguracija čitave trake. Sada se dodaje u svaki redak indeksa p, oznaka glave stroja M tako da ju se upiše u ćeliju indeksa stupca k ako se glava u koraku p nalazi nad ćelijom trake indeksa k. Time svaki redak ima jednu oznaku glave.Ovime se ujedno dobio put izračuna stroja za bilo koji ulaz. Logično je izraditi Turingov stroj M na način da se glava kreće od prve vrijednosti argumenta prema zadnjoj, krajnje desnoj vrijednosti na traci. Glava prvo pročita lijevu i-tu vrijednost varijable i zapiše oznaku prazne ćelije. Pomakne se desno i pročita i+1 vrijednost na temelju čega izračuna funkcijsku ovisnost koja je dana samom elementarnom Booleovom funkcijom između tih varijabla. Rezultat se zapiše zadnju pročitanu ćeliju. Stvar se ponavlja do zadnje vrijednosti koja je rezultat funkcije. Prema tome put glave je točno određen za bilo koje vrijednosti ulaza a prijelazne funkcije se brinu o izračunavanju međurezultata što je jednostavno napraviti jer su elementarne Booleove funkcije { , , }AND OR NOT među varijablama zadane. Ćelije tablice se označe s ,p kΓ gdje je p indeks retka a k indeks stupca. Svaka ćelija tablice se sastoji od konstantnog broja bitova. Dva bita su potrebna da kodiraju vrijednost ćelije koja može biti 0,1 ili prazni znak. Još jedan bit je potreban kako bi se označio da li se glava nalazi nad tom ćelijom. Potrebno je još nekoliko bitova za kodiranje stanja stroja M. Neka se nad ćelijom 1,p k+Γ nalazi glava u p-tom koraku. Ako se

16

zna da će glava doći nad ćeliju 1,p k+Γ u p+1 koraku, tada se glava mora nalaziti nad

jednom od tri ćelije: , 1p k−Γ , ,p kΓ , , 1p k+Γ jer je brzina glave u jednom koraku jedna ćelija.

Prema tome, na vrijednost ćelije 1,p k+Γ utječu vrijednosti ćelija , 1p k−Γ , ,p kΓ i , 1p k+Γ što je funkcijska ovisnost koja se može izvesti s (1)O pridruživanja. Odnosno, svaki bit u ćeliji tablice predstavlja pomoćnu varijablu koja ovisi nekako o svim ostalim bitovima u prethodnom redku tablice. Kombinirajući sve sklopove za sve ćelije tablice, dobije se sklop koji izračunava funkciju za bilo koji ulaz. Kako postoji T s× ćelija potrebno je

( ) (1) ( )O Ts O poly n= pridruživanja [2]. Q.E.D. Sama ideja dokaza je od važnosti kod redukcija predikata i odlučivanja kada je neki predikat u NP klasi složenosti što nije od interesa ovdje. Bitno je i uočiti da Turingov stroj može u polinomskom vremenu izračunati vrijednost Booleove funkcije (točnije predikata) za neki ulaz. Problem redukcije predikata i NP klasa se opisuje u sljedećem poglavlju. Može se pokazati da je klasa P/poly veća od klase P. Uzme se predikat ( ) (| |)F x xϕ= gdje je : N Bϕ → . N je skup cijelih brojeva. Funkcija ϕ može ali i nemora biti izračunljiva. Ako se ograniči duljina ulaza na n znakova, tada će funkcija ϕ biti konstanta tj. .nF F const= = pa se sklop koji izračunava nF može izvesti s (1)O pridruživanja. Prema tome, ( ) ( )nc F poly n= i vrijedi da je F ∈P/poly za bilo koju funkciju ϕ . Ako ona nije izračunljiva odnosno predikat nije odlučiv, vrijedi da F ∉P [2].

17

4. NP klasa složenosti Do sada su se koristili deterministički Turingovi strojevi (DTM ili samo TM) koji u jednom koraku naprave jedinu moguću akciju: (novo stanje, novi znak, pomak) ili je akcija nedefinirana. Osim determinističkih postoje i nedeterministički strojevi (NTM) [2] kojima je u jednom koraku ponuđen skup akcija (novo stanje, novi znak, pomak) za pročitani znak i trenutno stanje. Tako za neki ulaz u NTM postoji više izračunskih puteva od kojih neki mogu završiti prihvaćanjem a neki ne. Od interesa je da postoji barem jedan izračunski put koji završava prihvaćanjem ulaza. NP klasa je definirana samo za predikate pa se govori o njihovoj odlučivosti. Za klasu NP postoje dvije definicije koje su istovjetne, što će biti pokazano. Jedna koristi NTM a druga predikat s dva argumenta koji se odlučuje u polinomskom vremenu. Druga definicija je prirodnija pa se i više koristi u teoriji računalne složenosti. Isto tako se uvodi važne pojmove poput NP kompletnosti i reducibilnosti. U skladu definiciji NP klase, u dokazivanjima se koristi interesantna Arthur-Merlin metafora kojom se lagano pokaže pripadnost predikata u NP klasu. Nezna se da li je P⊆NP što je jedan od najvećih matematičkih problema. Definicija 4.1. Neki predikat F pripada klasi NP ako postoji NTM M takav da je:

( ) 1F x = : ako postoji izračunski put vremenski polinomske složenosti (| |)p x za ulaz x koji završava znakom “1” (istina) na traci stroja kao izlazu.

( ) 0F x = : ako nepostoji izračunski put polinomske složenosti koji završava znakom “1”. (Svi putevi koji se zaustave u (| |)p x koraka završavaju znakom “0”! ). Kao primjer kojim se uvodi prirodnija definicija klase NP, navodi se primjer nekog grafa x za kojeg se provjerava da li ima Hamiltonov ciklus (HC - Hamiltonian cycle) ili put kojim se obilazi (povezuje) sve čvorove grafa točno jednom. Neka je dan predikat (4.1).

( )HC x = “graf x ima Hamiltonov ciklus” (4.1)

Nije poznati algoritam tj. Turingov stroj koji bi u polinomskom vremenu odlučio predikat (4.1). Ono što se može konstruirati je neki Turingov stroj koji u polinomskom vremenu provjerava da li je neki ciklus y Hamiltonov ciklus. Prema tome, moguće je napraviti polinomsko odlučiv predikat kojim se provjerava istinitost izlaza y . Taj predikat je (4.2).

( , )R x y = “ y je Hamiltonov ciklus grafa x ” (4.2)

Ako je predikat (4.2) istinit, može se zaključiti da je HC isto istinit. Upravo takvi problemi spadaju u klasu NP. Definicija 4.2. Neki predikat F pripada klasi NP ako se može prikazati kao (4.3) [2].

( ) ( (| | (| |)) ( , ) )F x y y h x R x y= ∃ < ∧ (4.3)

18

U definiciji 4.2, (| |)h x je neki polinom a ( , )R x y je predikat odlučiv u polinomskom vremenu odnosno u (| | | |)poly x y+ koraka zbog čega se i traži da je | | (| |)y h x< . Ova definicija je u skladu s opisanim primjerom predikata HC. Može se pokazati da su definicije 4.1 i 4.2 istovjetne. Prvo se pokaže da definicija 4.1 implicira definiciju 4.2. Neka je ( , )R x y = “ y je izračunski put koji započinje ulazom x i završava izlazom “1” u (| |)p x koraka ”. Ako se kodira taj izračunski put tako da je | | (| |)y p x< onda se može uzeti da je (| |) ( (| |))h x O p x= što je polinom. Potrebno je pokazati još da je R∈P što se može ako nekim TM-om brojimo korake danog izračunskog puta kao ulaza koji počinje s x, i u (| |)p x koraka daje izlaz “1”. Ta provjera je očito polinomske složenosti. Iz druge strane, definicija 4.2. povlači definiciju 4.1. Konstruira se NTM koji radi tako da svoj izračunski put y zapiše na traku pored ulaza kao #x y . Sada se provjerava da li je | | (| |)y p x< i onda odlučuje predikat ( , )R x y koji je prema definiciji 4.2. polinomsko odlučiv. Tako NTM odlučuje da li je ( ) 1F x = ili ( ) 0F x = . Time je dokazana istovjetnost definicija 4.1 i 4.2 [2]. Kod određivanja NP problema, često se koristi Arthur-Merlin metafora koja je jednaka definiciji 4.2. Kralj Arthur ima mentalne mogućnosti polinomsko ograničene dok čarobnjak Merlin nije mentalno ograničen i zna sve. Arthur želi riješiti problem Hamiltonovog ciklusa nekog grafa x tj. odlučiti predikat HC međutim to je iznad njegovih mentalnih mogućnosti. U pomoć dolazi Merlin koji to lagano riješi i uvjerava Arthura da je HC istinit. Međutim, Arthur ne vjeruje Merlinu jer je on previše pametan da bude lojalan. Arthur predlaže da Merlin zapiše pred njim dokaz y kojim se tvrdi da je HC istinit. Arthur tada pristupi provjeri dokaza y nekom polinomskom procedurom ( , )R x y čime se rješava problem. Predikat kojim Arthur provjerava dokaz mora biti polinomske složenosti i on je dan s (4.4) [2].

( , )R x y = “ y je dokaz za ( )HC x ” (4.4) Dokaz y isto tako mora biti polinomske duljine od | |x inače Arthur nebi mogao odlučiti

( , )R x y što opravdava definiciju 4.2. 4.1. Polinomska reducibilnost i NP kompletnost Ideja reduciranja je jedna od najvažnijih ideja u teorijskom računarstvu i proučavanju složenosti. Ovdje će se uvesti prvo u primjeru a potom se daje definicija. Spomenut je predikat HC koji je istinit ako neki graf x ima Hamiltonov ciklus. Još jedan primjer koji spada u klasu NP je problem trgovačkog putnika (TSP, traveling salesman problem) [1] koji glasi: Dan je graf x s n čvorova koji predstavljaju gradove i zadanim udaljenostima

ijd između čvorova. Potrebno je odlučiti da li se može obići sve čvorove tako da ukupni pređen put ne prelazi zadanu duljinu d . Očito je da ako postoji takav put, lagano ga se provjeri zbrajajući duljine čvorova, pa je TSP∈ NP [1]. Ideja redukcije je iskoristiti

19

predikat TSP uz malu promjenu u složenosti za odlučivanje predikata HC. Kaže se još da se predikat HC reducira na predikat TSP. Uzmu se udaljenost 1ijd = za sve spojene čvorove grafa dok 2ijd = za čvorove koji nisu spojeni. Za gornju granicu duljine puta se postavi 1d n= + . Ako se TSP odluči kao istina tj. postoji put koji obuhvaća sve čvorove u duljini puta manjoj od 1d n= + , onda je ta duljina puta jednaka točno n jer je udaljenost svih spojenih čvorova 1. Time se ujedno zaključuje da graf ima Hamiltonov ciklus. Prema tome, uz takav modifciran predikat TSP, rješava se i HC predikat. Definicija 4.3. Predikat 1F se može reducirati na predikat 2F ako postoji funkcija f ∈P takva da je 1 2( ) ( ( ))F x F f x= za sve x. Kaže se još da f reducira 1F k 2F i piše se

1F 2F∝ [2]. Reducibilnost 1F i 2F povlači određena svojstva. Neka je 1F 2F∝ . Onda vrijedi sljedeće:

1. 1F ∈P⇒ 2F ∈P 2. 1F ∉P⇒ 2F ∉P 3. 1F ∈NP⇒ 2F ∈NP

Prva posljedica se lako dokaže. Ako je 1F ∈P i f ∈P onda je očigledno da je 2F ∈P jer vrijedi 1 2( ) ( ( ))F x F f x= . Druga posljedica slijedi iz prve i očigledna je. Kako bi se pokazala treća posljedica, potrebno se vratiti na definiciju 4.2 i Arthur-Merlin metaforu. Arthur dobiva dokaz od Merlina koji tvrdi da je 2( ( ))F f x istina što se provjeri polinomskom procedurom tako da se prvo izračuna ( )f x i onda ide provjera Merlinovog dokaza [2]. Definicija 4.4. Predikat F ∈NP je NP kompletan ako se svaki predikat iz klase NP može reducirati k F [2]. Može se reći da ako bi se neki NP kompletan predikat izvršavao u ( ( ))T poly n koraka, onda se može svaki NP predikat izvršiti u ( )T n koraka. Zbog toga se kaže da su NP kompletni problemi oni najteži problemi u NP. Prema tome ako bi NP kompletan predikat bio element klase P onda bi vrijedilo da je P = NP jer su svi predikati iz NP reducibilni na njega. Kako se vjeruje (najvjerojatnije) da je P ≠ NP, nepostoji NP kompletan predikat koji pripada P. NP kompletni predikati postoje a jedan od njih je ( )SAT x koji znači: “x je propozicijska formula koja je istinita za neke Booleove vrijednosti”. Propozicijska formula se sastoji od Booleovih varijabla i funkcija AND,OR i NOT.

20

Teorem 4.1 (Cook, Levin). SAT ∈ NP i SAT je NP kompletan [2]. Dokaz. Merlin daje Arthuru niz vrijednosti varijabli za koje tvrdi da je formula x istinita pa prema tome je i ( )SAT x istinit. Arthur uzima te vrijednosti i ubaci ih u formulu čime se može pokazati istinitost. Ta provjera je polinomske složenosti na nekom Turingovom stroju (vidi dokaz teorema 3.2 ) pa je SAT ∈ NP. Neka je F neki NP predikat pa vrijedi po definiciji 4.2 da se može zapisati na način kao ( ) ( (| | (| |)) ( , ) )F x y y h x R x y= ∃ < ∧ . Mora se pokazati da se F može reducirati k SAT -u tj. da se polinomsko odlučiv predikat

( , )R x y može odlučiti nekim logičkim sklopom polinomske složenosti. Neka postoji TM M koji izračunava ( , )R x y u (| | | |)poly x y+ koraka. Ulaz u M se zapiše kao #x y gdje je x niz Booleovih vrijednosti kojima se kodiraju varijable. Ulaz y je niz varijabli kojima se želi provjeriti da li je predikat istinit tj. da li je x zadovoljen s y . Po definiciji 4.2 je | | (| |)y h x< . Sada se napravi tablica izračuna kao u dokazu teorema 3.2. Tablica je veličine T s× što je (| | | |)poly x y+ (| | | |)poly x y+ a to je opet složenosti (| | | |)poly x y+ . Takav logički sklop izračunava Booleovu funkciju koja je zadovoljena samo ako je ( ) 1F x = [2]. Q.E.D. Bitnu ulogu u dokazu teorema 4.1 imaju činjenice iz dokaza teorema 3.2 ili da se Turingov stroj polinomske složenosti može simulirati logičkim sklopom polinomske složenosti. Važno svostvo reducibilnosti je tranzitivnost, tj. ako je 1 2F F∝ i 2 3F F∝ onda je

1 3F F∝ što slijedi iz same definicije 4.3. Ovo je praktično ako se želi pokazati da je neki predikat F , NP kompletan. Tada je dovoljno pokazati redukciju SAT -a na F . Može se pokazati da je predikat 3-SAT, NP kompletan. Predikat 3-SAT je zadan na ovaj način: 3- ( )SAT x =“x je propozicijska formula koja je istinita za neke Booleove vrijednosti” gdje se x daje u CNF-u i svaka klauzula ima najviše tri literala. Dakle kao konjunkcija klauzula gdje svaka klauzula predstavlja disjunkciju ne više od tri literala. Literal je varijabla ili negacija varijable. Takav zapis formule se označava s 3-CNF. Kako bi se pokazala NP kompletnost, dovoljno je dokazati sljedeći teorem jer je redukcija tranzitivna [2]. Teorem 4.2 SAT∝ 3-SAT [2]. Dokaz. Pokazano je da se istinitost bilo koje Booleove formule može provjeriti u polinomskom vremenu na nekom Turingovom stroju. Potrebno je Booleovu formulu prikazati u 3-CNF obliku i konstruirati Turingov stroj koji će u polinomijalnom vremenu provjeriti istinitost te formule za dane vrijednosti varijabla. Neka je formula dana kao skup klauzula. Od važnosti su one klauzule koje imaju četiri ili više literala i koje se zapisuju ovako: 1 2{ , ,..., }kl l l . Te klauzule se rastavljaju na nove klauzule od kojih svaka sadrži tri literala uvođenjem novih Booleovih varijabla 1 2 3, ,..., kz z z − :

21

1 2 1

3 1 2

1 3

{ , , }{ , , } { , , }k k k

l l zl z z

l l z− −

¬

¬

Uočiti treba kako postoji 2k − novih klauzula i da je potrebne uvesti nove varijable

1 2 3, ,..., kz z z − kako bi svaka klauzula imala tri literala. Sada se pretpostavi da je početna formula (onu koja se svodi na 3-CNF oblik, zove se još i SAT instanca, dok formulu u 3-CNF obliku još 3-SAT instancom) istinita za dane vrijednosti varijabla. Prema tome, klauzula 1 2{ , ,..., }kl l l mora biti istinita za što je dovoljno da je jedan literal istinit. Neka je

1il = . Nove stvorene klauzule od tri literala moraju biti isto zadovoljene što se postiže tako da se postavi 1 2 2... 1iz z z −= = = = i 1 3... 0i i kz z z− −= = = = . U drugom slučaju, ako je 3-SAT instanca tj. 3-CNF formula istinita za dani niz vrijednost varijabla tada se mora dogoditi jedan od tri moguća slučaja:

1. 1 0z = pa mora biti 1 0l = ili 2 0l = . 2. 3 1kz − = pa mora biti 1 1kl − = ili 1kl = . 3. za neki 4i k≤ − , 11, 0i iz z += = pa mora biti 2 1il + = .

U bilo kojem slučaju, originalna klauzula 1 2{ , ,..., }kl l l će uvijek biti istinita. Prema tome 3-SAT je istinit ako i samo ako je istinit SAT. Primijetiti treba da 3-CNF formula ne prelazi tri dužine formule koja nije u 3-CNF obliku što je konstantni doprinos u polinomskom vremenu simulacije provjere istinitosti 3-SAT predikata. Iz toga se zaključuje da je 3-SAT NP kompletan predikat. [2] Q.E.D.

22

5. BPP klasa složenosti BPP (bounded-error probability time) klasa složenosti sadrži predikate koje odlučuju tzv. vjerojatnosni Turingovi strojevi (PTM) [2]. PTM radi slično kao NTM samo što se nova akcija određuje bacanjem novčića a ne pogađanjem kao što radi NTM. Iako novčić ima dvije strane, može se bacati predmet koji ima više strana (koliko mogućih akcija ima za neki par stanje-znak) jer svaki elementarni događaj ima neku vjerojatnost. Zbroj vjerojatnosti mogućih akcija daje 1. BPP će se definirati isto kao i klasa NP s dvije istovjetne definicije od koje će ona s predikatima biti prirodnija. Definicija 5.1. Neka jeε konstanta takva da je 0 1/ 2ε< < . Neki predikat F pripada klasi složenosti BPP ako postoji PTM M koji se za ulaz x zaustavi nakon polinomskog broja koraka (| |)p x i vrijedi:

( ) 1F x = : ako M daje izlaz 1 (istina, prihvaća) uz vjerojatnost 1 ε≥ − . ( ) 0F x = : ako M daje izlaz 0 uz vjerojatnost ε≤ [2].

Može se pokazati da ako se napravi više kopija istog PTM-a koji odlučuju za isti ulaz, vjerojatnost greške pada eksponencijalno s brojem tih kopija (ponovljenih odlučivanja istim strojem). Ako je vjerojatnost prihvaćanja nekog predikata 1 ε− , greška ima vjerojatnost ε . Želi se vidjeti kako se ta greška ponaša ako se izvede n uzastopnih odlučivanja PTM-om. Na temelju toga će se vidjeti koliko ima izlaza s jedinicom, a koliko s nulom. Stvar je poznatija iz elementarne teorije vjerojatnosti kao Chernoff-ova granica [1] ili pojačanje vjerojatnosti o čemu govori sljedeći teorem. Teorem 5.1. Neka su dane slučajne varijable 1 2, ,..., kX X X . Svaka varijabla poprima vrijednost 1 s vjerojatnošću 1 ε− ili 0 s vjerojatnošću ε . Vjerojatnost da je broj varijabli koje su poprimile 1 manji od broja varijabli koje imaju 0 iznosi (5.1) [1].

( )error 2 (1 ) 1k

kp ε ε λ≤ − = < (5.1)

Dokaz. Vjerojatnost da varijable poprime jednak broj vrijednosti 1 i 0 se može zapisati

ovako: 2 21 1( ,..., ) (1 ) ( ) .k k

k kp X x X x ε ε= = = − Očito je ovo i maksimalna vjerojatnost koja se može dogoditi jer ako postoji manji broj varijabla s vrijednosti 1, ima i više potencija greške ε . Sada je potrebno odrediti ukupan broj kombinacija u kojima je broj varijabli s vrijednosti 0 veći od broja varijabla s vrijednosti 1. Kako ima mogućih kombinacija 2k , lako je odrediti gornju granicu vjerojatnosti greške koja je (5.2) [1].

2 2error 2 (1 ) , 2 (1 )k k

k kp ε ε λ λ ε ε≤ − = = − (5.2)

Q.E.D.

23

Pokazano je kako se vjerojatnost točnog odlučivanja povećava ako se poveća broj eksperimenata. Druga definicija BPP klase složenosti se daje iz razloga jer je prirodnija i koristi se često u dokazima. Definicija 5.2. Predikat F pripada klasi BPP ako postoji polinom p i predikat R odlučiv u polinomskom vremenu tako da je:

( ) 1F x = : ako je udio (frakcija) nizova r duljine (| |)p x koji zadovoljavaju ( , )R x r , veći od 1 ε− .

( ) 0F x = : ako je udio nizova r duljine (| |)p x koji zadovoljavaju ( , )R x r , manji od ε [2]. Potrebno je pokazati da su definicije 5.1 i 5.2 istovjetne. Prvo se pokazuje da definicija 5.1 implicira definiciju 5.2. Neka je predikat ( , )R x r = “za ulaz x , M daje izlaz 1 koristeći

1 2 ( ), ,... p nr r r kao slučajne bitove”. U i-tom koraku PTM M koristi slučajni bit ir niza r . Potrebno je vidjeti da li je R∈P. Uvijek je moguće konstruirati TM čije prijelazne funkcije pokrivaju sve mogućnosti prijelaznih funkcija PTM-a za bilo koji niz slučajnih bitova r . Takav TM ima više prijelaznih funkcija od PTM-a. Stroj isto završava u ( )p n koraka kao i PTM. Prema tome R∈P. Drugi smjer da definicija 4.2 implicira definiciju 4.1 je isto jasan. Neka je dan predikat R i polinom p. PTM radi tako da za ulaz x generira slučajni niz bitova r duljine (| |)p x bacajući novčić (| |)p x puta. Potom računa koristeći taj niz r predikat ( , )R x r . Takav PTM zadovoljava definiciju 5.1 [2]. Kako bi se bolje razumjela definicija NP klase, uvedena je Artur-Merlin metafora koja omogućuje lagano prepoznavanje NP problema. Ovdje se koristi slično gledište na definiciju 5.2. Neka je dan skup {( , ) : (| | ( ) ( , ))}S x y y p x R x y= = ∧ . Za svaki x se napravi skup { : ( , ) }xS y x y S= ∈ . Za neki x, skup xS je veliki (sadrži 1 ε− frakcija nizova duljine

(| |)p x ) ili je mali (sadrži ε frakcija nizova duljine (| |)p x ). Prema tome x F∈ ako je xS velik [2]. Teorem 5.2 BPP ⊆ P/poly [2]. Dokaz. Neka je predikat F ∈BPP i neka postoji PTM M koji odlučuje taj predikat s vjerojatnošću 1 ε− . Uzastopnim ponavljanjem odlučivanja predikata može se prema teoremu 5.1 smanjiti vjerojatnost pogreške na željenu vrijednost. Ako ta vrijednost eksponencijalno pada s duljinom ulaza ( (| |)p x ), može se vidjeti iz teorema 4.1 da je potrebno polinomski broj puta ponoviti odlučivanje. Naka je željena vrijednost greške

' 1/ 2nε < , gdje je | |n x= . Može se konstruirati PTM 'M koji odlučuje F s greškom vjerojatnosti ' 1/ 2nε < . Iz definicije 5.2, može se zaključiti da je potrebno koristiti slučajne nizove r . Za svaki ulaz x, frakcija nizova r koji vode k pogrešnom odgovoru je manja od

' 1/ 2nε < . Kako postoji 2n mogućih različitih nizova r , moguće je zaključiti sljedeće: jedini način da frakcija nizova r bude manja od ' 1/ 2nε < je da uopće nema niza koji bi vodio pogrešnom odgovoru. Prema tome, uvijek postoji niz *r koji vodi k točnom

24

odgovoru. Još više se može pokazati da za sve ulaze x postoji takav niz koji vodi k ispravnom odgovoru. To se postiže ako se konstruira kvadratna mrežu parova ( ,x r ). Kako za svaki fiksiran x mora vrijediti da nema niza r koji vodi k netočnom odgovoru, postoji

*r koji za sve ulaze omogućuje ispravan odgovor. PTM 'M se može transformirati u polinomsko složen sklop kojemu se kao ulaz predočuje par ( ,x r ). Ako se stavi da je

*r r= , dobije se sklop koji odlučuje ( )F x u polinomskom vremenu. Q.E.D. Ovo je nekonstruktivan egzistencijski dokaz jer se pokazalo da *r postoji iako se nije navelo kako se on pronalazi [2].

25

6. Hijerarhija klasa složenosti Prilikom definiranja klasa P i PSPACE pokazano je da je P podskup klase PSPACE ali da se nezna da li vrijedi drugi smjer: PSPACE nadskup od P. Kada bi postojao neki algoritam iz PSPACE klase a da nije u klasi P, moglo bi se tvrditi da vrijedi P≠ PSPACE. Velik broj teoretičara vjeruje da je to ipak istina iako to još nije dokazano. Svega nekoličina teoretičara vjeruje da je P=PSPACE za što postoji neka vjerojatnost. Potom je uvedena klasa NP za koju se može lagano pokazati da vrijedi NP⊆PSPACE. Prema definiciji 4.2, može se reći, da je moguće za sve y odlučivati predikat ( , )R x y tako da se uvijek koristi polinomski broj ćelija. Ulaz y se uvijek briše i stavlja se novi ulaz na isti dio trake. Prema tome, koristi se polinomski broj ćelija, gdje vrijeme izvođenja nije od važnosti. Vrijedi NP⊆PSPACE. Na isti se način može pokazati da je i BPP⊆PSPACE [1]. Može se pokazati i da je P podskup klase NP ali nije sigurno niti se nezna da li NP sadrži predikat koji nije u P. Time se postavlja još jedno pitanje: da li je P≠ NP? Ako se uzme predikat iz P, očito je da postoji TM koji u polinomskom vremenu provjeri da li je neki y rješenje problema po definiciji 4.1. Time se zaključuje (samo jedan smjer) da je P⊆NP. Većina teoretičara vjeruje da je to istina i u drugom smjeru (NP⊇P), pa vrijedi P≠ NP. Ukoliko bi se dokazalo da je npr. neki predikat koji je NP kompletan u klasi P, ujedno bi se dokazalo da je P=NP. Iz svega navedenog, može se reći da se vjeruje u sljedeću hijerarhiju klasa složenosti: P⊆NP⊆PSPACE [1]. U vremenu od 1960. do 1970. uočeno je kako je PTM najjači model izračunavanja. Neki problem koji zahtjeva k koraka na Turingovom stroju, uvijek se može riješiti na PTM-u s ( )p k koraka gdje je p neki polinom. Prema tome je donesena tzv. jaka Church-Turing hipoteza: “bilo koji izračunski model se može simulirati na vjerojatnosnom Turingovom stroju s najviše polinomskim povećanjem vremenske složenosti” [1]. Ova hipoteza garantira da ako problem nije uopće rješiv, tada ne postoji PTM koji bi ga riješio. Pomutnju su stvorili kvantni algoritmi koji rješavaju učinkovito problem koji nije rješiv na PTM-u pa prema tome niti na drugim modelima izračunavanja. U kvantnom računarstvu postoji BQP klasa složenosti [1, 2] koja je identična klasi BPP, odnosno klasi P samo što je novi model tzv. kvantni Turingov stroj [1]. BQP klasa je klasa koju karakterizira postojanje kvantnih algoritama koji odlučuju neki predikat s velikom vjerojatnošću koristeći polinomsku složenost kvantnih sklopova. Inače vrijedi da je BQP⊆PSPACE [1] i u toj klasi su algoritmi koji nisu rješivi (nezna se da li postoje a da su rješivi) na klasičnim modelima izračunavanja. Ako bi se uspjelo dokazati da neki od tih algoritama nije u klasi P, dokazalo bi se time i da je P≠ PSPACE. Ako bi postojao algoritam u klasi P, povećava se vjerojatnost da je P=PSPACE. Prema tome, kvantni algoritmi su interesantni u rješavanju pitanja jednakosti klasa P i PSPACE. Ukoliko bi kvantna računala bila jača od klasičnih, to bi značilo P≠ PSPACE i time je riješen jedan od najvećih pitanja u teoriji računalne kompleksnosti. Isto tako, dobro je uočiti sljedeće. Kako je BQP⊆PSPACE, svako kvantno izračunavanje se može simulirati na klasičnom računalu. Međutim, to simuliranje će biti vremenski neučinkovito [1]. Kako je simuliranje na klasičnom računalu moguće, Church-Turingova hipoteza i dalje vrijedi. Ono što kvantna računala dovode pod sumnju je valjanost jake Church-Turingove hipoteze [1]. Postoje kvantni algoritmi koji rješavaju određene probleme učinkovito, ali do danas nepostoje (još nisu napravljeni) PTM-ovi za iste probleme. Time je valjanost jake Church-

26

Turingove hipoteze upitna. S druge strane, pojavljuje se pitanje jednakosti klasa P i NP. Naime, kako će biti pokazano u poglavlju 9.3, Groverovom algoritmu za pretraživanje nesortirane baze od N podataka potrebno je ( )O N koraka (poziva crne kutije, eng. oracle, black box). Jedna ideja kako bi se dokazalo da je P=NP jeste da se skup svih argumenata nekog NP kompletnog predikata pretraži algoritmom kojemu je potrebno

2(log )O N koraka. To bi značilo da ako se broj mogućih argumenata ponaša kao 2nN = gdje je n duljina argumenta, algoritam pronalazi rješenje u ( )O n koraka što je polinomska ovisnost o duljini ulaza. Međutim, dokazano je [1] da nije moguće postići pretraživanje bolje od ( )O N koraka ako se koriste crne kutije kao kod Grovera. No to ne znači da ne postoje neke druge metode iskorištavanja samog svojstva nekog problema kojim se tada može postići polinomska odlučivost. To je primjer Shorovog algoritma faktoriziranja [1, 2] koji iskorištava tzv. kvantnu Furierovu transformaciju [1, 3] a ne koristi pozive crne kutije.

27

7. Linearna algebra i Diracova notacija Kvantno računarstvo se temelji na djelovanju unitarnih operatora u konačno dimenzionalnom Hilbertovom prostoru i upotrebi tenzorskog produkta [1]. Tenzorskim produktom nekoliko kvantnih stanja se opisuje kvantno stanje nekog registra. Ovdje se daje kratki uvid u unitarne prostore i definicija tenzorskog produkta. Podrazumijeva se dobro poznavanje osnovnih teorema linearne algebre: svojstva matrica i determinanta, svojstvene vrijednosti i vektori, linearna nezavisnost vektora, dekompozicija operatora, promjena baza operatora, Gram-Schmidt postupak ortonomiranja, skalarni produkt, pojam grupe, baze i sl. Neki koncepti zbog svoje važnosti, poput hermitskog operatora, unitarnog operatora i unitarnog prostora, se obrađuju i u ovom kratkom pregledu. U svrhu preglednijeg baratanja operatorima i skalarnim produktom, uvodi se Diracova notacija [1] koja se široko koristi u kvantnom računarstvu i kvantnoj mehanici. 7.1. Diracova notacija Standardna kvantno mehanička notacija za neki vektor u Hilbertovom prostoru je: ψ . (7.1) Labela ψ označava vektor dok se Diracova notacija ⋅ koristi da se naznači da je to objekt nad kojim se radi neka operacija. Svaki vektorski prostor ima bazu koja ga razapinje, te se svaki vektor može napisati kao linearna kombinacija vektora baze poput (7.2) [1]. i

iu u i=∑ (7.2)

Vektor u se još naziva ket dok postoji njemu i dualan vektor koji se zove bra i označava

se s u . Ta notacija omogućuje ljepše pisanje skalarnog produkta kao [1]: ( ), .i i

iv u v u v u= =∑ (7.3)

Ova definicija skalarnog produkta vrijedi ako se radi o vektorskom prostoru nad poljem realnih brojeva. Međutim, u kvantnoj mehanici se koristi polje kompleksnih brojeva pa će biti potrebno izmijeniti tu definiciju kako će biti prikazano u slijedećem poglavlju. Vektor u zapravo predstavlja vektor stupac:

1

n

u

u

. (7.4)

28

Dualan mu bra vektor u prema tome mora biti vektor redak kako bi množenjem dva vektora u (7.3) dobili skalar po pravilu množenja matrica. Djelovanje linearnog operatora na neki vektor se piše ovako [1]: A u . (7.5) Skalarni produkt vektora v i A u se piše prema definiciji i notaciji skalarnog produkta ovako [1]: ( ), .v A u v A u= (7.6) 7.2. Unitarni (Hilbertovi) prostori Definicija 7.1. Vektorski prostor X nad poljem Θ realnih ili kompleksnih brojeva s funkcijom ( , )x y koja elemente X pridružuje elementima iz Θ je unitaran prostor ako vrijedi [7]:

( ) ( ) ( )( ) ( )( ) ( )( )( )

1 2 1 2

*

1. , , , ,

2. , , ,

3. , ,

4. , 0

5. , 0 0

x y y x y x y x y X

x y x y x y X

x y y x

x x x X

x x x

λ λ λ

+ = + ∈

= ∈ ∈Θ

=

≥ ∈

= ⇔ =

Funkcija ( , )x y se naziva skalarni produkt. Funkcional je funkcija ( )X →Θ pa se skalarni produkt ( , )x y može smatrati funkcionalom za određeni vektor x [7]. Ako se pogleda definicija 7.1, može se uočiti da je skalarni produkt linearni funkcional u drugom argumentu iz uvjeta 1. Uvjet 3. govori kako je potrebno kompleksno konjugirati skalarni produkt ako se zamijene argumenti. Skalarni produkt je ujedno i antilinearan funkcional prvog argumenta jer vrijedi sljedeće svojstvo:

( ) ( ) ( ) ( )* ** *, , , , .x y y x y x x yλ λ λ λ= = = (7.7)

Koristeći (7.7) i svojstvo 1. iz definicije 7.1, može se pokazati antilinearnost skalarnog produkta u prvom argumentu:

( ) ( ) ( )* *1 2 1 2, , , .x x y x y x yλ β λ β+ = + (7.8)

29

U kvantnoj mehanici kao i u kvantnom računarstvu koristi se unitarni prostor nC . Taj prostor je konačne dimenzije i naziva se još Hilbertovim prostorom. Skalarni produkt u konačnom Hilbertovom prostoru se definira ovako [1]:

( ) *

1, , .

nn

i ii

v u v u v u C=

= ∈∑ (7.9)

Ako se primijeni Diracova notacija, skalarni produkt se može pisati na način [1]:

( ) *

1, .

n

i ii

v u v u v u=

= =∑ (7.10)

Za dva vektora ,v u se kaže da su ortogonalni ako vrijedi [1]: 0.v u = (7.11) Isto tako je poznato da ako je vektor normaliziran, skalarni produkt sam sa sobom je 1. Općenito, norma vektora se definira [1]:

.v v v= (7.12) Norma obogaćuje unitarni prostor pa se prostor s definiranom normom naziva još normiran prostor. Unitaran prostor karakterizira i Cauchy-Schwarz nejednakost [1]:

2

.v u v v u u≤ (7.13) Neki linearni operator A se naziva hermitskim ako je †A A= gdje je ( )*† TA A= adjunkta matrice A . Adjunkta neke matrice se dobije tako da se transponira i kompleksno konjugira ta matrica. Može se pokazati da u unitarnom prostoru vrijedi sljedeće [1]: ( ) ( )†, , .v A u A v u= (7.14) Važnost je hermitskih operatora kod dijagonalizacije operatora. Hermitski operatori uvjek imaju realne svojstvene vrijednosti i njihovi svojstveni vektori su ortogonalni [1]. Uvijek se prema tome mogu normalizirati tj. pretvoriti u skup ortonomiranih vektora koji čine bazu u Hilbertovom prostoru. To je moguće, budući ortogonalnost vektora povlači i njihovu linearnu nezavisnost [8]. Neki hermitski operator A se uvijek može dijagonalizirati unitarnom matricom čije vektor stupce čine svojstveni vektori od A . Prema tome u drugoj bazi, operator A je zapravo dijagonalna matrica [1].

30

A je normalan ako je † †AA A A= . Očito je i hermitski operator normalan operator. Neki operator U se naziva unitarnim ako vrijedi: † †UU U U I= = . Unitarni operatori čuvaju skalarni produkt [1]: † .Uv Uu v U Uu v u= = (7.15) Ako se u (7.15) stavi da je v u= , dobije se: 2 2 .Uv Uv Uv v u v Uv v= = = ⇔ = (7.16) Ovo je važno svojstvo unitarnog operatora jer ne mijenja normu vektora. Upravo se zbog tog svojstva u kvantnom računarstvu, unitarni operator uzima za kvantna vrata (kvantni sklop) [1]. Uz postojanje skalarnog produkta (eng. inner product) postoji i vanjski produkt (eng. outer product) koji je važan za definiciju projektora. Projektor je linearni operator koji predstavlja projekciju vektora iz vektorskog prostora u njegov vektorski podprostor. Time se prikazuje proces mjerenja u kvantnoj mehanici. Pretpostavi se vektorski prostor V s ortonomiranom bazom , 0,1...i i n= . Projektor je :P V W→ gdje je W vektorski

podprostor od V s bazom , 0,1...i i k= i gdje je k n< . Neki projektor se može prikazati

kao: , 0,1,... .i

P i i i k= =∑ Ako je jjj Vφ α= ∈∑ onda se djelovanje projektora

prikazuje s j j ij iij ij iP i i j i i Wφ α α δ α= = = ∈∑ ∑ ∑ [1].

7.3. Tenzorski produkt Tenzorski produkt je način stvaranja novog vektorskog prostora veće dimenzije od postojećih vektorskih prostora. Sama konstrukcija je veoma važna i bez nje se nemože pristupiti kvantnim algoritmima i kvantnoj mehanici. U kvantnoj mehanici tenzorskim produktom se opisuju vezana stanja (eng. entalged states) tj. stanja sustava s više čestica [1]. Definicija 7.2. Neka postoje dva vektorska prostora , V W dimenzija ,m n . Tenzorski produkt prostora , V W se označava L V W⊗= i to je novi vektorski prostor dimenzije mn [1, 2]. Neka postoji vektor v V∈ , ii

v v i=∑ i vektor jjw w j=∑ . Tenzorski

produkt vektora ,v w se piše ovako [1]:

( ),

i ji j

v w v w i j⊗ ⊗=∑ . (7.17)

Novi vektor (7.17) pripada vektorskom prostoru L . Često se tenzorski produkt još piše na načine: ,v w v w v w⊗= = .

31

Tenzorski produkt vektora definiran s (7.17) zadovoljava sljedeća svojstva [1]:

( ) ( ) ( )( )

( )1 2 1 2

1 2 1 2

1.

2.

3.

v w v w v w

v v w v w v w

v w w v w v w

λλ λ⊗ ⊗ ⊗

⊗ ⊗ ⊗

⊗ ⊗ ⊗

= =

+ = +

+ = +

Ako se uzme linearni operator A koji djeluje na prostoru V i linearni operator B na prostoru W , definira se A B⊗ na V W⊗ kao [1]: ( ) .B BA v w A v w⊗ ⊗ ⊗= (7.18) Tenzorski produkt k-tog reda vektora v označava se kv ⊗ što znači tenzorski produkt vektora sam sa sobom k puta [1]. Na isti način se označava i tenzorski produkt višeg reda nekog operatora. Skalarni produkt na prostoru V W⊗ se definira uz pomoć skalarnog produkta vektora na prostoru ,V W [1]:

( ) ( )( ), ' ' , ' , ' ' ' .v w v w v v w w v v w w⊗ ⊗ = = (7.19) Može se pokazati da je definicija (7.19) opravdana jednadžbama (7.10) i (7.17). Tenzorski produkt dvije matrice se definira [1]:

11 1

1

N

N NN

BA B A B

AA B A B

⊗ =

(7.20)

Važno je još napomenuti da vrijede sljedeće relacije s obzirom na transponiranje, konjugiranost i hermitsko konjugiranje [1]: ( )T T TA B A B⊗ ⊗= (7.21) * * *( )A B A B⊗ ⊗= (7.22) † † †( )A B A B⊗ ⊗= (7.23) Relacije (7.21), (7.22) i (7.23) slijede izravno iz definicije (7.20).

32

8. Qubit i kvantna informacija 8.1. Qubit Osnovni element nad kojim se rade kvantne operacije je qubit. U klasičnom računarstvu, osnovni element procesiranja je bit koji poprima vrijednosti iz {0,1}. Qubit poprima vrijednosti iz { }0 , 1 koje čine bazu Hilbertovog prostora 2C . Kaže se još da qubit poprima stanja baze. Qubit može poprimiti i stanje koje je superpozicija stanja baze [1]:

0 1 ψ α β= + gdje su , Cα β ∈ . Prema tome, postoji beskonačno stanja istovremeno što u klasičnom bitu nije zamislivo. Fizičke prirode, qubit se često poistovjećuje atomom s dva elektrona koji imaju svaki svoju putanju označenu stanjem baze ili elektronom koji ima magnetski moment (spin) gore - 1 ili dolje - 0 . Kao što se može vidjeti, takav elektron može biti i u superponiranom stanju gdje mu je spin istovremeno gore i dolje. Mjerenje nekog qubita podliježe vjerojatnostima. Za svaki qubit vrijedi uvjet normiranja [1]: 2 2 1.α β+ = (8.1) Kompleksne vrijednosti ,α β se nazivaju amplitudama pojedinog stanja, a njihovi kvadrati apsolutnih vrijednosti predstavljaju vjerojatnosti pojavljivanja pojedinih stanja prilikom mjerenja qubita. Vjerojatnost da se mjerenjem superponiranog qubita dobije 0 je 2α ,

odnosno 2β da se dobije 1 . Jednom kada se sustav izmjeri, on ostaje u izmjerenom stanju čime se uništilo prijašnje stanje [1, 2]. Qubit, kojemu je jednaka vjerojatnost dobivanja stanja baze prilikom mjerenja je zadan s (8.2) [1, 2].

1 10 1 .2 2

ψ β= + (8.2)

8.2. Sustav s više qubitova U sustavu s više qubitova podrazumijeva se fizički više elektrona od kojih svaki predstavlja jedan qubit. Ukoliko postoje dva qubita, stanje sustava se opisuje s (8.3) [1]. 00 01 10 11 .ψ α β γ δ= + + + (8.3) Stanje (8.3) je dobiveno tenzorskim produktom stanja svakog qubita u superponiranom stanju. I u ovom slučaju mora vrijediti uvjet normiranja proširen na sve amplitude po (8.1). Prema (8.3), sustav istovremeno poprima vrijednosti { }2

0 , 1 . Labele koje pišu u

pojedinim stanjima se prevode u klasičnom računarstvu kao niz vrijednosti { }20,1 . Prema tome, u dva qubita se može istovremeno pohraniti sve četiri vrijednosti 0,1,2,3 binarno

33

kodirane prema (8.3). Ovo se još naziva kvantni paralelizam i temelj je rada kvantnih algoritama [1, 3]. Klasičan sustav od dva bita može u jednom trenutku poprimiti samo jednu vrijednost od četiri moguće. Vjerojatnost da se dobije mjerenjem prvog qubita vrijednost 0 je 2 2 .α β+ Da se dobije 1, vjerojatnost je 2 2 .γ δ+ Ako se dobije mjerenjem 0, sustav se nalazi u novom stanju (8.4) [1].

2 2

00 01' .

α βψ

α β

+=

+ (8.4)

Korijen u nazivniku novog stanja služi ponovnom normaliziranju stanja sustava. Općenito, proces mjerenja nekog kvantnog stanja se prikazuje djelovanjem hermitskog operatora tzv. projektora na sustav [1]. U slučaju (8.4), potrebno je odrediti kolika je vjerojatnost da je prvi qubit u stanju | 0⟩ . Dotičan projektor kojim se mjeri ili djeluje na stanje registra je definiran ovako: 00 00 01 01P = + [1]. Ako se djeluje s P na stanje (8.3), dobiva se

00 01 .P ψ α β= + Ovdje je dobro uočiti kako vrijedi † 2P P P P= = [1]. Kako bi se odredilo kolika je vjerojatnost ovog stanja, potrebno je još uzeti skalarni prudukt ( ) 2 22,P P P Pψ ψ ψ ψ ψ ψ α β= = = + . Prema tome, Pψ ψ je vjerojatnost da

prvi qubit poprimi vrijednost 0. Zbog samog procesa mjerenja, početno stanje registra je

uništeno te je novo stanje registra 'P

P

ψψ

ψ ψ= što je zapravo (8.4) [1].

8.3. Kvantna vrata Logički sklopovi (ili logička vrata) i klasa složenosti P/poly su uvedeni u poglavlju 3. Slično logičkim sklopovima, u kvantnom računarstvu postoje kvanta vrata i sklopovi [1]. Pod kvantnim vratima se smatraju unitarni operatori dok pod sklopom niz unitarnih operatora [1]. Uvode se najčešće korišteni operatori koji djeluju na jedan ili dva qubita. Operatori koji su matrice 2 x 2 očito djeluju na stanja jednog qubita koji se može prikazati vektor stupcem amplituda stanja baze. U nastavku su dane matrice operatora Pauli-X, Pauli-Z, i Hadamard koje djeluju na jedan qubit i operator CNOT koji djeluje na sustav s dva qubita.

Pauli-X: 0 11 0

X =

0 1 , 1 0→ → (8.5)

Pauli-Z: 1 00 1

X

= − 0 0 , 1 1→ →− (8.6)

34

Hadamard: 1 111 12

H = −

0 1 0 1

0 , 12 2+ −

→ → (8.7)

CNOT:

1 0 0 00 1 0 00 0 0 10 0 1 0

CNU

=

00 00 , 01 01

10 11 , 11 10

, ,a b a a b⊕

→ →

→ →

(8.8)

Navedeni operatori su važni i njima se može pokazati rad prvog Deutsch-Jozsa kvantnog algoritma. Operatori su unitarni što omogućuje reverzibilnost operacije tj. 2U I= za bilo koji operator U . Pauli-X operator nije ništa drugo nego analogija klasičnom NOT-u ili negaciji bita. Hadamard je veoma važan jer njime stanje baze qubita prelazi u superpoziciju stanja. Hadamard se ponekad označava s NOT . Vrata CNOT rade nad stanjem dva qubita , ,a b a a b⊕→ gdje je ⊕ predstavlja zbrajanje modulo 2 [1]. U nastavku je prikazano djelovanje navedenih operatora na općenito stanje qubita

0 1ψ α β= + :

( )0 1 0 1X X Xα β

ψ α β β αβ α

= + = = + =

(8.9)

( )0 1 0 1Z Zα

ψ α β α ββ

= + = − = −

(8.10)

( ) 20 1 0 12 2

2

H H

α βα β α βψ α β

α β

+ + − = + = + =

(8.11)

CNOT (controlled-NOT) operator se prikazuje često grafički kada je riječ o kvantnim sklopovima koji vizualiziraju neki kvantni algoritam [1]. Njegov simbol i funkcija su jasni iz slike 8.1.

A

A B⊕

A

B

Slika 8.1. CNOT kvantna vrata.

35

8.4. Kvantni sklopovi i kopiranje kvantnih stanja U klasičnom računarstvu je jednostavno napraviti logički sklop kojim se kopira neki bit. Neka postoji registar od dva bita, u prvom je vrijednost koju je potrebno kopirati u drugi bit bez da se obriše prvi bit. To je očito jednostavno napravi kada i ne bi imali logičke sklopove, već samo vodiče kojima se prenose bitovi tj. naponske razine (0V i 5V). U kvantnom računarstvu takav sklop nije moguće ostvariti što će biti i dokazano. Na slici 8.2 je dan logički sklop koji kopira bitove.

Iz slike 8.2 se vidi kako kopiranje bitova ujedno i radi. Kopiranje kvantnih bitova prema tome radi CNOT operator 0,0 , ,a a a a a⊕→ = . Međutim, to radi samo ako se

kopiraju čista stanja tj. stanja baze: 0 , 1 . Ako se pokuša kopirati općenito nepoznato

stanje 0 1ψ α β= + , dobiva se (8.12) [1]. ( ) ( )0 0 1 0 0 0 1 0 0 0 1 1CN CN CNU U Uψ α β α β α β= + = + = + (8.12) Potrebno je provjeriti da li je dobiveno stanje (8.12) zaista ψ ψ :

2 200 01 10 11ψ ψ α αβ αβ β= + + + . (8.13) Stanje (8.12) odgovara stanju (8.13) samo ako je 0αβ = . Međutim, tada stanje u (8.13) nikako ne odgovara stanju u (8.12) pa prema tome kopiranje nije izvedeno. Sljedeći teorem govori o nemogućnosti kopiranja nepoznatog kvantnog stanja. Teorem 8.1 (No-cloning teorem) [1]. Dokaz. Neka postoji nepoznato stanje ψ i čisto stanje (stanje baze) ϕ nekog qubita. Unitarni operator U (kvantni sklop) služi za kopiranje kvantnih stanja. Operator djeluje na stanja sustava od dva qubita (npr. kao CNOT vrata). Pretpostavi se da je kopiranje uspjelo za oba dva stanja gdje je s neko čisto stanje. Vrijedi sljedeće [1]:

X

Y

X

X⊕Y

x

0

x

x

Slika 8.2. Klasičan sklop za kopiranje bitova.

36

U sψ ψ ψ= (8.14) U sϕ ϕ ϕ= (8.15) Ako se uzme skalarni produkt (8.14) i (8.15), dobiva se:

( ) ( )( ) 2

, ,

,

U s U s s s s sψ ϕ ψ ϕ ψ ϕ ψ ϕ

ψ ψ ϕ ϕ ψ ϕ

= = =

= = (8.16)

Skalarnim produktom (8.16) dobilo se 2ψ ϕ ψ ϕ= što je jednadžba 2x x= . Jedina

rješenja su 0x = i 1x = . Prema tome je 0ψ ϕ = što znači da su stanja ,ψ ϕ

međusobno ortogonalna ili je 1ψ ϕ = , pa vrijedi ψ ϕ= . Kopiranje stanja npr.

0 1ψ α β= + i 0ϕ = nije moguće jer stanja nisu ortogonalna [1]. Q.E.D.

37

9. Kvantni algoritmi 9.1. Kvantni paralelizam Kvantni paralelizam je temelj rada svakog kvantnog algoritma. U relaciji (8.3) se s dva qubita pohranilo istovremeno četiri vrijednosti kodirane stanjima baze tog sustava. Ovdje se želi pokazati kako se i sve vrijednosti neke funkcije mogu pohraniti istovremeno u sustav s više qubitova. Od važnosti su problemi odlučivanja predikata pa će se uzimati u obzir funkcije ( ) :{0,1} {0,1}nf x → . U sljedećim poglavljima kao i u primjeru Deutsch-Jozsa algoritma, koristiti se sklop koji se definira ovako: ( ): , ,f f xU x y x y⊕→ gdje ⊕ predstavlja zbrajanje modulo 2. Slika 9.1 predstavlja grafički prikaz sklopa fU koji se još naziva i crna kutija (eng. Oracle, black box) [1]. U tom sklopu koristi se funkcija

( ) :{0,1} {0,1}f x → . Ako se postavi 0y = i 0 1

2x

+= , dobiva se stanje (9.1) [1].

( ) ( )1 100 10 0, (0) 1, (1)2 2f fU U f fϕ = + = + (9.1)

Stanje (9.1) predstavlja istovremenu pohranu vrijednosti funkcije za sve argumente. U analogiji s klasičnim računarstvom to je kao da postoje dva sklopa koja paralelno izračunavaju vrijednosti funkcija u 0 i 1. Mjerenjem prvog qubita, dobije se vrijednost 0 s

vjerojatnošću 0.5 čime je stanje drugog qubita potpuno određeno - (0)f . Stanje 0 1

2+

se može dobiti ako se Hadamard operatorom djeluje na stanje 0 . Općenito, djelovanje Hadamard vratiju se može poopćiti na n qubitova. Takav operator se naziva Walsh-Hadamard transformacija i označava se s nH ⊗ [1]. Walsh-Hadamard predstavlja paralelno djelovanje n Hadamard vratiju na n danih qubitova. U slučaju da su svih n qubitova postavljeni u stanje 0 , Walsh-Hadamard transformacija stvara novo stanje (9.2) [1].

x

y

x

y⊕ f(x)

Uf ϕ

0

0 12+

Slika 9.1. Kvantni sklop za istovremeno izračunavanje f(0) i f(1).

38

{0,1}

12 nn

xx

∈∑ (9.2)

Stanje (9.2) je tenzorski produkt n stanja 0H što se još piše ovako: ( )0

nH

⊗ [1].

Općenito, svaki od n qubitova može biti inicijalno u stanju 0 ili 1 . Prema tome,

nemoraju svi qubitovi biti u stanju 0 . Može se lako pokazati da se djelovanje Walsh-

Hadamard transformacije na x za {0,1}nx∈ može prikazati novim stanjem (9.3) [1].

{0,1}

1 ( 1)2 n

n x z

nz

H x z⋅⊗

= −

∑ (9.3)

U (9.3) umnožak x z⋅ predstavlja 1 1 ... n nx z x z+ + . Kako su pokazani osnovni sklopovi i operatori koji predstavljaju kvantna vrata, sljedeća poglavlja opisuju dva kvantna algoritma.

39

9.2. Deutsch-Jozsa algoritam Neka je dana funkcija ( ) :{0,1} {0,1}nf x → . Funkcija ( )f x se promata u sljedećem kontekstu. Funkcija može biti konstantna tj. za svih 2n mogućih ulaza poprima 0 ili 1. Druga mogućnost je da je balansirana što znači da za polovinu mogućih vrijednosti ulaza poprima vrijednost 1 a za ostalu polovicu poprima vrijednost 0. Alice i Bob međusobno komuniciraju na sljedeći način: Bob ima funkciju ( )f x koju izračunava za primljen ulaz x poslan od Alice. Alice potom dobiva vrijednost izračuna funkcije od Boba za ulaz x . Alice zna samo koliko ima bitova ulaz (n) te joj je zadatak odrediti da li je funkcija konstanta ili je balansirana. Očito mora poslati 2 / 2 1n + upita kako bi na temelju dobivenih vrijednosti odredila pripadnost funkcije. Može se pokazati da postoji n qubitni sklop kojim se određuje pripadnost funkcije jednim upitom tj. jednom evaluacijom funkcije. Mjerenjem nad n qubita dobiva se odluka o funkciji. Sklop koji implementira pripadni algoritam je prikazan na slici 9.2 [1].

Prema slici 9.2, prvo se svih n qubita koji predstavljaju vrijednosti argumenata postave u stanje 0 . Ti qubiti čine tzv. kvantni registar. Stanje u registru je 0 n⊗ . Na zadnji, 1n +

qubit dovodi se stanje 1 . Uloga ovog qubita se u klasičnom smislu može poistovjetiti s ispitnim bitom koji se promjeni ili ostane isti na kraju izračunavanja, te se na temelju njegove vrijednosti odlučuje problem tj. predikat. U ovom slučaju, na kraju algoritma se ne koristi njegova vrijednost nego vjerojatnosti amplituda stanja u registru. Ulaz (inicijalno stanje) u algoritam je predstavljen stanjem (9.4) [1].

0 0 1nψ ⊗= (9.4)

x

y

x

y⊕ f(x)

Uf

1

nH⊗ nH⊗

H

0

n n

1ψ 2ψ 3ψ

Slika 9.2. Kvantni sklop za implementaciju Deutsch-Jozsa algoritma. Uvod koji se označuje s / i oznakom n znači n uvoda, svaki od njih za jedan qubit.

40

Koristeći Walsh-Hadamard na registar i Hadamard operator na ispitni qubit, dobije se stanje (9.5) [1].

1 {0,1}

0 122n n

x

− =

∑ (9.5)

Na stanje (9.5) djeluje sklop ( ): , ,f f xU x y x y⊕→ koji omogućuje da uz sve vrijednosti argumenata postoje i sve vrijednosti funkcije za te argumente istovremeno u registru. Novo stanje je (9.6) [1].

2

( )

{0,1}

( 1) 0 122n n

f x

x

− − =

∑ (9.6)

Konačno, kako bi se donijela odluku o funkciji, na registar se djeluje s Walsh-Hadamard operatorom što predstavlja interferenciju rezultata funkcije u registru [1]. Pod interferencijom se smatra pojam koji se u kvantnoj mehanici susreće u jednostavnim eksperimentima s elektronima i fotonima a temelj su rada kvantne mehanike. Gotovo svi kvantni algoritmi na kraju interferiraju stanje registra čime se može dobiti neka globalna informacija o samoj funkciji, što je temelj rada kvantnih algoritama. Na temelju (9.3) i (9.6) dobiva se konačno stanje (9.7) [1].

3

( )( 1) 0 12 2n

f x z x

z x

+ ⋅− − =

∑∑ (9.7)

Sada je potrebno odrediti vjerojatnost da je u registru stanje 0 nz ⊗= . Kako se može

primijetiti iz (9.7), amplituda za neko stanje z u registru je [1]:

( )( 1)

2n

f x z x

x

+ ⋅−∑ (9.8)

Ako je 0 nz ⊗= , očito je 1 1 ... 0n nx z x z x z⋅ = + + = za svaki x . Prema tome amplituda je

određena s ( )( 1)

2n

f x

x

−∑ . Ako je funkcija konstanta onda će ta suma biti 1 ili 1− .

Kvadrirana apsolutna vrijednost amplitude daje vjerojatnost pojavljivanja tog stanja prilikom mjerenja registra tj. n qubitova. Vidi se da ako je funkcija konstanta, mjerenjem se dobiva vrijednost 0 s vjerojatnošću 1 za sve qubitove. To znači da će svi qubitovi biti u stanju 0 . Ako je funkcija balansirana, suma će biti 0 što znači da je vjerojatnost

pojavljivanja stanja 0 n⊗ u registru jednaka 0. Mjerenjem nad registrom dobiju se bilo koje druge vrijednosti, samo ne 0 u svih n qubitova. Važno je pogledati i proanalizirati

41

kompleksnost u smislu broja sklopova koji se koriste u algoritmu ovisno o duljini ulaza (broju qubitova). U samom početku postoji n qubitova postavljenih u stanje | 0 .⟩ Potom se koristi n Hadamard sklopova kako bi se uspostavila superpozicija. To je ( )O n sklopova. Potom dolazi crna kutija (Uf ) ili operator koji djeluje na svako stanje superpozicije. Međutim, to je samo jedna upotreba na svih n qubitova. To je još uvijek

( )O n sklopova. Na kraju slijedi ponovno n Hadamard sklopova te mjerenje nad svakim od n qubitova. Mjerenje nad n qubitova je zapravo n mjerenja pa je to ( )O n projektora. Iako se projektori ne crtaju, podrazumijevaju se. Prema tome, kompleksnost sklopova ostaje polinomska o broju qubitova i riješenje se pronalazi s vjerojatnošću 1. Vremenski gledano, koristi se samo n mjerenja nad svakim qubitom da se provjeri da li je svaki u 0. To je ( )O n koraka za razliku od klasičnog algoritma kojemu je potrebno (2 )nO koraka. Gledano s obzirom na problem klasa P i PSPACE, ovaj kvantni algoritam radi s polinomskim brojem sklopova. Inače, kako je algoritam u PSPACE a u klasičnom smislu nije u P, to bi značilo P≠ PSPACE. Međutim očito se to nemože tvrditi jer se ne poznaje složenost crne kutije [1].

42

9.3. Groverov algoritam Groverov algoritam ima važnost pri proučavanju klasa kompleksnosti kao i rješivosti problema klasa P i NP. Grover je prvi predložio kako bi se moglo pretraživati prostor rješenja NP problema na učinkovit način [1]. Međutim, kasnije je dokazano da pretraživanje u kvantnim algoritmima nemože ići brže od ( )O N koraka gdje je N broj podataka [1]. Prema tome, Groverov algoritam predstavlja ubrzanje za ( )O N koraka što je preslabo ako N raste eksponencijalno. Neka postoji nesortirana baza od N podataka. Nesortirana zato jer ako bi bila sortirana tada postoji algoritam koji pretražuje bazu podataka u (log )O N koraka kao što je primjer bidirekcionalnog pretraživanja. Svaki podatak ima jedinstven indeks tj. broj 0,1,... 1N − gdje je 2nN = . Taj indeks je moguće pohraniti u n bitova. Problem pretraživanja se sastoji od traženja indeksa x nekog podatka tako da vrijedi ( ) 1f x = ako je to podatak kojeg se traži ili ( ) 0f x = u suprotnom. Za tu potrebu koristi se crna kutija, odnosno unitarni operator O čija unutarnja struktura je nebitna. Crna kutija je pokazana kada se govorilo o kvantnom paralelizmu (slika 9.1). Djelovanje operatora O na dva qubita je definirano s (9.9) [1].

( )Ox y x y f x→ ⊕ (9.9)

Ako se pretpostavi da se traži indeks x , tada djelovanje O na 0x daje 1x što se može shvatiti kao invertiranje vrijednosti drugog qubita. Međutim, koristit će se isti princip kao i kod Deutsch-Jozsa algoritma kada se crnoj kutiji drugi qubit postavlja u superpoziciju [1]:

( )0 1 0 1( 1)

2 2f xOx x

− − → −

. (9.10)

Vidi se da je umjesto invertiranja drugog qubita u (9.10), naznaka točnog rješenja izražena promjenom predznaka amplitude stanja sustava. Kako se drugi qubit ne koristi, djelovanje crne kutije se može prikazati s (9.11) [1].

( )( 1) f xOx x→ − (9.11) Temelj Groverovog algoritma je pojačavanje amplitude stanja koje kodira indeks traženog podatka do vrijednosti 1. Istovremeno tom pojačavanju amplitude određenog stanja, sve ostale amplitude postojećih stanja se moraju smanjivati.

43

Kvadrati amplituda stanja predstavljaju vjerojatnosti mjerenja stanja. Ukoliko se postigne da je amplituda stanja kojeg se traži jednaka 1, vjerojatnost da se dobije željeni podatak mjerenjem n qubitova iznosi 1. Groverov algoritam je prikazan na slici 9.3 [1].

Na slici 9.3 je prikazano da se koristi n qubita pa prema tome govori se o Hilbertovom prostoru dimenzije 2n ( 2n

C ) . Bazu tog prostora čine 2n ortonomirana vektora. Algoritam započinje pripremom registra kao što je učinjeno kod Deutsch-Jozsa algoritma: 0 0 1nψ ⊗= (9.12) Potom se na prvih n qubitova primjenjuje Walsh-Hadamard a na 1n + qubit samo Hadamard operator. Time se dobiva stanje (9.13) [1].

1

0

0 112

N

x

xN

ψ−

=

− =

∑ (9.13)

Traženo stanje je jedno od 2n stanja x u (9.13). Neka je to stanje β . β je prema tome indeks traženog podatka. Ono što se želi postići uzastopnom primjenom operatora G je pojačanje amplitude stanja β na 1. Tada se mjerenjem n qubita dobiva stanje β s vjerojatnošću 1. Potrebno je pokazati da je unitarni operator G zapravo rotacija za određeni kut u dvodimenzijalnom Hilbertovom prostoru. U stanju (9.13), 1n + qubit se ne koristi direktno i nije od važnosti kod interpretiranja rezultata. Kako je bilo navedeno, koristi ga se samo pri pozivu crnih kutija koje su inače sastavni dio operatora G . Od sada

( )O N

0ψ β

G

1

nH⊗

H

0

n n G

G

Slika 9.3. Groverov algoritam. Operator G se naziva Groverov operator i pojačava amplitudu traženog stanja.

44

se (9.13) promatra kao stanje 1

0

1 N

x

xN

ψ−

=

= ∑ . Stanje ψ koje je prikazano s n qubita se

rastavi na sumu stanja koje se traži i ostatka stanja [1]:

1 1NN N

ψ α β−= + . (9.14)

Želi se postići pojačanje amplitude traženog stanja β iz (9.14) koja je inicijalno 1/ N .

To znači da ako bi se krenulo mjeriti qubitove, vjerojatnost dobivanja stanja β je 1/ N ,

odnosno 1/ 2n što je zanemarivo. Dobro je uočiti da je vektor β ortogonalan na vektor

α jer je 2 , {0,1}n nx C xβ β= ∈ = ∈ dok je

{0,1},

11 x x

xN β

α∈ ≠

=−

∑ [1]. Ukoliko se

navedeni izrazi uvrste u (9.14), dobije se stanje (9.13) negledajući 1n + qubit što je i pretpostavljeno. Na slici 9.4 se pokazuje geometrijski što radi zapravo Groverov operator.

Slika 9.4 pokazuje kako se postiže pojačanje amplitude stanja β . Prvo se napravi

simetrično stanje od ψ obzirom na stanje α . To novo stanje je O ψ gdje je O operator simetrije što je zapravo crna kutija (9.11) [1].

1 1 1 1N NO O ON NN N

ψ α β α β− −= + = − (9.15)

Slika 9.4. Geometrijski prikaz djelovanja Groverovog operatora G i operatora simetrije (crna kutija) O.

45

Prema (9.15), vektor O ψ je simetričan vektoru ψ s obzirom na α . Sada se projicira

O ψ na ψ te se dobiven vektor pomnoži s 2. Od njega se oduzme vektor O ψ čime se

dobije G ψ . Navedenim postupkom postiže se rotacija vektora ψ za kut θ prema

traženom vektoru β . Groverov operator je zadan s (9.16) [1]. ( )2G I Oψ ψ= − (9.16) I u (9.16) je zapravo nI ⊗ , samo što se ga piše kao identiteta. Operator 2 Iψ ψ − se može izvesti koristeći Hadamard operatorima [1]: ( )2 0 0 2n nH I H Iψ ψ⊗ ⊗− = − (9.17) Relacija (9.17) se može lako provjeriti a na slici 9.5 je prikazana implementacija Groverovog operatora [1].

Sada se želi pokazati da je potrebno ( )O N poziva Groverovog operatora poslije čega je vjerojatnost mjerenja stanja β jednaka 1 (slika 9.3). Prema slici 9.4, vektor ψ se može zapisati kao (9.18) [1].

cos sin2 2θ θψ α β= + (9.18)

Sa slike 9.3 se vidi da djelovanje Groverovog operatora zapravo povećava kut trenutnog vektora za θ . Djelovanje operatora G je dano s (9.19) [1].

n

ψ

n nH ⊗

( )( 1) f xx x→ −

O

n 0 0

x x

→ −

nH ⊗

Slika 9.5. Groverov operator (G) izveden s Hadamard operatorima i operatorom promjene predznaka amplitude stanja.

46

3 3cos sin2 2

G θ θψ α β= + (9.19)

U općenitom slučaju, djelovanje Groverovog operatora se zapisuje [1]:

(2 1) (2 1)cos sin2 2

k k kG θ θψ α β+ += + . (9.20)

Postavlja se pitanje koliko iznosi k (broj iteracija operatora G ) da se amplituda uz traženo stanje postavi na 1. Očito mora biti zadovoljen sljedeći uvjet:

(2 1)sin 12

k θ+= . (9.21)

Uvjet (9.21) je zadovoljen kada je (2 1)2 2

k θ π+= . Kako vrijedi da je 1sin

2 2Nθ θ= ∼ za

velike N , može se pisati 2 12

Nk π+ = odnosno, vrijedi da je:

1 ( )4

Nk O Nπ= − = . (9.22)

Time se pokazalo kako Groverov algoritam pronalazi traženo stanje u ( )O N poziva crne kutije, gdje je N broj nesortiranih podataka u nekoj bazi podataka.

47

10. Simulator kvantnog računala Kako bi se pokazao rad navedenih kvantnih algoritama, napravljen je simulator koji koristi opisane matematičke modele u poglavljima 7. i 8. Simulator je C#.NET Windows aplikacija s intuitivnim i jednostavnim sučeljem a dovoljno jakim za izvedbu svih navedenih operacija vezanih uz kvantno procesiranje. Prvenstveno, tu spada izvedba kvantnog paralelizma, navedenih kvantnih operatora te simulacija algoritama opisanih u 9. poglavlju. Aplikacija za pokretanje zahtjeva .NET Framework verzije 1.1. U nastavku se prikazuje opis simulatora, kako se njime služiti te korake potrebne za simuliranje Deutschovog i Groverovog algoritma. 10.1. Pokretanje aplikacije QPS Aplikacija je QPS.exe (Quantum Processing Simulation v1.0) i priložena je na CD-u s instalacijom (Setup.exe). Potrebno je prvo pokrenuti instalaciju a potom i QPS.exe. Pokretanjem aplikacije dobiva se sučelje simulatora prikazano slikom 10.1.

Važno je napomenuti kako je ovo simulator kvantnog računala iz konteksta simuliranja operatora koji djeluju na kvantni registar. Kvantni registar čini niz qubitova koji se inicijaliziraju na samom početku rada. Postoje tri glavne cjeline sučelja: Quantum Gates, Quantum Register States i Register. Quantum Gates se sastoji od tri podgrupe operatora. Prvu grupu operatora (crvena boja) čine operatori koji djeluju na jedan selektiran qubit iz kvantnog registra a koji je prikazan cjelinom Register. To su redom: Hadamard, Pauli-X i Pauli-Z operatori. Drugu podgrupu čine dva operatora koji ne djeluju direktno na qubitove registra već na sva stanja koja se nalaze u tom registru. Kako se moglo vidjeti u poglavlju 9., to je Oracle (crna

Slika 10.1. Sučelje simulatora kvantnog računala.

48

kutija) i Walsh-Hadamard operator. Oracle se koristio u izvedbi Deutschovog algoritma kao i navedeni Walsh-Hadamard koji radi interferenciju stanja u registru. Navedeni operatori se primjenjuju na kraju postupka, kada se završilo s primjenom prve grupe operatora. Preostali operator je Groverov operator koji se koristi kod implementacije Groverovog algoritma (implementacija samog algoritma se pokreče izbornikom Simulation-Quantum Algorithm-Grover o čemu će biti riječi kod izvođenja Groverovog algoritma). Kao nezavisna kontrola (narančasto) je Settings gumb koji je potrebno kliknuti čime se dobiva dijalog prozor prikazan na slici 10.2.

10.2. Inicijalizacija kvantnog registra Na slici 10.2 je prikazana mogućnost odabira broja qubitova u registru koji će inicijalno biti postavljeni u stanje 0. Upiše se npr. broj 4 i pritisne Ok gumb.

Slika 10.2. Postavke inicijalizacije registra i korištenja Oracle-a.

Slika 10.3. Inicijalno stanje registra i 4 qubita koji su u stanju 0 (plavo).

49

Na slici 10.3 je pod Register cjelinom prikazan kvantni registar odnosno qubitovi koji su njegov sastavni dio. Svi su qubitovi inicijalno u stanju 0 što je prikazano plavom bojom. Stanje 1 se prikazuje crvenom bojom a superponirano stanje zelenom bojom. Cjelina Quantum Register States prikazuje sva stanja koja su u registru. U slučaju koji se opisuje, trenutno postoji samo inicijalno stanje 0000 s vjerojatnošću pojave 1 (jer je

amplituda stanja jednaka 1). To se zapisuje kao [1][1] 0000 . 10.3. Uporaba operatora Hadamard, Pauli-X i Pauli-Z Kao primjer, neka je potrebno postaviti drugi qubit u superponirano stanje. Potrebno je kliknuti mišom na njega čime se u status bar panelu (donji lijevi kut aplikacije) pojavljuje “Selected Qubit: 2”. Time se označava da operatori iz prve grupe (crveni gumbi) djeluju samo na taj qubit. To je isto prikazano na slici 10.3. Ukoliko se klikne na Hadamard gumb (prvi crveni gumbu u Quantum Gates cjelini), postavlja se drugi qubit u stanje

( )1/ 2 0 1+ . Sada je potrebno npr. prvi qubit postaviti u stanje 1. To se radi tako da se prvo klikne na prvi qubit kvantnog registra a potom se klikne Pauli-X operator (drugi crveni gumbu u Quantum Gates cjelini). Prvi qubit je sada prikazan crvenom bojom. Zadnji qubit se npr. postavi prvo u stanje 1 Pauli-X operatorom pa potom u superponirano stanje Hadamardom. Slika 10.4 pokazuje sva stanja koja se paralelno nalaze u kvantnom registru kao i njihove amplitude i vjerojatnosti pojavljivanja tokom nekog mjerenja.

Slika 10.4. Stanja u registru nakon djelovanja osnovnih operatora.

50

Iz slike 10.4 se vidi kako postoje 4 stanja u registru i sva su podjednako vjerojatna da se pojave kao rezultat mjerenja registra. Stanja 1000 i 1100 imaju negativne amplitude . 10.4. Simulacija Deutsch-Jozsa algoritma Potrebno je odrediti da li je neka Booleova funkcija konstanta ili balansirana. Konstanta je ukoliko poprima za sve argumente istu vrijednost, dakle 0 ili 1. U suprotnom je balansirana jer za polovinu argumenata poprima 0 a za drugu polovinu 1. Nije važan redoslijed argumenata. Potrebno je simulirati taj algoritam za primjer funkcije s dva argumenta, dvije Booleove varijable. Pod Settings se postavi broj qubitova na 2. Inicijalizira se registar i dobije se jedino stanje 00 . Sve qubitove registra (dva qubita u ovom slučaju) je potrebno postaviti u superpoziciju Hadamard operatorom. Tako u registru postoje stanja: [0.25][0.5] 00 , [0.25][0.5] 01 , [0.25][0.5] 10 i [0.25][0.5] 11 . Neka je funkcija balansirana i poprima vrijednost 1 za neka dva argumenta, npr. (10) i (11). Prema izlaganju iz poglavlja 9.1, informaciju o vrijednosti funkcije predstavlja predznak amplitude stanja. Potrebno je primijeniti Oracle (crnu kutiju) na određena stanja u registru kako bi im se promjenio predznak amplitude. Funkcija poprima vrijednost 1 za argumente (10) i (11), pa je potrebno promjeniti predznak amplituda stanja 10 i 11 . Nakon primjene Oracle-a čije postavke se mijenjaju pod Settings, dobit će se sljedeća stanja u registru: [0.25][0.5] 00 , [0.25][0.5] 01 , [0.25][ 0.5] 10− i [0.25][0.5] 11− . Slika 10.2 prikazuje ujedno i postavke Oracle-a . Prvo se unese niz 10 (obavezno ugasiti svojstvo ponovnog inicijaliziranja registra, ostaje zapamćeno pri svakom pozivanju Settings), pa se klikne na Apply Oracle gumb čime se promijeni predznak stanja 10 . Potom se ponovno klikne Settings gumb i upiše vrijednost 11. Sljedećim klikom na Apply Oracle gumb, promijeni se predznak stanja 11 . Potrebno je još samo napraviti interferenciju stanja registra za što se koristi Walsh-Hadamard operator koji je definiram relacijom (9.3). Klikne se na Walsh-Hadamard gumb i to je kraj algoritma. U registru su na kraju algoritma sljedeća stanja: [0][0] 00 , [0][0] 01 , [1][1] 10 i [0][0] 11 . Prema izlaganju iz

poglavlja 9.1, funkcija je konstanta ako je vjerojatnost mjerenja stanja 00 jednaka 1. Očito to nije jer u registru to stanje ima vjerojatnost pojavljivanja jednaku 0, pa je funkcija balansirana što odgovara pretpostavci od koje se krenulo. Može se odabrati i veći broj argumenata te drugačija pretpostavka o funkciji što je ostavljeno na volju korisnicima. 10.5. Simulacija Groverovog algoritma Ovaj algoritam kako je bilo pokazano u poglavlju 9.2, u ( )O N iteracija Groverovog operatora nađe traženo stanje. Vjerojatnost da se mjerenjem registra dobije traženo stanje je približno jednako (ili jednako) 1 po završetku algoritma. Izbornik Simulation - Quantum Algorithm - Grover pokreće Groverov algoritam na način da se prvo pojavi dijalog prozor u koji je potrebno unijeti traženo stanje. To stanje mora biti duljine najviše 8 qubita. Ukoliko se traži npr. stanje 11010, automatski se inicijalizira registar na

51

superpoziciju stanja svih 5 qubita. Stanja u registru se rasporede u dva nova stanja prema (9.14). Jedno stanje je stanje koje se traži a drugo predstavlja sva ostala stanja u registru. Stanja su: [0.03125][0.1767767] 11010 i [0.96875][0.984251] REST . Na slici 10.5 se vidi dijalog prozor a na slici 10.6 dva stanja u kvantnom registru što odgovara zapisu stanja (9.14).

Slika 10.5. Odabir stanja kojeg se traži Groverovim algoritmom.

Slika 10.6. Početak simuliranja Groverovog algoritma. Stanje REST predstavlja stanje α , dok stanje 11010 predstavlja β u (9.14). Ono što je potrebno napraviti je primijeniti nekoliko puta (približni broj iteracija piše u donjem lijevom kutu aplikacije) Groverov operator (Grover’s operator gumb) sve dok amplituda

52

uz stanje 11010 ne bude približno jednaka 1. Mjerenjem registra, vjerojatnost dobivanja

stanja 11010 je najveća i iznosi 0.9991823 što je gotovo jednako 1. Slika 10.7 prikazuje stanja registra nakon što se 4 puta kliknulo na Grover’s operator gumb. To je ujedno i kraj simulacije Groverovog algoritma.

Slika 10.7. Kraj simuliranja Groverovog algoritma. Mjerenjem registra dobiva se traženi podatak s vjerojatnošću 1 (0.9991).

Iz slike 10.7 se vidi da se mjerenjem registra dobiva stanje 11010 s vjerojatnošću 1. Time je završena simulacija Groverovog algoritma.

53

11. Zaključak Područje kvantnog računarstva i informacija je novije područje koje u posljednjih desetak godina pokazuje rastući interes kako za teorijskim tako i za eksperimentalnim istraživanjem. Teorijska istraživanja trenutno imaju znatniju prednost jer su temeljena na matematičkom formalizmu kvantne mehanike, koja je potpuno utemeljena i valjana teorija. U radu su opisana dva kvantna algoritma: Deutschov i Groverov algoritam. Deutsch-Jozsa algoritam pokazuje veliku učinkovitost nad klasičnim algoritmom iste problematike i zanimljiv je u pogledu rješavanja pitanja klasa P i PSPACE. Groverov algoritam ubrzava proces traženja nesortirane baze podataka. Iako Groverov algoritam ne pokazuje preveliku učinkovitost nad nekim klasičnim algoritmom pretraživanja, važan je iz teorijskog konteksta pitanja jednakosti klasa P i NP. Za potrebu simuliranja navedenih algoritama, izrađen je simulator koji se temelji na matematičkom modelu kvantnih operatora opisanih u radu. Kako se radi o matematičkom modelu koji ne sadrži slučajne varijable, rezultati simulacija su potpuno očekivani i određeni. Navedeni simulator radi s kvantnim registrom duljine do 8 qubita. S takvim registrom moguće je prikazati 256 stanja istovremeno u registru. Međutim, ako bi se povećao broj qubita npr. na 100, simulacija nekog od algoritama bi postala vremenski i memorijski potpuno neučinkovita. Prvenstveno zbog velikog broja stanja a potom i složenosti klasičnih algoritama pretraživanja koji se koriste za potrebe simulacije kvantnih algoritama. To je u skladu s teorijskim istraživanjima i jasno je da svojstvo kvantnog paralelizma onemogućuje učinkovitu simulaciju na klasičnom računalu. U svrhu izvedbe svojstva kvantnog paralelizma, mogao bi se za potrebe simuliranja koristiti distribuirani ili višeprocesorski sustav. Međutim, kako je poznato, ne postoji savršeni vremenski paralelizam na klasičnom računalu, a broj računala ili procesa bi trebao eksponencijalno rasti kako se povećava broj qubita. Prema tome, neki kvantni algoritam bi se trebao izvoditi na kvantnom računalu, a sve simulacije na klasičnom računalu su zapravo demonstracije i vizualizacije rada algoritama i operatora. Simulator kvantnog računala ima veliku korist kada je potrebno analizirati neki dio kvantnog sklopa ili vidjeti što kvantni algoritam radi. To je moguće ako se koristi manji broj qubita. Od interesa je vidjeti koja su trenutna stanja u kvantnom registru i što se dobiva npr. interferencijom stanja u registru. Simulator kvantnog računala nam daje u tom slučaju puno brži odgovor nego kada bi se išlo to ručno analizirati na papiru. Autor rada vjeruje kako područje kvantnog računarstva i informacija određuje u bliskoj budućnosti veliko tržište koje će nuditi sigurnije i brže informacije. Ovo vjerovanje je potaknuto činjenicama kako su neki kvantni algoritmi demonstrirani i implementirani uporabom nelinearne optike, nuklearne magnetske rezonancije te drugim metodama u zadnjih 6 godina.

54

12. Literatura [1] M.A.Nielsen,I.L.Chuang, Quantum Computing and Quantum information, Cambridge

Press, Cambridge, 2001. [2] A.Y.Kitaev, Classical and Quantum Computation, American Mathematical Society,

2002.

[3] D.Bouwmeester, A.Ekert, A.Zeilinger, ThePhysics of Quantum Information, Springer Verlag, 2000.

[4] R.P.Feynman, Lectures on Physics III, Addison-Wesley, Massachusets, 1966.

[5] J.V.Neumann, Mathematical foundations of Quantum mechanics, Princeton Univ.

Press, Reprint edition, 1996. [6] S.Srbljić, Jezični procesori 1, Element, Zagreb, 2002. [7] S.Kurepa, Konačno dimenzionalni prostori, Školska knjiga, Zagreb, 1989. [8] N.Elezović, Linearna algebra, Element, Zagreb, 1996. [9] D.Deutsch, Quantum theory, Church-Turing principle and the universal quantum

computer, Proc. Roy. Soc. London Ser. A 400 (1985) 96-117. [10] D.Deutsch, A.Barenco, A.Ekert, Universality in Quantum Computing, quant-

ph/9505018, 1995.