You are on page 1of 42

Podstawy analizy algorytmw

prof. dr hab. in. Marek

Kubale

EA 251

Podstawy analizy algorytmw

Elementy analizy algorytmw

lp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

idx 119318 119423 109886 119430 119373 119448 119510 119283 119482 119317 119415 119473 113284 119393 119263 119320 119334 119343 119419 119374 119269 119435 119476 119486

grp I-- 3 I-- 2 I-- 7 I-- 2 I-- 5 I-- 7 I-- 7 I-- 2 I-- 5 I-- 3 I-- 6 I-- 7 I-- 5 I-- 5 I-- 1 I-- 3 I-- 3 I-- 4 I-- 6 I-- 5 I-- 4 I-- 3 I-- 6 I-- 7

kol1 78 85 78 78 65 88 52 52 54 73 49 84 34 60 64 18 35 62 55 38 52 64 49 23

kol2 96 95 96 86 70 61 65 71 26 61 37 45 12 68 47 52 43 61 61 46 64 54 54 44

dod 31 19 10 4 20 2 4 16 2 1 13 2 1 10 2 2 3 9 1 4 2 12 1

cz1

cz2

suma 205 199 184 168 155 151 149 139 137 135 134 131 129 128 127 127 126 126 125 124 120 120 115 115

kol4

0 80 0 0 80 70 73 81 10 77

0 0 81 72 48 26 0 0 0 35

70

Podstawy analizy algorytmw

Podstawy analizy algorytmw

Jaka nastpna liczba ???


10 11 12 13 14 15 16 17 20 22 24 31 100 121 10000 1111111111111111 ?????

Podstawy analizy algorytmw

Okres przedkomputerowy
- rok 300 pne. algorytm Euklidesa NWP - rok 100 - rok 1900 - rok 1936 chiskie twierdzenie o resztach David Hilbert (23) Alan Turing

Okres komputerowy
- rok 1971 Steven Cook - rok 1979 Leonid Chaczijan PL - rok 2000 Clay Institute (7) - rok 2004 Manindra Agrawal i in. Powyszy rys historyczny uwypukla najwaniejsze osignicia teoretyczne a nie praktyczne.

Podstawy analizy algorytmw

Przez wieki nie byo zgodnoci wrd autorw rnych ksiek o algorytmach oraz badaczy algorytmw co do formalnej definicji algorytmu. Mimo to od czasw Euklidesa, nie martwiono si tym specjalnie, tylko tworzono opisy rozwizywania rnych problemw i dzisiaj nazywamy je algorytmami. Jak wspominaem, na przeomie XIX i XX wieku matematykw zainteresowao udzielenie odpowiedzi na do oglne pytanie: Co mona obliczy, jakie funkcje s obliczalne, dla jakich problemw istniej algorytmy, i oglniej czy wszystkie twierdzenia mona udowodni??

Podstawy analizy algorytmw

Formalizacj poj algorytmu i obliczalnoci zajo si w pierwszej poowie ubiegego stulecia wielu matematykw. Wprowadzono wiele rnych definicji oblicze, przy czym wikszo z nich jest rwnowana midzy sob w tym sensie, e definiuje t sam klas funkcji obliczalnych. Do najpopularniejszych naley formalizm wprowadzony przez A. Turinga, zwany dzisiaj maszyn Turinga. Obecnie maszyn Turinga przyjmuje si za precyzyjn definicj pojcia algorytmu. Zatem nie ma algorytmu dla takiego problemu, ktrego nie mona rozwiza za pomoc maszyny Turinga.

Podstawy analizy algorytmw

Wizje maszyny Turinga

Podstawy analizy algorytmw

