TEORETYCZNE PODSTAWY INFORMATYKI

Podobne dokumenty
TEORETYCZNE PODSTAWY INFORMATYKI

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki

Grafowy model danych

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Teoretyczne podstawy informatyki

TEORETYCZNE PODSTAWY INFORMATYKI

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

Matematyczne Podstawy Informatyki

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

Poprawność semantyczna

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Indukcja matematyczna

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

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

Indukcja matematyczna. Zasada minimum. Zastosowania.

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

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Matematyka Dyskretna 2/2008 rozwiązania. x 2 = 5x 6 (1) s 1 = Aα 1 + Bβ 1. A + B = c 2 A + 3 B = d

Matematyka dyskretna - 7.Drzewa

Digraf. 13 maja 2017

Algorytmiczna teoria grafów

Teoretyczne podstawy informatyki

Graf. Definicja marca / 1

Teoretyczne podstawy informatyki

Wyrażenia regularne.

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 klasycznych problemów grafowych

Indukcja matematyczna, zasada minimum i maksimum. 17 lutego 2017

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Algorytmika Problemów Trudnych

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

Dlaczego nie wystarczają liczby wymierne

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

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Sortowanie - wybrane algorytmy

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

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

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

Zagadnienie najkrótszej drogi w sieci

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Wykład 4: Iteracja, indukcja i rekurencja

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

Wykład 2. Poprawność algorytmów

Lista 4. Kamil Matuszewski 22 marca 2016

zbiorów domkniętych i tak otrzymane zbiory domknięte ustawiamy w ciąg. Oznaczamy

Ogólne wiadomości o grafach

Matematyka dyskretna

Algorytmy wyznaczania centralności w sieci Szymon Szylko

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

Spacery losowe generowanie realizacji procesu losowego

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Wykład 5: Iteracja, indukcja i rekurencja Sortowanie

n=0 Dla zbioru Cantora prawdziwe są wersje lematu 3.6 oraz lematu 3.8 przy założeniu α = :

KURS MATEMATYKA DYSKRETNA

Matematyka Dyskretna Zestaw 2

Matematyczne Podstawy Informatyki

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

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

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

Kolorowanie płaszczyzny, prostych i okręgów

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Matematyka dyskretna

Programowanie liniowe

Rodzinę F złożoną z podzbiorów zbioru X będziemy nazywali ciałem zbiorów, gdy spełnione są dwa następujące warunki.

Teoretyczne podstawy informatyki

Algorytmiczna teoria grafów

VII Olimpiada Matematyczna Gimnazjalistów

Maria Romanowska UDOWODNIJ, ŻE... PRZYKŁADOWE ZADANIA MATURALNE Z MATEMATYKI

Schemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej

Metody wnioskowania. Wnioskowanie w przód (ang. forward chaining) Wnioskowanie w tył (ang. Backward chaining) Od przesłanki do konkluzji Np..

LI Olimpiada Matematyczna Rozwiązania zadań konkursowych zawodów stopnia trzeciego 3 kwietnia 2000 r. (pierwszy dzień zawodów)

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

LVIII Olimpiada Matematyczna

Programowanie sieciowe. Tadeusz Trzaskalik

TEORETYCZNE PODSTAWY INFORMATYKI

Sortowanie topologiczne skierowanych grafów acyklicznych

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Podejście zachłanne, a programowanie dynamiczne

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

LX Olimpiada Matematyczna

Logika Stosowana. Wykład 7 - Zbiory i logiki rozmyte Część 3 Prawdziwościowa logika rozmyta. Marcin Szczuka. Instytut Informatyki UW

ALGORYTMY I STRUKTURY DANYCH

TEORETYCZNE PODSTAWY INFORMATYKI: POWTÓRKA CZ. II

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Elementy teorii grafów Elementy teorii grafów

5. Najkrótsze ścieżki

Wykład 3. Miara zewnętrzna. Definicja 3.1 (miary zewnętrznej) Funkcję µ przyporządkowującą każdemu podzbiorowi

Matematyka dyskretna - 8. Egzaminy próbne. Uwaga! Niektórych z tych zadań nie obejmuje program dla studiów zaocznych - proszę się tym nie niepokoić -

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Algorytmy i Struktury Danych.

