mosty królewieckie - staszic · 2005-04-21 · mosty królewieckie w osiemnastym wieku mieszkańcy...

37
Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście siedem. Plan mostów pokazuje rysunek. Ale takie zwykłe spacerowanie po jakimś czasie im się znudziło, i zaczęli zastanawiać się, czy jest taka trasa spacerowa, która przechodzi przez każdy most dokładnie raz, żadnego nie omija, i pozwala wrócić do punktu wyjścia. Nie potrafili sami rozwiązać tego problemu, więc napisali do znanego już wtedy matematyka Leonharda Eulera. Euler pokazał, że nie istnieje rozwiązanie tego zadania. (Jeśli wejdzie się po raz trzeci na wyspę, nie ma jak z niej wyjść.) Można tę sytuację przedstawić jako graf o wielokrotnych krawędziach: Trzeba w tym grafie znaleźć cykl Eulera, czyli cykl przechodzący przez wszystkie wierzchołki i wszystkie krawędzie tego grafu, ale przez każdą krawędź tylko raz. W opublikowanej w 1736 roku pracy Euler sformułował pierwsze twierdzenie teorii grafów, które dziś zapisujemy następująco: W grafie można znaleźć cykl Eulera wtedy i tylko wtedy, gdy graf jest spójny i każdy jego wierzchołek ma parzysty stopień . Znając to twierdzenie zawsze można stwierdzić, czy łamigłówka typu "narysuj figurę nie odrywając ołówka od kartki" ma rozwiązanie. 1

Upload: others

Post on 03-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Mosty królewieckie

W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzecePregole, których mieli w mieście siedem. Plan mostów pokazuje rysunek.

Ale takie zwykłe spacerowanie po jakimś czasie im się znudziło, i zaczęlizastanawiać się, czy jest taka trasa spacerowa, która przechodzi przez każdy mostdokładnie raz, żadnego nie omija, i pozwala wrócić do punktu wyjścia.

Nie potrafili sami rozwiązać tego problemu, więc napisali do znanego już wtedymatematyka Leonharda Eulera. Euler pokazał, że nie istnieje rozwiązanie tegozadania. (Jeśli wejdzie się po raz trzeci na wyspę, nie ma jak z niej wyjść.)

Można tę sytuację przedstawić jako graf o wielokrotnych krawędziach:

Trzeba w tym grafie znaleźć cykl Eulera, czyli cykl przechodzący przez wszystkiewierzchołki i wszystkie krawędzie tego grafu, ale przez każdą krawędź tylko raz.

W opublikowanej w 1736 roku pracy Euler sformułował pierwsze twierdzenie teoriigrafów, które dziś zapisujemy następująco:

W grafie można znaleźć cykl Eulera wtedy i tylko wtedy, gdy graf jest spójny i każdyjego wierzchołek ma parzysty stopień.

Znając to twierdzenie zawsze można stwierdzić, czy łamigłówka typu "narysuj figuręnie odrywając ołówka od kartki" ma rozwiązanie.

1

Page 2: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Fleury podał algorytm, który pozwala znaleźć cykl Eulera w każdym grafie, w którymon istnieje.

Zadanie 1

Spróbuj samodzielnie znaleźć cykl Eulera w poniższym grafie.

Początek formularzaDół formularza

Teoria grafów

Graf to zbiór wierzchołków, który na rysunku zwykle reprezentujemy kropkami, naprzykład:

oraz krawędzi łączących wierzchołki, co na rysunku można przedstawićnastępująco:

2

Page 3: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Czasem dopuszcza się wielokrotne krawędzie i pętle (czyli krawędzie o początku ikońcu w tym samym wierzchołku):

Niekiedy wygodnie jest rozważać grafy o krawędziach skierowanych (grafyskierowane):

Wiele zastosowań mają grafy ważone, w których każdej krawędziprzyporządkowano liczbę - wagę, może ona oznaczać na przykład odległość międzywierzchołkami:

W grafach etykietowanych każdy wierzchołek ma swoją nazwę - etykietę:

Tak więc grafy, o których uczy się w szkole podstawowej, to grafy skierowane,ważone, o zaetykietowanych wierzchołkach:

3

Page 4: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Należy pamiętać, że rysunek grafu to tylko jedna z wielu jego reprezentacjigraficznych. Każdy graf można narysować na wiele sposobów. Oto kilkareprezentacji graficznych tego samego grafu:

Problem kojarzenia małżeństw

Dlaczego kojarzenia małżeństw?Załóżmy, że mamy k kawalerów i p panien oraz dla każdej z panien podany jest zbiórkawalerów, których zna.

Czy jest możliwe wydanie za mąż każdej z kobiet za kawalera, którego zna ?

Sformułowanie przy pomocy grafów.Zbudujmy graf, którego zbiór wierzchołków składa się z dwóch rozłącznychpodzbiorów: zbioru kawalerów K i zbioru panien P. Wierzchołek x ze zbioru Kłączymy krawędzią z wierzchołkiem y z P jeśli panna y zna kawalera x. Wotrzymanym grafie nie istnieją krawędzie między żadnymi dwoma wierzchołkami zezbioru P ani żadnymi dwoma ze zbioru K. Jest to więc graf dwudzielny. Poszukiwanyjest w tym grafie zbiór krawędzi M taki, że:

1. żadna para krawędzi należących do M nie ma wspólnegowierzchołka (małżenstwa są rozłączne - nie dopuszczamy bigamii!!!), 2. każdy wierzchołek ze zbioru P jest końcem pewnej krawędzi zezbioru M(każda panna wychodzi za mąż).

Zbiór krawędzi spełniający takie warunki nazywamy skojarzeniem doskonałym.

4

Page 5: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Kiedy rozwiązanie problemu kojarzenia małżeństw istnieje ?P. Hall sformułował i udowodnił w 1935 roku twierdzenie, które podaje warunekkonieczny i dostateczny na to by problem kojarzenia małżeństw miał rozwiązanie.

