Metody algorytmiczne Metoda poszukiwania i wędrówki
Transkrypt
Metody algorytmiczne Metoda poszukiwania i wędrówki
Technologia Informacyjna Wykład 5 Strona 1 z 24 Metody algorytmiczne Metoda poszukiwania i wędrówki Należy „obejść” wszystkie elementy pewnej struktury danych: wektora, macierzy, drzewa. - algorytm sumowania zarobków, należało sprawdzić listę wszystkich pracowników; - algorytm sortowania drzewiastego, należało obejść binarne drzewo poszukiwań. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 1 Technologia Informacyjna Wykład 5 Strona 2 z 24 Metoda poszukiwania i wędrówki Znajdowanie najdłuższej przekątnej wielokąta algorytm naiwny 5 4 6 3 2 1 Wiersz /Kolumna 1 2 3 4 5 6 1 - 1-2 1-3 1-4 1-5 1-6 2 2-1 - 2-3 2-4 2-5 2-6 3 3-1 3-2 - 3-4 3-5 3-6 4 4-1 4-2 4-3 - 4-5 4-6 5 5-1 5-2 5-3 5-4 - 5-6 6 6-1 6-2 6-3 6-4 6-5 - Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 2 Technologia Informacyjna Wykład 5 Strona 3 z 24 Metoda poszukiwania i wędrówki Znajdowanie najdłuższej przekątnej wielokąta 5 4 6 3 2 1 Porównujemy przekątne 5-2 i 5-1 Pierwsze przybliżenie: L := 5-2 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 3 Technologia Informacyjna Wykład 5 Strona 4 z 24 Metoda poszukiwania i wędrówki Znajdowanie najdłuższej przekątnej wielokąta Dokonujemy pierwszego obrotu prostymi równoległymi w kierunku zgodnym z ruchem wskazówek zegara 5 4 6 3 2 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 1 4 Technologia Informacyjna Wykład 5 Strona 5 z 24 Metoda poszukiwania i wędrówki Znajdowanie najdłuższej przekątnej wielokąta Porównujemy wskazaną przekątną 5-3 z dotychczasowym przybliżeniem rozwiązania zadania L = 5-2 5 4 6 3 2 1 Jeśli wskazana przekątna jest dłuższa od dotychczasowego rozwiązania przyjmujemy je za nowe przybliżenie. Przyjmujemy L := 5-3 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 5 Technologia Informacyjna Wykład 5 Strona 6 z 24 Metoda poszukiwania i wędrówki Znajdowanie najdłuższej przekątnej wielokąta 5 4 6 3 A 2 4 3 4 3 2 3 1 C 3 1 D 4 6 1 6 2 5 E 1 5 4 6 6 B 2 5 2 5 4 3 2 1 5 F 6 1 Pełne obejście wielokąta w kierunku zgodnym z ruchem wskazówek zegara Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 6 Technologia Informacyjna Wykład 5 Strona 7 z 24 Metoda dzielenia Rozwiązywane zadanie dzielimy na kilka mniejszych zadań tego samego rodzaju. Uzyskane rozwiązania częściowe łączymy w jedną całość. 1. Algorytm „Wieże Hanoi”; 2. Algorytm sortowania drzewiastego; 3. Znajdowanie minimum i maksimum na nie posortowanej liście; 4. Sortowanie przez scalanie. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 7 Technologia Informacyjna Wykład 5 Strona 8 z 24 Metoda dzielenia Znajdowanie minimum i maksimum na nieposortowanej liście – interpretacja graficzna 15 5 64 8 2 Min:=2 Max:=64 15 5 64 8 2 Min:=5 Max:=64 Min:=2 Max:=8 15 5 64 Min:=5 Max:=15 Min:=64 Max:=64 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 8 Technologia Informacyjna Wykład 5 Strona 9 z 24 Metoda dzielenia Znajdowanie minimum i maksimum na nieposortowanej liście – algorytm rekurencyjny procedura znajdź-min-i-maks-w L: 1. jeśli lista L składa się z jednego elementu, to nadaj MIN i MAX właśnie jego wartość; jeśli L składa się z dwóch elementów, to nadaj MIN wartość mniejszego z nich, a MAX - większego; 2. w przeciwnym razie wykonaj, co następuje: 2.1. podziel listę L na dwie części, L1 oraz L2; w przypadku gdy lista L zawiera parzystą liczbę elementów, obie części są równo liczne, w przeciwnym razie lista L1 zawiera o jeden element więcej aniżeli lista L2; 2.2. wywołaj znajdź-min-i-maks-w L1, umieszczając otrzymane w wyniku wartości w MIN1, MAX1; 2.3. wywołaj znajdź-min-i-maks-w L2, umieszczając otrzymane w wyniku wartości w MIN2, MAX2; 2.4. nadaj MIN mniejszą wartość z MIN1 oraz MIN2; 2.5. nadaj MAX większą wartość z MAX1 oraz MAX2; 3. wróć z wartościami MIN i MAX. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 9 Technologia Informacyjna Wykład 5 Strona 10 z 24 Metoda dzielenia Algorytm sortowania przez scalanie – sposób postępowania 15 5 64 8 12 11 4 35 86 2 15 5 64 8 12 15 5 64 15 5 64 5 15 64 5 15 64 Podział 8 12 8 12 8 12 5 8 12 15 64 11 4 35 86 2 11 4 35 11 4 35 4 11 35 86 2 2 86 4 11 35 Scalanie 2 86 2 4 11 35 86 2 4 5 8 11 12 15 35 64 86 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 10 Technologia Informacyjna Wykład 5 Strona 11 z 24 Metoda zachłanna Poszukujemy rozwiązania, które w każdym momencie jest najlepsze z wszystkich możliwych (uzyskiwane rozwiązania są optymalne lokalnie). Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 11 Technologia Informacyjna Wykład 5 Strona 12 z 24 Metoda zachłanna Problem oszczędnego budowniczego linii kolejowych – problem znajdowania minimalnego drzewa rozpinającego Mamy sieć miast, które należy połączyć liniami kolejowymi. - Wszystkie miasta należy połączyć linią kolejową; - Sumaryczna długość wszystkich połączeń kolejowych powinna być jak najmniejsza; - Nie każde miasto musi mieć bezpośrednie połączenie z innymi miastami; - Odległości podano jedynie dla par miast możliwych do bezpośredniego połączenia; - Wszystkie skrzyżowania i rozjazdy realizować można jedynie w węzłach – miastach. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 12 Technologia Informacyjna Wykład 5 Strona 13 z 24 Metoda zachłanna Problem oszczędnego budowniczego linii kolejowych – sieć miast (graf etykietowany) 26 3 17 13 12 10 14 7 15 9 8 4 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 6 16 11 13 Technologia Informacyjna Wykład 5 Strona 14 z 24 Metoda zachłanna Problem oszczędnego budowniczego linii kolejowych – wybór pierwszego odcinka linii kolejowej 26 3 17 13 12 10 14 7 15 9 8 4 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 6 16 11 14 Technologia Informacyjna Wykład 5 Strona 15 z 24 Metoda zachłanna Problem oszczędnego budowniczego linii kolejowych – wybór drugiego odcinka linii kolejowej 26 3 17 13 12 10 14 7 15 9 8 4 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 6 16 11 15 Technologia Informacyjna Wykład 5 Strona 16 z 24 Metoda zachłanna Problem oszczędnego budowniczego linii kolejowych – wybór trzeciego, czwartego i piątego odcinka linii kolejowej 26 3 17 13 12 10 14 7 15 9 8 4 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 6 16 11 16 Technologia Informacyjna Wykład 5 Strona 17 z 24 Metoda zachłanna Problem oszczędnego budowniczego linii kolejowych – wybór szóstego odcinka linii kolejowej 26 3 17 13 12 10 14 7 15 9 8 4 Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 6 16 11 17 Technologia Informacyjna Wykład 5 Strona 18 z 24 Metoda zachłanna Problem oszczędnego budowniczego linii kolejowych – minimalna sieć (drzewo) rozpinająca; całkowity koszt: 63 26 3 17 13 12 10 14 7 15 9 8 4 6 16 11 - Jest to drzewo, na którym rozpięty jest graf; - Jest to najtańsze z drzew (suma etykiet znajdujących się przy krawędziach jest najmniejsza); - Nie zawiera cykli. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 18 Technologia Informacyjna Wykład 5 Strona 19 z 24 Algorytmy dynamiczne Znajdujemy rozwiązanie optymalne w sensie globalnym. Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 19 Technologia Informacyjna Wykład 5 Strona 20 z 24 Algorytmy dynamiczne Problem zmęczonego wędrowca – problem znajdowania minimalnej ścieżki Mamy układ miast połączonych siecią dróg - Należy znaleźć najkrótsze połączenie z punktu A do B; - Linie w grafie są skierowane (graf skierowany); - Z dowolnego miasta można dostać się do dowolnego innego miasta (graf jest spójny); - Nie można wędrować w kółko, brak cykli (graf acykliczny). Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 20 Technologia Informacyjna Wykład 5 Strona 21 z 24 Algorytmy dynamiczne Problem zmęczonego wędrowca – sieć miast C 5 2 3 A F 11 3 E 7 7 5 14 D 6 7 6 B G Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 21 Technologia Informacyjna Wykład 5 Strona 22 z 24 Algorytmy dynamiczne Problem zmęczonego wędrowca – rozwiązanie metodą zachłanną C 5 2 3 A F 11 3 E 7 7 5 14 D 6 7 6 B G Całkowity koszt przejścia z miasta A do miasta B – 15 jednostek Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 22 Technologia Informacyjna Wykład 5 Strona 23 z 24 Algorytmy dynamiczne Problem zmęczonego wędrowca – rozwiązanie metodą dynamiczną C 5 2 3 A F 11 3 E 7 7 5 14 D 6 7 6 B G Całkowity koszt przejścia z miasta A do miasta B – 13 jednostek Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 23 Technologia Informacyjna Wykład 5 Strona 24 z 24 Algorytmy dynamiczne Problem zmęczonego wędrowca – rozwiązanie metodą dynamiczną Wprowadźmy L(X) – oznacza długość najkrótszej ścieżki z miasta X do docelowego miasta B. C 5 2 3 A F 11 3 E 7 7 5 14 D 6 7 6 B G Odległość z A do B zapisać możemy w następujący sposób: L(A) = min(5+L(C), 3+L(D), 14+L(G)) Gdzie: L(C) = min(2+L(F), 3+L(E)) L(D) = min(6+L(G), 7+L(E), 11+L(C)) L(G) = min(6, 7+L(E)) Mariusz B. Bogacki Zakład Inżynierii Procesowej Politechnika Poznańska 24