7. Teoria drzew - spinanie i przeszukiwanie

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

Transkrypt:

1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień

Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa Algorytm Dikstry Algorytm Floyda

Indukcja 3 Zagadnieniem również związanym z iteracja i rekurencja jest indukcja (ang. induction): technika stosowana w matematyce do dowodzenia, że twierdzenie S(n) jest prawdziwe dla wszystkich nieujemnych liczb całkowitych n lub, uogólniając, dla wszystkich liczb całkowitych od pewnego ograniczenia dolnego.

Indukcja 4 Niech S(n) będzie dowolnym twierdzeniem dotyczącym liczby całkowitej n. W najprostszej formie dowodu indukcyjnego (indukcja częściowa) twierdzenia S(n) dowodzi się dwóch faktów: Przypadku podstawowego: za który często przyjmuje się twierdzenie S(0). Przypadkiem podstawowym może jednak być równie dobrze S(k) dla dowolnej liczby całkowitej k. Dowodzi się wówczas prawdziwości twierdzenia S(n) dla nk. Kroku indukcyjnego: gdzie dowodzi się, że dla wszystkich n 0 (lub wszystkich n k), prawdziwość S(n) implikuje prawdziwość S(n+1).

Indukcja zupełna i częściowa 5 Indukcja częściowa (słaba): wykorzystujemy wyłącznie hipotezę indukcyjna S(n) do wykazania prawdziwości S(n+1). Indukcja zupełna (silna): Możemy wykorzystać każdą z wartości S(i), od podstawy aż do n do wykazania prawdziwości S(n+1).

Indukcja zupełna i częściowa 6 Dla indukcji zupełnej dowodzimy, że twierdzenie S(n), dla wszystkich n 0 jest prawdziwe na podstawie dwóch faktów: Przypadku podstawowego: dowodzi się prawdziwości S(0) ( lub S(k) jeżeli to jest przypadek podstawowy) Kroku indukcyjnego: gdzie dowodzi się, że dla wszystkich n0 (lub wszystkich nk), że prawdziwość twierdzeń S(0), S(1), S(2),, S(n) implikuje prawdziwość S(n+1).

Indukcja zupełna i częściowa 7 Indukcje z większą liczba przypadków podstawowych: Niekiedy przydatne jest wykorzystanie więcej niż jednego przypadku podstawowego: Przypadek podstawowy: dowodzi się poprawności wszystkich przypadków podstawowych, czyli S(i 0 ), S(i 1 ), S(i 2 ),, S(i m ). Krok indukcyjny: gdzie dowodzi się, że dla wszystkich ni m (lub wszystkich n>k), z prawdziwość twierdzeń S(i 0 ), S(i 1 ), S(i 2 ),, S(n) dla ni m, implikuje prawdziwość S(n+1).

Definicje indukcyjne 8 W definicji indukcyjnej definiuje się jedną lub więcej klas reprezentujących ściśle powiązane ze sobą obiekty (lub fakty) na bazie tych samych obiektów. Definicja indukcyjna powinna zawierać: jedną lub więcej reguł podstawowych, z których niektóre definiują pewne obiekty proste, jedną lub więcej reguł indukcyjnych, za pomocą których definiuje się większe obiekty na bazie mniejszych z tego samego zbioru.

Definicje indukcyjne 9 Istnieje ścisłe powiązanie pojęć dowodów indukcyjnych, definicji indukcyjnych oraz programów rekurencyjnych. Każde z tych pojęć opiera się na kroku podstawowym i kroku indukcyjnym. W zwykłych ( częściowych ) indukcjach kolejne kroki zależą wyłącznie od kroków poprzednich. Często zachodzi konieczność przeprowadzania dowodów za pomocą indukcji zupełnej, w której każdy krok może zależeć od wszystkich kroków wcześniejszych. Indukcja ma zasadnicze znaczenie w dowodzeniu poprawności programów lub ich fragmentów.

