Uniwersytet Dzieci Nieważne jaki masz komputer – ważne jaki masz algorytm ! dr Krzysztof Bryś Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska 27 marca 2010
przepis na rozwiązanie problemu, opis sposobu rozwiązania problemu Dane: Szukane: Algorytm przepis na rozwiązanie problemu, opis sposobu rozwiązania problemu Jeden problem można rozwiązać wieloma algorytmami ! źródło: KN KOALA
Przykłady algorytmów: przepis kucharski (jak ugotować budyń tak by był najsmaczniejszy) sposób ubierania się (w jakiej kolejności zakładać części ubioru) wybór drogi powrotu do domu (którędy pójść, żeby wrócić najszybciej) źródło: internet
Liczba cukierków, które posiada Antek, Przykład 1: Problem Dane: Liczba cukierków, które posiada Antek, liczba cukierków, które posiada Bronek, liczba cukierków, które posiada Czarek. Szukane: Łączna liczba cukierków u chłopców. źródło: internet
1. Dodaj liczby cukierków u Antka i u Bronka Algorytm1: 1. Dodaj liczby cukierków u Antka i u Bronka Do obliczonej liczby dodaj liczbę cukierków u Czarka Algorytm 2 (szybszy ale niegrzeczny): 1. Zabierz cukierki Antkowi, Bronkowi i Czarkowi 2. Policz ile masz cukierków źródło: internet
Dane: Obiad składający się z zupy, drugiego dania i deseru Przykład 2: Problem: Dane: Obiad składający się z zupy, drugiego dania i deseru Szukane: Zjedzony obiad Algorytm1: Zjedz zupę. Zjedz drugie danie. Zjedz deser. Algorytm2 (wolniejszy ale smaczniejszy ?!) Zjedz deser Zjedz drugie danie Zjedz zupę (jak jeszcze dasz radę) źródło: internet
Algorytmy: - szybkie - wolne Problemy: - łatwe (znamy szybki algorytm rozwiązujący ten problem) - trudne (nie znamy szybkiego algorytmu rozwiązującego ten problem) źródło: internet
Przykłady problemów łatwych: zjedzenie tortu zdenerwowanie Mamy ubranie się przed wyjściem do kina Zrobienie bałaganu w pokoju
Przykłady problemów trudnych: nauczenie się matematyki (?!) spowodowanie, żeby Mama mnie pochwaliła ubranie się przed wyjściem do szkoły zrobienie porządku w pokoju zabicie smoka znalezienie drogi wyjścia z labiryntu Trudny problem może stać się łatwym jeśli odkryjemy szybki algorytm rozwiązujący ten problem !!
Graf składa się z elementów pewnego zbioru zwanych wierzchołkami oraz par wierzchołków zwanych krawędziami. Na rysunku grafu wierzchołki reprezentowane są przez punkty a krawędzie przez linie łączące pary wierzchołków. Graf – uniwersalne narzędzie do rozwiązywania problemów z różnych dziedzin nauki i życia codziennego.
Problem siedmiu mostów królewieckich Czy da się przejść po każdym z siedmiu mostów, których układ pokazany jest na poniższym rysunku, dokładnie raz tak, by wrócić do punktu wyjścia?
Leonhard Euler (1736): Nie da się. Dałoby się znaleźć taką drogę w grafie reprezentującym opisaną sytuację wtedy i tylko wtedy gdyby z każdego wierzchołka tego grafu wychodziła parzysta liczba krawędzi. Graf odpowiadający rozmieszczeniu mostów w Królewcu w 1736 roku
Zagadka: Dane: Układ uliczek w parku Zagadka: Dane: Układ uliczek w parku. Szukane: Czy da się przejść po każdej uliczce w parku dokładnie raz i wrócić do bramy? A B F Brama C E D
A B F Brama C E D
A B F Brama C E D
A B F Brama C E D
A B F Brama C E D
A B F Brama C E D
A B F Brama C E D
A B F Brama C E D
A B F Brama C E D
A B F Brama C E D
A B F Brama C E D
Da się !! Pan Euler wykazał, że zawsze się da jeśli z każdego skrzyżowania (wierzchołka grafu) wychodzi parzysta liczba uliczek (krawędzi grafu) !! A 4 2 B 2 F 2 Brama C 4 4 E D 2
To spróbujmy znaleźć taką drogę w takim parku: 3 F Brama C E D Nie da się !! Bo są skrzyżowania, z których wychodzi nieparzysta liczba uliczek !
Problem chińskiego listonosza (Mei Ku Kwan, 1962): Znaleźć najkrótszą drogę, po której powinien przejść listonosz, tak aby przeszedł po każdej ulicy w swoim rejonie i powrócił na pocztę.
Sformułowanie grafowe tego problemu : Niech wierzchołki grafu odpowiadają skrzyżowaniom ulic, a krawędzie odcinkom ulic pomiędzy skrzyżowaniami w rejonie listonosza. Każdej krawędzi przypiszmy wagę równą długości odpowiadającego jej odcinka ulicy. W stworzonym w ten sposób grafie znaleźć taką ścieżkę o najmniejszej sumie wag krawędzi, która zaczyna się i kończy w tym samym wierzchołku.
Łamigłówka Hamiltona (Wiliam Rowan Hamilton 1856): Gramy na grafie będącym siatką dwunastościanu foremnego
Gracz 1: Wybiera 5 pierwszych wierzchołków w taki sposób, że każde dwa kolejne są połączone krawędzią. Gracz 2: Ma za zadanie wybrać pozostałe wierzchołki w takiej kolejności, by utworzyć cykl (czyli drogę zaczynającą się i kończącą się w tym samym wierzchołku) przechodzący przez każdy wierzchołek tego grafu dokładnie raz. Gracz 2 zawsze może wygrać !!! (jeśli pomyśli trochę)
Basia i Ewa są przyjaciółmi. Czarek i Dorotka też się przyjaźnią. Zagadka Dane: Na urodziny Adaś zaprosił czwórkę swoich przyjaciół: Basię, Czarka, Dorotkę i Ewę. Basia i Ewa są przyjaciółmi. Czarek i Dorotka też się przyjaźnią. Przyjaciółmi są też Ewa i Dorotka. Szukane: Takie rozsadzenie dzieci przy okrągłym stole, by każde dziecko miało koło siebie przyjaciela. źródło: internet
Rozwiązanie zagadki: Stwórzmy graf, którego wierzchołki odpowiadają dzieciom i dwa wierzchołki są połączone krawędzią jeśli odpowiadające im dzieci są przyjaciółmi. Ten graf będzie wyglądał tak:
W tym grafie taki cykl istnieje !! Na urodziny Adaś zaprosił czwórkę swoich przyjaciół: Basię, Czarka, Dorotkę i Ewę. Basia i Ewa są przyjaciółmi. Czarek i Dorotka też się przyjaźnią. Przyjaciółmi są też Ewa i Dorotka. Rozwiązanie zagadki: Poszukujemy takiego cyklu w tym grafie, który przejdzie przez każdy wierzchołek dokładnie raz !! W tym grafie taki cykl istnieje !!
Na urodziny Adaś zaprosił czwórkę swoich przyjaciół: Basię, Czarka, Dorotkę i Ewę. Basia i Ewa są przyjaciółmi. Czarek i Dorotka też się przyjaźnią. Przyjaciółmi są też Ewa i Dorotka.
Inna wersja tej zagadki: Dane: Na urodziny Adaś zaprosił czwórkę swoich przyjaciół: Basię, Czarka, Dorotkę i Ewę. Basia i Ewa są przyjaciółmi. Czarek i Dorotka też się przyjaźnią. Szukane: Takie rozsadzenie dzieci przy okrągłym stole, by każde dziecko miało koło siebie przyjaciela.
Urodzin nie będzie !! Odpowiadający tej sytuacji graf : Na urodziny Adaś zaprosił czwórkę swoich przyjaciół: Basię, Czarka, Dorotkę i Ewę. Basia i Ewa są przyjaciółmi. Czarek i Dorotka też się przyjaźnią. Nie da się posadzić dzieci wokół okrągłego stołu tak, by każde dziecko miało za sąsiadów przyjaciół. Urodzin nie będzie !!
Problem komiwojażera: Komiwojażer musi odwiedzić każde z n miast i wrócić do miasta, z którego wyruszył. Chce przebyć jak najkrótszą drogę. Sformułowanie grafowe tego problemu: Niech wierzchołki w grafie odpowiadają miastom. Każde dwa wierzchołki łączymy w tym grafie krawędzią o wadze równej odległości między tymi miastami. Znaleźć w tak stworzonym grafie „najkrótszy” cykl przechodzący przez każdy wierzchołek tego grafu dokładnie raz
Dla 5 miast, wszystkich możliwych dróg komiwojażera jest 4*3*2*1*(1/2)=12 Dla 20 miast, wszystkich możliwych dróg komiwojażera jest około 6 000 000 000 000 000 000. Dla 20 tysięcy miast, wszystkich możliwych dróg komiwojażera jest BARDZO DUŻO – jedynka z 77 tysiącami zer
Komputer (bardzo szybki) może to liczyć nawet przez 100 tysięcy lat Komputer (bardzo szybki) może to liczyć nawet przez 100 tysięcy lat !! A dla ilu miast da się policzyć przez rok ? Powiedzmy, że dla 100. To jak kupię 100 razy szybszy komputer, to będę mógł rozwiązać ten problem dla 100 razy większej liczby miast ?! źródło: KN KOALA
Otóż NIE. Będę mógł policzyć tylko dla 106 miast zamiast dla 100 Otóż NIE !! Będę mógł policzyć tylko dla 106 miast zamiast dla 100 ! A zapłacę 100 razy więcej pieniędzy !! A jak kupię tysiąc razy szybszy komputer ? To dla 110 miast będę mógł ten problem rozwiązać. Tylko o 10 więcej. źródło:internet
Ale nic nie stoi na przeszkodzie by wymyśleć szybki algorytm rozwiązujący ten problem !!!
Dziękuje za uwagę
Dziękuje za uwagę
Dane: Układ uliczek w parku. ZADANIA DOMOWE Zagadka: Dane: Układ uliczek w parku. Szukane: Czy da się przejść po każdej uliczce w parku dokładnie raz i wrócić do bramy? Brama
Nie da się !! Bo są skrzyżowania, z których wychodzi nieparzysta liczba uliczek !
Zagadka Dane: Na urodziny Adaś zaprosił czwórkę swoich przyjaciół: Basię, Czarka, Dorotkę i Ewę. Basia i Dorotka są przyjaciółmi. Czarek i Ewa też się przyjaźnią. Przyjaciółmi są też Ewa i Dorotka. Szukane: Takie rozsadzenie dzieci przy okrągłym stole, by każde dziecko miało koło siebie przyjaciela.