• Nem Talált Eredményt

3. Gr´ afok 62

3.2. F´ ak

3.2.3. Kruskal algoritmusa

ojuk, az F0 gr´af is. Kell, hogy F0 fa. Vil´agos, hogy minden Pi kiindul´opontja egy el˝oz˝o Pj utnak´ pontja, teh´at aF0 ¨osszef¨ugg˝o. MindenPi-nek annyi ´ele van, mint a k´odj´anak hossza, teh´atF0-nekn1

´

ele van, tov´abb´aF0 tartalmazza mindenPi ut v´´ egpontjait, teh´at av2, v3, . . . , vn pontokat, valamintP2

kezd˝opontj´at,v1-t. Teh´atF0egynpont´u, (n−1) ´el˝u ¨osszef¨ugg˝o gr´af, azazF csakugyan fa. AzF0 konst-rukci´oj´ab´ol pedig azonnal ad´odik, hogyPi egy olyan ir´any´ıtott ´ut, aminek a kiindul´opontja egy kor´abbi Pj pont valamelyike, v´egpontjavi, teh´atF0 Ref¨urp k´odja csakugyanr(1), r(2), r(3), . . . , r(n1).

A Ref¨urp-k´odb´ol a fa rekonstrukci´oja val´oj´aban m´eg egyszer˝ubb. Legyenr(1), r(2), . . . , r(n1) egy Ref¨urp-k´od. A rekonstrukci´o n1 l´ep´esben t¨ort´enik: az i-dik l´ep´esben vr(i)-b˝ol ind´ıtunk egy ei ´elt.

Az ei ´el m´asik v´egpontja vr(i+1) lesz, hai+ 1n1 ´esvr(i+1) nem szerepel a m´ar fel´ep´ıtett f´aban.

Egy´ebk´ent az avj lesz az ei asik v´egpontja, amirej a legkisebb olyan pozit´ıv cs´ucsindex, ami nem szerepel a m´ar fel´ep´ıtett f´aban.

3.42. Alkalmaz´as any olyanF fa vannc´ımk´ezett ponton, amiben az1´es2c´ımk´ej˝u pontok k¨oz¨ott fut´o

´

ut F-nek pontosank´el´et tartalmazza? (Vil´agos, hogy a Ref¨urp-k´od els˝o k+ 1jegy´et nem v´alaszthatjuk teljesen szabadon, ´ıgy (n1)·(n2)·. . .·(nk)·(k+ 1)·nn−k−3 ad´odik. Az is l´atszik, hogyan kell ilyen tulajdons´ag´u v´eletlen f´at gener´alni.)

Szorgalmi h´azi feladat: Mi k¨oze a Pr¨ufer-k´odnak a Ref¨urp-k´odhoz? (A helyes megfejt˝ok d´ıja a szerz˝o elismer´ese.)

3.2.3. Kruskal algoritmusa

Alapprobl´ema: Egy v´ızm˝ub˝ol kell iv´ov´ızzel ell´atni n v´arost. ´Ugy kell azonban

meg-´

ep´ıteni a vezet´ekh´al´ozatot, hogy csak v´arosokon bel¨ul lehet vezet´ekeket el´agaztatni, ´es term´eszetesen a ki´ep´ıt´es k¨olts´eg´enek minimaliz´al´as a c´el.

Form´alisan: Adott G = (V, E) lehets´eges utak ¨osszef¨ugg˝o gr´afja ´es a k : E → R+

k¨olts´egfv. Egy F ⊆ E ´elhalmaz k¨olts´ege k(F) := P

f∈Fk(f). Feladat: keress¨unk egy olyan F ⊆ E ´elhamazt, amire (V, F) fa, ´es ezen bel¨ul k(F) minim´alis. Az ilyen (V, F) f´atminim´alis k¨olts´eg˝u fesz´ıt˝of´anak nevezz¨uk. Az al´abbiakban mutatunk egy, a feladatot megold´o algoritmust. Ak´arcsak a k´es˝obbiekben, az algoritmust az input, output ´es a m˝uk¨od´es pontos le´ır´as´aval adjuk meg.

Kruskal algoritmusa:

Input: G= (V, E) ¨osszef¨ugg˝o gr´af,k :E →R+ k¨olts´egfv.

Output: A Ggr´af egy F =Fm min. ktg-˝u fesz´ıt˝of´aja.

Az algoritmus m˝uk¨od´ese:

