alternativni modeli računanja (v1.0)

35
Alternativni modeli raˇ cunanja Polona Bogataj 23. junij 2009

Upload: tina-vouk

Post on 12-Mar-2015

168 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Alternativni modeli računanja (v1.0)

Alternativni modeli racunanja

Polona Bogataj

23. junij 2009

Page 2: Alternativni modeli računanja (v1.0)

Kazalo

1 Uvod 21.1 Ponovitev verjetnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.1 Prvi uspesen poskus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Nakljucni algoritmi 42.1 Quicksort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Min-Cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1 RandMin-Cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Las Vegas in Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.1 Razredi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.2 Polinomi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.3 Uporaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4 Cernove meje (Chernoff bounds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4.1 QuickSort(S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5 Markovske verige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5.1 Markovska veriga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5.2 Uporaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Aproksimacijski algoritmi 153.1 Problem trgovskega potnika (TSP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1.1 Metricni TSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2 Aproksimacijske sheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2.1 Kako do PTAS ali FPTAS? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4 #P 214.1 # DNF (disjuntive normal form) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5 Vzporedni algoritmi 245.1 Modeli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.1.1 PRAM (Parallel random access machine) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.1.2 Mreza racunalnikov (network computer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.1.3 DAG (directed acyclic graph - usmerjen aciklicni graf) . . . . . . . . . . . . . . . . . . . . . 25

5.2 Parametri algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.2.1 Primerjava algoritmov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.3 Maksimalen element tabele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.4 Pointer Jumping (skakanje kazalcev) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6 Kvantni racunalniki in algoritmi 296.1 Kvantni sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.2 Kvantni racunalniki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306.3 Moc kvantnega racunalnika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

6.3.1 Superkompaktno kodiranje (Superdense coding) . . . . . . . . . . . . . . . . . . . . . . . . 316.4 Fourierjeva vzorcenje (Fourier sampling) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.4.1 Fourierjeva transformacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336.5 Problem faktorizacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

1

Page 3: Alternativni modeli računanja (v1.0)

Poglavje 1

Uvod

1.1 Ponovitev verjetnosti- uporabljali bomo samo diskretne nakljucne spremenljivke: X : dogodki → Z

- matematicno upanje ali pricakovana vrednost:

E[x] =∑c∈Z

c · P [x = c]

E[f(x)] =∑c∈Z

f(c) · P [x = c]

E[aX + bY ] =a · E[X] + b · E[Y ] - linearnost (ni potrebno, da sta X in Y neodvisni)E[X · Y ] =E[X] · E[Y ] (za neodvisna)X in Y

- Markovska neenakost:

x ≥ 0 =⇒ P [X ≥ a] ≤ E[X]a

za ∀a ∈ R+

Dokaz.

a · P [X ≥ a] ≤ E[X] =∑

i∈N∪0,i≤a

i · P [X = i]

︸ ︷︷ ︸≥0

+∑

i∈N∪0,i≥a

i · P [X = i] ≥ 0 + a ·∑i≥a

P [x = i]︸ ︷︷ ︸P [X≥a]

- P [⋃iDi] ≤

∑i P [Di] (enakost je, ko so dogodki disjunktni)

1.1.1 Prvi uspesen poskusIgralno kocko mecemo, dokler ne dobimo 6. Naj bo X = stevilo metov, dokler ne dobimo 6. Zanima nas E[X]:E[X] = 6.

Trditev. Ce P [uspesen poskus] = p, potem je E[stevilo poskusov do prvega uspesnega poskusa] = 1p .

Dokaz.

1. E[X] =∑i∈N i · P [X = i] =

∑i∈N i · (1− p)i−1 · p = . . . . . . . . . . . . . . . . . . . . . . . .︸ ︷︷ ︸

Sergo tega ne zna in ga ne zanima

= 1p

2. Xi =

1, ce poskus i uspe0, ce poskus i ne uspe

Eksperiment: mecemo, dokler ne dobimo uspesnega dogodka.

2

Page 4: Alternativni modeli računanja (v1.0)

Velja: X =∑∞i=1Xi. Ce izracunamo matematicno upanje:

E[Xi] =1 · P [Xi = 1] + 0 · P [Xi = 0] = P [Xi = 1] = (1− p)i−1

E[X] =E[∞∑i=1

Xi] =∞∑i=1

E[Xi] =

=∞∑i=1

(1− p)i−1 =

=1 + (1− p) + (1− p)2 + . . . =1

1− (1− p)=

=1p

Posledica. Ce P [uspesen poskus] ≥ p, potem je E[stevilo poskusov do uspesnega] ≤ 1p .

Opomba.n∑i=1

1i

= O(log n)

Dokaz.n∑i=1

1i

= 1 +n∑i=2

1i≤ 1 +

∫ n

1

1xdx = 1 + lnn

3

Page 5: Alternativni modeli računanja (v1.0)

Poglavje 2

Nakljucni algoritmi

2.1 Quicksort- vhod: mnozica razlicnih stevil S ⊂ R

- izhod: urejeni elementi iz S

if |S| = 1 then vrni element iz Selse izberemo a ∈ S nakljucno (pivot)

S− = b ∈ S|b < aS+ = b ∈ S|b > aQuicksort(S−)Quicksort(S+)

konec

Opomba. Pri neskoncnih mnozicah je treba povedati, kako izbrati nakljucni element. V koncni mnozici ga obicajnoizberemo enakomerno (ce ni drugace receno).

Ce vemo, da so elementi v S ze skoraj urejeni, lahko vzamemo kak dolocen element. Ce ne vemo nicesar o S, jebolje izbrati nakljucnega.

Izrek. Naj bo T (n) pricakovana casovna zahtevnost algoritma Quicksort, ko je |S| = n. Potem velja:

T (n) = O(n log n)

Dokaz. 1. Rekurzivna enacba

Naj bo C(n) stevilo primerjav algoritma, ko je |S| = n. Ocitno je T (n) = O(C(n)). Dokazali bomo C(n) =O(n log n) z indukcijo po n.

Indukcijska predpostavka: C(n) ≤ 5n log2 n

- C(1) = 0 ≤ 5 · 1 · log2 1

4

Page 6: Alternativni modeli računanja (v1.0)

-

C(n) = n− 1︸ ︷︷ ︸vsako stevilo primerjamo s pivotom

+1n︸︷︷︸

stevilo moznih pivotov

n∑i=1

[C(i− 1) + C(n− i)︸ ︷︷ ︸velikost podproblemov

]

≤n+2n

n−1∑i=0

C(i)C(1)=0

= n+2n

n−1∑i=1

C(i)

≤n+2n

n−1∑i=1

5i log2 i = n+2n

bn2 c∑i=1

5i logi i+n−1∑i=bn2 c

5i log2 i

≤n+

10 log2 n

n

(n−1∑i=1

i

)− 10

n

bn2 c∑i=1

i

=n+10 log2 n

n· (n− 1)n

2− 10

n·bn2 c · (b

n2 c+ 1)

2

=5(n− 1) log2 n+(n− 5

n· bn

2c · (bn

2c+ 1)

)≤5n log2 n

Primer.

vhod: 10, 13, 3, 8, 6, 1, 11, 20pivota: 8, 11 3, 6, 1 8 10, 13, 11, 20pivota: 6, 13 3, 1 6 10 11 13, 20pivot: 1 1 3 13 20

Dokaz. Naj bodo s1, s2, . . . sn elementi iz S (ze urejeni: s1 < s2 < . . . < sn).

Xij =

1 ce delamo primerjavo si <> sj0 sicer

V primeru: X2,5 = 0, X2,4 = 1.

X =∑i<j

Xij = stevilo primerjav v algoritmu, kjer naredimo vsako primerjavo najvec enkrat

Pricakovana casovna zahtevnost:

E[X] = E[∑i<j

Xij ] =∑i<j

E[Xij ]

E[Xij ] = P [Xij = 1]

Opomba. Primerjava je vedno med pivotom in drugim elementom.Naj bo Sij zadnja mnozica v rekurzivnih problemih, kjer sta si in sj skupaj. (npr. S2,5 = S, S1,2 = 1, 3)Primerjavo si < sj naredimo ce in samo ce je eden izmed si ali sj pivot v Quicksort(Sij). Sij vsebuje najmanj

j − i + 1 elementov (j > i). Sij vsebuje vse elemente z vrednostjo med si in sj : si, si+1, . . . sj−1, sj . (npr.S5,7 = 10, 13, 11, 20)

Vse elemente med si in sj izberemo z enako verjetnostjo.

P [Xij = 1] ≤ 2|Sij |

≤ 2j − i+ 1

Opomba. Upostevali smo, da je Xij = 1 ce in samo ce je pivot = si ali pivot = sj .

5

Page 7: Alternativni modeli računanja (v1.0)

Iz tega sledi:

E[X] =∑i<j

P [Xij = 1] ≤n∑i=1

n∑j=i+1

2j − i+ 1

=n∑i=1

n−i+1∑k=2

2k

≤n∑i=1

n−i+1∑k=1

2k

≤n∑i=1

O(log n)

=O(n log n)

Opomba.n∑i=1

n−i+1∑k=2

2k≤ 2(1 + ln(n− i+ 1))

Izberemo s ∈ S. Zanima nas, koliko je primerjav tipa s <> , kjer s ni pivot. Naj bo S1, S2, . . . St zaporedjenepraznih mnozic v rekurzivnih podprogramih, da vsebujejo s. (npr: ce je s = 13, S1 = S, S2 = 10, 13, 11, 20,S3 = 13, 20, S4 ne obstaja, t = 3)

Za St velja: s je bil pivot v Quicksort(St), ali St = s. t je nakljucna spremenljivka, ki ima vrednost stevilaprimerjav tipa s <> , kjer s ni pivot (±1).

Zanima nas matematicno upanje za t.

Definicija. Si je tipa j, ce velja: (34

)j+1

n < |Si| ≤(

34

)jn

Lahko obstajajo mnozice tipa 0, 1, 2, . . . log 43n

.tj ≡ stevilo mnozic zaporedja s tipom j.

E[t] = E[∑j

tj ] =∑j

E[tj ]

Ce je Si tipa j, potem je P [Si+1 tipa j] ≤ 12 .

Ce je Si tipa j, potem je P [Si+1 ni tipa j] ≥ 12 - to je uspesen poskus!

E[tj ] ≡ kolikokrat ponovimo poskus, dokler ne dobimo uspesnega poskusa ≤ 112≤ 2. Zato lahko zapisemo:

E[tj ] ≤log 3

4n∑

j=0

2 = O(log n)

To naredimo za vsak s ∈ S. Potem velja:

E[stevilo primerjav] = E[(stevilo primerjav tipa s <> , ko s ni pivot)] =∑s∈SO(log n) = O(n log n)

2.2 Min-CutVhod: multigrafIzhod: minimalni prerez

6

Page 8: Alternativni modeli računanja (v1.0)

2.2.1 RandMin-CutG0 := vhodni graf Gi := 0while (|V (Gi)| > 2) do

ei = nakljucna povezava iz GiGi+1 = Gi/ei (izbrisemo cikle)i+ +

return prerez v Gi

Zgled.

Izrek. Algoritem RandMin-Cut vrne minimalen prerez z verjetnostjo najmanj 2n(n−1) , kjer je n stevilo tock.

Dokaz. Naj bo (A,B) minimalen prerez, K =moc (A,B).Ocitno velja: degG(v) ≥ K.Ei ≡ dogodek ei 6∈ (A,B).Ko velja, da prvih i povezav ni v prerezu (E0 ∩ E1 ∩ . . . Ei), potem je (A,B) se vedno minimalen prerez. Potem je

degGi+1(v) ≥ K ter

|E(Gi+1)| = 12

∑v∈V (Gi+1

degGi+1(v) ≥ 12K|V (Gi+1| =

12K(n− i− 1)

Potem:

P [ei+1 ∈ (A,B)|E0 ∩ E1 ∩ . . . ∩ Ei] =|(A,B)||E(Gi+1)|

≤ K12K(n− i− 1)

=2

n− i− 1

P [Ei+1|E0 ∩ E1 ∩ . . . ∩ Ei] =1− 2n− i− 1

=n− i− 3n− i− 1

P [Ei|E0 ∩ E1 ∩ . . . ∩ Ei−1] =n− i− 2n− i

P [algoritem vrne minimalen prerez] ≥P [algoritem(A,B)]=P [E0 ∩ E1 ∩ . . . ∩ En−3]=P [En−3|E0 ∩ E1 ∩ . . . ∩ En−4] · P [E0 ∩ E1 ∩ . . . ∩ En−4]=P [En−3|E0∩E1∩...∩En−4]·P [En−4|E0∩E1∩...∩En−5]·...P [E2|E0∩E1]·P [E1|E0]·P [E0]

=0∏

i=n−3

P [Ei|E0 ∩ E1 ∩ . . . ∩ Ei−1]

≥0∏

i=n−3

n− i− 2n− i

=2

n(n− 1)

Posledica. Ce ponovimo Min-Cut n(n− 1)-krat in izberemo najboljsi (najmanjsi) prerez, potem najdemo minimalniprerez z verjetnostjo ≥ 0.86.

Dokaz. Verjetnost napake je najvec(1− 2

n(n− 1)

)n(n−1)

≤ e−2n(n−1)n(n−1) = e−2 ≤ 0.14

7

Page 9: Alternativni modeli računanja (v1.0)

2.3 Las Vegas in Monte CarloAlgoritem je nakljucen, ce uporablja nakljucne bite. Casovna zahtevnost algoritma je lahko nakljucna spremenljivka.

Nakljucni algoritem je tipa Las Vegas, ce vedno vrne pravilni odgovor (npr.: QuickSort). Ce algoritem lahko vrnenepravilni odgovor, je tipa Monte Carlo (npr.: MinCut).

Vedno govorimo o algoritmih, nikoli o problemih (problemi nimajo tipa).Naj bo Π odlocitveni problem. Algoritem tipa Monte Carlo za probleme tipa Π lahko je:

- enostranska napaka:

Tipa 1w ∈ Π⇒ algoritem vrne w ∈ Π z verjetnostjo ≥ 3

4w 6∈ Π⇒ algoritem vedno vrne w 6∈ Π

Tipa 2w ∈ Π⇒ algoritem vedno vrne w ∈ Πw 6∈ Π⇒ algoritem vrne w 6∈ Π z verjetnostjo ≥ 3

4

- dvostranska napaka:

Tipa 3w ∈ Π⇒ algoritem vrne w ∈ Π z verjetnostjo ≥ 3

4w 6∈ Π⇒ algoritem vrne w 6∈ Π z verjetnostjo ≥ 3

4

2.3.1 Razredi- RP (Randomize poly time) - odlocitveni problemi, za katere obstaja algoritem tipa Monte Carlo 1 s polinomsko

casovno zahtevnostjo v najslabsem primeru (klasicno).

- co-RP - odlocitveni problemi, za katere obstaja algoritem tipa Monte Carlo 2 s polinomsko casovno zahtevnostjov najslabsem primeru.

- BPP (Bounded error probabislitic polynomical) - odlocitveni problemi, za katere obstaja algoritem tipa MonteCarlo 3 s polinomsko casovno zahtevnostjo v najslabsem primeru.

- ZPP (zero-error probabilistic polynomical) - odlocitveni problemi, za katere obstaja algoritem tipa Las Vegas spolinomsko pricakovano casovno zahtevnostjo.

Znano:

- P ⊆ RP

- P ⊆ BPP

Ni znano, ali je RP = co-RP ter BPP ⊆ NP (o tem ni znanega skoraj nic).

2.3.2 PolinomiNaj bo F polja (mogoce obseg?) (R,C,Zp,Fq=p∗). Velja: (+,×, a× b = 0⇔ a = 0 ali b = 0).

F[x1, x2, . . . xn] ≡ polinomi, ki imajo koeficiente v F.

Stopnja polinoma

Zgled. x2y + zy3 + xzy + xzy2 ima stopnjo 4 (pogledamo sestevek stopenj posameznih sestevancev in izberemomaksimum).

Izrek (Schwartz, Zippel). Naj bo P (x1, . . . xn) ∈ F[x1, . . . xn] stopnje d > 0, ki je P 6≡ 0. Naj bo S ⊆ F koncnamnozica. Ce je (r1, . . . rn) nakljucen element enakomerno izbran iz Sn, potem

P [P (r1, . . . rn) = 0] ≤ d

|S|.

Opomba. ri je nakljucen element iz S (med seboj so neodvisno izbrani). Izrek pomeni, da mora biti moc mnozice Svecji od stopnje d.

Zgled. Ko je n = 1: P (x1) je stopnje d ⇒ P ima najvec d nicelnih vrednosti. Kaksna je verjetnost, da je izbranielement iz S nicelna vrednost?

P [P (r1) = 0] = P [r1 je nicelna vrednost v S] ≤ d

|S|

8

Page 10: Alternativni modeli računanja (v1.0)

2.3.3 UporabaA ·B =? C

Podane so matrikeA,B,C. Zelimo dolociti, ali velja: A ·B = C. Koliko casa potrebujemo zaA ·B? O(n3) (trenutnonajboljse O(n2.376)). Ali lahko z nakljucnim algoritmom delamo to hitreje? Da - npr. RandABCvhod: A,B,C,Πn×ni=1;ponovimo k-krat

nakljucno izberemo xi ∈ −1, 0, 1 (vektor v Πn)if A · (B · xi) 6= C · xi then

return A ·B 6= Ci+ +

return A ·B = C

Izrek. Algoritem RandABC porabi O(Kn2) casa. Ce je:

- AB = C, potem vrne algoritem AB = C

- AB 6= C, potem vrne algoritem AB 6= C z verjetnostjo ≥ 1− ( 23 )K .

Dokaz. Cas - OKCe je AB = C, potem je ABx = Cx za vsak vektor xi ∈ −1, 0, 1 in algoritem gre vedno do zadnje vrstice.Ce je AB 6= C, potem

ABxi = Cxi ⇔ (AB − C)xi = 0⇔∑j

([(AB − C)xi]j)2 = 0 =‖ (AB − C)xi ‖2

∑j([(AB − C)xi]j)2 je polinom na spremenljivkah (xi)1, (xi)2, . . . (xi)n stopnje 2.

z ≡ vektor ≡ spremenljivkaz =(z1, z2, . . . zn) . . . n spremenljivk zi∑

j

([(AB − C)z]j)2 =∑j

(n∑l=1

(AB − C)jlzl

)2

(polinom na z1 . . . zn stopnje 2)

Ce AB 6= C in xi je nakljucen,

P [ABxi = Cxi] = P [xi je nicelna vrednost v∑j

([(AB − C)xi]j)2] ≤stopnja

∑j([(AB − C)xi]j)2

|−1, 0, 1|=

23

P [algoritem napacno vrne AB = C] = P [ABxi = Cxiza∀i = 1, ...k] =n∏i=1

P [ABxi = Cxi] ≤ (23

)K

P [algoritem pravilno vrne AB 6= C] ≤ 1− (23

)K

Posledica. Obstaja algoritem z lastnostmi:

- vhod A,B,C, δ ≥ 0 parametri

- izhod je:

- ce AB = C, vrne algoritem AB = C

- ce AB 6= C, vrne algoritem AB 6= C z verjetnostjo ≥ 1− δ

- porabi O(n2 log( 1δ ))

Dokaz. Manjka.

9

Page 11: Alternativni modeli računanja (v1.0)

1-faktor v dvodelnem grafu

G podan dvodelen graf z n + n tockami. Ali ima G 1-faktor (prirejanje, ki pokrije vsako tocko)? En del grafa jea1, . . . an, drugi del b1 . . . bn. Naj bo Z matrika n× n :

(Z)ij =Xij ce aibj ∈ E(G)0 sicer

kjer so xij spremenljivke.

Zgled.x11 0 x13 00 x22 0 0x31 0 0 x34

0 x42 x43 0

detZ =∑π∈Sn

sgn(π)(Z)1,π(1) · (Z)2,π(2) · (Z)n,π(n)

=∑π∈Sn,

aibπ(i), je prirejanje za ∀i

sgn(π) · x1,π(1) · . . . xn,π(n)

det(Z) je polinom, ki ima |E| = O(n2) spremenljivk in stopnjo ≤ n.det(Z) 6≡ 0⇔ G ima 1-faktor.Ce izberemo nakljucno rij ∈ 1, ...2n za vsako povezavo ai, bj ∈ E(G), potem je

P [det(Z(rij)) 6= 0|det(Z) 6= 0] ≤ n

2n≤ 1

2

Algoritem:ponovimo k-krat:

rij je nakljucno enakomerno izbran iz 1, 2, ...2n za vsako povezavo ai, bj ∈ E(G)if (det(Z(rij)) 6= 0

return obstaja 1-faktor, exitreturn ne obstaja 1-faktor

Lastnosti:

- ce ne obstaja 1-faktor, potem algoritem vrne, da ne obstaja

- ce 1-faktor obstaja, potem algoritem to vrne z verjetnostjo ≥ 1− ( 12 )K

- casovna zahtevnost: K

Opomba. Algoritem AB = C in obstaja 1-faktor: operacije +, -, ×, ÷. Operacije lahko delamo tudi v Zp, vendarmoramo paziti, da je p vecji od najvecjega stevila v polinomu.

Algoritem preveri, ali je P (x) = 0 za nakljucen x. Ce je p dovolj velik, so koeficienta polinoma P tudi v Z,Zp.V Zp lahko delamo operacije le, ce je vhod celostevilski.Vecji S pri izreku: bolsji, vendar lahko dobis overflow.

2.4 Cernove meje (Chernoff bounds)Izrek. Naj bodo X1, X2, . . . Xn neodvisne nakljucne spremenljivke s sliko 0, 1. (npr. met kovanca). Naj boX =

∑ni=1Xi in µ = E[X]. Za vsak δ ∈ (0, 1) velja:

P [X − µ ≥ δ · µ] ≤ e−µδ2/3

P [µ−X ≥ δ · µ] ≤ e−µδ2/3

P [|X − µ| ≥ δ · µ] ≤ 2e−µδ2/3

Opomba. Zelimo, da je X blizu matematicnega upanja - potencialno majhno.

- n ni pomemben

- µ je pomemben

10

Page 12: Alternativni modeli računanja (v1.0)

- ponavadi izberemo δ tako, da je µ · δ2 ∼ c lnn:

(eµδ2)

13 ≈ n− 1

3 c

Zgled. Neodvisno mecemo kovanec n-krat. Naj bo X stevilo grbov.

E[X] =n

2

Z Markovsko neenakostjo:

P [X − n

2≥ δ n

2] = P [X ≥ (1 + δ)

n

2] ≤

n2

(1 + δ)n2=

11 + δ

Naj bo Xi = 1, ce je i-ti met grb, sicer je 0. X =∑Xi, µ = n

2 , c je konstanta.

P [|X − µ| ≥√c · n · lnn] =P [|X − n

2| ≥ 2

√c · lnn√n

· n2

]

≤2 · e−n2 · 4c lnnn

13

=2 · n− 2c3

=2n

2c3

Ce je c = 32 , potem P [X 6∈ [n2 −

√23n lnn, n2 +

√23n lnn]] ≤ 1

n

Ko je n = 106, potem je P [X 6∈ [ 106

2 − 1000, 106

2 + 1000]] ≤ 1106

Zgled. Naj bodo X1, X2, . . . neskoncno zaporedje neodvisnih nakljucnih spremenljivk ∈ 0, 1. Predpostavimo, daje P [Xi = 1] ≥ 1

2 . Naj bo c ≥ 4 konstanta.Verjetnost, da ima prvih (c ·K · lnn) spremenljivk manj kot K lnn enic je ≤ 1

nck24

.

Opomba. Gre za prvih (K lnn) uspesnih poskusov.

Dokaz.

X =cK lnn∑i=1

Xi, µ = E[X] ≥ cK lnn2

P [X ≤ K · lnn] =P [µ−X ≥ µ−K lnn]

=P [µ−X ≥ µ(1− k lnnµ

)], kjer je δ ∈ (0, 1)

≤e−µ(1−K lnnµ )2 1

3

≤e−µ(1− 2c )2 1

3

≤e−µ 14·3

≤e− cK lnn2

112

≤n− cK24

≤ 1

ncK24

2.4.1 QuickSort(S)Izberemo s ∈ S. S1, S2, . . . St 6= podmnozice, ki vsebujejo s rekurzivnih podproblemov. t je stevilo primerjav,kjer primerjamo s in s ni pivot. Ogledali smo si ze E[t] = O(log n)

Iteracija i je uspesna, ce |Si+1| ≤ 34 |Si|. Velja

P [iteracija i je uspesna] ≥ 12.

Koliko iteracij potrebujemo, da dobimo log 34n uspesnih iteracij?

11

Page 13: Alternativni modeli računanja (v1.0)

Opomba. K = log 43e

Uporabimo zgornji zgled, kjer je Xi posamezna iteracija. Ce imamo 48 · log 34e lnn iteracij, z verjetnostjo 1− 1

n2

dobimo ≥ K lnn uspesnih iteracij =⇒ t ≤ 48 · log 43e lnn z verjetnostjo ≥ 1− 1

n2 .P [∃s ∈ S, ki rabi t ≥ 48 log 4

3e lnn] ≤

∑s∈S P [s rabi t ≥ 48 log 4

3e lnn] ≤ n 1

n2 = 1n

Z verjetnostjo ≥ 1− 1n ima (n)(48 log 4

3e lnn) primerjav.

2.5 Markovske verigeProblem 2-SAT.vhod: spremenljivke x1, . . . xn, cleni C1, . . . Cm, vsak Ci = l1i ∨ l2i , lji = xK ali ¬xKizhod: Ali obstajajo vrednosti za x1, . . . xn tako, da je izraz F = C1 ∧ C2 ∧ . . . Cm izpolnljiv.

Algoritem:izberemo nakljucni vektor B = (b1, . . . bn) ∈ >,⊥ (bi vrednost za xi)ponovimo k-krat

if B izpolnjuje F then return “DA, B”, exit;izberemo Ci, ki je ⊥ s prireditvijo B

izberemo nakljucen xj iz Ci;bj = ¬bj ;

vrnemo “F ni izpolnljiv”Kako bomo analizirali algoritem?

Trditev. Ce je k = 8 · n2, potem velja:

- F ni izpolnjiva in algoritem vrne pravilno resitev (ocitno)

- F je izpolnjiva, potem algoritem vrne “DA” z verjetnostjo ≥ 34

Predpostavimo, da je F izpolnjiva. Naj bo B∗ = (b∗1, b∗2 . . . b

∗n) (b∗i je optimalna resitev) prireditev, ki izpolnjuje

F . Algoritem ima stanje vj , ko imata B in B∗ iste vrednosti na j-tem polozaju. Na vsakem koraku popravimo enoizmed dveh sosednjih stanj. Ko pridemo v vn zmagamo - najdemo B∗.

P [Bi+1 ima stanje vj+1|Bi ima stanje vj ] ≥12

(je12

ali 1)

P [Bi+1 ima stanje vj−1|Bi ima stanje vj ] ≤12

(je12

ali 0)

V Bi gledamo clen x ∨ y, ki je ⊥ ⇒ v Bi je x = ⊥ in y = ⊥ ⇒ v B∗ je x = > ali y = > (lahko tudi oba).Vprasanje je: koliko korakov potrebujemo v nakljucnem obhodu, da pridemo do vn? (lahko gledamo pricakovano)

2.5.1 Markovska verigaMarkovska veriga je:

- mnozica stanj (states): v1, v2, . . . vn (mnozica je vedno koncna za nas)

- imamo diskretne korake t = 0, 1, 2, . . .Xt je stanje verige v koraku tX0, X1, . . .

- stanje Xt+1 je odvisno samo od stanja Xt (memoryless)

- imamo prehodno matriko P

(P )i,j = P [Xt+1 = vj |Xt = vi]

Vsota elementov v vrstici je 1.

Recimo, da izberemo nakljucno prvo stanje X0 po porazdelitvi

q(0) = (q1(0), q2(0), . . . qn(0)),

kjer P [X0 = i] = qi(0).

12

Page 14: Alternativni modeli računanja (v1.0)

Za korak t naj bo q(t) = (q1(t), q2(t), . . . qn(t)), kjer P [Xt = vi] = qi(t).

q(t) = q(t− 1) · P

P [Xt = vi] =∑j

pji · P [Xt−1 = vi]

P [Xt = vj ] =∑i

pij · P [Xt−1 = vj ]

q(t) = q(t− 1) · P = . . . = q(0) · P t

Porazdelitev Π = (Π1, . . .Πn) je stacionarna, ce velja Π = Π · P in∑

Πi = 1.Kdaj q(t) t→∞−→ Π? Kdaj obstaja stacionarna porazdelitev?

- fi,j ≡ verjetnost, da je Xt = j za nek t ≥ 1, ce je X0 = i

- hi,j ≡ pricakovano stevilo korakov, da pridemo do stanja vj iz stanja vi (hi,j > 0) (hitting time)

- N(i, t) ≡ koliko krat ima veriga stanje vi, ko gledamo t korakov

Naj bo Gp usmerjen graf za matriko P :

- vozlisca so v1, v2, . . . vn

- obstaja usmerjena povezava med vi −→ vj ⇐⇒ pij > 0

Velja fij > 0∀i, j ⇔ Gp je krepko povezan⇔ obstaja pot med vi in vj za vsak i, j ⇐⇒ veriga je ireducibilna.Veriga s prehodno matriko P je periodicna, ko obstaja konstanta c, ki deli dolzino vsakega cikla grafa.Neperiodicna:

gcd(|c|; c je cikel v G) = 1

Ce je veriga periodicna, ne more biti q(1) −→

Izrek. Koncna Markovska veriga s prehodno matriko P , kjer je Gp aperiodicni (veriga: aperiodicna) in krepkopovezan (veriga: ireducibilna) ima lastnosti:

- obstaja samo ena stacionarna porazdelitev

Π = (Π1, . . .Πn)

- fi,i = 1 in hi,i = 1Πi

- limt→∞N(i,t)t = Πi

2.5.2 UporabaGledamo verigo pi,i+1 = pi,i−1 = 1

2 za vsak i 6= 0, np0,1 = pn,n−1 = 1pij = 0 sicer

h0,n = pricakovano stevilo korakov za v0 → . . .→ vn ≥ stevilo korakov algoritma 2-SAT.Naj bo Π =

(1

2n ,1n ,

1n , . . .

1n ,

1n ,

12n

). Vsota

∑ni = 1 porazdelitev. Velja Π = . . . = Π · P =⇒ Π je edina

stacionarna porazdelitev verige. Prav tako iz izreka sledi: hi,i = 1Πi

=n ce i 6= 0, n2n ce i = 0, n

hi,i =12

(1 + hi+1,i) +12

(1 + hi−1,i) ko i 6= 0, n

h0,0 = hn,n = 1 + h1,0

hi−1,i = 2(hi,i − 1− hi+1,i

2) ≤ 2 · hi,i ≤ 2n

h1,0 = h0,0 ≤ 2nhn−1,n = h1,0 ≤ 2n

h0,n ≤ h0,1 + h1,2 + . . .+ hn−1,n ≤ n · (2n) = 2n2

13

Page 15: Alternativni modeli računanja (v1.0)

Algoritem za 2-SAT (pricakovano) porabi najvec 2n2 korakov (za to, da najde resitev, ki izpolnjuje F ).

E[stevilo korakov] ≤ 2n2

P [8n2 korakov ni dovolj] ≤ E[korakov]8n2

≤ 14

14

Page 16: Alternativni modeli računanja (v1.0)

Poglavje 3

Aproksimacijski algoritmi

Π . . . optimizacijski problem s pozitivno kriterijsko funkcijo c : dopustne resitve → R+

A . . . algoritem, ki pri podatkih I vrne dopustno resitev xA(I) v polinomskem casux∗(I) . . . optimalna resitev pri podatkih IK ≥ 1

Definicija. A je k-aproksimacijski algoritem, ce za vsak I velja:

1k

max≤ c(xA(I))

c(x∗(I))min≤ k

k je aproksimacijski faktor. Kvaliteto xA(I) merimo s funkcijo c.

Aproksimacijski algoritmi so uspesni za NP-tezke ali za probleme, kjer tezko najdemo optimalne resitve.Ie tesna povezanost med oblikovanjem aproksimacijskega algoritma in zgornjo/spodnjo mejo za C(x∗(I)).

Zgled (Pokritje (povezav z vozlisci)).podatki: graf Gnaloga: min |U| pri pogoju U ⊆ V (G),U pokritje E(G) (u ∈ U ali v ∈ U).

Algoritem A (razsipna metoda)U = H = Gwhile E(H) 6= do

izberemo uv ∈ E(H)U = U ∪ u, vH = H − u− v

return UA vedno vrne dopustno resitev.

Trditev. Algoritem A je 2-aproksimacijski.

Dokaz. Naj bodo e1, e2, . . . em povezave, ki jih izbere A. Naj bo U∗ optimalna resitev in UA resitev, ki jo vrne A.e1, e2, . . . em so disjunktne povezave (prirejanje) - vsa vozlisca so razlicna. Vsak ei rabi svoje”krajisce v U∗ =⇒|U∗| ≥ m.

|UA| = 2m ≤ 2|U∗|

Algoritem B (pozresna metoda)U = H = Gwhile E(H) 6= do

izberemo u ∈ V (H) z najvecjo stopnjoU = U ∪ uH = H − u

return UB vedno vrne dopustno resitev.

15

Page 17: Alternativni modeli računanja (v1.0)

Trditev. Algoritem B ni k-aproksimacijski, za nobeno konstanto k ≥ 1.

Dokaz. Protiprimer.

Velja, da je B O(log n)-aproksimacijski.

3.1 Problem trgovskega potnika (TSP)Imamo n mest: s1, s2, . . . sn in matriko cen D = [di,j ]i,j=1,...n (obstaja veliko razlicnih primerov, npr.: ali je matrikasimetricna (matematicno bi bilo prav, v resnici ni isto, ali hodis v hrib, ali navzdol)).

Naloga:

minn∑i=1

dσ(i)σ(i+1 (mod n)),

kjer je σ permutacija 1, . . . n −→ 1, . . . n.Izrek. Ce P 6= NP , potem ne obstaja k-aproksimacijski algoritem za TSP.

Dokaz.

Opomba. Dokazujemo ¬B ⇒ ARecimo, da obstaja k-aproksimacijski algoritem Alg za TSP. Problem Hammiltonovega cikla prevedemo na TSP

(problem I(G)): vhod Hammiltonov cikel (G) prevedemo na vhod TSP:

|V (G)| = n mest,

di,j =

1; ce ij ∈ E(G)nk + 1; sicer

Ce ima G Hammiltonov cikel, potem ima resitev problema I(G) dolzino n. Ker je Alg k-aproksimacijski algo-ritem, vrne Alg(I(G)) pot z dolzino ≤ kn. Ce G nima Hammiltonovega cikla, potem ima resitev problema I(G)dolzino ≥ kn+ 1.

Alg(I(G)) vrne pot z dolzino ≥ kn+ 1.Ker Alg(I(G)) lahko izracunamo v polinomskem casu, lahko v polinomskem casu racunamo Hammiltonov cikel

=⇒ P = NP .

3.1.1 Metricni TSPdij = dji, dij ≤ dik + dkj (trikotniska neenakost)

AlgC (za4-TSP (metricni TSP))

1. V polnem grafu Kn s cenami povezav D = [dij ] poiscemo najcenejso vpeto drevo T .

2. Hodimo po T zato, da dobimo Eulerjev obhodW , ki uporabi vsako povezano drevo dvakrat. (hodimo po zunanjistrani drevesa - kako? glej sliko). Vedno dobimo obhod v linearnem casu, vsako povezavo obiscemo dvakrat,vozlisca 2·stopnja vozlisca.

3. V W odstranimo vse veckratne ponovitve tock:W obisce 1 2 3 1 3 1 2 4 5 6 5 7 1, zanima nas obhod 1 2 3 . . . . 4 5 6 . 7 ., ki ga oznacimo z Ω

4. Vrnemo Ω

Izrek. C je 2-aproksimacijski algoritem.

Dokaz. Polinomski cas, vedno vrne dopustno resitev.Naj bo Ω∗ optimalna resitev, d() dolzina =

∑e∈ d(e). Velja: d(W ) = 2 · d(T ), ker uporabimo vsako

povezavo v T dvakrat.Zaradi trikotniske neenakosti velja:

d(Ω) ≤ d(W )

Opomba. d(u, v) ≤ d(u, x1) + d(x1, x2) + . . . d(xj+1, v)

d(Ω∗) ≥ d(T )

d(T ) je minimalno vpeto drevo, Ω∗ - ce odstranimo eno povezavo imamo vpeto pot/drevo.

d(Ω) ≤ d(W ) = 2d(T ) ≤ 2d(Ω∗)

16

Page 18: Alternativni modeli računanja (v1.0)

3.2 Aproksimacijske shemeZanima nas aproksimacijski algoritmi, ki imajo faktor poljubno blizu 1: (1 + ε)-aproksimacijski algoritem.

Definicija. Naj bo A algoritem z vhodom (I, ε). A je PTAS (polynomial time approx scheme), ce je za poljubnokonstanto ε ∈ (0, 1) algoritem A(·, ε) (1 + ε)-aproksimacijski algoritem.

A je FPTAS (fully PTAS), ce je A PTAS in je njegova casovna zahtevnost omejena s polinomom na |I| in 13 .

Zgled. Casovna zahtevnost A:

- O(n1ε ) (PTAS - ko fiksiramo ε porabi polinomski cas),

- O( nε3 ) (FPTAS),

- O((( 1ε )

1ε )

1ε n) (PTAS),

- O(( 1ε )n) (nic poznanega).

Trditev. Ce obstaja algoritem A(I, ε) z napako najvec ε · c(x∗(I)), potem obstaja PTAS z isto casovno zahtevnostjokot A.

Dokaz. Oznacimo s C∗ = c(x∗(I)) in Cε = c(xA(,ε)(I)).

- ce je problem minimizacija, potem je A PTAS. Zakaj?

0 ≤ Cε − C∗ ≤ ε · C∗

=⇒ Cε ≤ (1 + ε)C∗

=⇒ CεC∗≤ 1 + ε

=⇒ PTAS

- ce je problem maksimizacije, vemo:

0 ≤ C∗ − Cε ≤ εC∗

=⇒ Cε ≥ (1− ε)C∗

=⇒ 1− ε ≤ CεC∗

.

Ali velja 11+ε ≤ 1− ε ≤ Cε

C∗ ?

Algoritem A(·, ε′), ε′ = ε2 je PTAS.

0 ≤ C∗ − Cε′ ≤ ε′C∗

=⇒C∗(1− ε′) ≤ Cε′

=⇒C∗ ≤ 11− ε′

Cε′ ≤ 2Cε′

C∗ ≤ Cε′ + ε′C∗ ≤ Cε′ +ε

22Cε′ = (1 + ε)Cε′

11 + ε

≤ Cε′

C∗

3.2.1 Kako do PTAS ali FPTAS?Dodamo “strukturo” problemu odvisno od ε. Ko ε→ 0, “struktura” postaja vecja in vecja.

1. struktura v vhodu

2. struktura v izhodu

3. struktura v algoritmu (programu)

17

Page 19: Alternativni modeli računanja (v1.0)

Pogledali bomo le en primer za strukturo v vhodu.Kako izgleda struktura v vhodu? Imamo problem I (vhod, podatki problema), ki “izgleda cudno”. Pretvorimo ga

na lepsi, od ε odvisen problem (imel bo strukturo) I#. Za ta primer lahko poiscemo optimalno resitev X∗(I∗#) tj.(1 + ε)aproksimacija za originalen problem.

Veljati mora: X∗(I#) je dopustna resitev za I (sicer ne moremo vrniti nazaj).

Zgled (0-1 nahrbtnik). Samo nahrbtnik pomeni, da imamo neskoncno kopij predmetov, pri 0-1 nahrbtniku pa imamole 1 kopijo predmeta.

Podatki: I: c1, . . . cn ∈ Nv1, . . . vn ∈ NV ∈ N

Naloga: max∑j cjxj p.p.: xj ∈ 0, 1,

∑j vjxj ≤ V

To je NP-tezak problem.Dopustna resitev je podmnozica indeksov I ⊆ [n], ki zadosca

∑j∈I vj ≤ V .

Optimalna resitev: I∗, C∗ je cena optimalne resitve.

Trditev. 0-1 nahrbtnik lahko optimalno resujemo v casu O(nC∗) = O(n2 · cmax).

Opomba. Zakaj to ni polinomski cas? Ce damo stevilo a kot vhod, je njegova dolzina log a. V oceni nimamo logC∗,ampak C∗, zato se to imenuje psevdopolinomski cas - ni nujno polinomsko.

Algoritem s casovno zahtevnostjo O(p(n, ( najvecje stevilo vhoda ))), kjer je n velikost vhoda, je psevdopoli-nomski algoritem.

C∗ ≤ n ·maxc1, c2, . . . cn

Dokaz. Uporabimo dinamicno programiranje.Uporabimo (S, c, v), kjer je S ⊆ [n], c =

∑j∈S cj , v =

∑j∈S vj(≤ V ).

Algoritem: gledamo elemente 1, 2, . . . n po vrsti in imamo seznam trojk.

- ce sta (S, c, v) in (S′, c′, v′), kjer velja c = c′, potem uporabimo tistega, ki porabi manj prostora (v ≤ v′)=⇒ (S′, c′, v′) lahko odstranimo.

M0 = , 0, 0for i = 1 to n do

Mi := Mi−1

for each (S, c, v) ∈Mi−1

dodamo (S ∪ i, c+ ci, v + vi) v Mi if v + vi ≤ Vcistimo Mi: glej zgornjo alinejo.

return (S, c, v) ∈Mn z najvecjo ceno c

Dokaz. Dokazati zelimo, da algoritem vrne dopustno resitev (DA), optimalno resitev (DA).Za vsak i porabimo O(|Mi| · C∗):

- konstrukcija Mi pred ciscenjem porabi O(|Mi|)

- ciscenje: trojke moramo urediti po ceni - za urejanje potrebujemo O(C∗) (cene so ∈ 1, 2, . . . C∗, lahkouporabimo tabelo, . . . )

Velja: |Mi| < C∗, ko smo ocistili. Za vsako ceno najvec eno trojko.

Lahko cistimo tudi tako, da ce imata 2 trojki isto velikost, izberemo tistega, ki ima vecjo ceno. V tem primeru jecasovna zahtevnost O(n · V ).

Dokaz. Dokazati zelimo, da algoritem vrne dopustno resitev (DA), optimalno resitev (DA).Za vsak i porabimo O(V ):

- konstrukcija Mi pred ciscenjem porabi O(V )

- ciscenje: trojke moramo urediti po ceni - za urejanje potrebujemo O(C∗) (cene so ∈ 1, 2, . . . C∗, lahkouporabimo tabelo, . . . )

Velja: |Mi| < V , ko smo ocistili. Za vsako ceno najvec eno trojko.

To je tako zaradi naravnih stevil, ce bi imeli Q temu ne bi bilo tako.

Za PTAS:

18

Page 20: Alternativni modeli računanja (v1.0)

I I#c1, . . . cn −→ c1#, . . . cn#v1, . . . vn v1, . . . vnV V

↓vrnemo ←− X∗(I∗) (dopustna resitev)

Velja: ci# = b ciz c.z je polinomski cas, napake je omejena s ε · C∗. S∗ je optimalna resitev (indeksov) za I . S# je optimalna resitev

za I#.

- C∗ je cena za S∗ v I ,

- C# je cena za S# v I#,

- C je cena za S# v I =∑j∈S# cj (nasa resitev).

Velja:

0 ≤ C∗ − C =∑j∈S∗

cj −∑j∈S#

cj =

=∑j∈S∗

cj −∑j∈S∗

zcj# +∑j∈S∗

zcj#−∑j∈S#

zcj#︸ ︷︷ ︸≤0 ker je S# optimalna resitev po ci# in S∗ je dopustna resitev

+∑j∈S#

zcj#−∑j∈S#

cj

≤∑j∈S∗

(cj − zbcjzc) +

∑j∈S#

(zbcjzc − cj)︸ ︷︷ ︸≤0︸ ︷︷ ︸

≤0

≤∑j∈S∗

(cj − zbcjzc)︸ ︷︷ ︸

∈[0,z)

≤n · z ≤ ε · C∗︸ ︷︷ ︸zelimo

Ce izberemo z ≤ ε·C∗n =⇒ napaka ≤ ε · C∗. Izberemo z = ε·cmax

n ≤ ε·C∗n .

Casovna zahtevnost:

O(n · C#)C#≤C∗z≤ O(n

C∗

z)

=O(nC∗

εcmaxn

) = O(n2

ε

C∗

cmax)

=O(n3

ε)

(C# = maxS⊂[n],Sdopustna

∑j∈S

cj# = max∑j∈Sbcjzc = max

∑j∈S

cjz

)

Primer.V = 8, ε = 0.1

1 2 3 4 5 6 7 8ci 600 800 1000 200 300 1100 1300 900vi 1 2 3 4 1 4 5 3

I#: z = 0.1·13008 = 16.25, Ci# = b ciz c

19

Page 21: Alternativni modeli računanja (v1.0)

1 2 3 4 5 6 7 836 49 61 12 18 67 80 551 2 3 4 1 4 5 3

M1 : (1, 36, 1)→(1, 3, 17, 4)M2 : (1, 2, 85, 3)→(1, 2, 3, 146, 6)M3 : (2, 49, 2)→(2, 3, 110, 5)

M4 : (1, 4, 48, 5) odstranimo →(1, 3, 4, 109, 8)M5 : (1, 2, 4, 97, 7) odstranimo →(1, 2, 3, 4, 158, 10) to je preveliko!M6 : (2, 4, 61, 6) odstranimo →(, , , 9) preveliko!

Pomembno je, da ko pridemo do M8, pridemo do elementov, izmed katerih lahko izberemo najboljse. Najboljsi:(1, 3, 6,, 8) - to algoritem vrne. Preveriti moramo se v originalnem primeru.

20

Page 22: Alternativni modeli računanja (v1.0)

Poglavje 4

#P

Σ vhodna abeceda, Σ∗ besede, #P so problemi stetja za probleme iz NP.f : Σ∗ −→ N je v razredu # P, ce:

- obstaja funkcija χ : Σ∗ × Σ∗ −→ >,⊥, ki jo lahko izracunamo v polinomskem casu (imamo seznam izbiroz. vseh moznih nedeterministicnh poti)

- obstaja polinom p, ki zadosca

f(w) = |x ∈ Σ∗;χ(w, x) = > ∧ |x| ≤ p(|w|)|

Primer (Problem # SAT).vhod: formula tipa C1 ∧ C2 ∧ . . . Cm, kjer je Ci = l1 ∨ l2 ∨ . . . ln in li ∈ xj ,¬xjizhod: |f ; f je prireditev spremenljivke, ki izpolnjuje C1 ∧ C2 ∧ . . . Cm|

Definicija. f, g : Σ∗ −→ N. fg ce: ko predpostavimo, da obstaja crna skatla, ki izracuna g v polinomskem casu,lahko izracunamo f v polinomskem casu.

Opomba. f ∝> g, g ∈ FP ⇒ f ∈ FP , kjer so FP polinomske funkcije.

Definicija. f, g : Σ∗ −→ N. r : Σ∗ −→ Σ∗ je varcen (op. Darkota: Gorenc) (parsimonious), ce

f(w) = g(r(w))∀w ∈ Σ∗ in r ∈ FP.

Opomba. r je prevedba. Ce obstaja r, ki je varcna, potem f ∝> g.

#P -tezki in #P -polni problemi

f : Σ∗ −→ N je #P -tezak:

- ∀g ∈ #P

- g ∝> f

#P -poln, ce je #P -tezak in ∈ #P .

Ali obstajajo #P -polne funkcije?

Izrek. # SAT je #P -poln.

Dokaz. Dokaz Cookovega izreka.

Izrek (Valiant). # BIPARTITE PM (bipartite perfect maching) je #P -poln.

Primer (# BIPARTITE PM).vhod: dvodelen graf G = (A tB,E), |A| = |B|izhod: obstaja prirejanje, ki pokrije vsako tocko grafa - koliko je takih prirejanj

BIPARTITE PM∈ P , ampak # BIPARTITE PM je #P -poln.

Opomba. #P -tezak je tezje kot NP -tezak ali NP -poln primer

Definicija. f : Σ∗ −→ N. Nakljucni algoritem A je (ε, δ)-aproksimacija za f , ce velja:

21

Page 23: Alternativni modeli računanja (v1.0)

- P [|A(x)− f(x)| ≤ ε · f(x)] ≥ 1− δ

- A porabi cas omejen s polinomom na |x|, 1ε ,

Izrek. X1, X2, . . . Xm neodvisne spremenljivke, Xi = 0, 1, µ = E[Xi] = P [Xi = 1]. Ce

m ≥3 ln( 2

µ )

ε2µin Y =

1m

m∑i=1

Xi,

potem slediP [|Y − µ| ≤ εµ] ≥ 1− δ

Dokaz. Vaje - naloga 19.

4.1 # DNF (disjuntive normal form)vhod: C1 ∨ C2 ∨ . . . Ct (t clenov), Ci = l1 ∧ l2 . . . ∧ lki , li ∈ xj ,¬xjvelja: imamo t clenov, n je stevilo spremenljivk (xj), ki je stevilo literalov v Ci.izhod: stevilo prireditev, ki izpolnijo vhod

Opomba. # DNF je #P -poln.

Prireditev f izpolnjuje C1 ∨ C2 ∨ . . . Ct⇐⇒ f ne izpolnjuje ¬(C1 ∨ C2 ∨ . . . Ct) (poljuben vhod za SAT)f izpolnjuje F ⇐⇒ f ne izpolnjuje ¬F .Obstaja 2|spremenljivk| prireditev, ki izpolnjujejo F ⇐⇒ @ prireditve, ki izpolnjuje ¬F .

Algoritem A

vhod: F = C1 ∨ C2 ∨ . . . Ctizhod: “c(F)= stevilo prireditev, ki izpolnjujejo F ”1 x=02 for i=1 to m do

fi je nakljucna prireditev za spremenljivkef(xi) = > z verjetnostjo 1/2 ali ⊥ z verjetnostjo 1/2

if fi izpolnjuje F then X++3 return Y = (Xm )2n

Zaradi izreka: A je (ε, δ)-aproksimacija, ce

m ≥3 ln( 2

µ )

ε2 c(F )2m

- problem: m ni omejen s polinomom.SCi = f |f so prireditve, ki izpolnjujejo Ci. Ker ima Ci ki literalov: |SCi| = 2n−ki .

U =(i, f)|1 ≤ i ≤ t, f ∈ SCi

|U| =t∑i=1

2n−ki lahko izracunamo v polinomskem casu

c(F ) =| ∪ti=1 SCi| ≤ |U| so prireditve, ki izpolnjujejo Ci, CjS =(i, f)|1 ≤ i ≤ t, f ∈ SCi, f 6∈ SCj za j < i|S| =c(F )

Velja |U| ≤ t · |S| ⇐⇒ |S||U| ≥

1t Razlika med velikostjo U in S je omejena s polinomom.

Algoritem B

Razlika sedaj je polinomska.

22

Page 24: Alternativni modeli računanja (v1.0)

vhod: F = C1 ∨ C2 ∨ . . . Ctizhod: “c(F)= stevilo prireditev, ki izpolnjujejo F ”1 x=02 m = d 3t

ε2 ln( 2δ )

3 for i=1 to m doizberemo (i, f) nakljucno (in enakomerno) iz Uif (i, f) ∈ S then X++

4 return Y = (Xm )|U|

23

Page 25: Alternativni modeli računanja (v1.0)

Poglavje 5

Vzporedni algoritmi

5.1 ModeliCe model dela hitro, potem je velika verjetnost, da bo to delovalo hitro tudi v “real world”.

5.1.1 PRAM (Parallel random access machine)Imamo pomnilnik, vec procesorjev, ki lahko berejo in pisejo v/iz pomnilnika. Random access pomeni nakljucen dostopdo pomnilnika v konstantnem casu (ni realisticno). Vsak procesor Pi ima svoj pomnilnik. To pomeni, da lahko grejoinformacije tudi med skupnim pomnilnikom in pomnilnikom posameznega procesorja. Procesor Pi pozna svoj indeksi. Procesorji so med seboj sinhronizirani: imajo skupno uro (pomembno, da vsi naredijo pravi korak - da ne bi enprocesor delal 3. korak, ostali pa se 2. korak). To ni realisticno (glavna razlika med real world in modelom)! Ce nisosinhronizirani potrebujemo komunikacijo med njimi - tezko.Primer (Vsota n stevil).

vhod: tabela A[1 . . . n] stevil, velja n = 2k

(vhod je vedno tabela)vsak procesor Pi pozna svoj i in n

izhod: S =∑nj=1A[j]

1 B[i] = A[i] (B[] nova tabela)2 for h = 1 to log2 n = k do if (i ≤ n

2h) then

? B[i] := B[2i] +B[2i− 1]3 if i = 1 then return B[1]

To je koda za Pi, vendar ni nujno, da imajo vsi procesorji enako kodo. V ? potrebujemo sinhroniziranje (sicer potre-bujemo novo tabelo C, kjer belezimo trenutno delo).

Casovna zahtevnost: O(log n)

Stevilo operacij:O(log n) · O(n2 ) = O(n log n); (ne bomo uporabljali)O(n); ce procesor lahko pove, kdaj je koncal

(odvisno je od tega, kaj stejemo kot operacija) - v : pogoj ne stejemo kot operacijo. Velja: cas za dolociti, ali nekajmoram narediti ne stejemo.

Stevilo procesorjev, ki jih potrebujemo za ta program je n2 (gledamo n

2 parov)Mi bomo pisali programe, ki bodo podobni naslednjemu:

vhod: tabela A[1 . . . n] stevil, velja n = 2k

izhod: S =∑nj=1A[j]

1 if i = 1 to n pardoB[i] = A[i]

2 for h = 1 to log2 n = k dofor i = 2 to n

2hpardo

B[i] := B[2i] +B[2i− 1]3 return B[1]pardo pomeni do parallel

Vrste PRAM:

- EREW (exclusive read exclusive write) - v vsakem bitu spomina lahko pise ali bere le en procesor hkrati

- CRCW (concurrent read concurrent write) - procesorji lahko hkrati pisejo/berejo

24

Page 26: Alternativni modeli računanja (v1.0)

- ERCW

- CREW

CR ni problematicno, CW je bolj problematicno:

- common CW: vsak procesor, ki pise v isti prostor pise natanko isto

- arbitrary CW: procesorji lahko pisejo razlicne stvari, samo eden bo “zmagal” - njegov zapis ostane

- priority CW: vsak procesor ima svojo prioriteto, zmaga procesor z najvisjo prioriteto (samo on pise)

Ponavadi velja:P1 P2 . . . Pi Pi+1 . . .

PRAM ni realisticni model. Uporabljali bomo PRAM - zakaj?

- generalni model: neodvisen je od strukture

- “bottle-neck” (ozko grlo): sinhronizacija oz. koordinacija procesorjev

5.1.2 Mreza racunalnikov (network computer)Imamo procesorje, ki so med seboj povezani na znan nacin

- polje

- mreza

- hypercube (hiperkocka) Qt

Podatki lahko gredo samo po povezavah mreze. So mreze (polje, mreze, . . . ), ki so realisticne. Programi so odvisniod mreze. Ce mreza ni znana . . . ni na tem podrocju.Opomba. Mreza ima dva parametra: kar izracuna sam, podatki, ki se prenesejo po povezavih

5.1.3 DAG (directed acyclic graph - usmerjen aciklicni graf)Veljati mora |δ+(u)| = |Γ+(u)| in |δ−(u)| = |Γ−(u)| je omejeno, stevilo procesorjev, dolzina najdaljse poti ≡ CAS

Sorting network

Zelimo cip, ki mu kot podatke damo a1, a2, . . . an, kot izhod pa dobimo urejene podatke. Znotraj bomo imeli pro-cesorje. Zelimo, da na vsakem koraku naredimo linearno stevilo primerjav (navpicno), stevilo korakov (vodoravno)zelimo, da je O(log n). Za vsak n obstaja drugacna mreza.

Od sedaj naprej bomo uporabljali in govorili le o PRAM

5.2 Parametri algoritman . . . velikost vhoda

P (n) . . . stevilo procesorjevT (n) . . . casovna zahtevnost (vzporedno)

C(n) = P (n) · T (n) . . . cena algoritmaW (n) . . . stevilo operacij, ki jih dela algoritem (work)

Opomba. Velja: W (n) ≤ O(C(n)). Ce P (n) ≤ W (n)T (n) =⇒ C(n) ∼W (n).

Primer (Vsota n stevil).P (n) = O(n)T (n) = O(log n)C(n) = O(n log n)W (n) = O(n)

Zanima nas, kako lahko dobimo C(n) = O(n)?To lahko dosezemo le tako, da uporabljamo manj procesorjev - kako lahko dosezemo to? Zeleli bi P (n) = n

logn .Tabelo razdelimo na n

logn delov - 1. procesor steje stevila v prvem bloku log n elementov (steje log n elementov),2. steje stevila v 2. delu, . . . Dobimo tabelo, ki je velika n

logn stevil (v O(log n)). Na tem problemu potem lahkouporabljamo isti algoritem kot prej.

25

Page 27: Alternativni modeli računanja (v1.0)

Trditev. Recimo, da imamo algoritem s casovno zahtevnostjo T (n) in uporablja P (n) procesorjev. Ce imamo p ≤P (n) procesorjev, algoritem porabi O(T (n) · P (n)

p ) casa.

(Obstaja drugi algoritem, ki ima P ′(n) = p in T ′(n) = O(T (n) · P (n)p ).)

Dokaz. Vsak korak algoritma lahko delamo v casu O(P (n)p ) z uporabo p procesorjev: procesor Pi zaporedno dela

korake procesorja Pi, Pi+p, Pi+2p, Pi+3p, . . ..

5.2.1 Primerjava algoritmovAlgoritem je optimalen:

- ce ima najboljsi W (n)

- time-optimal: T (n)

- work-time oprimal: W (n) ∧ T (n) (zelimo oba optimalna)

- work-procesor-time optimal

- cost optimal

Definicija. NC je razred odlocitvenih problemov, ki jih lahko resujemo v casu O(logc n) z uporabo polinomskegastevila procesorjev.

VeljaNC ⊆ P

vendar ni znano, ali je P = NC - najbrz ni.

5.3 Maksimalen element tabelevhod: tabela A[1 . . . n] stevilizhod: max

iA[i]

Ze poznamo algoritem za racunanje vsote elementov v tabeli - spremenimo le, da namesto vsote tu iscemo max(ista ideja). Potrebuje O(log n) casa in O( n

logn ) procesorjev (v EREM). To je optimalen algoritem v EREW (znano,brez dokaza za nas). Hitrejse je v CRCW.

Algoritem 1

1 for i = 1 to n doB[i] = >

2 for 1 ≤ i, j ≤ n pardoif A[i] < A[j] then B[i] = ⊥

3 for i = 1 to n pardoif B[i] = > then max = A[i]

return max

Izrek. V modelu CRCW lahko najdemo maksimalen element tabele v casu O(1) z uporabo O(n2) procesorjev.

Posledica. V casu O(log log n) z uporabo O( n2

log logn ) procesorjev.

Opomba. V 2 potrebujemo CR in CW - mogoce bo vec procesorjev zelelo hkrati pisati. Zato res potrebujemo CRCW.

Problem: Potrebujemo O(n2) procesorjev in stevila operacij.Uporabili bomo DLD-drevo (doubly-logarithmic (log logn) depth).

DLD drevo

Predpostavimo n = 22k - to pomeni, da je log log n = k. Drevo ima n listov. Vozlisce, ki ima l listov ima√l otrok,

koren ima√n otrok.

Lastnosti:

- globina drevesa je ∼ log log n

26

Page 28: Alternativni modeli računanja (v1.0)

- vozlisce na nivoju i ima 22k−i otrok

- stevilo vozlisc na nivoju i je 22k−2k−i (zadnji nivo je razlicen)

Primer (za 16 elementov). 16 = 22k ⇒ k = 2Pri k = 3 ima koren 16 sinov, vsak sin je koren poddrevesa s k = 2.

Nov algoritem

Imamo 1 + log log n korakov. Na vsakem koraku “pazimo” za en nivo DLD-drevesa, od spodaj navzgor. Vsak listdrevesa je nek A[i].

Ko pazimo na vozlisce v drevesu, izracunamo maksimalen element poddrevesa s korenom v. Za izracun maksimal-nega elementa uporabljamo algoritem 1 v 5.3. Potem za vozlisce v porabimo O(1) casa z uporabo O((stopnja(v))2)procesorjev.

Algoritem porabi O(log log n) casa (na vsakem nivoju potrebujemo konstanten cas, imamo toliko nivojev).Stevilo procesorjev? Gledamo nivo i:∑

v v nivoju i

O((stopnja(v))2) =O(∑v

(stevilo otrok(v))2)

=O(∑v

(22k−i)2) = O(∑v

(22k−i+1)

=O(22k−2j−i·22k−i+1

) = O(22k) = O(n)

Opomba. Koren je na nivoju 1.

Trditev. V modelu CRCW lahko najdemo maksimalen element tabele v casuO(log log n) z uporaboO(n) procesorjev.

Stevilo operacij oz. cena algoritma jeO(n log log n). Ali obstaja algoritem, za katerega velja T (n) = O(log logn)oz. P (n) = O( n

log logn )? Da - delamo skupine, ki imajo log log n elementov, parcialno izracunamo maksimalenelement, nato uporabimo ta algoritem.

Predpostavimo nlog logn = 22k .

for i = 1 to log log n pardoB[i] = maxA[(i− 1) log log n+ 1, . . . , i log log n] zaporedno

uporabimo algoritem 5.3 za B[1, . . . nlog logn ]

Izrek. V modelu CRCW lahko najdemo maksimalni element tabele v casu O(log log n) z uporabo O( nlog logn ) proce-

sorjev.

Stevilo operacij oz. cena algoritma je linearna (O(n)).

5.4 Pointer Jumping (skakanje kazalcev)Imamo usmerjen gozd, n vozlisc. Vsako vozlisce ima oznako ∈ 1, 2 . . . n. Vsako drevo gozda ima samo en koren(konec poti).

vhod: P [1, . . . n], P [i] je “parent” vozlisca i, P [i] = i ce je i korenizhod: R[1, . . . n], R[i] koren poddrevesa, ki vsebuje i

Primer.for 1 ≤ i ≤ n pardo

S[i] = P [i]3 while S[i] 6= S[S[i]] do

S[i] = S[S[i]]R[i] = S[i]

Opomba. V 3 enacaj pomeni, da je S[i] koren.

Izrek. Problem iskanja korenov v usmerjenem gozdu lahko resujemo v modelu CREW v casu O(log h) z uporaboO(n) procesorjev, kjer je h dolzina najdaljse poti v gozdu.

Dokaz. h = maxglobina(T )|T je poddrevo gozda.Na koncu zanke “while” je S[i] (= S(i)) koren. S[i] je vedno v istem drevesu kot i. (dokazana pravilnost)Na vsakem obhodu zanke se razdalja med i in S[i] podvoji oziroma bo S[i] koren.

27

Page 29: Alternativni modeli računanja (v1.0)

Spremenjeni problem:vhod: P [1, . . . n], P [i] je “parent” vozlisca i, P [i] = i ce je i koren

W [1 . . . n] tezeizhod: σ[1, . . . n], σ(i)

∑j na poti od i do korena W [j] (ce je W [i]− 1 za ∀i, σ(i) = dolzina poti)

Zgornji algoritem deluje.for 1 ≤ i ≤ n pardo

S[i] = P [i]σ[i] = W [i] (σ(i) vsebuje vsoto od i do S[i] (brez S[i]))while S[i] 6= S[S[i]] do

σ(i) = σ(S[i]) + σ(i)S[i] = S[S[i]]

Ista ideja je v redu za veliko operacij.

Opomba. Operacija (sum) mora biti komutativna in asociativna.

Poseben primer: gozd ≡ potvhod: P [1, . . . n], P [i] je “parent” vozlisca iizhod:

Algoritem (pointer jumping), ki smo ga opisali, je EREW (ne potrebujemo CREW).

Dokaz. S[S[i]] 6= S[S[j]] za ∀i 6= j, S[S[i]] 6= koren. Dokaze se z indukcijo.

Ko imamo seznam, problem racunanja σ(i) =∑j na poti W [j] je prefiksna vsota (prefix sum). Ce je W [i] = 1

potem to imenujemo “list ranking”.

Izrek. Problem prefiksne vsote lahko resujemo v casu O(log n) z uporabo O(n) procesorjev v modelu EREW.

Cena algoritma je O(n log n).Ali obstaja cas O(log n) in stevilo procesorjev O( n

logn )? Da.Ali obstaja deterministicni algoritem? Zelo tezek. Videli bomo nakljucni algoritem (za vajo lahko uporabljamo,

da obstaja deterministicni algoritem - kot crno statla).Nakljucni algoritem

1. Skrcenje seznama do O( nlogn ) elementov

2. Pointer jumping

3. Razsirimo seznam

NASLEDNJI ALGORITEM NE BO NA IZPITU (ga ni treba znati)vhod: N [1ldotsn], N [i] je naslednik za i, N [zadnji element] =null

P [1, . . . n], P [i] je predhodnik za i, P [prvi] =nullizhod:

Gledamo “list ranking”: L[i] = stevilo kazalcev do nullRecimo da vsebuje A[i] stevilo kazalcev v originalnem seznamu od i do N [i]. Zbrisemo i iz seznama:

N(P (i)) =N(i)P (N(i)) =P (i)

L′[P [i]] = A[P [i]](L′ je stevilo korakov od P (i) do i, ko izbrisemo iA[P (i)] =A[P (i)] +A[i]

Rekurzivno izracunamo L[j] za j v seznamu. Od L(P (i)) lahko dobimo L[i] = L[P [i]]− L′[P [i]].Hkrati lahko izbrisemo vse i ∈ I , ce je I neodvisna mnozica (ni kazalcev med njimi). Izberemo I nakljucno.

Imamo nlogn procesorjev. Vsak procesor ima log n elementov, ki so zaporedni v tabeli N [].

28

Page 30: Alternativni modeli računanja (v1.0)

Poglavje 6

Kvantni racunalniki in algoritmi

6.1 Kvantni sistem- superpozicija: ce imamo sistem z n razlicnimi stanji (s0, s1, . . . sn−1), potem imamo superpozicijo:

|α >=n−1∑i=0

αi|si >

kjer je αi ∈ C,∑|αi|2 = 1

|α >≡

α0

α1

...αn−1

v bazi |s0 >, |s1 >, . . . |sn−1 >

- merjenje (measurement): ce ima sistem stanje

|α >=n−1∑i=0

αi|si >

in ga merimo, dobimo stanje si z verjetnostjo |αi|2

Ce merimo in dobimo si, potem je novo stanje sistema

|α′ >= |si >= 1 · |si >

- delno merjenje: imamo sistemC, ki vsebuje podsistemaA inB. A ima lahko klasicna stanja s0, s1, . . . sn−1,B pa klasicna stanja t0, t1, . . . tn−1. C ima lahko klasicna stanja sitj za ∀i, j.Recimo, da ima C stanje

|α >=∑i,j

αi,j |sitj >,

kjer je |sitj >= |si > |tj >,αij ∈ C,∑i,j |αij |2 = 1.

Merimo podsistem A. Kaksna je verjetnost, da bodimo stanje si?

P [dobimo si] =n−1∑j=0

|αij |2

Ce dobimo stanje si, potem je novo stanje

|α′ >=n−1∑j=0

αij√∑k |αik|2

|sitj >

Zgled. s0 = 0, s1 = 1, t0 = 0, t1 = 1;n = 2Imamo sistem α:

|α >=1√2|00 > +

12|10 > +

12|11 >

29

Page 31: Alternativni modeli računanja (v1.0)

Ce merimoP [dobimo |10 >] =

14

Ce merimo samo prvi element

P [je 0] =(

1√2

)=

12

P [je 1] =12

Ce smo merili 1, potem je novo stanje:

|α′ >=1√2|10 > +

1√2|11 >

- Evolucija: sistem |α>−→evolucija|α′> matrika U , ki je unitarna (matrika ne spremeni dolzine vektorja: |U ·x| = |x|;

velja U−1 = U∗, kjer je U∗ij = Uji

Intuicija Feyman: “I think I can safely say nobody understands quantum mechanics. ” Dela - ne poznamorazloga.

Zgled. Na zacetku imamo staje |α >= |0 >≡ (10)T od izvora. Vrata so unitarna matrika: 1√2

1 ii 1

V 2. primeru velja: H|α >≡ 1√2

1 ii 1

10 = 1√

2

1i

= 1√2|0 > + i√

2|1 >. Ko merimo H|α >, P [dobimo 1] je 1

2 .

V 3. primeru velja: H ·H|α >≡ 1√2

1 ii 1 ·

1√2

1i

= 12

1 + i2

2i = i|1 >. Ko merimo H|α >, P [dobimo 1] je 1.

6.2 Kvantni racunalniki- qubit: lahko merimo 0 ali 1, potem so mozna stanja/superpozicije:

α0|0 > +α1|1 >

- register: skupina k qubitov (za nek k)

stanje je

∑x∈0,1k

αx|x >≡

αx1

αx2

...αx2k

na bazi

x1

x2

...x2k

Ce imamo 500 qubitov, potrebujemo 2500 stevil za opis stanja sistema. Merimo lahko samo 500-krat, enkrat zavsak qubit.

- vrata: kaj lahko delamo z registrom

- HadamardVelja H2 = I (ce delamo dvakrat Hadamard, ne naredimo nicesar).

- NOT0 11 0

- fazna vrata: RΦ =1 00 cos Φ + i sin Φ

Z = R−Π ≡1 00 −1

Z|0 >=1 00 −1

10 =

10 = |0 >

Z|1 >=0−1 = 1|1 >

30

Page 32: Alternativni modeli računanja (v1.0)

- AND/OR vrata ne obstajajo: vedno obstaja inverz matrike vrat (ker je ta unitarna). To pomeni, da so vratavedno obrnljiva.

- CNOT (controlled NOT): potrebujemo 2 qubita.1 0 0 00 1 0 00 0 0 10 0 1 0POZOR: Ko spremenimo 1 qubit, spremenimo cel sistem!! To pomeni, da risemo: in to pomeni Hadamardza 1. bit. Ce imamo |α >=

∑x∈0,1k αx|x > in delamo H za prvi qubit. Ko spremenimo en qubit, se

spremeni cel sistem. Ko gledamo H1 kot matriko, moramo fiksirati bazo. Dobra baza: 0000, 1000, 0001,1001, 0010, 10101. Dva elementa baze lahko zdruzimo (kombiniramo).Sistem ima 24 stevila.

Naj bo f funkcija, za katero ostaja klasicno vezje Zanj ni nujno, da obstaja unitarna matrika, ki naredi isto kot f(mogoce ne obstaja f−1).

Obstaja kvantno vezje, ki izgledaKot vhod podamo x, 0, 0 in kot izhod dobimo x, f(x), 0.

6.3 Moc kvantnega racunalnikaMoc kvantnega racunalnika:

- deskripcija k kubitov porabi 2k stevil (amplituda)

- modifikacija enega kubita −→ spremenimo vse stevila

Problem:

- dobimo lahko samo k bitov informacije

6.3.1 Superkompaktno kodiranje (Superdense coding)En kubit ima |α >= α0|0 > +α1|1 > veliko informacije.

Definicija. Bellova stanja:

|β00 > =1√2

(|00 > +|11 >)

|β01 > =1√2

(|01 > +|10 >)

|β10 > =1√2

(|00 > −|11 >)

|β11 > =1√2

(|01 > −|10 >)

2 kubita: βxy · βx′y′ = 0, ce xy 6= x′y′

Trditev. Za xy ∈ 0, 12 velja(CNOT ·H1)|xy >= |βxy >

Opomba.

Dokaz. 1. verzija dokaza (uporaba matrik)Izberemo bazo:

e1 = |00 >e2 = |10 >e3 = |01 >e4 = |11 >

31

Page 33: Alternativni modeli računanja (v1.0)

Matrika :

H1 =1√2

1 1 0 01 −1 0 00 0 1 10 0 1 −1

H1 · e2 = . . . =

1√2

(|00 > −|10 >)

CNOT =

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

Zanima nas

(CNOT H1) ≡ CNOT ·H1 =1√2

1 1 0 00 0 1 10 0 1 11 −1 0 0

= A

(CNOT H1)|00 >≡ A · e1 =1√2

1001

= |β00 >

(CNOT H1)|01 >≡ A · e3 =1√2

0110

= |β01 >

Dokaz. 2. verzija dokaza

(CNOT H1)∑

xy∈0,12αxy|xy > = CNOT (

∑y∈0,1

(α0y + α1y√

2|0y > +

α0y − α1y√2

|1y >))

=∑

y∈0,1

(α0y + α1y√

2|0y > +

α0y − α1y√2

|1y >)

(CNOT H1)|00 > =1√2

(1 · |00 > +1 · |11 >)

(CNOT H1)|01 > =1√2

(1 · |01 > +1 · |10 >)

Trditev.(H1 CNOT )|βxy >= |xy >

Dokaz.(H1 CNOT ) (CNOT H1)|xy >= |xy >

Zacetna konfiguracija: Arjana in Bojan imata |β00 >, Arjana ima 1. kubit, Bojan drugi kubit. Protokol (za bitexy):

1. Arjana dela:xy = 00 ⇒ nic −→ |β00 >xy = 10 ⇒ dela NOT −→ |β10 >xy = 01 ⇒ dela z (fazna vrata) s prvim kubitom −→ |β01 >xy = 11 ⇒ dela z NOT −→ |β11 >

2. Arjana poslje svoj kubit Bojanu

32

Page 34: Alternativni modeli računanja (v1.0)

3. Bojan dela: (H1 CNOT )|βxy >= |xy > in meri. Iz tega dobi xy.

Potuje le en bit, dobimo lahko vec kubitov informacije.Ideja: ko imas kubit, je lahko neodvisen. Prepletenost je, ko se mora stanje gledati skupno.

6.4 Fourierjeva vzorcenje (Fourier sampling)k kubitov

Delamo H1 ⊗H2 ⊗ . . .⊗Hk = H⊗k

Trditev. Za vsako besedo u ∈ 0, 1k velja

H⊗k|u >=1√2k

∑x∈0,1k

(−1)u·x|x >

Opomba. u · x je skalarni produkt.

Posledica.H⊗k|0 . . . 0 >=

1√2k

∑x∈0,1k

|x >

Ko merimo (H⊗k|0 . . . 0 >), ima vsaka beseda isto verjetnost.

Fourierjevo vzorcenje za |α′ >:H⊗k|α >

in merimo.Recimo, da imamo funkcijo f : 0, 1k → 0, 1. (x, f(x)) ke znotraj stanja za vsako besedo x. Algoritem samo

enkrat uporabi kvantna vrata za f ! Ko merimo, dobimo samo en par (x, f(x)).Taka dinamika je problematicna - dobra je tedaj, ko ima f druge lastnosti, ki nas zanimajo (“patterns”).En primer problema: f(x) = s · x za neko s ∈ 0, 1k. Imamo crno skatlo, ki izracuna f . Ne poznamo f ali s.

Nasa naloga je dolociti s. Klasicno porabimo k klicev crne skatle. Z uporabo Fourierjevega vzorcenja je dovolj, ce leenkrat uporabimo crno skatlo.

6.4.1 Fourierjeva transformacijaNaj bo |α > en vektor, α ≡ dolzine 2M .

|β >=1√M

1 1 1 . . . 11 ω ω2 . . .1 ω2 ω4 . . .1 ω3 ω6 . . .

αElement matrike: (matrika)j,k = ωj·k.

ω = e2iπM = 1 2π

M= cos

2πM

+ i sin2πM

Velja: |β > je Fourierjeva transformacija za |α >. Klasicno: |β > lahko izracunamo v casu O((2n)2), FFTO(2n · log 2n). Kvantno: |β > lahko izracunamo v casu O((log 2M )2) = O(M2). Vendar pa ne moremo gledati|β >, lahko merimo samo . Ce gledamo |α > je dimenzije 2n in zato ima |α > M kubitov, kar pomeni, da lahkodobimo samo M kubitov informacije.|α > je periodicno zaporedje:

alpha >=1?

( 001︸︷︷︸ offset 000001︸ ︷︷ ︸ perioda000001000001 . . .)

? je stevilo, ki normalizira.

Trditev. Ce |α > je periodicna z dolzino periode d, kjer d deli 2M , potem je FFT |α > periodicna dolzine 2M

d in imaoffset= 0.

Dokaz. Izracunamo . . .

33

Page 35: Alternativni modeli računanja (v1.0)

Recimo, da imamo |α >, ki je periodicna. Velja: offset |α >= l, dolzina periode je d. Koliko je d?Ce merimo

|α >=

2nd −1∑i=0

?|l + i · d.

Dobimo l + i · d za nek i. Ponovimo za kopije od |α >, dobimoMerimo |β > in dobimo i1 · 2M

d za nek i, podobno ponovimo tudi za i2 · 2M

d , . . . Iz tega lahko (mogoce - ceponovimo dovoljkrat) dobimo 2M

d in iz tega d. Kaj pomeni, da ponovimo dovoljkrat?

P [gcd(i1, i2, . . . i?) = 1]

Ce je |α > periodicna, lahko izracunamo dolzino periode za |α > (verjetnost napake gre proti 0).

6.5 Problem faktorizacijeTrditev. Naj X zadosca X2 ≡ 1 (mod N) in naj velja X 6≡ ±1 (mod N). Potem je gcd(X + 1, N) deli N in ni 1.

34