PROBLEMY NIEROZSTRZYGALNE



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

Informatyka 1. Złożoność obliczeniowa

Maszyna Turinga języki

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Podstawy Programowania. Złożoność obliczeniowa

Języki, automaty i obliczenia

Hierarchia Chomsky ego Maszyna Turinga

Maszyna Turinga (Algorytmy Część III)

Podstawy Programowania

Podstawy Programowania. Złożoność obliczeniowa

Języki, automaty i obliczenia

Efektywność Procedur Obliczeniowych. wykład 5

O ALGORYTMACH I MASZYNACH TURINGA

MASZYNA TURINGA UPRASZCZANIE DANYCH

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Podstawy Programowania

Imię, nazwisko, nr indeksu

Podstawy Informatyki Maszyna Turinga

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

MODELOWANIE RZECZYWISTOŚCI

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

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

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

Obliczenia inspirowane Naturą

Zaawansowane algorytmy i struktury danych

Podstawy Informatyki. Sprawność algorytmów

Elementy Teorii Obliczeń

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Złożoność algorytmów. Wstęp do Informatyki

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

Języki, automaty i obliczenia

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

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

INFORMATYKA SORTOWANIE DANYCH.

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

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}

Maszyna Turinga Złożoność obliczeniowa

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

TEORETYCZNE PODSTAWY INFORMATYKI

O ISTOTNYCH OGRANICZENIACH METODY

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

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

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

Matematyczne Podstawy Informatyki

Maszyna Turinga, ang. Turing Machine (TM)

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

Wprowadzenie do maszyny Turinga

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1

Turing i jego maszyny

Obliczenia inspirowane Naturą

Złożoność problemów. 1 ruch na sekundę czas wykonania ok lat 1 mln ruchów na sekundę czas wykonania ok.

LOGIKA I TEORIA ZBIORÓW

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

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

Matematyczne Podstawy Informatyki

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Zasady analizy algorytmów

Wprowadzenie do złożoności obliczeniowej

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

Algorytmy w teorii liczb

Wstęp do programowania

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

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

Hierarchia Chomsky ego

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

Wykład z równań różnicowych

Technologie Informacyjne

Poprawność algorytmów

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Teoria obliczeń czyli czego komputery zrobić nie mogą

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Kombinowanie o nieskończoności. 3. Jak policzyć nieskończone materiały do ćwiczeń

Programowanie w VB Proste algorytmy sortowania

Maszyna Turinga Złożoność obliczeniowa

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ

Teoretyczne podstawy informatyki

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

10110 =

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

Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

1. Analiza algorytmów przypomnienie

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Teoria obliczeń i złożoność obliczeniowa

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Ciągi liczbowe. Zbigniew Koza. Wydział Fizyki i Astronomii

Analiza algorytmów zadania podstawowe

TEORETYCZNE PODSTAWY INFORMATYKI

Algorytmy i Struktury Danych, 2. ćwiczenia

Modelowanie procesów współbieżnych

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

Zakładamy, że maszyna ma jeden stan akceptujacy.

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

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

Luty 2001 Algorytmy (4) 2000/2001

EGZAMIN MATURALNY 2012 INFORMATYKA

Transkrypt:

PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną liczbą kafelków w każdym z rodzajów, ale ich zestaw jest zadany) T Dla zestawu 1. - TAK T Dla zestawu 2. - NIE Zestaw 2:! M.Rawski Wstęp do Informatyki 1

PROBLEMY NIEROZSTRZYGALNE cd T Twierdzenie T Dla każdego algorytmu (zapisanego w dającym się efektywnie wykonać języku programowania), który byłby przeznaczony do rozstrzygania problemu domina, istnieje nieskończenie wiele dopuszczalnych zestawów danych wejściowych, dla których algorytm ten będzie działał w nieskończoność lub poda błędną odpowiedź. T Wniosek T Problem domina jest problemem nierozstrzygalnym M.Rawski Wstęp do Informatyki 2

