• Nie Znaleziono Wyników

Poszukiwanie przekrojów minimalnych kompleksu

N/A
N/A
Protected

Academic year: 2022

Share "Poszukiwanie przekrojów minimalnych kompleksu"

Copied!
16
0
0

Pełen tekst

(1)

ZESZYTY NAUKOWE POLITECHNIKI oL^SKIEO

Serie: INFORMATYKA z. 5 Nr kol. 759

________ 1983

Tadeusz San KUDŁA

POSZUKIWANIE P R ZE KR OO ĆW M I N I MA LN YC H KOMPLEKSU

S t r e s z c z e n i e . Ar ty ku ł do ty cz y algorytmu poszuk uj ąc eg o minimal- nych p r ze kr oj ów kompleksu. Pr ze dstawiona .metoda tworzy przekroje m i ­ nimalne kompleksu og ra ni cz aj ąc się do tych przekrojów, które sp eł­

niaj? od po wiednie warunki. Pozostałe przekroje są eliminowane x roz­

ważań, co zmniejsza angażo wa ne do rozwiązania problemu za so by m a ­ szynowe. W pracy rozważono tylko grafy Bilnie spójne - nie o g r a n i ­ cza to ogólności metody.

i. Wstęp

Dana jest sieć ( g e (b2 )A , f E NA ) , gdzie g Jest grBfem o łukach ze

zbioru A, którym p r z y p o rz ęd ko we no pary w i e r z c h o ł k ó w ze zbioru B. Funk­

cja f określa koszty rozcinanie łuków a 6 A, wy ra żo ne za pomocą liczb naturalnych f(a) E N. Zbió r rozciętych łuków rozrywających w s zy st ki e cy­

kle grafu nazy wa my przekr oj em grafu. Wśród p r ze kr oj ów istnieją takie, któ­

re rozrywają cykle grafu przy mi ni ma ln ym koszcie. N a z y wa my Je przekrojami minimalnymi.

Problem polega na znal ez ie ni u rodziny p r ze kr oj ów mi ni ma ln yc h i w y z n a ­ czeniu mi ni ma ln eg o kosztu de cy kl lz ac ji grafu g.' Oe że li gref jest ac yk­

liczny, to rodzina Jego przekr oj ów zawiera tylko przekrój pusty, a koszt rozcięcia wy no si 0, G d y w grafie znajdują się pętle, to należę one do każ­

dego przekroju grafu, a więc i do minimalnego. Oeżeli w grafie w y st ęp uj ę łuki równolegle mi ęd zy Jakąś parą wi er zc ho łk ów , to z punktu widzenia de- cyklizacji można je zastąpić Jednym łukiem o su ma ry cz ny m koszcie ro zcię­

cia. Z powyższych powodów, bez straty ogólności, można założyć, że memy do czynienia z cyklic zn ym gr af em prostym. W takim grafie istnieje podgraf g' fi (b*2 )A (a' c a , b' c: B, g' « gj A >) o wł as no ś c i a c h :

I) - dla dowolnej pary wi er zc h o ł k ó w z b’ is tnieje łącząca Je droga (łańcuch skierowany),

