A BFS algoritmus. Folytassuk az 1. lépésnél. 2. lépés. Ha k = j, akkor STOP. k k + 1

Hasonló dokumentumok
4. Legyen Σ = {0, 1}. Adjon meg egy determinisztikus véges automatát, amely azokat a szavakat fogadja el,

Tartalom Fogalmak Törvények Képletek Lexikon 0,2 0,4 0,6 0,8 1,0 0,2 0,4 0,6 0,8 1,0

KIEGÉSZÍTÉS A VONALINTEGRÁLHOZ

Környezetfüggetlen nyelvek

Házi feladatok megoldása. Automaták analízise, szintézise és minimalizálása. Házi feladatok megoldása. Házi feladatok megoldása

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Budapesti Műszaki Főiskola Kandó Kálmán Villamosmérnöki Főiskolai Kar Automatika Intézet. Félévi követelmények és útmutató VILLAMOS GÉPEK.

Középiskolás leszek! matematika. 13. feladatsor

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Környezetfüggetlen nyelvek

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

IX. A TRIGONOMETRIA ALKALMAZÁSA A GEOMETRIÁBAN

Denavit-Hartenberg (D-H) feladat megoldás: Készítette: Dévényi Péter (2011)

PÁLYÁZATI ÚTMUTATÓ. a Társadalmi Megújulás Operatív Program keretében

SÁRVÁR KÖZPONTI AKCIÓTERÜLETÉNEK ELİAKCIÓTERÜLETI TERVE

VI.8. PITI FELFEDEZÉSEK. A feladatsor jellemzői

FÁCÁNKERT HELYI ÉRTÉKVÉDELMI KATASZTER

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

TENGELY szilárdsági ellenőrzése

2000. évi XXV. törvény a kémiai biztonságról1

24. MŰVELETI ERŐSÍTŐK ALKALMAZÁSAI

1. feladat Oldja meg a valós számok halmazán a következő egyenletet: 3. x log3 2

PÉLDA: Négyezer-hatszázöt Jel Szám

Házi feladatok megoldása. Veremautomaták. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 12. gyakorlat

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Z600 Series Color Jetprinter

d) Kétfokozatú differenciálerősítő közvetlen csatolással Ha I B = 0: Az n-p-n tranzisztorok munkaponti árama:

Sugárszivattyú H 1. h 3. sugárszivattyú. Q 3 h 2. A sugárszivattyú hatásfoka a hasznos és a bevezetett hidraulikai teljesítmény hányadosa..

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

Lineáris programozás

LINEÁRISAN FÜGGETLEN ÉS LINEÁRISAN ÖSSZEFÜGGŐ VEKTOROK. csak úgy teljesül, ha minden 0. úgy is teljesül, hogy van olyan 0

Ellenırzési nyomvonal

Improprius integrálás

KÖZPONTI STATISZTIKAI HIVATAL

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

A vasbeton vázszerkezet, mint a villámvédelmi rendszer része

Jegyzőkönyv. Termoelektromos hűtőelemek vizsgálatáról (4)

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

Matematikai feladatlap T9-2013

"ALAPÍTÓ OKIRAT... A továbbiakban változatlanul a 13. ponttal bezárólag. Határidő: határozat megküldésére: október 30.

Műveletek komplex számokkal

Az LR elemző felépítése. Léptetés. Redukálás. Kiegészített grammatika. Mit kell redukálni? Kiegészített grammatika. elemző. elemző.

Egyházashollós Önkormányzata Képviselőtestületének 9/ (IX.17) ÖR számú rendelete a helyi hulladékgazdálkodási tervről

PÉLDA: Négyezer-hatszázöt Jel Szám

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Gyakorló feladatsor 9. osztály

A Szolgáltatás minőségével kapcsolatos viták

A 35. Mikola Sándor Fizikaverseny feladatainak megoldása Döntő - Gimnázium 10. osztály Pécs pont min

ELASTO - LINE I. Vasalatlan saruk

Fejlesztőfeladatok ANYANYELVI KOMMUNIKÁCIÓ. 2. szint

(11,05 Miskolczi Ferenc megérkezett, a létszám: 21 fő)

Improprius integrálás

Szombathelyi Csónakázó- és Horgásztó

Laplace transzformáció

Exponenciális és logaritmikus egyenletek, egyenletrendszerek, egyenlôtlenségek

É í