Twierdzenia HallaProblem kojarzenia małżenstw ma rozwiązanie wtedy, gdy każde m panien znałącznie co najmniej m kawalerów, dla m=1,2, ...p.

Przykład.Oto przykładowy graf dla zbioru P złożonego z trzech panien i zbioru K złożonego ztrzech kawalerów.

Każda z panien zna dokładnie dwóch kawalerów. Skojarzenie doskonałe istnieje imoże wyglądać następująco:

Ania powinna wyjść za Tomka, Kasia za Arka a Zosia za Jasia. Popatrzmy teraz nanastępujący graf.

5

Page 6: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

W tym grafie skojarzenie doskonałe nie istnieje. Ania i Kasia znają tylko Tomka. Nieuda się więc znaleźć równocześnie męża dla obydwu panien.

Zastosowania.Problem ten posiada bardziej poważne zastosowania. Przy użyciu tej samej metodymożemy rozwiązać problem polegający na przydzieleniu pracownikom zajęć zgodniez ich kwalifikacjami. W tym przypadku przez P należy rozumieć zbiór pracowników, Kzbiór zadań do wykonania. Dwa wierzchołki x i y łączymy krawędzią jeśli praca y jestzgodna z kwalifikacjami pracownika x (to znaczy może on ją wykonywać).

Problem znajdowania najkrótszej drogi

Wyobraźmy sobie pewną mapę. Na mapie zaznaczone są drogi międzyposzczególnymi miastami oraz długości tych dróg. Wybierając z tej mapy dowolnedwa miasta A i B chcemy zaplanować najkrótszą trasę z miasta A do miasta B.

Jak rozwiązać ten problem używając grafów ?Stwórzmy graf, którego wierzchołki odpowiadają miastom znajdującym sie na danejmapie. Wierzchołki łączymy krawędzią jeśli istnieje bezpośrednia (nie przebiegającaprzez żadne inne miasto zaznaczone na tej mapie) droga łącząca odpowiadające immiasta. Krawędziom nadajemy wagi równe długości danej drogi. Oczywiście długośćdrogi możemy zastąpić przez czas trwania podróży lub jej koszt. Znalezienienajkrótszej drogi z miasta A do miasta B oznacza znalezienie pomiędzyodpowiadającymi im wierzchołkami drogi o możliwie najmniejszej sumie wagkrawędzi.

Kiedy rozwiązanie tego problemu istnieje ?Jesteśmy w stanie znaleźć najkrótszą drogę, jeśli droga między danymi miastami(wierzchołkami w grafie) w ogóle istnieje. Aby można było znaleźć najkrótsze drogimiędzy dowolną parą miast utworzony dla danej mapy graf musi być spójny.

Algorytm rozwiązujący ten problem.Najbardziej znanym algorytmem rozwiązującym ten problem jest algorytm Dijkstry.

Opis algorytmu DijkstryAlgorytm Dijks znajduje najkrótszą drogę z wierzchołka s (zwanego źródłem) dowierzchołka t (zwanego ujściem) w grafie, w którym wszystkim krawędziom nadanonieujemne wagi. Polega na przypisaniu wierzchołkom pewnych wartości liczbowych.Taką liczbę nazwijmy cechą wierzchołka. Cechę wierzchołka v nazwiemy stałą (gdyjest równa długości najkrótszej drogi z s do v) albo, w przeciwnym przypadku,tymczasową. Na początku wszystkie wierzchołki, oprócz s, otrzymują tymczasowecechy ∞ . źródło s otrzymuje cechę stałą równą 0. Następnie wszystkie wierzchołkipołączone krawędzią z wierzchołkiem s otrzymują cechy tymczasowe równe

6

Page 7: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

odległości od s . Potem wybierany jest spośród nich wierzchołek o najmniejszejcesze tymczasowej. Oznaczmy go v . Cechę tego wierzchołka zamieniamy na stałąoraz przeglądamy wszystkie wierzchołki połączone z v. Jeśli droga z s do któregoś znich, przechodząca przez v ma mniejszą długość od tymczasowej cechy tegowierzchołka, to zmniejszamy tą cechę. Ponownie znajdujemy wierzchołek onajmniejszej cesze tymczasowej i zamieniamy cechę tego wierzchołka na stałą.Kontynuujemy to postępowanie aż do momentu zamiany cechy wierzchołka t nastałą (czyli obliczenia długości najkrótszej drogi z s do t).

Zastosowania.Algorytmy znajdujące najkrótszą drogę w grafie są wykorzystywane do wyznaczanianajlepszej trasy pomiędzy dwoma miastami na 'komputerowych' mapach. Mapy takieprzydatne są w pracy np. firm transportowych.

Problem chińskiego listonosza

Dlaczego listonosza ?W swojej pracy, listonosz wyrusza z poczty, dostarcza przesyłki adresatom, by nakoncu powrócić na pocztę. Aby wykonać swoją pracę musi przejść po każdej ulicy wswoim rejonie co najmniej raz. Oczywiście chciałby, aby droga, którą przebędzie,była możliwie najkrótsza.

Dlaczego chińskiego ?Problem ten został sformułowany po raz pierwszy w języku teorii grafów przezchinskiego matematyka Mei Ku Kwana w 1962 roku.

Sformułowanie problemu.Rozważmy graf, którego krawędzie odpowiadają ulicom w rejonie, obsługiowanymprzez listonosza. Wierzchołki to po prostu skrzyżowania ulic. Krawędziom nadajemywagi, które oznaczają odległości między dwoma skrzyżowaniami. Znalezieniemożliwie najkrótszej drogi, którą musi przejść listonosz sprowadza sie do znalezieniaw tym grafie drogio minimalnej sumie wag krawędzi, która przechodzi przez każdąkrawędź co najmniej raz.