Legyen E = {e1, e2, . . . , em}, n¨ovekv˝o k¨olts´eg szerint sorbarendezve (azaz k(e1) ≤ k(e2)≤. . .≤k(em)) ´es legyenF0 :=∅. Sorban mindenei-r˝ol eld¨ontj¨uk, hogy bevessz¨ uk-e az Fi ´elhalmazba: haFi−1 azei ´el hozz´av´etel´evel k¨ormentes marad, akkorFi :=Fi−1∪ {ei}k¨ul¨onben, ha Fi−1-be ei-t beh´uzva k¨or keletkezik, akkor Fi :=Fi−1.

Kruskal fenti algoritmus´at h´ıvj´ak n´ehamoh´o algoritmusnak is, mert a fesz´ıt˝of´at moh´o m´odon ´ep´ıtj¨uk: csak azzal t¨or˝od¨unk, hogy mindig a legolcs´obbat v´alasszuk, m´ar persze amennyiben ez a v´alaszt´as nem ´ertelmetlen. A tov´abbiakban igazoljuk a Kruskal al-goritmus helyess´eg´et, vagyis azt, hogy ez a

”r¨ovidl´at´o” hozz´a´all´as (legal´abbis ebben az esetben) a lehet˝o legjobb eredm´enyre vezet.

3.43. Defin´ıci´o Adott G= (V, E) ¨osszef¨ugg˝o gr´af ill k :E →R k¨olts´egf¨uggv´eny eset´en egy F ⊆E ´elhalmazt optim´alisnak nevez¨unk, ha l´etezikG-nek olyan minim´alis k¨olts´eg˝u (V, F) fesz´ıt˝of´aja, amire F ⊆F.

3.44. Lemma LegyenG= (V, E), k :E →R+ . Tegy¨uk fel,F ⊆E optim´alis, tov´abb´a, hogy X ⊂V olyan, hogy nem vezet X ´es V \X k¨oz¨ott F-beli ´el. Legyen az X ´es V \X k¨oz¨ott vezet˝o ´elek k¨oz¨ott f egy minim´alis k¨olts´eg˝u. Ekkor F∪ {f} is optim´alis.

Bizony´ıt´as. F optimalit´asa miatt l´etezik egy (V, F) minim´alis k¨olts´eg˝u fesz´ıt˝ofa, amire F ⊆ F. Ha f ∈ F, akkor (V, F) az F ∪ {f} optimalit´as´at is bizony´ıtja. Ha f 6∈ F, akkor a (V, F) f´aban l´etezik egy ´ut f k´et v´egpontja k¨oz¨ott. Ez az ´ut X-b˝ol indul, ´es V \X-ben ´er v´eget, teh´at tartalmaz legal´abb egy f0 ´elt, ami X ´es V −X k¨oz¨ott vezet.

Az f ´el v´alaszt´asa miatt k(f) ≤ k(f0) ´all. Ha a (V, F) f´ab´ol elhagyjuk f0-t, akkor a fa k´et komponensre esik, r´aad´asul f v´egpontjai k¨ul¨onb¨oz˝o komponensekben lesznek.

F F\F

f X f30 f10

f20 G

Ez´ert f beh´uz´as´aval (V, F \ {f0} ∪ {f}) szint´en fa lesz, ´es a k¨olts´ege sem lehet t¨obb, mint (V, F) k¨olts´ege volt. Teh´at egy, az F ∪ {f} ´elhalmazt tartalmaz´o, minim´alis k¨olts´eg˝u fesz´ıt˝of´at kaptunk.

3.45. T´etel A Kruskal algoritmus konstru´alta (V, F) a G gr´af egy minim´alis k¨olts´eg˝u fesz´ıt˝of´aja.

Bizony´ıt´as. Az F fel´ep´ıt´esekor sosem hoztunk l´etre k¨ort, ez´ert F k¨ormentes. A (V, F) gr´afba b´armely ej ∈ E \ F-beli ´elt beh´uzva k¨ort kapunk, hiszen ej-t m´ar az Fj−1-be beh´uzva is k¨or keletkezett. Eszerint tetsz˝oleges ej ´el v´egpontjai (V, F)-nek ugyanabban

a komponens´eben vannak. MivelG¨osszef¨ugg˝o, ez´ert (V, F) is ¨osszef¨ugg˝o, teh´at a Kruskal algoritmus csakugyan fesz´ıt˝of´at konstru´al.

