ALGORYTMY I STRUKTURY DANYCH

Slides:



Advertisements
Podobne prezentacje
ALGORYTMY I STRUKTURY DANYCH
Advertisements

Zadania obliczeniowe, algorytmy i złożoność obliczeniowa
ANALIZA SIECIOWA PRZEDSIĘWZIĘĆ konstrukcja harmonogramu
Sortowanie przez scalanie
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Grażyna Mirkowska PJWSTK, 10 stycznia 2001
METODY ANALIZY PROGRAMÓW
Grażyna Mirkowska PJWSTK 15 listopad 2000
Metody Analizy Programów Wykład 02
Wykład 10 Metody Analizy Programów Specyfikacja Struktur Danych
Wprowadzenie do optymalizacji wielokryterialnej.
Homologia, Rozdział I „Przegląd” Homologia, Rozdział 1.
Wykład 06 Metody Analizy Programów System Hoare
ELEMENTY TEORII GRAFÓW
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Ciągi de Bruijna generowanie, własności
Liczby Pierwsze - algorytmy
ZŁOŻONOŚĆ OBLICZENIOWA
WYKŁAD 2. Kolorowanie wierzchołków
WYKŁAD 7. Spójność i rozpięte drzewa
WĘDRÓWKI PO GRAFACH Obchody Eulera Cykle Hamiltona.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
ALGORYTMY I STRUKTURY DANYCH
Materiały pomocnicze do wykładu
12 grudnia 2001Matematyka Dyskretna, Elementy Kombinatoryki G.Mirkowska, PJWSTK 1 Wykład 11 Elementy Kombinatoryki.
Algorytmy grafowe Reprezentacja w pamięci
Algorytmy i struktury danych
ALGORYTMY I STRUKTURY DANYCH
WYKŁAD 7. Spójność i rozpięte drzewa Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja.
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Rekurencja.
Sortowanie przez kopcowanie
SKIEROWANE Marek Bil Krzysztof Fitrzyk Krzysztof Godek.
Przegląd podstawowych algorytmów
Graf - jest to zbiór wierzchołków, który na rysunku przedstawiamy za pomocą kropek oraz krawędzi łączących wierzchołki. Czasami dopuszcza się krawędzie.
Algorytmy i struktury danych
Algorytmy i struktury danych
Badania operacyjne Wykład 5.
ZAPIS BLOKOWY ALGORYTMÓW
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Algorytmy i Struktury Danych
Obliczalność czyli co da się policzyć i jak Nieobliczalność Model obliczeń :maszyna Turinga dr Kamila Barylska.
ALGORYTMY I STRUKTURY DANYCH WYKŁAD 03 cd. Wyszukiwanie Grażyna Mirkowska PJWSTK, 2003/2004.
WYKŁAD 06 Programowanie dynamiczne Grażyna Mirkowska.
PLANARNOŚĆ i KOLOROWANIE MAP. Problem Jaka jest minimalna liczba kolorów, za pomocą których można pokolorować obszary województw na mapie Polski tak,
Algorytmy i Struktury Danych Grafy
Drogi i cykle Eulera w grafach nieskierowanych
WĘDRÓWKI PO GRAFACH Obchody Eulera Cykle Hamiltona.
NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)
Systemy wspomagające dowodzenie twierdzeń
Wstęp do programowania Wykład 4
Wstęp do programowania Wykład 1
Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka
Współprogramy IV.
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

ALGORYTMY I STRUKTURY DANYCH WYKŁAD 14 Problemy trudne informatyki Grażyna Mirkowska PJWSTK ITN, semestr letni 2002

