Esploracja Drzew Jaub Łopuszańsi Instytut Informatyi Uniwersytetu Wrocławsiego 20 czerwca 2007
Po pierwsze, chcę podzięować: Krzysztofowi Lorysiowi za podsycanie zainteresowania algorytmami i struturami danych Leszowi Pacholsiemu za poazanie co nie jest dowodem (wprost i nie-) Antoniemu Kościelsiemu za poazanie czym jest (precyzyjny) dowód Jurowi Marcinowsiemu za poazanie czym powinien być (fajny) dowód Marcinowi Bieńowsiemu za wprowadzenie do algorytmów on-line i liczne, celne uwagi Mirowi Dyni za temat i owocną współpracę całej eipie II UWr za nauczenie mnie ja wątpić w swoje myśli, by być pewnym swoich słów Po drugie, pragnę przeprosić za objętość tej pracy ażdego, to próbował przez nią przebrnąć, choćby tylo w poszuiwaniu Yeti czy Potwora... 2
Spis treści I. Optymalizacja Baterii 7 1. Prosty Algorytm Szacujący Głęboość 7 1.1. Opis......................................... 7 1.2. Analiza złożoności................................. 8 1.3. Doładniejsza analiza PA............................. 9 2. Szczególny przypade = 2 9 3. Wniose dla 3 10 3.1. Analiza....................................... 10 4. Pomocna wiedza 11 4.1. Znane m....................................... 11 4.2. Znane D....................................... 11 5. yeti@home 11 5.1. Dolne ograniczenie dla yeti@home max...................... 12 5.2. Charaterystya algorytmów deterministycznych dla yeti@home........ 12 5.3. Najlepszy algorytm on-line dla yeti@home.................... 13 5.4. Algorytm sprawiedliwy dla yeti@home max.................... 13 5.5. Najlepszy algorytm on-line dla yeti@home sum.................. 14 5.5.1. Zastosowanie yeti@home sum w esploracji................ 15 6. Resource anti-augmentation 16 II. Optymalizacja Czasu 17 7. Pytanie o wielomianowość 17 7.1. Algorytm Bazowy................................. 17 7.2. Kro Inducji.................................... 18 7.3. Szic analizy.................................... 20 7.4. Poprawna analiza.................................. 21 7.5. Wniosi....................................... 21 8. Pratyczny Problem 22 8.1. Drzewa α-gęste................................... 22 8.2. Inny Algorytm Bazowy: emulacja BFS...................... 22 8.3. Algorytm dla drzew α-gęstych.......................... 24 8.4. Zwyczajne drzewa................................. 25 8.5. Resource Augmentation.............................. 25 III. Algorytmy Rebalansujące ontra Flying Spaghetti Monster 26 3
9. Algorytmy rebalansujące 26 10.Flying Spaghetti Monster 26 11.Strategia Adwersarza 26 11.1. Analiza....................................... 28 11.2. Dobór parametrów................................. 28 11.3. Algorytmy zrandomizowane............................ 29 IV. 4 ɛ 30 A. Doładniejsza analiza dla 3 30 A.1. Doładniejsza analiza dla {3, 4, 5}...................... 30 A.2. Doładniejsza analiza dla 5.......................... 31 B. Jeszcze doładniejsza analiza PA 31 C. Jeszcze Jeden Parametr 32 D. Dolne ograniczenia 32 D.1. Trudny przyład dla PA.............................. 32 D.2. Trudny przyład dla samotnia.......................... 33 V. Dodatowe dodati 34 E. Adaptujący się Snajper α 34 F. O orniach i wiewiórce 36 4
W niniejszej pracy rozważam problem esploracji drzew: rozpoczynając w orzeniu drzewa, robotów musi podzielić pomiędzy siebie pracę polegającą na odwiedzeniu wszystich liści. Jest to wariant dobrze zbadanego [6, 12] problemu -TSP, w tórym dla zadanego ważonego grafu niesierowanego i liczby, należy wyznaczyć ścieże o minimalnej wadze, odwiedzających wszystie wierzchołi grafu. Problem ten jest NP-trudny, nawet gdy ograniczyć lasę grafów do drzew, przyjąć jednostowe wagi i wymagać, aby wszystie ścieżi przechodziły przez orzeń. W pracy [4] poazano reducję z silnie NP-trudnego problemu 3-PARTITION. W tej sytuacji, supiono się na sonstruowaniu wielomianowych algorytmów aprosymacyjnych [6, 12] i pseudowielomianowych [2]. Przedmiotem mojej pracy, jest jedna analiza wersji on-line tego problemu. Podejście on-line, zasadza się na założeniu, że algorytm dysponuje wiedzą na temat instancji problemu tylo taą, jaą zdołał uzysać już w tracie wypełniania zadania powierzonego mu przez złośliwego adwersarza. Ciężo o precyzyjną definicję, choć przyładów z życia nie brauje. Bardzo dobrym źródłem wiedzy na temat problemów on-line jest siąża [5]. Taie Podejście pozwala zamodelować luczową trudność jaą jest to, że graf poznawany jest dopiero w tracie jego esploracji. W istocie, często celem esploracji jest właśnie poznanie całego grafu. Do oceny taich, działających w ciemno algorytmów służy analiza onurencyjności, podobna nieco do analizy algorytmów aprosymacyjnych. Konurencyjność deterministycznego algorytmu on-line, wyznacza się jao sup σ ALG(σ) β OP T (σ), gdzie σ przebiega wszystie możliwe dane wejściowe, zaś ALG i OP T oznaczają odpowiednio oszt analizowanego algorytmu i oszt najtańszego rozwiązania jaie można by uzysać znając σ zawczasu. Dodatowo można zezwolić na nieujemną stałą addytywną β, pełniącą rolę reompensaty dla algorytmu on-line za nierówną walę z walczącym w imieniu adwersarza optymalnym algorytmem off-line. Klasycznym sposobem myślenia o problemach on-line, jest bowiem śledzenie pojedynu pomiędzy adwersarzem a algorytmem, w tórym ruchy pierwszego polegają na stopniowym przedstawianiu ja najbardziej nieorzystnego σ zgodnego z dotychczas odsłoniętym jego fragmentem, zaś ruchy drugiego na rozwiązywaniu problemu zawartego w ujawnionej części σ. Trudno sprecyzować czym jest σ oraz ja mierzony jest oszt, dopói nie przedstawi się doładnie badanego problemu. Ważne, że nie chodzi tu o zasoby omputera z reguły załada się dysponowanie nieograniczoną moc obliczeniową lecz o jaość wygenerowanego rozwiązania. Ta się jedna słada, że prezentowane w tej pracy algorytmy można zaimplementować bardzo efetywnie, co w połączeniu z NP-trudnością rozwiązywanego problemu pozwala je widzieć jao algorytmy aprosymacyjne. Jedna w pracy [2] poazano 2-aprosymacyjny algorytm off-line, suteczniejszy od prezentowanych tu 4-onurencyjnych algorytmów on-line. Tutaj, rozważane będą różne wariacje następującego problemu. Problem 1 Dane jest robotów, znajdujących się w orzeniu drzewa σ. W ażdym rou algorytm może przesunąć dowolną liczbę robotów pomiędzy sąsiadującymi wierzchołami. Algorytm zna tylo fragment σ incydentny do już odwiedzonej części. Celem jest odwiedzenie wszystich wierzchołów drzewa i powrót do orzenia ja najmniejszym osztem, liczonym jao liczba roów. 5
Dodatowym atutem algorytmu może być taa jego implementacja, w tórej roboty nie są sterowane centralnie, lecz podejmują decyzje samodzielnie w oparciu o własną wiedzę i pewną formę omuniacji z pozostałymi robotami. W pracy [4] poazano, że omuniacja jest onieczna, aby osiągnąć nietrywialną, tj. lepszą niż, onurencyjność. Poazano tam również, że bardzo sromna forma omuniacji jaą są żółte arteczi z notatami, tóre log. można przylepiać w wierzchołach wystarczy do uzysania onurencyjności W pracy [1] poazano strategię adwersarza zmuszającą dowolny algorytm on-line do wyonania log log log razy więcej operacji niż optimum. Jest to najlepsze znane ograniczenie, zatem niewiele wiadomo o fatycznej trudności rozważanego zagadnienia. Założenie, że roboty nie znają przeszuiwanego drzewa, wydaje się bardzo naturalne. Również z życia zaczerpnięto występujące w robotyce ograniczenia dotyczące poruszania się i omuniacji. Mimo, że oryginalną motywację stanowiły wyzwania taie ja esploracja Marsa, czy szuanie ofiar pod gruzami taże w czystej informatyce znaleźć można sytuacje, w tórych przemieszczanie się pomiędzy wierzchołami powinno osztować proporcjonalnie do odległości, a omuniacja powinna być ograniczona do minimum. Przyładowo, podczas wyliczania macierzy transformacji 3-D na podstawie drzewa uładów odniesienia, procesory graficzne muszą wymnażać przez siebie macierze znajdujące się w jego wierzchołach, aby móc prawidłowo przetworzyć informację w liściach. Innym przyładem jest ProLog, w tórym poszuiwanie dowodu polega na przeglądaniu pewnego drzewa, o ształcie odrywanym w tracie dowodzenia. Również tutaj, przeniesienie się pomiędzy dwoma wierzchołami możliwe jest tylo wtedy, gdy są one już odryte i łączy się z osztem zależnym od odległości między nimi. Celem jest jedna znalezienie dowodu, a więc wyróżnionego wierzchoła, tóry może znajdować się bardzo bliso orzenia, co drastycznie zmienia analizę i było już badane jao on-line searching dla jednego robota [16]. W części I minimalizuję masymalną z dróg przebytych przez roboty w tracie esploracji, czyli pojemność baterii. W wersji off-line problem ten ma to samo rozwiązanie co problem optymalizacji czasu. Dla wersji on-line udowodniono [2], że nie istnieje algorytm 1.5-onurencyjny. W tej samej pracy poazano również algorytm 8-onurencyjny tu zaprezentuję nowy rezultat, opubliowany w [1], czyli algorytm 4-onurencyjny. Podobne podejście, motywowane robotami sterowanymi ablem, czy urządzeniami wymagającymi oresowej onserwacji lub uzupełniania zasobów prezentowano w [7, 11], lecz dla jednego robota. Widać wyraźną różnicę w trudności pomiędzy optymalizacją czasu a optymalizacją pojemności baterii, jedna analiza tego modelu dostarcza cennego wglądu w naturę problemu. W rozdziale 5 przedstawiona jest dość cieawa zależność pomiędzy wersją problemu optymalizacji baterii o jawnie podanej głęboość a specyficzną wersją problemu podziału zadań, nazwaną tu yeti@home. Wydaje się ona cieawa sama w sobie, więc prezentuję jej optymalne rozwiązanie on-line. Prowadzi ono do całiem efetywnego algorytmu esploracji, taże dla oryginalnego problemu. W części II omawiam minimalizację czasu działania dla drzew rzadich oraz drzew α- gęstych, zdefiniowanych tamże. Zaproponowany algorytm ma stałą, niezależną od onurencyjność dla tej szeroiej lasy instancji i zachowuje poprawność dla pozostałych, co czyni go dość użytecznym. Warto zauważyć, że wspomniany już algorytm -onurencyjny z pracy [4] najgorsze rezultaty uzysuje właśnie dla drzew rzadich i drzew α-gęstych. W części III daję odpowiedź na często pojawiające się pytanie czemu nie można ich po prostu jaoś dzielić po równo, tj. onstruuję strategię adwersarza stanowiącą ontrprzyład dla dość szeroiej lasy algorytmów on-line starających się utrzymywać za wszelą cenę równomierne rozłożenie robotów. log 6
Część I. Optymalizacja Baterii W problemie optymalizacji baterii należy zminimalizować ilość pracy wyonanej przez najbardziej wyesploatowanego robota, to znaczy długość najdłuższej z ścieże, tórymi poryte zostanie drzewo. Problem ten jest pewnym uproszczeniem optymalizacji czasu. Istotnie, czas nie może być rótszy niż liczba roów wyonanych przez robota. Umiejętne optymalizowanie czasu polega między innymi na równomiernym podziale pracy pomiędzy roboty, zatem analizowanie problemu optymalizacji baterii może wyrobić potrzebne nam intuicje. Różnica pomiędzy problemami polega na tym, że w jednym z nich trzeba się starać wyonywać ja najwięcej rzeczy jednocześnie, a w drugim roboty mogą np. zwiedzać drzewo jeden po drugim. 1. Prosty Algorytm Szacujący Głęboość 1.1. Opis Klasyczny algorytm DFS uruchomiony na drzewie przy ustalonym porządu na dzieciach odwiedza rawędzie w pewnej onretnej olejności, zwanej dalej sewencją DFS. Użyteczną cechą DFS jest to, że olejne rawędzie sewencji DFS są incydentne. Można zatem przydzielić robotom fragmenty tej sewencji i będą mogły podążać zgodnie z nimi o ile tylo dotrą do pierwszej rawędzi fragmentu. Niech: n liczba wierzchołów drzewa m = 2(n 1) liczba (sierowanych) rawędzi drzewa liczba dostępnych robotów D głęboość drzewa λ i praca wyonana przez i-tego robota λ d = max i λ i najwięcej pracy wyonał d λ e = min i λ i najmniej pracy wyonał e OP T optymalna wartość, jaą może uzysać algorytm off-line 7
Algorytm 1 Prosty Algorytm Szacujacy Głęboość x 0 0 t 0 while jest co robić do for ażdy robot i do dojdź tam gdzie poprzedni robot sończył // x t 1 y 0 while y < 2x t do przejdź olejną rawędź sewencji DFS y y + 1 if jesteś niżej niż x t then x t x t + 1 end if end while t t + 1 x t x t 1 wróć do orzenia end for end while // x t Roboty zwiedzają drzewo jeden po drugim, wyruszając i ończąc w orzeniu, po drodze zwiedzając pewien fragment drzewa. Za ażdym razem gdy robot powraca do orzenia wymienia się pełną informacją z pozostałymi robotami czeającymi tam na niego. W ten sposób robot, tóry w danym momencie zwiedza drzewo wie o nim wszysto to co do tej pory ustalono i może dotrzeć tam gdzie poprzedni sończył. Warto zauważyć, że x t D, a ażdy spacer trwa x t 1 + 3x t roów. Ważne, że aż 2x t, czyli 50% z nich, zostało spożytowane na sewencję DFS, a jednocześnie pojedynczy spacer nie trwa zbyt długo. Ograniczeniem na algorytm offline dla tego problemu jest { } m OP T max, 2D, bo jeśli roboty muszą powrócić do orzenia, to ażda rawędź zostanie przebyta 1 co najmniej dwurotnie. 1.2. Analiza złożoności W analizie pesymistycznej złożoności można przyjąć, że roboty marnują czas stojąc w miejscu, jeśli etap schodzenia w dół lub etap wracania do orzenia trwa rócej niż x. Całowity czas algorytmu jest więc 2m, zgodnie obserwacją, że zmarnowano 50% czasu. Stąd λ e 2m/. Główną trudnością jest balans pomiędzy minimalizowaniem łącznej pracy a równomiernym jej rozdzieleniem pomiędzy roboty. Jeśli różnica pomiędzy λ d a λ e jest niewiela, to taże λ d 2m/ + λd λe 2OP T + λd λe jest nisie. Twierdzenie 2 Prosty Algorytm Szacujący Głęboość jest 4-onurencyjny w porównaniu do algorytmu off-line, rozwiązującego problem optymalizacji baterii. 1 strona bierna od przejść przeschnięta? 8
Dowód Po ażdym, oprócz ostatniego, spacerze robota d, robot e wyona jeszcze jaiś spacer. Być może w tej samej, być może w następnej fazie. Z monotoniczności x wynia zatem, że jedyną przyczyną λ e < λ d musi być ostatni spacer wyonany przez d. Z ograniczenia x D wynia jedna, że ten ostatni spacer, nie mógł trwać dłużej niż 4x 4D 2OP T. Zatem najbardziej obciążony robot wyonuje tylo 2OP T więcej roów niż najmniej obciążony, tóry z olei wyonuje tylo 2OP T roów. Dla prostoty pominęto w tym rozdziale westię optymalnego doboru pewnych parametrów. Gdyby powyższy ( algorytm ) wyonywał f x roów sewencji DFS, zamiast 2x, to byłby wg tej analizy 2 + 2 f + f 2 -onurencyjny. Żadna wartość f, nawet będąca zmienną losową, nie dałaby tu nic lepszego niż 4OP T. Drugim elementem, tóry można by modyfiować w tym algorytmie, to olejność w jaiej roboty opuszczają orzeń - zamiast robić to cylicznie, można np. wybierać zawsze tego, tóry do tej pory wyonał najmniej pracy. Również taa modyfiacja nie poprawia asymptotyi, choć ułatwia nieco zrozumienie. 1.3. Doładniejsza analiza PA Fat 3 Dla dowolnego zbioru liczb S x S x (max S min S) max S + max S min S. S Powyższy fat pomaga oszacować maximum zbioru, gdy znana jest jego rozpiętość. Niech y = d e. Cały algorytm trwa 2m roów. Zatem, d 2m y + y = 2m ( + y 1 1 ) ( ( 2 + 2 1 1 )) OP T. ( ) Zatem zaproponowany algorytm jest 4 2 -onurencyjny. 2 Dla celów powyższej analizy opłaca się wyonywać ) nieco inną ilość roów niż 2x. Biorąc f = 2 można uzysać oszt (2 1 1 1 + 2 1 1 OP T. Nie jest to znacząca poprawa, jedna poazuje, że dobór pewnych stałych zależy bardziej od dostępnej analizy niż od fatycznej specyfii problemu. 2. Szczególny przypade = 2 Istnieje prosty algorytm, w tórym tylo dwa roboty się poruszają. Jeden robot przegląda sewencję DFS od ońca, w tracie gdy pierwszy robi to od początu. Gdy wyczerpią już wszystie rawędzie wracają do orzenia. Fat 4 Dla = 2 istnieje algorytm 1.5-onurencyjny. Fat 5 Dla = 3 istnieje algorytm 2-onurencyjny. Dowód Zauważmy, że ażdy z dwóch robotów wyona doładnie połowę sewencji DFS, po czym D roów wracając do orzenia, czyli łącznie +1 2 OP T +D 2 OP T roów. 2 To oszacowanie zostanie nieco poprawione w rozdziale B 9
Warto zauważyć, że algorytm ten jest onurencyjny taże w sensie optymalizacji czasu. Co więcej, dla = 3 nie wyorzystuje on jednego z robotów, a i ta radzi sobie bardzo dobrze. 3. Wniose dla 3 Suces algorytmu z poprzedniego rozdziału, twił w rozdzieleniu robotów na dwie grupy. Dzielenie ich po równo wydaje się rozsądne, niestety trudno udowodnić tę tezę. Można natomiast poazać, że opłaca się oddelegować jednego robota zwanego dalej r, aby szedł od ońca, podczas gdy pozostałe = 1 robotów zwiedza sewencję DFS ta ja poprzednio od początu. Zys polega na tym, że ten jeden robot nie musi co chwila wracać do orzenia. Intuicyjnie powinien wyonać 1, jedna roboty idące mu naprzeciw, robią to nieoptymalnie. Trzeba zatem ta dobrać stałą c, aby robot r wyonał mniej więcej taą samą pracę, co ażdy inny robot, jeśli będzie szedł w taim tempie by nie przeraczać fracji c wszystich wyonywanych ruchów sewencji DFS. Taie podejście wymaga omuniacji na odległość pomiędzy robotami, pozwala jedna nie przejmować się błędami zaorągleń c jest liczbą rzeczywistą. 3.1. Analiza Robot r odwiedzi c m rawędzi DFS, po czym wróci do orzenia, czyli wyona (c + 0.5) OP T operacji. Pozostałe robotów musi odwiedzić c m rawędzi DFS, po czym jeszcze wrócić do orzenia. Jao, że marnują 50% czasu, to wystarczy im na to c 2m+D (2 2c + 0.5) OP T roów. Niech λ e λ d oznaczają srajne wartości liczby roów spośród tych robotów, zaś y = λ d λ e. Z lematu 3 wynia, że λ d + y. Podobnie ja poprzednio, d (2 2c 1.5) OP T (2 2c+0.5)OP T y y 4D 2OP T, + 2OP T = OP T ( 4 ) 2c 0.5 W odróżnieniu od pracy r, praca d maleje gdy c rośnie. Aby zminimalizować max{λ d, λ r } trzeba zatem zrównać λ d z λ r, co zachodzi dla c = 3.5 3, + 1 ( λ d = λ r = (0.5 + c) OP T = 4 6.5 ) OP T. + 1 Dla = 3 oznacza to 2.375 OP T, choć w rozdziale 2 lepszy rezultat uzysały tylo dwa roboty! Jest to jedna wina analizy, a nie algorytmu, co można zobaczyć w części IV. Dobierając odpowiednio współczynnii do analizy, uzysać można: dla = 3 1.986759 OP T dla = 4 2.3 OP T dla = 5 2.5 OP T Doładny wzór jest sompliowany. Ważne, że dla małych pozwala znacząco oddalić się od 4OP T. W dodatu D można zobaczyć trudne przyłady dla omawianych algorytmów.. 10
4. Pomocna wiedza 4.1. Znane m Fat 6 Jeśli roboty znają wielość drzewa, czyli m, to wystarczy im bateria 2D+ m 2OP T. Dowód Wystarczy bowiem obliczyć ile wynosi m, czyli fracja sewencji DFS przypadająca na jednego robota, a następnie ażdy robot po olei wyonałby cały swój przydział. Aby tego doonać, robot musi dotrzeć tam gdzie sończył poprzedni robot, a gdy sam sończy, to musi powrócić do orzenia - stąd dodatowe 2D. 4.2. Znane D Po pierwsze, jeśli istnieje stała, taa że D jest zawsze od niej mniejsze, to omawiany w rozdziale 1 algorytm uznać można za 2-onurencyjny ze stałą addytywną równą 4D. ( Jeśli ) zamiast 2x, ażdy robot wyonuje f x roów sewencji DFS, to algorytm staje się f+2 f -onurencyjny ze stałą addytywną (f + 2) D. Dla odpowiednio dużych f można w ten sposób uzysać prawie optymalny algorytm. Widać, że istnieje możliwość manipulowania stałą multipliatywną, osztem stałej addytywnej. Prowadzi to do pomysłu opisanego w rozdziale 6. Gdy D nie jest ograniczone, ale roboty znają D, wtedy mogą postępować nieco sprytniej, niż po prostu ustawić x = D. Jao, że proponowany w tej sytuacji algorytm będzie pratycznie ignorował ształt drzewa, wygodnie jest postawić nieco uproszczony problem - tóry jest cieawym samym w sobie zagadnieniem on-line. O nim właśnie jest rozdział. 5. yeti@home Gdy głęboość drzewa jest znana, czyli algorytm zna górne ograniczenie na oszt związany z wysłaniem robota w dowolne miejsce i powrót do orzenia, wtedy wszysto sprowadza się do zadecydowania ile rawędzi z sewencji DFS należy zwiedzić w olejnych spacerach. Oczywiście mogą istnieć inne, lepsze algorytmy, ale tutaj przedstawię analizę dość cieawego problemu i jego rozwiązania. Niech yeti@home symbolizuje jaieś trudne obliczeniowo przedsięwzięcie, w tórym obliczenia wyonywać trzeba sewencyjnie i nie wiadomo z góry iedy otrzyma się ostateczny rezultat, można jedna podzielić problem na sewencję mniejszych problemów i rozdać do policzenia wolontariuszom. Wolontariusze cylicznie jeden po drugim, zgłaszają się do serwera i pobierają dane, po upływie β jednoste czasu pracy procesora, mogą przerwać obliczenia i wysłać częściowy rezultat do serwera, ta aby następny wolontariusz mógł zacząć obliczenia tam gdzie poprzedni sończył. Operacje pobierania i wysyłania danych trwają łącznie jednostę czasu. Celem jest zagwarantowanie, że czas spędzony przez najbardziej udzielnego wolontariusza na czynne uczestnictwo w programie badawczym będzie ja najmniejszy. Optimum dla ta postawionego problemu wynosi 1 + n, gdzie n R to fatyczny czas potrzebny na doprowadzenie obliczeń do ońca. Jedna, aby móc mówić o reducji z problemu esploracji drzewa o znanej wysoości, potrzeba sztucznie przyjąć, że OP T = max { 1, n }. Te dwa nieznacznie różniące się problemy, to odpowiednio yeti@home sum i yeti@home max. Algorytm α-onurencyjny dla yeti@home max można wyorzystać w esploracji drzewa o wysoości równej D, przyjmując, że jednosta czasu to 2D rawędzi sewencji DFS, tóre robot powinien zwiedzić. 11
Oryginalna wersja problemu, czyli yeti@home sum, przeanalizowana jest w rozdziale 5.5. α-konurencyjne rozwiązanie tej wersji, również przydaje się w esploracji, prowadzi bowiem do 5α-onurencyjnego algorytmu dla dowolnych drzew. Wartość taiej reducji jest jedna czysto eduacyjna, bo dla uzysanego α zachodzi 5α > 4. 5.1. Dolne ograniczenie dla yeti@home max Dla opisanego problemu istnieje proste dolne ograniczenie. Fat 7 Dla ażdego, ażdego algorytmu on-line i dowolnej instancji, w tórej n = algorytm musi ponieść oszt co najmniej 1 + n/ 2 = 2 OP T Oznacza to w szczególności, że przypadu = 2 nie ma sensu rozważać, bo -onurencyjność to najgorszy możliwy rezultat. 5.2. Charaterystya algorytmów deterministycznych dla yeti@home Algorytm deterministyczny rozwiązujący ten problem dla ustalonego, można utożsamiać z nieujemnym ciągiem β 0, β 1,..., taim, że wolontariusz i {0,..., 1} w rundzie r wyonuje β r+i roów plus 1 jeden na operacje we-wy. Od taiego ciągu wymagamy, aby jego suma nie była sończona. Praca wyonana przez i-tego woluntariusza, po wyonaniu prefisu β 0,..., β t to wort i = (β r+i + 1). r+i t β r+i >0 Rola adwersarza sprowadza się do wsazania długości prefisu t i wyliczeniu optimum według odpowiedniego wzoru. { { max 1, 1 } ti=0 OP T t = β i dla yeti@home max 1 + 1 ti=0 β i dla yeti@home sum Wyliczając oszt poniesiony przez algorytm i jego stosune do optimum, ALG t = max i< wori t, α t = ALG t OP T t, onurencyjność algorytmu można wyrazić jao α = sup t α t. Twierdzenie 8 Jeśli dla jaiegoś istnieje algorytm o onurencyjności α, to istnieje taże tai algorytm o onurencyjności α, że t wor t mod t Dowód Dla dowolnego ustalonego algorytmu o onurencyjności α, niech e oznacza pierwszą pozycję, dla tórej wore e mod < α. Jeśli i>0 β t+i = 0, czyli wolontariusz ończy współpracę, to nic nie stoi na przeszodzie, aby zwięszył swój wład, czyli β e do taiej wartości, aby wort t mod = α, bo taa zmiana może spowodować tylo zwięszenie się OP T f dla f e, co byłoby orzystne. W przeciwnym razie, niech i jest minimalnym taim, że β t+i > 0. Wtedy na ciągu β można doonać dwóch loalnych zmian: = α β t β t + ɛ, β t+i β t+i ɛ, 12
gdzie ɛ dobrane jest ta, aby β t+i nie spadło poniżej zera, ani α e nie przeroczyło α. Taa operacja może mieć wpływ tylo na α f dla e f < t + i, polegający na zwięszeniu OP T f, zatem nie może popsuć onurencyjności algorytmu. Powtarzając ją odpowiednio wiele razy, albo wort t mod stanie się równe α, albo nie będzie już niezerowych wyrazów β t+i. Tai proces może trwać niesończenie długo, bo wyrazy ciągu są niecałowite. W taiej sytuacji można od razu wyzerować pozostałe β t+i i przejść do poprzedniego przypadu. W powyższy sposób można poprawiać na bieżąco dowolny wejściowy ciąg β, czyli wygenerować nowy, spełniający warune podany w twierdzeniu. 5.3. Najlepszy algorytm on-line dla yeti@home Powyższe twierdzenia pozwalają uprościć jeszcze bardziej opis algorytmu wystarczy podać α, ciąg β t jest wtedy zadany przez reurencyjne równanie wor t mod t = αop T t. Algorytm 2 Algorytm celujący w α dla yeti@home t 0 while jest co robić do for ażdy wolontariusz ( i do ) β t solve wort t mod = αop T t wyonaj β t roów, plus 1 na operacje we-wy t t + 1 end for end while Sytuacja jest o tyle cieawa, że powyższy algorytm jest najlepszym możliwym, o ile tylo dysponuje najlepszym możliwym α. W zależności od przyjętej definicji OP T t rozwiązuje on albo yeti@home sum albo yeti@home max. Aby dowiedzieć się jaie α należy przyjąć dla ażdego z tych przypadów, trzeba umieć stwierdzić, iedy wygenerowany ciąg β jest nieujemny i ma nieograniczoną sumę. Aby móc łatwo wyznaczyć optymalne α analitycznie, trzeba najpierw nieco uprościć sposób wyliczania OP T t oraz β t. Powyższy algorytm będzie miał onurencyjność α jeśli zamiast OP T t użyje czegoś mniejszego. Rozdział 5.4 oraz dodate E opisują pewne modyfiacje, pogorszające nieco rezultat, ale za to poddające się analizie. Intencją jest, aby te algorytmy tratować tylo jao ilustracje dające górne ograniczenia na optymalny algorytm opisany w tym rozdziale. W szczególności współczynni α uzysany dla nich, może służyć do wygenerowania sewencji według powyższego wzoru. 5.4. Algorytm sprawiedliwy dla yeti@home max Algorytm używający do generowania β t { 1 t < OP T t = r+ t min 1 i=0 β r+i t zamiast OP T t, ma tę wygodną własność, że w obrębie jednej rundy, ażdy wolontariusz wyonuje identyczną pracę zależną tylo od numeru rundy r: 13
β r = { α 1 r = 0 (α 1) ( i<r β i) r 1 t α 1 r = 0 β r = (α 1) 2 2 r = 1 β (r 1) α 1 r 2 Rozwiązaniem reurencji dla r 2 jest ( β i = (α 1) 2 2 1 ) α i 1 + 1 α 1 α 1. Aby ciąg β był nieujemny musi zatem zachodzić α 1 0 (α 1) 2 2 0 (α 1) 2 2 1 α 1 0, 3+ 5 Przyjmując minimalne α spełniające te waruni, czyli 2 2.618, można znacząco uprościć wzór na β. { α 1 t < β t = 1 α 1 t Nieco bardziej wyrafinowane podejście, wraz z dość sompliowaną analizą znajduje się w dodatu E. Z symulacji wynia, że można otrzymać onurencyjność nieco poniżej 2.5.. 5.5. Najlepszy algorytm on-line dla yeti@home sum Analiza oryginalnego problemu, w tórym OP T = 1 + n, jest prostsza, bo sumę łatwiej analizować niż maximum. Wprost ze wzoru wor t mod t = αop T t wynia prosty w porównaniu do opisanego w dodatu E wzór na β. β t = α i<t β i+(α 1) α t 1 α i=t +1 β i α 0 t < t ( t+1 (α 1) α) 0 t < ( β t = α) ( ( ( ) ( (α 1) α α) ) ) 1 t = α t 1 i=t +1 β i α t > Fat 9 Pierwszych 1 wyrazów ciągu β stanowi ciąg rosnący. Fat 10 Jeśli po pewnych 1 olejnych elementach ciągu β, stanowiących ciąg niemalejący, pojawia się element 1 1 α 1, to pozostały sufis ciągu zawiera już tylo elementy α 1. Fat 11 Aby ciąg β reprezentował poprawny algorytm, wystarczy β 1 α 1. 14
Nie jest to warune onieczny, daje jedna dość dobre oszacowanie na α. Niestety wzór na β jest trudny do analizowania, trzeba więc go oszacować od dołu przez coś prostszego. Korzystając z ( x > 1. 1 1 ) x > e + 1 x x 1, ( ) = α ( ) α = można uzysać następujący warune: ( ( 1 α ) ) α ( α > e + 1 α 1 ) α = ( e + ( ) ( (( (α 1) e + α ) α ( )) ) 1 1 α α α α 1 0. α ) α, α Lewa strona rośnie wraz z α. Można się przeonać, że po podstawieniu α = 5/3 nierówność jest spełniona dla wszystich 2. Dla dużych, lim β = (α 1)(e α 1) 1, co daje α 1.63. Oznacza to, że 5.5.1. Zastosowanie yeti@home sum w esploracji Algorytm 3 Poszuiwacze Yeti β ciąg generowany przez yeti@home sum dla x 2 while jest co robić do t 0 while nie odryto nic poniżej x/2 do for ażdy wolontariusz do wyonaj xβ t roów DFS, plus x na dojście i powrót t t + 1 end for end while x 2x end while Jao, że powyższy algorytm jest tylo ilustracją, poazującą możliwe zastosowanie, pominę detale implementacyjne i przejdę do analizy złożoności. Niech w i-tym obrocie zewnętrznej pętli WHILE odwiedza m i rawędzi. Wiadomo, że potrzebuje na to nie więcej niż α ( m i + 2i+1) roów, gdzie α < 1.6 to stała onurencyjności gwarantowana przez ciąg β. Soro w ostatniej iteracji 2 i 1 < D x 2 = 2i, to łączny czas działania wynosi 2 i 1 <D ( ) ( ) mi m α + 2i+1 < α + 8D α(1 + 4)OP T 8.15OP T. Wyni ten można poprawić do 7OP T, rozważając wersję yeti@home sumγ, w tórej optimum płaci n + γ, gdzie γ jest ta dobrane aby zminimalizować α(1 + 4γ). 15
6. Resource anti-augmentation Klasycznym podejściem w analizie algorytmów on-line jest resource augmentation, czyli zwięszenie zasobów analizowanego algorytmu np. liczby dostępnych robotów względem ilości zasobów dostępnych dla algorytmu optymalnego. Pozwala to potem ocenić ja dobrze algorytm radzi sobie z zasobami oraz wyznaczyć pratyczną metodę zagwarantowania sobie optymalnego czasu, osztem zwięszenia zasobów. Tutaj zaprezentuję podejście zupełnie odwrotne. Niech algorytm on-line dysponuje robotami, zaś algorytm optymalny off-line ma ich R dla R 1. W Prostym Algorytmie, w tórym wszystie roboty idą od lewej do prawej, wyonując przy ażdym spacerze f x roów DFS, najbardziej zmęczony robot wyona ( ) ( ) f + 2 m + (f + 2) D f roów. Algorytm optymalny musi ich wyonać { } m max R, 2D ( ) Stąd, rozważany algorytm jest R f+2 f + f+2 2 -onurencyjny. Dla f = 2 R, działa tylo ( ) 2 R + 1 razy wolniej od OPT. W pewnym sensie oznacza to, że gdy on-line ma R razy ( ) 2 mniej robotów, to działa zaledwie R + 1 R razy wolniej od off-line, czyli doładnie ta ja należy się spodziewać po dobrym algorytmie. Ta analiza orzysta z fatu, że głęboość drzewa jest czymś czego nie można przezwyciężyć dużą ilością robotów, ani sprawniejszym algorytmem, więc jeśli Prosty Algorytm radzi sobie źle, to wina twi raczej w uształtowaniu drzewa niż nieumiejętnym zarządzaniu robotami. Nie jest więc przypadiem, że powyższa analiza przypomina tę z rozdziału 4.2, dla stałej wysoości drzewa. Na te same wzory można też patrzeć ja na tradycyjne resource augmentation, gdy R 1. Jedna, zwięszanie liczby robotów wcale się nie opłaca, więc taa optya nie prowadzi do żadnych optymistycznych wniosów. 16
Część II. Optymalizacja Czasu Ta część pracy oncentruje się na optymalizacji czasu. Na problem ten można spojrzeć, jao na problem minimalizacji liczby robotów, niezbędnych do przeprowadzenia esploracji w z góry zadanym czasie. Nie jest to równoważne sformułowanie problemu, dostarcza jedna intuicji prowadzących do efetywnych algorytmów. Pomogło również w części III ostatecznie rozprawić się z wiarą w intuicyjne dzielenie robotów po równo. 7. Pytanie o wielomianowość Na począte, problem motywowany podstawową trudnością w dziedzinie esploracji drzew, czyli rozpraszaniem robotów. Wyznaczniiem tego, ja dobrze radzi sobie algorytm jest to, czy gdy napota szeroi fragment drzewa, to umiejętnie rozproszy roboty przydzielając im niezależne poddrzewa. Wiadomo, że dysponując wyładniczą liczbą robotów w drzewie o ograniczonym stopniu, można bez trudu rozdzielać roboty po równo pomiędzy poddrzewa osiągając czas działania liniowy względem wysoości drzewa. Łatwo też o przyłady prostych drzew, w tórych taa liczba robotów wydaje się uriozalnie duża. Naturalne stało się więc pytanie, czy istnieje algorytm, tóry działa w czasie liniowym względem wysoości drzewa, używa wielomianowej ilości robotów i radzi sobie z taimi prostymi drzewami. Definicja 12 Drzewo rzadie o wysoości D, to drzewo mające na ażdej głęboości i doładnie i wierzchołów, tórego wszystie liście są na tej samej głęboości D. Drzewa rzadie mają doładnie jedno rozgałęzienie na ażdym poziomie, a liczba wierzchołów wynosi Ω ( D 2). Oczywiście algorytm off-line może zwiedzić taie drzewo używając D robotów w czasie O (D). Doładna znajomość optimum upraszcza znacząco analizę onurencyjności. 7.1. Algorytm Bazowy Najprostszym algorytmem, na bazie tórego powstaną olejne, jest używający tylo jednego robota, działający w czasie Θ(D 2 ) DFS. Algorytm ten można uruchomić - zamiast na całym drzewie o wysoości D - na początowym fragmencie drzewa, o głęboości h. Będzie wtedy działał O ( h 2) roów. Można go wreszcie uruchomić na dowolnym poddrzewie oryginalnego drzewa, ograniczając jednocześnie głęboość przeszuiwania, wciąż utrzymując czas proporcjonalny do rozmiaru zwiedzanego obszaru. Ten trywialny algorytm bazowy jest optymalny dla jednego robota. Co więcej, jeśli algorytm off-line dysponuje R robotami, to jest w stanie zesplorować ten sam obszar tylo R razy szybciej. Jest to olejny przyład resource anti-augmentation. Poczynając od tego, w pewnym sensie optymalnego algorytmu, można inducyjnie wygenerować cały ciąg, osiągających coraz lepszy czas, osztem coraz więszej liczby robotów. 17
Lemat 13 Dla c 0 = 4 oraz t 0 = 2 istnieje algorytm zwiedzający fragment rzadiego drzewa o wysoości D w czasie c 0 D t 0 używający D 0 2 robotów. Dla olejnych wartości i = 0, 1,... onstrucja (i + 1)-szej wersji algorytmu, będzie używać wersji i-tej jao podprocedury. Algorytmy te będą zwiedzały drzewo w czasie c i D t i i będą używały D i 2 robotów. Aby uninąć niejasności pojawią się tu onretne stałe, taie ja c i. Trzeba bowiem uważać, aby nie uryć w notacji O czegoś zależnego od i bądź od. W istocie c i będzie rosło wraz z i, zaś t i będzie malało. Niestety zanim t i zmaleje do 1, c i będzie już bardzo duże, a pierwszy tai moment zależeć będzie od. 7.2. Kro Inducji Symboliczna ilustracja idei onstrucji algorytmu (i + 1)-szego: trójąty symbolizują obszary przeszuiwane przy pomocy wersji i-tej. Widać też, że po ażdej fazie otrzymuje się drzewo o podobnych proporcjach co początowe. W rzeczywistości, przeszuiwanych obszarów może być w ażdej fazie więcej niż jeden, a odraiwane pasy nie muszą sładać się z sąsiednich wierzchołów, co psuje regularność drzewa. 18
Algorytm dla i + 1, wyorzystując jao podprocedurę algorytm, tóry fragment drzewa o wysoości h potrafi zwiedzić w czasie c i h t i używając h i 2 robotów, dzieli drzewo o wysoości D na poziome pasy o grubości h. Po zaończeniu fazy numer f algorytm ma poznać wejściowe drzewo do głęboości f h oraz z ażdej głębiej położonej warstwy drzewa znać co najmniej f h wierzchołów. Wygodnie jest myśleć, że algorytm poznaje drzewo jednocześnie poziomymi i pionowymi pasami o grubości h. W ten sposób po ażdej fazie, nieodwiedzona jeszcze część drzewa ma właściwości analogiczne do drzewa rzadiego. Jest to jedna pewne uproszczenie, bo poznawany pionowy pas w istocie nie musi być spójny. Jest jedna prawdą, że po zaończeniu fazy f, na poziomie fh + j jest doładnie j nieodwiedzonych wierzchołów. 1 1 1 1 1 0a 1 1 1b 1 1 2 1 1b 1 2 2 1 1 2 1 2c 2 1 2 1 2 3 2c 1 2 1 2 3 2 3 1c 2 1 2 3 2 3 1 3 Przyładowy rysune drzewa rzadiego dla D = 9,h = 3, na tórym ażdy wierzchołe oznaczono numerem fazy, w tórej zostanie on po raz pierwszy odwiedzony, zaś literami a, b, c wsazano wybrane wierzchołi, w tórych rozpoczyna się przeszuiwanie w fazach 1,2,3. Na początu fazy f = 1, 2,..., D h, algorytm rozmieszcza swoje roboty po równo we wszystich odwiedzonych już wierzchołach, w odległości fh od orzenia, tóre mają nieodwiedzone jeszcze dzieco. To pod nimi właśnie, muszą ryć się rozgałęzienia i wszystie nieznane jeszcze wierzchołi f-tego pasa. Na początu pierwszej fazy chodzi tu po prostu o orzeń. W olejnych fazach, taich wierzchołów może być wiele, ale nie więcej niż h. Rozmieszczanie robotów w tych wierzchołach nie trwa dłużej niż D, jeśli początowo wszystie będą w 19
orzeniu. Następnie w ażdym z tych wierzchołów uruchamiana jest podprocedura przeszuiwania na głęboość h. Trwa to c i h t i. Po jej uończeniu, zostaną poznane wszystie wierzchołi położone nie dalej niż w odległości fh od orzenia. Oznacza to, że w tracie tej fazy, odryto h nowych wierzchołów znajdujących się na głeboości f h. Wystarczy wysłać jednego robota do ażdego z nich, aby dowolną trasą zszedł do znajdującego się poniżej liścia i powrócił do orzenia. W ten sposób w czasie 3D poznanych zostanie h nowych wierzchołów ażdego z poniższych poziomów i roboty będą gotowe do rozpoczęcia olejnej fazy. 7.3. Szic analizy Poniższa analiza jest jedynie pierwszą przymiarą - błędną, bo nie martwiącą się o to, aby dobierany parametr h oraz wyniająca z jego doboru liczba rund, były dodatnimi liczbami naturalnymi. Zamiast tego, wyliczone zostanie optymalne rozwiązanie w liczbach rzeczywistych. Algorytm w ażdej z D h faz wyonuje 4D + c ih t i operacji, zatem łączny czas działania to D h ( ) 4D + c i h t i = 4D2 h + c idh ti 1. Miejsce zerowe pochodnej tego wyrażenia przypada dla ( h = 4D c i (t i 1) ) 1 t i, co po podstawieniu, daje oszacowanie na czas 4 1 1 1 ( t t i c i i (t i 1) 1 t i 1 + 1 ) D 2 1 t i. t i 1 Dopasowując ten wzór do postaci c i+1 n t i+1 można uzysać zależności reurencyjne t i+1 = 2 1, c i+1 = 4 1 1 1 ( t t i c i i (t i 1) 1 t i 1 + 1 ), t i t i 1 co w połączeniu z bazą inducji, daje rozwiązanie o zwartej postaci t i = 1 + 1 i + 1, c i = 4 (i + 1). Na podstawie analizy czasu, można wyznaczyć liczbę potrzebnych robotów. W ażdej fazie uruchamianych jest jednocześnie h instancji algorytmu w wersji poprzedniej. Z założenia inducyjnego wynia, że ażdy podproblem wymagać będzie h i 2 robotów. Zatem łącznie algorytm w wersji (i + 1)-szej, potrzebuje ich h 1+ i 2. Znając c i oraz t i można wyliczyć h, a następnie zapotrzebowanie na roboty. ( h = 4D c i (t i 1) ) 1 ( t i = 4D 4 (i + 1) 1 i+1 ) i+1 i+2 = D i+1 i+2 h 1+ i i+1 2 = D i+2(1+ 2) i i+1 = D 2 20
7.4. Poprawna analiza Powyższa analiza byłaby całiem poprawna, gdyby mieć gwarancję, że optymalna wysoość pasa: h oraz liczba faz: D h, będą zawsze liczbami całowitymi. W i-tej wersji algorytmu uruchomionego na drzewie o wysoości D, optymalna wartość h wynosi D i i+1. Jeśli zatem D = x i+1 dla pewnego x, to h = x i. Widać, że w olejnych wywołaniach reurencyjnych, j-ta wersja algorytmu musi wtedy przetworzyć drzewo o wysoości x j+1. Z algorytmu w wersji i, wprowadzając niewielie modyfiacje, można uzysać algorytm i, tóry używa jao podprocedury algorytmu w wersji i, dbając jedna o precyzję obliczeń. Algorytm i najpierw zmierzy wysoość całego drzewa: D, potem wyliczy najmniejsze x N + taie, że D x i+1, a następnie uruchomi i-tą wersję algorytmu symulując, że drzewo ma wysoość x i+1. Analizę działania algorytmu i ułatwia fat, że algorytm i zostaje w nim uruchomiony na drzewie o wysoości, dla tórej analiza z poprzedniego rozdziału jest całowicie poprawna. Stąd, łączna liczba roów wyonywanych przez wersję i -tą, to 2D + c i (x i+1) t i = 2D + 4 (i + 1) x i+2. Jest to nie mniej niż w poprzednim rozdziale, gdyż x = D 1 i+1 1 + D 1 i+1, jeśli jedna D jest dostatecznie duże, to nadmiar pracy wyniający z symulowania dodatowych poziomów jest niewieli w porównaniu do całości. Naładając dodatowy warune D (i + 2) i+1, ( ) można zagwarantować, że x D 1 i+1 1 + 1 i+2, co pozwala ograniczyć liczbę roów przez ( ( 2D + 4 (i + 1) D 1 i+1 1 + 1 )) i+2 2D + 4 (i + 1) ed 1+ 1 i+1. i + 2 Twierdzenie 14 Jeśli D (i + 2) i+1 dla pewnego i, to istnieje algorytm używający (ed) i 2 robotów, tóry w czasie 2D+4 (i + 1) ed 1+ 1 i+1 zwiedza dowolne drzewo rzadie o wysoości D. 7.5. Wniosi Wniose 15 Dla ażdego ɛ > 0 istnieje algorytm potrzebujący ooło D 1 ɛ robotów, zwiedzający drzewo rzadie o wysoości D w czasie O ( D 1+ɛ). Wniose 16 D 64. Istnieje algorytm używający ed robotów działający w czasie 35D 4 3, o ile ( Wniose 17 Biorąc zawsze i = log D log log D 1, otrzymuje się algorytm potrzebujący O ( ) robotów i działający w czasie O D log 2 D. D log n log log D Parametr i został dobrany ta, aby D (i + 2) i+1, ale jednocześnie D 1+ 1 i+1 O (D log D). ) 21
8. Pratyczny Problem W rozważanym problemie algorytm dysponował olbrzymimi ilościami robotów. Wydaje się, że w pratycznych zastosowaniach liczba robotów jest podana na wejściu, bądź po prostu stała. Tratowanie jao stałej ma jedna tę wadę, że notacja O zrównuje wtedy ze sobą algorytm optymalny, z algorytmem używającym tylo jednego robota. Zapewne najbardziej realne byłoby założenie, że algorytm zna tylo i nie wie nic o parametrach drzewa. Dla drzew mających wszystie liście na tej samej głęboości, aby wyznaczyć D wystarczy raptem 2D roów można zatem założyć, że algorytm zna D. Algorytm z poprzedniego rozdziału nie potrafił zarządzać dużą liczbą robotów ta sprawnie ja OPT. Bazując jedna na bardzo podobnym pomyśle, można sonstruować algorytm onurencyjny, dla instancji, w tórych znane są nie tylo i D, ale również pewna gwarancja na stosune liczby robotów do rozmiaru drzewa. 8.1. Drzewa α-gęste Można rozszerzyć pojęcie drzew rzadich, czyli mających doładnie jedno rozgałęzienie na ażdym poziomie, wprowadzając pojęcie gęstości drzewa. Definicja 18 wierzchołów. Drzewo o wysoości D i W liściach, ma gęstość α jeśli ma co najmniej αdw Przyładowo, dla omawianych dotychczas drzew rzadich, 3 zachodziło W = D oraz α = 0.5. Powyższa definicja dopuszcza nieco swobodniejszą budowę drzewa, na przyład wierzchołi stopnia więszego niż 2 wciąż jedna wymaga, aby wszystie W liści znajdowało się na tej samej głęboości: D. Powyższa definicja, pozwala na wygodne oszacowanie OP T αdw 8.2. Inny Algorytm Bazowy: emulacja BFS Używając DFS, jeden robot może w czasie O (hw) spenetrować fragment drzewa o wysoości h i szeroości w, o ile h jest znane z góry. Intuicyjnie jedna, chcąc rozproszyć roboty, należy raczej przeszuiwać wszerz. Wygodnie byłoby mieć do dyspozycji algorytm BFS, tóry w czasie O (hw) penetrowałby drzewo do taiej głęboości h, na tórej jest co najmniej w wierzchołów, bądź stwierdzałby, że taie h nie istnieje. Niestety, w odróżnieniu od DFS, algorytm BFS wymaga odwiedzania niesąsiednich rawędzi, trzeba więc go emulować, wyonując DFS dla h będących olejnymi potęgami 2. Jeśli w jaimolwie momencie pracy algorytmu, ustalone zostanie, że na pewnej głęboości jest co najmniej w wierzchołów, to oznacza, że h 2 i i bieżąca iteracja będzie ostatnią. Oznacza to również, że można już nigdy nie schodzić poniżej głęboości, na tórej właśnie się znajduje. Doładniej można nawet nie wchodzić na tę głęboość. Ten algorytm w iteracji i-tej, odwiedza ażde z 2 i poziomów co najwyżej 2w razy: w razy idąc w dół, w razy - wracając. Stąd całowity czas działania tego algorytmu, to ( w2 1 + 2 +... + 2 log h ) 8wh. 3 Czyli drzewa rzadie są całiem gęste - trochę mylące. 22
1 3 2 4 5 6 7 8 9 10 11 12 13 14 15...... 16 17 18 19 20 21 22 23 24 25 26 Rysune fragmentu drzewa, dla tórego uruchomienie algorytmu z parametrem w = 4 w wierzchołu 1, da sewencję wierzchołów: 2, 1 2, 3, 2, 4, 2, 1 2, 3, 5, 7, 5, 3, 2, 4, 6, 8, 6, 4, 2, 1 1, 2, 3, 5, 7, 9, 12, 9, 7, 10, (7, 5, 3, 2, 4, 6, 8, 11, 8, 6, 4, 2, 1) Odwiedzając wierzchołe 12 algorytm po raz pierwszy ustala, że istnieje poziom mający szeroość 4, dalsza sewencja, ma na celu wyznaczenie najmniejszego h o tej własności. Ja widać, nie całe drzewo zostanie odwiedzone, w szczególności algorytm nie odwiedzi żadnego z licznych dzieci wierzchoła 11. Mimo to, odwiedzając wierzchołe 10 ma pewność, że poniżej niego szeroość wynosi 4, mógłby się zatem zatrzymać. Część ujęta w nawias służy pełnemu zbadaniu wcześniejszych poziomów. Może się również zdarzyć, że w przeszuiwanym poddrzewie nie ma poziomu, na tórym jest aż w wierzchołów. Wtedy algorytm będzie działał bardzo długo, bo aż do pełnego przeszuania całego poddrzewa. Może się wreszcie zdarzyć, że na pierwszym poziomie o co najmniej w wierzchołach, jest ich w istocie ω w. Algorytm nie przeszua wtedy w pełni h-tego poziomu, a jedynie odwiedzi pierwszych w od lewej jego wierzchołów. W razie potrzeby odwiedzenia pozostałych ω w wierzchołów, algorytm wie doładnie gdzie one są, gdyż zna doładnie (h 1)-szy poziom 23
oraz stopnie wychodzące jego wierzchołów. Lemat 19 Istnieje algorytm pozwalający, dla zadanego w, jednym robotem w czasie 8hw przeszuać drzewo do taiej głęboości h, na tórej jest w wierzchołów, bądź jeśli taie h nie istnieje, stwierdzić to w czasie proporcjonalnym do rozmiarów drzewa. 8.3. Algorytm dla drzew α-gęstych Niewątpliwie, najefetywniejsze wyorzystanie robotów, to przydzielenie im rozłącznych obszarów poszuiwań. Dlatego głęboość poziomych pasów, powinna być ta dobrana, aby za ażdym razem odrywać co najmniej nowych niezależnych wierzchołów, a co za tym idzie pionowy pas o szeroości. Definicja 20 Niech h i, to grubość poziomej warstwy wyznaczoną dynamicznie przy pomocy zrównoleglonej emulacji BFS dla w = w i-tej fazie. Aby znaleźć najwyższych rozgałęzień wyznaczających i-ty pas, wystarczy ograniczyć poszuiwania do najwyższych wierzchołów, tóre już odwiedzono, mających jaieś nieodwiedzone dzieci. W pierwszej fazie wystarczy sam orzeń, w olejnych fazach wierzchołów o tej własności może być więcej, być może aż. Po zloalizowaniu tych wierzchołów, do ażdego z nich wysyłany jest jedn robot. Poszuiwania rozwidlonych wierzchołów, prowadzone będą w rundach. W j-tej rundzie ustalany jest limit na głęboości 2 j poniżej najwyższego ze zloalizowanych wierzchołów. Uczestniczą w niej wszystie roboty, tóre znajdują się powyżej tego limitu. Każdy z tych robotów wyonuje DFS na głęboość nie przeraczającą wspólnego limitu. 4 Przy tym, podobnie ja w bazowym algorytmie, roboty starają się nigdy nie odwiedzić więcej niż wierzchołów znajdujących się na tym samym poziomie. Jeśli istnieje taa szeroość pasa h i, że jest w niej nowych wierzchołów, to przeszuiwanie zaończy się po czasie 8h i. Ważne, że w ten sposób ustalone jest położenie wszystich i wierzchołów na tym poziomie - mimo, że i z ich nie odwiedzimy. W przeciwnym razie, algorytm przejrzy całą resztę drzewa, ale to może zdarzyć się tylo raz. Przypade ten zachodzi bowiem, tylo gdy zloalizowano mniej niż interesujących poddrzew, a więc cała nieznana dotąd część drzewa, musi znajdować się właśnie pod nimi. i W pierwszej sytuacji należy w tracie rund zwiedzić pionowy pas o szeroości i. Każda taa runda polega na równoległym dotarciu do spośród i wierzchołów, a następnie zejściu dowolną drogą do liści i powrocie do orzenia. Łączny czas i-tej fazy, w tej sytuacji to 8h i + i 4D. Faz pierwszego rodzaju nie może być więcej niż W, gdyż ażda z nich odrywa pionowy pas o szeroości. Czas zużyty na wszystie fazy tego typu to i 8h i + i 4D 8D + i ( ) i + 1 4D 8D + 8DW 8D + 8 α OP T. 4 W szczególności, jeśli zloalizowano aż interesujących poddrzew, to robot odpowiedzialny za najniższe z nich, nigdy się nie poruszy. 24
Faza drugiego rodzaju zdarza się co najwyżej raz i trwa 4D 4 α OP T Zatem, sumarycznie czas jest 20 α -onurencyjny, o ile W. Algorytm nie wyorzystuje D,W, ani nawet α, pozostaje zatem poprawny, gdy > W czy n < αdw. Twierdzenie 21 Dla lasy drzew o liściach na jednym poziomie i gęstości ograniczonej od dołu przez stałą, istnieje algorytm onurencyjny dla wersji problemu, w tórej liczba robotów jest nie więsza niż pierwiaste z liczby liści, nie wymagający wcześniejszej wiedzy o rozmiarach drzewa. Twierdzenie 22 Dla lasy drzew o liściach na jednym poziomie i gęstości ograniczonej od dołu przez stałą, istnieje algorytm onurencyjny, o ile na wejściu podana jest liczba liści, W. Dowód Rozważany algorytm starał się odwiedzić pas o szeroości. Optymalnie jest jedna gdy pas ma szeroość W 2. Wtedy czas działania wynosiłby 8 W 2 D + 4DW + 4DW ( ) 8 2 W α + 4 OP T, 2 przy podobnej analizie ja poprzednia, z tą różnicą, że niepotrzebne jest założenie o liczbie robotów. 8.4. Zwyczajne drzewa Do tej pory drzewa miały wszystie liście na tej samej głęboości. Warto jedna zauważyć, że czas działania omawianego algorytmu, nie wzrośnie, jeśli z drzewa wytniemy jaiś fragment - może się on tylo poprawić. Wymaga to jedna, drobnego doprecyzowania bazowego algorytmu - zamiast szuać poziomu, na tórym jest w wierzchołów, powinien taiego, powyżej tórego jest w 1 rozgałęzień. Podobnie i powinna oznaczać nie tyle różnicę w szeroości, co ilość rozgałęzień w obrębie i-tego pasa. 5 Widać, że liczba liści w, jest nadal równa i, 6 zatem analiza pozostaje prawie bez zmian. Dla drzew, tóre mają co najmniej αwn wierzchołów, dolne ograniczenie na czas działania OPT pozostaje taie samo ja przedtem, również górne oszacowanie na czas działania algorytmu on-line zadane jest ta samo wyglądającym wzorem. Twierdzenie 23 Dla lasy drzew o gęstości ograniczonej od dołu przez stałą, istnieje algorytm onurencyjny dla instancji, w tórych liczba robotów jest nie więsza niż pierwiaste z liczby liści, nie wymagający wcześniejszej wiedzy o rozmiarach drzewa. Twierdzenie 24 Dla lasy drzew o gęstości ograniczonej od dołu przez stałą, istnieje algorytm onurencyjny, o ile liczba liści podana jest na wejściu. 8.5. Resource Augmentation Opisany algorytm umie sprawnie wyorzystać roboty, o ile jest ich nie więcej niż pierwiaste z liczby liści. Jeśli OPT ma ich r, gdzie r 1, tj. 20 rα razy szybszy. W szczególności, gdy r = 20 α zachodzi równość. 5 i powinno uwzględniać stopień ażdego rozgałęzionego wierzchoła 6 Doładniej, w jest nawet mniejsze o jeden 25
Część III. Algorytmy Rebalansujące ontra Flying Spaghetti Monster 9. Algorytmy rebalansujące Algorytmem rebalansującym nazywam algorytm, tóry utrzymuje wszystie roboty na tej samej, wciąż zwięszającej się głęboości, od czasu do czasu wyonując tzw. operacje rebalansowania. W tracie taiej operacji, algorytm przemieszcza roboty pomiędzy wierzchołami znajdującymi się na penetrowanym właśnie poziomie. Podczas tej operacji algorytm nie odwiedza wierzchołów znajdujących się poniżej, może jedna orzystać z wiedzy o tym, tóry z wierzchołów zaraz się rozgałęzi. Jao, że od algorytmu rebalansującego wymagam, aby ażdy wierzchołe na danym poziomie był obsadzony, daję mu do dyspozycji bardzo dużą liczbę robotów. Jeśli liczba robotów w jaiejś gałęzi jest tylo jeden robot i właśnie się ona rozgałęzia, to algorytm musi wyonać operacje rebalansowania - do olejnego poziomu drzewa wolno mu przejść dopiero wtedy, gdy w ażdym wierzchołu jest co najmniej tyle robotów co wynosi jego stopień. Poażę, że grając na omawianych już drzewach rzadich o wysoości n, adwersarz może wymusić na dowolnym algorytmie rebalansującym dysponującym n b robotami, aż Ω ruchów. Wyni ten dotyczy również algorytmów zrandomizowanych. 10. Flying Spaghetti Monster (n 1+ 1 2b 1 Definicja 25 Piramida wielości h to drzewo rzadie wysoości h, posiadające doładnie h wierzchołów rozgałęziających. Definicja 26 Meduza wielości h to piramida wielości h z podczepioną pod ażdy liść gałęzią o długości h. Fat 27 Odległość między dwoma różnymi liśćmi meduzy wielości h wynosi h. 11. Strategia Adwersarza Adwersarz walcząc z algorytmem będzie usiłował narysować Latające Spaghetti. 7 Jego ształt zależy od pewnego ustalonego ciągu 1, 2,..., d taiego, że 1 1 2... d 0. Ów ciąg zadany jest jao i = 1 α (i 1), gdzie α będzie dobrane optymalnie dla onretnej liczby robotów n b. Potwór tai zbudowany jest z meduz -( tworzą ) one drzewiastą hierarchię. Na i-tym jej poziomie znajdują się meduzy wielości Θ n i. Algorytm rebalansujący poznaje Potwora wiersz po wierszu, zatem na prace adwersarza można patrzeć ja na rysowanie olejnych pięter Potwora. ) 7 Church of the Flying Spaghetti Monster http://www.venganza.org/ 26