Jeśli graf posiada cykl Eulera. Jeśli dany graf posiada cykl Eulera, to istnieje taka droga, która zaczyna i konczy siew 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 wagkrawędzi (długość drogi, którą musi przejść listonosz) jest zawsze taka sama (niezależy od wierzchołka, w którym cykl ten zaczyna się i konczy). Rozwiązaniem jestwięc dowolny cykl Eulera w tym grafie.

Jeśli graf nie posiada cyklu Eulera.W takim przypadku listonosz będzie zmuszony przejść niektórymi ulicami

7

Page 8: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

wielokrotnie. Rozwiązanie jest więc cyklem, w którym suma długości krawędziwybranych więcej niż raz jest możliwie najmniejsza.

PrzykładNa rysunku pokazany est układ ulic niedaleko Politechniki Warszawskiej. Załóżmy,że fragmenty tych pięciu ulic tworzą rejon listonosza.

Obok nazw ulic umieszczone są odległości w metrach. Prostokąt oznaczony literą Poznacza 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 orazumiejscowienie poczty nie odpowiadają rzeczywistości. Pocztę umieściliśmy wmiejscu, gdzie w rzeczywistości znajduje się Gmach Główny, Oto jak wygląda grafodpowiadający danemu układowi ulic. Zauważmy, że graf ten nie ma cyklu Euleraponieważ posiada dwa wierzchołki, z których wychodzi nieparzysta liczba krawędzi.Na rysunku zaznaczono również rozwiązanie czyli optymalną trasę listonosza.

Zwróćmy uwagę, że listonosz musi przejść dwukrotnie tylko ulicę Noakowskiego, 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 trasaspełniająca zadane warunki o krótszym odcinku, który listonosz musi pokonać więcejniż raz.

8

Page 9: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Czym różni się problem mostów królewieckich od problemu chińskiegolistonosza ? Rozwiązanie problemu chińskiego listonosza istnieje zawsze o ile grafjest spójny. Natomiast problem mostów królewieckich, a mówiąc ogólniej problem znalezieniacyklu Eulera w grafie, nie zawsze ma rozwiązanie. Jeśli jednak graf posiada cyklEulera, to rozwiązanie jednego z tych problemów jest również rozwiązaniem dladrugiego.

Algorytm Fleury'egoJest to algorytm znajdujący cykl Eulera w grafie. Jak już wiemy, jeśli graf posiada takicykl, to jest on rozwiązaniem rozważanego problemu. Po wprowadzeniu pewnychmodyfikacji może posłużyć również do rozwiązywania problemu chinskiegolistonosza w przypadku grafów, które nie mają cyklu Eulera.

Opis Algorytmu Fleury'egoStartujemy z dowolnego wierzchołka. Każda kolejna krawędź, po którejprzechodzimy, wybierana jest spośród krawędzi wychodzących z wierzchołka, wktórym aktualnie się znajdujemy. Wybieramy oczywiście krawędź, po której jeszczenie przeszliśmy. O ile jest to możliwe, usunięcie wybranej krawędzi nie powinnorozciąć grafu na dwa 'kawałki'. Jeśli uda nam się, postępując w ten sposób, dojść dowierzchołka, z którego wyruszyliśmy i przejść przez wszystkie krawędzie, tootrzymana droga jest cyklem Eulera.

Problem komiwojażera

Dlaczego komiwojażera ?Komiwojażer ma do odwiedzenia pewna liczbę miast. Chciałby dotrzeć do każdego znich i wrócić do miasta, z którego wyruszył. Dane są również odległości mie=ędzymiastami. Jak powinien zaplanować trasę podróży, aby w sumie przebył możliwienajkrótsza drogę? Przez 'odległość' miedzy miastami możemy rozumieć odległość wkilometrach, czas trwania podróży miedzy tymi miastami albo koszt takiej podróży(na przykład cenę biletu lotniczego). W tym ostatnim przypadku, poszukiwanieoptymalnej trasy polega na zminimalizowaniu całkowitych kosztów podróży. Tak wiecmożemy poszukiwać trasy najkrótszej albo najszybszej albo najtańszej. Zakładamyprzy tym, że odległość miedzy dowolnymi dwoma miastami jest nie większą niżdługość jakiejkolwiek drogi łączącej te miasta, która wiedzie przez inne miasta.Założenie to tylko z pozoru wydaje się być zawsze spełnione. Rozważmynastępujący przykład. Załóżmy, że interesuje nas czas trwania podróży koleją.Najszybsze połączenie z Katowic do Białegostoku wiedzie przez Warszawę. Czastrwania tej podróży traktujemy w tym przypadku jako 'odległość' z Katowic doBiałegostoku.

Sformułowanie problemu.Zbudujmy graf ważony, którego wierzchołki są miastami. Każda parę miast połączmykrawędziami. Każdej krawędzi nadajemy wagę równa 'odległości' miedzy miastamiodpowiadającymi wierzchołkom, które są końcami tej krawędzi. Otrzymujemy w ten

9

Page 10: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

sposób graf pełny, który ma tyle wierzchołków ile miast musi odwiedzić komiwojażer(wliczając w to miasto, z którego wyrusza). Odwiedzenie wszystkich miast odpowiadacyklowi, który przechodzi przez każdy wierzchołek danego grafu dokładnie raz. Cykltaki nazywamy cyklem Hamiltona. Poszukujemy wiec w grafie pełnym cykluHamiltona o minimalnej sumie wag krawędzi.

PrzykładNa rysunku pokazano graf ważony o wierzchołkach odpowiadających pięciu miastompolskim. Wagami krawędzi są odległości podane w kilometrach. Poszukujemyrozwiązania następującego problemu: Komiwojażer wyrusza z Warszawy i chce odwiedzić wszystkie pozostałe czterymiasta a następnie wrócić do Warszawy. Jak powinien zaplanować podróż, abyprzebył możliwie najmniejsza liczbę kilometrów?