G. Mirkowska, ASD_14 Problemy trudne Plan wykładu Wieże Hanoi Generowanie permutacji Problem komiwojażera Scieżki Hamiltona (ścieżki Eulera) Problem P= NP.? Problemy NP.-zupełne Rozstrzygalność Nierozstrzygalność Problemu stopu 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne Przypomnienie Powiemy, że problem jest wielomianowy, tzn. jest rozwiązywalny w czasie wielomianowym, jeżeli istnieje algorytm rozwiązujący ten problem dla danych rozmiaru n w czasie O(n k), dla pewnego ustalonego k. Powiemy, że problem jest wykładniczy, jeśli każdy algorytm rozwiązujący ten problem dla danych rozmiaru n, ma koszt rzędu k n , dla pewnej stałej k. Wyszukiwanie Sortowanie w tablicy Sortowanie z użyciem struktur drzewiastych Kompresja danych Najdłuższy wspólny podciąg Najkrótsze ścieżki Przykłady 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne Wieże Hanoi Danych jest n krążków, umieszczonych w porządku rosnących średnic, na drążku A. Zadanie polega na przeniesieniu wszystkich krążków na drążek B z wykorzystaniem pomocniczego drążka C (oba drążki B i C są początkowo puste), ale mniejszy krążek musi zawsze leżeć na większym. Problem A B C 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne Algorytm Procedure przenies(n, A,B, C); {przenieś n krążków z A na B wykorzystując C} begin if (n<>0) then przenies(n-1, A,C,B); przeloz (A,B); {przełóż jeden krążek z A na B} przenieś(n-1, C, B, A) fi end Koszt wykładniczy Koszt T(1) = 1 T(n) = T(n-1) +1 +T(n-1) Rozwiązanie : T(n) = 2 n -1 T(64) = 0.5 miliona lat 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne Permutacje Dla danej liczby naturalnej n wygenerować wszystkie permutacje liczb {1,2,...,n}. Problem Wywołanie:generuj(0) z now =-1 i tab[i]=0 dla i=1..n daje Procedure generuj(k : integer); var t : integer; begin now := now +1; tab[k] := now; if now =n then wypisz(tab);fi; for t:= 1 to n do if tab[t] = 0 then generuj(t); od; now := now-1; tab[k] := 0; end; 1234 1243 1324 1423 1342 1432 2134 2143 3124 4123 3142 4132 2314 2413 3214 4213 3412 4312 Algorytm wzięty z R. Sedgewicka ALGORITHMS 2341 2431 3241 4231 3421 4321 Koszt rzędu n! 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne Problemy decyzyjne Problem, którego rozwiązanie ma dawać odpowiedź binarną tak lub nie nazywać będziemy problemem decyzyjnym. Danych jest n kart, na których wydrukowane są kolorowe obrazki. Czy można z nich ułożyć kwadrat tak, by wszystkie obrazki pasowały do siebie kształtem i kolorem? Koszt (n!) Przykład Można przypuszczać, że duży koszt wiąże się z długim rozwiązaniem przedstawionych problemów. Algorytm naiwny: przeglądamy wszystkie możliwe ułożenia. Odpowiadamy TAK, jeśli jakieś ułożenie jest poprawne, odpowiadamy NIE gdy żadne ułożenie nie było poprawne. 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

Pierwsza klasyfikacja Algorytmy wymagające nierozsądnie dużo czasu „Małpia układanka” Ale ... Który z dwóch algorytmów o koszcie (n 100) i (2 n) dla małych n, jest lepszy? Algorytmy rozsądne Algorytmy sortowania Algorytmy wyszukiwania Kompresja danych 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

Klasyfikacja problemów decyzyjnych P - klasa problemów decyzyjnych rozwiązywalnych w czasie wielomianowym NP P NP = klasa problemów decyzyjnych, dla których dowód, że podane rozwiązanie (algorytm) jest poprawne można zweryfikować w czasie wielomianowym. Tzn. rozwiązywalnych przez algorytm niedeterministyczny w czasie wielomianowym. 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne Problem komiwojażera Zadanie komiwojażera polega na odwiedzeniu wszystkich miast z danego zbioru i powrót do punktu wyjścia, tak by pokonana droga była najkrótsza. 6 4 7 8 9 3 5 10 Algorytm naiwny : wygenerować wszystkie możliwe cykle. Problem NP Koszt (n!) Koszt=28 Wbrew pozorom nie jest to problem błachy. Warianty tego problemu pojawiają się w związku z projektowaniem układów scalonych, w sieciach różnego typu, np. telefonicznej, w planowaniu linii montażowych, w robotyce. Algorytm naiwny polega na przeszukaniu wszystkich możliwych cykli. Zatrzyma się, gdy znajdzie cykl o koszcie <=k.Koszy takiego algorytmu wynosi dla grafu o n wierzchołkach O(n!). W wersji decyzyjnej Czy dla danego k istnieje cykl przechodzący przez wszystkie wierzchołki danego grafu taki, że suma kosztów jego krawędzi nie przekracza k. 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

