Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka"— Zapis prezentacji:

1 Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka
dr inż. Krzysztof Bryś Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska Warszawa, 12 stycznia 2016

2 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

3 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

4 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 !

5 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

6 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

7 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)

8 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)

9 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 ?

10 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)

11 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)

12 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.

13 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

14 Co by było gdyby …

15 Co by było gdyby…

16 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. .

17 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ę.

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

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

20 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

21 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

22 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.

23 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)

24 Graf Petersena

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

26 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ę)

27 Gracz 1:

28 Gracz 2:

29 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.

30

31 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 = Dla 20 miast, wszystkich możliwych dróg komiwojażera jest 19!/2 czyli około Dla miast, wszystkich możliwych dróg komiwojażera jest BARDZO DUŻO – jedynka z 77 tysiącami zer

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

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

34 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

35 Zagadnienie programowania liniowego

36 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.

37 Problem plecakowy

38 Problem plecakowy

39 Dziękuje za uwagę

40 Dziękuje za uwagę


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

Podobne prezentacje


Reklamy Google