• Nem Talált Eredményt

Legolcsóbb feszítő fák

In document Diszkrét optimalizálás (Pldal 10-13)

1.2. Algoritmikus bizonyítások I : a mohó megközelítés

1.2.1. Legolcsóbb feszítő fák

A gráfokon tekintett optimalizálási feladatok közül az egyik legkorábban vizs-gált egy G= (V, E) összefüggő irányítatlan gráf minimális költségű feszítő fájának megkeresését célozza, adott élköltségek mellett. Ez egyfajta mohó al-goritmussal történik, ami valami olyasfélét akar kifejezni, hogy az algoritmus során mindig a lokálisan legjobbat választjuk. A fákra vonatkozó mohó al-goritmusnak számos változata ismert, az alábbiakban ezek egységes leírását adjuk meg. Jelölje c:E →Ra költségfüggvényt. A következő lemma a fák egy fontos kicserélési tulajdonságát írja le.

1.2.1. Lemma. JelöljeT1ésT2 kétV-t feszítő fa élhalmazát. Ekkor bármely e∈T1 élhez van olyanf ∈T2 él, amelyre mindT1−e+f, mindT2−f+e feszítő fa.

Bizonyítás. Hae∈ T2, akkor f :=e jó lesz. Tegyük fel, hogy e=st 6∈ T2. T1−e-nek két komponense van,K1ésK2.T2-ben van egy egyértelműP út,

1.2. Algoritmikus bizonyítások I : a mohó megközelítés 3 amely összeköti azséstpontokat. Legyen f a P útnak egy olyan éle, amely K1 ésK2 között vezet. Ezenf él kielégíti a lemma kívánalmait.

LegyenT a G= (V, E) egy feszítő fája. Aze ∈T élhez tartozó alapvá-gáson aGazon vágását értjük, amelyetT−ekét komponense határoz meg.

Egyf =uv∈E−T élhez tartozóalapkörön azt a kört értjük, amely azf élből és azuésv pontokat aT fában összekötő egyértelmű útnak az éleiből áll. A 1.2.1 lemma bizonyításából rögtön következik :

1.2.2. Tétel. AGgráf valamely T feszítő fájára az alábbiak ekvivalensek : (a)T minimális költségű,

(b) c(e) ≤ c(f) fennáll minden e ∈ T élre, ahol f az e alapvágásának egy eleme,

(c)c(e)≥c(f)fennáll mindene6∈T élre, aholf azealapkörének egy eleme.

MOHÓ ALGORITMUS [Boruvka, 1926], [Kruskal, 1956]Az eljárás egy feszítő erdőt épít élek egyenkénti hozzávételével. AV ponthalmazú, élt nem tartalmazó erdővel indul, és akkor ér véget, amikor az aktuális feszítő erdő már fa. Az általános lépés abból áll, hogy az aktuális, már megkonstruált erdőhöz hozzáadunk egy legolcsóbb olyan élt, amely az erdő két komponensét köti össze.

Ismeretes a mohó algoritmusnak másik változata is.

DIJKSTRA-PRIM ALGORITMUSA[Dijkstra 1959], [Prim 1957]Egy tetszőlegesx0pontból indulva élek egyenkénti hozzávételével fát építünk, egé-szen addig, amíg feszítő fát nem kapunk. Az általános lépésben egy legolcsóbb olyan éllel növelünk, amelynek pontosan az egyik végpontja tartozik a már megkonstruált fához.

A következő algoritmus óvatosnak nevezhető ; ahelyett, hogy olcsó élekből próbálna fát vagy erdőt építeni, megszabadul a drága élektől, persze ügyelve az összefüggőség megtartására.

FORDÍTOTT MOHÓ (ÓVATOS) ALGORITMUS Az eljárás során éleket hagyunk ki a gráfból arra ügyelve, hogy a visszamaradó részgráf össze-függő legyen. Az általános lépésben kiválasztunk egy maximális költségű élt, amely az aktuálisan megmaradt gráfnak nem elvágó éle, és ezt elhagyjuk a gráfból. Amikor már minden él elvágó, a megmaradt gráf egy feszítő fa.

Ezen algoritmusok egyetlen közös általános keretbe foglalhatók.