Teljes indukci´oval igazoljuk (iszerint), hogyFi optim´alis. Ez elegend˝o, hisz ekkorFm is optim´alis, ´es az ezt bizony´ıt´o minim´alis k¨olts´eg˝u fesz´ıt˝ofa csakis maga (V, Fm) lehet. fesz´ıt˝of´aja, ami minden egyes Vi-nek tartalmazza egy fesz´ıt˝of´aj´at?

Legyenk(e)azonVi-k sz´ama, amelyek emindk´et v´egpontj´at tartalmazz´ak, azazk(e) = k1(e) +k2(e) +. . .+ ks(e), ahol ki(e) = 1, ha e v´egpontjai Vi-ben vannak, egy´ebk´ent

es pontosan akor ´all egyenl˝os´eg, ha F egy olyan fesz´ıt˝of´aja G-nek, ami minden Hi-t bel¨ulr˝ol fesz´ıt.

Keress¨unk teh´at egy maxim´alis k-k¨olts´eg˝u F fesz´ıt˝of´at G-ben. Ha ennek k¨olts´ege c, akkor F j´o fa, ilyet kerest¨unk. Ha a k¨olts´eg c-n´el kisebb, akkor nem l´etezik megfelel˝o fa.

Bemutatjuk a Kruskal algoritmusnak egy m´asik, gyakorlati alkalmaz´as´at is, ami t¨ ob-bek k¨oz¨ott a Jelek ´es rendszerek t´argyhoz kapcsol´odik. Tekints¨unk egy villamos h´al´ o-zatot, amely kiz´ar´olag k´etp´olus´u ´aramk¨ori elemeket tartalmaz (azaz fesz¨ults´egforr´ast,

´

aramforr´ast, ellen´all´ast, esetleg tekercset vagy kondenz´atort). Egy ilyen h´al´ozathoz tar-tozik egy gr´af, amelyben az ´elek az egyes ´aramk¨ori elemeknek felelnek meg.

”Visszafel´e”

is m˝uk¨odik a kapcsolat, azaz tetsz˝oleges v´eges ir´any´ıtott gr´af ´eleihez tetsz´es szerinti

´aramk¨ori elemeket rendelve egy h´al´ozatot kapunk. Ha egy ilyen h´al´ozatot csakugyan meg´ep´ıten´enk, akkor azt, hogy abban mi t¨ort´enik, azt k¨ul¨onf´ele fizikai t¨orv´enyek, mint

p´eld´aul a Kirchhoff-f´ele hurok- ´es csom´oponti t¨orv´enyek ill. az Ohm t¨orv´eny ´ırj´ak le.

Egy h´al´ozatot akkor nevez¨unk egy´ertelm˝uen megoldhat´onak, ha ezekb˝ol a t¨orv´enyekb˝ol a h´al´ozat b´armely ´el´en meghat´arozhat´o az ott foly´o ´aramer˝oss´eg ´es b´armely k´et cs´ucs k¨oz¨ott a potenci´alk¨ul¨onbs´eg.

Az egy´ertelm˝u megoldhat´os´agnak p´eld´aul sz¨uks´eges felt´etele, hogy a gr´afban ne le-gyen olyan k¨or, aminek a ment´en kiz´ar´olag fesz¨ults´egforr´asok vannak. Ebben az esetben ugyanis ha az fesz¨ults´egforr´asok fesz¨ults´egeinak el˝ojeles ¨osszege a k¨or ment´en nem nulla, akkor s´er¨ul a hurokt¨orv´eny, ez´ert nem k´epes az ¨osszes fesz¨ults´egforr´as egyszerre megfe-lel˝oen m˝uk¨odni, teh´at egy´altal´an nem lenne megoldhat´o a h´al´ozat.

Abban az esetben viszont, ha egy csupa fesz¨ults´egforr´ast tartalmaz´o k¨or ment´en a fesz¨ults´egk¨ul¨onbs´egek el˝ojeles ¨osszege nulla lenne, akkor ´eppens´eggel lehets´eges, hogy megoldhat´o a h´al´ozat, ´am a megold´as nem egy´ertelm˝u: egy tetsz˝oleges megold´asb´ol kiindulva ´es a k¨or ment´en tetsz˝oleges ´aramot m´eg k¨orbek¨uldve egy m´asik, k¨ul¨onb¨oz˝o megold´ast kapunk.