Już przy pięciu miastach wszystkich możliwych tras podróży komiwojażera jest

. Można zauważyć, że przy większej liczbie miast rozważaniewszystkich możliwości nie jest najlepszym pomysłem.

Dlaczego rozwiązanie tego problemu zawsze istnieje ?Dowolny graf pełny posiada co najmniej jeden cykl Hamiltona. Ponieważ graf maskończona liczbe wierzchołków, to w zbiorze cykli Hamiltona istnieje taki(niekoniecznie jedyny), który posiada minimalna sumę wag krawędzi.

Algorytmy rozwiązujące problem komiwojażera.Istnieje wiele algorytmów rozwiązujących ten problem. Wszystkie maja jednapodstawowa wadę. Wymagają rozważenia bardzo dużej liczby przypadków i czas ichdziałania może być bardzo długi. Niewielki przyrost liczby miast powoduje 'duży'wzrost ilości przypadków do rozważenia i tym samym czasu działania algorytmu.Jeden z możliwych algorytmów polega na obliczeniu całkowitej długości wszystkichistniejących w danym grafie cykli Hamiltona. Jest to jednak bardzo skomplikowane

10

Page 11: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

już dla liczby miast niewiele większej od pieciu. Na przykład dla 20 miast liczba cykli

Hamiltona w grafie pełnym o 20 wierzchołkach wynosi czyli około .

Algorytmy przybliżoneCzas rozwiązywania problemu komiwojażera można zmniejszyć stosując jeden zeznanych algorytmów przybliżonych, które nie wymagają rozważania aż tak dużejliczby przypadków. Jednak algorytmy takie nie zawsze znajdują optymalnerozwiązanie. Stworzona przez nie trasa może być znacznie 'dłuższa' od najkrótszej.Stosowanie algorytmów przybliżonych wynika z konieczności wyboru pomiędzyszybkością znajdowania a 'jakością' znalezionego rozwiazan. Z reguły zakłada się,że wynik działania takiego algorytmu nie może być gorszy od optymalnego o więcejniż pewna ustalona z góry wartość.

Jak wyglądałby algorytm przybliżony dla problemu gotowania ziemniaków ?Załóżmy, że nie możemy czekać aż pół godziny do czasu gdy proces gotowaniaziemniaków się zakończy. Co wtedy robimy ? Stosujemy algorytm przybliżony !!!Możemy przecież 'niedokładnie' obrać ziemniaki lub wyjąć z wody 'lekko'niedogotowane. Wynik działania takiego algorytmu nie będzie może najsmaczniejszyale zaoszczędzimy na czasie, który będziemy mogli wykorzystać na przykład napoczytanie o teorii grafów. Oczywiście z góry zakładamy dopuszczalna jakość.Musimy określić, co to znaczy 'lekko' niedogotowane. Nie możemy przecież jeśćziemniaków surowych! Znajdowanie cyklu Hamiltona w dowolnym grafie. Wgrafie pełnym cykl Hamiltona zawsze istnieje. W dowolnym grafie może jednak nieistnieć. Problem polegający na znalezieniu cyklu Hamiltona jest podobnie jakproblem komiwojażera 'trudny' ze względu na długi czas działania znanychalgorytmów. Do znalezienia takiego cyklu może wystarczyć 'trochę szcześcia'. Gorzejjest kiedy cykl Hamiltona w badanym grafie nie istnieje. W takim przypadku możemynawet być zmuszeni do sprawdzenia wszystkich możliwych permutacji zbioruwierzchołków, aby uzyskać pewność, że cykl taki nie istnieje.

Problem niezawodności sieci

Wyobraźmy sobie, że chcemy zaprojektować sieć komunikacyjną (np.telekomunikacyjną, drogową, komputerową). Składa się ona z pewnej liczby punktówwęzłowych (np. terminali komputerowych) i bezpośrednich połączeń (linii) międzyniektórymi z nich.

Jak przedstawić sieć komunikacyjną przy pomocy grafu ? Sieć taką możemyprzedstawić za pomocą grafu, którego wierzchołki odpowiadają punktom węzłowyma krawędź miedzy dwoma wierzchołkami oznacza bezpośrednie połączenie liniądanych dwóch punktów węzłowych. Oto przykładowa sieć składająca się z 6 punktówwęzłowych oznaczonych literami A,B,C,D,E,F i pewnych krawędzi między nimi

11

Page 12: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Wiemy, że nic nie jest doskonałe i sieć narażona jest na awarie. Spójnośćwierzchołkowa takiego grafu jest równa minimalnej liczbie awarii w punktachwęzłowych sieci, które spowodują awarię całej sieci (to znaczy między niektórymiwęzłami zostanie zerwane połączenie). Natomiast spójność krawędziowa oznaczaminimalną liczbę awarii łączy między węzłami, które spowodują awarię sieci. Przezniezawodność sieci możemy rozumieć maksymalną liczbę awarii, którychwystąpienie nie spowoduje awarii całej sieci.

Im większa spójność grafu tym większa niezawodność sieci Jak skonstruowaćsieć by jej niezawodność byla możliwie największa? Oczywiście im więcej linii(krawędzi) tym niezawodność większa. Z drugiej jednak strony zbudowanie każdegopołączenia kosztuje. Możemy założyć, że szukamy możliwie najtańszej sieci o z góryzałożonej niezawodności, bądź szukamy sieci o ustalonym koszcie i możliwienajwiększej niezawodności. Jedno z możliwych sformułowań tego problemu wyglądanastępująco:

Sformułowanie problemu.Załóżmy, że dana jest liczba punktów węzłowych oraz żądana niezawodność sieci k(liczba 'dopuszczalnych' awarii). Zbudowanie każdego bezpośredniego połączeniaobarczone jest pewnym kosztem jednostkowym (jest to pewne uproszczenie - wrzeczywistości koszty budowy połączeń są różne). Chcemy zaprojektować sieć ożądanej niezawodności, której koszt budowy będzie możliwie najmniejszy.Poszukujemy więc grafu o n wierzchołkach i możliwie najmniejszej liczbie krawędzi,któregospójność wierzchołkowa lub spójność krawędziowa wynosi k.

Znajdowanie liczby chromatycznej grafu

Sformułowanie problemu.Dane: graf GSzukane: liczba chromatyczna grafu G

12

Page 13: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Przykładowe zastosowanie Przy pomocy algorytmów znajdujących optymalnepokolorowanie wierzchołków grafu można rozwiązać następujący problem dotyczącyskładowania substancji chemicznych: Zakłady chemiczne wykorzystują przyprodukcji n surowców chemicznych. Wiadomo, że niektóre substancje nie mogą byćprzechowywane razem, gdyż zetknięcie ich ze sobą spowodowałoby 'zniszczeniemagazynu', ewentualnie katastrofę ekologiczną. Jaka jest minimalna liczbamagazynów potrzebna do przechowywania wszystkich surowców chemicznychużywanych w tej fabryce ?

Jak to zrobić używając grafu ?Tworzymy graf, którego n wierzchołków odpowiada poszczególnym surowcomchemicznym. Dwa wierzchołki łączymy krawędzią jeśli nie mogą być przechowywanerazem. Minimalna liczba magazynów potrzebnych do składowania tych surowcówjest równa liczbie chromatycznej tego grafu.

Dlaczego tak jest ?Rozważmy dowolne pokolorowanie wierzchołków tego grafu, w którym każde dwawierzchołki połączone krawędzią sa pokolorowane innym kolorem. Surowceodpowiadające wierzchołkom pokolorowanym tym samym kolorem mogą byćskładowane w jednym magazynie !

Znajdowanie indeksu chromatycznego grafu

Sformułowanie problemu.Dane: graf GSzukane: indeks chromatyczny grafu G

Przykładowe zastosowanie.Rozważmy następujący problem. Dany jest zbiór m nauczycieli oraz zbiór n klas.Podane są także liczby godzin zajęć jakie musi odbyć w ciągu tygodnia danynauczyciel z każdą z klas. Szukana jest minimalna liczba godzin w tygodniu, wczasie których mogą odbyć się wszystkie zajęcia. Wiadomo, że w danym momencieczasu nauczyciel może uczyć tylko jedną klasę i każda klasa może być uczona przeztylko jednego nauczyciela.

Jak rozwiązać problem układania planu zajęć przy pomocy grafów? Stwórzmygraf dwudzielny, którego zbiór wierzchołków można podzielić na dwa rozłącznezbiory odpowiadające nauczycielom oraz klasom. W grafie tym dopuszczamyistnienie wielu krawędzi między każdą parą wierzchołków. Wierzchołekodpowiadający nauczycielowi łączymy tyloma krawędziami z wierzchołkiemodpowiadającym klasie ile godzin zajęć musi on odbyć z tą klasą w ciągu tygodnia.Zauważmy, że jeśli pokolorujemy krawędzie tego grafu tak, aby każde dwie mającewspólny koniec były różnych kolorów, to krawędzie pokolorowane tym samymkolorem odpowiadają zajęciom, które mogą odbywać się równocześnie.

13

Page 14: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Poszukujemy więc minimalnej liczby kolorów potrzebnych do pokolorowania w tensposób wszystkich krawędzi. Innymi słowy, poszukiwany jest indeks chromatycznytego grafu. Problem ten można oczywiście skomplikować dodając założeniadotyczące sal, w których zajęcia mogą się odbywać, bądź narzucając pewne terminy,w których dane zajęcia muszą sie odbyć.

PrzykładPrzypuśćmy, że mamy 5 nauczycieli: profesorów Mroza, Nowaka, Pawlaka, Cicho iLisa oraz 4 klasy maturalne. Na poniższym rysunku pokazany jest graf stworzony napodstawie informacji o tym ile godzin zajęć w tygodniu z daną klasą ma poprowadzićkażdy z nauczycieli.

Dla przykładu: profesor Mróz ma 2 godziny z IVa i 1 godzinę z IVb a profesor Nowakpo 1 godzinie z IVa i IVc. Indeks chromatyczny tego grafu wynosi 4. Czyli w ciągu 4godzin uda się przeprowadzić wszystkie zajęcia. Widać, że mniejsza liczba godzinnie wystarczy ponieważ profesor Lis musi przeprowadzić 4 godziny zajęć. Równieżklasy IVa, IVc oraz IVd mają zaplanowane po 4 godziny. A oto jak wyglądapokolorowanie krawędzi tego grafu na 4 kolory, w którym żadne dwie krawędzie owspólnym wierzchołku nie mają tego samego koloru.

Jeżeli przyjmiemy, że każdy kolor oznacza pewien 45 minutowy okres czasu (np.8.15 - 9.00), to w prosty sposób tak pokolorowany graf można przekształcić wponiższą tabelę.

14

Page 15: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

---- ---- ---- ----

prof. Mróz IVa IVb IVa

prof. Nowak IVc IVa

prof. Pawlak IVd IVa IVc

prof. Cicho IVc IVd IVb

prof. Lis IVb IVd IVc IVd

W wierszach odpowiadających poszczególnym nauczycielom wypisane są klasy,które powinien uczyć o danej godzinie (przy czym u góry każdej kolumny zamiastgodziny jest kolor). Profesor Mróz ma najpierw godzinę z IVa potem godzinę z IVb,znowu 1 lekcję z IVa i na koniec godzinę wolną. Kolejność terminów (kolorów)możemy ustawić w dowolny sposób. Czyli profesor Mróz może mieć wpierw 2godziny z IVa a potem 1 lekcję z IVb. Wymaga to tylko zamiany miejscami 2-ej i 3-ejkolumny w tabeli.