Mátrix-vektor feladatok Összeállította dr. Salánki József egyetemi adjunktus Begépelte Dr. Dudás László és Bálint Gusztáv

Kerületi Közoktatási Esélyegyenlőségi Program Felülvizsgálata Budapest Főváros IX. Kerület Ferencváros Önkormányzata 2011.

Házi feladatok megoldása. Harmadik típusú nyelvek és véges automaták. Házi feladatok megoldása. VDA-hoz 3NF nyelvtan készítése

VI. Kétismeretlenes egyenletrendszerek

x + 3 sorozat első hat tagját, ha

í ü ü ú í ü ú ú É Á í ű Á ú í ü í Ő Ű í Ó ű í ü í ű Ú ú É í ü í í

ELŐKÉSZÜLETEK HÍMZÉS FÜGGELÉK. Számítógép-vezérelte hímzőgép. Használati utasítás

M. 2. Döntsük el, hogy a következő két szám közül melyik a nagyobb:

É ű ű ú ú ú Ü ú Ö ű ü ü ü

ó í ú ő ó ó ü ő í ú ó ü Ö Í ö ő ü ö ö ó ő ü Ü ö Ö ö ü ó ü ú ö Ö í í ő ö ü ú ü ü ó í ő ő ü í ü É ő ő Í ö ö ó ő ó ó ő ü ö ü ő ó ő ő ö Ö ő ü ő ő ő ü ö ö

MATEMATIKA B változat. A tanuló neve, osztálya:...

Formális nyelvek I/2.

ö ü ü ö ö í Ö Í ü ö ü ö ü Á Á í ö Í í Í ö í Í ö Í ü üí ü ö Í ű ö í í

A PIV - hajtásról II.

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

Folyamatba épített előzetes utólagos vezetői ellenőrzés. Tartalom. I. A szabálytalanságok kezelésének eljárásrendje

DEME FERENC okl. építőmérnök, mérnöktanár RÁCSOS TARTÓK

Mérnöki modellalkotás Az elmélettől a gyakorlatig. Prefix fák tömörítése: a dinamikus programozás

Formális nyelvek. Aszalós László, Mihálydeák Tamás. Számítógéptudományi Tanszék. December 6, 2017

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Ó ú É Ú

MATEMATIKA ÉRETTSÉGI október 25. KÖZÉPSZINT I.

Gyakorló feladatok a Kísérletek tervezése és értékelése c. tárgyból Kísérlettervezés témakör

Néhány szó a mátrixokról

19. Függvények rekurzív megadása, a mester módszer

Ö Ó Ó Ó

Ó ű ű ű ű ű ű É É É

Ó ú É ú É É É Ő ú ú ű Ó Ö É É ú Ü ú É ú

É ö

JÁRÁSI SZINTŰ ESÉLYTEREMTŐ PÜSPÖKL ADÁNYI JÁRÁS

GAZDASÁGSZERKEZETI ÖSSZEÍRÁS, 2013 (EGYÉNI GAZDASÁGOK)

TIMSS TERMÉSZETTUDOMÁNY. 8. évfolyam NYILVÁNOSSÁGRA HOZOTT FELADATOK

Ü ű Ü É ű ű É Ü Ü

Ü Ü Ó Ü Ó

ű ű ű Ö ű ű ű Ú ű ű ű Ö ű ű ű ű ű ű ű

Ú Ú Ü Ü ű ű ű É Ú É ű

Ó Ó ú ú ú ú ú É ú

Lakások elektromágneses sugárzásának mértéke és ezek csökkentési lehetőségei

Ö

Juhász István Orosz Gyula Paróczay József Szászné Dr. Simon Judit MATEMATIKA 10. Az érthetõ matematika tankönyv feladatainak megoldásai

Átírás:

A BFS loritmu A BFS (Bredth Firt Serh, myrul Széleéi kereé) loritmu ey dott G ráf dott pontjáól mehtározz z öze v ú t(v) távoláát vyi z -ől v-e vezető lerövide út hozát (h ilyen út eyáltlán vn). Itt z út hoz ltt eyzerűen z utt lkotó élek zámát értjük. Ezzel eyütt zt i eldönti, hoy ráf özefüő-e, illetve h nem z, kkor mehtározz z -et trtlmzó komponen úit. Az eljárát zámo özetette ráfelméleti loritmu i hználj zurutinként. A BFS loritmu működéének lpötlete rendkívül eyzerű: h már metláltuk z -től 0,1,...,t 1 távolár lévő úokt, kkor t távolár lévők éppen zok, melyek ezek között nem zerepelnek, de zomzédok ey t 1 távolár lévővel. Az -től 0 távolár nyilván k m vn. Íy z eljárá előzör mekerei z 1 távolár lévő, vyi -el zomzédo pontokt. Mjd z ezek közül vlmelyikkel, de -el nem zomzédo úokt 2 távolár lévőnek nyilvánítj. Ezek után 2 távolár lévők vlmelyikével zomzédo, de eddi nem érintett úokt 3 távolár lévőnek nyilvánítj, t. Perze z loritmu z -től zono távolár lévő úokt nem tudj eyzerre ejárni, íy ezek között i kilkít ey (véletlenzerű) orrendet. Íy véül i z öze, -el ey komponene trtozó úot felorolj vlmilyen orrenden. Az lái pzeudokóddl fenti, zemlélete képnél kiit ponton i leírjuk BFS loritmut. Az eljárá működée orán z lái dtokt trtj nyilván: (i) (i = 1,2,...): z i-edikként ejárt ú t(v) (v V ) : v távolá -től m(v) (v V,v ) : v-t meelőző ú z loritmu áltl metlált, -ől v-e vezető lerövide úton j: z eddi ejárt úok zám k: jelenle ktív ú orzám (1),(2),... oroztn BFS ALGORITMUS Bemenet: Ey G = (V,E) ráf é ey V ú 0. lépé. j 1, k 1, (1), t() 0, minden v V, v -re t(v) 1. lépé. H (k) únk vn olyn v zomzédj, melyre t(v) =, kkor: j j + 1 ( j) v t(v) t ( (k) ) + 1 m(v) (k) Folytuk z 1. lépénél. 2. lépé. H k = j, kkor STOP. k k + 1 Folytuk z 1. lépénél. Özeállított: Szezlér Dávid BME Számítátudományi é Informáióelméleti Tnzék, 2015, 2016. 1

Az eljárá működéét z lái ráfon illuztráljuk: Lefutttv z loritmut z lái dtok keletkeznek: i 1 2 3 4 5 6 7 8 (i) d e f v t(v) 0 2 3 1 2 3 4 1 v m(v) Termézeteen ez k z eyik lehetée helye futá z loritmunk: ttól füően, hoy z éppen ktuáli ú mé ejártln zomzédit milyen orrenden vezi orr, BFS-nek zámo má helye futá i elképzelhető. Az eljárán z m(v) változók zerepe z, hoy z -ől z eye úok vezető lerövide utknk ne k hoz, hnem z ilyen utk eyike i kiolvhtó leyen kimenetől. Vlón: ey tetzőlee v úól z m(v),m ( m(v) ),... orozton hldv mindi eyel ökken -től vett távolá, íy véül t(v) lépéen érünk el -e. Például fenti ráf eetéen z f úól z m( f ) =, m() =, m() =, m() = lépéekkel vlón t( f ) = 4 hozú úton jutunk el -e. Az loritmu helyeéének elátáához könnyű véiondolni, hoy z működée orán véi fenntrtj következő ( 0. lépé vérehjtá után rötön teljeülő) tuljdonáokt: h t(v), kkor -ől v-e vezet olyn t(v) hozúáú út, melynek (v eetén) z utoló előtti ú m(v); h t(v), kkor -ől v-e nem vezet t(v)-nél rövide út. 2

