• Nem Talált Eredményt

Legrövidebb utak

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Legrövidebb utak"

Copied!
4
0
0

Teljes szövegt

(1)

Algoritmuselmélet Schlotter Ildi

2010. május 13. ildi@cs.bme.hu

Gyakorló feladatok vizsgára

Gráfelméleti alapfogalmak

1. LegyenG = (V, E) egy irányítatlan (nem feltétlenül egyszer˝u) gráf, ami éllistával adott. Hogyan lehet O(|V|+|E|)lépésben meghatározni, hogy van-e két azonos fokszámú csúcsa?

2. Egynpontú ésnél˝u összefügg˝o gráfnak összesennfeszít˝ofája van. Mi ez a gráf?

3. Egy gráf izomorf a komplementerével. Mutassuk meg, hogy összefügg ˝o.

4. Hány éle van azncsúcsú teljes gráfnak? És azncsúcsú 4-, illetve 3-reguláris gráfnak? (Egy gráfk-reguláris, ha minden csúcsának fokak.)

5. Bizonyítsd be, hogy egy gráfban a páratlan fokszámú pontok száma páros!

6. Van-e olyan egyszer˝u gráf, amely csúcsainak fokszáma rendre a) 1, 2, 2, 3, 3, 3 ? b) 1, 1, 2, 2, 3, 4, 4 ?

c) 8, 8, 8, 5, 5, 5, 3, 2, 2 ?

7. EgyGegyszer˝u,npontú gráfban(n≥3)csak egy pontnak van páros foka. Hány páros fokú pont van ekkor Gkomplementerében? (EgyG= (V, E)gráf komplementere egyG¯ = (V, E0)gráf, aholE0-ben pontosan azok az élek szerepelnek, melyekE-ben nincsenek benne.)

8. Egy összefügg˝oGgráfról tudjuk, hogy minden pontjának foka páratlan, és van egyeéle, melyet elhagyva a gráf két komponensre esik szét. Bizonyítsuk be, hogy ekkor mindkét komponens páratlan sok pontot tartal- maz!

9. Igaz-e, hogy minden összefügg˝o gráfnak van olyan pontja, melyet (a hozzá tartozó élekkel együtt) elhagyva még mindig összefügg˝o gráfot kapunk?

10. Van-e olyan (legalább 2 pontú) egyszer˝u gráf, melyben minden pont foka különböz ˝o?

Gráfok, szélességi és mélységi bejárás

1. Adott aGirányítatlan gráf a következ˝o éllistával :

a:b, c;b:a, d;c:a, d;d:b, c, e, f;e:d, f, g;f :d, e, g, h;g:e, f, h;h:f, g;

KeressünkG-ben

(a)a-ból kiinduló mélységi feszít˝ofát! (Adja meg a mélységi és befejezési számokat is, az éleket pedig osztá- lyozza típusok szerint.)

(b)a-ból kiinduló szélességi feszít˝ofát!

2. Éllistájukkal adottak aG1ésG2irányított gráfok (zárójelben az élsúlyok).

G1:a:b(3),c(8);b:d(-7);c:d(5);d:e(2);e:a(-10);

G2:a:b(2),e(1),f(-2);b:c(8),e(-7);c:;d:c(-π);e:c(100),d(5);f:d(3),e(8);

(a) Döntsük el mélységi bejárás segítségével, hogy ezek a gráfok DAG-ok-e!

(b) Amelyik gráf DAG, abban adjunk meg egy topologikus sorrendet, határozzuk meg azajel˝u csúcsból az összes többibe vezet˝o legrövidebb utak hosszát, és számítsuk ki a gráfban lev˝o leghosszabb út hosszát is.

3. Határozzuk meg az alábbi gráfban a forrásból a többi pontba vezet˝o legrövidebb illetve leghosszabb utak hosszát!

a)

6 1

1 2

0

3 0 1

3 1 3

1

4 5

1

b)

B

A C

2

9 4

5 3

D 1 E

7 F

5 −1

5

4. Határozzuk meg az alábbi gráfban a forrásból a többi pontba vezet˝o legrövidebb utak hosszát azx valós paraméter függvényében!

(2)

10 10

15 15

8 10

7 7

x 7

5 5