Stopień wierzchołka w grafie to liczba krawędzi dochodzących do tegowierzchołka.

Graf regularny albo r-regularny to graf, w którym każdy wierzchołek ma ten samstopień równy r .

Zad 2

Który z poniższych grafów jest 4-regularny?

15

Page 16: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Drogą w grafie G nazywamy taki ciąg jego wierzchołków v1,v2,...,vk , że każde dwakolejne wierzchołki w tym ciągu są połączone krawędzią (czyli można przejść zjednego końca drogi na drugi chodząc tylko po krawędziach).

Zaznacz na rysunku dwa wierzchołki, a komputer pokaże ci jedną z dróg między nimi(o ile istnieje).

Cykl w grafie G to droga w tym grafie, która kończy się w tym samym wierzchołku, wktórym się zaczęła.

Zad 3

Czy w poniższym grafie istnieje cykl zawierający wszystkie jego wierzchołki? A możeistnieje cykl, zawierający wszystkie wierzchołki oprócz jednego?

16

Page 17: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Taką drogę w grafie nazywamy cyklem Hamiltona.

??? Rozwiązanie zagadki sir Hamiltona sprowadza się do znalezienia cykluHamiltona w poniższym grafie. Sprawdź, czy potrafisz.

Na rysunku podano przykładowy cykl Hamiltona w tym grafie.

17

Page 18: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Graf spójny to graf, w którym każde dwa wierzchołki są połączone drogą.

Inaczej mówiąc, graf śkłada się z jednego kawałka. Jeśli graf nie jest spójny, to jegospójne kawałki, między którymi nie ma połączenia, nazywamy składowymi grafu.

??? Czy poniższy graf jest spójny? Jeśli nie, to znajdź jego składowe.

Graf nie jest spójny. Na rysunku pokazano dwie składowe grafu.

Graf G jest izomorficzny z grafem H jeśli istnieje takie, różnowartościowe i na,przyporządkowanie (bijekcja) wierzchołków grafu H wierzchołkom grafu G , że jeślijakieś dwa wierzchołki są połączone krawędzią w jednym z grafów, to odpowiadająceim wierzchołki w drugim grafie również łączy krawędź.

Izomorfizm grafów zachowuje właściwie wszystkie interesujące własności, naprzykład: liczbę wierzchołków, liczbę krawędzi, stopnie wierzchołków, spójność,planarność. Dlatego grafy izomorficzne zwykle utożsamia się.

18

Page 19: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

??? Który z grafów B lub C jest izomorficzny z grafem A?

A:

B:

C:

Graf B jest izomorficzny z grafem A. Na rysunku podano bijekcję międzywierzchołkami obu grafów.

Graf C nie jest izomorficzny z grafem A, gdyż usunięcie dwóch zaznaczonychwierzchołków spowoduje, że graf przestanie być spójny. W grafie A takie wierzchołkinie istnieją.

19

Page 20: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

A: B:

C:

Podgraf grafu G to graf, którego wierzchołki stanowią podzbiór zbioru wierzchołkówgrafu G , a krawędzie podzbiór zbioru krawędzi G.

??? Znajdź w grafie A podgraf izomorficzny z grafem B.

A:

B:

Na rysunku zaznaczono poszukiwany podgraf.

20

Page 21: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

A:

B:

Graf nazywamy dwudzielnym jeśli zbiór jego wierzchołków można podzielić na takiedwa rozłączne podzbiory X i Y , że każda krawędź grafu ma jeden koniec w X a drugiw Y.

Innymi słowy są to wszystkie grafy, których wierzchołki można pokolorować na dwakolory tak, aby końce każdej krawędzi miały różne kolory.

??? Który z tych grafów jest dwudzielny?

A:

B:

21

Page 22: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Graf A nie jest dwudzielny, bo zawiera cykl o nieparzystej liczbie wierzchołków.Zauważmy, że wierzchołków leżących na takim cyklu nie da się pokolorować na dwakolory tak, aby końce każdej krawędzi miały różne kolory.

Graf B jest dwudzielny. Podzbiory, na które dzielimy zbiór wierzchołków grafu,zaznaczono na rysunku innym kształtem.

B:

Graf nazywamy płaskim lub planarnym jeśli można go narysować na płaszczyźniew ten sposób, że krawędzie nigdzie nie będą się przecinać.

Graf, którego nie można narysować tak, aby krawędzie nie przecinały się, nazywamynieplanarnym.

??? Czy poniższy graf jest planarny?

Tak. Na rysunku pokazano inny - bez przecinania się krawędzi - sposób narysowaniatego grafu. Ponumerowano wierzchołki obu grafów, aby lepiej uwidocznić izomorfizmmiędzy nimi.

22

Page 23: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Grubością grafu nazywamy najmniejszą liczbę planarnych podgrafów, na któremożna podzielić dany graf.

Grubość grafu G oznaczamy t(G).

Każdy graf planarny ma grubość równą 1.

??? Znajdź grubość poniższego grafu.

Można się przekonać, że graf nie jest planarny, więc jego grubość jest większa niż 1.Na rysunku pokazano podział grafu na dwa grafy planarne, więc t(G) = 2.

23

Page 24: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Spójnością grafu lub spójnością wierzchołkową grafu nazywamy taką liczbę ,że usunięcie z grafu pewnych wierzchołków spowoduje, że graf przestanie być

spójny lub zredukuje go do jednego wierzchołka, ale usunięcie dowolnych wierzchołków zawsze pozostawi graf spójny. (Wierzchołki usuwamy wraz z dochodzącymi do nich krawędziami.)

Spójność grafu oznaczamy .

??? Czy istnieje graf 3-regularny o spójności 1?