Emellett z loritmu leállá után zoknk v úoknk C hlmz, melyekre t(v) éppen z -ől úton elérhető pontok hlmz vyi z -et trtlmzó komponen úhlmz. Vlón: minden v C ú eyrézt nyilván elérhető -ől, márézt mivel v z eljárá ey pontján z éppen ktív ú volt, íy nem lehet C-e nem trtozó zomzédj. Íy G ráf ponton kkor özefüő, h C = V (G). Minden loritmu, íy BFS eetéen i fonto meondolni nnk lépézámát. Mivel BFS eljárá zempontjáól párhuzmo é hurokélek érdektelenek, ezért feltehetjük, hoy emenetként kpott G ráf eyzerű. Teyük fel továá, hoy G úy vn medv, hoy minden v úhoz trtozik ey lit, mely felorolj v zomzédit. A ráfoknk ezt z ien eyzerű medái módját zomzédái litánk (djeny lit) zokták nevezni. (Itt mot eltekintünk z implementáiónk továi tehniki rézleteitől mint például hoy úok zomzédit oroló litákt hoyn prktiku tárolni.) Ezt hználv minden él kettővel növeli liták özhozát, z él mindkét vépontjánál eyel-eyel. Íy ey m élű ráfr liták özhoz 2m. (A emenet mérete vlóján ennél tö, mert eyrézt minden úhoz el kell tárolni hozzá trtozó lit kezdetének helyét, márézt minden eye litelem i elfoll vlmennyi helyet memórián de ezektől tehniki rézletektől imét eltekintünk.) A BFS eljárá v ú ktívvá válákor (vyi mikor (k) = v ekövetkezik) v-re illezkedő éleket vizálj véi é íy d(v)-vel, v fokzámávl rányo lépét tez. Mivel z öze pont fokánk özee ráf élzámánk kétzeree, ezért elmondhtó, hoy BFS ey m élű ráfon lefölje m futáidő után meáll (hol vlmilyen rözített kontn). Mivel emeneten i 2m volt úokhoz trtozó liták özhoz, ezért elmondhtjuk, hoy BFS nyon htékony, lineári futáidejű loritmu. Fonto zonn rözíteni, hoy z élzámml rányo futáidő rntáláához emenet medáánk módj eyáltlán nem melléke körülmény. Teyük fel például, hoy G zomzédái mátrixzl (djeny mtrix) vn medv vyi V (G) = {v 1,v 2,...,v n } eetén ey olyn n n-e A(G) mátrixzl, melyen minden 1 i, j n-re z i-edik or é j-edik ozlop kerezteződééen álló elem v i é v j között futó élek zám. (Ez tehát 0 vy 1, h továr i feltételezzük, hoy G eyzerű.) Ez zért lényee különé, mert zomzédái litához képet zomzédái mátrixn ey v i ú zomzédi okkl kevéé könnyen elérhető módon állnk rendelkezére, véi kell értük páztáznunk z A(G) telje i-edik orát (vy ozlopát). Íy BFS eljárán már nem elé d(v i )-vel rányo időt fordítnunk z éppen ktív v i úr, hnem úonként n, özeen n 2 lépézámot kpunk. Má kérdé, hoy mivel A(G) ey n n-e mátrix, ezért een z eeten z input mérete i n 2 -tel rányo (hizen eyzerű ráfr úpáronként 1 itnyi informáiót kell tárolnunk), íy z loritmu ekkor i lineári futáidejű nnk ellenére i, hoy ráfot htékonyn tárolv jo futáidőt i elérhettünk voln. Tnuláként zt vonhtjuk le, hoy ey loritmu futáidejének ponto elemzéekor olyn, előre tlán tehniki rézletkérdének tűnő zempontokt i fiyeleme kell vennünk, mint z input medáához hznált dttruktúr. Azt zonn ykrn már ey felülete, rézleteket fiyelmen kívül hyó elemzéel i meállpíthtjuk, hoy vizált loritmu polinomiáli futáidejű, vyi lklmzáokn htékonynk tekinthető. 3

A BFS-f A BFS loritmu fenti példán vló futttááól külön fiyelmet érdemel z utoló tálázt áltlán pedi zok z élek, melyek minden v eetén v-t m(v)-vel kötik öze. A fenti ár ráfjár ezek z lái árán láthtók ( töi élt ztott vonlll jelöltük). Mefiyelhető, hoy zón foró élek ey fát, mépedi z input G ráf -et trtlmzó C komponenének ey fezítőfáját lkotják. Ez áltlán i íy vn: C úhlmzon minden v úr v-t m(v)-vel özekötő élek lkott F ráf eyrézt özefüő, hizen minden C-eli úól F élein eljuthtunk -e, íy ármely két C-eliől i eymá. Márézt F körmente i, mert BFS eljárá működée orán folymton fenntrtj zt tuljdonáot, hoy z F-e ddi ekerült élek körmente rézráfot lkotnk: vlón, mikor z 1. lépé vérehjtá orán m(v) értéket kp, kkor v előfokú z ddi metlált F-eli élek ráfján (hizen k m(v)-vel zomzédo), íy eyetlen kör em trtlmzhtj z újonnn F-e került v é m(v) közötti élt. Az íy kpott F fát BFS-fánk nevezzük; ez tehát özefüő G eetén fezítőfáj G-nek é ármely v úr z -et v-vel özekötő F-eli út lerövideek eyike z -ől v-e vezető G-eli utk közül. BFS loritmu irányított ráfn A ráf folmánk evezetéét olyn lklmzáok motiválták, melyeken ey (vée) hlmz elemei közötti, páronkénti kpoltok játznk zerepet. A ráf úi lehettek például ey tárá tji é z élek köztük lévő imeretéek; vy úok lehettek ey térkép omópontji é z élek z őket özekötő útzkzok; vy úok ey zámítóép-hálózt omópontji é z élek köztük lévő közvetlen özeköttetéek, t. Azonn nyon ykorik z olyn lklmzáok i, melyeken z elemek közötti kpoltok nem (feltétlen) zimmetrikuk. Íy például ey tárá tji között lehetnek nem kölönö imeretéek (h például jelen vn ey közimert emer), ey térképen lehetnek eyirányú útzkzok é ey zámítóépe hálóztn i előfordulht, hoy két omópont között k eyirányú kommunikáió lehetée. Ezeket helyzeteket irányított ráfokkl modellezhetjük. Ey irányított ráf tehát zintén úokól é élekől áll, zonn minden élnek irány i vn: nem elé informáió, hoy z e él z u é v úok között hld, tudnunk 4

