• Nem Talált Eredményt

3. gyakorlat Szélességi bejárás, legrövidebb utak

N/A
N/A
Protected

Academic year: 2022

Ossza meg "3. gyakorlat Szélességi bejárás, legrövidebb utak"

Copied!
1
0
0

Teljes szövegt

(1)

Algoritmuselmélet Schlotter Ildi

2011. február 21. ildi@cs.bme.hu

3. gyakorlat

Szélességi bejárás, legrövidebb utak

1. Milyen feszít˝ofát kapunk aGgráf szélességi bejárása esetén, haG=Kn? És haG=Kn,m?

2. Határozza meg azAcsúcsból a többibe vezet˝o legrövidebb utak hosszát H-ban a Dijkstra-algoritmussal! Mely élekre igaz, hogy az él súlyát 1-el csökkentve nem változnak meg azA-tól mért távolságok?

6

5 1

1 6

1 2 A

H B

D

F E

C

3 3

1 4

2

3. Éllistával adott egy súlyozott él˝uG = (V, E)gráf. Tegyük fel, hogy az élek súlyai az 1,2,3 számok közül valók. JavasoljunkO(|V|+|E|)költség˝u algoritmust azs∈V pontból az összes továbbiv ∈ V pontokba viv˝o legrövidebb utak hosszának a meghatározására.

4. Az éllistával adottG(V, E)összefügg˝o, irányított gráf minden éle az1,2, . . . , kszámok valamelyikével van súlyozva. Egy út értéke legyen az úton található élek súlyainak maximuma. Határozza megO(|E|logk) lépésben, hogy adottx, y∈V esetén mennyi a lehet˝o legkisebb érték˝ux-b˝oly-ba vezet˝o út értéke.

5. A mátrixával adottGirányított gráf élei között van egy negatív súlyú él, a többi él súlya pozitív. A gráfban nincs negatív súlyú kör. AdjonO(n2)lépésszámú algoritmust azs∈ V(G)pontból az összes többi pontba vezet˝o legrövidebb utak meghatározására.

6. Egy bajnokságban2ncsapat vesz részt. Minden fordulóban minden csapat pontosan egy mérk˝ozést játszik.

Minden mérk˝ozést a két résztvev˝o csapat valamelyikének a pályáján játszanak. A következ˝okforduló mind- egyikére már adott, hogy ki kivel fog játszani, az viszont még nem, hogy melyik mérk˝ozés kinek a pályáján történjen. Olyan pályabeosztást szeretnénk készíteni az adott mérk˝ozésekhez, hogy minden csapat felváltva játsszon a saját pályáján és idegenben. AdjonO(kn)lépésszámú algoritmust, ami elkészít egy ilyen pályabe- osztást, ha ez lehetséges.

7. Egynpontú teljes gráf csúcsait kell kiszíneznünk csupa különböz˝o szín˝ure. Összesenk≥nféle szín áll ren- delkezésre, de az egyes pontok színe nem teljesen tetsz˝oleges. Mindenvcsúcshoz adott színeknek egyS(v) listája, avcsúcsot csak azS(v)-ben szerepl˝o színek valamelyikére színezhetjük. AdjonO(nk2)lépésszámú algoritmust, amely talál a megkötéseknek megfelel˝o színezés, ha van ilyen.

Gyakorlás:

1. LegyenG= (V, E)mátrixszal adottnpontú, súlyozott él˝u irányított gráf. Tegyük fel, hogyGnem tartalmaz negatív összhosszúságú irányított kört, továbbá aG-beli egyszer˝u irányított utak legfeljebb 25 élb˝ol állnak.

JavasoljunkO(|V|2)költség˝u módszert azs∈V pontból az összes továbbiv∈V pontokba viv˝o legrövidebb utak hosszának a meghatározására.

