Scenariusz lekcji Temat: Problem chińskiego listonosza, czyli jak obejść miasto najmniejszym nakładem sił. W roku 1962 chioski matematyk Mei-Ko Kwan zaproponował następujący problem: Listonosz roznosząc listy musi przejśd przez wszystkie ulice w swojej dzielnicy co najmniej jeden raz i wrócid na pocztę. Ponieważ jest człowiekiem leniwym (nie odnosi się to do pozostałych listonoszy, tylko do tego konkretnego), chciałby mied jak najkrótszą do przejścia trasę. Znalezienie takiej trasy jest problemem, który nazwano problemem chioskiego listonosza (ang. Chinese postman problem - CPP). Cele zajęć Uczeo: doskonali intuicyjne rozumienie pojęcia algorytmu zna pojęcie algorytmu optymalnego, czyli możliwie najlepszej metody rozwiązywania zauważa problemy w życiu codziennym, gdzie rozwiązanie jest algorytmem rozwija logiczne myślenie Adresaci lekcji Lekcja skierowana jest do uczniów ostatniej klasy gimnazjum lub do uczniów klas szkoły średniej. Uczniowie znają pojecie algorytmu, potrafią opisad krok po kroku algorytm zadanego problemu. Miejsce zajęć Zajęcia odbywają się w sali komputerowej wyposażonej w odpowiednią liczbę stanowisk komputerowych oraz w rzutnik multimedialny i ekran. Przebieg zajęć Mini wykład teoretyczny : 1 Podstawowe pojęcia użyte w wykładzie Graf w uproszczeniu zbiór wierzchołków, które mogą byd połączone krawędziami, w taki sposób, że każda krawędź kooczy się i zaczyna w którymś z wierzchołków. Grafy to 1 Wykład zaczerpnięty z MINI Wykłady, Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej 2000 1
podstawowy obiekt rozważao teorii grafów. Za pierwszego teoretyka i badacza grafów uważa się Leonarda Eulera. Przykłady grafów możemy zobaczyd na Rysunku 1 graf z ponumerowanymi wierzchołkami i Rysunku 2 graf z ponumerowanymi wierzchołkami oraz wagami krawędzi. Rysunek 1 Przykład grafu Rysunek 2 Przykład grafu, z wagami krawędzi Cykl/ szlak Eulera: szlak, który zawiera każdą krawędź grafu G jest nazwany szlakiem/cyklem Eulera grafu G. Obchód grafu G to skooczony domknięty spacer przechodzący przez każdą krawędź G przynajmniej jeden raz. Obchód Eulera jest obchodem zawierającym każdą krawędź grafu G dokładnie jeden raz. Graf nazywamy eulerowskim (grafem Eulera) jeżeli zawiera obchód Eulera. Sformułowanie problemu. Rozważmy graf, którego krawędzie odpowiadają ulicom w rejonie, obsługiwanym przez listonosza. Wierzchołki to po prostu skrzyżowania ulic. Krawędziom nadajemy wagi, które oznaczają odległości między dwoma skrzyżowaniami. Znalezienie możliwie najkrótszej drogi, którą musi przejśd listonosz sprowadza sie do znalezienia w tym grafie drogi o minimalnej sumie wag krawędzi, która przechodzi przez każdą krawędź co najmniej raz. 2
Jeśli graf posiada cykl Eulera. Jeśli dany graf posiada cykl Eulera, to istnieje taka droga, która zaczyna i kooczy sie w tym samym punkcie i wymaga przejścia po każdej ulicy dokładnie raz. Zauważmy, że ponieważ każdy cykl Eulera przechodzi raz przez każdą krawędź to suma wag krawędzi (długośd drogi, którą musi przejśd listonosz) jest zawsze taka sama (nie zależy od wierzchołka, w którym cykl ten zaczyna się i kooczy). Rozwiązaniem jest więc dowolny cykl Eulera w tym grafie. Jeśli graf nie posiada cyklu Eulera. W takim przypadku listonosz będzie zmuszony przejśd niektórymi ulicami wielokrotnie. Rozwiązanie jest więc cyklem, w którym suma długości krawędzi wybranych więcej niż raz jest możliwie najmniejsza. Przykład Na rysunku pokazany jest układ ulic niedaleko Politechniki Warszawskiej. Załóżmy, że fragmenty tych pięciu ulic tworzą rejon listonosza. Rysunek 3 Fragment mapy w okolicy Politechniki Warszawskiej Obok nazw ulic umieszczone są odległości w metrach. Prostokąt oznaczony literą P oznacza miejsce, w którym umieściliśmy pocztę, na której pracuje 'nasz' listonosz. (Na marginesie: nazwy i układ ulic są prawdziwe, jednak podane odległości oraz umiejscowienie poczty nie odpowiadają rzeczywistości. Pocztę umieściliśmy w miejscu, gdzie w rzeczywistości znajduje się Gmach Główny, w którym ma swoją siedzibę Wydział MiNI. I niestety nie ma w tym budynku poczty.) Oto jak wygląda graf odpowiadający danemu układowi ulic. Zauważmy, że graf ten nie ma cyklu Eulera ponieważ posiada dwa wierzchołki, z których wychodzi nieparzysta liczba krawędzi. Na rysunku zaznaczono również rozwiązanie czyli optymalną trasę listonosza. 3
Rysunek 4 Graf na podstawie Rysunek 3 Zwródmy uwagę, że listonosz musi przejśd dwukrotnie tylko ulicę Nowakowskiego, zaś pozostałe ulice dokładnie raz. Powyższa droga jest najkrótszą z możliwych ponieważ odcinek, po którym przechodzi dwukrotnie liczy tylko 500 metrów i nie istnieje trasa spełniająca zadane warunki o krótszym odcinku, który listonosz musi pokonad więcej niż raz. Algorytm Fleury'ego Jest to algorytm znajdujący cykl Eulera w grafie. Jak już wiemy, jeśli graf posiada taki cykl, to jest on rozwiązaniem rozważanego problemu. Po wprowadzeniu pewnych modyfikacji może posłużyd również do rozwiązywania problemu chioskiego listonosza w przypadku grafów, które nie mają cyklu Eulera. Opis Algorytmu Fleury'ego Startujemy z dowolnego wierzchołka. Każda kolejna krawędź, po której przechodzimy, wybierana jest spośród krawędzi wychodzących z wierzchołka, w którym aktualnie się znajdujemy. Wybieramy oczywiście krawędź, po której jeszcze nie przeszliśmy. O ile jest to możliwe, usunięcie wybranej krawędzi nie powinno rozciąd grafu na dwa 'kawałki'. Jeśli uda nam się, postępując w ten sposób, dojśd do wierzchołka, z którego wyruszyliśmy i przejśd przez wszystkie krawędzie, to otrzymana droga jest cyklem Eulera. Podsumowując otrzymujemy następujący ogólny algorytm rozwiązujący problem chioskiego listonosza: K01: Sprawdź, czy graf jest spójny. Jeśli nie jest, to zakoocz algorytm z odpowiednim komunikatem K02: Wyszukaj w grafie wszystkie wierzchołki o nieparzystych stopniach K03: Jeśli liczba tych wierzchołków jest równa 0, przejdź do kroku K07 K04: Wyznacz najkrótsze ścieżki łączące ze sobą wszystkie znalezione wierzchołki o nieparzystych stopniach. K05: Wyszukaj skojarzenie tych wierzchołków w pary o najmniejszej sumie wag krawędzi 4
K06: Krawędzie wchodzące w skład wyznaczonych ścieżek skojarzenia zdubluj w grafie wejściowym K07: Wyznacz w grafie cykl Eulera i wyprowadź wynik K08: Zakoocz algorytm Zadanie dla uczniów Wyobraź sobie, że zostałeś zatrudniony jako listonosz na poczcie przy ulicy Nowowiejskiej 48. Poczta znajduje się u zbiegu ulic Nowowiejskiej i Barlickiego (w rzeczywistości jest tam placówka pocztowa). Twój rewir, po którym codziennie się poruszasz roznosząc przesyłki listowe przedstawia mapka na Rysunku 5. Zaplanuj swoją codzienną pracę, czyli trasę roznoszenia listów tak, aby Twoja droga była jak najkrótsza. Rysunek 5 Fragment mapy Wrocławia 2 2 Mapa wykonana za pomocą Google Maps 5
Uczniowie zanim zaczną szukad rozwiązania danego problemu, powinni sami określid długośd poszczególnych ulic, korzystając z podanej skali. Następnie uczniowie przerysowują mapę do postaci grafu. Rysunek 6 Graf na podstawie Rysunek 5 Uczniowie korzystając z przykładu powinni zauważyd, że w grafie nie ma szlaku Eulera, ponieważ są wierzchołki, z których wychodzi nieparzysta liczba krawędzi (dokładnie są 4 takie wierzchołki). Zatem niektóre z ulic należy przejśd dwukrotnie. Postępując zgodnie z algorytmem Fleury'ego, tzn. wychodząc z poczty i wybierając ulicę po której jeszcze nie szliśmy i starając się nie rozcinając grafu na dwie części, uczniowie powinni otrzymad rozwiązanie. 6
Rysunek 7 Rozwiązanie zadania Widad, że w każdym nieparzystym wierzchołku (czyli takim, z którego wychodzi nieparzysta liczba ulic), jedna z wychodzących krawędzi została podwojona. Ulice Kluczborska na odcinku od Żeromskiego do Barlickiego, Nowowiejska pomiędzy Stein a Barlickiego oraz Barlickiego pomiędzy Nowowiejską a Orzeszkowej zostaną pokonane dwukrotnie. Jest to rozwiązanie optymalne, czyli droga listonosza będzie najkrótsza z możliwych. Kontynuacja Wcześniejsze zadanie może mied ciekawą kontynuacją. Problem chioskiego listonosza można przenieśd na wędrówkę po szklakach górskich. W tym przypadku należy jednak problem zmodyfikowad, wędrówki po górach są zazwyczaj kilkudniowe zatem wymagają zaplanowania noclegów. Jak zaplanowad wycieczkę w Kotlinę Kłodzką, aby wędrowad wszystkimi szlakami przy najmniejszej liczbie przebytych kilometrów? 7
Rysunek 8 Plan szlaków w Kotlinie Kłodzkiej Literatura Gurbiel E., Hardt-Olejniczak G., Kołczyk E., Krupicka H., Sysło M. M., Informatyka Poradnik dla nauczyciel, WSiP, Warszawa 2004 Sysło M.M., Informatyka i technologia informacyjna w szkole, Instytut Informatyki UWr, Wrocław 2004 MINI Wykłady, Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej 2000 http://edu.i-lo.tarnow.pl/inf/utils/002_roz/ol026.php 8