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