• Nie Znaleziono Wyników

Efektywność Procedur Obliczeniowych

N/A
N/A
Protected

Academic year: 2021

Share "Efektywność Procedur Obliczeniowych"

Copied!
65
0
0

Pełen tekst

(1)

Efektywność Procedur

Obliczeniowych

wykład 4

(2)

Modele procesu obliczeń

Jednotaśmowa Maszyna Turinga

Wielotaśmowa Maszyna Turinga

Maszyna RAM

(3)

Modele obliczeń (1)

Zadanie 1

Zamodelować automat

wykrywający sekwencję 1001

znaków wciągu wejściowym

011001001101010.

(4)

Modele obliczeń (2)

Rozwiązanie Z1

 zbiór sygnałów wejściowych (?)

 zbiór stanów wewnętrznych (?)

 zbiór stanów wyjściowych (?)

 funkcja wyjść (?)

 funkcja przejść (?)

(5)

Modele obliczeń (2a)

Rozwiązanie Z1

Σ = {z0, z1, …, zn} zbiór sygnałów wejściowych

Q = {q0, q1, …, qm} zbiór stanów wewnętrznych

Y = {y0, y1, …, yk} zbiór stanów wyjściowych

Φ, q(t+1) = Φ[q(t), z(t)] funkcja wyjść

Ψ, y(t) = Ψ [q(t)] funkcja przejść

(6)

Modele obliczeń (2b)

Rozwiązanie Z1 011001001101010 1001

q0 y0

stan początkowy

słowo niezaakceptowane

co, jeśli pojawi się 0 wciągu wejściowym?

(7)

Modele obliczeń (2c)

Rozwiązanie Z1 011001001101010 1001

q0 y0

co, jeśli pojawi się 1 wciągu wejściowym?

0

(8)

Modele obliczeń (2d)

Rozwiązanie Z1 011001001101010 1001

q0 y0

jaki jest stany wyjściowy?

0

q1

1

y?

(9)

Modele obliczeń (2e)

Rozwiązanie Z1 011001001101010 1001

q0 y0

i co dalej?

0

q1

1

y0

(10)

Modele obliczeń (2f)

Rozwiązanie Z1 011001001101010 1001

q0 y0

w efekcie określenia pozostałych przejść uzyskujemy…

0

q1

1

y0

(11)

Modele obliczeń (2g)

q0 y0

0 q1

1

y0 q2

q3 q4

0

0

0

0

1

1 1

1

y0 y0

y1

…następujący graf automatu

(12)

Modele obliczeń (3)

Zadanie 2

Zamodelować automat

rozpoznający czy dana liczba binarna jest parzysta?

(13)

Modele obliczeń (3a)

Rozwiązanie Z2

q0 y0

0

q1

1

y0

1

(14)

Modele obliczeń (4)

Deterministyczny automat skończony to uporządkowana piątka

DAS = (Q, Σ , Ψ, q

0

, Y)

(15)

Modele obliczeń (5)

Automat w stanie qj czyta symbol zi i sprawdza istnienie przejścia do stanu qj+1 pod wpływem zi. Jeżeli taka możliwość istnieje, to zmienia stan na qj+1.

sterowanie automatu

z1 z2 z3 zn

(16)

Modele obliczeń (6)

Taśma (słowo wejściowe) jest przesuwana i

czytany jest kolejny symbol. Proces powtarza się do osiągnięcia końca taśmy.

sterowanie automatu

z1 z2 z3 zn

(17)

Modele obliczeń (7)

Zadanie 3

Zamodelować automat

wyliczający liczbę przeciwną do liczby w kodzie U2?

czy to w ogóle możliwe?

(18)

DTM (1)

sterowanie

taśma dwustronnie nieskończona

głowica odczytująco-zapisująca

(19)

DTM (2)

MT = (Q, Σ,

Ψ, Γ, q

0

, B, F)

Q – skończony zbiór stanów

Σ – zbiór symboli wejściowych (Γ – B)

Ψ – funkcja przejść

Γ – skończony zbiór symboli dopuszczalnych q0 – stan początkowy,

B – symbol pusty (separator) F – zbiór stanów końcowych

(20)

DTM (3)

Funkcja przejść DTM

Ψ : QG Γ Y QG ΓG {L, P, -}

(21)

DTM – program (4)

sterowanie

0 0 1 1

głowica odczytująco-zapisująca

Słowo wejściowe (skończony ciąg symboli) ze zbioru

Σ zapisany jest na taśmie – każdy symbol w oddzielnej komórce. Kolejne słowa oddzielane są separatorami B.

program na DTM

(22)

DTM – wykonanie programu (5)

1. MT znajduje się w stanie q

o

, głowica odczytuje symbol z

i

z komórki nr. 1.

