Informatyka w szkole - algorytm Dijkstry dla każdego. Krzysztof Diks Instytut Informatyki, Uniwersytet Warszawski

Podobne dokumenty
Krzysztof Diks Instytut Informatyki Uniwersytet Warszawski

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Ogólne wiadomości o grafach

Matematyczne Podstawy Informatyki

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Matematyczne Podstawy Informatyki

Digraf. 13 maja 2017

Algorytm wyznaczania najkrótszej ścieżki w grafie skierowanym w zbiorze liczb rozmytych

a) 7 b) 19 c) 21 d) 34

Programowanie sieciowe. Tadeusz Trzaskalik

TEORETYCZNE PODSTAWY INFORMATYKI

Grafy w MATLABie. LABORKA Piotr Ciskowski

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Złożoność obliczeniowa klasycznych problemów grafowych

Graf. Definicja marca / 1

Sprawozdanie do zadania numer 2

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Algorytmy wyznaczania centralności w sieci Szymon Szylko

ZASTOSOWANIE GRAFU WIDOCZNOŚCI W PLANOWANIU TRASY PRZEJŚCIA STATKU APPLICATION OF A VISIBILITY GRAPH IN SHIP S PATH PLANNING

Programowanie obiektowe

PROBLEMY WYZNACZANIA OPTYMALNEJ TRAJEKTORII OBIEKTU NA OBSZARZE OGRANICZONYM

Przykład planowania sieci publicznego transportu zbiorowego

Spis treści. Przykład. Przykład 1 Przykład 2. Twórcy Informacje wstępne Pseudokod Przykład. 1 Grafy skierowane z wagami - przypomnienie

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Wstęp do programowania

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

TEORIA GRAFÓW I SIECI

Znajdowanie wyjścia z labiryntu

Programowanie obiektowe

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

1 Automaty niedeterministyczne

Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition)

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

PROJEKT Z TEORETYCZNYCH PODSTAW INFORMATYKI

Zastosowanie teorii grafów w Geograficznych Systemach Informacyjnych

Komputery, obliczenia, algorytmy Tianhe-2 (MilkyWay-2), system Kylin Linux, Tflops, kw

Minimalne drzewa rozpinające

Egzamin maturalny z języka angielskiego na poziomie dwujęzycznym Rozmowa wstępna (wyłącznie dla egzaminującego)

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Rozwiązywanie problemów metodą przeszukiwania

Wstęp do programowania

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Algorytm chińskiego listonosza Katarzyna Ignaszewska SPI51. Temat: Problem chińskiego listonosza, czyli jak obejść miasto najmniejszym nakładem sił.

Matematyczne Podstawy Informatyki

Wyznaczanie optymalnej trasy problem komiwojażera

Wybrane podstawowe rodzaje algorytmów

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytmy i Struktury Danych.

Opracowanie prof. J. Domsta 1

PRACA DYPLOMOWA MAGISTERSKA

Wstęp do programowania

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku

Ankiety Nowe funkcje! Pomoc Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to students

Electromagnetism Q =) E I =) B E B. ! Q! I B t =) E E t =) B. 05/06/2018 Physics 0

WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Algorytmiczna teoria grafów

ERASMUS + : Trail of extinct and active volcanoes, earthquakes through Europe. SURVEY TO STUDENTS.

Michał Kozielski Łukasz Warchał. Instytut Informatyki, Politechnika Śląska

Suma dwóch grafów. Zespolenie dwóch grafów

SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like

Wstęp do Programowania potok funkcyjny

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

DODATKOWE ĆWICZENIA EGZAMINACYJNE

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Informatyka II. Laboratorium.

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

Informatyka w logistyce przedsiębiorstw wykład 5

Routing. mgr inż. Krzysztof Szałajko

Teoretyczne podstawy informatyki

Jak działa grawitacja?

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

IMPLEMENTACJA I PORÓWNANIE WYDAJNOŚCI WYBRANYCH ALGORYTMÓW GRAFOWYCH W WARUNKACH OBLICZEŃ RÓWNOLEGŁYCH

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Machine Learning for Data Science (CS4786) Lecture 11. Spectral Embedding + Clustering

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Teoretyczne podstawy informatyki

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Grafy dla każdego. dr Krzysztof Bryś. Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska.

Problem skoczka szachowego i inne cykle Hamiltona na szachownicy n x n

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Metoda podziału i ograniczeń

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Transkrypt:

Informatyka w szkole - algorytm Dijkstry dla każdego Krzysztof Diks Instytut Informatyki, Uniwersytet Warszawski

Problem 1: Labirynt Źródło: www.dla-dzieci.ugu.pl

Problem : Wilk, owca i kapusta Źródło: https://play.google.com/store/apps/details?id=air.com.webgames.wolfsheepandcabbage 3

Problem 3: Przelewanie miodu Dwa niedźwiadki znalazły składzik z miodem. Był w nim 8-litrowy słój pełen miodu i dwa słoje puste, 5-litrowy i 3-litrowy. W jaki sposób korzystając tylko z tych słoi podzielić równo miód? Źródło rysunku: http://slon8.w.interia.pl/

Problem : najkrótsza trasa z Rotterdamu do Groningen Źródło: mapy Google 5

