Znajdowanie_najkrots..

Transkrypt

Znajdowanie_najkrots..
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
[email protected]
informatyka +
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
informatyka +
3
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)
informatyka +
4
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
informatyka +
5
Grafy – przykłady występowania – wielościany
Leonhard Euler (1707-1783)
– Ojciec Teorii Grafów:
 Podał zależność między
liczbą wierzchołków.
krawędzi i ścian w
Sześcian
wielościanach
Spłaszczony sześcian
Wierzchołki
Krawędzie
Ściany
Wzór Eulera:
Liczba wierzchołków + liczba ścian = 2 + liczba krawędzi
n+f=2+m
dla sześcianu: 8 + 6 = 2 + 12
informatyka +
6
Grafy – przykłady występowania – grafy Eulera, 1
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
informatyka +
7
Grafy – przykłady występowania – grafy Eulera, 2
Leonhard Euler (1707-1783)
– Ojciec Teorii Grafów:
 1736: Problem mostów
Królewieckich
 Figury unikursalne,
jednobieżne
informatyka +
8
Kolorowanie map
Problem czterech kolorów (1852):
Czy każdą mapę można
pomalować 4 kolorami?
Mapa województw
Graf województw
Pomalowany graf
1976: K. Appel. W. Haken i J. Koch (programista)
Pierwszy dowód – z wykorzystaniem komputera
informatyka +
9
Drzewa w informatyce
Drzewa – grafy spójne bez cykli
Drzewo
algorytmu
Drzewa obliczeń
Zastosowanie: ONP
Odwrotna Notacja Polska
Jan Łukasiewicz (1920)
(6 + 3)*(5 – 3*4)
informatyka +
(x2+ y2)/(a – b)
10
Drzewa w algorytmice – wyłanianie zwycięzcy
Porównania – mecze
Ośmiu zawodników: 7 meczy
n zawodników: n – 1 meczy
Tomek
Tomek
Bartek
Bartek
Bartek
Romek
Witek
Bolek
Witek
Tomek
Tomek
Zenek
informatyka +
Tolek
Tolek
Felek
11
A jak znaleźć drugiego najlepszego zawodnika w
turnieju?
Tomek
Ale Bartek nie grał
z drugą połową!
Czy jest nim Bartek?
Bo przegrał z Tomkiem?
Tomek
???
Bartek
Bartek
Bartek
Romek
Witek
Bolek
Witek
???
Tomek
Tomek
Zenek
informatyka +
Tylko dwa
dodatkowe mecze!
Tolek
Tolek
Felek
12
Sieci dróg samochodowych, kolejowych, lotniczych …
informatyka +
13
Grafy Hamiltona
William R. Hamilton (1805-1865):
 1859: cykl Hamiltona – przechodzi
przez każdy wierzchołek dokładnie raz
Dwunastościan foremny
Siatka (graf)
dwunastościanu
informatyka +
Cykl Hamiltona
14
Zastosowanie – najkrótsza trasa premiera, 1
Problem: Znajdź najkrótszą trasę dla Premiera przez wszystkie
miasta wojewódzkie.
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)
informatyka +
15
Zastosowanie – najkrótsza trasa premiera, 2
Wartości funkcji n!
Rosną BARDZO SZYBKO
Prezydent Stanów
Zjednoczonych ma problem
ze znalezieniem najkrótszej
trasy objazdu Stanów.
Na superkomputerze o mocy 1 PFlops – ile trwa obliczanie n!
15! = 1307674368000/1015 sek. = ok. 0.01 sek.
48! = 1,2413915592536072670862289047373*1061/1015 = 3*1038 lat
25! = 15511210043330985984000000/1015 sek. = 15511210043 sek. =
= 179528 dni = 491 lat
informatyka +
16
Zastosowanie – najkrótsza trasa premiera, 3
Trudno sprawdzić, jak
dobre jest to rozwiązanie w
stosunku do najlepszego,
bo go nie znamy.
Zły wybór
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
informatyka +
17
Krótkie kody – kompresja
Kody:
a:
b:
d:
k:
r:
ASCII
01100001
01100010
01101100
01101011
01110010
Huffman
0
1110
110
1111
10
abrakadabra
01110100111101100111010
88 znaków
24 znaki
18
Krótkie kody – kompresja
Drzewo Huffmana
Litery i ich częstości
Kody
Krótsze dla często występujących liter
Algorytm Huffmana:
Powtarzaj, aż zostanie jedna liczba:
 Wybierz dwie najmniejsze częstości i dodaj ich sumę do ciągu
M.M. Sysło
19
Reprezentacje grafów w komputerze
M.M. Sysło
20
Najkrótsze drogi
M.M. Sysło
21
Najkrótsze drzewa
M.M. Sysło
22
Konkluzja
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
informatyka +
24
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
informatyka +
25

Podobne dokumenty