2. Vidéken autózunk, ahol benzinkút csak bizonyos falvakban van. AzAfalubeli benzinkúttól indulunk és a Bfaluba akarunk elérni (ahol szintén van benzinkút). A falvak közötti utakat egy összefügg˝o, irányítatlan, éllistájával adottG = (V, E)gráf írja le: Gcsúcsai a falvak, az élek a falvak közötti utakat jelentik, egy él súlya a két falut összeköt˝o útszakasz hossza. Ezen kívül adott még az akfalu, amelyben van benzinkút.

AdjonO(k|E|log|V|)lépésszámú algoritmust, amely meghatározza azA-bólB-be viv˝o legrövidebb olyan útvonalat, melynek során soha nem kell 600 kilométernél többet autóznunk két benzinkút között.

3. Éllistával adott egy Ggráf, melynekn csúcsa éseéle van. A gráf minden csúcsához hozzá van rendelve egy1éskközötti egész szám (címke). Találjunk (ha létezik) olyan tarka utat a gráfban, amelyben minden 1≤i≤kcímke pontosan egyszer fordul el˝o. Az algoritmus lépésszáma legyenO(k! (e+n)).

4. Nyári utazásunkra valutát akarunk váltani. A pénzváltónkülönböz˝o valutával foglalkozik, aj. fajta 1 egysé- géértrij-t kell fizetni azi. pénznemben. Azrijtömb felhasználásával adjonO(n3)lépéses algoritmust, amely minden valutapárra meghatározza, hogy mi az (esetleg több átváltással) elérhet˝o legjobb átváltási arány!

5. Adott éllistával egyn pontú,e él˝u összefügg˝o, irányítatlan Ggráf. Adjunk O(e)lépésszámú algoritmust olyanX ⊂V(G)központi ponthalmaz keresésére, melyre|X| ≤n/2teljesül! AzX ⊆V(G)ponthalmaz központi, haGminden pontja vagyX-beli, vagy egyetlen éllel elérhet˝o valamelyikX-beli pontból.

6. AdottG= (V, E, c)irányított élsúlyozott gráfhoz keressünkO(|V||E|)lépésben olyanπ(v)értékeket min- denv∈V esetén, hogy ac(uv) =c(uv)+π(u)−π(v)élsúlyok nemnegatívak legyenek. Hogyan használható ez az eljárás legrövidebb utak hosszainak meghatározására?

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Általános lépés: vesszük a sor elején lev ˝o x csúcsot, töröljük a sorból, meglátogatjuk azokat az y szomszédait, amelyeket eddig még nem láttunk, majd ezeket az y csúcsokat

Adjon O ( n 2 ) lépésszámú algoritmust, ami meghatározza, hogy az első oszlop melyik eleméből induljunk, ha azt akarjuk, hogy a bejárt mezőkön lévő számok összege minimális

Adjon ezen algoritmus felhaszn´ al´ as´ aval egy polinomi´ alis algoritmust egy j´ o 3-sz´ınnel val´ o sz´ınez´ es megkeres´ es´ ere.. Tegy¨ uk fel, hogy van egy polinomi´

Adjon O(ke log n) l´ep´essz´ am´ u algoritmust, amely meghat´ arozza az A-b´ol B-be viv˝ o legr¨ovidebb olyan ´ utvonalat, melynek sor´ an soha nem kell 600 kilom´etern´el t¨

Adjon O(n 2 ) lépésszámú algoritmust, ami meghatározza, hogy az első oszlop melyik eleméből induljunk, ha azt akarjuk, hogy a bejárt mezőkön lévő számok összege minimális

Adjon algoritmust, ami adott L ´es h i sz´ amokhoz meghat´arozza, hogy melyik f´ajlt melyik lemezre tegy¨ uk ahhoz, hogy k a lehet˝o legnagyobb legyen... Az ¨ utk¨

Szeretn´ enk ´ ugy ´ atrendezni, hogy az egysz´ın˝ u elemek folytonosan helyezkedjenek el (el¨ ol az ¨ osszes piros, ut´ ana az ¨ osszes z¨ old vagy ford´ıtva).. Egy megengedett

Adjon O(m) lépésszámú algorit- must, amely meghatározza, hogy egy újabb elem lineáris próbával történ® beszúrásakor maximum hány ütközés történhet.. Az ütközések