Takich grafów istnieje nieskończenie wiele. Na rysunku pokazano przykład grafu otych własnościach.

Spójnością krawędziową grafu nazywamy taką liczbę , że usunięcie z grafupewnych krawędzi spowoduje, że graf przestanie być spójny, ale usunięcie

dowolnych krawędzi zawsze pozostawi graf spójny. (Krawędzie usuwamy bez wierzchołków do których dochodzą.)

Spójność krawędziową grafu oznaczamy .

Można pokazać, że zachodzi zależność:

.

???

Czy istnieje graf o i ?

24

Page 25: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Istnieje taki graf. Na rysunku pokazano przykład grafu o tych własnościach.

Liczbą chromatyczną grafu nazywamy najmniejszą liczbę kolorów, którymi możnapokolorować wierzchołki grafu w taki sposób, aby każde dwa wierzchołki połączonekrawędzią miały różne kolory.

Liczbę chromatyczną grafu oznaczamy .

??? Znajdź liczbę chromatyczną poniższego grafu.

=3. Na rysunku pokazano przykład pokolorowania wierzchołków grafu na 3kolory.

25

Page 26: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Indeksem chromatycznym grafu nazywamy najmniejszą liczbę kolorów, którymimożna pokolorować krawędzie grafu w taki sposób, aby każde dwie krawędzie owspólnym końcu miały różne kolory.

Indeks chromatyczny grafu oznaczamy .

W 1964 roku Vizing udowodnił, że:

.

??? Znajdź indeks chromatyczny poniższego grafu.

=4. Na rysunku pokazano przykład pokolorowania krawędzi grafu na 4 kolory.

Przykłady grafów o ciekawych własnościach

• Grafy puste

26

Page 27: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

• Grafy pełne

• Grafy pełne dwudzielne

• Koła

• Drzewa i lasy

• Grafy platońskie

• Graf Petersena

• Graf Grötzscha

Grafy puste składają się jedynie z wierzchołków, nie zawierają źadnych krawędzi.

Graf pusty o wierzchołkach oznaczamy .

Grafy puste mają następujące własności:

,

,

,

,

,

, Cykl Hamiltona: nie posiadają. Cykl Eulera: nie posiadają. Są planarne.

27

Page 28: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Spróbuj zastanowić się, dlaczego tak jest.

Grafy pełne to grafy, w których każde dwa wierzchołki są połączone krawędzią. Graf

pełny o wierzchołkach oznaczamy .

Grafy pełne o wierzchołkach mają następujące własności:

Mają krawędzi.

,

,

,

,

,

dla n nieparz. n>1

dla n parzystych

Cykl Hamiltona: posiadają. Cykl Eulera: posiadają jeśli jest nieparzyste.

28

Page 29: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Są planarne tylko dla . Spróbuj zastanowić się, dlaczego tak jest.

Grafy pełne dwudzielne to grafy dwudzielne, które zawierają wszystkie możliwekrawędzie przy zadanym podziale zbioru wierzchołków. Graf pełny dwudzielny, którego wierzchołki podzielone są na zbiór elementowy i

elementowy oznaczamy .

Grafy pełne dwudzielne o mają następujące własności: Mają krawędzi.

,

,

,

,

,

, Cykl Hamiltona: posiadają jeśli . Cykl Eulera: posiadają jeśli i są parzyste.

Są planarne tylko dla dla . Spróbuj zastanowić się, dlaczego tak jest.

29

Page 30: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

W 1930 roku polski matematyk Kazimierz Kuratowski udowodnił, że najmniejsze

grafy nieplanarne to i , oraz że grafy nieplanarne to tylko te, które w pewiensposób zawierają któryś z tych dwóch grafów.

Litera "K" w oznaczeniu grafów pełnych pochodzi właśnie od jego nazwiska, a grafy

i często nazywa się grafami Kuratowskiego

Koła to grafy powstałe przez dodanie do cyklu jeszcze jednego wierzchołka ipołączenie tego wierzchołka ze wszystkimi wierzchołkami cyklu.

Koło o wierzchołkach oznaczamy .

Koła o wierzchołkach mają następujące własności:

Istnieją dla .

Mają krawędzi.

,

,

,

,

dla n nieparz.dla n parzystych

, Cykl Hamiltona: posiadają. Cykl Eulera: nie posiadają. Są planarne. Spróbuj zastanowić się, dlaczego tak jest.

30

Page 31: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Drzewa to grafy spójne nie zawierające żadnego cyklu. Istnieje wiele różnych (nieizomorficznych) drzew o tej samej liczbie wierzchołków.Oto przykłady drzew o wierzchołkach.

Drzewa o wierzchołkach mają następujące własności:

Mają krawędzi.

,

,

,

,

, Cykl Hamiltona: nie posiadają. Cykl Eulera: nie posiadają. Są planarne.

Spróbuj zastanowić się, dlaczego tak jest.

Graf, którego każda składowa jest drzewem nazywamy lasem. Oto przykład lasu:

31

Page 32: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Grafy platońskie to grafy utworzone z krawędzi i wierzchołków wielościanówforemnych.

czworościan: sześcian:

ośmiościan:

32

Page 33: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

dwunastościan:

dwudziestościan:

O wielościanach foremnych wspomina też wykład z Algebry. A miniprogram pozwalana bliższe zaznajomienie się z nimi.

Wszystkie grafy platońskie są regularne i planarne.

Łatwo można się przekonać, że grafy platońskie spełniają formułę Eulera, którąmożemy zapisać:

gdzie oznacza liczbę wierzchołków grafu, liczbę krawędzi, a liczbę obszarówgrafu. Przez obszary rozumiemy obszary spójne, na które dzielą płaszczyznękrawędzie grafu narysowanego na tej płaszczyżnie. (Dla bryły będą to po prostu jejściany). Należy pamiętać przy tym, żeby policzyć też "obszar nieskończony", czyli"zewnętrze" grafu.