PROBLEMY NIEROZSTRZYGALNE cd PROBLEMY NIEROZSTRZYGALNE (LUB NIEOBLICZALNE) W ogóle nie istnieją algorytmy PROBLEMY TRUDNO ROZWIĄZYWALNE Nie istnieją wielomianowe algorytmy PROBLEMY ŁATWO ROZWIĄZYWALNE Istnieją rozsądne (wielomianowe) algorytmy nieograniczoność liczby przypadków do sprawdzenia nie jest dostatecznym warunkiem nierozstrzygalności problemu! jeśli nierozstrzygalność się pojawia, to wynika z natury problemu i jest często sprzeczna z intuicją M.Rawski Wstęp do Informatyki 3

Problem węża domino T Czy dysponując skończonym zbiorem typów kafelków można połączyć dwa dane punkty nieskończonej siatki całkowitoliczbowej wężem domino? T Jeżeli postawimy problem węża domino na pewnym obszarze R, to: dla R ograniczonego problem jest oczywiście rozstrzygalny dla R będącego całą płaszczyzną problem jest rozstrzygalny dla R będącego półpłaszczyzną problem jest nierozstrzygalny X Y M.Rawski Wstęp do Informatyki 4

Problem stopu w algorytmie Mając jako dane wejściowe tekst poprawnego programu zapisanego w pewnym języku, sprawdzić(tzn. zbudować algorytm, który by sprawdzał), czy program zatrzyma się dla pewnych dopuszczalnych dla niego danych. T X N T Algorytm 1 T 1.dopóki X 1 wykonuj X X -2 T 2. zatrzymaj obliczenia T X N T Algorytm 2 T T 1. dopóki X 1 wykonuj: T 1.1.dla X parzystego X X / 2 T 1.2. dla X nieparzystego X 3* X + 1 2. zatrzymaj obliczenia algorytm zatrzymuje się dla X nieparzystych nie zatrzymuje się dla X parzystych dla wszystkich sprawdzanych liczb algorytm zatrzymywał się nie udowodniono, że zatrzymuje się dla dowolnej liczby naturalnej M.Rawski Wstęp do Informatyki 5

Problem stopu w algorytmie cd T np. dla X = 7 generuje ciąg wartości: 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 T program lub algorytm dopuszczalne dane R X czy program R zatrzymuje się dla danych X? czy istnieje taki program? TAK NIE T Problem stopu jest nierozstrzygalny. M.Rawski Wstęp do Informatyki 6

Odmiany problemu domina Czy podanym zestawem kafelków można pokryć obszar T zachowując odpowiedniość kolorów na styku kafelków? T = prostokąt C x N (tzw. problem ograniczony ze stałą szerokością) T = kwadrat N x N (tzw. problem ograniczony) T jest nieskończony (tzw. problem nieograniczony) T jest nieskończony i wskazany kafelek ma się powtórzyć nieskończenie wiele razy (tzw. problem okresowy) T Rodzaj problemu domina Status algorytmiczny ograniczony ze stałą szerokością łatwo rozwiązywalny ograniczony trudno rozwiązywalny nieograniczony nierozstrzygalny okresowy wysoce nierozstrzygalny M.Rawski Wstęp do Informatyki 7

Klasy problemów algorytmicznych Klasy problemów algorytmicznych WYSOCE NIEROZSTRZYGALNE NIEROZSTRZYGALNE TRUDNO ROZWIĄZYWALNE ŁATWO ROZWIĄZYWALNE PROBLEMY WYSOCE NIEROZSTRZYGALNE Nie można sprowadzić do tych, dla których nie istnieją algorytmy Teoria Praktyka PROBLEMY NIEROZSTRZYGALNE W ogóle nie istnieją algorytmy PROBLEMY TRUDNO ROZWIĄZYWALNE Nie istnieją rozsądne algorytmy PROBLEMY ŁATWO ROZWIĄZYWALNE Istnieją rozsądne (wielomianowe) algorytmy M.Rawski Wstęp do Informatyki 8

