Algorytmy i struktury danych
description
Transcript of Algorytmy i struktury danych
Algorytmy i struktury Algorytmy i struktury danychdanych
Problemy łatwe i trudne
Klasa P i NP
Wybrane problemy
Przykłady praktycznych problemów, które Przykłady praktycznych problemów, które można sprowadzić do kolorowania grafówmożna sprowadzić do kolorowania grafów
• rozdział częstotliwości roboczych dla stacji nadawczych• układanie rozkładów zajęć• rozmieszczanie elementów na warstwach układu scalonego• projektowanie kodów odpornych na błędy• szacowanie rzadkich macierzy Jakobiego• konstrukcja prostokątów łacińskich• optymalizacja kodu wynikowego generowanego przez kompilator
Problemy łatwe, trudne i Problemy łatwe, trudne i nierozwiązywalnenierozwiązywalne
• Problemy łatwe, dla których znany jest algorytm pracujący w czasie wielomianowo zależnym od ilości wierzchołków grafu.
Przykłady: minimalny/maksymalny wierzchołek, cykl/droga Eulera.• Problemy trudne, dla których nie jest znany dokładny algorytm
wielomianowy.
Przykłady: największa klika, kolorowanie grafów.• Problemy nierozwiązywalne, których nie można rozwiązać przy
pomocy komputera,
Przykład: problem stopu.
Tempo wzrostuTempo wzrostun = rozmiar danych
funkcja 10 20 30 40 50 60
n 0,00001s
0,00002s
0,00003s
0,00004s
0,00005s
0,00006s
n2 0,0001s
0,0004s
0,0009s
0,0016s
0,0025s
0,0036s
n3 0,001s
0,008s
0,027s
0,064s
0,125s
0,216s
n5 0,1s
3,2s
24,3s
1,7s
5,2s
13,0s
2n 0,001s
1,0 s 17,9min
12,7dni
35,7lat
366wieków
3n 0,059s
58min
6,5lat
3885wieków
2108
wieków1,31013
wieków
Tempo wzrostuTempo wzrostun = rozmiar danych
funkcja 10 20 30 40 50 60
n 0,00001s
0,00002s
0,00003s
0,00004s
0,00005s
0,00006s
n2 0,0001s
0,0004s
0,0009s
0,0016s
0,0025s
0,0036s
n3 0,001s
0,008s
0,027s
0,064s
0,125s
0,216s
n5 0,1s
3,2s
24,3s
1,7s
5,2s
13,0s
2n 0,001s
1,0 s 17,9min
12,7dni
35,7lat
366wieków
3n 0,059s
58min
6,5lat
3885wieków
2108
wieków1,31013
wieków
Klasa problemów NP-zupełnychKlasa problemów NP-zupełnych
Dla wielu przypuszczalnie niewielomianowych problemów, pokazano ich wzajemną równoważność co oznacza, że:
jeżeli znajdziemy wielomianowy algorytm dla jednego z problemów to będziemy w stanie wszystkie te problemy rozwiązać w czasie wielomianowym.
Czy to ważne ?
Wariant pesymistyczny...Wariant pesymistyczny...
Nie potrafię znaleźć szybkiego sposobu na zrobienie tego...
Wariant optymistyczny...Wariant optymistyczny...
Nie istnieje szybki sposób na zrobienie tego...
Dla problemów NP-zupełnych ...Dla problemów NP-zupełnych ...
Nie potrafię znaleźć szybkiego sposobu na zrobienie tego, ale ci wszyscy ZNANI NAUKOWCY też nie potrafili...
Klasa NPIKlasa NPI
Algorytm deterministyczny
Algorytm niedeterministyczny
Problemy decyzyjne
Problemy optymalizacyjne
Dla decyzyjnych problemów klasy NPC koniecnze jest istnienie wielomianowego (być może niedetermini-stycznego) algorytmu
Klasy P, NPI, NPCKlasy P, NPI, NPC
NPINPC P
Wybrane problemy NPCWybrane problemy NPC
Spełnialność, 3-spełnialność
Liczba i indeks chromatyczny
Największa klika, minimalne pokrycie, najw. zbiór niezależny
Cykl i ścieżka hamiltona, problem komiwojażera
Najdłuższa ścieżka, najdłuższy cykl
Problem plecakowy, podział zbioru
Najdłuższy wspólny podciąg
Szeregowanie zadań, układanie rozkładów zajęć
Izomorfizm grafów ?
Wybrane problemy otwarteWybrane problemy otwarte
Izomorfizm grafów
Faktoryzacja
Problemy ostatnio zamknięteProblemy ostatnio zamknięte
Programowanie liniowe
Stwierdzenie czy liczba jest pierwsza