ALGORYTMY I STRUKTURY DANYCH

Slides:



Advertisements
Podobne prezentacje
ALGORYTMY I STRUKTURY DANYCH
Advertisements

ALGORYTMY I STRUKTURY DANYCH
Temat 2: Podstawy programowania Algorytmy – 1 z 2 _________________________________________________________________________________________________________________.
Ekonometria WYKŁAD 10 Piotr Ciżkowicz Katedra Międzynarodowych Studiów Porównawczych.
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
© Matematyczne modelowanie procesów biotechnologicznych - laboratorium, Studium Magisterskie Wydział Chemiczny Politechniki Wrocławskiej, Kierunek Biotechnologia,
Ryzyko a stopa zwrotu. Standardowe narzędzia inwestowania Analiza fundamentalna – ocena kondycji i perspektyw rozwoju podmiotu emitującego papiery wartościowe.
EWALUACJA PROJEKTU WSPÓŁFINANSOWANEGO ZE ŚRODKÓW UNII EUROPEJSKIE J „Wyrównywanie dysproporcji w dostępie do przedszkoli dzieci z terenów wiejskich, w.
WSPÓŁRZĘDNE GEOGRAFICZNE.  Aby określić położenie punktu na globusie stworzono siatkę geograficzną, która składa się z południków i równoleżników. Południk.
Funkcja liniowa Przygotował: Kajetan Leszczyński Niepubliczne Gimnazjum Przy Młodzieżowym Ośrodku Wychowawczym Księży Orionistów W Warszawie Ul. Barska.
Matematyka przed egzaminem czyli samouczek dla gimnazjalisty Przygotowała Beata Czerniak FUNKCJE.
Sieci przepływowe: algorytmy i ich zastosowania.
Rozwiązywanie zadań tekstowych przy pomocy układów równań. Opracowanie: Beata Szabat.
Nr36zad3 Klasa IIIa Gimnazjum w Bogdańcu ma zaszczyt zaprezentować rozwiązanie zadania: o trójkątach z monet!
 Przedziałem otwartym ( a;b ) nazywamy zbiór liczb rzeczywistych x spełniających układ nierówności x a, co krócej zapisujemy a
Jak tworzymy katalog alfabetyczny? Oprac.Regina Lewańska.
, + - = 0,5 CZYTAJ DOKŁADNIE ZADANIA I POLECENIA. IM TRUDNIEJSZE ZADANIE, TYM BARDZIEJ WARTO JE PRZECZYTAĆ KILKA RAZY.
Budżetowanie kapitałowe cz. III. NIEPEWNOŚĆ senesu lago NIEPEWNOŚĆ NIEMIERZALNA senesu strice RYZYKO (niepewność mierzalna)
Dowodzenie twierdzeń Autor: Patryk Kostrzewski. Dowodzenie twierdzeń pozwala stwierdzić prawdziwość twierdzenia. W tym celu przeprowadza się rozumowanie.
O PARADOKSIE BRAESSA Zbigniew Świtalski Paweł Skałecki Wydział Matematyki, Informatyki i Ekonometrii Uniwersytet Zielonogórski Zakopane 2016.
Uniwersytet Zielonogórski
Metody Badań Operacyjnych
Minimalizacja automatu
Okrąg i koło Rafał Świdziński.
W kręgu matematycznych pojęć
Schematy blokowe.
Wyznaczanie miejsc zerowych funkcji
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
On-the-Fly Garbage Collection
Twierdzenia Pitagorasa wykonanie Eryk Giefert kl. 1a
Liczby pierwsze.
ZBIÓR WARTOŚCI WARTOŚĆ NAJMNIEJSZA WARTOŚĆ NAJWIĘKSZA
FIGURY.
ALGORYTMY I STRUKTURY DANYCH
Podstawy automatyki I Wykład /2016
Funkcja – definicja i przykłady
Wstęp do Informatyki - Wykład 3
KLASYFIKACJA CZWOROKĄTÓW
Wykorzystanie Twierdzenia Talesa w zadaniach tekstowych
Elementy fizyki kwantowej i budowy materii
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Twierdzenia Pitagorasa - powtórzenie wiadomości
Instrukcje wyboru.
Problem Plecakowy (Problem złodzieja okradającego sklep)
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
MATEMATYKAAKYTAMETAM
ALGORYTMY I STRUKTURY DANYCH
Przedziały liczbowe.
Implementacja rekurencji w języku Haskell
Znajdowanie liczb pierwszych w zbiorze
Doskonalenie rachunku pamięciowego u uczniów
Wyrównanie sieci swobodnych
Język C++ Operatory Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
Matematyka Zadania i objaśnienia Jakub Tchórzewski.
MATEMATYKA Opracowała: Martyna Białas
ALGORYTMY I STRUKTURY DANYCH
Elementy Kombinatoryki
Program na dziś Wprowadzenie Logika prezentacji i artykułu
Mikroekonomia Wykład 4.
Grazyna Mirkowska Matematyka Dyskretna PJWSTK 2001
dr Robert Kowalczyk, PWSZ Płock
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

ALGORYTMY I STRUKTURY DANYCH WYKŁAD 15 Problemy trudne informatyki Grażyna Mirkowska PJWSTK

G. Mirkowska, ASD_15 Problemy trudne Plan wykładu Wieże Hanoi Generowanie permutacji Problem komiwojażera Scieżki Hamiltona (ścieżki Eulera) Problem kolorowania grafu Problem P= NP? Problemy NP -zupełne Rozstrzygalność Nierozstrzygalność Problemu stopu 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 Problemy trudne Przypomnienie Powiemy, że problem jest wielomianowy, tzn. jest rozwiązywalny w czasie wielomianowym, tzn. istnieje algorytm rozwiązujący ten problem dla danych rozmiaru n w czasie O(n k), dla pewnego ustalonego 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 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 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. 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 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 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 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 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 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! 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 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. 2018-12-27 G. Mirkowska, ASD_15 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 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