KOMPUTER PROSTY I UNIWERSALNY T Jak dalece można uprościć struktury danych? T Przykład tablicy dwuwymiarowej T Przykład drzewa 7 45-3 91 0 12-15 11 17 7 * 45 * -3 * * 91 * 0 * 12 * * -15 * 11 * 17 N I F O R M A T Y K A I * * N * F * O * * R * M * A * T * * Y * K * A M.Rawski Wstęp do Informatyki 9

Linearyzacja struktur danych T Każdą strukturę danych da się zlinearyzować tzn. zapisać na jednowymiarowej taśmie # # # # T T Przyjmujemy najprostszy model pamięci: nieskończona jednowymiarowa taśma dopuszczalny zestaw symboli (alfabet), które mogą być zapisywane w komórkach taśmy pusta komórka oznaczana symbolem # M.Rawski Wstęp do Informatyki 10

KOMPUTER PROSTY I UNIWERSALNY T Jak dalece można uprościć struktury sterujące? T znajdowanie się procesora w określonym miejscu programu nazywamy jego stanem T przejście do innego miejsca (stanu) zależy od stanu aktualnego i od wartości pewnych jednostek danych stan aktualny symbole alfabetu a b c możliwe stany następne M.Rawski Wstęp do Informatyki 11

Maszyna Turinga pojedynczy symbol alfabetu STEROWANIE (diagram przejść pomiędzy stanami) głowica odczytująco -zapisująca Części składowe: skończony alfabet symboli (do zapisywania danych) # # # # nieskończona taśma skończony zbiór stanów, w których może znajdować się maszyna nieskończona taśma podzielona na komórki przechowujące pojedyncze symbole alfabetu krokowo poruszająca się głowica odcztująco-zapisująca diagram przejść miedzy stanami, który steruje głowicą tak, że zmiany następują po każdym jej zatrzymaniu stan początkowy i stany końcowe (elementy uzupełniające w diagramie przejść) M.Rawski Wstęp do Informatyki 12

Diagram przejść - graf skierowany T Podstawowe elementy diagramu przejść: stan (wierzchołek grafu) etykieta akcja przejście nazwa stanu a / b L T T T T T symbol alfabetu - wyzwalacz przejścia kierunek przesunięcia głowicy (L lub P) symbol alfabetu zapisywany w komórce maszyna jest deterministyczna tzn. z żadnego stanu nie wychodzi więcej niż jedno przejście z tym samym wyzwalaczem jeden ze stanów jest wyróżniony jako stan początkowy nazwa stanu stany, z których nie wychodzą żadne przejścia, nazywane są stanami końcowymi w stanie początkowym głowica jest ustawiona na pierwszej od lewej niepustej komórce taśmy nazwa stanu M.Rawski Wstęp do Informatyki 13

Wykrywanie polindromów T Przykład diagramu przejść dla maszyny Turinga ruch dla a # / # L test dla a a / # L b / b L a / # P b / b P a / a P b / b L a / a L # / # L # / # L zaznacz TAK NIE powrót b / # P b / b P a / a P # / # L a / a L b / # L ruch dla b # / # L test dla b # / # P M.Rawski Wstęp do Informatyki 14

Wykrywanie polindromów T Przykład działania maszyny Turinga 1 2 3 4 # # a b b a # # # # # b b a # # # # # b b a # # # # # b b a # # M.Rawski Wstęp do Informatyki 15

TEZA CHURCHA-TURINGA T Maszyna Turinga: ma skończenie wiele stanów zapisuje po jednym symbolu na liniowej taśmie Co można zrobić za pomocą maszyny Turinga? Wszystko! Maszyna Turinga potrafi rozwiązać każdy efektywnie rozwiązywalny problem algorytmiczny! Teza CT M.Rawski Wstęp do Informatyki 16

Modele komputera uniwersalnego T Różne inne modele komputera uniwersalnego: rachunek lambda (Church) system produkcji dla symboli (Post) klasa funkcji rekurencyjnych (Kleen)... i wiele innych Wszystkie modele są równoważne w sensie klasy problemów algorytmicznych, które rozwiązują! M.Rawski Wstęp do Informatyki 17