Hasonl´o a helyzet az ´aramforr´asokkal. Ha n´eh´any ´aramforr´as elhagy´as´at´ol a gr´afunk komponenseinek sz´ama megn˝o (m´as sz´oval a h´al´ozat sz´etesik), azaz, ha az ´aramforr´asok alkotta ´elekb˝ol tal´alhat´o v´ag´as a gr´afban (ld. a 3.134. Defin´ıci´ot), akkor szint´en nem lehet a h´al´ozat egy´ertelm˝uen megoldhat´o. Tegy¨uk fel ugyanis, hogy a h´al´ozat diszjunkt X ´es Y ponthalmazai k¨oz¨ott fut´o minden ´el ´aramforr´as. Ha most mindezen ´eleken az

´

aramok el˝ojeles ¨osszege nem nulla, akkor a nem l´etezhet megold´as, hisz s´er¨ul a csom´oponti t¨orv´eny. Ha pedig nulla az aramok el˝ojeles ¨osszege, akkor m´eg ha van is megold´as, nem lehet egy´ertelm˝u, mert az X ´es Y k¨ozti potenci´alk¨ul¨onbs´eg b´armi lehet.

A fentieket ´ugy fogalmazhatjuk, hogy az egy´ertelm˝u megoldhat´os´agnak sz¨uks´eges fel-t´etele, hogy a fesz¨ults´egforr´asoknak megfelel˝o ´elek k¨ormentes, az ´aramforr´asoknak meg-felel˝ok pedig v´ag´asmentes ´elhalmazt alkossanak a h´al´ozatot le´ır´o G gr´afban. Kider¨ul, hogy ennek a felt´etelnek a teljes¨ul´ese egy´uttal el´egs´eges is az egy´ertelm˝u megoldhat´os´ ag-hoz. Azt mondhatjuk teh´at, hogy a h´al´ozat pontosan akkor egy´ertelm˝u megoldhat´o, ha tal´alhat´o benne az al´abb defini´alt norm´alis fa.

3.47. Defin´ıci´o Tegy¨uk fel, hogy egy ¨osszef¨ugg˝o G gr´af ´eleit 5 lehtes´eges kateg´ori´aba soroltuk: minden egyes ´el vagy fesz¨ults´egforr´as, vagy ´aramforr´as, vagy ellen´all´as, vagy kondenz´ator vagy pedig tekercs (´es pontosan az egyik). A G gr´af F fesz´ıt˝of´aj´at ekkor a G norm´alis f´aj´anaknevezz¨uk, ha F tartalmaz minden fesz¨ults´egforr´ast ´es nem tartalmaz egyetlen ´aramforr´ast sem, tov´abb´a az ilyen tulajdons´ag´u fesz´ıt˝of´ak k¨oz¨ott F olyan, ami a lehet˝o legt¨obb kondenz´atort ´es a lehet˝o legkevesebb tekercset tartalmazza.

A defin´ıci´oban a tekercs-kondenz´ator felt´etel jelent˝os´ege az, hogy a h´al´ozatot le´ır´o differenci´alegyenletrendszer rendje nem m´as, mint a norm´alis f´aban tal´alhat´o tekercsek

´

es a komplementer´eben tal´alhat´o kondenz´atorok sz´am´anak ¨osszege. Az al´abbi alkalmaz´as mutatja, hogyan lehet norm´alis f´at keres´esni a Kruskal algoritmus seg´ıts´eg´eel.

3.48. Alkalmaz´as Tegy¨uk fel, hogy Gegy kiz´ar´olag k´etp´olus´u ´aramk¨ori elemeket tartal-maz´o h´al´ozathoz tartoz´o gr´af. Legyen a fesz¨ults´egforr´asok k¨olts´ege 1, a kondenz´atorok´e 2, az ellen´all´asok´e 3, a tekercsek´e 4, v´eg¨ul az ´aramforr´asok´e pedig 5. Legyen tov´abb´a F a G egy minim´alis k¨olts´eg˝u fesz´ıt˝of´aja (amit p´eld´aul a Kruskal algoritmus szolg´altat).

Ekkor ha F tartalmaz minden fesz¨ults´egforr´ast de nem tartalmaz egyetlen ´aramforr´ast sem, akkor F norm´alis fa. Ha azonban F tartalmaz ´aramforr´ast vagy F-en k´ıv¨ul van fesz¨ults´egforr´as, akkor G-nek nincs norm´alis f´aja, ´es a h´al´ozat nem oldhat´o meg egy´ er-telm˝uen.