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.

Podobne dokumenty