ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW WSTĘP DO OBLICZEŃ NA...
description
Transcript of ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW WSTĘP DO OBLICZEŃ NA...
ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW
WSTĘP DO OBLICZEŃ NA GRAFACH
Maciej M. SysłoUniwersytet Wrocławski
Uniwersytet UMK w [email protected]
2informatyka +
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
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
n + f = 2 + m dla sześcianu: 8 + 6 = 2 + 12
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
Mapa województw Graf województw Pomalowany graf
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: ONPOdwrotna Notacja Polska Jan Łukasiewicz (1920)
Drzewa w algorytmice – wyłanianie zwycięzcy
informatyka + 11
Bartek Romek Bolek Witek Tomek
Zenek Tolek Felek
Bartek Witek Tomek
Tolek
Bartek Tomek
Tomek
Porównania – mecze Ośmiu zawodników: 7 meczyn zawodników: n – 1 meczy
A jak znaleźć drugiego najlepszego zawodnika w turnieju?
informatyka + 12
Bartek Romek Bolek Witek Tomek
Zenek Tolek Felek
Bartek Witek Tomek
Tolek
Bartek Tomek
TomekCzy jest nim Bartek?
Bo przegrał z Tomkiem?
Ale Bartek nie grał z drugą połową!
???
???Tylko dwa dodatkowe mecze!
Sieci dróg samochodowych, kolejowych, lotniczych …
informatyka + 13
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) dwunastościanu
Cykl Hamiltona
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/1015 sek. = ok. 0.01 sek.48! = 1,2413915592536072670862289047373*1061/1015 = 3*1038 lat25! = 15511210043330985984000000/1015 sek. = 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łe2.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.
Zły wybór
01110100111101100111010
Kody: ASCII a:
01100001 b:
01100010 d:
01101100 k:
01101011 r:
01110010
Huffman 0
1110 110 1111 10
88 znaków 24 znaki
18
Krótkie kody – kompresja
abrakadabra
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ło19
Krótkie kody – kompresja
Kody
Krótsze dla często występujących liter
Drzewo Huffmana
M.M. Sysło20
Reprezentacje grafów w komputerze
M.M. Sysło21
Najkrótsze drogi
M.M. Sysło22
Najkrótsze drzewa
Najlepszym sposobem przyspieszania komputerów jest obarczanie ich mniejszą liczbą działań
(szybszymi algorytmami)[Ralf Gomory, IBM]
23
Konkluzja
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 algorytmyTendencje – 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