Złożoność problemów. 1 ruch na sekundę czas wykonania ok lat 1 mln ruchów na sekundę czas wykonania ok.

Podobne dokumenty
Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

PROBLEMY NIEROZSTRZYGALNE

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Logika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

Lista 6 Problemy NP-zupełne

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 4 WSTĘP DO INFORMATYKI

Złożoność obliczeniowa klasycznych problemów grafowych

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Scenariusz 14. Miejscowość turystyczna

Struktura danych. Sposób uporządkowania informacji w komputerze.

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Algorytmika Problemów Trudnych

Złożoność algorytmów. Wstęp do Informatyki

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Teoria obliczeń i złożoność obliczeniowa

Informatyka 1. Złożoność obliczeniowa

Zaawansowane algorytmy i struktury danych

Efektywność Procedur Obliczeniowych. wykład 5

Wstęp do programowania

Zadania obliczeniowe, algorytmy i złożoność obliczeniowa

Matematyka dyskretna

O ISTOTNYCH OGRANICZENIACH METODY

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Matematyczne Podstawy Informatyki

Wybrane podstawowe rodzaje algorytmów

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Podstawy Programowania. Złożoność obliczeniowa

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

Kombinowanie o nieskończoności. 2. Wyspy, mosty, mapy i kredki materiały do ćwiczeń

Podstawy Informatyki. Sprawność algorytmów

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Problem skoczka szachowego i inne cykle Hamiltona na szachownicy n x n

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytmy asymetryczne

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

TEORETYCZNE PODSTAWY INFORMATYKI

Wprowadzenie do złożoności obliczeniowej

Poprawność algorytmów

Podstawy Programowania

TEORETYCZNE PODSTAWY INFORMATYKI

Podstawy Programowania. Złożoność obliczeniowa

Kolorowanie wierzchołków grafu

PRZEWODNIK PO PRZEDMIOCIE

Struktury danych i złożoność obliczeniowa Wykład 6. Prof. dr hab. inż. Jan Magott

Suma dwóch grafów. Zespolenie dwóch grafów

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Ubogi kartograf Kolorowanie grafu

Lista 4. Kamil Matuszewski 22 marca 2016

Wykład 4. Droga i cykl Eulera i Hamiltona

SKOJARZENIA i ZBIORY WEWN. STABILNE WIERZCH. Skojarzeniem w grafie G nazywamy dowolny podzbiór krawędzi parami niezależnych.

TEORIA GRAFÓW I SIECI

Algorytmy i struktury danych

Kolorowanie wierzchołków

Heurystyki. Strategie poszukiwań

TEORETYCZNE PODSTAWY INFORMATYKI

Matematyczne Podstawy Informatyki

Wykłady z Matematyki Dyskretnej

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Rozwiązywanie problemów metodą przeszukiwania

Metody Programowania

Maszyna Turinga Złożoność obliczeniowa

Maszyna Turinga Złożoność obliczeniowa

Schemat programowania dynamicznego (ang. dynamic programming)

Podstawy Programowania

Algorytmiczna teoria grafów

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Digraf. 13 maja 2017

Wprowadzenie Podstawy Fundamentalne twierdzenie Kolorowanie. Grafy planarne. Przemysław Gordinowicz. Instytut Matematyki, Politechnika Łódzka

Przykłady problemów optymalizacyjnych

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Zasady analizy algorytmów

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

a) 7 b) 19 c) 21 d) 34

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona

Lista 0. Kamil Matuszewski 1 marca 2016

Obliczenia inspirowane Naturą

5. Rozwiązywanie układów równań liniowych

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Metody przeszukiwania

Algorytmy aproksymacyjne i parametryzowane

Kombinatoryczne problemy optymalizacyjne to problemy wyboru najlepszego rozwiązania z pewnego zbioru rozwiązań

INFORMATYKA SORTOWANIE DANYCH.

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

Wykład 10 Grafy, algorytmy grafowe

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Transkrypt:

Złożoność problemów Przykład - wieże Hanoi Problem jest zamknięty (dolne ograniczenie złożoności = złożoność algorytmu rekurencyjnego lub iteracyjnego) i ma złożoność O(2 N ). Mnisi tybetańscy podobno rozwiązują problem dla N = 64 i wierzą, że nasz świat skończy się kiedy tego dokonają! 1 ruch na sekundę czas wykonania ok. 586 549 402 018 lat 1 mln ruchów na sekundę czas wykonania ok. 586 549 lat M.Rawski Wstęp do Informatyki 1

Głupia układanka Problem decyzyjny - taki problem algorytmiczny, który polega na znalezieniu odpowiedzi tak lub nie (często jest to odpowiedź na pytanie o istnienie rozwiązania problemu) Czy istnieje takie ułożenie kwadratu M x M z N = M 2 elementów, które spełnia wymagania układanki? Dla układanki 5 X 5 1mlnukładów na sekundę czas sprawdzenia ok. 493 208 500 055 lat Problem decyzyjny - taki problem algorytmiczny, który polega na znalezieniu odpowiedzi tak lub nie (często jest to odpowiedź na pytanie o istnienie rozwiązania problemu) M.Rawski Wstęp do Informatyki 2

Wartości niektórych funkcji złożoności N Funkcja 10 50 100 300 1000 log 2 N 3 5 6 8 9 N 10 50 100 300 1000 N log 2 N 33 282 664 2468 9965 N 2 100 2500 10 000 90 000 1 000 000 N 3 1000 125 000 1 000 000 27 mln (8 cyfr) 1mld (10 cyfr) 2 N 1024 liczba 16 cyfrowa liczba 31 cyfrowa liczba 91 cyfrowa liczba 302 cyfrowa N! 3,6 mln (7 cyfr) liczba 65 cyfrowa liczba 161 cyfrowa liczba 623 cyfrowa N N 10 mld (11 cyfr) liczba 85 cyfrowa liczba 201 cyfrowa liczba 744 cyfrowa liczba protonów w widocznym wszechświecie ma 126 cyfr, a liczba mikrosekund od wielkiego wybuchu ma 24 cyfry M.Rawski Wstęp do Informatyki 3

Zapotrzebowanie na czas jedna instrukcja trwa mikrosekundę 1 milion instrukcji na sekundę N Funkcja 10 20 50 100 300 N 2 1/10 000 sek. 1/2500 sek. 1/400 sek. 1/100 sek. 9/100 sek. 2 N 1/1000 sek. 1 sekunda 35,7 lat 400 bilionów stuleci 75 cyfr. liczba stuleci N N 2,8 godziny 3,3 biliony lat 70 cyfr. liczba stuleci 185 cyfr. liczba stuleci 728 cyfr. liczba stuleci M.Rawski Wstęp do Informatyki 4

Tempo wzrostu niektórych funkcji złożoności Funkcja f(n) jest (asymptotycznie) ograniczona z góry przez funkcję g(n), jeśli N 0 N N 0 : f(n) g(n) - oznaczmy ten fakt przez f(n) g(n). Wtedy zachodzi 10 40 10 35 10 30 N N 2 N 1,2 N log 2 N N N log 2 N N 2 2 N N! N N 10 25 10 20 10 15 10 12 10 9 10 6 1000 100 10 2 4 8 16 N 5 N 3 5 N 32 64 128 256 512 1024 M.Rawski Wstęp do Informatyki 5

