• Nem Talált Eredményt

Algoritmuselmélet Elágazás és korlátozás, dinamikus programozás Katona Gyula Y.

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Algoritmuselmélet Elágazás és korlátozás, dinamikus programozás Katona Gyula Y."

Copied!
8
0
0

Teljes szövegt

(1)

Algoritmuselmélet

Elágazás és korlátozás, dinamikus programozás

Katona Gyula Y.

Számítástudományi és Információelméleti Tanszék Budapesti M ˝uszaki és Gazdaságtudományi Egyetem

(2)

Elágazás és korlátozás

Legtöbbször vancn-es algoritmus, de nem mindegy mekkorac.

Bontsunk esetekre, azokat alesetekre, . . . =⇒fa

Értékeljük az eseteket =⇒bizonyos irányokba nem kell továbbmenni.

=⇒(korlátozó heurisztika) Pl. sakkállások

Feladat: Keressünk maximális méret ˝u független ponthalmazt egy adott Ggráfban.

Nyilvánvaló módszer:

Minden részhalmazt végignézünk =⇒O(2n)lépés

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 2 / 8

(3)

Jobb algoritmus

Észrevétel: Ha G-ben minden pont foka legfeljebb kett ˝o, akkor a feladat lineáris id ˝oben megoldható: G izolált pontok, utak és körök diszjunkt uniója. =⇒komponensenként minden „második" pontot bevesszük a halmazba.

B B

B

@

@@

r r

r

r r r r r r

r r r

h h h h h h h

(izolált pontok)

MF(G)

1. HaG-ben minden pont foka≤2, akkorMF(G)az el ˝obbi eljárás által adott maximális független halmaz, és a munkát befejeztük.

2. Legyenx ∈G,fok(x)≥3.

S1:=MF(G\ {x})

S2:={x} ∪MF(G\ {x és szomszédai}).

3. LegyenS azS1ésS2közül a nagyobb méret ˝u, illetve akármelyik, ha|S1|=|S2|.

4. MF(G) :=S.

(4)

LegyenT(n)az MF(G)-n (|V(G)|≤n) belüli MF hívások maximális száma, beleértve MF(G)-t magát is.

Tétel

Van olyan c állandó, hogy T(n)≤cγn, tetsz ˝oleges n természetes számra, aholγ aγ4−γ3−1=0egyenlet pozitív gyöke (γ ≈1,381).

Bizonyítás.

Legyent(n) :=T(n) +1.

T(n)≤T(n−1) +T(n−4) +1, han>4. =⇒ t(n)≤t(n−1) +t(n−4), han>4.

Indukcióval: t(n)≤cγnigazn<5-re elég nagyc-vel √

=⇒Ezután, han≥5, indukciós feltevésb ˝ol:

t(n) ≤ t(n−1) +t(n−4)≤cγn−1+cγn−4=

= cγn−43+1) =cγn−4γ4=cγn.

Összköltség: O(ndT(n)) =O(ndγn) =O(1,381n).

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 4 / 8

(5)

3-színezés keresése

Feladat: AdottG, keressünk egy 3-színezést.

Minden lehetséges színezést végignézünk =⇒O(3n)lépés

Ötlet: Bizonyos csúcsokat kiszínezünkpirosra, a többir ˝ol polinom id ˝oben el tudjuk dönteni, hogy kiszínezhet ˝ok-ekékkeléssárgával.

Összköltség: O(2nnc).

(6)

Dinamikus programozás

Optimum meghatározása kisebb részfeladatok optimumainak felhasználásával.

Általában egy táblázat kitöltése, az új elemeket a korábban kitöltött elemekb ˝ol számoljuk.

Binomiális együtthatók kiszámítása

0 0

1 0

1

1

2 0

2

1

2

2

3 0

3

1

3

2

3

3

4 0

4

1

4

2

4

3

4

4

0 0

1 0

1

1

2 0

2

1

2

2

3 0

3

1

3

2

3

3

4 0

4

1

4

2

4

3

4

4

Tétel

n k

=

n−1 k −1

+

n−1 k

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 6 / 8

(7)

Hátizsák probléma

Probléma

Adottak az s1, . . . ,sm súlyok, a b súlykorlát és a v1, . . . ,vmértékek.

(Minden érték pozitív egész.) Melyik az az I ⊆ {1, . . . ,m}részhalmaz, melyre teljesül, hogyP

i∈Isi ≤b ésP

i∈Ivi maximális?

(8)

El ˝oször kisebb problémára oldjuk meg: v(i,a)a maximális elérhet ˝o érték azs1, . . . ,si súlyokkal,v1, . . . ,vi értékekkel ésasúlykorláttal megadott feladatra.

Ekkorv(0,a) =v(i,0) =0∀a,i-re cél→v(m,b)

v(i,a)

0 a b

0 i

m

p p p p p p p p p p```pp

p p

pp pp pp pp p pp p

p

p p p p p p p p p p p p p p p p p p p

keresett érték

?

-

v(i,a) =max{v(i−1,a);vi+v(i−1,a−si)}

=⇒Soronként kitölthet ˝o ⇐=minden érték két felette lev ˝ob ˝ol számolható.

Összköltség: O(bL)

b-t ˝ol függ (nem logb-t ˝ol!), habsokjegy ˝u szám, ez sok id ˝o

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8 / 8

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

A kilencedik fejezetben a nem lineáris programozási feladatok megoldására szolgáló ún. Foglalkozik sztochasztikus dinamikus modellekkel is, továbbá a dinamikus programozás és

(a) Legyen G egy olyan egyszer˝ u gr´ af, amely- nek pontjai sz´ amozhat´ oak ´ ugy, hogy minden pont legfeljebb kett˝ o n´ ala nagyobb sorsz´am´ uval szomsz´edos.. Legyen G az

Igazoljuk, hogy ha v egy véges G gráf páratlan fokú csúcsa, akkor G-ben van olyan út, amely v-t a G egy másik páratlan fokú csúcsával köti össze.. Mutassuk meg, hogy ha egy G

Bizonyítás: ⇒ : Ha G nem DAG, akkor nem lehet topologikus rendezése, mert egy irányított kör csúcsainak nyilván nincs megfelel ˝o sorrendje.. ⇐ : G-ben van olyan csúcs, amibe

(1 pont) Ezért elegendő megszámolni, hogy hány 3 élű séta van G -ben: a kérdezett utak száma ennek pontosan a fele lesz, hiszen minden útból pontosan két sétát lehet alkotni..

Bizony´ıtsa be, hogy a k¨ovetkez˝o algoritmus polinom id˝oben meghat´aroz egy olyan lefog´o pont- halmazt egy tetsz˝oleges ir´any´ıtatlan G gr´afban, melynek m´erete

a) Ha a primál lineáris programozási feladat egyenlőtlenségrendszere megoldható, akkor a duális feladat rendszere is megoldható... b) Ha a duális lineáris programozási

Bizony´ıtsuk be, hogy egy s´ıkbarajzolhat´ o gr´ af tartom´ anyai pontosan akkor sz´ınezhet˝ ok k´et sz´ınnel, ha minden pont foka p´