Obliczenia inspirowane Naturą

Podobne dokumenty
Obliczenia inspirowane Naturą

Języki, automaty i obliczenia

Maszyna Turinga języki

Hierarchia Chomsky ego Maszyna Turinga

Imię, nazwisko, nr indeksu

Matematyczne Podstawy Informatyki

Języki, automaty i obliczenia

Języki, automaty i obliczenia

Języki formalne i automaty Ćwiczenia 9

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Elementy Teorii Obliczeń

Dopełnienie to można wyrazić w następujący sposób:

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

Jaki język zrozumie automat?

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Efektywność Procedur Obliczeniowych. wykład 5

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Struktura danych. Sposób uporządkowania informacji w komputerze.

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Hierarchia Chomsky ego

1 Automaty niedeterministyczne

Języki formalne i automaty Ćwiczenia 7

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

O ALGORYTMACH I MASZYNACH TURINGA

Języki, automaty i obliczenia

10110 =

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

PROBLEMY NIEROZSTRZYGALNE

Maszyna Turinga (Algorytmy Część III)

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Maszyna Turinga, ang. Turing Machine (TM)

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Topologia zbioru Cantora a obwody logiczne

Teoria obliczeń czyli czego komputery zrobić nie mogą

AUTOMATY SKOŃCZONE. Automat skończony przedstawiamy formalnie jako uporządkowaną piątkę:

Odmiany maszyny Turinga. dr hab. inż. Joanna Józefowska, prof. PP 1

(j, k) jeśli k j w przeciwnym przypadku.

Matematyczne Podstawy Informatyki

JAO - Języki, Automaty i Obliczenia - Wykład 2. JAO - Języki, Automaty i Obliczenia - Wykład 2

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Wyrażenia regularne.

Złożoność obliczeniowa. wykład 1

Teoretyczne podstawy informatyki

Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych

Automaty Büchi ego i równoważne modele obliczeń

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Złożoność obliczeniowa zadania, zestaw 2

Teoretyczne podstawy informatyki

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

Turing i jego maszyny

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Obliczenia inspirowane Naturą

Złożoność informacyjna Kołmogorowa. Paweł Parys

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

MODELOWANIE RZECZYWISTOŚCI

Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia)

Technologie informacyjne - wykład 12 -

Wprowadzenie do złożoności obliczeniowej

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Obliczenia inspirowane Naturą

M T E O T D O ZI Z E E A LG L O G R O Y R TM

Alan M. TURING. Matematyk u progu współczesnej informatyki

Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne

Programowanie komputerów

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

Definicje. Algorytm to:

Rekurencyjna przeliczalność

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

Dowód pierwszego twierdzenia Gödela o. Kołmogorowa

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też. A = (A, Q, q I, F, δ)

Logika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Wstęp do programowania

Lista 6 Problemy NP-zupełne

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

Uzgadnianie formuł rachunku predykatów

Opisy efektów kształcenia dla modułu

Algorytmy, reprezentacja algorytmów.

Języki formalne i automaty Ćwiczenia 4

Zaawansowane algorytmy i struktury danych

Algorytmy asymetryczne

TEORETYCZNE PODSTAWY INFORMATYKI

Języki formalne i automaty Ćwiczenia 1

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

O ISTOTNYCH OGRANICZENIACH METODY

Teoretyczne podstawy informatyki

Transkrypt:

Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33

1 2 3 4 5 6 2 / 33

Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Zadaniem informatyki jest określienie możliwości obliczeniowych maszyn (komputerów). Aby formalnie badać własności komputerów potrzebne są model które: pozwalają uchwycić możliwości obliczeniowe realnych maszyn; dają możliwość dowodzenia twierdzeń na temat ich własności. 3 / 33

Deterministyczna maszyna Turinga Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Maszyna Turinga dysponuje bardzo skromnymi środkami obliczeniowymi... Wszystkie operacje maszyny wykonywane są na taśmie, na której znajdują się symbole z pewnego skończonego zbioru Σ. Maszyna w jednym kroku może pobrać za pomocą czytnika jeden symbol x Σ z taśmy, wykonać (lub nie) ruch nad taśmą i zmienić stan wewnętrzny.... lecz pomimo to potrafi wykonać wiele skomplikowanych zadań. 4 / 33

Deterministyczna maszyna Turinga Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Definicja Deterministyczną maszyną Turinga nazywamy czwórkę uporządkowaną M = (K, Σ, δ, q 0 ) złożoną z: skończonego zbioru K stanów zawierającego stan początkowy q 0 K skończonego zbioru Σ symboli (alfabetu) zawierającego symbol pusty i symbol końcowy. Funkcji δ : K Σ (K { stop, tak, nie }) Σ {,, } gdzie,, oznaczają odpowiednio ruch w prawo, w lewo i pozostanie na miejscu. 5 / 33

Przykład Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Przykład: funkcja przejścia δ(q i, b 1 ) = (q 2, b 2, 1) x a b 1 y (a) Konfiguracja (q i, x a, b 1y ) x a b 2 y 6 / 33

