Wieże akademiku
Transkrypt
Wieże akademiku
Technologia Informacyjna Wykład 8 Strona 1 z22 Zła wydajność i trudna rozwiązywalność Problem Wieże Hanoi Pesymistyczny czas realizacji algorytmu O(2N) Tabela. Zależność liczby przełożeń i czasu realizacji od wielkości problemu. N 3 Liczba wykonywanych przełożeń 7 7 127 Czas realizacji 7 µs 127 µs 10 1023 1.023 ms 20 1.049*106 1.049 s 50 1.126*1015 35.7 lat 64 1.845*1019 585 000 lat Czas realizacji wyliczono zakładając milion przeniesionych krążków na sekundę Gdyby wykonywać jedno przeniesienie krążka w czasie 10 s zajęłoby to około 5.85 biliona lat (5.85*1012 lat). Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 1 Technologia Informacyjna Wykład 8 Strona 2 z22 Problemy decyzyjne Problemami decyzyjnymi nazywamy zadania, w których rozwiązanie ma określić: czy pewna własność zachodzi, czy też nie. Czyli są to zadania, w których jako wynik działania oczekujemy odpowiedzi: tak lub nie. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 2 Technologia Informacyjna Wykład 8 Strona 3 z22 Małpia układanka Mamy zbiór N = M*M kart, na których wydrukowano górne i dolne połowy kolorowych zwierzątek (małp). Zadanie polega na takim ułożeniu kart, aby na zetknięciach krawędzi zwierzęta pasowały do siebie, a kolory były identyczne. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 3 Technologia Informacyjna Wykład 8 Strona 4 z22 Małpia układanka Problem algorytmiczny: Mamy N kart małpiej układanki. Należy odpowiedzieć na pytanie: Czy istnieje takie ułożenie M*M kart wybranych losowo z pośród N kart, aby kolory i połowy przystawały do siebie? 25 24 23 22 21 3 2 1 Całkowita liczba ułożeń: 25×24×23×...×3×2×1 = 25! = 1.55*1025 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 4 Technologia Informacyjna Wykład 8 Strona 5 z22 Jest to problem O(N!). Aby sprawdzić 25! Ułożeń, komputer wykonujący milion ułożeń na sekundę musiałby pracować około 492 miliardy lat (492*109 lat). Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 5 Technologia Informacyjna Wykład 8 Strona 6 z22 Rozsądny i nierozsądny czas działania 1E+50 N 1E+45 N 5N 1E+40 1.2N N N N^3 1E+35 2 N^5 f(N) 1E+30 1E+25 1E+20 1E+15 1E+10 100000 1 2 4 8 16 32 N 64 128 256 512 1024 Rysunek. Tempo wzrostu wybranych funkcji Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 6 Technologia Informacyjna Wykład 8 Strona 7 z22 Rozsądny i nierozsądny czas działania Tabela. Zapotrzebowanie na czas dla hipotetycznych algorytmów. Założono, że jedna instrukcja trwa jedną milisekundę (10-6 s). N Funkcja N N 2 1 20 1 50 1 100 300 1 9 10000 2500 400 100 100 sekundy sekundy sekundy sekundy sekundy 5 N 2 N 10 3.2 5.2 2.8 10 sekundy minuty godziny sekundy 1 1 1000 sekundy N 1 sekunda 35.7 lat 28.1 dnia 75400 bilionów cyfrowa stuleci liczba stuleci 7281852.8 3.3 bi70godziny liony lat cyfrowa cyfrowa cyfrowa liczba liczba liczba stuleci stuleci stuleci Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 7 N Technologia Informacyjna Wykład 8 Strona 8 z22 Podział funkcji Definicja Mówimy, że funkcja f(N) jest ograniczona z góry przez inną funkcję g(N), jeśli dla wszystkich N począwszy od pewnego N0, funkcja f(N) jest nie większa niż g(N). Wnioski: - funkcja log2N jest ograniczona z góry przez N; - funkcja N*log2N jest ograniczona z góry przez N2; - funkcja 2N jest ograniczona z góry przez funkcję N!; - funkcja N! jest ograniczona z góry przez NN; - takie funkcje jak log2N, N*log2N czy N2 są ograniczone z góry przez NK dla pewnego ustalonego K i mówimy o nich, że są to funkcje wielomianowe; - funkcje w rodzaju 1.001N, 2N, N! czy NN są funkcjami ponad wielomianowymi lub wykładniczymi. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 8 Technologia Informacyjna Wykład 8 Strona 9 z22 Rozsądne i nierozsądne algorytmy Algorytm, dla którego czas potrzebny na jego wykonanie ograniczony jest z góry przez funkcję wielomianową argumentu N, nazywamy algorytmem o czasie wielomianowym i uważamy go za algorytm rozsądny. Algorytm, dla którego czas potrzebny na jego wykonanie ograniczony jest z góry przez funkcję ponad wielomianową argumentu N, nazywamy algorytmem o czasie ponad wielomianowym lub wykładniczym i uważamy go za algorytm nierozsądny. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 9 Technologia Informacyjna Wykład 8 Strona 10 z22 Problemy łatwo i trudno rozwiązywalne Problemy łatwo rozwiązywalne to algorytmy rozsądne, czyli o wielomianowym czasie ich realizacji. Problemy trudno rozwiązywalne to algorytmy nierozsądne, czyli o ponad wielomianowym czasie ich realizacji. problemy trudno problemy łatwo rozwiązywalne Problemy nie mające rozsądnych algorytmów Problemy mające rozsądne (wielomianowe) algorytmy . Rysunek. Podział problemów algorytmicznych. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 10 Technologia Informacyjna Wykład 8 Strona 11 z22 Cztery pytania 1. Szybkość komputerów wzrasta około dziesięciokrotnie w czasie 18 miesięcy. Powstaje zatem pytanie, czy rozwiązanie takich kłopotliwych, czasochłonnych problemów nie jest tylko kwestią czasu oczekiwania na dodatkowe zwiększenie szybkości komputerów? 2. Czy fakt, że nie znaleziono lepszego algorytmu dla danego problemu nie wskazuje czasami na naszą niekompetencję w wymyślaniu sprawnych algorytmów? 3. Czy nie próbowano znaleźć wykładniczego dolnego ograniczenia tego problemu? Czy nie można pokazać, że nie istnieje rozsądny algorytm rozwiązujący to zadanie? 4. Czy problem małpiej układanki nie jest przypadkiem jedynym specyficznym problemem? Czy nie jest to przypadkiem wydumany problem, a całe zagadnienie nie jest warte wysiłku? Możliwe, że jest to teoretycznie ciekawy problem, ale zupełnie bez praktycznych zastosowań. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 11 Technologia Informacyjna Wykład 8 Strona 12 z22 Rozsądny i nierozsądny czas działania Szybsze komputery Tabela. Wzrost wielkości rozwiązywanego problemu jako efekt wzrostu szybkości komputera. Funkcja Maksymalna wielkość problemu (liczba kart) rozwiązywana w ciągu godziny Na dzisiej- Na kompu- Na kompuszym kom- terze 100 terze 1000 puterze razy szyb- razy szybszym szym N A 100×A 1000×A N2 B 20×B 31.6×B 2N C C+6.64 C+9.96 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 12 Technologia Informacyjna Wykład 8 Strona 13 z22 Rozsądny i nierozsądny czas działania Praktyczność zastosowań Małpia układanka to jeden z około 1000 problemów występujących w takich dziedzinach jak kombinatoryka, badania operacyjne, ekonomia, teoria grafów czy logika. Wszystkie te problemy mają nierozsądne rozwiązania o wykładniczym czasie realizacji. O problemach tego rodzaju mówimy że są to problemy klasy NPC (Nondeterministic Polynomial-time Consuming). Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 13 Technologia Informacyjna Wykład 8 Strona 14 z22 Problemy ułożeń dwuwymiarowych Układanka geometryczna Należy ułożyć N figur geometrycznych w jeden prostokąt Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 14 Technologia Informacyjna Wykład 8 Strona 15 z22 Problemy znajdowania dróg: Problem komiwojażera Należy odpowiedzieć na pytanie: czy w danym grafie istnieje cykl o całkowitym koszcie nie większym niż K. 6 3 6 8 4 9 4 3 4 10 3 7 5 7 3 7 5 Sieć dróg i minimalny cykl. Całkowity koszt: 28. Pesymistyczny czas wykonania algorytmu – O(N!). Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 15 Technologia Informacyjna Wykład 8 Strona 16 z22 Problemy znajdowania dróg Analogiczne problemy jak problem komiwojażera - projektowanie linii telefonicznych; projektowanie układów scalonych; planowanie linii montażowych; programowanie robotów przemysłowych Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 16 Technologia Informacyjna Wykład 8 Strona 17 z22 Problemy znajdowania dróg: Ścieżka Hamiltona (1805 – 1865) Czy w danym grafie złożony z punktów i krawędzi istnieje ścieżka, która przechodzi przez wszystkie punkty dokładnie jeden raz ? Graf nie mający ścieżki Hamiltona bez dodatkowej krawędzi Ścieżka Hamiltona w grafie po dodaniu krawędzi W najgorszym razie należy sprawdzić N! ścieżek Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 17 Technologia Informacyjna Wykład 8 Strona 18 z22 Problemy znajdowania dróg: Ścieżka Eulera (1707 – 1783) Czy w danym grafie złożony z punktów i krawędzi istnieje ścieżka, która przechodzi przez wszystkie krawędzie dokładnie jeden raz ? Graf nie mający ścieżki Eulera bez dodatkowej krawędzi Ścieżka Eulera w grafie po dodaniu krawędzi W najgorszym razie należy sprawdzić (N2)! ścieżek Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 18 Technologia Informacyjna Wykład 8 Strona 19 z22 Problemy znajdowania dróg: Ścieżka Eulera – rozwiązanie wielomianowe Twierdzenie Eulera(1736): Graf zawiera ścieżkę Eulera, jeśli ma następujące właściwości: 1. jest spójny, to znaczy każdy punkt jest osiągalny z dowolnego innego, 2. liczba krawędzi wychodzących z dowolnego punktu, z wyjątkiem tylko dwóch punktów, jest parzysta. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 19 Technologia Informacyjna Wykład 8 Strona 20 z22 Problemy szeregowania i dopasowania - Układanie planu zajęć. - Przydzielanie pokoi w akademiku lub hotelu. - Zapełnianie kontenera paczkami o różnych rozmiarach. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 20 Technologia Informacyjna Wykład 8 Strona 21 z22 Ustalanie prawdy logicznej Należy określić prawdę lub fałsz zdania w logicznym rachunku zdań. Tabela. Wartościowanie zdania logicznego ~ (E → F ) ∧ (F ∨ (D → ~ E )) E F D ~E 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 E ~(E→ D→~ F∨(D→ ~(E→F)∧ →F F) E ~E) (F∨(D→ ~E)) 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0 Należy wykonać dokładnie 2N sprawdzeń. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 21 Technologia Informacyjna Wykład 8 Strona 22 z22 Kolorowanie map Ile barw potrzeba do pokolorowania jednej mapy tak, aby żadne dwa państwa mające wspólną granicę, nie zostały identycznie pokolorowane. - Rozwiązanie naiwne: zastosować tyle kolorów ile jest państw; - Do pokolorowanie dowolnej mapy wystarczą cztery barwy; - Mapę można pokolorować dwiema barwami tylko wtedy, gdy mapa nie zawiera punktów, będących zetknięciem nieparzystej liczby państw; - Pytanie czy mapę można pokolorować trzema barwami należy do klasy NPC. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańśka 22