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

Podobne dokumenty