10 40 N N 2 N 1,2 N 10 35 10 30 Podział funkcji złożoności Można także porównywać funkcje asymptotycznie w oparciu o poprzednio przyjęty warunek 10 25 10 20 10 15 10 12 10 9 10 6 1000 100 10 2 4 8 16 N 5 N 3 5 N 32 64 128 256 512 1024 f ( N ) lim = g( N ) N 0 - oznaczmy ten fakt przez f(n) g(n). Wtedy zachodzi 1 log 2 log 2 N log 2 N N N N log 2 N N 2 N 3 N log N 2 N N! N N 2 2N Funkcje złożoności ogólnie dzielimy na: wielomianowe - ograniczone z góry przez N k dla pewnego k (tzn. N k lub N k ) ponadwielomianowe - wykładnicze i inne szybciej rosnące (tzn. nie istnieje dla nich takie k) algorytm wielomianowy = algorytm o złożoności wielomianowej O(N k ) M.Rawski Wstęp do Informatyki 6

Sfery problemów algorytmicznych (podział zgrubny) Kilka pytań wzwiązku z głupią układanką: PROBLEMY TRUDNO ROZWIĄZYWALNE PROBLEMY ŁATWO ROZWIĄZYWALNE Nie istnieją wielomianowe algorytmy Istnieją (rozsądne) wielomianowe algorytmy Czy nie można po prostu poczekać na zbudowanie dostatecznie szybkiego komputera? Czy brak rozsądnego algorytmu dla tego problemu nie jest rezultatem braku wiedzy i inwencji informatyków? Czy nie można by wykazać, że dolne ograniczenie złożoności dla tego problemu jest wykładnicze i dać sobie spokój? Czy nie jest on przypadkiem tak szczególnym, że można go pominąć? M.Rawski Wstęp do Informatyki 7

Szybszy komputer? Maksymalna liczba elementów układanki do sprawdzenia wgodzinę Funkcja współczesny komputer komputer 100 razy szybszy komputer 1000 razy szybszy N 2 K 10 K 31,6 K 2 N L L +6 L +10 M.Rawski Wstęp do Informatyki 8

Szczególny przypadek? Głupia układanka należy do klasy problemów NPC (ang. Nondeterministic Polynomial-time Complete) zwanych po polsku NP. - zupełnymi, która obejmuje prawie 1000 problemów algorytmicznych o jednakowych cechach: dla wszystkich istnieją wątpliwe rozwiązania w postaci algorytmów wykładniczych dla żadnego nie znaleziono rozsądnego rozwiązania w postaci algorytmu wielomianowego dla żadnego nie udowodniono, że jego rozwiązania wymaga czasu wykładniczego najlepsze znane dolne ograniczenia są liniowe, tzn. O(N) Nie wiadomo czy są one trudno, czy łatwo rozwiązywalne! Nowe problemy NP-zupełne powstają w kombinatoryce, badaniach operacyjnych, ekonometrii, teorii grafów, logice itd. M.Rawski Wstęp do Informatyki 9

Układanki dwuwymiarowe Powodem braku szybkiego rozwiązania jest istnienie wielu różnych rozwiązań częściowych, nie będących częścią rozwiązania pełnego nie dających się rozszerzyć do jakiegoś rozwiązania pełnego Zwykłe układanki Puzzle zazwyczaj mają złożoność czasową O(N 2 ) W ogólnym przypadku problem układanek jest także problemem NP zupełnym M.Rawski Wstęp do Informatyki 10

Problem komiwojażera 3 6 9 8 4 Problem polega na znalezieniu w sieci połączeń pomiędzy miastami najkrótszej drogi, która pozwala odwiedzić każde z miast i powrócić do miasta wyjściowego (tzw. cykl). Problem formułowany jest jako poszukiwanie minimalnego pełnego cyklu w grafie z wagami krawędzi W wersji decyzyjnej problem polega na stwierdzeniu czy istnieje cykl o koszcie nie większym niż podana wartość K 3 7 5 3 10 Graf z wagami krawędzi 6 7 5 3 7 4 Minimalny cykl o koszcie 28 M.Rawski Wstęp do Informatyki 11