Rozpoznawanie i rozstrzyganie Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Maszyna Turinga pozwala operować na słowach możemy obliczać wartość funkcji lub określać czy dane słowo należy do jakiegoś języka. Językiem nazywamy dowoly podzbiór ciągów symboli maszyny Turinga, L (Σ { }). Elementy języka to słowa. Dowolny problem można zakodować w postaci języka wybór sposobu kodowania nie ma większego znaczenia (o ile nie kodujemy unarnie). 7 / 33

Rozpoznawanie i rozstrzyganie Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Maszyny Turinga możemy traktować jako algorytmy. Ustalmy sobie język L. Niech M będzie maszyną Turinga, taką, że dla X L, M(x) = tak, a jeżeli x L, M(x) = nie. Wówczas mówimy, że M rozstrzyga L. Jeżeli M zawsze daje tak na x L, ale może nie zatrzymać się na x L, to mówimy, że M rozpoznaje L. 8 / 33

Rozpoznawanie i rozstrzyganie Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Warto zwrócić uwagę na: 9 / 33

Rozpoznawanie i rozstrzyganie Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Warto zwrócić uwagę na: asymetrię w określeniu rozstrzygania i rozpoznawania; 9 / 33

Rozpoznawanie i rozstrzyganie Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Warto zwrócić uwagę na: asymetrię w określeniu rozstrzygania i rozpoznawania; wątpliwą użyteczność rozpoznawania nigdy nie wiadomo czy czekamy wystarczająco długo na zatrzymanie się maszyny. 9 / 33

Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie Najprostszym rozszerzeniem tego modelu maszyny Turinga jest dodanie możliwości operowania na kilku ciągach danych otrzymujemy wówczas maszynę Turinga z wieloma taśmami, którą trochę łatwiej się programuje. Ale taka modyfikacja nie pozwala na zwiększenie mocy obliczeniowej modelu każda maszyna z wieloma ciągami może być symulowana w czasie O(f (x) 2 ) na maszynie z jednym ciągiem. 10 / 33

Co to znaczy obliczać? Deterministyczna maszyna Turinga Przykład Rozpoznawanie i rozstrzyganie (UMT) może zasymulować dowolną maszynę Turinga. Przyjmuje ona na wejściu numer maszyny Turinga oraz jej ciąg wejściowy. w przypadku UMT zakładamy, że stanami i symbolami są liczby całkowite. Działanie UMT opisuje równość U(M; x) = M(x). 11 / 33

Definicja Zasada działania Definicja nie jest rozsądną modyfikacją maszyny Turinga, ale jest ważna ze względy na określenie problemów trudnych do rozwiązania. Definicja Niedeterministyczną maszyną Turinga nazywamy czwórkę uporządkowaną M = (K, Σ, δ, q 0 ) złożoną z: skończonego zbioru K stanów zawierającego stan początkowy q 0 K skończonego zbioru Σ symboli (alfabetu) zawierającego symbol pusty i symbol końcowy. Relacji δ K Σ (K { stop, tak, nie }) Σ {,, } 12 / 33

Definicja Zasada działania Zasada działania czas C.H. Papadimitriou, Złożoność obliczeniowa, WNT, 2007. 13 / 33

Definicja Zasada działania Zasada działania Maszyny niedeterministyczne zyskują swoją siłe dzięki niewielkim wymaganiom co do rozwiązywania problemu. Mówimy, że maszyna N rozstrzyga język L, jeżeli dla każdego x L maszyna zatrzymuje się w stanie tak. Słowo jest akceptowane jeżeli istnieje pewna ścieżka obliczeń która prowadzi do akceptacji. Słowo jest akceptowane nawet jeżeli większość wyborów obliczeń prowadzi do odrzucenia. Słowo jest odrzucane gdzy żadne obliczenie nie prowadzi do akceptacji. 14 / 33

Definicja Zasada działania Zasada działania Jak to interpretować? 1 Maszyna wybiera jedną z dróg a nastepnie zachowuje się tak jak maszyna deterministyczna. 2 Wiele maszyn wykonuje program równocześnie. Ale każda z tych interpretacji wskazuje że niedeteministyczna maszyna Turinga nie jest rozsądnym modelem obliczeń. 15 / 33

W jaki sposób możemy zmierzyć koszt wykonania algorytmu? Możemy podać liczbę kroków, które musi wykonać maszyna Turinga dla problemu; ile taśmy zużywa maszyna Turinga. 16 / 33

Dla zadanej funkcji f (n) : N N określamy klasę złożoności TIME(f (n)) jako zbiór języków dla których istnieje maszyna Turinga z wieloma ciągami rozstrzygająca język w czasie f (n). 17 / 33

P (ang. polynomial time) wszystkie problemy dla których istnieje deterministyczna maszyna Turinga kończąca swoje działanie w czasie wielomianowym względem wielkości problemu. NP (ang. nondeterministic polynomial time) wszystkie problemy dla których istnieje niedeterministyczna maszyna Turinga kończąca swoje działanie w stanie tak w czasie wielomianowym względem wielkości problemu. 18 / 33