Drzewa 10 Drzewa są zbiorami punktów, zwanych węzłami lub wierzchołkami, oraz połączeń, zwanych krawędziami. Krawędź łączy dwa różne węzły. n 1 n 2 n 3 n 4 n 5 n 6 n 7 n 1 = rodzic n 2, n 3, n 4 n 2 = rodzic n 5, n 6 n 6 = dziecko n 2

Indukcyjna definicja drzew 11 Podstawa: Pojedynczy węzeł n jest drzewem. Mówimy że n jest korzeniem drzewa złożonego z jednego węzła. Indukcja: Niech r będzie nowym węzłem oraz niech T 1, T 2,, T k będą drzewami zawierającymi odpowiednio korzenie c 1, c 2,, c k. Załóżmy że żaden węzeł nie występuje więcej niż raz w drzewach T 1, T 2,, T k, oraz że r, będący nowym węzłem, nie występuje w żadnym z tych drzew. Nowe drzewo T tworzymy z węzła r i drzew T 1, T 2,, T k w następujący sposób: węzeł r staje się korzeniem drzewa T; dodajemy k krawędzi, po jednej łącząc r z każdym z węzłów c 1, c 2,, c k, otrzymując w ten sposób strukturę w której każdy z tych węzłów jest dzieckiem korzenia r. Inny sposób interpretacji tego kroku to uczynienie z węzła r rodzica każdego z korzeni drzew T 1, T 2,, T k. r T 1 T 2 T k

Algorytm Dikstry 12 Szukamy najkrótszej drogi pomiędzy dwoma wierzchołkami Rozpatrujemy graf G (skierowany lub nieskierowany), w którym wszystkie krawędzie zaetykietowano wartościami reprezentującymi ich długości. Długość (ang. distance) danej drogi stanowi wartość sumy etykiet związanych z nią krawędzi. Minimalna odległość z wierzchołka u do wierzchołka v to minimalna długość którejś z dróg od u do v.

Algorytm Dikstry 13 Traktujemy wierzchołek s jako wierzchołek źródłowy. Na etapie pośrednim wykonywania algorytmu w grafie G istnieją tzw. wierzchołki ustalone (ang. settled), tzn. takie dla których znane są odległości minimalne. W szczególności zbiór takich wierzchołków zawiera również wierzchołek s. Dla nieustalonego wierzchołka v należy zapamiętać długość najkrótszej drogi specjalnej (ang. special path) czyli takiej która rozpoczyna się w wierzchołku źródłowym, wiedzie przez ustalone wierzchołki, i na ostatnim etapie przechodzi z obszaru ustalonego do wierzchołka v. s Graf G v droga specjalna

Algorytm Dikstry 14 Dla każdego wierzchołka u zapamiętujemy wartość dist(u). Jeśli u jest wierzchołkiem ustalonym, to dist(u) jest długością najkrótszej drogi ze źródła do wierzchołka u. Jeśli u nie jest wierzchołkiem ustalonym, to dist(u) jest długością drogi specjalnej ze źródła do u. Na czym polega ustalanie wierzchołków: znajdujemy wierzchołek v który jest nieustalony ale posiada najmniejszą dist(v) ze wszystkich wierzchołków nieustalonych przyjmujemy wartość dist(v) za minimalną odległość z s do v dostosowujemy wartości wszystkich dist(u) dla innych wierzchołków, które nie są ustalone, wykorzystując fakt, że wierzchołek v jest już ustalony. Czyli porównujemy stare dist(u) z wartością dist(v)+etykieta(v, u) jeżeli taka (v, u) krawędź istnieje. Czas wykonania algorytmu jest O(m log n).

15 Indukcyjny dowód poprawności algorytmu Dikstry W celu wykazania poprawności algorytmu Dijkstry należy przyjąć, że etykiety krawędzi są nieujemne. Indukcyjny dowód poprawności względem k prowadzi do stwierdzenia że: 1) dla każdego wierzchołka ustalonego u, wartość dist(u) jest minimalną odległością z s do u, a najkrótsza droga do u składa się tylko z wierzchołków ustalonych. 2) dla każdego nieustalonego wierzchołka u, wartość dist(u) jest minimalną długością drogi specjalnej z s do u (jeśli droga nie istnieje wartość wynosi INF).

