Badanie złożoności algorytmów cz II 3

Badanie złożoności algorytmów cz II 3



Praktyczne znaczenie złożoności obliczeniowej:

Różnica między złożonością O (N2) a O (W * log W) może oznaczać różnicę między miliardami a tylko setkami tysięcy operacji. Są problemy o prostych algorytmach, ale o ogromnej złożoności np. tzw. łamigłówka wieża Hanoi — przekładanie krążków z jednego kołka na drugi przy pomocy trzeciego. Da się dla tego zadania napisać bardzo prosty algorytm rekurencyjny fna ćwiczeniach1), ale jego złożoność wynosi O (2N), gdzie Njest liczbą krążków. Zatem dla przełożenia 64 krążków wykonując algorytm z szybkością miliona ruchów / sek. potrzeba 0.5 min lat. Tybetańczykom w legendzie miało to zająć czas do końca świata, ponieważ przenosząc 6 krążków/ min, musieliby pracować przez 5 bilonów lal t.j. dłużej niż według wszelkiej nasze wiedzy, będzie istniał Układ Słoneczny.

fylożnaby sądzić, że taka złożoność wynika z wielu czynności koniecznych do uzyskania rozyyiązania.

Sąjednak problemy, których wynik nie da się sprov-/adzić do rozstrzygnięcia tak — nie, a mających ogromną złożoność. Taki jest problem puzzli — układanki złożonej z N kwadratowych elementów, z których można ułożyć kwadrat o rozmiarach M x M (oczywiście N = M2). Okazuje się, że liczba możliwych ułożeń wynosi NI, gdybyśmy je chcieli sprawdzić wszystkie (np. żeby sprawdzić czy nie składają się na jakiś nieznany, ukryty rysunek).

Na przykład dla układanki 5x5 komputer sprawdzający milion ułożeń / sek. potrzebowałby na sprawdzenie wszystkich możliwości około 400 mld lat. czyli więcej niż wiek naszego Wszechświata oceniany na 15 mld lat od "Wielkiego Wybuchu".

Nie należy tego problemu mylić z zagadnieniem ułożenia puzzli mającego na celu odtworzenie jakiegoś znanego wzorcowego rysunku. Tu złożoność jest znacznie mniejsza. Bowiem na każdy kroku układanki możemy znaleźć brakujący element przeglądając wszystkie pozostałe nie ułożone elementy zamiast wszystkich możliwych kombinacji ułożenia. Z tego wynikałaby złożoność rzędu O (N2), zatem wiele, wiele razy mniejsza niż O (N!)

Funkcja N! jest bardzo szybko rosnącą z N. Szybciej rośnie tylko Nn, wolniej od niej rosną KN i NK dla dowolnego skończonego k. Np. N! jest większa od N1000 już dla N > 1165.

Niestety bardzo istotny problem złożoności obliczeniowej procesów decyzyjnych jest problemem typu N!

Generalnie w ocenach złożoności obliczeniowej stosuje się jej podział na złożoność wielomianowa i ponadwielomianowa. Problem o złożoności wielomianowej nazywamy łatwo rozwiązywalnymi. Te drugie trudno rozwiązywalnymi.

Problem złożoności pamięciowej (dygresja, ale nie zupełna)

Uzyskanie górnych i dolnych ograniczeń dla pamięciowych wymagań problemów algorytmicznych jest przedmiotem poważnych badań.

"Zasada nieokreśloności" dla czasu i pamięci:

Interesujące sątutaj nie tyle oddzielne ograniczenia dla czasu i pamięci, ale także łączne na iloczyn pamięci i czasu, gdzie za oszczędność czasu płacimy pamięcią i na odwrót. Usiłuje sie obecnie udowodnić, że te tzw. "kompromis czas — pamięć" istnieje . Zwykle prowadzi to do udowodnienia, że pamięć S i czas wykonania T dla pewnego algorytmu spełniają pewna relacje z danymi wejściowymi o długości N. np. załóżmy, że łącznie ograniczenie dolne i górne dla złożoności czasowo — pamięciowej (problem zamknięty) wynosi:

S2 * T = O (N3 * (log N)2)

tzn., że jeśli zgodzimy się zużyć O (N3) czasu, to możemy zadanie rozwiązać zużywając O (log N) pamięci. Jeśli jednak chcemy ograniczyć czas wykonania do nie więcej niż O (N2), to będziemy potrzebować co najmniej

0(V/V- iog.\r)

pamięci:

jeś/i toi


N3 *(log N)2

*/V*(logA02

jeśli to I


s-


S*



Wyszukiwarka

Podobne podstrony:
Badanie złożoności algorytmów cz II 1 BADANIE ZŁOŻONOŚCI ALGORYTMÓW CZĘSC IIRekurencja - a sprawność
Badanie złożoności algorytmów cz II 2 Ograniczenia dolne i górne na złożoność: Rozważmy problem prze
CCF20110119002 Badanie układu pokarmowego cz.II - PRZEŻUWACZE BADANIE POWŁOK BRZUSZNYCH Oglądani
CCF20110119003 Badanie układu pokarmowego cz.II - MIĘSOŻERNE BADANIE POWŁOK BRZUSZNYCH Oglądanie
Badanie złożoności algorytmów cz I 1 BADANIE ZŁOŻONOŚCI ALGORYTMÓW CZĘŚĆ I Miara sprawności danego a
Badanie złożoności algorytmów cz I 2 Ulepszenia rzędu wielkości: Poprzednio udało się nam skrócić cz
Badanie złożoności algorytmów cz I 3 Żeby zdać sobie sprawę co do rzeczywistej skali ulepszeń rozważ
Badanie złożoności algorytmów cz I 4 Wszystko to świadczy o sile notacji O (). Ale jest ta siła takż
rozdział (71) 378 Podstawy marketingu Praktycznie wielkość próby zależy od przedmiotu badania, złoż
rozdział (71) 378 Podstawy marketingu Praktycznie wielkość próby zależy od przedmiotu badania, złoż
Metody dowodzenia poprawności cz II 2 Współczesne badania w dziedzinie poprawności algorytmów: Idą o
rozdział (71) 378 Podstawy marketingu Praktycznie wielkość próby zależy od przedmiotu badania, złoż
COGNITY PRAKTYCZNE SKUTECZNE SZKOLENIA I KONSULTACJEPoradnik VBA: Instrukcje i Operatory VBA w Excel
DSC04325 (2) xcn CZ. II:‘ISTNA LIRYKA Narzucająca się tu logika znaczeń, która subtelną nicią zespal
Seminarium: Badanie lekowrażhwości cz. II. Mechanizmy bakteryjnej oporności na antybiotyki i
2.    Praktyka asystencka (cz. II) w wymiarze 2 tygodni- min. 45 godzin, realizowana
Laboratorium Elektroniki cz II 4 łu W realizacjach praktycznych uzyskuje się rezystancje wyjściow
Laboratorium Elektroniki cz II 1 200 Rys. 9.12. Schematy do badania układów całkujących z wykorzy

więcej podobnych podstron