Temat: Algorytmy grafowe
Transkrypt
Temat: Algorytmy grafowe
ALGORYTMY I STRUKTURY DANYCH WICZENIA, III SEMESTR, STUDIA DZIENNE Temat: Algorytmy grafowe Zadanie 1 „GPS domowej roboty” Do mapy drogowej doł czona została płytka CD z tabel długo ci najkrótszych dróg (odległo ci) mi dzy ka dymi dwoma miastami na mapie. Wszystkie drogi s dwukierunkowe. Poło enie miast na mapie ma nast puj c ciekaw własno . Je eli długo najkrótszej drogi z miasta A do B jest równa sumie długo ci najkrótszych dróg z A do C i z C do B, to miasto C le y na (pewnej) najkrótszej drodze z A do B. Powiemy, e dwa miasta A i B s siaduj ze sob , je eli nie istnieje miasto C takie, e długo najkrótszej drogi z miasta A do B jest równa długo ci najkrótszych dróg z A do C i z C do B. Zaproponuj mo liwie najefektywniejszy algorytm, który na podstawie danej tabeli odległo ci znajdzie wszystkie pary miast s siaduj cych ze sob . Je eli tabela odległo ci ma na przykład posta : A B C A 0 1 2 B 1 0 3 C 2 3 0 to s siednimi miastami s A i B oraz A i C. Zaproponuj mo liwie najefektywniejszy algorytm, który na podstawie tabeli odległo ci znajduje wszystkie pary s siednich miast. Zakładamy, e odległo ci mi dzy miastami to liczby dodatnie, całkowite, z zakresu od 1 do 200. Miasta s ponumerowane kolejnymi liczbami naturalnymi. Kolejno wypisywania par wynikowych powinna by taka, e dla pary (a,b) poprzedzaj cej par (c,d), a < c lub (a = c i b < d). Przykład Dane: Liczba miast =3; Tabela odległo ci: 012 103 230 Wynik (pary miast s siednich): 12 13 Zadanie 2 „Mapa bitowa” Dana jest prostok tna bitmapa o rozmiarach n × m. Ka dy piksel bitmapy jest albo biały, albo czarny, przy czym co najmniej jeden jest biały. Piksel w i-tym wierszu i j-tej kolumnie bitmapy nazywamy pikselem (i, j). Odległo dwóch pikseli p1 = ( i1, j1) oraz p2 = ( i2, j2) okre lamy jako d( p1, p2) = |i1 − i2| + |j1 − j2|. Zaproponuj algorytm, który na podstawie opisu bitmapy obliczy dla ka dego piksela odległo do najbli szego piksela białego. Zakładamy, e n i m s z zakresu od 1 do 182. Znak ‘1’ w opisie bitmapy oznacza kolor biały, a znak ‘0’ kolor czarny. 1 ALGORYTMY I STRUKTURY DANYCH WICZENIA, III SEMESTR, STUDIA DZIENNE Przykład Dane: n=3, m=4; Bitmapa: 0001 0011 0110 Wynik (pozycja i,j okre la odległo 3210 2100 1001 piksela (i,j) bitmapy do najbli szego pola białego): Zadanie 3 „Impreza” Na imprezie spotyka si grupa n studentów. W grupie tej cz osób si zna, ale cz widzi si po raz pierwszy. Zaproponuj mo liwie najefektywniejszy algorytm, który sprawdza, czy mo na tak podzieli grup studentów na dwie rozł czne podgrupy, e w ka dej z podgrup znajd si studencie znaj cy si nawzajem. Oczywi cie zakładamy, e je eli student A zna studenta B to student B zna studenta A. Przykład n =6; Studenci s reprezentowani numerami od 1 do 6. Oto listy znajomo ci poszczególnych studentów: 1: 2, 3, 4 (taki zapis oznacza, e student 1 zna studenta 2, 3, i 4) 2: 1, 3, 5 3: 1, 2, 4 4: 1, 3, 5, 6 5: 2, 4, 6 6: 4, 5 Tak grup mo na rozbi na dwie podgrupy studentów, którzy znaj si ka dy z ka dym. Te podgrupy to: I podgrupa składa si ze studentów: 1, 2, 3 II podgrupa składa si ze studentów: 4, 5, 6 2