2. Jeżeli MT jest w stanie q (\q

Y

, q

N

, gdzie q

Y

, q

N

F) i z

i

Γ, MT wykonuje

czynności określone przez Ψ.

a. …

(23)

DTM – wykonanie programu (6)

a. w miejsce z

i

głowica wpisuje z

j

b. głowica przesuwa się o jedną komórkę {L, P} lub nie zmienia pozycji { - }

3. Wykonywanie trwa do czasu

znalezienie się MT w stanie końcowym.

(24)

DTM (7)

DTM rozwiązuje problem decyzyjny  przy kodowaniu e, jeśli zatrzymuje się dla

wszystkich słów wejściowych i kończy

obliczenia w stanie q

Y

dla wszystkich słów wejściowych z(I) instancji I takich, że I Y

i tylko dla nich.

Y – zbiór wszystkich instancji problemu decyzyjnego , dla których odpowiedzią jest „tak”

(25)

DTM – przykład (8)

Zadanie 4

Zamodelować DMT

rozpoznającą liczby parzyste.

(26)

DTM – przykład (8a)

Rozwiązanie 4

Liczba parzysta w kodzie binarnym na najmłodszej pozycji ma zero. Zatem, aby rozpoznać taką liczbę wystarczy sprawdzić jej najmłodszą pozycję.

Oznacza to, że DTM musi znaleźć czytać kolejne

znaki (przesuwać taśmę w prawo) aż do napotkania separatora. Następnie przesunąć głowicę w lewo, przeczytać znak i w zależności od niego przejść do stanu qY (np=0) lub do stanu qN (np=1).

(27)

DTM – przykład (8b)

Rozwiązanie 4

q0 y0

0  0 P 1 1 P

(28)

DTM – przykład (8b)

Rozwiązanie 4

q1

B B L

y0 q0

y0

0  0 P 1 1 P

(29)

DTM – przykład (8c)

Rozwiązanie 4

q1 y0 q0

y0

0  0 P 1 1 P

qY

0 0 P

B B L

(30)

DTM – przykład (8d)

Rozwiązanie 4

q1 y0 q0

y0

0  0 P 1 1 P

qY

qN

0 0 P

1 1 P B B L

(31)

DTM : k–taśmowa (1)

Program dla k–taśmowej DTM składa się ze

skończonego zbioru symboli Γ odczytywanych z k–taśm.

Skończonego zbioru Q oraz dwa wyróżnione stany końcowe qY i qN F.

Funkcja przejść Ψ : Q Γk

Q Γ k {L, P, } k

(32)

DTM : k–taśmowa (2)

Zadanie 5

Zamodelować wielotaśmową

DMT dodająca liczby binarne o tej samej długości.

(33)

DTM : k–taśmowa (3)

Zadanie 5

Liczby

(dadajna i dodajnik)

znajdują się na taśmach 1 i 2. Najstarsze pozycje liczb znajdują się na pozycjach 1.

(34)

DTM : k–taśmowa (4)

Zadanie 5

Wynik zapisywany jest na taśmie 3. Najstarsza pozycja wyniku ma znajdować się na pozycji 1.

Głowica ma na nią wskazywać.

(35)

DTM : k–taśmowa (4a)

Rozwiązanie 5

taśma 1

taśma 2

taśma 3

0 1

1 1 0

B B

0 1

0 1 1

B B

stan q0, głowice ustawione na najstarszej pozycji każdej z liczb

B B B B B B B

(36)

DTM : k–taśmowa (4b)

q0

0 0 P 1  1 P B B P

dopóki na trzech taśmach nie pojawi się separator B następuje przesunięcie wszystkich głowic w prawo

(37)

DTM : k–taśmowa (4b)

Rozwiązanie 5

taśma 1

taśma 2

taśma 3

0 1

1 1 0

B B

0 1

0 1 1

B B

B B B B B B B

odczyt (0, 1, B), zapis (0, 1, B), przesunięcie (P)

(38)

DTM : k–taśmowa (4c)

Rozwiązanie 5

taśma 1

taśma 2

taśma 3

0 1

1 1 0

B B

0 1

0 1 1

B B

B B B B B B B

odczyt (0, 1, B), zapis (0, 1, B), przesunięcie (P)

(39)

DTM : k–taśmowa (4d)

Rozwiązanie 5

taśma 1

taśma 2

taśma 3

0 1

1 1 0

B B

0 1

0 1 1

B B

B B B B B B B

odczyt (B, B, B), zapis (B, B, B), przesunięcie (L)

(40)

DTM : k–taśmowa (4b)

q0

0 0 P 1  1 P B B P

B B L

pojawienie się separatorów B na

wszystkich taśmach powoduje cofnięcie głowicy w lewo L i przejście do początku dodawania

q1

(41)

DTM : k–taśmowa (4e)

Rozwiązanie 5

taśma 1