Problem komiwojażera cd 3 6 9 8 4 Problem komiwojażera pojawia się na przykład przy: projektowaniu sieci telefonicznych projektowaniu układów scalonych planowaniu linii montażowych programowaniu robotów przemysłowych 7 5 3 10 Graf z wagami krawędzi 6 3 7 4 Naiwne rozwiązanie N! 7 5 3 Przypadek nawet dla N = 25 jest beznadziejny Minimalny cykl o koszcie 28 M.Rawski Wstęp do Informatyki 12

Ścieżka Hamiltona Problem polega na sprawdzeniu czy w grafie istnieje ścieżka, która przez każdy wierzchołek przechodzi dokładnie raz. Ale... Sprawdzeniu czy w grafie istnieje ścieżka, która przez każdą krawędź przechodzi dokładnie raz, nazywane jest problemem Eulera i nie jest problemem klasy NPC Graf posiadający ścieżkę Hamiltona dopiero po dodaniu krawędzi Ścieżka Hamiltona w grafie po dodaniu krawędzi M.Rawski Wstęp do Informatyki 13

Problemem Eulera Twierdzenie (Eulera) ( problem jest łatwo rozwiązywalny ) W grafie spójnym o parzystej liczbie krawędzi wychodzących z każdego wierzchołka (być może z wyjątkiem dwóch) istnieje ścieżka Eulera. Graf posiadający ścieżkę Eulera dopiero po dodaniu krawędzi Ścieżka Eulera w grafie po dodaniu krawędzi M.Rawski Wstęp do Informatyki 14

Przydział i układanie planu zajęć Na przykład: przydział studentów do pokoi w akademiku z uwzględnieniem ograniczeń wypełnianie kontenerów przedmiotami o różnych rozmiarach stwierdzenie czy istnieje plan zajęć dopasowujący nauczycieli, klasy i godziny lekcyjne w taki sposób, aby dwie klasy nie miały jednocześnie zajęć z tym samym nauczycielem, nauczyciel nie prowadził w tym samym czasie lekcji w dwóch różnych klasach, dwaj nauczyciele nie prowadzili jednocześnie lekcji w tej samej klasie itd. M.Rawski Wstęp do Informatyki 15

Ustalenie czy zdanie logiczne jest spełnialne Problem polega na stwierdzeniu czy istnieje takie wartościowanie asercji użytych w złożonym zdaniu logicznym, które powoduje, że zdanie to staje się prawdziwe. Np. zdanie ( E F) ( F ( D E)) staje się prawdziwe dla następującego wartościowania E PRAWDA, F FAŁSZ, D FAŁSZ i jest zatem spełnialne. Natomiast zdanie nie jest spełnialne (( D E) F) ( F ( D E)) M.Rawski Wstęp do Informatyki 16

Kolorowanie map Kolorowanie mapy - problem decyzyjny polegający na ustaleniu czy dana mapa płaska może być pokolorowana k barwami tak, aby sąsiednie państwa nie miały tego samego koloru. dla 2 barw problem jest łatwo rozwiązywalny - wystarczy sprawdzić, czy mapa nie zawiera punktów, w których styka się nieparzysta liczba państw dla 3 barw problem jest trudno rozwiązywalny (klasy NPC) dla 4 barw problem jest banalny - patrz twierdzenie o czterech barwach M.Rawski Wstęp do Informatyki 17

Kolorowanie grafów Kolorowanie grafu - wyznaczenie minimalnej liczby barw, którymi można pokolorować wierzchołki danego grafu tak, aby każde dwa wierzchołki bezpośrednio połączone krawędzią miały różne kolory. Łatwo można skonstruować graf wymagający dowolnie dużej liczby kolorów: Klika - zbiór wierzchołków w grafie połączonych każdy z każdym 8barw M.Rawski Wstęp do Informatyki 18

Załadunek plecaka 4 1 31zł Zapis w wersji optymalizacyjnej: N = max ci xi i 1,..., N, przy ograniczeniach, N i i= 1,..., N a x b i Zapis w wersji decyzyjnej: czy dla danego K istnieje takie upakowanie, że N N i i = 1,..., N c x K i i= 1,..., N 2 3 1 a i a x b i i 2 3 19zł 27zł 4 7zł Plecak załadowany optymalnie c i 4 3 2 plecak 53 zł 6 b M.Rawski Wstęp do Informatyki 19