Indukcyjny dowód poprawności 16 algorytmu Dikstry Podstawa: Dla k=1 wierzchołek s jest jedynym wierzchołkiem ustalonym. Inicjalizujemy dist(s) wartością 0, co spełnia warunek (1). Dla każdego innego wierzchołka u, dist(u) jest inicjalizowane wartością etykiety krawędzi (s, u), o ile taka istnieje. Jeżeli nie istnieje, wartością inicjalizacji jest INF. Zatem spełniony jest również warunek (2).

Indukcyjny dowód poprawności 17 algorytmu Dikstry Krok indukcyjny: Załóżmy, ze warunki (1) i (2) za spełnione po ustaleniu k wierzchołków oraz niech v będzie (k+1) ustalonym wierzchołkiem. Hipotetyczna krótsza droga do v wiodąca przez w i u. s w Graf G u v

18 Indukcyjny dowód poprawności algorytmu Dikstry Krok indukcyjny: Warunek (1) jest wciąż spełniony ponieważ dist(v) jest najmniejszą długością drogi z s do v. Załóżmy, że tak nie jest. Musiała by więc istnieć hipotetyczna krótsza droga do v wiodąca przez w i u. Jednakże wierzchołek v został obrany jako k+1 ustalony, co oznacza, ze w tym momencie dist(u) nie może być mniejsze od dist(v), gdyż wówczas jako (k+1) wierzchołek wybrany zostałby wierzchołek u. Na podstawie warunku (2) hipotezy indukcyjnej wiadomo, ze dist(u) jest minimalna długością drogi specjalnej wiodącej do u. Jednak droga z s przez w do u jest drogą specjalną, tak więc jej długość równa jest co najmniej dist(u). Stąd domniemana krótsza droga z s do v wiodąca przez w i u ma długość równą co najmniej dist(v), ponieważ pierwsza jej część, - z s do u ma długość dist(u), a dist(u) dist(v). Stąd warunek (1) jest spełniony dla k+1 wierzchołków.

19 Indukcyjny dowód poprawności algorytmu Dikstry Krok indukcyjny: Warunek (1) jest wciąż spełniony ponieważ dist(v) jest najmniejszą długością drogi z s do v. Wierzchołki ustalone s w u Graf G v Dwie możliwości określenia przedostatniego wierzchołka w drodze specjalnej do u.

20 Indukcyjny dowód poprawności algorytmu Dikstry Krok indukcyjny (cd): Teraz należy pokazać, że warunek (2) jest spełniony po dodaniu do wierzchołków ustalonych wierzchołka v. Weźmy pod uwagę pewien wierzchołek u, który wciąż pozostaje nieustalony po dodaniu v do wierzchołków ustalonych. W najkrótszej drodze specjalnej do u musi istnieć pewien wierzchołek przedostatni. Wierzchołkiem tym może być zarówno v, jak i pewien inny wierzchołek w. Przyjmijmy, że wierzchołkiem przedostatnim jest v. Długość drogi z s przez v do u wynosi dist(v) + wartość etykiety v u. Przyjmijmy, że wierzchołkiem przedostatnim jest w. Na podstawie warunku (1) hipotezy indukcyjnej można stwierdzić, że najkrótsza droga z s do w składa się jedynie z wierzchołków, które zostały ustalone przed v, stąd wierzchołek v nie występuje w tej drodze. A więc długość drogi specjalnej do u się nie zmienia po dodaniu v do wierzchołków ustalonych. Ponieważ w momencie ustalania wierzchołka v przeprowadzona jest operacja dostosowywania dist(u), warunek (2) jest spełniony.

Algorytm Floyda-Warshalla 21 Podstawa algorytmu jest działanie polegające na rozpatrywaniu po kolei każdego wierzchołka grafu jako elementu centralnego (ang. pivot). Kiedy wierzchołek u jest elementem centralnym, staramy się wykorzystać fakt, że u jest wierzchołkiem pośrednim między wszystkimi parami wierzchołków. Dla każdej pary wierzchołków, na przykład v i w, jeśli suma etykiet krawędzi (v, u) oraz (u, w) (na rysunku d+e), jest mniejsza od bieżąco rozpatrywanej etykiety f krawędzi wiodącej od v do w, to wartość f jest zastępowana wartością d+e. 0 1 v u d f e 0 1 w n-1 n-1