Maszyny nideterministyczne mogą z łatwością przeszukiwać wykładniczą przestrzeń rozwiązań. Niedeterminizm pozwala rozróżnić między problemami łatwymi i trudnymi. Hipoteza P NP 19 / 33

Znaczenie automatów Znaczenie automatów Definicja Przykład Niedeterministyczne automaty skończone Nie zawsze potrzebujemy pełnej mocy maszyny Turinga do rozwiązania problemu. Bardzo użytecznym modelem są automaty skończone 20 / 33

Definicja Znaczenie automatów Definicja Przykład Niedeterministyczne automaty skończone Deterministyczne automat skończony to piątka (Σ, K, F, δ, q 0 ), gdzie Σ to zbiór symboli, K to zbiór stanów, A to zbiór stanów akceptujących, q 0 K to stan początkowy, δ to funkcja przejścia. 21 / 33

Przykład Znaczenie automatów Definicja Przykład Niedeterministyczne automaty skończone 22 / 33

Znaczenie automatów Definicja Przykład Niedeterministyczne automaty skończone Analogicznie jak w przypadku maszyny Turinga możliwe jest wprowadzenie niedeterministycznej wersji automatu skończonego. Jednak w tym wypadku okazuje się, że niedeterminizm nie zwiększ mocy obliczeniowej modelu. 23 / 33

Obliczenia odwracalne Obliczenia kwantowe Maszyna Turinga jest w dużej mierze określona przez określenie relacji przejścia. Ważne warianty to: obliczenia odwracalne, które pozwalają na: niski pobór energii; możliwość cofnięcia się do stanu przed wystąpieniem błędu (np. przy programowaniu robotów); obliczenia kwantowe, które pozwalają na wykorzystanie superpozycji (czyli równoczesnego wykonywania operacji na wielu danych); fizyczne operowanie na nanostrukturach (pojedyńczych atomach lub dobrze zdefiniowanych grupach atomów); wykorzystanie pojedyńczych fotonów w kryptografii. 24 / 33

Obliczenia odwracalne Obliczenia odwracalne Obliczenia kwantowe Obliczenia odwracalne pozwalają na: niski pobór energii; możliwość cofnięcia się do stanu przed wystąpieniem błędu (np. przy programowaniu robotów, przy odtwarzaniu błędów w tranzakajach w bazach danych); 25 / 33

Obliczenia odwracalne Obliczenia odwracalne Obliczenia kwantowe Przy rozważaniu odwracalności możemy wyróżnić odwracalność logiczną z wyniku możemy odtworzyć argumenty; odwracalność fizyczną możliwe jest przywrócenie stanu układu na którym wykonujemy obliczenia. 26 / 33

Obliczenia kwantowe Obliczenia odwracalne Obliczenia kwantowe Obliczenia kwantowe pozwalają na wykorzystanie superpozycji (czyli równoczesnego wykonywania operacji na wielu danych); fizyczne operowanie na nanostrukturach (pojedyńczych atomach lub dobrze zdefiniowanych grupach atomów); wykorzystanie pojedyńczych fotonów w kryptografii. 27 / 33

Klasyfikacja języków Klasyfikacja języków Problem stopu Ograniczając możliwości maszyny Turinga możemy wprowadzić hierarchię języków. języki rekurencyjnie przeliczalne języki dla których istnieje akceptująca je maszyna Turinga (nie musi się zatrzymywać!); języki rekurencyjne języki dla których istnieje rozpoznająca je maszyna Turinga; Stwierdzenie Jeżeli język jest rekurencyjny, to jest rekurencyjnie przeliczalny. 28 / 33

Klasyfikacja języków Klasyfikacja języków Problem stopu Możemy też rozpatrywać języki rozpoznawane w innych modelach obliczeń. języki bezkontekstowe języki dla których istnieje rozpoznający je (niedeterministyczny) automat ze stosem ( gramatyki bezkontekstowe Backus-Naur Form); języki regularne języki dla których istnieje rozpoznający jest automat skończony ( wyrażenia regularne sed, gawk, pcre); J.E.F. Friedl, Wyrażenia regularne, Helion, Gliwice, 2001. 29 / 33

Problem stopu Klasyfikacja języków Problem stopu Okazuje się że istnieją problemy dla których nie można podać algorytmu. Najważniejszym przykładem takiego problemu jest problem stopu. 30 / 33

Problem stopu Klasyfikacja języków Problem stopu Do opisania problemu stopu potrzeba jest nam uniwersalna maszyna Turinga. Problem stopu H = {M; x : M(x) } Język H zawiera wszystkie słowa kodujące maszyny Turinga wraz z ze słowami wejściowymi, takimi, że maszyna się na nich zatrzymuje. 31 / 33

Problem stopu Klasyfikacja języków Problem stopu Stwierdzenie Język H jest rekurencyjnie przeliczalny. 32 / 33

Problem stopu Klasyfikacja języków Problem stopu Stwierdzenie Język H jest nie jest rekurencyjny. 33 / 33