Opowie´Sci Algorytmiczne

Opowie´Sci Algorytmiczne

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    65 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us