ÁLTALÁNOS ALGORITMUSAz eljárás az alábbi két művelet tetsző-leges sorrendben történő egymás utáni alkalmazásából áll. Az első művelet a V csúcshalmazon egy F feszítő erdőt épít élek egyenkénti hozzávételével, míg a második bizonyos éleket kitöröl. KezdetbenF :=∅.

1. LÉPÉSHa az aktuálisFerdő már feszítő fa, az algoritmus befejeződik. Ha F nem összefüggő, akkor válasszunkG-nek egy tetszőleges olyanB vágását, amelyben nincsF-nek éle és legyen azeél aBvágás legolcsóbb eleme. Adjuk e-tF-hez.

2. LÉPÉSAmíg van kör, válasszunk ki egy tetszőlegesCkört. Legyene∈C egy legdrágább éleC−F -nek. Töröljük e-tG-ből.

1.2.3. Tétel. Az algoritmus által talált végsőF feszítő fa minimális költségű.

Bizonyítás. Az algoritmus futásának tetszőleges közbenső állapota egy(F, D) párral jellemezhető, aholF az addig megkonstruált erdőt, D pedig az addig eltörölt élek halmazát jelöli. Azt igazoljuk indukcióval, hogy létezik olyanT minimális költségű feszítő fája G-nek, amelyre F ⊆ T ⊆ E −D. Világos, hogy bármelyik minimális költségű fa jó lesz, amikor F =D = ∅. Tegyük most fel, hogy az állítást már beláttuk valamely (F, D) párra, vagyis hogy van egy olyanT minimális költségű feszítő fa, amelyreF ⊆T ⊆E−D.

Először tegyük fel, hogy az 1. lépést alkalmaztuk, és legyen e ∈ B az újonnanF-hez vett él. LegyenF0:=F+e. Hae∈T, akkor készen vagyunk, mert a változatlanT jó lesz az(F0, D)párra nézve is. Hae6∈T, akkor legyen Ce az e alapköre aT-re nézve. Az eél a szabály szerint a B vágásban van, ígyCe-nek kell lennie egy másikf élénekB-ben. Miutáne, f ∈B, az 1. lépés szabálya szerint c(e) ≤ c(f). Mivel e, f ∈ Ce és T minimális költségű, azt kapjuk, hogy c(e) ≥ c(f). Ezekből c(e) = c(f), és T0 := T −f +e is egy minimális költségű feszítő fa, amelyreF0⊆T0⊆E−D.

Ezután tegyük fel, hogy a 2. lépést alkalmazzuk, és legyene∈C a frissen eltörölt él. HaT nem tartalmazzae-t, készen vagyunk, mert a változatlanT jó lesz az(F, D+e)párra nézve is. Tegyük fel tehát, hogyT tartalmazzae-t, és legyen Be az e-nek T-re vonatkozó alapvágása. Ekkor létezik egy f 6= e él, amelyre f ∈ C∩Be. Mivel e, f ∈ C, a 2. lépés szabálya szerint c(e) ≥

≥c(f). Mivele, f ∈BeésTminimális költségű, következik, hogyc(e)≤c(f).

Ezekbőlc(e) =c(f), ésT0 :=T−f +eis egy minimális költségű feszítő fa, amelyreF ⊆T0⊆E−(D+e).

1. Feladat. Mutassuk meg, hogy a fenti mohó algoritmus változatok mind-egyike az általános algoritmus speciális esetének tekinthető.

2. Feladat. Ha minden költség különböző, akkor a minimális költségű feszítő fa egyértelmű.

3. Feladat. Tegyük fel, hogy két költségfüggvény adott az éleken :c1, c2. Ad-junk algoritmust olyan feszítő fa megkeresésére, amely ac1-re nézve minimális költségű, és ezen belülc2-re nézve minimális költségű. Hogyan általánosítható az eljárás több költségfüggvényre ?

1.2. Algoritmikus bizonyítások I : a mohó megközelítés 5 4. Feladat. Legyenr(u, v)szimmetrikus, nemnegatív egészértékű függvény a V alaphalmaz elempárjain. Igazoljuk, hogy akkor és csak akkor létezik olyan G = (V, E) gráf, amelyre λ(u, v;G) = r(u, v) minden {u, v} pontpárra, ha r(u1, uk)≥min{r(u1, u2), r(u2, u3), . . . , r(uk−1, uk)}fennáll minden, aV kü-lönböző elemeiből készítettu1, . . . , uk sorozatra.

In document Diszkrét optimalizálás (Pldal 10-13)