Algorytmy probabilistyczne
Transkrypt
Algorytmy probabilistyczne
Algorytmy probabilistyczne Wykªad 13 Tomasz Krawczyk [email protected] Kraków, semestr zimowy 2015/16 Plan wykªadu Plan wykªadu: I Algorytmy on-line: I I Problem stronicowania. On-line matching. stronicowanie - denicja problemu Pami¦¢ wewn¦trzna procesora zawiera k jednostek (stron) pami¦ci, do których dost¦p jest bardzo szybki. Aby przeczyta¢ warto±¢ z pami¦ci zewn¦trznej, nale»y najpierw skopiowa¢ zawarto±¢ komórki pami¦ci zewnetrznej do pami¦ci wewn¦trznej. q1 , . . . , qn - adresy kolejnych komórek, które chcemy mie¢ w pami¦ci wewn¦trzej. Przetwarzaj¡c qi algorytm sprawdza, czy qi jest w pami¦ci wewn¦trzej i je»eli qi nie ma, to usuwa z pami¦ci wewn¦trznej jak¡± komórk¦ i ªaduje qi . Operacje tego typu s¡ operacjami kosztownymi, zwanymi operacjami wywªaszczania. Algorytm stronicowania precyzuje, która komórka ma zosta¢ usuni¦ta w chwili ªadowania qi je»eli qi nie jest w pami¦ci wewn¦trznej. Optymalny algorytm stronicowania: usu« t¦ komórk¦, która b¦dzie potrzebna najpó¹niej (dokªadnie t¦ , której pierwsza pozycja po qi w ci¡gu wej±ciowym jest najodleglejsza). stronicowanie on-line Algorytm on-line stronicowania podejmuje decyzj¦, który element usun¡¢ na podstawie preksu q1 . . . qi (algorytm nie zna przyszªo±ci). Powiemy, »e algorytm on-line A ma staª¡ kompetytywno±ci równ¡ c je»eli dla ka»dego wej±cia q1 , . . . , qn ilo±¢ operacji wywªaszczania w alg. A −c · optymalna ilo±¢ operacji wywªaszcania 6 pewna staªa. Nie istniej¡ algorytmy on-line dla problemu stronicowania, których staªa kompetytywno±ci jest lepsza ni» k . algorytmy markuj¡ce Ka»dy algorytm z z rodziny algorytmów markuj¡cych oznacza ka»dy element w pami¦ci wewn¦trznej jako zamarkowany b¡d¹ niezamarkowany . Algorytmy markuj¡ce dziaªaj¡ w fazach. Na pocz¡tku ka»dej fazy wszystkie elementy s¡ niezamarkowane. Obsªuga »¡dania qi : I je»eli zaczyna si¦ nowa faza, oznacz wszystkie elementy jako niezamarkowane, I je»eli qi jest w pami¦ci wewn¦trznej i qi jest niezamarkowane, zamarkuj qi , I je»eli qi nie ma w pami¦ci wewn¦trznej: I I je»eli wszystkie elementy w pami¦ci wewn¦trznej s¡ zamarkowane, zadeklaruj koniec fazy i wykonaj jeszcze raz algorytm by obsªu»y¢ qi , je»eli istnieje niezamarkowany element x , wstaw qi zamiast x do pami¦ci wewn¦trznej i zamarkuj qi . Ró»ne metody wyboru x daj¡ ró»ne algorytmy markuj¡ce. analiza algorytmu stronicowania Ka»dy algorytm z rodziny algorytmów markuj¡cych ma staª¡ kompetytywno±ci k : I w ka»dej fazie markujemy dokªadnie k elementów, I elementów zamarkowanych w trakcie danej fazy nie usuwamy z pami¦ci wewn¦trznej (w trakcie tej fazy), I w trakcie ka»dej fazy algorytm o-line musi zaªadowa¢ przynajmniej jeden element. typy algorytmów on-line Klasykacja przeciwników dla algorytmów on-line: Adaptive adversary zna algorytm on-line i jego output, dostosowuje si¦ do outputu (randomizacja nie pomaga). Oblivious adversary zna algorytm on-line, nie zna dotychczasowego outputu (randomizacja istotnie pomaga). Niech A b¦dzie algorytmem on-line przeciwko nieczuªemu adwersarzowi. Mówimy, »e algorytm zrandomizowany dziaªa ze staª¡ kompetytywno±ci c je»eli dla ka»dego inputu: warto±¢ oczekiwana liczby operacji (wywªaszczania) w algorytmie A −c · optymalna liczby operacji wywªaszczania 6 pewna staªa. zrandomizowany algorytm on-line dla stronicowania (przeciwko nieczuªemu adwersarzowi) Twierdzenie Zrandomizowany algorytm markuj¡cy wybieraj¡cy niezamarkowan¡ komórk¦ w sposób losowy ze zbioru wszystkich niezamarkowanych komórek z rozkªadem jednostajnym ma staª¡ kompetytywno±ci O(log k). zrandomizowany algorytm markuj¡cy - analiza Zaªo»enie: w fazie zerowej pami¦¢ wewn¦trzna zapeªniona elementami 1 . . . k , kolejna strona do zaªadowania (k + 1). Oznaczmy przez: I ci liczba nowych stron w fazie i . Nowe strony w fazie i to te strony z fazy i , których nie ma w pami¦ci wewn¦trznej po fazie (i − 1), pozostaªe strony z fazy i nazywami stronami starymi. I fi liczba wywªaszcze« w fazie i . Zauwa»my, »e: fi−1 + fi ≥ ci , jako »e w fazach i − 1 oraz i jest do obsªu»enia co najmniej k + ci strony, Pr k I st¡d wynika, »e f1 + . . . + fr ≥ 1 j=1 cj + 2 . 2 I zrandomizowany algorytm markuj¡cy - analiza Analiza fazy i -tej: I ci liczba stron nowych w fazie i dla ka»dej nowej strony jest konieczne wywªaszczenie przy pierwszym »¡daniu do tej strony, I k − ci liczba stron starych dla ka»dej starej strony mo»e (ale nie musi) doj±¢ do wywªaszczenia przy pierwszym »¡daniu do strony, kolejne »¡dania starej strony nie powoduj¡ wywªaszczenia, I rozpatrzmy pierwsze pojawienie si¦ strony starej x (zakªadamy, »e dotychczas w trakcie fazy pojawiªo si¦ c nowych stron oraz i − 1 starych S ): I I stan pami¦ci wewn¦trznej: zamarkowane s¡ komórki, które przed faz¡ i -t¡ zawieraªy komórki zbioru S oraz c losowe komórki spo±ród pozostaªych k komórek pami¦ci, prawdopodobie«stwo wywªaszcenia przy obsªudze x jest ograniczone przez P(wywªaszczenie przy obsªudze x) 6 c . k − (i − 1) zrandomizowany algorytm markuj¡cy - analiza Oczekiwana liczba wywªaszcze« w i -tej fazie jest ograniczona przez: ci + ci ci ci + + ... + 6 k k −1 2 1 1 + . . . + ) 6 ci log k. 2 k Oczekiwana Pr liczba wywªaszcze« w r fazach jest ograniczona przez O(log k) j=1 cj . 6 ci (1 + Poniewa» ka»dy deterministyczny algorytm wywªaszcza co najmniej r f1 + . . . + fr ≥ 1X k cj + 2 2 j=1 razy, wi¦c staªa kompetytywno±ci algorytmu wynosi O(log k). Dopasowanie doskonaªe Problem maksymalnego dopasowania: I (U, V , E ) - graf dwudzielny, wierzchoªki U przychodz¡ on-line, I algorytm tworzy dopasowanie wierzchoªków U z wierzchoªkami z V , I staªa kompetytywno±ci liczba dopasowanych wierzchoªków . dopasowanie optymalne algorytmy on-line przeciwko adaptywnemu adwersarzowi Lemat Staªa kompetytywno±ci najlepszego algorytmu on-line przeciwko 1 adaptywnemu adwersarzowi wynosi co najwy»ej 2 . algorytm on-line przeciwko nieczuªemu adwersarzowi Algorytm SIMPLE : I dla ka»dego kolejnego wierzchoªka u ∈ U : I dopasuj u do wolnego (jeszcze niedopasowanego) s¡siada z N(u) wybranego z jednostajnym prawdopodobie«stwem. Zadanie 1 Wyka», »e staªa kompetytywno±ci algorytmu SIMPLE wynosi 2 (asymptotycznie). algorytmy on-line przeciwko nieczuªemu adwersarzowi Algorytm RANKING: I niech δ b¦dzie losow¡ permutacj¡ wierzchoªków z V , I dla ka»dego kolejnego wierzchoªka u ∈ U : dopasuj u do wolnego s¡siada u pierwszego w kolej±ni±ci δ . Twierdzenie Staªa kompetytywno±ci algorytmu RANKING wynosi przybli»eniu 0.62). 1− 1 e (równe w