Problemy z dziedziny optymalizacji dyskretnej mona podzieli z punktu widzenia dugoci wyjcia, jak i z punktu widzenia zoonoci obliczeniowej. Zgodnie z pierwsz kategoryzacj wyrniamy: 1. Problemy decyzyjne - s to problemy, ktre wyraamy pytaniami oglnymi, zaczynajcymi si od sowa czy. Odpowiedzi na nie jest sowo tak lub nie. Innymi sowy, algorytm ma zdecydowa, czy dane wejciowe speniaj okrelon wasno. Przykadem jest problem stopu. 2. Problemy optymalizacyjne - w tym przypadku algorytm ma znale obiekt matematyczny speniajcy zadan wasno, np. najlepsze posunicie w danym stadium gry w szachy.

Podstawy analizy algorytmw

Eternity puzzle

A.P.Selby & O.M.Riordan 15th May 2000

Podstawy analizy algorytmw

Z drugiej strony, wszystkie problemy z dziedziny optymalizacji dyskretnej mona podzieli na pi klas. 1. Problemy niealgorytmiczne - problemy takie nie mog by rozwizane za pomoc algorytmw o skoczonym czasie dziaania. Przykadem jest problem stopu lub problem kafelkowania .

Podstawy analizy algorytmw

Kafelkowanie c.d.

Podstawy analizy algorytmw

REP TILES NISKIEGO RZDU poczone tworz wiksze kopie samych siebie.

Podstawy analizy algorytmw

Podstawy analizy algorytmw

2. Problemy przypuszczalnie niealgorytmiczne - dla problemw tych nie udao si dotychczas poda algorytmu skoczonego, ale brak te dowodu, e taki algorytm nie istnieje. Przykady: problem rwna diofantycznych (x2+y2=z2), problem "pomn przez 3 i dodaj 1", zwany te problemem liczb gradowych, lub problemem Collatza . Jeszcze innym przykadem takiego problemu jest synna hipoteza C. Goldbacha z roku 1742. Gosi ona, e kada liczba parzysta wiksza od 2 jest sum dwch liczb pierwszych.

Podstawy analizy algorytmw

Przykady rwna diofantycznych x3 + y3 + z3 = 29


Czy ma rozwizanie? Tak: (3, 1, 1)

x3 + y3 + z3 = 30
Czy ma rozwizanie?

Od roku 1999 wiemy, e tak, mianowicie:

(-283 059 965, -2 218 888 517, 2 220 422 932)

x3 + y3 + z3 = 33
Czy ma rozwizanie?

Nie wiadomo

Podstawy analizy algorytmw

Problem Collatza
Poczynajc od pewnego naturalnego k, gdy k jest parzyste, podstawiamy k := k/2, w przeciwnym razie k := 3k + 1. Dziaania te kontynuujemy dopki k 1. Czy taki proces obliczeniowy zatrzymuje si dla kadej naturalnej wartoci k?? Mimo usilnych stara wielu matematykw zajmujcych si teori liczb nie znamy odpowiedzi na to pytanie. Procedura Collatza zatrzymuje si dla k < 258 tj. 2.8823 1017 (luty 2004), jednak dla oglnego przypadku problem nadal pozostaje nierozstrzygnity.

Podstawy analizy algorytmw

procedure Collatz; begin read(k); repeat if even(k) then k := k/2 else k := 3k + 1; until k = 1 end;

Podstawy analizy algorytmw

Zaczynajc od k = 6 mamy: 6, 3, 10, 5, 16, 8, 4, 2, 1 Zaczynajc od k = 11 mamy: 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1. Zaczynajc od k = 27 mamy: 27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1;

Podstawy analizy algorytmw

Liczba
Liczba jest niewymierna i przestpna. Aktualnie znamy z dokadnoci do 10 bilionw cyfr dziesitnych. Przypumy, e interesuje nas pojawienie si 100 kolejnych zer w rozwiniciu dziesitnym tej liczby. W 10 bilionach cyfr takiego cigu nie ma. Ale to nie znaczy, e nie ma go w ogle. Obecnie nie znamy adnej procedury sucej temu celowi z wyjtkiem generowania coraz duszego rozwinicia oraz zliczania zer. A nawet, gdyby okazao si, e taki cig istnieje, to moglibymy zamieni nasz problem na 1000 kolejnych dziewitek, na przykad. Na marginesie, na pozycji 762 jest podwjny szatan, czyli 6 dziewitek. Miejsce to jest nazywane punktem Feynmana.

