Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka

Slides:



Advertisements
Podobne prezentacje
ANALIZA SIECIOWA PRZEDSIĘWZIĘĆ konstrukcja harmonogramu
Advertisements

Metody optymalizacyjne w logistyce
DOMINOWANIE W GRAFACH Magdalena Lemańska.
Grafy spełniające nierówność Γ(G) < IR(G)
ALGORYTMY GRAFOWE.
Wprowadzenie do optymalizacji wielokryterialnej.
Grafy inaczej, czyli inne modele grafów
Kolorowanie grafów Niech G = (V, E) będzie spójnym grafem nieskierowanym bez pętli. Kolorowaniem wierzchołków grafu nazywa się przypisanie wierzchołkom.
WYKŁAD 6. Kolorowanie krawędzi
ELEMENTY TEORII GRAFÓW
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Minimalne drzewa rozpinające
Algorytm Dijkstry (przykład)
Badania operacyjne. Wykład 1
Badania operacyjne. Wykład 2
Metoda węzłowa w SPICE.
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
WYKŁAD 8. Siła spójności A,B – dowolne podzbiory V(G)
WYKŁAD 3. Kliki i zbiory niezależne
GRAFY PLANARNE To grafy, które można narysować na płaszczyźnie tak, by krawędzie nie przecinały się (poza swoimi końcami). Na przykład K_4, ale nie K_5.
Materiały pomocnicze do wykładu
Macierz incydencji Macierzą incydencji grafu skierowanego D = (V, A), gdzie V = {1, ..., n} oraz A = {a1, ..., am}, nazywamy macierz I(D) = [aij]i=1,...,n,
Algorytmy i struktury danych
Algorytmy genetyczne.
Algorytmy genetyczne.
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.
Kod Graya.
Minimalne drzewa rozpinające
SKIEROWANE Marek Bil Krzysztof Fitrzyk Krzysztof Godek.
Przegląd podstawowych algorytmów
IV OTWARTE MISTRZOSTWA OPOLA W PROGRAMOWANIU ZESPOŁOWYM
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
Ocena przydatności algorytmu – czas działania (złożoność czasowa)
Algorytmy i struktury danych
Badania operacyjne Wykład 5.
Uniwersytet Dzieci Nieważne jaki masz komputer
ALGORYTMY I STRUKTURY DANYCH
Algorytm Dijkstry 1 Zbiory: T - zbiór wierzchołków
FUNKCJE Opracował: Karol Kara.
Algorytmika.
Algorytmy i Struktury Danych
Wyszukiwanie maksimum funkcji za pomocą mrówki Pachycondyla Apicalis.
Geometria obliczeniowa Wykład 13 Planowanie ruchu 1.Znajdywanie ścieżki między dwoma punktami. 2.Ruch postępowy robota wielokątnego na płasz- czyźnie.
Algorytmy- Wprowadzenie do programowania
System gromadzenia i udostępniania informacji o ruchu pojazdów i przesyłek w przedsiębiorstwie kurierskim Autor: Karol Podsiadło gr. OS1 Promotor: dr inż.
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 Genetyczne Anna Tomkowska Politechnika Koszalińska
Drogi i cykle Eulera w grafach nieskierowanych
WĘDRÓWKI PO GRAFACH Obchody Eulera Cykle Hamiltona.
Szachy a grafy. Powiązanie szachownicy z grafem Szachownicę można przedstawić jako graf. Wierzchołek odpowiada polu, a krawędzie ruchowi danej figury.
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)
Autor: Michał Salewski
Wstęp do programowania Wykład 4
Temat 3: Podstawy programowania Algorytmy – 2 z 2 _________________________________________________________________________________________________________________.
Grafy.
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Metody Badań Operacyjnych Michał Suchanek Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Zagadnienia transportowe Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
1.problem próbkowania (sampling problem) dobór charakterystycznych punktów powierzchni w celu uzyskania najlepszego efektu przy minimalizacji ilości danych.
Działania na grafach Autor: Anna Targońska.
Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Kinga Cichoń.
ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW WSTĘP DO OBLICZEŃ NA GRAFACH
Algorytmy i struktury danych
Zapis prezentacji:

Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka dr inż. Krzysztof Bryś brys@mini.pw.edu.pl Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska Warszawa, 12 stycznia 2016 www.mini.pw.edu.pl

Problem decyzyjny Problem : Dane (input): Szukane (output): Problem decyzyjny: Dane: Pytanie: Czy…. ? Możliwe odpowiedzi: TAK/NIE Problem L = zbiór danych dla których odpowiedź TAK

