Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałUrszula Nowacka Został zmieniony 9 lat temu
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.
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ę
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.