Algorytm uniwersalny algorytm A T Konsekwencją tezy CT jest istnienie algorytmów uniwersalnych program P realizujący algorytm A napisany w uniwersalnym języku L 2 uniwersalny program U napisany w języku L 1 - symuluje wynik programu w języku L 2 na jego danych program P wykonaj program P na danych X wyniki (jeśli są) dane X można zbudować uniwersalną maszynę Turinga, która może symulować działanie dowolnej maszyny Turinga na dowolnych danych (trzeba opisać na taśmie zlinearyzowany diagram przejść, reprezentując każde przejście jako parę stanów z podaną etykietą przejścia) M.Rawski Wstęp do Informatyki 18

Algorytm uniwersalny T Rozwijając tezę CT można dojść do wniosku, że: T jeśli jakiś (szybki) komputer rozwiązuje pewien problem w czasie O(f(N)), to istnieje równoważna mu maszyna Turinga, która potrzebuje na rozwiązanie tego problemu nie więcej niż O(p(f(N))) czasu, dla pewnej ustalonej funkcji wielomianowej p T Zatem: klasa problemów obliczalnych (rozstrzygalnych) jest silna tj. niewrażliwa na zmianę modelu obliczeń lub języka zapisu algorytmu klasa problemów łatwo rozwiązywalnych P jest także silna (tzw. teza obliczania sekwencyjnego, czyli wykonywanego krok po kroku) klasa NP jest silna klasa problemów o wykładniczej złożoności czasowej jest silna klasa problemów o liniowej złożoności czasowej nie jest silna tzn. złożoność tych problemów może zależeć od przyjętego modelu obliczeń M.Rawski Wstęp do Informatyki 19

Klasy problemów P i NP - formalnie T Formalnie klasy problemów P i NP definiuje się w kategoriach obliczeń na maszynie Turinga: problemy z klasy P są rozwiązywalne przez zwykłe maszyny Turinga w czasie wielomianowym problemy z klasy NP są rozwiązywalne przez niedeterministyczne maszyny Turinga w czasie wielomianowym T Na mocy tezy CT wystarczyło by pokazać, że pewien problem NP-zupełny nie może być rozwiązany za pomocą maszyny Turinga w czasie krótszym niż wykładniczy, aby wykazać, że P NP. a / b P? a / b L przejście niedeterministyczne M.Rawski Wstęp do Informatyki 20

Obliczenia współbieżne rozwiązywanie problemu algorytmicznego za pomocą współpracujących ze sobą wielu procesorów wykorzystanie komputerów równoległych, składających się z wielu rozłącznych elementów przetwarzających modele obliczeń i przetwarzania informacji w środowiskach rozproszonych (sieci telekomunikacyjne, systemy rezerwacji biletów lotniczych, długoterminowe prognozy pogody wyznaczane równolegle w wielu centrach obliczeniowych) algorytm sekwencyjny algorytm równoległy X 3 Y 4 X 3 Y 4 2 kroki 1 krok X 3 Y X X 3 Y X M.Rawski Wstęp do Informatyki 21

Przykład sumowania zarobków w czasie logarytmicznym T Naturalny algorytm sekwencyjny o koszcie O(N): dodawanie N razy do sumy bieżącej T Algorytm równoległy o koszcie O(log N): krok 1 krok 2 krok log 2 N N/2 procesorów N/4 procesorów 1 procesor 11 000 24 300 Σ 35 300 17 100 10 900 Σ 28 000 Σ 63 300 Σ 547 200 15 500 16 400 Σ 31 900 Σ 75 800 M.Rawski Wstęp do Informatyki 22

Obliczenia współbieżne T O szybkości algorytmów równoległych, oczywiście poza liczbą dostępnych procesorów, decydują także struktury danych i metody komunikacji! T W algorytmie sumowania N liczb: dla osiągnięcia redukcji z O(N) do O(log N) potrzebujemy N/2 procesorów mając do dyspozycji ustaloną liczbę procesorów poprawimy przetwarzanie tylko o stałą (np. 100 razy szybciej), ale nie o rząd wielkości uzyskanie poprawy rzędu wielkości wymaga rozszerzającej się równoległości tzn. liczba procesorów rośnie proporcjonalnie do N M.Rawski Wstęp do Informatyki 23