Ogólna charakterystyka problemów z klasy NP (ang. Nondeterministic Polynomial-time) wymagają sprawdzania rozwiązań częściowych i rozszerzania ich w celu znalezienia rozwiązania ostatecznego; jeśli rozwiązanie częściowe nie da się dalej rozszerzyć, to trzeba powrócić na jakiś wcześniejszy etap i po dokonaniu zmian rozpocząć od nowa, postępowanie polegające na systematycznym sprawdzeniu wszystkich możliwości wymaga czasu wykładniczego jeśli znamy rozwiązanie, to sprawdzenie jego poprawności może być przeprowadzone w czasie wielomianowym! dla każdego z problemów istnieje niedeterministyczny ( magiczny ) algorytm o złożoności wielomianowej; NP skrót od ang. Nondeterministic Polynomial-time są trudno rozwiązywalne, ale stają się łatwo rozwiązywalne, jeśli korzysta się z niedeterministycznej wyroczni M.Rawski Wstęp do Informatyki 20

Ogólna charakterystyka problemów NP-zupełnych każdy problem klasy NP można przekształcić do jednego z nich w czasie wielomianowym (taka jest ich definicja) NPC skrót od ang. Nondeterministic Polynomial-time Complete każdy problem z tej klasy można przekształcić w czasie wielomianowym do każdego innego! znalezienie algorytmu wielomianowego dla jednego z problemów oznacza możliwość rozwiązania w czasie wielomianowym wszystkich innych! M.Rawski Wstęp do Informatyki 21

Ogólna charakterystyka problemów NP-zupełnych cd udowodnienie wykładniczego dolnego oszacowania dla jednego z problemów oznacza wykazanie, że żaden z nich nie może być rozwiązany w czasie wielomianowym! albo wszystkie te problemy są łatwo rozwiązywalne, albo wszystkie trudno wykazanie, że nowy problem jest NP-zupełny przebiega w dwóch krokach: 1. trzeba udowodnić, że nowy problem jest klasy NP 2. trzeba skonstruować przekształcenie, które w czasie wielomianowym transformuje do niego dowolny znany problem NPzupełny M.Rawski Wstęp do Informatyki 22

Przykłady przekształcania jednego problemu NPC w drugi znalezienie ścieżki Hamiltona problem komiwojażera 1 2 1 1 1 2 2 1 1 Ścieżka Hamiltona dla 5 wierzchołków Istnieje ścieżka Hamiltona w grafie o N wierzchołkach 2 Cykl komiwojażera odługości 6 Istnieje cykl komiwojażera w uzupełnionym grafie nie dłuższy niż N + 1 M.Rawski Wstęp do Informatyki 23

Przykłady przekształcania jednego problemu NPC w drugi kolorowanie mapy 3 kolorami spełnialność zdania logicznego Mapa składa się z P 1, P 2,..., P N państw i mamy trzy kolory C, Z i N. Asercja P K = Z oznacza, że państwo P K jest pokolorowane na zielono. Zdanie F ma postać F1 F2, gdzie F 1 składa się ze zdań ( PK = C PK = Z PK = N) ( PK = C PK = Z PK = N) ( PK = C PK = Z PK = N) powtórzonych dla K = 1,...,N i połączonych koniunkcją, a F 2 składa się ze zdań (( P = C P = C) ( P = Z P = Z) ( P = N P = N)) K L K L K L powtórzonych dla wszystkich par K i L państw sąsiadujących ze sobą i także połączonych koniunkcją. M.Rawski Wstęp do Informatyki 24