5. Éllistával adott a súlyozott él˝u G = (V, E)gráf. Tegyük fel, hogy az élek súlyai az 1,2,3 számok közül valók. JavasoljunkO(n+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. (IttnaGgráf csúcsainak,epedig az éleinek a száma.) 6. LegyenGegy irányítatlan összefügg˝o gráf. Igaz-e, hogy

(a)Gmindenféléhez vanG-nek olyan mélységi bejárása, amelybenfegy faél?

(b)Gmindenféléhez vanG-nek olyan szélességi bejárása, amelybenf egy faél?

(c)GmindenFfeszít˝ofájához vanG-nek olyan mélységi bejárása, amelybenF minden éle faél?

(d)GmindenFfeszít˝ofájához vanG-nek olyan szélességi bejárása, amelybenFminden éle faél?

7. Egy játékban egyn×mrácson lépegetünk. Egy lépés során a rács mentén vízszintesen jobbra vagy függ ˝o- legesen lefelé tudunk a következ˝o rácspontba lépni. Azonban adott néhány keresztez˝odés, ahova nem szabad lépnünk. AdjonO(nm)futási idej˝u algoritmust annak meghatározására, hogy ha a bal fels ˝o rácspontból kez- dünk, akkor el tudunk-e jutni a jobb alsó sarokba.

8. Egyn×n-es sakktábla néhány mez˝ojén az ellenfél egy huszárja (lova) áll. Ha mi olyan mez˝ore lépünk, ahol az ellenfél le tud ütni, akkor le is üt, de egyébként az ellenfél nem lép. Valamelyik mez ˝on viszont a mi huszárunk áll. AdjunkO(n2)lépésszámú algoritmust, ami meghatározza, hogy mely másik mez˝okre tudunk (lólépések sorozatával) eljutni a nélkül, hogy az ellenfél leütne!

9. A 6 pontúGgráf csúcsait jelöljex, y, z, u, v, w. A gráf egy mélységi bejárásánál a mélységi, ill. a befejezési számok a következ˝ok:x: 1,6;y: 2,4;z: 6,5;u: 3,3;v: 4,1;w: 5,2. Adjuk meg a bejáráshoz tartozó mélységi feszít˝ofa éleit. Rekonstruálható-eGaz el˝oz˝o számok ismeretében?

10. Egy számítógéphálózatbannszámítógép van. Minden olyan eseményt, hogy azi-edik gép üzenetet küld a j-ediknek(i, j, t)formában feljegyezünk, ahol ategész szám az üzenet küldésének id ˝opontját jelöli. Ugyan- abban atid˝opontban egy gép több gépnek is küldhet üzenetet. Ha atid˝opontban azi-edik gép vírusos volt, akkor egy(i, j, t)üzenet hatására aj-edik gép megfert˝oz˝odhet, ami azt jelenti, hogy at+ 1id˝oponttól kezdve már aj-edik gép is vírusos lehet. Legyen adott az(i, j, t)hármasoknak egymhosszú listája, valamintx,y és t0 < t1 egész számok. Azt kell eldöntenünk, hogy ha azx-edik gép at0 id˝opontban vírusos volt, akkor lehet-e emiatt azy-adik gép at1id˝opontban vírusos. Adjon algoritmust, ami ezt a kérdéstO((t1−t0)n+m) lépés után megválaszolja.

11. Bizonyítsuk be, hogy minden hurokélmentesG= (V, E)irányított gráf felbontható két DAG-ra; pontosabban az élhalmazának van olyanE1, E2 partíciója (E = E1∪E2 ésE1∩E2 =∅), hogy aG1 = (V, E1)és a G2= (V, E2)gráfok DAG-ok!

12. Legyen adott egyn×npixelb˝ol álló fekete-fehér kép. Szeretnénk a képen a bal fels˝o saroktól a jobb alsó sarokig egy jobbra-lefele haladó határvonalat húzni úgy, hogy a vonaltól jobbra-felfele es ˝o fekete, valamint a vonaltól balra-lefele es˝o fehér pixelek számának az összege a lehet˝o legkisebb legyen. Oldjuk meg ezt a feladatotO(n2)id˝oben!

13. Egy el˝ore rögzített útvonalon úgy indulunk el, hogy az autó L literes tankja tele van. Úticélunkhoz úgy akarunk elérni, hogy legalább egy fél tanknyi benzin maradjon az autóban. Tudjuk, hogy az utunkba es ˝o n benzinkút közül melyikben mennyibe kerül a benzin, továbbá, hogy két szomszédos benzinkút között, vala- mint a kiindulóponttól az els˝o benzinkútig, illetve az utolsó benzinkúttól a célunkig mennyi benzint fogyaszt az autó. Az egyszer˝uség kedvéért ha megállunk egy benzinkútnál, akkor mindig tele tankolunk. Adjon algo- ritmust, amiO(Ln2)lépésben megmondja, hogy hol álljunk meg tankolni ha azt akarjuk, hogy utunk során a benzinköltség minimális legyen.

Legrövidebb utak

1. a) Határozza meg minden lehetséges(s, t)pontpárra azs-b˝ol at-be vezet˝o legrövidebb út hosszát aGgráfban a Floyd-algoritmus segítségével!

