Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i<j n p j + p j. Todistus Olkoon B t (i, j) = 1 jos ajanhetkellä t alkio i on MF-algoritmin listassa ennen alkiota j. Siis operaation access(j) kustannus ajanhetkellä t (jos se tulisi suoritettavaksi) olisi 1 + B t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi 1 + b t (i, j). Siis S MF ave (t) = p j (1 + j=1 b t (i, j)). (Huom. hetkellä t suoritettava operaatio on riippumaton satunnaismuuttujista B t (i, j).) 89
On kaksi tapausta joissa hetkellä t alkio i on ennen alkiota j: 1. Alkutilanteessa alkio i oli ennen alkiota j, ja kumpaakaan ei vielä ole haettu. Tämän todennäköisyys on b 1 (i, j)(1 p j ) t 1 2. Alkiota i on viimeksi haettu jollain hetkellä 1 k t 1, minkä jälkeen ei ole haettu alkiota j. Tämän todennäköisyys on t 1 k=1 (1 p j ) t 1 k = t 2 h=0 (1 p j ) h Merkitään b(i, j) = lim b t (i, j). Tietysti b(i, i) = 0; kun taas i j, saadaan ( ) t 2 b(i, j) = lim b 1 (i, j)(1 p j ) t 1 + (1 p j ) h = 0 + 1 (1 p j ) =. + p j (Tässä ja jatkossa oletetaan, p j 0). h=0 90
Väite seuraa nyt suoralla laskulla: T MF Korollaari T MF ave ave = lim = p j (1 + + Save MF (m) m j=1 = 1 + i j < 2T DP ave. b(i, j)) p j + p j. Todistus Kirjoitetaan Tave DP muodossa Tave DP = i = 1 + (i 1). Koska /( + p j ) < 1, saadaan T MF ave = 1 + 2 < 1 + 2 j=1 j 1 p j p j (j 1) j=1 = 2T DP ave 1. + p j 91
Algoritmien MF ja TR vertaileminen on hankalampaa, koska ei ole mitään stabiilia lopputilannetta. Listan järjestys muuttuu (melkein) joka operaation jälkeen. Mallinnamme algoritmia tila-automaattina, jonka tiloja ovat listan mahdolliset järjestykset π (joita n! kappaletta). Olkoon Pt A (π) todennäköisyys, että hetkellä t algoritmi A on tilassa π. Periaatteessa voidaan tietysti laskea kullekin tilalle π Pt A (π) = P t (x) x X(π) missä X(π) on niiden operaatiojonojen joukko, joiden jälkeen A on tilassa π. Käytännössä tämä on liian vaikeaa. Sen sijaan tarkastelemme tilaparien välisiä siirtymätodennäköisyyksiä ja päättelemme näistä, miten eri tilojen todennäköisyydet suhtautuvat toisiinsa kun järjestelmä on asettunut (suunnilleen) tasapainojakaumaansa. Taustalla on Markovin ketjujen teoria, joka on muutenkin tärkeää tietojenkäsittelyssä: simuloitu jäähdytys, Markov Chain Monte Carlo (MCMC), Markovin piilomallit ym. 92
Markovin ketjut (alkeita) Olkoon (X 0, X 1, X 2,...) ääretön jono satunnaismuuttujia, kunkin arvoalueena { 1,..., n }. Siis esim. X t on jonkin n-tilaisen prosessin tila hetkellä t. Jono on Markovin ketju jos jokaisella t P (X t = i t X 0 = i 0, X 1 = i 1,..., X t 1 = i t 1 ) = P (X t = i X t 1 = i t 1 ) kaikilla (i 1,..., i t ); ts. koko prosessin historian tunteminen ei auta seuraavan tilan ennustamisessa enempää kuin pelkän nykytilan tunteminen. Kaikki prosessiin liittyvät todennäköisyydet tulevat siis määrätyiksi kun annetaan 1. kunkin ajanhetken t siirtymämatriisi P (t), missä P (t) ij = P (X t+1 = j X t = i) 2. alkujakauma a (0) missä a (0) i = P (X 0 = i). Seuraavassa käsitellään lähinnä homogeenista tapausta, jossa kaikilla t matriisi P (t) on sama: P (t) = P. Vektori q R n on stokastinen eli jakaumavektori jos q i 0 kaikilla i ja n q 1 = 1. Erityisesti alkujakauma ja siirtymämatriisin rivit ovat tällaisia. 93
Olkoon a (t) tilajakauma hetkellä t. Siis a (t+1) j = P (X t+1 = j) = P (X t+1 = j X t = i)p (X t = i) = P (t) ij a(t) i eli a (t+1) = a (t) P (t). Erityisesti homogeenisessa tapauksessa a (t) = a (0) P t missä P t on tavallinen matriisin potenssi. Jakaumavektori q on ketjun tasapainojakauma jos kaikilla i, j pätee lim P (X t = j X 0 = i) = q j. Jos q on tasapainojakauma, niin lim a(t) j = lim P (X t = j) = lim P (X t = j X 0 = i)p (X 0 = i) = q j P (X 0 = i). Tasapainojakaumaa ei kuitenkaan välttämättä ole olemassa. 94
Milloin tasapainojakaumaa ei ole? (Tässä ja jatkossa rajoitutaan homogeeniseen tapaukseen P (t) = P.) Jaksot: P 12 = P 21 = 1 P 11 = P 22 = 0 Nyt lim P (X t = 1 X 0 = 1) ei ole määritelty, sillä { 1 jos t parillinen P (X t = 1 X 0 = 1) = 0 jos t pariton Olkoon D i = { k (P k ) ii > 0 } niiden polunpituuksien joukko, joilla tilasta i päästän itseensä positiivisella todennäköisyydellä. Ketju on jaksoton jos joukon D i lukujen suurin yhteinen tekijä on 1 kaikilla i. (Esimerkissä D 1 = D 2 = { 0, 2, 4,... }, ja s.y.t. on 2 kummallekin tilalle. Siis ketju on jaksollinen.) 95
Epäyhtenäisyys: P 11 = P 22 = 1 P 12 = P 21 = 0 Nyt rajajakauma riippuu alkutilasta: P (X t = j X 0 = i) = { 1 jos j = i 0 jos j i Ketju on vahvasti yhtenäinen jos kaikilla i, j on olemassa k jolla (P k ) ij > 0, eli todennäköisyys siirtyä tilasta i tilaan j tasan k askelella on positiivinen. Itse asiassa edellä esitetyt kaksi syytä ovat ainoita jotka voivat estää tasapainojakauman olemassaolon: Lause Jos homogeeninen Markovin ketju on jaksoton ja vahvasti yhtenäinen, sillä on tasapainojakauma. 96
Lemma Jos q on tasapainojakauma niin Todistus q = qp. q = lim a (t) = lim a (t+1) = lim a (t) P = qp. Lemma Jos q on tasapainojakauma ja q jakauma jolle kaikilla i, j, niin q = q. q i P ij = q j P ji Todistus Oletuksen mukaan (qp ) j = q i P ij = q j P ji = q j. Siis qp = q, joten valitsemalla a (0) = q saadaan lim a(t) = lim a (0) P t = lim qp t = q. Tasapainojakauman määritelmän nojalla q = q. 97
Esimerkki P = ( 0 9/10 1/10 3/10 0 7/10 1/2 1/2 0 ) Ketju on jaksoton ja vahvasti yhtenäinen, joten tasapainojakauma q on olemassa. Se voidaan ratkaista yhtälöstä q = qp eli q 1 = 3 10 q 2 + 1 2 q 3 q 2 = 9 10 q 1 + 1 2 q 3 q 3 = 1 10 q 1 + 7 10 q 2 mistä saadan lisäehto q 1 + q 2 + q 3 = 1 huomioonottaen q = (q 1, q 2, q 3 ) = ( 65 233, 95 233, 73 233 ). Huomataan että tässä esimerkissä tasapainojakauma ei toteuta ehtoa q i P ij = q j P ji. 98
Sovelletaan nyt Markovin ketjuja TR-algoritmin analysoimiseen. Siis tiloja on n! kappaletta, ja ne esittävät permutaatioita π tai vastaavasti listoja L, joiden yhteys on L[π(i)] = i. Käytetään seuraavassa listaesitystä, joka on havainnollisempi. Tilojen välillä on seuraavanlaisia siirtymiä: tilasta L = (l 1,..., l n ) on siirtymä itseensä todennäköisyydellä p l1 (haetaan listan 1. alkio, mikään ei muutu) tilasta L = (l 1,..., l k 2, l k 1, l k, l k+1,..., l n ) on siirtymä tilaan L = (l 1,..., l k 2, l k, l k 1, l k+1,..., l n ) todennäköisyydellä p lk (haetaan listan k. alkio joka siirtyy yhden askelen lähemmäs keulaa) muiden siirtymien todennäköisyys on nolla Huomataan että jokaisesta tilasta on siirtymä itseensä positiivisella todennäköisyydellä (koska oletetaan > 0 kaikilla i). Siis erityisesti ketju on jaksoton. Ketju on selvästi myös yhtenäinen, joten sillä on tasapainojakauma. 99
Olkoon P LL edellä esitetyn mukainen todennäköisyys siirtyä tilasta L tilaan L. Huomaa että P LL 0 jos ja vain jos P L L 0. Tavoitteena on konstruoida sellainen jakauma P eri listojen yli, että P (L) P (L ) = PL L P LL aina kun P LL, P L L 0. Edellä esitettyjen tulosten mukaan tämä P on tasapainojakauma. Alla on esimerkkinä osa tapauksen n = 4 ketjusta: P 1324,1234 = p 2 P 1234,1324 = p 3 P 1234,1243 = p 4 P 1243,1234 = p 3 P 1243,1423 = p 4 P 1423,1243 = p 2 Siis jos yo. ehto pätee, saadaan esim. P 1324 = p 3 p 2 P (1234) = p 3 p 2 p 3 p 4 P (1243) = p 3 p 2 p 3 p 4 p 2 p 4 P (1423). 100
Yleisemmin sääntö näyttäisi olevan p j P (L) = P (L ) (i,j) D missä D on niiden parien (i, j) joukko, joilla alkio j on ennen alkiota i listassa L mutta alkion i jälkeen listassa L. Osoitetaan nyt täsmällisesti, että 1. tämän yleisemmän säännön toteuttava P todella on olemassa ja 2. kyseinen P on tasapainojakauma. Oletetaan ensin että P toteuttaa yo. ehdon. Olkoon L = (l 1,..., l k 2, l k 1, l k, l k+1,..., l n ) ja L = (l 1,..., l k 2, l k, l k 1, l k+1,..., l n ), jolloin siis P LL = p lk ja P L L = p lk 1. Koska vastaava joukko D koostuu parista (l k, l k 1 ), nähdään että P (L) P (L ) = p l k 1 p lk = P L L P LL eli tasapainojakauman ehto toteutuu. 101
Jotta jakauma P todella saadaan konstruioiduksi, muodostetaan ensin apufunktio S. Valitaan mielivaltainen lista L 0 ja asetetaan S(L 0 ) = 1. Muille listoille L asetetaan S(L) = (i,j) D missä taas D on niiden parien (i, j) joukko joilla alkio j on ennen alkiota i listassa L mutta alkion i jälkeen listassa L 0. Selvästi nähdään, että haluttu P saadaan asettamalla missä Z on normitusvakio p j P (L) = 1 S(L) kaikilla L, Z Z = L S(L). Yhteenveto tähänastisesta: tasapainojakauma P on olemassa ja toteuttaa P (L)P LL = P (L )P L L. 102
Olkoon nyt b (i, j) tasapainojakauman mukainen todennäköisyys, että alkio i on ennen alkiota j TR-algoritmin listassa. Muistetaan että MF-algoritmille vastaava todennäköisyys on b(i, j) =. + p j Pyritään arvioimaan todennäköisyyttä oikeassa järjestyksessä oleville pareille, eli suuretta b (i, j) kun p j. Tarkastellaan paria (L, L ) joka poikkeaa toisistaan vain yhden parin osalta: joillain indekseillä a < b pätee L[a] = L [b] = i ja L[b] = L [a] = j, mutta indekseillä c { 1,..., n } { a, b } pätee L[c] = L [c]. Olkoon V = { v 1,..., v m } niiden alkioiden joukko, jotka jäävät alkioiden i ja j väliin kummassakin listassa: L = (..., i, v 1, v 2,..., v m, j,...) L = (..., j, v 1, v 2,..., v m, i,...) Olkoon D niiden parien (r, s) joukko, joilla alkio s on ennen alkiota r listassa L mutta alkion r jälkeen listassa L : D = { (v, i) v V } { (j, v) v V } { (j, i) }. 103
Olkoon nyt i j ja p j. Jakauman P määritelmästä saadaan nyt p s P (L) = P (L ) p r = (r,s) D ( v V p v ) ( v V p v p j ) p j P (L ) = ( pi p j ) m+1 P (L ) p j P (L ). Nyt jokaista sellaista L jossa alkio i on ennen alkioita j vastaa sellainen yksikäsitteinen L jossa alkio j on ennen alkiota i, ja kääntäen. Koska b (i, j) = L P (L) ja b (j, i) = L P (L ) ja jokaisella yksittäisellä (L, L )-parilla P (L) ( /p j )P (L ), saadaan myös b (i, j) p j b (j, i). Koska b (i, j) + b (j, i) = 1 (kun i j), saadaan b (i, j) ( /p j )(1 b (i, j)) eli b (i, j) /p j 1 + /p j = + p j = b(i, j) kun p j, eli TR pitää listansa järjestyksessä ainakin yhtä hyvin kuin MF. 104