II) - nie istnieje podgraf g ” e (b”2 )A (a'c A, b"c B, g" - 9 |a"^

różny od g i po si ad aj ąc y w ł a s no ść I oraz spełniający inkluzje a'c a", B c b”. Taki podgraf nazywać będziemy k o m p l e k s e m * ^ . Ko mpleks zbud ow an y 7]---- ---

Używa się też następ uj ąc yc h określeń: fragment [fi], zespół [3], m a k s y ­ malny podgraf silnie spójny [6]: w literaturze an gi el skojęzycznej - m a ­ ximal strongly connected component [7], irreducible subsystem [11]. Sło­

wo kompleks zostało użyte w [2],

(2)

Jest z cykli, graf może posiadać kilka kompleksów. Po sk on de ns ow an iu kom­

pleksów do w i er zc ho łk ów grafu graf staje się grafem acyklicznym. Oecykli- zacja grafu polega więc na decy kl iz ac jl Jego kompleksów. Przekrój grafu Jest sumę przekr oj ów Jego kompleksów. Odtęd więc przez graf g rozumieć będziemy dowolny kompleks, dla kt órego po sz uk iw ać będziemy p r z e k r o j ó w mi­

nimalnych. Idea metody Je6t wz ię ta z [2]. Tutaj przeds ta wi on o jej pewne usprawnienia.

2. Opis metody

Kompleks g Jest opisany za pomocę ma cierzy binarnej G [9^

1 - Jeżeli łuk a^ należy do cyklu c ^

(2.1) O - w pr ze ci wn ym wypadku,

i * 1.... , n : « c a r d ( c ) , J » 1.... , m : » card(A) ,

gdzie C oznacza zbiór cykli kompleksu. Ponieważ cykl grafu wyznaczają Jednoznacznie Jego łuki, to odtęd przez c 6 C rozumieć bę dziemy zbiór łuków cyklu. Funkcja card określa liczbę elementów zbioru.

Przekrojem X n kompleksu na zywamy zbiór łuków kompleksu, który z każ­

dym cyklem posiada łuk ws pólny

(2.2)

cec

Rozcięcie więc łuków przekroju X n pr ze ks zt ał ca kompleks w graf acyk­

liczny. Przekrój X n można schara kt er yz ow ać w e kt or em bi narnym z następu- Jęco:

(2.3) 1 - Jeżeli łuk 8 1 6 X n

» 0 - Jeżeli łuk a ± j Xn

gdy wektor charakte ry st yc zn y z* określa przekrój minimalny, to zachodzi

2 g., z* 2; 1; J - 1 .. n, (2.4)

1

co oznacza rozcięcie w s zy st ki ch cykli, oraz

Fz* - o l n F z , F - [f(a1) ... . (2.5)

(3)

Poszukiwanie przekrojów minimalnych kompleksu 31

Poszukiwanie przekroju mi ni ma ln eg o przeprowadza się iteracyjnie. W tym celu oznaczmy przez X C A do wolny zbiór łuków, zaś przez E(x) zbiór c y ­ kli, dla których X jest przekrojem, t j .

C 1P E(x) 3 c c n x 4 (2.6)

według tych oznaczeń mamy więc C * E(xn ).

Niech C k = { cj}j«l J est zb iorem k cykli, a przekrojów dla cykli z

rodzinę ws zy st ki ch

E( xi > D c k- ' - 1 pk) (2,7)

Z8sady budowy rodziny przekr oj ów można przedstawić naetępujęco:

r - S 1 * { { a l } {"“p j ; "i 6 c r i « 1 ... P 1 ; Pj « cardicjiJ Na k-1 etapie zbudowano zbiory C |<_i 1 ® k_i* Przechodząc do etapu k- -tego budujemy zbiór , dołęczajęc do zbioru C k cykl c^ i b u du je­

my zbiór S k na podstawie zb iorów X^-1 € ^ w następujący sposób:

II, gdy X j _1 n c k 4

0

dla pewnego 1 ■= l, .. ., pk_ 1 , to przekrój X ^ -1 wprowadzamy do rodziny S k ;

f

III. Jeżeli zaś dla pewnego i po wyższy iloczyn jest pusty, to do ro- k “ 1 r *i

dżiny S k dodajemy rodzinę zbiorów U {ejj! 6 c k dla 1 ■ 1 ...

card(ck ) .

Utworzona w ten sposób rodzina przekr oj ów S n zawiera wszystkie pr ze­

kroje kompleksu g. Dla każdego przekroju możne obliczyć koszt rozcięcia

< « > - £ f (a.) , i = 1 c e r d(s ) , (2.8) 8 le X i

Przekroje minimalne ot rz ym am y wybier aj ąc najmniejsze f’(x0 ). Przekrojów minimalnych może być kilka, co widać z prostego przykładu (rys. l).

Rys. 1. Przykład kompleksu po si adającego 3 przekroje

(4)

Geżeli f i a ^ = f (a 2) » f(a3 ) + f(a4 ), to przekrojami minimalnymi są, dla tego kompleksu, przekroje określone przez następujące we ktory c h a r a k ­ terystyczne :

1 O O O

3. Uproszczenie problemu

Opisana procedura tworzenia rodziny S n przekrojów kompleksu g nie eliminuje przekrojów,o których już w trakcie budowania rodzin w i a d o ­ mo, że nie wejdą w skład przekrojów minimalnych. Re dukcja tych przekrojów na każdym poziomie k dawa ła by oszczędność pamięci i czasu pracy al go­

rytmu. Podobnie, w niektórych przypadkach, możliwe Jest wstępne z m ni ej­

szenie ab sorbowanych przez problem zasobów komputerowych. An alizę w s t ę p ­ nej redukcji rozmiaru problemu rozpoczniemy od zbadanie łuków z e wn ęt rz­

nych cykli, tj. takich łuków, które wchodzą tylko do jednego cyklu. Oeże- li a Jest łukiem zewnętrznym cyklu c i Jeżeli

f(a) > min f(b), (3.1)

bec'

c'- zbiór łuków cyklu c bez łuków zewnętrznych,

to łuk a nie należy do żadnego przekroju minimalnego i Jego kolumnę można usunąć z ma cierzy G. Podobnie można analizować łukl należące do dwóch cykli, do trzech itp. Uogólniając powyższe, można stwierdzić, że Jeżeli

e({8i} ) C E({aj}) , i 4 J , (3.2)

f(aj ) < f ( a 1 ), (3.3)

to łuk a^ rozrywa nie wi ęk sz ą liczbę cykli niż łuk B j . a jednocześnie Jego rozcięcie Jest dr oższe - tym samym nie może znaleźć się w pr ze kr o­

jach minimalnych. Ko lumny łuków a^ o powyższych włas no śc ia ch us uwamy z macierzy G kompleksu g. Po usunięciu tych łuków mogą zaistnieć na s t ę ­ pujące sytuacje:

I. Cykl c posiada Już tylko Jeden łuk a - wted y z góry wiadomo, że łuk ten musi wejść we wszystkie przekroje minimalne kompleksu - fakt t e n ■ zapamiętujemy, zaś sam łuk usuwamy z da ls zy ch rozważań, wy kr eś la ją c z ma­

cierzy G Jego kolumnę oraz wi ersze E({a}).

(5)

II. Zbiór łuków pewnego cyklu zawiera się w zbiorze łuków innego cyklu Cj (cŁ C Cj). wt e d y wi er sz cyklu c^ w y k r e ś l a n y z n a c i er zy G.

Obie powyżsj opisane sytuacje nie sę sytuacjami u n i w e r s a l n y n l , Jak to sugeruje się w [Z], Wy st ęp ie one mogę do piero po wyko na ni u redukcji wg równań 3.2 i 3.3. Nie zachodzi bowiem nigdy, by w kompleksie prostym (a taki Jest założony) cykl mó gł posiadać Jeden łuk lub by łukl Jednego c y k ­ lu stanowiły po dzbiór w ł a ś ci wy zbioru łuków innego cyklu. A l g o r y t m w s t ę p ­ nego uproszczenia problemu po sz uk iw an ia mi ni malnych przekr ój ów kompleksu przedstawiono poniżej Jako procedurę "s im p l i f i c a t i o n ” . Procedura ta ok re­

śla rozmiar ras*ns nowej tablicy binarnej Gs, którB tworzy się w p r o ­ cesie upraszczania pierwotnej tablicy G kompleksu. A l g o ry tm w zbiorze A przechowuje informacje, które łuki uległy redukcji, zaś w zbiorze bi na r­

nym C pokazuje, które cykle zostały usunięte z rozważań. Zbiór As Jest zbiorem po je dynczych łuków cykli, które nie zostały zr ed uk ow an e w pi er­

wszej fazie upraszczania, a które na końcu zostanę do dane do każdego pr ze­

kroju mi ni malnego (sytuacja i). Pierwsza faza up ra szczania obejmuje d z i a ­ łania wg równań 3.2 i 3.3. Je że li w tej fazie nie zostanę do konane żadne uproszczenia, to algorytm - zgodnie z powyższym - omija fazę drugę 1 trze- cię. Druga faza upraszczania to budowa zbioru As, trzecia natomiast Jest wykonywana w celu sprawdzenia czy nie ma cykli zawier aj ęc yc h się w innych (sytuacj8 II). A l go ry tm Jest op isany metodę zswartę w [4] i uzupełnionę o operacje stworzone dla uproszczenia dz iałań na zb iorach (teoriomnogościo- wych).

Al. Al go ry tm up ro szczenia problemu poszukiwania mi ni ma ln eg o przekroju kompleksu

procedurę si mp lification var a,b: arc ; c ,d : cycle

begln A:« s p a c e ; “pierwsza faza u p r a s z c z a n i a “ for a :» 1 J^o m - 1 do i_f a irs A then

for b :« a + l t _ o m d o i _ f b _ i n A then if Gc ol um n [a] < Gcolumn[b] and

f[b] < f [a] then A:« A - {a} elęe lf Gcolumn[b] < Gcolumn[a] and

f[a] < f [ b ] then A: = A - { b| ; C:« s p B c e ; As:« em p t y ; m a : « card(A);

lf ms < m t hen

begin “druga faza upraszczania"

for c:« 1 n i i c and card(Grow[c] * A ) « 1 then begin C:= C - {c}; a:« 1;

w h i l e n ot a in Grow[c] * A d o a : « a + 1;

As:« As + { a }i A s « A - {a}:

for d ij? C d £ i_f a in Grow [d] theri C:= C - jd}

end :

Poszukiwanie pr ze kr oj ów minimalnych kompleksu_______________________________ 33_

(6)

■o:» card(A)i "trzecia faza upraszczania"

for c:« 1 to n - 1 do if c In C then for d : - c + 1 tj) n do i_f d iri C then

if Gro** [c]*A > Gr ow [ d ] * A then C:« C - { c } elee if Gro** [c] * A < Gro** [d]* A then C : « C - |d} ; ns:« card(C)

and and

W procedurze "siaplification" typy wa rtości arc i cycle oznaczaję ok ro­

jony typ całkowity od po wiednio od 1 do w i od 1 do n. Definicje tych typów zawiera aegeent główny "minisections". W a r t oś ci zmiennych tych ty­

p ó w służę do wska zy wa ni a elementów zbiorów: A - łuków i C - cykli. M a ­ cierz G traktowane Jest jak macierz binarna, do której Jest d o st ęp przez w s ka za ni e wi er sz a - Grow[c], przez wskazanie kolumny Gcolumnfa] (wiersz i kolumnę traktuję się w t e d y Jak zbiory od po wiednio łuków i cykli) oraz ist­

nieje ko nw en cj on al ny d o st ęp do każdego elementu tablicy G przez podanie indeksu G[c,a]. Zm ienne A, As, C deklarowane sę w bloku głównym Jako zbiory od po wiednich mocy i operatory działa ję ce na nie lub zachodzęce mię­

dzy nimi relacje sę defi ni ow an e Jak na zbiorach, np. relacja As < A Jest równoważna relacji A s C A - A s (inkluzja zbiorów).

De żeli w proced ur ze "simplification" następlło zredukowania ch oć by Je­

dnego łuku, to program tworzy nowę macierz binarnę Gs i nowę tablicę fs powstałę z tablicy f po usunięciu el em en tó w odpo wi ad aj ęc yc h zr ed u k o w a ­ nym łukom. Dokonuje tego procedura "rewrite 1", która ma ne at ępujęcę bu­

dowę :

A2. Tworzenie uproszczonej m a c i er zy binarnej kompleksu - al go ry tm "re­

write 1"

procedure rewrite 1

type arc s - l..ms; cycle s - l..ns;

set as « set [arc s] ojF bit> set es - sat [cycle s] o_f bit;

complex s » set Tcycle) of set as

var Gs: complex s ; f s : array Tare s] o ^ integer; a: arc;

c: cycle; b: arc s ; d: cycle s begin b := 1;

for a ijn A do

begin d:= 1; fs[b]:= f[a];

for c in C do

begin Gs [d ,b] := G [c ,a] ; d :» d + 1 end ;' b : = b + 1

end ;

c r e a t i o n ( m s , n s , f s , G s )

end

(7)

Poszukiwanie p r ze kr oj ów mi ni malnych kompleksu 35

Po pr ze pi sa ni u do nowych tablic wielkości od powiadających niezreduko- wsnym łuków 1 cyklom procedura "rewrite 1" wy wo łu je procedurę " c r e a t i o n " , która opisana Jest dalej.

4. Redukcja liczby przekrojów

Załóżmy, że utwo rz on o rodzinę pr ze kr oj ów dla cykli z Na k-tym etapie buduje się rodzinę we dł ug zasad II i III punktu 2. Niech X i Y sę tak ut wo rz on ym i przekrojami:

C k C e(x) a e(y) (4.1)

Utwórzmy zbiór U łuków nie badanych Jaszcze dotąd cykli

U - O c.

J-k+1 J

Zbiór (x - Y ) A U zawiera więc łukl zbioru X 'nie należąca do zbioru Y, których rozcięcie przerywa cykle dotąd nie analizowane, natomiast zbiór E((x - Y ) A U) oznacza wł aś ni e te cykle. Gdyb y do zbioru Y dodać łuki

(x - Y) A U, to ten zbiór łuków będzie rozcinał co najmniej tyle samo cy­

kli co zbiór X:

E(X) C E(((X - Y) A U) V Y) (4.2)

co najmniej tyle samo - gdyż mogą istnieć cykle rozcinane przez zbiór Y a nie rozcinane przez zbiór X, może bowiem zachodzić

E (Y) - e(x) i 0 (4.3)

Wyrażenie 4.2 można zapisać w formie

E(X) C e(y) U E((X - Y) A U ) . (4.4)

gdyż zbiory Y 1 (x - Y) A U są zb iorami rozłącznymi. Koszty rozcięcia tych zbiorów ozna cz my odpo wi ed ni o przez f(x) i f((x - Y) A U). Koszt rozcięcia łuków zbioru Y u ( ( x - Y) A U) wy no si więc

f(Y) + f((x - Y) A U). (4.5)

leżeli dla pewnych p r ze kr oj ów X i Y zachodzi

f (X) > f (Y) + f((x - Y) A u) , (4.6)

(8)

to wobec 4.4 łuki ze zbioru X rozcinaję nie więcej cykli niż łuki za zbioru Y U ((X - Y) a U) , a ich koszt rozcięcia Jest wyższy. W ten spo­

sób przekrój X może zostać usun ię ty z dalszych rozważsń - Jest on gor­

szy od przekroju Y i dlatego nie Jest podzbiorem mi ni ma ln eg o przekroju kompleksu. Oeżeli wpro wa dz im y funkcję kryterielnę f(x,Y) « f(Y) - f(x) + + f((x - Y) a U) i jeżeli F(x,Y) < 0, to przekrój X w świetle powyż­

szych rozważań nie może wejść do rodziny S^. Funkcję kryterialnę możemy przepisać w formie

F(X,Y) » f (Y - X) - f(x - Y) + f((x - Y) A U) (4.7)

i w ten sposób funkcję tę liczy odpowiedni algorytm.

A3. Algo ry tm obliczania funkcji kryterialnej function f(x,Y: set a c ) : integer

var al : arc t U: set sc; kl: cycle c begin 1- B Oj

1 t£ nc d£ U:« U + Gcro w [kl] j for kl k +

for al iji Y -■ X do F : = F + f c [al] j for al i_n (x - Y) - U do F:*= F - fc [al]

end

Funkcja f(x,Y) wprowadza wś ró d kandydatów do wejścia do rodziny c z ęś ci ow y porzędek R

(Y,X) e R < = > F(x,Y) < O (4.8)

Stwi er dz en ie to Jest łatwe do wykazania - przecl wz wr ot no ść Jest oczywista,

- antysymetria: f(y,X) = f((x - Y) n U) + f((Y - X) A U) - F(x,Y), więc Jeżeli F(x,Y) jest ujemne, to f(y,X) Jest dodatnie. Zanim wykażemy p r z e c h o d n o ś ć , zauważmy, że

X - Z C (X - Y) U (Y - Z) (4.9)

(x - Y) A (Y - Z) » 0 (4.10)

więc prawdziwa Jest nierówność

f((x - Z) A U) ag f((x - Y) A U) + f ((Y - Z) A U) (4.Ił)

(9)

Poszukiwanie p r ze kr oj ów mi ni malnych kompleksu 37

- p r ze ch od no ść: Jeżeli f(x,Y) < 0 i f(y, Z ) < O, to ponieważ

f(x,z) f(z) - f(y) + f( (y - z) n u) + f(Y) -

f(x) + f((x - y) n u) - f(y,z) + f(x.y) (4.1 2)

więc F(x,Z) Jest ujemne - co kończy dowód.

Algorytm k w a l i f ik uj ęc y przekroje do rodziny winien więc wybierać nylęcznie el ementy minimalne w sensie relacji R. Takie postępowanie daje najpełniejsze od si ew an ie p r ze kr oj ów gorszych. Aby Je przeprowadzić, n a l e ­ ży dokonać sprawdzenia czy F(x,Y) < 0 i Jeśli relacja ta zachodzi, to X odrzucamy, w przeci wn ym wypadku sprawd za my czy f(y,X) < 0 1 w t e d y o d ­ rzucamy Y; natomiast Jeżeli druga nierówność nie Jest spełniona, to ele- aenty X 1 Y niep or ów ny wa ln e w sensie relacji R. W ten sposób bu­

dowane sę na jm ni ej sz e rodzir.y przekrojów, na czym oszczędza się pamięć komputera i czas Jaki trzeba by poświęcić na analizę w da lszych krokach przekrojów, które mo g ł y b y się w ś l l z n ę ć do rodziny przy Je dn okrotnym porównywaniu. Jakie proponowane Jest w [2] i [ ś ] . Można wykazać, że po wstępnym up ro szczeniu problemu poszukiwania pr ze k r o j ó w mi ni ma ln yc h kom­

pleksu, każdy cykl re prezentowany Jest w tablicy binarnej kompleksu G przez łuki, które sę elementami mi ni malnymi w sensie relacji R. A b y to wykazać, przypuśćmy, że łuki a, b należę do cyklu c.

a,b 6 c = jaj.! i “ l , . . . , p j (4.13)

Wtedy F({a}, {b}) » f(b) - f(a) 4 f(({a} - -[b^) n U) « f(b) - f(a) 4 4 f({a} n U)

1 F ( { a } , { b } ) < 0 mogłoby zachodzić wyłę cz ni e wtedy, gdy a j U i f ( a ) >

f(b), a to Jest równoważn . ze stwierdzeniem, że

E({a}) c E({b}) 1 f(a) > f ( b ) , (4.14)

co przeczy założeniu, że pr ze pr ow ad zo no ws tę pn e up ro sz cz en ie problemu (3.2, 3.3). Podobny wn io se k otrzymamy, badajęc ni er ów no ść F ({b}.{a}) < 0 . Stęd wynika, że budowę rodzin S k (k * 1 n) można rozpoczęć od do wo ln eg o cyklu i że na każdym poziomie k można gromadzić w wyłęcznie e l e m e n ­ ty minimalne. A l go ry tm redukcji ma postać następujęcę:

(10)

A4. Algo ry tm redukcji liczby przekr oj ów procedurę reduction

var i l , J 1: P begin i l :« 1 ¡

while il < p do begin

if f (il.X,Y) < 0 then begin p : ■ p - 1 j

for Jl¡« il to p d o J1 .X :- (jl + l).X¡

il:- il - 1; nll((p + l).X) end e l ae

lf f(y,11.X) < 0 then begin Y:« empty; ił:» p e n d ; il:- il + 1

e n d ;

if not Y > empty then begin p : ■ p +' 1;

new(p.x) ; p.X :« Y end

end

W algory tn ie tye użyto dyneeicznej rezerwacji mi ejsce na zbiory X.

Przekrój zred uk ow an y traci miejsce w pamięci - nil((p + l).X), niezredu- kowany przekrój Y reaktywuje nowe miejsce w pamięci - new(p.X), Liczba zbiorów X na każdym poziomie k nie Jeat znana a priori, *ym samym al­

bo się zastosuje efektywną rezerwację dynamiczną na każdy J- ty zbió r X (j.X), albo zapewni się statyczną rezerwację miejsca na całą rodzinę -{x}

zbiorów - oczywiócie z pe wn ym osza co wa ny m nadmiarem. Decyzje na le ży do programisty, algorytm A4 pokazuje natomiast, w których momentach może być użyta rezerwacja dynamiczna.

5. Algorytm tworzenia rodziny p r ze kr oj ów minimalnych

Na każdym etapie k tworzenia rodziny p r ze kr oj ów { l.S ,... .p^.sj jej rozmiar Jest zmienny i tym samym zm ienny Jest ob sz ar pamięci po św ię­

cony na jej przechowywanie. A b y to w s ka za ć translatorowi, zdefiniowano zmienne typu P Jako w s ka źn ik i pojawiających się lub znik aj ąc yc h obsz a­

rów pamięci (o tych samych rozmiarach) pr ze zn ac zo ny ch na magazynowanie nowych przekrojów.

(11)

Poszukiwanie pr ze kr oj ów mini ma ln yc h kompleksu 39

A5, A l g o ry tm tworzenie rodziny pr ze kr oj ów mini ma ln yc h "creation"

procedure cr eation (ec ,nc , fc ,Gc)

type arc c ■ l..mc) cycle c « l..ncj eet ec « set [ere c] o_f bit j set cc « set [cycle cj o £ bit;

coeplex c ■ set [cycle cj o_f aet ec j P « pointer of X,S! set ec

var Gc i co ep le x cj fet ar ra y [arc c] o_f integer) kt integer;

l . J .P.qt P! »! arc c begin it« 1;

for a i£ Gcro w[ i] do

begin new(i.x); i.Xt» [aj; it» i + 1 e n d ; p:« p - 1; q :« O;

for k:« 1 to nc do

begin "przepisanie rodziny zb io ró w X do rodziny S"

If g < p then begin

for it« 1 to q do i.S:« i.X) for 1:» q + 1. to p do

begin n e w ( i . S ) ; i.S:« i.X end end elee

begin

for i:« 1 £ o p do i.S:» i.X) for i:» p + 1 t_o q do nll(i.S) end ;

q:« p;

for i: = 1 to p d o n l l ( l . x ) ;

p:» O; "generowanie nowej rodziny zb iorów X"

for it« 1 to q do

if not i.S * Gcrow[k] ■ eepty then begin Y:« i.S; reduction end else for a jLji Gcrow[k] do

begin Y:» Gcrow[k] 4 { a j ; reduction end e n d ;

rewrite 2 end

Algoryte rozpoczyna tworzenie rodziny p r ze kr oj ów od pi er ws ze go cyklu reprezentowanego przez Gcrow[i]. Na koócu procedura "creation" wy wołuje procedurę "rewrite 2", która tworzy statyczny zbiór S w eiejsce d y n a ­ micznych zb io ró w X i S, których rezerwację kasuje - opisane ona Jest dalej. Kiedy powyższy algorytm ut worzy rodzinę pr ze kr oj ów S n , to składa

*ię ona wyłęcznle z p r ze kr oj ów mlniealnych. Wy ni ka to z tego, ie zbiór U Jest pusty i wtedy

(12)

F(x,Y) = f (Y - X) - f ( X - Y ) » - F (y,X). (5.1)

ponadto wiadomo, Ze algorytm kwalifikuje do rodziny S n tylko takie zb io­

ry X i Y , dla których nie za chodzi ani f(x,Y) < O, ani f(y,x) < O, więc

F(X,Y) - F(Y,X) » O < £ = > f (Y - X) » f(x - Y) , (5.2)

co z kolei Jeat równoważne stwierdzeniu, Ze

f(x) - f(y) (5.3)

tym samym wy b ó r przekr oj ów mi ni ma ln yc h z rodziny S n Jest trywialny - re­

prezentuje ona wy łę cz nl e przekroje minimalne utworzone automatycznie przez procedurę "creation" w wy niku na pr ze mi en ne go stosowania akcji syntezy i redukcji przekrojów. Zada ni em ostatniej procedury Jest przepisanie prze­

krojów mi ni ma ln yc h do formy zawierającej wszystkie luki kompleksu, tj. do tablicy S s , dodanie do każdego przekroju łuków zbioru As i obliczenie kosztu rozcięcia:

A5. Al gorytm wy pe łn ia ni a tablicy przekrojów mi ni ma ln yc h "rewrite 2"

procedure rewrite 2 var b: arc c begin s :« p ;

for 1:> 1 tc> a do begin b:« 1;

for a :« 1 £ o a do if a iri A then

begin

Ss [i,a] i.X [b ]; b:- b + 1 end else

Ss [i ,a] :« As [b] e n d ;

for i:« 1 to p do nil(i.X);

for i:» 1 Jto q dj> nll(i.S);

k o s z t :« 0;

for a in Ssrow [l] do koszt:« koszt + f(a) end

Ostatecznie główny blok algorytmu po sz uk uj ąc eg o rodzinę p r ze kr oj ów mi­

nimalnych ma następującą postać:

(13)

Poszukiwanie pr ze kr oj ów mini ma ln yc h kompleksu 41

A7. Algo ry tm "minlsections"

program mlnlsectlone ver m,»8,n,ne: Integer

type arc « l..m; cycle « l..n; sec « l..ej set a - set [are] of_ bit;

aet c = set fe ye lei of bit;

complex « set [cycle! of set a;

fam sec » set [sec] of set a

var koszt: Integer; A,As: set a; C: set c; G: complex;

Ss: fam sec; h: arra y fare] of integer begin

read (m ,n ,G ,b) ; simplification;

i_f ms < m then begin

rewrite 1;

c r e a t i o n ( m e , n s ,fe,Gs) end else

c r e a t l o n ( m , n , f , G ) ; prlnt( Ss ,k08Zt)

end

Procedury “r e a d ’ i “print" nie sę tutaj opisane - »łażę one Jedynie do wskazania da ny ch wejś ci ow yc h 1 wyjściowych. Re ze rw ac ja pamięci odbywa się w następującej kolejności: po w p ro wa dz en iu m i n rezerwuje się pamięć dla zbiorów A, As. C i G. Dla tablicy Ss pamięć Jest rezerwowana po określeniu s w proced ur ze “c r e a t i o n “.

6. Wnioski

6.1. Wpro wa dz aj ęc w algorytmie “s i m p l i f i c a t i o n “ możliw oś ci obejścia d r u ­ giej i trzeciej fazy upraszczanie, zmniejsza się w sz cz ególnych w y ­ padkach czas realizacji pr ogramu o czas zb ęd ne go usiłow an ia d o k o n a ­ nia da ls zy ch uproszczeń.

6.2. Wy korzystanie w al go ry tm ie "reduction" właś ci wo śc i el em en tó w m i n i ­ malnych w zbiorach częś ci ow o upor zę dk ow an yc h posiada szereg zalet:

- redukuje się do minimum obszar pamięci zajmowanej przez rodziny przekrojów,

- zmniejsza się czas wyko ny wa ni a programu o czas tworzenia i p o r ó w ­ nywania pr ze k r o j ó w nie będęcych kandydatami na przekroje minimalne k o m p l e k s u ,

- na poziomie - k = n tworzy się automa ty cz ni e rodzina S n p r ze kr o­

jów minimalnych.

(14)

6.3, Dodatkowy os zc zę dn oś ć nocy obliczeniowej konputera nożna osiągnąć przez dy na mi cz ną rezerwację obszaru panlęcl pośw ię co ne go na rodziny . Monenty, odzie w opisanych wyżej al go rytmach wydaje się to być celowe opisano wadlug maniery z monografii [4].

Dodatek

Opis Języka algorytmów

Al go ry tm y w niniejszej pracy sę pisane w Języku Pascal we dł ug defini­

cji tego Języka zawartej w pracy [4]. Al go r y t m y operuję tutaj da nyni kon­

wencjonalnymi, Jak: liczby całkowite, zmienne typu integer oraz Ich ta­

blice. Działania na nich nie wy magają objaśnień. Obok tych typów wi el ko ś­

ci na użytek tej pracy zd ef in io wa no d o da tk ow o typy, takie Jak: zbiory 1 rodziny zbiorów. S c he ma ty d e fi ni cj i tych typów sę nast ęp uj ąc e - najpierw de fi ni uj e się typ ca łk ow it y ok rojony dla określenia mocy zbioru 1 zakresu zmienności wska źn ik a e l em en tó w zbioru, a następnie asm zbiór, lub rodzinę zbiorów:

- typ całkowity okrojony

var a: integer type element « l..m - zbiór

type set « set [element] of bit - rodzinę zb iorów

var n: integer type el fam - i . .n

famlly « set [el fam] o £ set Zm ie nn e powyższych typów re pr ez en to wa ne sę przez tablice binarna - w przypadku zbioru Je dn ow ym ia ro we o w y mi ar ze m, w przypadku ro dziny zbio­

rów d w uw ym ia ro we o wy mi er za n * w.

Przykład d e fi ni ow an ia typów zmiennych:

var R: family; J: el fam; A,B,C: setj i: element

Z a kłada się, że efektem określ en ia typu zmiennej Jest pr zy zn an ie jej miej­

sca w pamięci, gdy tylko określona zostanie jej moc. Za kłada się dalej, że do st ęp do zmiennej obok powołania się na jej nazwę (dostęp globalny) może odbywać się również poprzez w s ka za ni e jaj składowej w następujący sposób:

- dla zbioru do st ęp do i-tego bitu określa A [i] , pr zy czym Jeżeli bit tan Jest w stanie "1", to przyjęto, że i-ty element należy do zbioru A, - dla rodziny zb io ró w do stęp do i-tego elementu J-tego zbioru określa

R[j,i], dostęp do J- te go zbioru określa się za pomocą ws ka z a n i a wiersza Rrow[j] oraz zakładamy, że istnieje Jeszcze d o st ęp do 1-teJ kolumny wy­

rażony przez Rcolumn[i], Na st ęp ny m skutkiem o k re śl en ia zmiennej (jej ty­

(15)

pu) jest m o żl iw oś ć wy kn ne ni a pewnych operacji i sprawdzenia relacji za­

chodzących między nini. Zakłada się, że nolliwe sę następujęce operacje przypisania i operacje boolowskie

- A:» space, ustawienie ws zy st ki ch bilów w pozycji "1", - A;« empty, Jak wyżej tylko w pozycji "0",

- A:= A + B, n6 każdej pozycji pojawia się logiczna suma bitów, - A:« A * B, jak wyżej tylko iloczyn logiczny bitów,

- A:= A - B, jak wyżej tylko różnica logiczna bitów,

ponadto z8kł8do się, że do st ęp ne Jest sprawdzenie za ch od ze ni a relacji inkluzji mi ęd zy zbiorami,

- A < 8, co Jest równoweżne sprawdzaniu następujęcej relacji równości A ■=

1 A * B , relację pr zy na le żn oś ci elementu do zbioru określa się przez symbol ¿rt: a i£ A. W pracy prze wi dz ia no możliwość dynamicznej re zerwa­

cji miejsca w pamięci - odbywa się to przez wyznaczenie zbioru ws k a ź n i ­ ków, ok re śl aj ęc yc h dla którego zbioru rezerwacja będzie ■ do ko ny wa na i przez określenie pojemności rezerwowanej pamięci za oomocę definicji typu wielkości, n p . :

var X: set

type ws ka źn ik » pointer of X v a r r: ws ka źn ik

Powyższa informacja mówi, że rezerwowana będzie pamięć dla zmiennej ty­

pu zbiór o nazwie “X" 1 wskazywanej przez wskaźnik r. Rozkaz powołujęcy miejsce w pa mięci na postać new(r.X) , rozkaz likwidujęcy miejsce w pami ę­

ci na postać nil(r.x). Dla każdego r-tego zbioru X rezerwuje aię Jedne- kowę pamięć równę a bitom.

LITERATURA

[lj Raslowa H . : Ws tę p do matema ty ki współczesnej. PWN, W a r s za wa 1971.

[2] 0 s t r o w 8 k i j G . M . , Wo l i n O u . M . : Mo de l l r o w a n i e słożnych ch em ik o- te ch no - logiczesklch achiem. Chlnia, 1975.

[3] Ostrowski G . M . , Woli n 3.M.j Optyma li za cj a złożonych systemów t e ch no­

logii chemicznej. WNT, W a r s za wa 1974.

[4] Wirth N. : Al go r y t m y ♦ struktury da ny ch = programy. WNT, Wa rs za wa 1980.

[5] Wolin C u . M . : Chen. Eng. Sci. , 1973 r. vol. 28.

[6] Deo N. : Teoria g r af ów i Jej zastosowanie w technice i informatyce. PWN Wa rs za wa 1980.

[7] Berge C. : Gr ap hs and Hypergrophs. North-Holland Publisching Company, 1976.

[fi] Relngold E . M . , Nievergelt 3., Deo N . : Combin at or ia l Algorithms. T h e o ­ ry and Practice. Tłum. roe. Mir, 1980.

[9] Aho A.V. , Hopcroft O.E.. Ul lm an 3.D. : The Design and A n al ys is of Com­

puter Algorithms. Tłum. ros. Mir, 1979.

!l0 i . k iy. Ł-rie 01 . t i J a h ' '• 1 n c Inyęi k nmti j ex 'J_______________________________ i .i

(16)

[10] Himmelblau D.M. : De co mposition of Large-Scale Problems. North-Hol- land Publisching Company, 1973.

[11] Rudd D.F. , Watson Ch.C. : St rategy of Process Engineering. John Wiley and Sons Inc. 1968.'

Recenzent: Doc. dr hab. inż. Oózef Grabowski

Wpły nę ło do Redakcji 15.11.1981 r.

nOHCK MHHHMAJlhHia CJHEHHJl KOH1UUSKCA

P e 3 n m e

B cxaite npesciaBjieH oiropHXM noBoxa MKHKuaJibHoro ceieHHH UHicaa rpaipa, ripofloiaBJieKHHtt neioA oOpasyex uHUuuajibHue ceBeHHa KO Mn ae xc a orpaHHMHBaaot 40 ceqeKB# BunozHaxuKx onpeAensHBue y c j x o b h h, OcxanbHHe ceueHHa Be aHajtH3H- pynxcH, n o yneHmaei □pHBjie'teHBue k BioioiHeHMB aaflawLH uamBUHBie pecypcn. A - Basua orpaHHBeH 40 cxporo caaaaHHiix rpatfioB, b i o He orpaimBHBaex o O h h o c i m ue- xoaa.

MI NIMAL CUTS RE SE AR CH FOR A COMPLEX

S u m m a r y

The paper concerns with an al go ri th m for finding a set of minimal graph cuts. Presented method forms minimal graph cuts by co ns id er at io n those c u t8 only wh i c h satisfy certain conditions. Rema in in g cuts are eliminated from further consid er at io ns and the computer power needed to solve above problem decreases. Ad di ti on al in tr od uc to ry problem simplification has been brought in. Without loss of ge ne ro si ty only strongly connected graphs h a ­ ve been considered here.

Cytaty

Powiązane dokumenty

Pierwszą jest seria aktów, poprzez które Południe zostało wykluczone ze wspólnego terytorium należącego do wszystkich stanów jako członków Unii Federalnej – co dało

Також варто звернути увагу на те, що хоча українці і вказують на більшу кількість джерел, ніж поляки, що свідчить про

b). Wartość oczekiwaną tej zmiennej losowej

a) wskaźnika PKB b) wskaźnika wzrostu płac c) wskaźnika wzrostu cen d) indeksu WIG 53. Ujemne saldo na rachunku bankowym, które powstaje np. Długotrwały trend spadkowy

[r]

Powstaje podgraf H, który ma mniej krawędzi niż graf G (może nie być spójny), ale nadal każdy wierzchołek ma w nim stopień parzysty (po usunięciu cyklu C stopień zmniejsza

współczynników przyrostu informacji wybierany jest test to˙zsamo´sciowy atrybutu aura o najwi ˛ekszym

Należy jeśli to możliwe policzyć wartość POLA POWIERZCHNI oraz OBWODU koła (możliwe jest to wówczas gdy liczba R jest większa od 0). c) Masz daną liczbę całkowitą $X.