ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz
NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW
WSTĘP DO OBLICZEŃ NA GRAFACH
Maciej M. Sysło
Uniwersytet Wrocławski Uniwersytet UMK w Toruniu
syslo@ii.uni.wroc.pl
2
Algorytm, algorytmika
Algorytm
– opis rozwiązania krok po kroku postawionego
problemu lub sposobu osiągnięcia jakiegoś celu
Pierwszy algorytm –
algorytm Euklidesa
300 p.n.e
algorytm
od
Muhammad
ibn Musa al-Chorezmi
IX w.
Algorytmika
– dziedzina zajmująca się algorytmami i ich
własnościami
Algorytmy a informatyka
Informatyka –
jedna z definicji:
dziedzina wiedzy i działalności
zajmująca się algorytmami
Donald E. Knuth:
Mówi się często, że człowiek dotąd nie zrozumie czegoś,
zanim nie nauczy tego – kogoś innego.
W rzeczywistości,
człowiek nie zrozumie czegoś (algorytmu) naprawdę,
zanim nie zdoła nauczyć tego – komputera.
Ralf Gomory (IBM):
Najlepszym sposobem przyspieszania komputerów
jest obarczanie ich mniejszą liczbą działań (szybszymi algorytmami)
Grafy i algorytmy
Plan:
• Przykłady pojawiania się grafów
– siatki wielościanów
– mosty królewieckie – figury jednobieżne – malowanie map
– drzewa w informatyce – sieci dróg
– cykle Hamilton
• Przykłady trudnych problemów
– szukanie trasy objazdu
• Problemy, które mają efektywne algorytmy
– szukanie najniższych drzew – krótkich kodów – komputerowe reprezentacje grafów
– problemy najkrótszych dróg – problem najkrótszego drzewa
Grafy – przykłady występowania – wielościany
informatyka +
6
Leonhard Euler (1707-1783) – Ojciec Teorii Grafów:
Podał zależność między liczbą wierzchołków. krawędzi i ścian w wielościanach Spłaszczony sześcian Ściany Krawędzie Wierzchołki Sześcian Wzór Eulera:
Liczba wierzchołków + liczba ścian = 2 + liczba krawędzi
Grafy – przykłady występowania – grafy Eulera, 1
informatyka +
7
Leonhard Euler (1707-1783) – Ojciec Teorii Grafów:
1736: Problem mostów Królewieckich
Czy istnieje droga, która zawiera każdy most (każdą krawędź) dokładnie raz? Do każdego wierzchołka, z wyjątkiem dwóch, tyle samo razy musimy wyjść, ile razy wchodzimy
Grafy – przykłady występowania – grafy Eulera, 2
informatyka +
8
Leonhard Euler (1707-1783) – Ojciec Teorii Grafów:
1736: Problem mostów Królewieckich
Figury unikursalne, jednobieżne
Kolorowanie map
informatyka +
9
Problem czterech kolorów (1852):
Czy każdą mapę można pomalować 4 kolorami?
1976: K. Appel. W. Haken i J. Koch (programista)
Pierwszy dowód – z wykorzystaniem komputera
Drzewa w informatyce
informatyka +
10
Drzewa – grafy spójne bez cykli
Drzewa obliczeń
Drzewo algorytmu
(6 + 3)*(5 – 3*4) (x2+ y2)/(a – b)
Zastosowanie: ONP
Odwrotna Notacja Polska Jan Łukasiewicz (1920)
Drzewa w algorytmice – wyłanianie zwycięzcy
informatyka +
11
Bartek Romek Bolek Witek Tome k
Zenek Tolek Felek
Bartek Witek Tome
k Tolek
Bartek Tome
k Tome
k
Porównania – mecze Ośmiu zawodników: 7 meczy
A jak znaleźć drugiego najlepszego zawodnika w
turnieju?
informatyka +
12
Bartek Romek Bolek Witek Tome k
Zenek Tolek Felek
Bartek Witek Tome
k Tolek
Bartek Tome
k Tome
k
Czy jest nim Bartek? Bo przegrał z
Tomkiem?
Ale Bartek nie grał z drugą połową!
???
???
Tylko dwa
Sieci dróg samochodowych, kolejowych, lotniczych …
Grafy Hamiltona
informatyka +
14
William R. Hamilton (1805-1865):
1859: cykl Hamiltona – przechodzi przez każdy wierzchołek dokładnie raz
Dwunastościan foremny
Siatka (graf)
Zastosowanie – najkrótsza trasa premiera, 1
Problem: Znajdź najkrótszą trasę dla Premiera przez wszystkie
miasta wojewódzkie.
informatyka +
15
Rozwiązanie: Premier zaczyna w Stolicy a inne miasta może
odwiedzać w dowolnej kolejności. Tych możliwości jest:
15*14*13*12*11*…*2*1 = 15! (
15 silnia
)
W 1990 roku było: 48*47*46*…*2*1 = 48! (
48 silnia
)
Zastosowanie – najkrótsza trasa premiera, 2
informatyka +
16
Na superkomputerze o mocy 1 PFlops – ile trwa obliczanie n!
15! = 1307674368000/10
15sek. = ok.
0.01 sek.
48! = 1,2413915592536072670862289047373*10
61/10
15=
3*10
38lat
25! = 15511210043330985984000000/10
15sek. = 15511210043 sek. =
= 179528 dni =
491 lat
Wartości funkcji n!
Rosną BARDZO SZYBKO
Prezydent Stanów
Zjednoczonych ma problem
ze znalezieniem najkrótszej
trasy objazdu Stanów.
Zastosowanie – najkrótsza trasa premiera, 3
informatyka +
17
Algorytmy przybliżone szukania rozwiązań:
1.Metoda zachłanna – najbliższy sąsiad – mogą być bardzo złe
2.Meta-heurystyki:
•
algorytmy genetyczne – krzyżowanie i mutowanie rozwiązań
•
algorytmy mrówkowe – modelowanie feromonów
Trudno sprawdzić, jak
dobre jest to rozwiązanie w stosunku do najlepszego, bo go nie znamy.
01110100111101100111010
Kody: ASCII
a:
01100001
b:
01100010
d:
01101100
k:
01101011
r:
01110010
Huffman
0
1110
110
1111
10
88 znaków 24 znaki 18Krótkie kody – kompresja
Algorytm Huffmana:
Powtarzaj, aż zostanie jedna liczba:
Wybierz dwie najmniejsze częstości i dodaj ich sumę do ciągu
Litery i ich częstości
M.M. Sysło 19
Krótkie kody – kompresja
Kody
Krótsze dla często występujących liter
M.M. Sysło 20
M.M. Sysło 21
M.M. Sysło 22
Najlepszym sposobem przyspieszania komputerów
jest obarczanie ich mniejszą liczbą działań
(
szybszymi algorytmami
)
[Ralf Gomory, IBM]
23
Pokrewne zajęcia w Projekcie Informatyka +
Wykład+Warsztaty (Wszechnica Poranna):
• Wprowadzenie do algorytmiki i programowania – wyszukiwanie i porządkowanie informacji
• Proste rachunki wykonywane za pomocą komputera.
• Techniki algorytmiczne – przybliżone (heurystyczne) i dokładne.
Wykłady (Wszechnica Popołudniowa):
• Czy wszystko można policzyć na komputerze?
• Porządek wśród informacji kluczem do szybkiego wyszukiwania. • Dlaczego możemy się czuć bezpieczni w sieci, czyli o szyfrowaniu
informacji.
• Znajdowanie najkrótszych dróg, najniższych drzew, najlepszych małżeństw
Pokrewne zajęcia w Projekcie Informatyka +
Kursy (24 godz.) – Wszechnica na Kołach:
• Algorytmy poszukiwania i porządkowania. Elementy języka programowania
• Różnorodne algorytmy obliczeń i ich komputerowe realizacje • Grafy, algorytmy grafowe i ich komputerowe realizacje
Kursy (24 godz.) – Kuźnia Informatycznych Talentów – KIT dla Orłów:
• Przegląd podstawowych algorytmów • Struktury danych i ich wykorzystanie • Zaawansowane algorytmy
Tendencje – Wykłady
• Algorytmy w Internecie, K. Diks
• Czy P = NP, czyli jak wygrać milion dolarów w Sudoku, J. Grytczuk • Między przeszłością a przyszłość informatyki, M.M Sysło