Problem optymalizacyjny Problem optymalizacyjny: Dane: Szukane: rozwiązanie dopuszczalne, dla którego wartość funkcji celu osiąga wartość minimalną albo maksymalną. Przykład: Dane: zbiór studentów Szukane: najwyższy student spośród tych, którzy zdadzą egzamin

Algorytm Algorytm przepis na rozwiązanie problemu, opis sposobu rozwiązania problemu ciąg działań (instrukcji), które należy wykonać aby rozwiązać problem Jeden problem można rozwiązać wieloma algorytmami !

Złożoność obliczeniowa czas obliczeń algorytmu dla danych d = t(d) = liczba operacji elementarnych wykonywanych przez dany algorytm dla danych d złożoność obliczeniowa (pesymistyczna) algorytmu = funkcja, która każdemu rozmiarowi danych n przyporządkowuje pesymistyczny czas obliczeń (sup(t(d)) dla danych d o rozmiarze n złożoność przeciętna, złożoność najlepszego przypadku

Złożoność pamięciowa zajętość pamięci przez algorytmu dla danych d = s(d) = liczba komórek pamięci zajętych przez dany algorytm podczas obliczeń wykonywanych dla danych d złożoność pamięciowa (pesymistyczna) algorytmu = funkcja, która każdemu rozmiarowi danych n przyporządkowuje pesymistyczną zajętość pamięci (sup(t(d)) dla danych d o rozmiarze n złożoność przeciętna, złożoność najlepszego przypadku

Główni bohaterowie Algorytm wielomianowy (dobry bohater) = algorytm, który ma funkcję złożoności obliczeniowej ograniczoną przez wielomian rozmiaru danych Algorytm wykładniczy (zły bohater) = algorytm, który ma złożoność obliczeniową określoną przez funkcję wykładniczą rozmiaru danych (zwiększenie rozmiaru danych o pewną stałą powoduje pomnożenie czasu działania przez pewien stały czynnik)

Klasy złożoności obliczeniowej P (deterministic polynomial) = klasa problemów, które można rozwiązać za pomocą algorytmów wielomianowych (Cobham, 1965) NP (nondeterministic polynomial) = klasa problemów, dla których znalezione rozwiązanie może być zweryfikowane przez algorytm wielomianowy (istnieje „wielomianowy” dowód poprawności rozwiązania) = klasa problemów, być rozwiązany w wielomianowym czasie przez algortym niedeterministyczny (z możliwymi losowymi wyborami) =na niederministycznej maszynie Turinga (Edmonds, 1965)

P=NP ? Problem milenijny: Czy P=NP ? Uwaga 1 : Każdy algorytm z klasy NP może być rozwiązany przez algorytm wykładniczy (poprzez sprawdzenie wszystkich możliwych przebiegów algorytmu niedeterministycznego) Uwaga 2: Każdy problem z klasy P należy również do NP. Problem milenijny: Czy P=NP ?

Problemy NP-zupełne Problem L jest redukowalny w czasie wielomianowym do problemu M jeśli można przy użyciu algorytmu wielomianowego sprowadzić rozwiązanie problemu L do rozwiązania problemu M Problem L jest NP-zupełny jeśli L należy do klasy NP oraz każdy problem z klasy NP jest do niego redukowalny w czasie wielomianowym. NPC = klasa problemów NP-zupełnych (Cook, 1971)

Eureka ! Fakt: Jeśli jakikolwiek problem NP-zupełny należy do klasy P, to P=NP (każdy problem z klasy NP należy również do klasy P)

Dopełnienie problemu dopełnienie problemu L = zbiór danych, dla których odpowiedź jest nie Przykład: Problem L: Czy w danym zbiorze jest liczba pierwsza ? Dopełnienie problemu L: Czy w danym zbiorze nie ma liczby pierwszej ? co- NP = klasa problemów, których dopełnienie należy do klasy NP.

co-NP Przykład problemu z klasy co-NP: L: Czy dana liczba jest pierwsza ? Łatwo sprawdzić, że dana liczba nie jest pierwsza jeśli znamy jej dzielnik. csd

Co by było gdyby …  

Co by było gdyby…  

Graf składa się z elementów pewnego zbioru zwanych wierzchołkami oraz par wierzchołków zwanych krawędziami. Na rysunku grafu wierzchołki reprezentowane są przez punkty a krawędzie przez linie łączące pary wierzchołków. .

Jeżeli krawędzie mają nadane orientacje, to znaczy każda prowadzi od jednego wierzchołka do innego (na rysunku grafu krawędzie są wtedy oznaczone strzałkami), to mówimy wtedy o grafie skierowanym. Często rozważa się również grafy ważone czyli takie, w których każda krawędź ma przyporządkowaną pewną wagę.

Na rysunku grafu wierzchołki są etykietami odpowiadających im punktów

Graf = uniwersalne narzędzie do rozwiązywania problemów z różnych dziedzin nauki i życia codziennego

Problem króla Artura i rycerz okrągłego stołu: Jak rozsadzić 165 rycerzy zaproszonych na imieniny króla Artura tak, aby każdy rycerz miał za sąsiadów przyjaciół ? żródło: internet

Sformułowanie grafowe tego problemu: Niech wierzchołki grafu odpowiadają rycerzom. Dwa wierzchołki łączymy krawędzią jeśli odpowiadają przyjaciołom. Znaleźć taki cykl w tym grafie, który przechodzi przez każdy wierzchołek dokładnie raz. żródło: internet

Sformułowanie grafowe tego problemu: Niech wierzchołki grafu odpowiadają rycerzom. Dwa wierzchołki łączymy krawędzią jeśli odpowiadają przyjaciołom. Znaleźć taki cykl w tym grafie, który przechodzi przez każdy wierzchołek dokładnie raz. Cykl, który przechodzi przez każdy wierzchołek grafu dokładnie raz nazywa się cyklem Hamiltona.

Problem istnienia cyklu Hamiltona Problem istnienia cyklu Hamiltona należy do klasy NP (łatwo zweryfikować czy dany ciąg wierzchołków tworzy cykl Hamiltona) ale nie należy do klasy co-NP (zgodnie z obecnym stanem wiedzy, nie znamy żadnego „łatwego” sposobu sprawdzania, że w danym grafie cykl Hamiltona nie istnieje)

Graf Petersena

Łamigłówka Hamiltona (Wiliam Rowan Hamilton 1856): Gramy na grafie będącym siatką dwunastościanu foremnego

Gracz 1: Wybiera 5 pierwszych wierzchołków w taki sposób, że każde dwa kolejne są połączone krawędzią. Gracz 2: Ma za zadanie wybrać pozostałe wierzchołki w takiej kolejności, by utworzyć cykl (czyli drogę zaczynającą się i kończącą się w tym samym wierzchołku) przechodzący przez każdy wierzchołek tego grafu dokładnie raz. Gracz 2 zawsze może wygrać !!! (jeśli pomyśli trochę)

Gracz 1:

Gracz 2:

Problem komiwojażera: Komiwojażer musi odwiedzić każde z n miast i wrócić do miasta, z którego wyruszył. Chce przebyć jak najkrótszą drogę. Sformułowanie grafowe tego problemu: Niech wierzchołki w grafie odpowiadają miastom. Każde dwa wierzchołki łączymy w tym grafie krawędzią o wadze równej odległości między tymi miastami. Znaleźć w tak stworzonym grafie „najkrótszy” cykl przechodzący przez każdy wierzchołek tego grafu dokładnie raz.

Dla 5 miast, wszystkich możliwych dróg komiwojażera jest 4*3*2*1*(1/2) = 4!/2 = 12 Dla 10 miast, wszystkich możliwych dróg komiwojażera jest 9!/2 = 181 440 Dla 20 miast, wszystkich możliwych dróg komiwojażera jest 19!/2 czyli około 6 000 000 000 000 000 000. Dla 20 000 miast, wszystkich możliwych dróg komiwojażera jest BARDZO DUŻO – jedynka z 77 tysiącami zer

Najlepsza dotąd znaleziona trasa komiwojażera żródło: internet Najlepsza dotąd znaleziona trasa komiwojażera dla 13 509 miast w USA

żródło: internet Najlepsza dotąd znaleziona trasa komiwojażera dla wszystkich miast na świecie

Przykłady problemów NP-zupełnych Problem istnienia cyklu Hamiltona w grafie Problem komiwojażera Problem plecakowy Problem spełnialności formuły boolowskiej Problem wyznaczania liczby chromatycznej grafu Problem wyznaczania indeksu chromatycznego grafu

Zagadnienie programowania liniowego  

Zagadnienie programowania liniowego ZPL jest problemem z klasy P bo istnieje wielomianowy algorytm eliptyczny (Khachiyan, 1979) - niepraktyczny bo o gigantycznej złożoności pamięciowej. W praktyce do rozwiązywania ZPL używa się metody sympleks, która jest algorytm wykładniczym ale dla praktycznych, niezłośliwych danych działa w czasie wielomianowym. Algorytm punktu wewnętrznego również jest wielomianowy ale rzadko stosowany w praktyce.

Problem plecakowy  

Problem plecakowy  

Dziękuje za uwagę

Dziękuje za uwagę