Sortowanie równoległe T Rozważmy sekwencyjny algorytm sortowania przez scalanie: T procedura sortuj-listę L; T jeśli L zawiera tylko jeden element, to jest posortowana; T w przeciwnym razie wykonaj co następuje: T podziel listę L na dwie połowy L 1 i L 2 ; T wywołaj sortuj-listę L 1 ; T wywołaj sortuj-listę L 2 ; T scal listy L 1 i L 2 w jedną posortowaną listę; T wróć do poziomu wywołania. T -złożoność czasowa O(N log N) M.Rawski Wstęp do Informatyki 24

Sortowanie równoległe T Rozważmy sekwencyjny algorytm sortowania przez scalanie: T procedura sortuj-listę L; T jeśli L zawiera tylko jeden element, to jest posortowana; T w przeciwnym razie wykonaj co następuje: T podziel listę L na dwie połowy L 1 i L 2 ; T wywołaj równocześnie równolegle-sortuj-listę L 1 i równoleglesortuj-listę L 2 ; T wróć do poziomu wywołania. M.Rawski Wstęp do Informatyki 25

Sortowanie równoległe -Analiza złożoności N/2 par 15 7 45 8 12 11 4 34 scalanie w czasie 1 porównania N/4 par 7 15 8 45 11 12 4 34 scalanie w czasie 3 porównań N/8 par scalanie w czasie 7 porównań 7 8 15 45 4 11 12 34 1 para scalanie w czasie N - 1 porównań 4 7 8 11 12 15 34 45 T zatem całkowita liczba porównań wyniesie: T 1 + 3 + 7 + 15 +... + ( N - 1 ) 2 N - liczba rzędu O(N) M.Rawski Wstęp do Informatyki 26

Złożoność iloczynowa T Złożoność iloczynowa: liczba procesorów czas złożoność rozmiaru algorytmu najlepsza złożoność iloczynowa nie będzie lepsza niż dolne ograniczenie sekwencyjnej złożoności problemu Rodzaj algorytmu Nazwa algorytmu Liczba procesorów (rozmiar) Czas (najgorszy przypadek) Iloczyn (rozmiar czas) sortowanie bąbelkowe 1 O(N 2 ) O(N 2 ) sekwencyjny sortowanie przez scalanie 1 O(N log N) O(N log N) równoległe sortowanie O(N) O(N) O(N 2 ) przez scalanie równoległy sieć sortująca parzystonieparzyście O(N (log N) 2 ) O((log N) 2 ) O(N (log N) 4 ) optymalna sieć sortująca O(N) O(log N) O(N log N) M.Rawski Wstęp do Informatyki 27

Co można, a czego nie T Co można, a czego nie można osiągnąć równoległością: T wiele problemów można rozwiązać szybciej niż sekwencyjnie T można niektóre problemy rozwiązywać szybciej nawet o rząd wielkości, jeśli da się zastosować rozszerzającą się równoległość T dla problemów nierozstrzygalnych nie da się skonstruować algorytmu równoległego - klasa problemów rozwiązywalnych jest niewrażliwa na dodanie równoległości T wszystkie problemy klasy NP mają rozwiązania równoległe znajdowane w czasie wielomianowym, ale T liczba procesorów potrzebnych do rozwiązania problemu NP-zupełnego w rozsądnym czasie rośnie wykładniczo T do końca nie wiadomo, czy problemy klasy NP są rzeczywiście trudno rozwiązywalne i trzeba szukać ratunku w równoległości T rzeczywiste komputery równoległe mają silne ograniczenia związane z przepustowością połączeń pomiędzy procesorami T nie wiadomo, czy można zastosować równoległość, nawet z niewielomianową liczbą procesorów, do rozwiązania w czasie wielomianowym problemu o udowodnionej sekwencyjnej złożoności wykładniczej M.Rawski Wstęp do Informatyki 28