Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Három érdekes feladat: univerzális nyelő, abszolút győztes és teljes pont.

Hasonló előadás


Az előadások a következő témára: "Három érdekes feladat: univerzális nyelő, abszolút győztes és teljes pont."— Előadás másolata:

1 Három érdekes feladat: univerzális nyelő, abszolút győztes és teljes pont

2 1. Univerzális nyelő Csúcsmátrixos ábrázolás esetén a legtöbb gráfalgoritmus futási ideje O(n 2 ) azonban van kivétel. Egy irányított gráf egy csúcsa univerzális nyelő, ha bemeneti foka (n-1) és kimeneti foka 0. Egy csúcsmátrix-al megadott irányított gráfban eldönthető O(n) idő alatt, hogy van-e benne univerzális nyelő.

3 Megoldás: Vegyük a gráf két csúcsát. 2 eset lehetséges: a) (u,v) є E Ebben az esetben az u csúcs nem lehet univerzális nyelő, kizárhatjuk. uvuv

4 b) (u,v) є E Ebben az esetben a v csúcs nem lehet univerzális nyelő, kizárhatjuk. uv uv

5 Bármelyik eset áll fenn, mindenképpen 1 összehasonlítást végzünk és eggyel kevesebb csúcs marad az összehasonlítások végére. Az előző 2 pontban leírt összehasonlításokat maximum (n-1)-szer kell végrehajtani. (T=O(n-1)) A végén marad egy csúcs, ami lehet univerzális nyelő, meg kell vizsgálni, hogy ténylegesen az-e. Ez O(n-1)-es műveletigényű. Így kapjuk, hogy a feladatot O(2n-2) műveletigényű algoritmussal meg lehet oldani. O(2n-2)=O(n), def. szerint.

6

7 Egy egyszerű példa: A: i=1, j=2, k=3, e=1 A[1,2]=1, ekkor: e=2, i=3, k=

8 i=3, j=2, k=4, e=2 A[3,2]=1, ekkor: i=4, k=5, e=2 i=4, j=2, k=5, e=2 A[4,2]=0 : j=5, k=6, e=4 i=4, j=5, k=6, e=4 A[4,5]=0 : j=6, k=7, e=4 k=7 -> az első ciklus vége

9 A második ciklusban megvizsgáljuk, hogy a lehetséges e csúcs univerzális nyelő-e. Megjegyzés: n ok = ( Σ A[ i, e ]=n-1) Λ (Σ A[ e, i ]=0) i=1 i=1

10 2. Abszolút győztes Tournamentnek hívunk egy olyan irányított gráfot, melyben bármely két pontot pontosan egy él köt össze. Amennyiben teljes körmérkőzést játszik n versenyző, olyan sportágban, ahol nincs döntetlen (pl.: ping- pong), akkor az eredményeket egy n pontú tournamenttel ábrázolhatjuk, ahol i-ből j-be vezet él, ha i-edik versenyző legyőzte a j-edik versenyzőt. Adjon algoritmust, amely eldönti, hogy van-e abszolút győztes (aki mindenki mást legyőzött)!

11 Megoldás: A feladat megoldása ugyanaz, mint az előzőé, kevés eltéréssel. Eltérések: 1) forrást keresünk, nem nyelőt univerzális forrás: olyan uєV csúcs, amelyre n n (Σ A[ i, u ]=0) Λ (Σ A[ u, i ]=n-1) i=1 i=1 2) Két csúcs összehasonlításakor:

12 a) (u,v) є E Ebben az esetben az u csúcs nem lehet univerzális forrás, kizárhatjuk. b) (u,v) є E Ebben az esetben a v csúcs nem lehet univerzális forrás, kizárhatjuk. uvuv uvvu

13

14 Egy egyszerű példa: C: ijkövl (init)1231 C[1,2]=1 =>1341 C[1,3]=0 =>4353 C[4,3]=1 =>4564 C[4,5]=1 =>

15 3. Teljes pont Adott egy n pontú irányítatlan gráf. Adjunk algoritmust, amely eldönti, hogy van-e a gráfnak olyan pontja, amely minden más ponttal össze van kötve! Nevezzük ezt a pontot röviden teljes pontnak. Erre nem adható O(n)-es algoritmus…

16 Megoldás: “favágó”-módon: Minden j є [1..n] : Σ C[i,j] –k közt keresünk i є [1..n] egy olyat, ami egyenlő (n-1)-el. Ez O(n 2 )-es algoritmus.

17

18 Lehet-e jobban? Lényegesen jobban: Nem… Akkor az előbb miért lehetett? Irányított gráfnál két csúcs összehasonlítá- sakor egy csúcsot mindig ki tudtunk zárni. Irányítatlan gráfnál két csúcs “viszonya”: a)Van köztük él: b)Nincs köztük él: u uv v

19 Ha nincs a két csúcs közt él, akkor egyik se lehet teljes pont. Ha a két csúcs közt van él, akkor mindkettő lehet teljes pont, egyiket se zárhatjuk ki…


Letölteni ppt "Három érdekes feladat: univerzális nyelő, abszolút győztes és teljes pont."

Hasonló előadás


Google Hirdetések