Teoria obliczeń i złożoności obliczeniowej Wykład 3
Transkrypt
Teoria obliczeń i złożoności obliczeniowej Wykład 3
Teoria obliczeń i złożoności obliczeniowej Wykład 3 (04.03.2005) Wnioskowanie: ● implikacja – pojęcie absolutne ● wyprowadzalność (ograniczona do systemu aksjomatycznego) Metodę syntaktyczną uznzano za bardzo dobrą bo nie powoduje generowania błędów. Teoria Hilberta Hilbert twierdził, że całą matematykę można oprzeć o teorię aksjomatyczną. Twierdzenie Goedla (o niezupełności arytmetyki Peano): Istnieją zdania prawdziwe, których nie da się wyprowadzić z aksjomatyki w arytmetyce Peano. (formuły A, oraz ~A nie są wywiedliwe z arytmetyki Peano) W ten sposób Goedel obalił teorię Hilberta. 1936r. Alan Turing zajmując się teorią rozstrzygalności i nierozstrzygalności problemu dokonał pierwszej logicznej analizy obliczenia. Analiza Turinga Człowiek dokonujący obliczenia (wg Turinga) posługuje się pismem, tworzy pewne napisy postępując według ściśle określonych reguł. Każde obliczenie (rozwiązanie problemu) to ciąg czynności czytania/pisania śiśle określonych. Każdy problem można rozwiązać mechanicznie. [RODZYNKI] W dobie istnienia tylu serwerów BeerServer byłby dobrym rozwiązaniem Warunki materialne i czynności potrzebne do wykonania fizycznego obliczenia: ● medium napisów – liniowe (jednowymiarowe) ● maksymalnie prosty alfabet (język) – {0, 1} ● ilość znaków “w zasięgu wzroku” - dokładnie jeden znak ● tworząc napisy (słowa materialne) bardzo istotne jest położenie napisów w przestrzeni – w jednym kroku możemy zwrócić uwagę tylko na sąsiedni znak. Czynności potrzebne do wykonania obliczenia: ● zapisz znak 1 ● zapisz znak 0 ● przesuń się o jedno pole w prawo ● przesuń się o jedno pole w lewo ● przyjrzyj się aktualnie obserwowanemu znakowi i odpowiednio wybierz nastepny krok (następną czynność) ● zatrzymaj się Moduł sterujący: ● zawiera pewne stany ● posiada funkcję δ – przejścia między stanami ● głowica czytająco-pisząca ● medium – taśma Maszyna Turinga – pewien abstrakt – mechanizm realizujący obliczenie. CZĘŚĆ WŁAŚCIWA (koniec filozofii – przynajmniej tak zasugerował dr Jarosz) Problem (formułowany w języku naturalnym) ● czy stan rzeczy jest taki a nie inny? ● Byt językowy, który ma swoją nazwę, określony typ obiektu o który się pytamy, zawiera pytanie Przykład: Nazwa: KLIKA Typ danej: G=(V,E) /* graf */ Pytanie: Czy graf jest kliką (grafem pełnym)? Problemy w języku naturalnym ciężko poddają się obliczeniu. Problem (w teorii zbiorów) π = (Dπ, Yπ) π – zmienna po nazwach problemu Dπ – zbiór wszystkich danych, o które pytamy w danym problemie Yπ – zbiór tych obiektów, które na pytanie odpowiadają tak Problemy w teorii zbiorów też nie są dobre do obliczenia. Formalną reprezentacją problemu jest język. DEFINICJA (alfabet) Alfabetem Σ nazywamy dowolny skończony, niepusty zbiór symboli. DEFINICJA (słowo) Dowolny skończony ciąg symboli z alfabetu Σ nazywamy słowem. Zbiór słów nad alfabetem Σ oznaczamy Σ* DEFINICJA (język) Dowolny podzbiór L⊂Σ* nazywamy językiem. DEFINICJA (schemat kodowania) funkcja c : Dπ∋ X x∈ L⊂Σ* Odpowiedniość między problemem a językiem – kodowanie. Tylko problemy w postaci napisów nadają się do obliczania. Wybór schematu kodowania zależy od nas (mnożenie pisemne – liczby rzymskie) Kodowanie (schemat) – system binarny. Możemy o liczbie powiedzieć czy jest parzysta, ale obliczeń dokonujemy na jej zapisie. Σ* ma 3 podzbiory ● słowa nie będące kodami żadnych danych ● elementy co do których odpowiedź brzmi “tak” ● elementy co do których odpowiedź brzmi “nie” DEFINICJA (Deterministyczna Maszyna Turinga - DTM) Deterministyczną Maszyną Turinga nazywamy strukturę rozwiązującą dowolny problem (obliczenie). DEFINICJA (Program DTM – π) Programem DTM – π nazywamy system. DTM – π = {Q, Σ, N, δ, q0, qY, qN, b} Q – skończony zbiór stanów Σ – alfabet wejściowy taśmy (w którym będą kodowane dane wejściowe) N – alfabet roboczy taśmy Σ ⊂N q0 – stan początkowy obliczenia qY – stan końcowy akceptujący qN – stan końcowy nieakceptujący b – symbol pusty taśmy δ – funkcja przejścia: δ: {Q\{qY, qN}} x N Q x N x {L, R, S} {L, R, S} – zbiór możliwych ruchów głowicy Każde obliczenie ma taką strukturę logiczną. Własności DTM: – DTM jest urządzeniem przeprowadzającym operacje na taśmie – Taśma stanowi element pamięciowy – Taśma jest prawostronnie lub obustronnie nieskończona [przyjmujemy na wykładzie że prawostronnie] – Taśma na całej swej długości podzielona jest na pola jednostkowe – Pole stanowi tę porcję taśmy, która w danym momencie może być obserwowana lub zmieniana przez głowicę – Głowica – obserwuje i przetwarza jedno pole w jednej chwili – Maszyna może wykonać dwie operacje na taśmie – zamienić w obserwowanym polu taśmy symbol alfabetu N na inny symbol alfabetu N – przesunąć głowicę w prawo, w lewo, lub nie przesuwać – W każdym momencie obliczenia maszyna jest w pewnym stanie. – W trakcie obliczenia stan maszyny może się zmienić – Działanie jakie wykonuje maszyna zależy od bieżącego stanu i aktualnie obserwowanego symblu na taśmie. δ: (qi, ai) (qj, aj, Δ) [jeden krok maszyny] – Działanie maszyny jest relizacją funkckji δ. – W chwili rozpoczęcia obliczenia na początku taśmy wejściowej (na polach 1, ...) znajduje się zakodowana dana wejściowa. l : Dπ∋ X x∈Lπ – Na początku obliczenia głowica jest w stanie q0, głowica obserwuje pole o numerze 1 – Maszyna pracuje realizując funkcję przejścia do stanu końcowego. Wtedy zatrzymuje się. Instancja problemu (zadanie indywidualne problemu) – konkretna dana jest dostarczana do problemu. Możemy rozwiązać instancję problemu nie problem.