22 Uzasadnienie poprawności algorytmu Floyda-Warshalla Na dowolnym etapie działania algorytmu Floyda-Warshalla odległość z wierzchołka v do wierzchołka w stanowi długość najkrótszej z tych dróg, które wiodą jedynie przez wierzchołki użyte dotąd jako elementy centralne. Ponieważ wszystkie wierzchołki zostają w końcu użyte jako elementy centralne, elementy dist[v][w] zawierają po zakończeniu działań minimalne długości wszystkich możliwych dróg. numery wyższe od k numery niższe od k v k-droga w

23 Uzasadnienie poprawności algorytmu Floyda-Warshalla Definiujemy k-drogę z wierzchołka v do wierzchołka w jako drogę z v do w taką, że żaden jej wierzchołek pośredni nie ma numeru wyższego od k. Należy zauważyć, że nie ma ograniczenia odnośnie tego, że v lub w mają mieć wartość k lub mniejszą. k=-1 oznacza że droga nie posiada wierzchołków pośrednich. numery wyższe od k numery niższe od k v k-droga w

Dowód indukcyjny 24 Teza indukcyjna S(k): jeżeli etykiety krawędzi maja wartości nieujemne, to po przebiegu k pętli, element dist[v][w] ma wartość najkrótszej k drogi z v do w lub ma wartość INF, jeżeli taka droga nie istnieje. Podstawa: Podstawą jest warunek k = -1. Krawędzie i drogi składające się z pojedynczego wierzchołka są jedynymi (-1) drogami. k-droga Q k-droga R v k+1 w k-drogę P można rozbić na dwie k-drogi, Q oraz R.

Dowód indukcyjny 25 Krok indukcyjny: Załóżmy ze S(k) jest spełnione i rozważmy co się dzieje z elementami dist[v][w] w czasie k+1 przebiegu pętli. Załóżmy, że P jest najkrótszą (k+1) drogą wiodąca z v do w. Mamy do czynienia z dwoma przypadkami, w zależności czy droga P prowadzi przez wierzchołek k+1. k-droga Q k-droga R v k+1 w k-drogę P można rozbić na dwie k-drogi, Q oraz R.

Dowód indukcyjny 26 Przypadek 1: Jeżeli P jest k-drogą, to znaczy, kiedy P nie wiedzie przez wierzchołek k+1, to na podstawie hipotezy indukcyjnej wartość elementu dist[v][w] jest równa długości P po zakończeniu k-tej iteracji. Nie można zmienić wartości dist[v][w] podczas przebiegu wykonywanego dla wierzchołka k+1 traktowanego jako element centralny, gdyż nie istnieją żadne krótsze (k+1)-drogi. Przypadek 2: Jeżeli P jest (k+1)- droga, można założyć, że P przechodzi przez wierzchołek k+1 tylko raz, gdyż cykl nigdy nie może spowodować zmniejszenia odległości (przy założeniu że wszystkie etykiety maja wartości nieujemne). Stąd droga P składa się z k-drogi Q, wiodącej od wierzchołka v do k+1, oraz k-drogi R, wiodącej od wierzchołka k+1 do w. Na podstawie hipotezy indukcyjnej wartości elementów dist[v][k+1] oraz dist[k+1][w] będą długościami dróg odpowiednio, Q i R, po zakończeniu k-tej iteracji.

Dowód indukcyjny 27 Ostatecznie wnioskujemy, że w (k+1) przebiegu, wartością elementu dist[v][w] staje się długość najkrótszej (k+1)-drogi dla wszystkich wierzchołków v oraz w. Jest to twierdzenie S(k+1), co oznacza koniec kroku indukcyjnego. Weźmy teraz, że k=n-1. Oznacza to, że wiemy iż po zakończeniu wszystkich n przebiegów, wartość dist[v][w] będzie minimalną odległością dowolnej (n-1)- drogi wiodącej z wierzchołka v do w. Ponieważ każda droga jest (n-1) drogą, więc dist[v][w] jest minimalną długością drogi wiodącej z wierzchołka v do w.