Académique Documents
Professionnel Documents
Culture Documents
Q k la S k permite s extindem
mulimea stabil interior curent i s obinem la etapa urmtoare o mulime nou S k 1 . Pentru
organizarea procesului de parcurgere n arborele de cutare, vom reprezenta mulimea Q k drept
reuniune a dou mulimi Qk i Q k , considernd c n Qk sunt incluse acele vrfuri din Q k ,
care n procesul de cutare au fost folosite pentru extinderea mulimii S k , iar
Qk Qk \ Qk . Cu
alte cuvinte, la etapa respectiv Q k reprezint mulimea vrfurilor, care potenial pot fi folosite
pentru extinderea mulimii stabile interior S k . Astfel, dac pentru extinderea mulimii S k se
S k 1 S k xik
k1 k ik
Q Q \ ( x )
Q1 Qk \ ( xik ) xik
Fie S0 Q 0 , Q0 , k 0 .
Pasul 2:
n conformitate cu cele descrise anterior, alegem un vrf x ik Qk i formm mulimile
S k 1 S k xik
k1 k ik
Q Q \ ( x )
Pasul 3:
Dac x Q k astfel nct ( x) Qk , adic are loc condiia suficient pentru
efectuarea pasului de ntoarcere, atunci trecem la pasul 5. n caz contrar realizm pasul 4.
Pasul 4:
pasul 2.
Pasul 5:
Considerm k k 1 i eliminm vrful x ik
n Q :
Qk Qk \ xik
Q k Qk x ik .
x4
x2
x1
x3
P1. S0 Q 0 , Q0 {x1 , x2 , x3 , x4 } , k 0 .
P2. S1 S0 x1 x1 ,
1 0 1
Q Q \ ( x )
\ {x2} , Q1 Q0 \ (x1) x1
, k =1.
2 1 3
Q Q \ ( x )
\ {x2 , x4} ,
x3 x3 .
2 1 4
Q Q \ ( x ) {x } \ {x }
2 1
Q1 {x4} \ x4 , Q
x3 x4 x3 , x4 .
Q0 x1 x1 . P2.
1 0 2
Q Q \ ( x ) \ { x , x }
x1
1 3
2 1 4
Q Q \ ( x )
\ {x3} ,
Q1 {x4} \ x4 , Q
x4 x4 . P2.
includem n Q0 :
Q0 x1 x2 x1 , x2 . P2.
1 0 3
Q Q \ ( x )
x1 ,
includem n Q0 :
Q0
x1 , x2
x3 x1 , x2 , x3 P2.
1 0 4
Q Q \ ( x )
x1 , x2 , x3
\ x3 x1, x2
includem n Q0 :
Q0 {x4} \ x4 , Q
x1 , x2 , x3
x4 x1 , x2 , x3 , x4 . STOP.
x2 , dac x1 ~ x2
De exemplu Y
.
2
x1 , x2 , dac x1 , x2 nu sunt adiacente
Pasul III:
Construim familia de mulimi
I k* S M Yk 1 : M este un element al familiei Lk .
Pasul IV:
Determinm I k ca familia tuturor mulimilor maximale din I k* .
Pasul V:
Construim familia de mulimi L*k 1 prin cercetarea fiecrui element M din Lk :
a) dac M Yk 1 , atunci M x k 1 L*k 1
b) dac M Yk 1 , atunci M L*k 1 i dac n acest caz se respect i condiia
M Yk 1 I k , atunci se mai consider c x k 1 ( M Yk 1 ) L*k 1 .
Pasul VI:
Determinm Lk 1 ca familia tuturor mulimilor maximale din L*k 1 .
Pasul VII:
Dac k n 1 atunci considerm k k 1 i ne ntoarcem la executarea pasului II. n caz
contrar Ln conine toate mulimile maximale stabile interior n graful G. STOP.
S analizm algoritmul descris, lund n calitate de exemplu graful
x3
x1
x2
x4
x5
Rezultatele pentru fiecare iteraie k a algoritmului Bednarek i Taulbee sunt prezentate n
tabel
k Yk 1
1. Y2 x 2
2. Y3 x1 , x3
3. Y4 x1 , x 2 , x4
I k*
Ik
I 1
I , x 1
I 2 , x 1
*
1
*
2
I x1 , x 2
*
3
I 3 x1 , x 2
4. Y5 x1 , x 2 , x 4 , x5 I 4* x1 , x1 , x 4 ,I 4* x1 , x4 ,
x2 , x4 x2 , x4
L*k 1
Lk 1
L x1 , x 2
L x 2 , x3 , x1 , x3
L2 x1 , x 2
L3 x 2 , x1 , x3
{x2 , x4}}
{x 2 , x4 }
*
2
*
3
*
4
L*5 x1 , x3 , x1 , x 4 , x5 , L5 x1 , x3 , x1 , x 4 , x5 ,
x2 , x 4 , x5
x2 , x 4 , x5
Mulimile stabile exterior maximale: {x1 , x3} { x1 , x4 , x5 } {x2 , x4 , x5} . Exist dou
mulimi stabile interior maxime M 1 {x1 , x4 , x5 } i M 2 {x2 , x4 , x5 } i 0 = 3.
Algoritmul Malgrange
Fie A matricea de adiacent a unui graf neorientat G ( X ; U ) , iar A matricea
complementar ei. (Elementele aij ale matricei A se calculeaz n baza elementelor a ij ale
matricei A dup formula aij 1 aij ).
Algoritmul Malgrange este un algoritm iterativ de construire a tuturor submatricelor
principale ptratice din A , n baza crora se determin mulimile maximale stabile interior ale
grafului G.
Pasul I:
Construim o acoperire oarecare C0 a matricei A . De obicei n calitate de acoperire
iniial C0 se ia familia tuturor submatricelor complete din A de forma f i ( Ai , Bi ) , unde
Ai 1 iar Bi este format din coloanele matricei A , ce conin unitatea n linia Ai .
Considerm p 0 .
Pasul II:
Construim familia
X p f i C p : f j C p , f j f i , astfel nct f i f j
Aa dar X p este familia tuturor submatricelor complete din C p , care se conin n alte
submatrici ale lui C p .
Pasul III:
Construim familia
(C p \ X p )
Cp \ X p .
C p1 (C p \ X p ) (C p \ X p ) .
Pasul V:
Dac C p1 C p atunci considerm p p 1 i trecem la executarea pasului 2. n caz
contrar C p conine toate submatricele principale ale matricei A .
Pasul VI:
Construim o familie nou F n care includem submatricele ptratice maximale ale
submatricelor principale din C p , cu condiia ca fiecare dintre ele s nu se conin n alt
submatrice ptratic din F. Vrfurile ce corespund liniilor (coloanelor) matricelor familiei F
formeaz o mulime stabil interior. Astfel, numrul tuturor mulimilor stabile interior este egal
cu F .
Exemplu: Vom construi toate mulimile stabile interior maxime n graful G
b
a
d
e
f
c
Fig. 6
1
0
1
0
0 a
0 b
1 c
0 d
1 e
0 f
1 a
1 b
0 c
1 d
0 e
1 f
C 2 2 (b, bcf )(e, e)( f , abdf )(bc, bc)(bf , bf )(bcf , b)(adf , adf )( abdf , f )
Deoarece (C2 2 ) obinem
C3 (C 2 2 ) (C 2 2 ) C 2 2 ,
S e , b, c , b, f , a, d , f
Mulimea stabil interior maxim este a, d , f i prin urmare 0 (G ) 3 .
Algoritmul construirii mulimii de
vrfuri stabile exterior minime
Problema determinrii mulimii de vrfuri stabilit exterior minim este de fapt echivalent
problemei de divizare minim, care poate fi formulat n modul urmtor.
Pentru o mulime de elemente R {r1 , r2 ,..., rM } i familia de submulimi
S {S1 , S 2 ,..., S N } , S i R , de determinat subfamilia
S' {S j1 , S j2 ,. ., S jk } S
cu un numr minim
S
i 1
ji
R.
i S j S j , pentru q, s {1,2,..., k }, q s .
Echivalena acestor dou probleme se observ imediat ce considerm R i
S i {xi } ( xi ) pentru i 1, . n aceast interpretare mulimea de vrfuri stabil exterior
minim va fi format din acele vrfuri xi , pentru care S i S' .
q
1 1 ... 1
r2
r3
.
.
.
1 1 ... 1
0
sau
1
1 1 ... 1
0
sau
1
rn
0
sau
1
...
.
.
.
.
.
.
.
Bloc nr. 4
S1n , S 2n ,..., S knn
0
1 1 ... 1
S i B
a) Dac toate coloanele blocului p au fost folosite la careva etape anterioare pentru
extinderea mulimii B, sau blocul p este vid atunci realizm n continuare pasul 5;
p
b) n caz contrar alegem prima coloan, nefolosit nc pentru extinderea lui B. Fie S j
coloana aleas din blocul p.
*
Pasul 3: Dac Z 1 Z , atunci realizm n continuare pasul 4. n caz contrar realizm pasul 6.
TP S jp \ E
Extindem mulimile
B B {S jp }
E E S jp
Z Z 1
Z* Z
B B \ {S ij }
E E \ Ti
B B \ {S jp }
E E \ Tp
Declarm T p i considerm Z Z 1 . Trecem la executarea pasului 2.
S1 { x1 , x3 , x5 }
S 2 {x2 , x3 , x4 }
S 3 { x1 , x2 , x3 }
S 4 {x2 , x4 }
S 5 { x1 , x5 }
S {S1 , S 2 , S 3 , S 4 , S 5 }
Uor putem observa c una dintre acoperirile minime este determinat de mulimile S1 i
S 2 (adic B * {S1 , S 2 } ). De aici deducem c o mulime de vrfuri stabil exterior minim este
{x1 , x2 } .
x4
x3
x5
x2
x1
Figura 8
Vom analiza n continuare realizarea pas cu pas a algoritmului descris. n conformitate cu
pasul 1 construim tabelul 3
Tabelul 3
Bloc nr. 1
Bloc nr. 2
S ( S1 ) S ( S 3 ) S ( S 5 ) S ( S 2 ) S 22 ( S 4 )
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
x1
x2
x3
x4
x5
1
2
1
3
2
1
T1 {x1 , x 3 , x 5 } ,
Z =1
Deoarece E R , realizm n continuare pasul 2 al algoritmului.
Pasul 2:
p = 2. Marcm coloana S12 .
Pasul 3:
Z + 1 = 2 < Z*. Realizm n continuare pasul 4 al algoritmului.
Pasul 4:
Obinem mulimile noi T2 {x 2 , x 4 }
B B {S12 } {S11 {x1 , x 3 , x 5 }, S 12 {x 2 , x 3 , x 4 }}
E {x1 , x2 , x3 , x4 , x5 }
Z =2
Deoarece E =R vom avea
B * {S11 {x1 , x3 , x5 }, S12 {x2 , x3 , x4 }} i Z* = 2. Observm c B * determin o divizare a
S12 . Obinem
B {S11 {x1 , x3 , x5 }} .
Pasul 6:
Elminm S 22 din B. Obinem B = , E = , T1 , Z = 0.
Pasul 2:
Deoarece p min{i : x i E} 1 alegem coloana S 21 .
Pasul 3:
Z 1 0 1 Z * (Z * 2) .
Pasul 4:
Formm mulimi noi
T1 {x1, x2 , x3 )
B B {S 21 } {S 21 } {x1 , x 2 , x3 }
E E S {x , x , x )
1
2 123
Z =1
Este clar c E .
Pasul 2:
Calculm p min{i : x i E} 4 . Bloc cu numrul patru n tabelul nostru nu exist.
Pasul 4:
Modificm mulimile B i E
B = , E = ,
Declarm T1 i considerm Z = 0.
Pasul 2:
Deoarece p min{i : x i E} 1 , alegem coloana S 31 .
Pasul 3:
Z 1 0 1 Z * (Z * 2)
Pasul 4:
T1 {x1, x5 )
B B {S 31 } {x1 , x 5 }
E E S {x , x )
1
3 1 5
Z =1
Pasul 2:
Calculm p min{i : x i E} 2 . Alegem prima coloan nefolosit din blocul 2 coloana
2
S1 .
Pasul 3:
Z 1 2 Z * . Deci n continuare se va realiza pasul 6.
Pasul 6:
1
Modificm mulimile B i E. Eliminm coloana S 3 .
B = , E = , T1 , Z = 0.
Pasul 2:
Calculm p min{i : x i E} 1 .
Pasul 5:
B * reprezint soluia optim
B * {S11 , S12 } .
Deci mulimea {x1 , x 2 } este mulimea stabil exterior minim a grafului din fig.8.