Podstawy analizy algorytmw

Rozwinicie liczby

Podstawy analizy algorytmw

3. Problemy wykadnicze - problemy te nie maj algorytmw dziaajcych w czasie ograniczonym przez wielomian zmiennej rozmiaru problemu. Przykadem takiego problemu jest zadanie wygenerowania wszystkich ustawie cigu n elementw. Innym przykadem tego typu jest synny problem wie w Hanoi, ktrego zoono siga 2n 1.

Podstawy analizy algorytmw

Zadanie polega na przeniesieniu n krkw z pierwszej paeczki na trzeci przy ograniczeniu, e w jednym kroku przenosimy tylko jeden krek i nie wolno ka krka o wikszej rednicy na krek o mniejszej rednicy. Druga paeczka spenia rol pomocnicz.

Podstawy analizy algorytmw

Rozwizanie amigwki dla czterech krkw

Podstawy analizy algorytmw

4. Problemy przypuszczalnie wykadnicze - dla problemw tych nie udao si dotychczas poda algorytmu wielomianowego, ale brak te dowodu, e taki algorytm nie istnieje. Przykadem takiego problemu jest faktoryzacja, czyli znalezienie rozkadu danej liczby na czynniki pierwsze. Najwiksz znan (co nie oznacza, e kolejn) liczb pierwsz jest 48. liczba typu Mersennea, mianowicie: 257885161 1

Podstawy analizy algorytmw

Liczba Cyfry Rok Odkrywca Metoda 217 1 6 1588 CATALDI Trial division 219 1 6 1588 CATALDI Trial division 231 1 10 1772 EULER Trial division++ (259 1)/179951 13 1867 LANDRY Trial division++ 2127 1 39 1876 LUCAS Lucas sequences (2148 + 1)/17 44 1951 FERRIER Proths theorem Tabela 1.1 Rekordy uzyskiwane przed er komputerow

Podstawy analizy algorytmw

Lp. 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Liczba 2521 1 2607 1 21279 1 22203 1 22281 1 23217 1 24253 1 24423 1 29689 1 29941 1 211213 1 219937 1 221701 1 223209 1 244497 1 286243 1 2110503 1 2132049 1

Rok 1952 1952 1952 1952 1952 1957 1961 1961 1963 1963 1963 1971 1978 1979 1979 1982 1982 1983

Udowadniajcy Robinson (Jan 30) Robinson (Jan 30) Robinson (June 25) Robinson (Oct 7) Robinson (Oct 9) Riesel Hurwitz Hurwitz Gillies Gillies Gillies Tuckerman Noll & Nickel Noll Nelson & Slowinski Slowinski Colquitt & Welsh Slowinski

Tabela 1.2.1 Rekordy uzyskiwane dziki komputerom

Podstawy analizy algorytmw Lp. 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Liczba 2216091 1 2756839 1 2859433 1 21257787 1 21398269 1 22976221 1 23021377 1 26972593 1 213466917 1 220996011 1 224036583 1 225964951 1 230402457 1 232582657 1 237156667 1 242643801 1 243112609 1 257885161 1 Rok 1985 1992 1994 1996 1996 1997 1998 1999 2001 2003 2004 2005 2005 2006 2008 2009 2008 2013 Odkrywca Slowinski Slowinski & Gage et al. (notes) Slowinski & Gage Slowinski & Gage Armengaud, Woltman, et al. [GIMPS] Spence, Woltman, et al. [GIMPS] Clarkson, Woltman, Kurowski, et al. [GIMPS, PrimeNet] Hajratwala, Woltman, Kurowski, et al. [GIMPS, PrimeNet] Cameron, Woltman, Kurowski, et al. [GIMPS, PrimeNet] Shafer, Woltman, Kurowski, et al. [GIMPS, PrimeNet] Findley, Woltman, Kurowski, et al. [GIMPS, PrimeNet] Nowak, Woltman, Kurowski, et al. [GIMPS, PrimeNet] Cooper, Boone, Woltman, Kurowski, et al. [GIMPS, PrimeNet] Cooper, Boone, Woltman, Kurowski, et al. [GIMPS, PrimeNet] E_Smith, Woltman, Kurowski, et al. [GIMPS, PrimeNet] E_Smith, Woltman, Kurowski, et al. [GIMPS, PrimeNet] E_Smith, Woltman, Kurowski, et al. [GIMPS, PrimeNet] Cooper, Boone, Woltman, Kurowski, et al. [GIMPS, PrimeNet]