taśma 2

taśma 3

0 1

1 1 0

B B

0 1

0 1 1

B B

B B B B B 1 B

odczyt (B, 0, 1), zapis (1, 0, 1), przesunięcie (L)

(42)

DTM : k–taśmowa (4b)

q0

0 0 P 1  1 P B B P

B B L

00B 000 L 01B  011 L 10B  101 L

q1

q2

11B  110 L

00B 001 L

q3

BBB BBB P 01B 010 L 10B  100 L 11B 111 L

BBB BBB P

(43)

DTM : k–taśmowa (4f)

Rozwiązanie 5

taśma 1

taśma 2

taśma 3

0 1

1 1 0

B B

0 1

0 1 1

B B

B B B B 0 1 B

odczyt (B, 1, 1), zapis (0, 1, 1), przesunięcie (L)

(44)

DTM : k–taśmowa (4g)

Rozwiązanie 5

taśma 1

taśma 2

taśma 3

0 1

1 1 0

B B

0 1

0 1 1

B B

B 1 1 1 0 1 B

odczyt (B, B, B), zapis (B, B, B), przesunięcie (P)

(45)

DTM : k–taśmowa (4b)

q0

0 0 P 1  1 P B B P

B B L

00B 000 L 01B  011 L 10B  101 L

q1

q2

11B  110 L

00B 001 L

q3

BBB BBB P 01B 010 L 10B  100 L 11B 111 L

BBB BBB P

(46)

DTM : k–taśmowa (5)

Zadanie 6 (zmodyfikować wynik zadania 5)

Liczby znajdują się na taśmach 1 i 2.

Najstarsze pozycje liczb znajdują się

na pozycjach 1. Wynik zapisywany

jest na taśmie 1. Najstarsza pozycja

wyniku ma znajdować się na pozycji

1. Głowica ma na nią wskazywać.

(47)

Maszyna RAM

źródło: http://mmsyslo.pl/ram/budowa.html

http://mmsyslo.pl/ram/maszyna.html

(48)

Modele procesu obliczeń (8)

Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie ograniczonym od góry przez wielomian zależny od rozmiarów problemu, to przy założeniu logarytmicznego kryterium kosztów jest on również rozwiązywany przez każdy model w czasie ograniczonym od góry przez wielomian zależny od jego rozmiarów.

(49)

Modele procesu obliczeń (8)

Zadanie 7

Czy dany język L alfabetu Σ jest poprawny?

Rozwiązanie 7

Program P na DTM rozpoznaje język L alfabetu Σ, jeżeli dla tego języka program P zatrzymuje się w stanie qY.

LY(P) = {L: P rozpoznaje L} – zbiór języków rozpoznawanych przez program P.

(50)

Modele procesu obliczeń (9)

Dla problemu decyzyjnego Π programu P, kodowania e języki L alfabetu Σ można podzielić na zbiory:

L0 : języki, które nie kodują instancji problemu Π LN(P):języki które kodują instancje problemu Π i nie są rozpoznawane przez P ( qN)

LY(P):języki które kodują instancje problemu Π i są rozpoznawane przez P ( qY)

(51)

Modele procesu obliczeń (10)

LY(Π):języki kodujące instancje problemu Π.

L(Π)= L

Y

(P)  L

Y

(P)

(52)

Modele procesu obliczeń (11)

Program P na DTM rozwiązuje problem Π przy kodowaniu e jeśli:

LN(P):zawiera wszystkie takie i tylko takie

języki, które kodują instancje problemu Π ,dla których odpowiedź brzmi „nie”

LY(P):zawiera wszystkie takie i tylko takie

języki, które kodują instancje problemu Π ,dla których odpowiedź brzmi „tak”

(53)

Modele procesu obliczeń (12)

Jeżeli czas działania programu P na DTM rozwiązującego problem decyzyjny Π jest

ograniczony od góry wielomianem zależnym od długości języka L, tzn. czas działania

t ≤ p(|L|)

dla każdego L i pewnego wielomianu p, to P jest algorytmem wielomianowym.

(54)

Modele procesu obliczeń (13)

Jeżeli algorytm nie jest algorytmem

wielomianowym to nazywamy go algorytmem ponadwielomianowym.

(55)

NDTM (1)

głowica zapisująca

taśma dwustronnie nieskończona -4 -3 -2 -1 0 1 2 3 4

łańcuch S dane wejściowe

moduł zgadujący sterowanie

głowica odczytująco-zapisująca

Niedeterministyczna Maszyna Turinga (NDTM)

(56)

NDTM (2)

Niedeterministyczna Maszyna Turinga (NDTM) składa się z DTM i modułu zgadującego

(generującego).

Moduł zgadujący zapisuje na taśmie odgadnięte rozwiązanie – np. kolejność odwiedzania miast w TSP, podzbiór przedmiotów do upakowania w problemie plecakowym.