kell zt i, hoy z u-ól v-e, vy v-ől z u- mutt. (Termézeteen nin kdály nnk em, hoy ey irányított ráf z u v é v u éleket i trtlmzz őt, ármelyiket kár tö példányn i, honlón z irányíttln ráfokn meenedett párhuzmo élekhez.) Rjzn z irányított éleket eyzerűen nyilkkl zoká jelezni; íy például z lái árán ey irányított ráf láthtó. Az dott pontól induló lerövide irányított utk metláláánk feldt lklmzáokn zintén ykrn felmerülő prolém. (Irányított út ltt nyilván olyn utt értünk, melyen véihldv oem meyünk zeme z élek irányítáávl.) Ez feldt például kkor, h ey eyirányú linkeket i trtlmzó zámítóép-hálóztn zeretnénk informáiót továítni úy, hoy z dtomok lehető lekevee közülő omóponton hldjnk át. Szerenére ennek feldtnk meoldáár nem kell vdontúj loritmut kidoloznunk, BFS eljárá ezt i meoldj. Ehhez upán ey minimáli, értelemzerű módoítár vn züké fenti pzeudokódn: z 1. lépéen H (k) únk vn olyn v zomzédj, melyre t(v) =, kkor... eetvizált helyett H (k) úól vezet (irányított) él olyn v ú, melyre t(v) =, kkor... zükée. Ettől eltekintve z loritmu zono fentivel. Például fenti irányított ráfr lefutttv z eljárát z lái dtok keletkeznek (z eyik lehetée futát feltételezve): i 1 2 3 4 5 6 7 (i) d e v t(v) 0 4 4 1 2 3 1 v m(v) e e d Láthtó, hoy itt már z f ú nem elérhető -ől irányított úton. Áltlán i iz, hoy BFS eljárá leállákor zon v úoknk C hlmz, melyekre t(v), éppen z -ől irányított úton elérhető pontok hlmz. Érdeme mefiyelni zt i, hoy 5

BFS-t uynk fenti irányított ráfr, de d úól indítv d-n kívül k z,, é e úok volnánk elérhetők vyi z elérhető úok hlmz mé kkor i nyn fü kiindulópont válztáától, h ráf z élek irányítáát fiyelmen kívül hyv eyéként özefüő. Íy z -ől elérhető pontok C hlmzát z irányított eeten már nem hívhtjuk komponennek ezt folmt ilyenkor okkl körültekintően kell hználnunk (de ennek rézleteire itt nem térünk ki). Az m(v) változók zerepe BFS eljárá irányított változtán nyilván zono koráivl: tetzőlee v úr (lelái zokr, melyekre t(v) é íy m(v) i értéket kpott) ezeket hználv lépeethetünk viz v-től -i, hoy ey -ől v-e vezető lerövide irányított utt i mekpjunk. Imét hzno külön kiemelni zokt z irányított éleket, melyek m(v)-ől v-e vezetnek vlmilyen v-re: ezek (z élek irányítáától mot eltekintve) meint ey F fát lkotnk, melynek úhlmz z -ől elérhető úokól áll é z F élei mentén -ől eljuthtunk z öze töi ú lehető lerövide úton (lelái z ilyen utk eyikén). A BFS loritmu fenti futááól zármzó BFS fát z lái ár muttj: 6