Tabela 1.2.2 Rekordy uzyskiwane dziki komputerom

Podstawy analizy algorytmw

Innym przykadem problemu przypuszczalnie wykadniczego jest znany problem komiwojaera. W problemie tym dane jest n miast i odlego midzy kad ich par. Zadanie polega na znalezieniu najkrtszej trasy zamknitej przechodzcej jednokrotnie przez kade z miast.

Podstawy analizy algorytmw

W roku 1998 uczeni z Rice University (USA) opracowali program, ktry znalaz optymaln tras dla wszystkich 13 509 miast amerykaskich o liczbie mieszkacw powyej p tysica. Obliczenia na sieci komputerw duej mocy trway okoo 3 miesice. Obecnie najwiksz optymalnie rozwizan instancj jest przypadek 25 000 miast i wsi w Szwecji.

Podstawy analizy algorytmw

Rozwizanie problemu komiwojaera dla 16 polskich miast wojewdzkich - 2155 km.

Podstawy analizy algorytmw

Zagraj o milion dolarw


Clay Mathematics Institute, fundacja edukacyjna w Cambridge w stanie Massachusetts, oferuje nagrody w wysokoci miliona dolarw za rozwizanie siedmiu cieszcych si z saw nie rozwizanych dotd problemw. Jednym z nich jest gone zagadnienie P=NP? Mimo, e jest to zadanie piekielnie trudne, sprytny amator moe je rozwiza za pomoc znanej amigwki.

Podstawy analizy algorytmw

5. Problemy wielomianowe - problemy te maj algorytmy rozwizujce je w czasie ograniczonym wielomianem zmiennej rozmiaru problemu. Najlepszym przykadem takiego problemu jest zagadnienie sortowania. Cig n liczb mona uporzdkowa rosnco, na przykad metod przestawiania ssiednich par. Wwczas maksymalna liczba porwna nie przekracza n2/2. Ale istniej jeszcze lepsze, bardziej wydajne algorytmy sortowania. Wbrew pozorom nie naley do nich metoda Quicksort, ktra w najgorszym przypadku wymaga rwnie czasu kwadratowego, cho w przypadku rednim jej liczba operacji jest proporcjonalna do nlogn.

Podstawy analizy algorytmw

Sortowanie Bbelkowe Przez scalanie Przez kopiec Dystrybucyjne : Quicksort

Czas redni O(n) O(nlogn) O(nlogn) O(n)* : O(nlogn)

Czas pesymistyczny O(n) O(nlogn) O(nlogn) O(nlogn) : O(n)

Pami O(1) O(n) O(1) O(n) : O(logn)

Tabela 1.3 * Przy pewnych dodatkowych zaoeniach

Podstawy analizy algorytmw

Notices
of the American Mathematical Society

Podstawy analizy algorytmw

Sortowanie

Podstawy analizy algorytmw

Sortowanie przez kopiec

Podstawy analizy algorytmw

Sortowanie szybkie

Podstawy analizy algorytmw

Odkodowana wiadomo znaleziona w liczbie


Liczba z dokadnoci 50 miejsc po przecinku: 3,14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 jest obecnie znana do 10 bilionw, jednak istnieje przypuszczenie, e znacznie wicej liczb pozostaje do obliczenia. Jedna z hipotez mwi, e liczby te zawieraj zakodowan wiadomo.

Podstawy analizy algorytmw

Jeli rednica koa = 1, jego obwd wynosi

KONIEC

You might also like