Formułę Eulera spełniają wszystkie grafy planarne narysowane w ten sposób, że ichkrawędzie nie przecinają się.

33

Page 34: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Graf Petersena:

Graf Petersena jest 3-regularny.

,

,

,

,

,

, Cykl Hamiltona: nie posiada. Cykl Eulera: nie posiada. Nie jest planarny.

Spróbuj zastanowić się, dlaczego tak jest.

Graf Grötzscha:

Graf Grötzscha ma następujące własności:

,

,

34

Page 35: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

,

,

,

, Cykl Hamiltona: posiada. Cykl Eulera: nie posiada. Nie jest planarny.

Spróbuj zastanowić się, dlaczego tak jest.

Pliki i proste p tle ę

Zadanie 1

Dany jest plik wej ciowy DANE.TXT. W pierwszym wierszu pliku znajduj si 2 liczby: n i m oddzieloneś ą ęspacjami. W ka dym z kolejnych n wierszy znajduje si m liczb (typu Integer) oddzielonych spacjami.ż ęMozna za o y , e liczby m i n nie przekraczaj 100. ł ż ć ż ą

Napisz program, który wczyta z pliku wej ciowego liczby do tablicy dwuwymiarowej ś T : array[1..100,1..100] of Integer. Nast pnie program powinien dla ka dej kolumny tablicy (oę żnumerze od 1 do m) obliczyc sume wczytanych do niej liczb. Obliczone sumy nale y nast pnie wypisaż ę ćdo pliku WYNIK.TXT (tzn. wplik wynikowy powinien zawierac m liczb oddzielonych spacjami)

Zadanie 2

Tak jak powy ej ale z u yciem tablicy 1-wymiarowej ż ż T : array[1..100] od Integer zamiast 2-wymiarowej

Zadanie 3

S dwa pliki zawieraj ce ci gi liczb oddzielone spacjami: DANE1.TXT i DANE2.TXT. W ka dym plikuą ą ą żliczby s uporz dkowane, tzn ka da kolejna liczba jest nie mniejsza od poprzedniej. Napisz program,ą ą żktóry do pliku WYNIK.TXT wypisze wszystkie liczby z obu plików wej ciowych ale te uporz dkowane. ś ż ą

Zadanie 4

Napisz program, który wczyta z pliku wej ciowego dwie liczby. Liczby s w kolejnych wierszach. Liczbyś ąmog by bardzo d ugie, ale mo esz za o y , e ka da z nich ma nie wi cej ni 1000 cyfr (ka d taką ć ł ż ł ż ć ż ż ę ż ż ą ąliczb mo na reprezentowa w pami ci komputera jako tablic cyfr ę ż ć ę ę L : array[1..1000] of0..9.

Twój program powinien wypisa do pliku WYNIK.TXT (a) sum danych liczb i (b) iloczyn danych liczb. ć ę

Listy

35

Page 36: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

Zadanie 5

Napisz program, który utworzy list jednokierunkow zawieraj c liczby (liczby, które maj byę ą ą ą ą ćwstawione mo na wczyta z pliku wej ciowego albo n. wylosowa ). Nast pnie napisz funkcj , ż ć ś ć ę ęfunction Zawiera (glowa : PElListy; liczba : Integer) : Booleanktóra zwróci True gdy lista podana przez wska nik do jej pierwszego elementu zawiera elementźprzechowuj cy liczb podan w parametrze ą ę ą liczba. W przeciwnym przypadku funkcja zwróci False.Przetestuj dzia anie funkcji na utworzonej wcze niej li cie. ł ś ś

Zadanie 6 (ciekawe)

Napisz procedur , która sprawdzi, czy dane dwie listy maj wspólny element, (NIE chodzi o to czyę ąprzechowuj t sam liczb !) ą ą ą ę

Zadanie 7 (ciekawsze)

Napisz procedur , która znajdzie piwerszy taki wspólny element opisany w poprzednim zadaniu. ę

Zadanie 8

n osob gra w wyliczanke. Co k-ta osoba odpada. Kto zostanie na koncu? Napisz funkcje, która dladanych n i k zwróci numer osoby, która zostanie na koncu (osoby sa ponumerowane od 1 do n,zaczynamy wyliczac od osoby nr 1, tzn gdy n > k to jako pierwsza odpada osoba k). Funkcja powinnautworzy jednokierunkowa liste cykliczna dlugosci n i usuwac odpowiednie jej elementy. ć

Drzewa

Zadanie 9

Dane (np. w pliku) n liczb uporzadkowanych. Zbudowac drzewo BST zawierajace te liczby. Glebokoscdrzewa powinna byc mniejsza ni log n + 1 (tzn. drzewo powinno byc optymalne). ż

Zadanie 10

Typ PWierzcholek jest wskaznikiem do wierzcho ka drzewa binarnego zdefiniowanego jako łTWierzcholek = record Liczba : Integer; Lewy, Prawy : ^TWierzcholek;end;Natomiast PElListy jest wskaznikiem do elementu listy jednokierunkowej zdefiniowanego jako TElListy = record Liczba : Integer; Nast : ^TElListy;end;Napisz funkcje function Liscie (d : PWierzcholek) : PElListy, która dla drzewa danegojako wskaznik d do korzenia utworzy i zwróci liste zawierajaca liczby przechowywane w kolejnychlisciach (od lewej do prawej). Na przyklad dla drzewa: 7 / \ 9 4 / \ \ 2 1 5nale y zwróci list zawierajaca kolejno 2, 1 i 5.ż ć ę

36

Page 37: Mosty królewieckie - Staszic · 2005-04-21 · Mosty królewieckie W osiemnastym wieku mieszkańcy Królewca lubili spacerować po mostach na rzece Pregole, których mieli w mieście

37