Problem spełnialności Język Semantyka p q r 1 0 1 v: ((p q)  r) ((p q)  r) (v) = 1 Problem Czy dla danej formuły istnieje wartościowanie, które spełnia tę formułę? Koszt : 2 n dla formuły o długości n Rozwiązanie Metoda zero-jedynkowa Ale ... 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne Ścieżki Hamiltona Czy w danym niezorientowanym grafie istnieje ścieżka przechodząca przez każdy wierzchołek dokładnie raz? Nie ma ścieżki Hamiltona Istnieje ścieżka Hamiltona Euler Algorytm naiwny : sprawdzić wszystkie ścieżki. Koszt  (n!) 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne P = NP ? Gdyby udowodniono wykładnicze dolne ograniczenie dla jakiegoś problemu klasy NPC, to żądnego z problemów NPC nie możnaby rozwiązać wielomianowo. Klasa NPC = problemy NP-zupełne Problem p jest NP-zupełny, jeśli 1. należy do klasy NP i 2. każdy inny problem z tej klasy jest wielomianowo redukowalny do p. Problem P=NP? postawiony w 1971 roku jest do dziś otwarty. Większość informatyków uważa, że odpowiedź jest negatywna. O klasie P wiadomo, że jest zamknięta na składanie uzupełnianaie, nic jednak nie wiadomo o klasie NP poza dużą liczbą przykładów do niej należących. Istotnym argumentem na rzecz tezy P<>NP jest istnienie problemów NPC- zupełnych. Gdyby istniało wielomianowe rozwiązanie dla jakiegokolwiek problemu z klasy NPC, to istniałby wielomianowy algorytm dla wszystkich innych problemów tej klasy. 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne Wszystko albo nic redukcja Problem p Problem p’ Dane do problemu p wielomianowo f Dane do problemu p’ Odpowiedzią dla danych x jest TAK Odpowiedzią dla danych f(x) jest TAK wttw Problem ścieżek Hamiltona redukuje się do problemu komiwojażera. Twierdzenie. Gdyby jakiś NP-zupełny problem należał do klasy P, to P = NP. 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

Rozstrzygalność i nierozstrzygalność Powiemy, że problem jest rozstrzygalny, jeśli istnieje algorytm, który dla dowolnych danych x po skończonej liczbie kroków daje rozwiązanie problemu. W przeciwnym przypadku problem jest nierozstrzygalny Dany jest dowolny algorytm i dane do tego algorytmu. Pytamy, czy ten algorytm kończy obliczenia dla tych danych czy nie? Twierdzenie Problem stopu jest nierozstrzygalny (halting problem). Problem Czy istnieje algorytm Q, który dla dowolnego algorytmu A napisanego w pewnym ustalonym języku programowania i dla ustalonych danych x, po skończonej liczbie kroków odpowiada na pytanie czy A zapętla się dla danych x czy nie. 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

Nierozstrzygalność problemu „Stopu” W S Program wejściowy Program S S S W W Hipotetyczny program Q dla problemy stopu Odpowiada Tak, gdy program dany zatrzymuje się i Nie jeśli program ma nieskończoną pętlę Q Sprzeczność TAK (stop) NIE (pętla) Sprzeczność wyjście 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne

G. Mirkowska, ASD_14 Problemy trudne Ścieżki Eulera Dla danego grafu niezorientowanego zbadać czy istnieje ścieżka Eulera, tzn. Droga lub cykl w grafie przechodzący przez każdą krawędź i to tylko raz. Koszt O(m), gdzie m jest liczbą krawędzi grafu Nie istnieje ścieżka Eulera. Istnieje ścieżka Eulera. Algorytm 1. Zbadać czy graf jest spójny 2. Zbadać, czy graf wszystkie, z wyjątkiem co najwyżej dwóch wierzchołków, mają rząd parzysty. 19 czerwca 2002 G. Mirkowska, ASD_14 Problemy trudne