ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW WSTĘP DO OBLICZEŃ NA...

26

description

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]. Algorytm, algorytmika. - PowerPoint PPT Presentation

Transcript of ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW WSTĘP DO OBLICZEŃ NA...

Page 1: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH
Page 2: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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 +

Page 3: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 4: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 5: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 6: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 7: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 8: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 9: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 10: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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)

Page 11: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 12: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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!

Page 13: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

Sieci dróg samochodowych, kolejowych, lotniczych …

informatyka + 13

Page 14: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 15: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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)

Page 16: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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.

Page 17: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 18: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 19: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 20: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

M.M. Sysło20

Reprezentacje grafów w komputerze

Page 21: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

M.M. Sysło21

Najkrótsze drogi

Page 22: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

M.M. Sysło22

Najkrótsze drzewa

Page 23: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

Najlepszym sposobem przyspieszania komputerów jest obarczanie ich mniejszą liczbą działań

(szybszymi algorytmami)[Ralf Gomory, IBM]

23

Konkluzja

Page 24: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 25: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH

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

Page 26: ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW  WSTĘP DO OBLICZEŃ NA GRAFACH