b) Határozza meg az A csúcsból az összes többibe vezet˝o legrövidebb utak hosszát az alábbi gráfban a Bellmann-Ford algoritmus segítségével!

(3)

5 61

1

6 1

2 A

H B

D

F E

C

3 3

1 4

2

G 4

−3 2 1 −2

3

1 D E

B C

A

2. 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á azt, hogy aG-beli egyszer˝u irányított utak legfeljebb 25 élb ˝ol állnak. JavasoljunkO(n2)költség˝u módszert az 1 ∈ V pontból az összes továbbiv ∈ V pontokba viv˝o legrövidebb utak hosszának a meghatározására.

3. 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. (Pl. ha aj. a dollár, azi. a forint, akkor mostrij = 183lehet.) Azrij

tömb felhasználásával adjonO(n3)lépéses algoritmust, amely minden valutapárra meghatározza, hogy mi az elérhet˝o legjobb átváltási arány, ha feltesszük, hogy az átváltásokért nem számolnak fel külön költséget. (Az i-r˝ol aj-re való átváltás történhet több lépcs˝oben is, érdemes lehet el˝obbi-r˝olk1-re konvertálni, onnank2-re, stb., végülj-re.)

4. Vidéken autózunk, ahol benzinkút csak bizonyos falvakban van. AzAfalubeli benzinkúttól indulunk és aB faluba akarunk elérni (ahol szintén van benzinkút). A falvak közötti utakat egyncsúcsúeél˝u, összefügg ˝o, irányítatlan gráf írja le, melynek csúcsai a falvak, az élek pedig a falvak közötti utakat jelentik, egy él súlya a két falut összeköt˝o útszakasz hossza. A gráf az éllistájával adott, és ezen kívül adott még az akfalu, amelyben van benzinkút. AdjonO(kne)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.

5. Éllistával adott a súlyozott él˝u G = (V, E)gráf. Tegyük fel, hogy az élek súlyai az 1,2,3 számok közül valók. JavasoljunkO(n+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. (IttnaGgráf csúcsainak,epedig az éleinek a száma.)

Minimális súlyú feszít˝ofák

1. Girányítatlan gráf a következ˝o éllistával (zárójelben a költségek):

a:b(2),c(3); b:a(2),d(2); c:a(3),d(1); d:b(2),c(1),e(2),f(4);e:d(2),f(1),g(2); f:d(4),e(1),g(2),h(1);g:e(2),f(2),h(3);

h:f(1),g(3);

KeressünkG-ben

a) Prim algoritmusával minimális költség˝u feszít˝ofát!

b) Kruskal algoritmusával minimális költség˝u feszít˝ofát!

2. Öt falu szeretne aszfaltutat építeni egymás között, hogy bármelyik faluból el tudjanak jutni bármelyik másik faluba. Mi a legolcsóbb megoldás, ha az egyes falvakat az alább láthatóH gráf csúcsai, a falvak közti útépítés költségeit pedig az adott élre írt számok jelképezik?

3. Van egy2npontú teljes gráfunk, melyet két egyenl˝o pontúAésBhalmazra bontunk. A két halmazon belül az élek súlya 1, míg a két ponthalmaz között 2. Mekkora súlyú a minimális összsúlyú feszít ˝ofa a gráfban?

Hányféleképpen állhat el˝o?

4. A szoftverpiaconnféle grafikus formátum közötti oda-vissza konverzióra használatos programok kaphatók:

azi-edik és aj-edik között oda-vissza fordító program áraaij, futási ideje pedigtij(ha létezik).

a) Javasoljunk módszert annak megtervezésére, hogy minden egyes formátumról a saját grafikus terminálunk által megértett formátumra a lehet˝o leggyorsabban konvertáljunk! (Az ár nem számít.)

b) Javasoljunk módszert annak eldöntésére, hogy mely programokat vásároljuk meg, ha azt szeretnénk a lehet˝o legolcsóbban megoldani, hogy a megvett programok segítségével bármelyik formátumról bármelyik más formátumra képesek legyünk konvertálni. (Itt a futási id˝o nem számít).