Co łączy labirynt, zagadki z przeprawą przez rzekę i przelewaniem miodu oraz podróż w Holandii? GRAF: węzeł/wierzchołek krawędź droga/ścieżka 6

Labirynt A A E E F B F C C D B D 7

Wilk, owca i kapusta W,O,K W,O K W,K O K,O W OIW,K W,K O W K,O K W,O OIW,K W,O,K 8

Wilk, owca i kapusta W,O,K W,O K W,K O K,O W OIW,K W,K O W K,O K W,O OIW,K W,O,K 9

Miodek Pytanie: czy istnieje ścieżka z (0,0,8) do (0,,)? 3L,5L,8L?... 0,5,3 3,0,5 0,0,8 10

Wycieczka 6 km 5 km 11

Problem obliczania najkrótszej drogi pomiędzy dwoma miastami Q P 3 1 0 8 S L 1 8 C 18 G 0 15 1 F 11 K 17 A O N 1 3 J B 7 13 10 1 8 E D 10 30 0 I H 11 M Zadanie: znajdź najkrótszą drogę z punktu P do punktu Q. Wyznaczyć najkrótsze drogi z punktu P do wszystkich pozostałych punktów. 1

Problem obliczania najkrótszej drogi pomiędzy dwoma miastami Q: P:0 B:5 8 C: 1 0 7 18 D:7 S:0 F:7 E:1 10 13 G:1 15 3 0 10 11 J: 16 30 1 K:0 I:13 H:9 8 L:0 0 1 3 1 11 1 17 A:1 O:19 N:1 8 M:11 13

Edsger Wybe Dijkstra 1930-00 1

Fragment wywiadu: For a demonstration for noncomputing people you have to have a problem statement that non-mathematicians can understand; they even have to understand the answer. So I designed a program that would find the shortest route between two cities in the Netherlands, using a somewhat reduced roadmap of the Netherlands, on which I had selected 6 cities (so that in the coding six bits would suffice to identify a city). What s the shortest way to travel from Rotterdam to Groningen? It is the algorithm for the shortest path, which I designed in about 0 minutes. 15

Google scholar: 16

Algorytm Dijkstry według Dijkstry Q P: 0 B:5 8 C: 1 0 7 18 D:7 S:0 F:7 E:1 10 13 3 G: 15 0 J 10 11 30 1 I:7 H:9 8 L K: 8 0 1 3 1 11 1 17 A O N 8 M I. najkrótsze ścieżki dla A A = {P, B. C, D} B = {S, G, K, E, I, H} C = {Q, A, L, O, J, N, M} II. najkrótsze ściezki dla B III. pozostałe krawędzie 17

Algorytm Dijkstry według Dijkstry (wolne tłumaczenie KD) Na początek wszystkie wierzchołki umieszczamy w zbiorze C, a wszystkie krawędzie w zbiorze III. Następnie przenosimy wierzchołek P do zbioru A i powtarzamy, co następuje Krok 1. Rozważ każdą krawędź r łączącą wierzchołek właśnie przeniesiony do zbioru A, z pewnym wierzchołkiem R ze zbioru B lub C. Jeżeli wierzchołek R należy do zbioru B, zbadaj, czy użycie krawędzi r daje krótszą ścieżkę z P do R od tej wyznaczonej już wcześniej i wykorzystującej stosowną krawędź ze zbioru II. Jeżeli tak nie jest, krawędź r zostaje odrzucona; jeżeli jednakże krawędź r daje krótszą ścieżkę z P do R od tej dotychczas obliczonej, to zastąp stosowną krawędź ze zbioru II krawędzią r, a tą pierwszą uznaj za odrzuconą. Jeżeli wierzchołek R należy do zbioru C, to przenieś go do zbioru B, a krawędź r do zbioru II. Krok. Jeżeli się ograniczymy tylko do krawędzi ze zbioru I i jednej krawędzi ze zbioru II, to każdy wierzchołek ze zbioru B może być połączony z wierzchołkiem P tylko na jeden sposób. W tym ujęciu każdy wierzchołek w zbiorze B ma jednoznacznie wyznaczoną odległość do P: węzeł z najmniejszą odległością od P zostaje przeniesiony ze zbioru B do zbioru A, a stosowna krawędź ze zbioru II do zbioru I. Następnie wracamy do kroku 1 i powtarzamy cały proces do momentu, aż wierzchołek Q znajdzie się w zbiorze A. Wówczas rozwiązanie zostaje znalezione. 18

Algorytm Dijkstry implementacja W jaki sposób implementować graf? - macierz sąsiedztwa - listy sąsiedztwa Reprezentacja zbiorów A, B, C oraz I, II i III. - reprezentacja zbioru B element zbioru: (wierzchołek, odległość, stosowna krawędź ze zbioru II) operacje: inicjacja zbioru pustego, Insert, Min, DeleteMin, DecreaseKey 19

Algorytm Dijkstry implementacja W jaki sposób implementować graf? - macierz sąsiedztwa - listy sąsiedztwa Reprezentacja zbiorów A, B, C oraz I, II i III. - reprezentacja zbioru B element zbioru: (wierzchołek, odległość, stosowna krawędź ze zbioru II) operacje: inicjacja zbioru pustego, Insert, Min, DeleteMin, DecreaseKey kolejka priorytetowa Koszt zamortyzowany 0

Dziękuję! 1