(57)

NDTM : wykonanie programu (3)

Wykonanie programu składa się z wielu sekwencyjnych wykonań pary działań:

1. Zgadywania rozwiązania – generowania łańcucha S symboli.

2. Sprawdzania jaka jest odpowiedź na pytanie problemu decyzyjnego dla

wygenerowanego rozwiązania.

(58)

NDTM : wykonanie programu (4)

Wykonanie programu NDTM dla łańcucha

danych x(I) instancji I przebiega następująco:

Moduł zgadujący zapisuje na taśmie łańcuch S symboli ze skończonego zbioru symboli taśmy.

NDTM sprawdza, wykonując program jak na DTM, czy wygenerowany łańcuch S spełnia warunki pytania dla instancji I, dla której może istnieć wiele łańcuchów S reprezentujących rozwiązanie.

(59)

NDTM : wykonanie programu (5)

Zadanie 8

Jak działa NDTM dla problemu podziału?

X = {x1, …, xi, …, xn} – zbiór n elementów xi  N+, gdzie

N+ = {1, 2, …}

𝑥𝑖

5𝑖=1 = 2B

Pytanie: Czy istnieje podzbiór X1 X takie, że 𝑥 𝑥𝑖

𝑖∈𝑋1 = B

(60)

NDTM : wykonanie programu (5)

Rozwiązanie 8

Łańcuch S – liczba binarna, której i-ta pozycja wskazuje czy i-ty element zbioru X należy do wygenerowanego rozwiązania X1.

Dane wejściowe – x1x2…xkB

Liczba generowanych łańcuchów reprezentujących zbiór X ? Ograniczenie czasu sprawdzenia relacji 𝑥 𝑥𝑖

𝑖∈𝑋1 = B ?

(61)

NDTM (5)

NDTM rozwiązuje problem decyzyjny Π jeśli dla każdej instancji IDΠ spełnione są warunki:

1. Jeżeli odpowiedź dla I brzmi „tak”, to zostanie wygenerowany łańcuch S, który wraz z x(I) spowoduje, że po wykonaniu programu przez NDTM maszyna osiągnie stan końcowy qY.

2. …

(62)

NDTM (6)

NDTM rozwiązuje problem decyzyjny Π jeśli dla każdej instancji IDΠ spełnione są warunki:

1. …

2. Jeżeli odpowiedź dla I brzmi „nie”, to dla każdego wygenerowanego łańcucha S albo NDTM osiągnie stan końcowy qN, albo etap sprawdzania nie zostanie

zakończony.

(63)

NDTM (7)

NDTM rozwiązuje problem decyzyjny Π (w co najwyżej) wielomianowym czasie, jeśli dla

każdej instancji, dla każdej odpowiedzi „tak”

zostanie wygenerowany taki łańcuch S, ze czas wykonania etapów zgadywania i sprawdzania zakończonego odpowiedzią „tak” przez NDTM (dla I oraz S) jest O(p(N(I))) dla pewnego wielomianu p.

(64)

NDTM (8)

Twierdzenie

Jeśli jednotaśmowa NDTM rozwiązuje problem decyzyjny Π w czasie wielomianowym, to

istnieje wielomian p taki, że jednotaśmowa DTM rozwiązuje ten problem w czasie O(2p(N(I)),

gdzie IDΠ a N(I) jest rozmiarem danych wejściowych instancji I.

(65)

NDTM jako model obliczeń (9)

Adekwatność NTMD jako model obliczeń

Sekwencyjny dostęp do danych wejściowych i wyników pośrednich (organizacja taśmowa)

Obrazuje zdolność weryfikacji pozytywnej

odpowiedzi dla rozwiązania (wygenerowania łańcucha S) instancji IDΠ.

Cytaty

Powiązane dokumenty

[r]

Tylko część tych 90% przypadków może być opisana jako pojedynczy typ procedur; w uczniowskim sposobie przekształcania wyrażenia często można było rozpoznać

Onyszkiewicza Elementy logiki i teorii mnogości w zadaniach (PWN 2004) albo jest wzorowana na zadaniach tam zamieszczonych..

Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie ograniczonym od góry

Jeśli dla pewnego problemu NP–zupełnego istnieje wielomianowy algorytm rozwiązania, to wszystkie problemy NP–zupełne są rozwiązywalne w czasie wielomianowym. Klasa

Udowodnić, że przekrój dowolnej rodziny ideałów (podpierścieni, podciał) R jest ideałem (podpierścieniem, podciałem) R.. Udowodnić, że jeśli R jest skończony, to jest

[r]

wartością jest wartość zmiennej parametr jeśli jest ona zdefiniowana i nie jest pusta w przeciwnym wypadku wartością jest slowo zmienna parametr się nie zmienia..