Klasy problemów Klasa NP - problemy posiadające niedeterministyczne algorytmy o czasie wielomianowym Klasa P - problemy posiadające zwykłe algorytmy o czasie wielomianowym (łatwo rozwiązywalne) Klasa NP-zupełne - wzorcowe problemy z klasy NP sprowadzalne jeden do drugiego NP NP-zupełne P Czy P = NP? M.Rawski Wstęp do Informatyki 25

ALGORYTMY PRZYBLIŻONE praktyczne rozwiązanie dla problemównpc Np. problem komiwojażera jest trudno rozwiązywalny (NP-zupełny), ale można w czasie wielomianowym wyznaczać niezłe cykle obchodzące wszystkie wierzchołki grafu: L OPT - długość minimalnego cyklu Hamiltona L APR - długość przybliżonego rozwiązania LAPR miara dobroci rozwiązania przybliżonego: s = OPT istnieje algorytm o złożoności O(N 3 ) wyznaczający w najgorszym przypadku cykl Hamiltona o dobroci s A 1,5 A L M.Rawski Wstęp do Informatyki 26

Załadunek plecaka - zastosowanie metody zachłannej Posortuj pakowane przedmioty według nie rosnących wartości Pakuj je do plecaka w otrzymanym porządku, dopóki się mieszczą c a i i W przykładzie liczbowym: c1 a = 31 1 4 = 7 3 4, c2 a = 19 2 2 = 9 1 2, c3 27 c = = 9, a3 3 a c2 c3 c1 c4 zatem i ta lista wyznacza kolejność pakowania: a a a a 2 3 1 4 a 2 = 2 6 x 2 = 1 a 2 + a 3 = 5 6 x 3 = 1 a 2 + a 3 + a 1 = 9 > 6 x 1 = 0 a 2 + a 3 + a 4 = 6 6 x 4 = 1, c 2 + c 3 + c 4 = 53 s A = 1 W najgorszym przypadku algorytm daje upakowanie o dobroci s A 2 złożoność algorytmu = złożoność sortowania = O(N log N) 4 4 7 = = 1 7 M.Rawski Wstęp do Informatyki 27

UWAGI o złożoności problemów: po raz pierwszy wykazano NP-zupełność dla problemu spełnialności zdania logicznego (Cook w 1971 r.) są problemy, dla których udowodniono, że należą do klasy NP, ale nie są ani NP-zupełne, ani nie należą do klasy P, np. sprawdzenie czy dana liczba jest liczbą pierwszą są problemy, których złożoność wykładniczą można udowodnić przez podanie dolnych ograniczeń czasowych (i to nie tylko takie, jak wieże Hanoi, dla których z góry wiadomo ile iteracji wykona algorytm), np. stwierdzenie czy dla danej konfiguracji w uogólnionych szachach N x N istnieje strategia wygrywająca dla jednego z przeciwników M.Rawski Wstęp do Informatyki 28

UWAGI cd są problemy spełnialności, dla których także można udowodnić złożoność wykładniczą np. w dynamicznej logice zdań są problemy, dla których pokazano podwójnie wykładnicze dolne ograniczenia czasowe, np. spełnialność w arytmetyce Presburgera są problemy algorytmiczne, dla których udowodniono, że mają wykładnicze dolne ograniczenia pamięciowe O( 2 2N są ciekawe przypadki problemów, dla których efektywne w praktyce algorytmy mają złożoność wykładniczą, ale znaleziono dla nich algorytm wielomianowy sprawujący się w większości przypadków wyraźnie gorzej - zadanie programowania liniowego, algorytm sympleksowy (wykładniczy) i algorytm Karmarkara (1979) ) M.Rawski Wstęp do Informatyki 29

Klasy złożoności algorytmów podwójnie wykładnicza wykładnicza NP-zupełne NP P (wielomianowa) logarytmiczna arytmetyka Presburgera szachy, warcaby uogólnione małpie układanki, spełnialność, ładowanie plecaka sprawdzanie czy liczba jest pierwsza sortowanie wyszukiwanie w uporządkowanej liście M.Rawski Wstęp do Informatyki 30