5. Mátrixával adott egyG(V, E) irányítatlan gráf, melynek minden éléhez egy pozitív súly tartozik. A gráf minden csúcsa vagy egy raktárat vagy egy boltot jelképez, az élsúlyok a megfelel ˝o távolságokat jelentik.

OlyanG0 részgráfját keressük G-nek, amely minden csúcsot tartalmaz, és amelyben minden bolthoz van legalább egy raktár, ahonnan oda tudunk szállítani (azaz van köztük út a gráfban). AdjonO(n2)lépésszámú algoritmust egy a feltételeknek megfelel˝o minimális összsúlyúG0részgráf megkeresésére.

(4)

6. LegyenG = (V, E)egy súlyozott irányítatlan gráf, amiben minden él súlya pozitív. Tegyük fel, hogyG összefügg˝o, de nem teljes gráf. AGgráfhoz egy 0 súlyú élt akarunk hozzáadni úgy, hogy a keletkez ˝oG0 gráfban a minimális feszít˝ofa súlya a lehet˝o legkisebb legyen. Adjon algoritmust ami a mátrixával adottG gráfraO(|V|3)lépésben meghatározza, hogy melyik két, aG-ben nem összekötött pont közé húzzuk be az új élet.

Párosítás

1. Keressen javítóutat az alábbi páros gráfban!

2. Az alábbiP gráfban vastag élekkel jelöltem egyM párosítást. A magyar módszer segítségével keressen javítóutatM-hez, és ennek segítségével növeljeMméretét a tanult módon. A kapott párosításról döntse el, hogy az teljes illetve maximális párosítás-e! Mindkét választ indokolja!

PSfrag replacements

H

A B C D E F

P K

1 2 3 4 5 6

7

8 2 π

3. Kutyasétáltatáskor egy parkban egy gazda egy rögzített, egyenes szakaszokból álló útvonalon halad, aminek töréspontjait1, . . . , tn, a bejáratot jelöljet0, a kijáratottn+1. A kutyája szabadon szaladgál, de atipontokban találkozik a gazdájával. Atiésti+1pontokban való találkozás között a kutya szeretne egy fát is meglátogatni (mindeni= 0,1, . . . , nesetén legfeljebb egyet-egyet). Legyenek adottak azs(ti, ti+1)távolságok (0≤i≤ n), valamint minden fának az összestiponttól vett távolsága. Tegyük fel, hogy két találkozás között a kutya legfeljebb kétszer akkora távolságot tud megtenni, mint a gazda. Adjon algoritmust, ami segít a kutyának eldönteni, hogy mikor melyik fát látogassa meg ha a kutya célja, hogy minél több fánál járjon. Az algoritmus lépésszáma legyenO(n2f+nf2), aholf a parkban lev˝o fák számát jelöli.

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

folyamatnak a következménye, hogy nagyjából 6-8 ezer évvel ezelőtt kialakultak az első úgynevezett komplex társadalmak, melyeket nemcsak a társadalom rétegződése jellemzett,

In 2007, a question of the doctoral dissertation of author was that how the employees with family commitment were judged on the Hungarian labor mar- ket: there were positive

-Bihar County, how the revenue on city level, the CAGR of revenue (between 2012 and 2016) and the distance from highway system, Debrecen and the centre of the district.. Our

Melyik kutatókat vonjuk be a projektbe, hogy minden alprojekten dolgozzon legalább 3 ember, minden tanszékr˝ol legyen vala- ki, és a kutatók száma minimális legyen1. Egy

Adjon O(log n) elemsz´ am´ u elj´ ar´ ast, ami eld¨ onti, hogy igaz-e, hogy az els˝ o fa minden eleme nagyobb, mint a m´ asodik fa minden eleme. (Eml´ ekeztet˝ o¨ ul: a teljes

Mennyi lehet a t´ arolt elemek minim´ alis, illetve maxim´ alis sz´ ama, ha tudjuk, hogy csak pozit´ıv eg´ esz sz´ amokat t´ arol a fa?. Tudjuk, hogy a b 0 parit´ asbit (ami

Tudjuk, hogy az utunkba es˝ o n benzink´ ut k¨ oz¨ ul melyikben mennyibe ker¨ ul a benzin, tov´ abb´ a, hogy k´ et szomsz´ edos benzink´ ut k¨ oz¨ ott, valamint a kiindul´

Befejezési sorrenden pedig G csúcsainak azon sorrendjét tekintjük amely megmondja, hogy milyen sorrendben foglalkoztunk velük utoljára.. A példa bejárás elérési sorrendje B, D,