1 Opowie´sci algorytmiczne Wojciech Rytter Instytut Informatyki, Uniwersytet Warszawski, Warszawa 2 Algorytmika — nauka o algorytmach formalne modele algorytmu: Maszyna Turinga - niesko´nczona ta´sma, na kt´orej dokonuje sie֒ < lokalnych zmian; zbi´or mo˙zliwych zmian (stanu, pozycji na ta´smie, symbolu) jest zapisem (programem) algorytmu. W ˙zadnym wypadku nie jest to model do projektowania algorytm´ow, ale do dowodzenia, ˙ze algorytmu nie ma lub musi mie´cdu˙za֒ z lo˙zono´s´c Maszyna ze swobodnym dostepem֒ do pamieci֒ < RAM (Random Access Machine) .model zbli˙zony do praktycznego, bezpo´sredni dostep֒ do tablicy Maszyna Turinga da sie symulowa´cna RAMie w czasie wielomianowym i odwrotnie (RAM -> Maszyna Turinga) 3 Maszyna Turinga operuje na potencjalnie niesko´nczonej ta´smie s lowie, ciagu֒ symboli) kt´ora zawiera nieistotne symbole puste poza) sko´nczonym fragmentem. W ka˙zdym kroku symbol w ka˙zdym polu ta´smy zmienia sie֒ zgodnie z tabelka֒ maszyny, zale˙znie od ֒.poprzedniego symbolu w tym polu i w polach przylegajacych Dzieki֒ prostocie maszyny Turinga bardzo latwo mo˙zna pokaza´c w jaki spos´ob problem decyzyjny dla maszyny Turinga dzia lajacej֒ w czasie wielomianowym mo˙zna zredukowa´cdo problemu spe lnialno´sci formu llogicznych (jeszcze prostszy model oblicze´n, wyra˙zenie logiczne). Prostota pozwala na interpretacje opisu maszyny jako s lowo, kt´ore mo˙ze by´cdanymi wej´sciowymi dla innej (albo nawet tej samej) maszyny, jednocze´snie model jest na tyle silny by skonstruowa´c (uniwersalna֒ maszyne֒ Turinga (symulujac֒ a֒ wszystkie inne 4 Opis nieformalny dzia lania maszyny Turinga: ֒.Q - sko´nczony zbi´or stan´ow, wyr´o˙zniony stan poczatkowy Opis dzia lania - sko´nczony zbi´or instrukcji postaci: (aktualny stan, czytany symbol) (nastepny stan, nowy symbol, ֒ ⇒ .(przesuniecie֒ na ta´smie ,Konfiguracja inicjalna: stan poczatkowy,֒ pozycja pierwsza z lewej na ta´smie dane wej´sciowe zapisane jako s lowo, reszta ta´smy zawiera symbole puste (bierne). 5 Przyk lad dzia lania maszyny Turinga: znajduje pierwsze zero od lewej, zamienia na jedynke, poprzedzajace֒ jedynki zamienia na zera. Je´sli sa֒ same jedynki, to maszyna zamienia pierwszy symbol ֒:pusty # na jedynke.֒ Maszyna wykonuje operacje x := x + 1 (zapisane binarny liczby w odwrotnej kolejno´sci) 1 1 1 1 0 1 0 1 1 1 # 0 1 1 1 1 1 0 1 1 1 # q q q q 0 0 1 1 0 1 0 1 1 1 # 0 0 0 1 0 1 0 1 1 1 # STOP q 0 0 0 0 0 1 0 1 1 1 # 0 0 0 0 1 1 0 1 1 1 # 6 Maszyna Turinga da sie symulowa´cna RAMie w czasie wielomianowym i odwrotnie (RAM Maszyna Turinga) ⇒ Maszyna Turinga ma wiele r´o˙znych wersji: ta´sma niesko´czenie nieograniczona jednostronnie lub dwustronnie jedna ta´sma lub wiele ta´sm ta´sma jednowymiarowa lub dwuwymiarowa itd. maszyna deterministyczna lub nie. ֒:(Mo˙zemy ta´sme֒ zastapi´c(r´ownowa˙znie dwoma stosami jedna֒ kolejka֒ dwoma licznikami 7 (Hipoteza Churcha-Turinga (zwana r´ownie˙zTeza֒ Churcha-Turinga jest hipoteza֒ okre´slajac֒ a֒ mo˙zliwo´sci komputer´ow i innych maszyn obliczeniowych. M´owi ona, ˙ze ka˙zdy problem, dla kt´orego przy nieograniczonej pamieci֒ oraz zasobach istnieje efektywny algorytm .jego rozwiazywania,֒ da sie֒ rozwiaza´cna֒ maszynie Turinga Hipoteza jest niemo˙zliwa do sprawdzenia matematycznie. (Niby)formalna definicja hipotezy: Ka˙zdy problem, kt´ory mo˙ze by´cintuicyjnie uznany za .obliczalny, jest rozwiazywalny֒ przez maszyne֒ Turinga Prostota maszyny Turinga jest istotna w dowodach nierozstrzygalno´sci, metoda przekatniowa,֒ maszyna czyta sama֒ siebie i neguje sw´oj w lasny wynik). 8 Podstawowym problemem nierozstrzygalnym jest tzw. problem stopu maszyny Turinga (og´olnie algorytmu). Szkic (bardzo metny)֒ dowodu, ˙ze problem stopu jest nierozstrzygalny: za l´o˙zmy, ˙ze istnieje program S, kt´ory dla dowolnego programu P i danych D: zatrzymuje sie֒ i zwraca 1, je˙zeli P zatrzymuje sie֒ na danych < wej´sciowych D, oraz .zatrzymuje sie֒ i zwraca 0 w przeciwnym razie < Korzystajac֒ z programu S, mo˙zna napisa´cnowy program T, kt´ory ,dla dowolnego programu P zatrzymuje sie֒ wtedy i tylko wtedy kiedy P zapetla֒ sie֒ na swoim w lasnym kodzie podanym jako dane wej´sciowe. 9 Program T mo˙zna schematycznie zapisa´ctak: T(P): if S(P,P)=1 then loop else stop Pytanie: czy program T zatrzymuje sie֒ po otrzymaniu swojego w lasnego kodu jako danych wej´sciowych? Je˙zeli T zatrzymuje sie֒ na danych T, to S zwraca 1 dla programu T i danych T, czyli T sie֒ petli֒ na danych T — sprzeczno´s´c. Z kolei je˙zeli T sie֒ petli֒ na danych T, to S zwraca 0 dla programu T i danych T, czyli T sie֒ zatrzymuje na danych T — znowu sprzeczno´s´c. Wynika z tego, ˙ze za lo˙zenie o istnieniu programu S o podanych w lasno´sciach by lo .b ledne.֒ Zatem problem stopu jest nierozstrzygalny 10 Inne problemy nierozstrzygalne: > 10-ty problem Hilberta: ?Czy istnieje algorytm rozwiazywania֒ r´owna´ndiofantycznych Nierozstrzygalno´s´czosta la udowodniona w roku 1970 przez Yuri Matiyasevicha. > Problem odpowiednio´sci Posta (Post correspondence problem, w skr´ocie PCP): rozwa˙zmy zbi´or P par binarnych s l´ow: ∗ P = (l1,r1), (l2,r2),..., (l ,r ) , gdzie: l ,r Σ (1 i k) { k k } i i ∈ ≤ ≤ Czy dla danego P (ciagu֒ indeks´ow) istnieje rozwiazanie֒ systemu P + ( w1w2 ...w (1+2+ ... + k) ) ∃ s ∈ lw1 lw2 ...lws = rw1 rw2 ...rws 11 PCP postawiony przez Emila L. Posta w roku 1946. Problem te˙z mo˙zna sformu lowa´cjako pytanie, czy dla dw´och kodowa´n h, g : Σ (0+1)+ istnieje niepusty ciag x, kt´orego oba kody sa ֒ ֒ → takie same, tzn. h(x)= g(x). Wersja ograniczona (ograniczenie d lugo´sci x) jest NP-zupe lna. Σ = 2: problem rozstrzygalny (deterministyczny czas | | wielomianowy) Σ = 7: problem nierozstrzygalny | | 2 < Σ < 7: kwestia rozstrzygalno´sci jest problemem otwartym | | 12 Na przyk lad gdy ciag֒ par jest dany przez h(1)=0 h(2)=10 h(3)=10 g(1)=01 g(2)=0 g(3)=01 to h(132) = g(132) = 01010 Ale dla kodowania h(1)=1101, h(2)=0110 h(3)=1 g(1)=1 g(2)=11 g(3)=110 najkr´otszy x taki ˙ze teraz h(x)= g(x) ma d lugo´s´c 252 ֒.Nie ma sensownego ograniczenia na minimalna֒ d lugo´s´crozwiazania 13 Dla wielu wa˙znych problem´ow najtrudniejszym krokiem bylo pokazanie ich rozstrzygalno´sci, a dopiero potem analizowano i zmniejszano ich z lo˙zono´s´c(tutaj faktycznie sie֒ zaczyna algorytmika) Kilka przyk lad´ow problem´ow, kt´ore sa֒ rozstrzygalne, ale dla kt´orych istnieje dow´od, ˙ze na pewno nie ma dla nich algorytm´ow wielomianowych — dolne ograniczenie czasu dzia lania algorytmu jest co najmniej wyk ladnicze (czasami znacznie wy˙zsze). 14 > Arytmetyka Presburgera (rok 1929), czyli arytmetyka Peano bez mno˙zenia. Wbrew pozorom nie jest taka s laba i przydaje sie֒ w rozstrzygalno´sci innych problem´ow. Presburger udowodni l, ˙ze taka arytmetyka jest niesprzeczna i zupe lna (istnieje dow´od T lub negacji T ). Stad֒ wynika rozstrzygalno´s´c, ale czas dzia lania zgrubnego algorytmu jest niejasny. Najlepsze algorytmy w czasie potr´ojnie wyk ladniczym. 15 > Dolne oszacowanie z lo˙zono´sci jakiegokolwiek algorytmu dla tego problemu: Niech n bedzie֒ d lugo´scia֒ twierdzenia w arytmetyce Presburgera; Fischer i Rabin (1974) udowodnili, ˙ze ka˙zdy algorytm sprawdzajacy֒ prawdziwo´s´ctwierdzenia musi wykona´c cn w pesymistycznym przypadku co najmniej 22 krok´ow dla pewnej sta lej c> 0. Udowodnili r´ownie˙zistnienie twierdze´n, kt´orych dow´od ma ֒.d lugo´s´cco najmniej podw´ojnie wyk ladnicza 16 > Taka sama najlepsza g´orna granica czasowa (potr´ojnie wyk ladnicza) dla liczb rzeczywistych bez mno˙zenia. Dolna granica: wyk ladniczy czas niedeterministyczny. Problem osiagalno´sci֒ (reachability) w sieciach Petriego oraz w < tzw. vector addition systems. ,Znalezienie algorytmu zaje֒ lo kilkadziesiat֒ lat (Rao Kosaraju Ernst Mayr, STOC 1982). Najlepsze znane algorytmy (by´cmo˙ze) dzia laja֒ w pamieci֒ podw´ojnie wyk ladniczej (Bouziene, FOCS 1998), niestety znaleziono b ledy.֒ Najlepsze dolne oszacowanie z lo˙zono´sci algorytmu — czas pojedynczo wyk ladniczy. 17 > Wyra˙zenia regularne. Praktyczne zastosowanie przy wyszukiwaniu i edycji danych tekstowych. Wyra˙zenie jest wzorcem, kt´ory opisuje (jest jego :warto´scia)֒ zbi´or tekst´ow. Struktura wyra˙ze´n > konkretne s lowa, > x∗, zbi´or powt´orze´n x, > operacje teoriomnogo´sciowe, > Na przyk lad dla Σ= 0, 1 { } Σ∗0011Σ∗ Σ∗1010Σ∗ − oznacza wzorzec: tekst zawiera 0011 i nie zawiera 1010. 18 Sprawdzanie, czy istnieje jaki´stekst opisywany takim wyra˙zeniem, nie jest elementarnie rekurencyjne. Z lo˙zono´s´cczasowa tego problemu jest asymptotycznie wieksza֒ ni˙z ..n 22 222 .dla dowolnej d lugo´sci ciagu֒ dw´ojek Je´sli w wyra˙zeniu nie ma operacji negacji, to dolnym oszacowaniem √n/ log n .( z lo˙zono´sci pamieciowej֒ jest Ω(2 19 R´ownania na s lowach (r´ownania w p´o lgrupie wolnej). Gdy okaza lo sie,֒ ˙ze rozwiazywalno´s´cr´owna´ndiofantycznych֒ jest nierozstrzygalna, pr´obowano udowodni´cto samo dla r´owna´nna s lowach. Na przyk lad problem sprawdzenia, czy s lowo abaababab jest pods lowem s lowa abaababaaabababaababbaa sprowadza sie֒ do istnienia rozwiazania֒ r´ownania abaababaaabababaababbaa = x abaababab y Udowodniono, ˙ze problem jest rozstrzygalny. Pierwszy algorytm, podany przez G. Makanina, mia lz lo˙zono´s´cnieelementarna֒ i by l jednym z najbardziej skomplikowanych algorytm´ow. Najlepszy znany algorytm, algorytm W. Plandowskiego z Instytutu ֒.Informatyki U.W., ma wielomianowa֒ z lo˙zono´s´cpamieciow֒ a To by ly przyk lady problem´ow rozstrzygalnych, ale bardzo trudnych.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages65 Page
-
File Size-