Klasy 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. 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

Problem NP 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!) A może zastosować metodę programowania dynamicznego? Koszt=28 Wbrew pozorom nie jest to problem błahy. 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. 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

Czy programowanie dynamiczne może pomóc? Niech C(i,j) będzie kosztem drogi od i do j, gdzie i, j {1,2,...n}. Niech T(i;j1,...jk) będzie kosztem optymalnej drogi z i do 1, która prowadzi przez wierzchołki j1,...,jk dokładnie raz w dowolnym porządku. Przy tym oznaczeniu koszt optymalnej drogi komiwojażera jest równy T(1; 2,3,...n). Ta rekursja wymaga jednak zapamiętania rozwiązań dla dowolnego podzbioru j1,...,jk, tzn. wykładniczo dużo miejsca i czasu. Mamy następującą zależność rekurencyjną: T(i;j1,...,jk) = min 1 m  k {C(i,jm) + T(jm;j1,...,jk/jm)} T(i;j) = C(i,j) + C(j;1) i jm 1 przez j1,..., jk 2018-12-27 G. Mirkowska, ASD_15 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 ... 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 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!) 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

żaden algorytm wielomianowy znajdowania liczby chromatycznej grafu. Kolorowanie grafów Zadanie Pokolorować wierzchołki niezorientowanego grafu G , tak by wierzchołki sąsiednie miały różne kolory. Nie jest znany żaden algorytm wielomianowy znajdowania liczby chromatycznej grafu. Najmniejszą liczbę kolorów jakich trzeba użyć do pokolorowania grafu G nazywamy liczbą chromatyczną grafu , ozn. (G) Problem decyzyjny: Dany jest graf G. Ustalić, czy k kolorów wystarczy do pokolorowania tego grafu. 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 Problemy trudne Inne problemy Dany jest ciąg obiektów s1,...sn (0) oraz pojemność plecaka C. Problem polega na znalezieniu podzbioru T {1,2,...,n} aby Ssi dla i T przyjmowała wartość największą oraz Ssi  C. Problem plecakowy Dana jest nieograniczona liczba kontenerów o pojemności 1 oraz n obiektów rozmiaru s1,...sn, gdzie 0  si  1. Jaka jest najmniejsza liczba kontenerów, potrzebna do zapakowania wszystkich obiektów? Problem pakowania Niech J1,...,Jn będą zadaniami do wykonania, t1,...,tn - czasem koniecznym do wykonania zadania, a d1,...,dn terminami wykonania zadań, p1,...,pn karą za przekroczenie terminu. Znaleźć taką kolejność wykonywania zadań, by zminimalizować kary. Problem planowania pracy 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 Problemy trudne P = NP ? 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. redukcja Przykład: Problem ścieżek Hamiltona redukuje się do problemu komiwojażera. Problem p Problem p’ Dane do problemu p wielomianowo f Dane do problemu 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. Odpowiedzią dla danych x jest TAK Odpowiedzią dla danych f(x) jest TAK wttw 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 Problemy trudne Wszystko albo nic Gdyby udowodniono wykładnicze dolne ograniczenie dla jakiegoś problemu klasy NPC, to żadnego z problemów NPC nie można by rozwiązać wielomianowo. klasa NPC Gdyby istniało wielomianowe rozwiązanie dla jakiegokolwiek problemu z klasy NPC, to istniałby wielomianowy algorytm dla wszystkich problemów klasy NP. 2018-12-27 G. Mirkowska, ASD_15 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. 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

Nierozstrzygalność problemu „Stopu” W S Program wejściowy Program S S S W W Hipotetyczny program Q dla problemu stopu Odpowiada Tak, gdy program dany zatrzymuje się i Nie, jeśli program ma nieskończoną pętlę Q Sprzeczność while true do od; TAK (stop) NIE (pętla) Sprzeczność wyjście 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

Kolorowanie grafów planarnych B C D E F G Twierdzenie o 5 barwach Każdą mapę można pokolorować co najwyżej 5 kolorami w taki sposób, że dwa sąsiadujące obszary mają różne kolory. 1922 < 26 państw 1971 < 96 państw A E G B C D F H 1977  Appel, Haken Twierdzenie Dowolny graf planarny można pokolorować co najwyżej 4 kolorami. 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 Problemy trudne Algorytm 1 1 2 3 4 5 6 7 8 9 10 Sekwencyjne wierzchołkowe kolorowanie grafu Wejście: Dany jest graf G = <V, E>, gdzie V ={v1,v2,...,vn} definiująca poprawne kolorowanie Wyjście: funkcja f : V{1,2,3...} for i :=1 to n do f(vi):= najmniejszy numer koloru, który jeszcze nie został użyty do pokolorowania sąsiadów wierzchołka vi o mniejszych indeksach; od; Przykład kolory Nie jest to jednak optymalne kolorowanie! 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne

G. Mirkowska, ASD_15 Problemy trudne Algorytm 2 Kolorowanie wierzchołkowe - „najpierw największy rząd” Wejście: Graf G o n wierzchołkach Wyjście: Pokolorowanie f grafu G while istnieje niepokolorowany wierzchołek grafu G do v := wierzchołek niepokolorowany o maksymalnym rzędzie ; f(v):= najmniejszy numer koloru, który nie został użyty do pokolorowania sąsiadów tego wierzchołka od; 1 2 3 4 5 6 7 8 9 10 Złożoność O(n*n) 2018-12-27 G. Mirkowska, ASD_15 Problemy trudne