ALGORYTM ZNAJDOWANIA JEDNO- I DWUELEMENTOWYCH MINIMALNYCH PRZEKROJÓW W GRAFIE NIEZORIENTOWANYM

Podobne dokumenty
Diagnostyka układów kombinacyjnych

Zapis informacji, systemy pozycyjne 1. Literatura Jerzy Grębosz, Symfonia C++ standard. Harvey M. Deitl, Paul J. Deitl, Arkana C++. Programowanie.

5. OPTYMALIZACJA GRAFOWO-SIECIOWA

WikiWS For Business Sharks

Zmodyfikowana technika programowania dynamicznego

Zestaw zadań 4: Przestrzenie wektorowe i podprzestrzenie. Liniowa niezależność. Sumy i sumy proste podprzestrzeni.

Laboratorium ochrony danych

Analiza danych OGÓLNY SCHEMAT. Dane treningowe (znana decyzja) Klasyfikator. Dane testowe (znana decyzja)

Weryfikacja hipotez dla wielu populacji

Prawdziwa ortofotomapa

ALGORYTM ZNAJDOWANIA PRZEKROJÓW W GRAFIE O KRAWĘDZIACH NIEZORIENTOWANYCH ALGORITHM FOR FINDING CUTS IN UNDIRECTED GRAPH

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 1. Układy równań liniowych

D Archiwum Prac Dyplomowych - Instrukcja dla studentów

I. Elementy analizy matematycznej

Wprowadzenie do Sieci Neuronowych Sieci rekurencyjne

Zadanie na wykonanie Projektu Zespołowego

Zadanie 1. Udowodnij, że CAUS PRAM. Załóżmy przetwarzanie przyczynowo spójne. Dla każdego obrazu historii hv i zachodzi zatem:

Pesymistyczna złożoność obliczeniowa algorytmu faktoryzacji Fact

Sortowanie szybkie Quick Sort

MATEMATYKA POZIOM ROZSZERZONY Kryteria oceniania odpowiedzi. Arkusz A II. Strona 1 z 5

D Archiwum Prac Dyplomowych - Instrukcja dla opiekunów/promotorów/recenzentów

5. Pochodna funkcji. lim. x c x c. (x c) = lim. g(c + h) g(c) = lim

Analiza danych. Analiza danych wielowymiarowych. Regresja liniowa. Dyskryminacja liniowa. PARA ZMIENNYCH LOSOWYCH

ZESTAW ZADAŃ Z INFORMATYKI

11/22/2014. Jeśli stała c jest równa zero to takie gry nazywamy grami o sumie zerowej.

Modelowanie i obliczenia techniczne. Metody numeryczne w modelowaniu: Optymalizacja

SZTUCZNA INTELIGENCJA

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 208. Komputerowa realizacja automatów skończonych

BADANIA OPERACYJNE. Podejmowanie decyzji w warunkach niepewności. dr Adam Sojda

Projekt 6 6. ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH CAŁKOWANIE NUMERYCZNE

p Z(G). (G : Z({x i })),

Programowanie Równoległe i Rozproszone

KRZYWA BÉZIERA TWORZENIE I WIZUALIZACJA KRZYWYCH PARAMETRYCZNYCH NA PRZYKŁADZIE KRZYWEJ BÉZIERA

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Metody gradientowe poszukiwania ekstremum. , U Ŝądana wartość napięcia,

Odtworzenie wywodu metodą wstępującą (bottom up)

Definicje ogólne

W praktyce często zdarza się, że wyniki obu prób możemy traktować jako. wyniki pomiarów na tym samym elemencie populacji np.

Rozwiązywanie zadań optymalizacji w środowisku programu MATLAB

Podstawowe własności grafów. Wykład 3. Własności grafów

RÓWNOLEGŁY ALGORYTM POPULACYJNY DLA PROBLEMU GNIAZDOWEGO Z RÓWNOLEGŁYMI MASZYNAMI

Regulamin promocji 14 wiosna

Regulamin promocji upalne lato

STATYSTYKA MATEMATYCZNA WYKŁAD 5 WERYFIKACJA HIPOTEZ NIEPARAMETRYCZNYCH

Pokazać, że wyżej zdefiniowana struktura algebraiczna jest przestrzenią wektorową nad ciałem

5. CHARAKTERYSTYKI CZĘSTOTLIWOŚCIOWE

SZACOWANIE NIEPEWNOŚCI POMIARU METODĄ PROPAGACJI ROZKŁADÓW

Statystyka. Zmienne losowe

Wyszukiwanie. Wyszukiwanie

Sortowanie topologiczne skierowanych grafów acyklicznych

) będą niezależnymi zmiennymi losowymi o tym samym rozkładzie normalnym z następującymi parametrami: nieznaną wartością 1 4

Problem plecakowy (KNAPSACK PROBLEM).

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Ćwiczenie 10. Metody eksploracji danych

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 311

V. WPROWADZENIE DO PRZESTRZENI FUNKCYJNYCH

Proces narodzin i śmierci

Regulamin promocji zimowa piętnastka

System Przeciwdziałania Powstawaniu Bezrobocia na Terenach Słabo Zurbanizowanych SPRAWOZDANIE Z BADAŃ Autor: Joanna Wójcik

REALIZACJA ARCHITEKTUR MACIERZY PROCESOROWYCH W DYNAMICZNIE REPROGRAMOWALNYCH UKŁADACH FPGA

Treść zadań 1 8 odnosi się do poniższego diagramu przestrzenno-czasowego.

O PEWNYM MODELU POZWALAJĄCYM IDENTYFIKOWAĆ K NAJBARDZIEJ PODEJRZANYCH REKORDÓW W ZBIORZE DANYCH KSIĘGOWYCH W PROCESIE WYKRYWANIA OSZUSTW FINANSOWYCH

Analiza rodzajów skutków i krytyczności uszkodzeń FMECA/FMEA według MIL STD A

Pattern Classification

ROZWIĄZANIE PROBLEMU WYZNACZANIA POŁĄCZEŃ W SIECIACH KOMUNIKACYJNYCH Z ZASTOSOWANIEM METODY SKALARYZACJI

METODA UNITARYZACJI ZEROWANEJ Porównanie obiektów przy ocenie wielokryterialnej. Ranking obiektów.

Określanie mocy cylindra C w zaleŝności od ostrości wzroku V 0 Ostrość wzroku V 0 7/5 6/5 5/5 4/5 3/5 2/5 Moc cylindra C 0,5 0,75 1,0 1,25 1,5 > 2

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

OPTYMALIZACJA WARTOŚCI POLA MAGNETYCZNEGO W POBLIŻU LINII NAPOWIETRZNEJ Z WYKORZYSTANIEM ALGORYTMU GENETYCZNEGO

Diagonalizacja macierzy kwadratowej

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Regulamin promocji fiber xmas 2015

Egzamin ze statystyki/ Studia Licencjackie Stacjonarne/ Termin I /czerwiec 2010

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1

Podstawy teorii falek (Wavelets)

Natalia Nehrebecka. Wykład 2

BADANIE DRGAŃ WŁASNYCH NAPĘDU ROBOTA KUCHENNEGO Z SILNIKIEM SRM

8. Optymalizacja decyzji inwestycyjnych

Zaawansowane metody numeryczne

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Kodowanie informacji. Instytut Informatyki UWr Studia wieczorowe. Wykład nr 2: rozszerzone i dynamiczne Huffmana

Przykład 4.1. Belka dwukrotnie statycznie niewyznaczalna o stałej sztywności zginania

Data Mining Wykład 3. Algorytmy odkrywania binarnych reguł asocjacyjnych. Plan wykładu

SYSTEMY UCZĄCE SIĘ WYKŁAD 7. KLASYFIKATORY BAYESA. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

WPŁYW PARAMETRÓW DYSKRETYZACJI NA NIEPEWNOŚĆ WYNIKÓW POMIARU OBIEKTÓW OBRAZU CYFROWEGO

Natalia Nehrebecka. Dariusz Szymański

n liczba zmiennych decyzyjnych c współczynniki funkcji celu a współczynniki przy zmienych decyzyjnych w warunkach

Analiza porównawcza rozwoju wybranych banków komercyjnych w latach

( ) ( ) 2. Zadanie 1. są niezależnymi zmiennymi losowymi o. oraz. rozkładach normalnych, przy czym EX. i σ są nieznane. 1 Niech X


STATECZNOŚĆ SKARP. α - kąt nachylenia skarpy [ o ], φ - kąt tarcia wewnętrznego gruntu [ o ],

Andrzej Borowiecki. Open Office. Calc arkusz kalkulacyjny. Przykłady zadań dla geodetów

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Badanie współzależności dwóch cech ilościowych X i Y. Analiza korelacji prostej

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

D Archiwum Prac Dyplomowych - kontrola antyplagiatowa

4. OPTYMALIZACJA WIELOKRYTERIALNA

Wielokategorialne systemy uczące się i ich zastosowanie w bioinformatyce. Rafał Grodzicki

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Wprowadzenie do Sztucznej Inteligencji

Transkrypt:

ELEKTRYKA 010 Zeszyt 3 (15) Rok LVI Łukasz PIĄTEK Instytut Informatyk, Poltechnka Częstochowska ALGORYTM ZNAJDOWANIA JEDNO- I DWUELEMENTOWYCH MINIMALNYCH PRZEKROJÓW W GRAFIE NIEZORIENTOWANYM Streszczene. Opracowano nowy algorytm znajdowana jedno- dwuelementowych mnmalnych przekrojów w grafe o krawędzach neskerowanych. Algorytm wykorzystuje unkalną metodę przeszukana grafu. W trakce znajdowana przekrojów jednoelementowych są wyznaczane podgrafy, w których ne stneją Ŝadne przekroje jednoelementowe. Podgrafy te są następne poddawane unkalnej metodze przeszukana. Jest znajdowany podzał grafu na te obszary, gdze kaŝda z krawędz tworzy przynajmnej jeden przekrój dwuelementowy oraz te obszary, gdze Ŝadna z krawędz ne wchodz w skład jakegokolwek przekroju. Obszary grafu, w których krawędze wchodzą w skład przekrojów, są uŝywane do konstrukcj pełnego zboru mnmalnych przekrojów dwuelementowych. Słowa kluczowe: przekrój, mnmalny przekrój, graf, algorytm, przepływ w secach ALGORITHM FOR FINDING ONE AND TWO ELEMENTS MINIMAL CUTS IN UNDIRECTED GRAPH Summary. A new algorthm for fndng one and two elements cuts n undrected graph was gven. The algorthm s based on an unque method for searchng the graph. Durng the fndng of one element cuts such subgraphs are found, n whch there are no one element cut. These subgraphs are then searched separetely by an unque method. A dvson of the graph nto areas s found. One type of the area s such that each edges n t s n at least one mnmal two elements cut. The second type s such that not any edge s n a mnmal two elements cut. Areas of the graph where edges are n cuts are used to construct the full set of two elements mnmal cuts. Keywords: cut, mnmal cut, graph, algorthm, flow n networks 1. WSTĘP Metody poszukwana zboru przekrojów w grafach znajdują zastosowane w analze nezawodnośc złoŝonych systemów przesyłowych [1, ]. Znalezene pełnego zboru przekrojów rozdzelających dwa wyróŝnone węzły w grafe jest zadanem złoŝonym.

13 Ł. Pątek Algorytm nawny, znajdujący pełny zbór przekrojów w grafe o n krawędzach, wymaga sprawdzena spójnośc grafu dla wszystkch 1,,..., n-elementowych kombnacj zboru krawędz. PonewaŜ sprawdzene na spójność ma lnową złoŝoność, węc złoŝoność algorytmu nawnego wynos O(n n ). Prowadzone prace pozwolły opracować m. n. algorytm redukujący złoŝoność do O( n ) dzęk braku konecznośc sprawdzana grafu na spójność [3]. Inne algorytmy znajdujące pełny zbór przekrojów w grafe wymagają z kole uprzednej dentyfkacj pełnej lsty śceŝek w grafe, co samo w sobe jest złoŝone. Wśród algorytmów znajdujących przekroje w grafe wyróŝnć moŝna klasę algorytmów, które ogranczają zbór znajdowanych przekrojów do przekrojów o maksmum dwu lub trzech krawędzach (zwane dalej przekrojam dwuelementowym lub przekrojam trójelementowym). Ogranczene zboru przekrojów ma uzasadnene praktyczne. Po perwsze, jest to zadane o duŝo mnejszym stopnu złoŝonośc nŝ znajdowane pełnego zboru przekrojów. Po druge, w zastosowanu do oblczeń nezawodnośc sec przesyłowych, w sytuacj gdy elementy sec charakteryzują sę wysoką nezawodnoścą, ne ma potrzeby rozwaŝana przekrojów o lczbe krawędz wększej nŝ lub 3. W takch wypadkach moŝna zastosować algorytm [4, 5] znajdujący wszystke przekroje o maksmum krawędzach lub algorytm [6] znajdujący przekroje o maksmum 3 krawędzach. Prezentowany algorytm znajduje wszystke przekroje o jednej lub dwóch krawędzach. Podstawą jego dzałana jest nowa metoda podzału grafu na podgrafy w trakce szukana przekrojów jednoelementowych oraz unkalna metoda przeszukana struktury grafu, pozwalająca na dentyfkację tych krawędz w grafe, które wchodzą w skład przynajmnej jednego przekroju dwuelementowego. Znalezone krawędze, razem z wyznaczonym w trakce operacj przeszukana obszaram grafu, w których Ŝadna z krawędz grafu ne wchodz w skład Ŝadnego przekroju, pozwalają na znalezene pełnego zboru dwuelementowych mnmalnych przekrojów w grafe nezorentowanym.. MINIMALNE PRZEKROJE W GRAFIE NIEZORIENTOWANYM Z punktu wdzena nezawodnośc złoŝonych systemów przesyłowych przekrój jest zborem elementów, których uszkodzene pocąga za sobą awarę systemu. Przekrój, w którym ne stneje tak element, którego naprawa ne powoduje przywrócena systemu do stanu sprawnośc, nazywamy przekrojem mnmalnym [1]. Nech będze dany nezorentowany graf spójny =, gdze v } G V, E werzchołków grafu, a zborem krawędz jest E = e = j} :, j V} V = jest zborem,. W zborze werzchołków V wyróŝnono dwa werzchołk s oraz t, s, t V. Nech dla dowolnych dwóch

Algorytm znajdowana jedno- dwuelementowych 133 werzchołków w grafe stneje co najwyŝej jedna łącząca je krawędź. Nech graf ne zawera pętl, czyl krawędz typu }, V,. Przekrojem mnmalnym grafu, rozdzelającym werzchołk s t, nazywamy tak podzał zboru werzchołków V na dwa podzbory A B, który spełna następujące warunk: 1. zbory A B stanową podzał zboru werzchołków grafu V,. zbory A B są rozłączne, A U B = V, (1) AI B =, () 3. werzchołek s znajduje sę w zborze A ( s A ), werzchołek t znajduje sę w zborze B ( t B ), s A, t B, (3) 4. zbory te wyznaczają pewen podzbór krawędz grafu C E tak, Ŝe kaŝda krawędź e C łączy dwa werzchołk grafu, z których jeden werzchołek jest w zborze A, drug w zborze B, j} : A j B} e =,,, (4) 5. dla wyznaczonego przez podzał A B podzboru krawędz grafu C ne stneje Ŝaden nny przekrój C' będący podzborem C, CI C' C'. (5) Jeśl zatem C jest przekrojem mnmalnym, to ne stneje Ŝaden podzbór zboru C, który sam jest przekrojem. NaleŜy zaznaczyć, Ŝe przedstawona w tej pracy defncja przekroju mnmalnego, zawarta m.n. w pracy [1], róŝn sę od defncj przekrojów mnmalnych z prac [4, 7]. Zbór przekrojów mnmalnych według defncj [4, 7] jest tylko podzborem zboru przekrojów mnmalnych według defncj [1]. Dlatego w badanu nezawodnośc złoŝonych systemów przesyłowych znalazła zastosowane defncja z pracy [1]. 3. ALGORYTM ZNAJDOWANIA JEDNO- I DWUELEMENTOWYCH MINIMALNYCH PRZEKROJÓW W GRAFIE NIEZORIENTOWANYM W celu znajdowana przekrojów jedno- dwuelementowych skonstruowano autorsk algorytm. Pracę algorytmu znajdowana przekrojów mnmalnych jednoelementowych przedstawono w postac pseudokodu w punkce 6. W trakce znajdowana przekrojów jednoelementowych jest znajdowany zbór par werzchołków (s,t ), które wyznaczają podgrafów, na podstawe których są znajdowane dwuelementowe przekroje mnmalne. Przekroje dwuelementowe są znajdowane w trakce procedury szukana przekrojów opsanej w rozdzale 4.

134 Ł. Pątek Na rysunku 1 pokazano przykład grafu o jednym przekroju jednoelementowym dwóch podgrafach zawerających przekroje dwuelementowe. Rys. 1. Przykładowy graf z dwoma podgrafam zawerającym przekroje dwuelementowe Fg. 1. Example graph wth two subgraphs contanng two elements cuts W toku znajdowana przekrojów jednoelementowych w grafe z rysunku 1 zostaje znalezony przekrój przez krawędź łączącą werzchołk 4 5. Równocześne zostają wyznaczone dwe pary werzchołków wyznaczających dwa podgrafy. Para s 0 =1 oraz t 0 =4 wyznacza podgraf 1,, 3, 4}. Para s 1 =5 oraz t 1 =14 wyznacza podgraf 5, 6, 7, 8, 9, 10, 11, 1, 13, 14}. 4. PROCEDURA ZNAJDOWANIA DWUELEMENTOWYCH MINIMALNYCH PRZEKROJÓW Prezentowana procedura znajdowana przekrojów mnmalnych dwuelementowych zakłada, Ŝe wszystke krawędze w grafe mają wartość przepustowośc [7] równą jednej jednostce, a przepływ w grafe równa sę jednostkom. Spełnene tych warunków zapewna algorytm znajdowana przekrojów jednoelementowych przedstawony w rozdzale 3. W perwszej kolejnośc w grafe jest znajdowany maksymalny przepływ od werzchołka s do werzchołka t za pomocą metody znajdowana maksymalnego przepływu Forda-Fulkersona [7]. Przepływ ten pozwala na wyznaczene śceŝkowego rozkładu przepływu. ŚceŜkowy rozkład przepływu wykorzystano równeŝ w pracy [4, 5], takŝe w celu znajdowana przekrojów dwuelementowych mnmalnych. Rozkład przepływu wyznacza dwa rozłączne podzbory zboru krawędz grafu - śceŝkę perwszą E I E =. p1 p E p 1 E oraz śceŝkę drugą E p E, Podstawą dzałana algorytmu znajdowana dwuelementowych przekrojów jest dentyfkacja podzboru zborów E ps1 E p1 E ps E p, zawerających te krawędze, które wchodzą w skład przynajmnej jednego przekroju dwuelementowego. Równocześne jest wyznaczany podzał zborów na podzbory warunk: E psd 1 oraz E psd 1 ( = 1,,.., n ). Spełnone są

Algorytm znajdowana jedno- dwuelementowych 135 n U E psd1 = E ps1 (6) = 1 n U E psd = E ps1 (7) = 1 Podzał ten odbywa sę przez dentyfkację spójnych obszarów w grafe, nazwanych dla potrzeb opsu algorytmu obszaram EOC (ang. edges out of cut). Obszar EOC charakteryzuje po perwsze to, Ŝe Ŝadna z krawędz leŝących w tym obszarze ne wchodz w skład jakegokolwek przekroju dwuelementowego. Po druge, obszar EOC jest podgrafem połączonym z resztą krawędz grafu dokładne czterema krawędzam, z których dokładne dwe krawędze leŝą na śceŝce perwszej oraz dokładne dwe krawędze leŝą na śceŝce drugej. Wyjątkem jest przypadek obszarów leŝących przy werzchołku s przy werzchołku t. W tych dwóch wyjątkowych przypadkach obszary łączą sę z grafem dwema krawędzam. Obszar EOC moŝe być zborem pustym, tzn. ne zawerać Ŝadnej krawędz (tak przypadek zachodz, gdy śceŝk krzyŝują sę). PonewaŜ posługwane sę obszarem jako zborem krawędz byłoby neefektywne, w algorytme wykorzystano to, Ŝe łącznk obszaru EOC z resztą grafu są krawędzam leŝącym naleŝącym do zborów E p1 E p. Algorytm tworzy dwe tablce lczb całkowtych o nazwe V_INDEX oraz V_INDEX_ o rozmarze równym lczbe werzchołków w grafe. Elementy tablc są ncjowane wartoścam -1. Następne dla werzchołków leŝących na śceŝce perwszej w tablcy V_INDEX są zapsywane lczby naturalne parzyste, zgodne z połoŝenem werzchołków na śceŝce perwszej (werzchołek najblŝej s otrzymuje ndeks równy, kolejne 4,6,8 td.). Werzchołk na śceŝce drugej otrzymują ndeksy będące lczbam naturalnym neparzystym (najblŝej s otrzymuje ndeks 3, następne 5,7 td). W raze krzyŝowana sę śceŝek w tablcy V_INDEX jest zapsywany dla werzchołka skrzyŝowana ndeks jak dla śceŝk perwszej, a odpowedn ndeks werzchołka śceŝk drugej trafa do tablcy V_INDEX_. Dzęk nformacjom zawartym w tablcy V_INDEX obszar EOC moŝe być jednoznaczne określony przez ndeksy werzchołków stanowących połączene mędzy obszarem EOC a resztą grafu. Indeksy te są oznaczone odpowedno dla śceŝk perwszej jako A1 B1 oraz dla śceŝk drugej jako A B. Rysunek zawera fragment grafu, dla którego wyznaczono śceŝkowy rozkład przepływu. W skład śceŝk perwszej wchodzą krawędze E p1 = 33,34,35,36,37,38}. W skład śceŝk drugej wchodzą krawędze E p = 4,43,44,45,46,47}.

136 Ł. Pątek Rys.. Przykładowy fragment grafu, w którym znajdują sę dwa obszary EOC Fg.. Example part of graph wth two EOC areas nsde W tablcy V_INDEX dla werzchołków leŝących na śceŝce perwszej są przypsane wartośc 6, 8, 10, 1 14. Dla werzchołków na śceŝce drugej w tablcy V_INDEX są przypsane werzchołk 7, 9, 11, 13, 15. Obszary EOC dla tego grafu oraz odpowadające m dentyfkatory to : EOC 1 = 35, 44, 49, 50, 51, 5}; EOC = 53}; d_eoc 1 : A1=8; B1 = 10 ; A=9 ; B=11; d_eoc : A1=14; B1 = 14 ; A=15 ; B=15. Pracę procedury znajdowana przekrojów -elementowych w grafe o krawędzach neskerowanych moŝna podzelć na pęć etapów: 1. Znajdź maksymalny przepływ mędzy węzłam s, t (metoda Forda-Fulkersona).. Jeśl przepływ, to KONIEC. W przecwnym wypadku znajdź śceŝkowy rozkład przepływu. 3. Przeszukaj graf podąŝając wzdłuŝ śceŝk perwszej według specjalnych reguł. W trakce przeszukana znajdź perwszą lstę obszarów EOC. 4. Sprawdź czy znalezone w etape 3 obszary EOC ne nakładają sę na sebe. Jeśl tak, wyznacz nową lstę obszarów EOC, w której połączono nakładające sę obszary. 5. Przeszukaj graf podąŝając wzdłuŝ śceŝk drugej według specjalnych reguł. W trakce przeszukwana jednocześne wygeneruj wynkowy zbór mnmalnych przekrojów dwuelementowych. Przeszukwane struktury grafu ma mejsce w etapach 3 5. PonewaŜ dla potrzeb przeszukwana jest dokonywane oznaczene odwedzonych werzchołków, algorytm gwarantuje to, Ŝe pojedynczy werzchołek zostane odwedzony dokładne jeden raz. W trzecm etape, zaczynając od werzchołka s, jest przeszukwany graf aŝ do werzchołka t, przez podąŝane wzdłuŝ jednej, dowolne wybranej śceŝk. Następuje sprawdzene, które krawędze wchodzące w skład śceŝk perwszej mogą podlegać kombnacjom, a takŝe jest wyznaczany wstępny podzał na sekcje. W tym etape jest pomjane przeszukane nektórych werzchołków znajdujących sę na śceŝce drugej.

Algorytm znajdowana jedno- dwuelementowych 137 W trakce przeszukwana w etape trzecm są wyberane po kole werzchołk leŝące na śceŝce perwszej. Dla kaŝdego wybranego werzchołka v na śceŝce perwszej jest wykonywane przeszukane grafu według następujących reguł: 1. nedozwolone jest przejśce do węzła, który został juŝ oznaczony jako odwedzony,. nedozwolone jest podąŝane wzdłuŝ takej krawędz e, Ŝe e E p, 3. przeszukane wzdłuŝ krawędz e, takej Ŝe e E p 1 jest dozwolone, jeśl następuje w kerunku do werzchołka s (przecwne do kerunku przepływu z s do t ), a zabronone jeśl następuje w kerunku do werzchołka t ( zgodne do kerunku przepływu). Jeśl w wynku zastosowana powyŝszej metody przeszukana okaŝe sę, Ŝe startując od węzła v ne przeszukano Ŝadnego nnego węzła naleŝącego do śceŝk perwszej, wówczas krawędź ze śceŝk perwszej, która wychodz z węzła v jest dodawana do zboru E pc1. W tym wypadku następnym węzłem v jest następny werzchołek na śceŝce perwszej. W przecwnym wypadku następnym węzłem v staje sę odwedzony werzchołek ze śceŝk perwszej o najwększej wartośc ndeksu zapsanej w tablcy V_INDEX. Dodatkowo, gdy dojdze do przeszukana dowolnego węzła lub węzłów drugej śceŝk, jest wyznaczany nowy obszar EOC. Zostają wyznaczone dentyfkatory obszaru w postac czterech lczb całkowtych. Przeszukane w etape trzecm kończy sę, gdy kolejnym węzłem v zostane werzchołek t. Pracę algorytmu w etape trzecm lustruje rysunek 3. Znakam "+" oznaczono werzchołk odwedzone w czase przeszukana w etape 3. Tylko dwa werzchołk ze śceŝk drugej zostały odwedzone, są to werzchołk 9 15. Rys. 3. Przykładowy graf lustrujący dzałane algorytmu w etape 3 Fg. 3. Example graph for llustraton of algorthm work n stage 3 Wyznaczone w etapach 1 zbory E p1 E p to : E 31, 3, 33, 34, 35, 36, 37, 38, 39}, E 40, 41, 4, 43, 44, 45, 46, 47, 48} p1 = p = W etape 3 jest znajdowany zbór E ps1 oraz zbór obszarów EOC: E = ps1 31, 34, 35, 36, 38, 39}

138 Ł. Pątek EOC 1 = 51}; EOC = 37, 5, 53, 57, 58, 59}; d_eoc 1 : A1=8; B1 = 8 ; A=9 ; B=9; d_eoc : A1=1; B1 = 14 ; A=15 ; B=15; W wynku trzecego etapu uzyskujemy perwszy zbór obszarów EOC. Zbór ten jest sprawdzany oraz w raze potrzeby modyfkowany w trakce czwartego etapu. Czwarty etap zamplementowano w algorytme dla przypadków nakładana sę sekcj. Take nakładane moŝe nastąpć w przypadku grafów neplanarnych. Znalezony zbór obszarów EOC wyznacza podzał znalezonego w etape trzecm zboru E pc1 na podzbory E pc1 E pc1 ( = 1,,, n ). Przypadek nakładana sę sekcj w grafe neplanarnym jest pokazany na rysunku 4. Rys. 4. Przykładowy fragment grafu neplanarnego, w którym następuje nakładane obszarów EOC Fg. 4. Example part of non-planar graph wth overlappng EOC areas Dla grafu z rysunku 4 następujące obszary EOC zostaną wyznaczone w etape 3 : EOC 1 = 33, 44, 49, 50, 51, 5}; EOC = 37, 5, 53, 57, 58, 59}; d_eoc1 : A1=4; B1 = 6 ; A=9 ; B=11; d_eoc : A1=10; B1 = 10 ; A=7 ; B=7; W trakce etapu czwartego powyŝsze dwa, nakładające sę obszary EOC zostaną zamenone na jeden: EOC 1 = 33, 44, 49, 50, 51, 5, 37, 5, 53, 57, 58, 59}; d_eoc 1 : A1=4; B1 = 10 ; A=7 ; B=11; Otrzymany w trzecm etape zbór E pc1 oraz otrzymany w czwartym etape zbór obszarów EOC jest wykorzystywany w ostatnm etape. Jest wykonywane przeszukane wzdłuŝ śceŝk drugej, przy czym przeszukwane następuje etapam, wyznaczonym przez kolejne obszary EOC. Przeszukane następuje od werzchołka śceŝk drugej wyznaczonego przez dentyfkator B -tego obszaru EOC (startując od = 0, numeracja obszarów EOC poczynając od zera).

Algorytm znajdowana jedno- dwuelementowych 139 Dla kaŝdego wybranego werzchołka v na śceŝce drugej jest wykonywane przeszukane grafu według następujących reguł: 1. nedozwolone jest przejśce do węzła, który został juŝ oznaczony jako odwedzony,. dozwolone jest podąŝane wzdłuŝ takej krawędz e, Ŝe e E p, a przeszukane następuje w kerunku do werzchołka s (przecwne do kerunku przepływu z s do t ), 3. nedozwolone jest podąŝane wzdłuŝ takej krawędz e, Ŝe e E p, a przeszukane następuje w kerunku do werzchołka t (zgodne z kerunkem przepływu). Jeśl w wynku zastosowana powyŝszych reguł przeszukana okaŝe sę, Ŝe startując od węzła v ne przeszukano Ŝadnego nnego węzła naleŝącego do śceŝk drugej, wówczas krawędź ze śceŝk drugej, która wychodz z węzła v, jest dodawana do zboru E pc. Przeszukane kończy sę, gdy ndeks węzła v w tablcy V_INDEX jest wększy bądź równy wartośc A znacznka +1 obszaru EOC. Wówczas na podstawe zborów E psd1 E psd, przez proste zestawene kaŝdej krawędz ze zboru E psd1 z kaŝdą krawędzą zboru E psd, są generowane przekroje dwuelementowe. Lcznk jest zwększany tak, aby był spełnony warunek: ndeks węzła v w tabel V_INDEX ma być wększy od ndeksu A -tego obszaru EOC, po czym następuje kolejna teracja pętl. Pętla kończy sę, gdy wyczerpą sę wszystke znalezone obszary EOC. Pracę algorytmu w etape pątym lustruje rysunek 5. Rys. 5. Przykładowy graf lustrujący etap 5 algorytmu Fg. 5. Example graph for llustraton of stage 5 of the algorthm Wyznaczone w etapach 1 zbory E p1 E p to: E 31, 3, 33, 34, 35, 36, 37, 38, 39}, E 40, 41, 4, 43, 44, 45, 46, 47, 48} p1 = Na podstawe etapów 3 4 wyznaczono: E = pc1 31, 3, 33, 34, 35, 36, 37, 38, 39} EOC 1 = 50, 51}; p = d_eoc 1 : A1=6; B1 = 6 ; A=7 ; B=7;

140 Ł. Pątek EOC = 5}; EOC 3 = 53}; d_eoc : A1=10; B1 = 10 ; A=11 ; B=11; d_eoc 1 : A1=1; B1 = 1 ; A=1 ; B=13; 1 3 4 E 31,3, 33}, E 1 = 34, 35}, E 1 = 36}, E 1 = 37, 38, 39} psd1 = psd W etape pątym następują teracje, w trakce których są wyberane kolejne EOC. w 1 teracj uzyskujemy: 1 psd = 40, 4} E oraz w zestawenu z M = w teracj uzyskujemy: psd = 43} E oraz w zestawenu z w 3 teracj uzyskujemy: 4 psd = 47, 48} psd 1 E psd1 przekroje: 31, 40}, 31, 4}, 3, 40}, 3, 4}, 33, 40}, 33, 4 } M = E oraz w zestawenu z 3 E psd1 M = M U E psd1 przekroje : M U 34,43}, 35,44 } 4 E psd1 przekroje: 37, 47}, 38, 48}, 39, 47}, 37, 48}, 38, 47}, 39, 48 } 3 E psd zostają pomnęte w teracjach, gdyŝ ne mogą tworzyć Ŝadnego dwuelementowego przekroju. Pomnęce osąga sę dzęk temu, Ŝe węzeł v jest wyberany tak, aby jego ndeks w tabel V_INDEX był wększy od ndeksu A -tego obszaru EOC. psd 5. STRUKTURY DANYCH WEJŚCIOWYCH I WYNIKOWYCH ALGORYTMU Struktura grafu G = V, E o krawędzach nezorentowanych moŝe być zapsana w plku tekstowym o określonym wymaganam uŝytkownka formace. Format ten moŝe być przyjazny dla uŝytkownka programu meć postać np. lsty krawędz, danych jako pary lczb będących ndeksam werzchołków połączonych przez krawędź. Bez względu na perwotny format zapsu grafu, dla potrzeb prezentowanego algorytmu, struktura grafu mus być przekształcona do postac lsty sąsedztwa werzchołków. Postać odpowednch funkcj tworzących lstę sąsedztwa werzchołków zaleŝy od potrzeb uŝytkownka dlatego została pomnęta. Dla algorytmu nezbędne jest równeŝ, aby numery węzłów krawędz były unkalne. KaŜda krawędź neskerowana w algorytme jest reprezentowana przez dwe przecwne sobe krawędze skerowane. W wynku dzałana algorytmu otrzymujemy zbór przekrojów dwuelementowych. KaŜdy przekrój jest dany w postac dwuelementowego podzboru zboru krawędz grafu. Taka postać wynku nadaje sę do wykorzystana w oblczenach nezawodnośc złoŝonych systemów przesyłowych.

Algorytm znajdowana jedno- dwuelementowych 141 Typy struktury danych wejścowych algorytmu Typy danych Edge: klasa reprezentująca pojedynczą krawędź skerowaną. Zmenne klasy są lczbam całkowtym ncjowanym przy starce algorytmu wartoścą zero. Reprezentują one : d : dentyfkator krawędz nadany przez uŝytkownka, a : dentyfkator węzła, z którego krawędź wychodz, b : dentyfkator węzła, do którego krawędź dochodz, p : numer śceŝk, jeśl krawędź znajduje sę na śceŝce perwszej p=1, jeśl na śceŝce drugej p=. Jeśl krawędź ne znajduje sę na śceŝce p=0; Zmenna p jest wykorzystywana w algorytme znajdowana maksymalnego przepływu jako zmenna przechowująca wartość przepływu, n_cut : lczba całkowta równa 1, gdy krawędź wchodz w skład przynajmnej Struktury danych jednego przekroju. W algorytme wartość równa jeden oznacza, Ŝe krawędź znajduje sę w zborze E ps1 lub E ps. EDGES wektor wskaźnków do obektów typu edge. KaŜdej krawędz neskerowanej grafu odpowada w tablcy EDGES para obektów typu edge reprezentujących dwe krawędze neskerowane o przecwnych kerunkach, ALISTS: lsta sąsedztwa zawerająca nformację o strukturze grafu G = V, E. Lsta jest zapsana w pamęc jako tablca o elementach będących tablcam obektów klasy Edge. KaŜdy -ty element tablcy ALISTS jest tablcą wskaźnków do obektów klasy Edge. KaŜdej krawędz neskerowanej, j} E grafu G ( V, U ) = odpowadają w tablcy ALISTS dwe krawędze skerowane łączące te same werzchołk, ale o przecwnych kerunkach : (, j) oraz ( j, ). Krawędź ( j) ALISTS[ ], krawędź ( j, ) VLISTS[ j ], s oraz t: ndeksy dwóch wyróŝnonych werzchołków. Struktury typy danych wynkowych algorytmu Typy danych, jest zawarta w elemence 1elcut: lczba całkowta, dentyfkator krawędz grafu, reprezentująca jeden przekrój jednoelementowy grafu G = V, E, elcut: dwuelementowa tablca lczb całkowtych reprezentująca jeden dwuelementowy przekrój grafu krawędz grafu. G = V, E. KaŜdy element w tablcy jest dentyfkatorem

14 Ł. Pątek Struktury danych 1ELCUTS: tablca zawerająca wskaźnk do obektów klasy 1elcut, ELCUTS: tablca zawerająca wskaźnk do obektów klasy elcut. Struktury danych pomocnczych algorytmu SUBGRAPHS: tablca lczb całkowtych zawerająca pary werzchołków (s,t ) wyznaczone w trakce znajdowana przekrojów jednoelementowych. Indeksy parzyste oraz ndeks zera zawerają werzchołk s, a ndeksy neparzyste werzchołk t, CHECKED: tablce o rozmarze równym V elementach o rozmarze jednego btu. Wartość elementu tablcy 1 oznacza, Ŝe werzchołek został oznaczony w toku pracy algorytmu. Tablca jest wykorzystywana w kaŝdym z etapów pracy algorytmów, przy czym jest ona zerowana przed etapem 1 drug raz przed etapem 3, V_INDEX: tablca lczb całkowtych o rozmarze równym V. Przechowuje ndeksy nadane werzchołkom znajdującym sę na śceŝkach, V_INDEX_: tablca lczb całkowtych o rozmarze równym V. Przechowuje ndeksy dla tych werzchołków śceŝk drugej, które ne mogły być zapsane w tablcy V_INDEX, ponewaŝ werzchołk te stanową skrzyŝowane dwóch śceŝek. Indeksy te ne mogą być zapsane w V_INDEX, ponewaŝ zamazałyby nformacje o ndekse werzchołka w relacj do śceŝk perwszej, EP_1, EP_ zbory wskaźnków do obektów klasy Edge. Reprezentują perwszą drugą śceŝkę dla procedury znajdowana przekrojów dwuelementowych. EP_1 reprezentuje pojedynczą śceŝkę dla procedury znajdowana przekrojów jednoelementowych, EPSD_: zbór wskaźnków do obektów klasy Edge. Jest wykorzystywany w etape 5 algorytmu odpowada jednemu ze zborów E psd, IdEOC: klasa o czterech zmennych składowych typu całkowtego nazwach A1, B1, A, B. KaŜdy obekt klasy deoc reprezentuje jeden obszar EOC w grafe, EOC_SET: tablca wskaźnków do obektów klasy deoc, STACK: stos przechowujący lczby całkowte. 6. PSEUDOKOD ALGORYTMU ZNAJDOWANIA 1-, -ELEMENTOWYCH PRZEKROJÓW PonŜszy pseudokod opsuje algorytm znajdowana przekrojów. Składna pseudokodu bazuje na składn języka C++ [8]. Algorytm jest zapsany jako funkcje FIND_1 ELEMENTS_CUTS oraz FIND ELEMENTS_CUTS. Z funkcj tych są wywoływane dwe funkcje znajdujące maksymalny przepływ śceŝkowy rozkład przepływu,

Algorytm znajdowana jedno- dwuelementowych 143 FIND_MAXIMAL_FLOW oraz FIND_PATHS. Funkcje te ne będą omawane w tym referace. nt FIND_1 ELEMENTS_CUTS( EDGES, V_LIST, s, t ) for ( = 0 ; <EDGES.sze( ) ; ++) EDGES[ ] p =0 ; flow = FIND_MAXIMAL_FLOW(EDGES, V_LIST, s, t); f ( ( flow > ) ( flow ==0 ) ) return 0; f ( flow == ) return FIND ELEMENTS_CUTS(EDGES, V_LIST, s, t); FIND_PATHS(EDGES, VLIST, s, t, EP_1); for ( = 0 ; <CHECKED.sze( ) ; ++) CHECKED[ ] =0; V_INDEX [ ] = -1; } V_INDEX [ s ] = 0 ; for ( = 0 ; <EP_1.sze( ) ; ++) V_INDEX [EP_1[] b ] = +1; } s_tmp=0; =0; ndex=0; whle ( < EP_1.sze( ) ) ndex = ; (EP _1 [ ] a ) STACK; CHECKED[EP _1 [ ] a ] =1; whle ( STACK.sze( )!= 0 ) v STACK; for each edge n VLISTS[v] f ( CHECKED[ edge b ]==1 ) contnue; f (edge p== 1 ) contnue; f ( ndex < V_INDEX [edge b] ) ndex = V_INDEX [edge b] ; ( edge b ) STACK; CHECKED[edge b ] =1; }//end for..each }//end whle STACK.sze( ) f ( ndex== V_INDEX [ EP _1 [ ] a] ) 1elcut = new nt[1]; 1elcut [0] = EP _1[ ] d; 1ELCUTS.push_back( 1elcut ); s_tmp = EP _1[ -1 ] b; ++; } else SUBGRAPHS.push_back( s_tmp ); = ndex; SUBGRAPHS.push_back(EP _1[ -1 ] b ); } } //end of whle lcznk=0; for ( = 0 ; < SUBGRAPHS.sze( ) ; +=) lcznk+=find ELEMENTS_CUTS( EDGES, V_LIST, SUBGRAPHS[], SUBGRAPHS[+1] ); return lcznk +1ELCUTS.sze(); }//end of functon FIND_1 ELEMENTS_CUTS nt FIND ELEMENTS_CUTS( EDGES, V_LIST, s_, t_ ) /*** ETAP 1 ***/ f ( FIND_MAXIMAL_FLOW(EDGES, V_LIST, s_, t_)!= ) return 0;

144 Ł. Pątek /*** ETAP ***/ FIND_PATHS(EDGES, VLIST, s_, t_,, EP_1,EP_); for ( = 0 ; <CHECKED.sze( ) ; ++) CHECKED[ ] =0; V_INDEX [ ] = -1; V_INDEX_ [ ] = -1;} /*** ETAP 3 ***/ for ( = 0 ; <EDGES.sze( ) ; ++) EDGES[ ] p =0 ; for ( = 0 ; < EP _1.sze( ) ; ++) EP_1[ ] p = 1 ; for ( = 0 ; < EP _.sze( ) ; ++) EP_[ ] p = ; for ( = 0 ; <EDGES.sze( ) ; +=) EDGES[ +1 ] p = EDGES[ ] p ; lcznk = 0; for ( = 0 ; <EP_1.sze( ) ; ++) lcznk+=; V_INDEX [EP_1[] b ] = lcznk; } lcznk = 1; for ( = 1 ; < EP_.sze( ) ; ++) lcznk+=; f ( V_INDEX[ EP_[] b ] == -1 ) V_INDEX[EP_[] b ] = lcznk; else V_INDEX _[EP_[] b ] = lcznk; } V_INDEX [ s ] = V_INDEX _[ s ] = 1 ; = 0 ; whle ( < EP_1.sze( ) ) a1= V_INDEX [ EP_1[ ] a ]; b1 =-1 ; a = lcznk+1000 ; b =-1; f (( V_INDEX_[ EP_1[ ] a]>0 ) &&( CHECKED[ EP_1[ ] a ]==0 )) f ( a > V_INDEX_ [ EP_1[ ] a ] ) a = V_INDEX_ [ EP_1[ ] a ]; f ( b > V_INDEX_ [ EP_1[ ] a ] ) b = V_INDEX_ [ EP_1 [ ] a ]; }// end f (EP _1 [ ] a ) STACK; CHECKED[EP _1 [ ] a ] =1; whle ( STACK.sze( )!= 0 ) v STACK; for each edge n VLISTS[v] f ( CHECKED[ edge b ]==1 ) contnue; f (edge p== ) contnue; f ( (edge p == 1 ) && ( V_INDEX [ edge a ] < V_INDEX [ edge b ] ) ) contnue; f ( V_INDEX [edge b ]% == 0 ) f ( V_INDEX_ [edge b ] > 0 ) f ( a > V_INDEX_ [edge b ] ) a = V_INDEX_ [edge b ]; f ( b > V_INDEX_ [edge b ] ) b = V_INDEX_ [edge b ]; } f ( b1 > V_INDEX [edge b ] ) b1 = V_INDEX [edge b ]; } f ( V_INDEX [edge b ]% == 1 ) f ( a > V_INDEX [edge b ] ) a = V_INDEX [edge b ];

Algorytm znajdowana jedno- dwuelementowych 145 f ( b > V_INDEX [edge b ] ) b = V_INDEX [edge b ]; } ( edge b ) STACK; CHECKED[edge b ] =1; } //end for..each }//end whle STACK.sze( ) f ( b1 == -1 ) EP _1 [ ] n_cut=1 ; ++; } else =b1/; } f ( b!= -1 ) f ( b1 == -1 ) b1 =a1; EOC_SET.push_back( new deoc(a1,a,b1,b) ); } }//end whle ( < EP_1.sze( ) ) EOC_SET.push_back( new deoc (EP_1[-1] b, EP_1[-1] b, EP_1[-1] b, EP_1[-1] b ) ); /*** ETAP 4 ***/ = EOC_SET.sze( ); f (!= 0) a = EOC_SET [ ] A; b = EOC_SET [ ] B; } --; whle ( >= 0 ) f (EOC_SET [ ] A < a ) a = EOC_SET [ ] A; b = EOC_SET [ ] B; --; contnue; } j = ; whle ( (j >=0) && (EOC_SET [ j ] A > a ) ) f (EOC_SET [ ] B > b ) b = EOC_SET [ j ] B; a1 = EOC_SET [ j ] A1; delete EOC_SET [ j ]; j--; } EOC_SET [ j+1] B=b; EOC_SET [ j+1 ] A1 =a1; = j; }//end of whle ( >= 0 ) /*** ETAP 5 ***/ max_tmp = 1; 1 =1 ; = EOC_SET [ 0 ] B; whle ( 1 < EOC_SET.sze( ) ) /******** sprawdzene scezk *********/ EPSD_.clear( ); f ( < EOC_SET [ 1-1] B) = EOC_SET [ 1-1] B; max_tmp=;} whle (< EOC_SET [ 1 ] A) ( EP _[ (-1 )/ ] a) STACK ; CHECKED [EP _[ (-1 )/ ] a]=1; whle (STACK.sze( )!=0)

146 Ł. Pątek v STACK; for each edge n VLISTS[v] f ( edge p > 0 ) contnue; f ( V_INDEX _[edge b ] > 0) V_INDEX [edge b]= V_INDEX _ [edge b]; V_INDEX _ [edge b]=0; CHECKED[edge b]=0; } f (CHECKED [edge b]==1) contnue; f ( V_INDEX [edge b]>0 ) f ( max_tmp< V_INDEX [edge b] ) max_tmp = V_INDEX [edge b]; CHECKED [edge b]=1; (edge b) STACK; }//end for..each }//end whle STACK f ( max_tmp== ) EP_[(-1)/] n_cut=1; EPSD_.push_back((-1)/); +=; max_tmp=; } else = max_tmp;} }//end whle /******** generujemy przekroje mędzy sekcjam */ for ( 3= EOC_SET [1-1] B1; 3 < EOC_SET [1] A1 ; 3+=) f ( EP_1[ (3)/ ] n_cut==0) contnue; for (4=0; 4 < EPCS_.sze( ) ; 4++) elcut = new nt[]; elcut [0] = EP_1[ (3)/ ] d; elcut [1]= EP_ [ EPSD_ [ 4 ] ] d; ELCUTS.push_back( elcut ); } } //end for 3 do 1++; f ( 1== EOC_SET.sze() ) break; }whle( > EOC_SET [ 1] A); }//end of whle 1 return ELCUTS.sze(); }//end of functon FIND ELEMENTS_CUTS

Algorytm znajdowana jedno- dwuelementowych 147 7. ZŁOśONOŚĆ OBLICZENIOWA ALGORYTMU ZNAJDOWANIA JEDNO- I DWUELEMENTOWYCH PRZEKROJÓW W GRAFIE O KRAWĘDZIACH NIESKIEROWANYCH W celu oszacowana złoŝonośc prezentowanego algorytmu zastosowano metodę najgorszego przypadku. Jeśl przyjmemy n jako lczbę krawędz grafu, to moŝna wyrazć złoŝoność poszczególnych etapów algorytmu następująco : 1. ZłoŜoność algorytmu Forda-Fulkersona dla grafu o przepływe równym to O( n).. ŚceŜkowy rozkład przepływu sprowadza sę do przeszukana grafu ma złoŝoność O ( n). Wykonywany on jest raz przy znajdowanu przekrojów jednoelementowych oraz jeden raz w kaŝdym z podgrafów zawerających przekroje dwuelementowe. 3. Znajdowane przekrojów jednoelementowych wymaga jednokrotnego przeszukana grafu ma złoŝoność O ( n). 4. W etapach 3 5 procedury szukana przekrojów dwuelementowych następuje jednokrotne przeszukane grafu. UŜyce tablcy z odwedzonym werzchołkam gwarantuje, Ŝe kaŝdy werzchołek zostane odwedzony tylko raz. ZłoŜoność przeszukana grafu w tych etapach to O ( n). 5. W etape 4 procedury następuje operacja sprawdzena nakładana sę obszarów EOC. Lczba operacj wykonywanych w czase sprawdzena zaleŝy od lczby obszarów EOC. PonewaŜ w najgorszym przypadku (rysunek 6) lczba obszarów EOC rośne lnowo z rozmarem grafu, węc złoŝoność operacj w etape 4 wynos O ( n). Rys. 6. Analza złoŝonośc etapu 4 algorytmu - najgorszy przypadek grafu o n/ obszarach EOC Fg. 6. Complexty analyss for algorthm stage 4 - worst case scenaro graph wth n/ EOC areas 6. W etape 5 procedury, oprócz przeszukana grafu zapoczątkowanego w etape 3, są generowane -elementowe przekroje. Przy stosowanu najgorszego przypadku stworzono graf (rysunek 7), gdze loraz lczby przekrojów do lczby krawędz grafu jest maksymalny. W grafe tym kaŝda krawędź śceŝk perwszej moŝe stworzyć przekrój

148 Ł. Pątek -elementowy z kaŝdą krawędzą śceŝk drugej. Oznacza to, Ŝe w grafe tym zostaną znalezone n /4 przekrojów -elementowych, a złoŝoność etapu to ( n ) O. Rys. 7. Analza złoŝonośc etapu 6 algorytmu - najgorszy przypadek grafu o n /4 przekrojach Fg. 7. Complexty analyss for algorthm stage 6 - worst case scenaro graph wth n /4 cuts Ostateczne, złoŝoność algorytmu znajdowana mnmalnych przekrojów jedno- dwuelementowych w grafe nezorentowanym wynos: ( n ) O (8) Podczas analzy przykładu grafu z rysunku 7 moŝna zawaŝyć, Ŝe maksymalna lczba przekrojów dwuelementowych w grafe wynos n /4. Zatem ne jest moŝlwe stworzene algorytmu o mnejszej złoŝonośc nŝ prezentowany algorytm. 8. WNIOSKI Prezentowany algorytm cechuje duŝa efektywność znajdowana zboru jedno dwuelementowych mnmalnych przekrojów w grafe neskerowanym. Zastosowana autorska metoda przeszukana grafu, dzeląca jego strukturę na obszary, pozwala zdentyfkować w nm te krawędze, które ne będą tworzyć Ŝadnego przekroju dwuelementowego. Zbory takch krawędz, nazwane obszaram EOC, wyznaczają podzał będą wchodzć w skład przynajmnej jednego przekroju. Metoda ta wyznacza równeŝ obszary EOC, w których Ŝadna z krawędz ne wchodz w skład przekroju dwuelementowego. Ten wyróŝnony zbór krawędz, powązany z nformacją o połoŝenu obszarów EOC, pozwala wygenerować pełny zbór dwuelementowych przekrojów w grafe. Algorytm gwarantuje, Ŝe kaŝdy werzchołek zostane odwedzony tylko jeden raz w trakce szukana przekroju jednoelementowego jeden raz w trakce szukana przekroju dwuelementowego. ZłoŜoność prezentowanego algorytmu wynos O ( n ). Jest to jednocześne najnŝsza moŝlwa do osągnęca złoŝoność dla algorytmu znajdującego przekroje jedno- dwuelementowe.

Algorytm znajdowana jedno- dwuelementowych 149 Algorytm moŝe znaleźć zastosowane w analze nezawodnośc złoŝonych systemów przesyłowych, w tym sec elektroenergetycznych, za pomocą zboru przekrojów [9, 10]. Na podstawe prezentowanego algorytmu stworzono program komputerowy w języku programowana C++. Program potwerdzł poprawność algorytmu przez wyszukane zboru przekrojów w welu przykładach grafów. BIBLIOGRAFIA 1. Bllnton R., Allan. R.: Relablty Evaluaton of Engneerng Systems, nd ed. Plenum Press, New York 199.. Grabsk F., Jaźwńsk J.: Funkcje o losowych argumentach w zagadnenach nezawodnośc, bezpeczeństwa logstyk. WKŁ, Warszawa 009. 3. Pątek Ł.: Algorytm znajdowana przekrojów w grafe o krawędzach nezorentowanych. Kwartalnk Elektryka 010 z. 1, s. 53-64. 4. Grshkevch A.A.: Kombnatornye metody ssledovanja ekstremalnych struktur matematceskch modelej elektrceskch cepej sstem. Izd. SUSU: Chelyabnsk 004. 5. Grshkevch A.A.: Algorytm przelczana dwuelementowych mnmalnych przekrojów grafu skerowanego. Informatyka Teoretyczna Stosowana 006, R 6. nr 10, s. 85-100. 6. Grshkevch A., Pątek Ł.: Algorthm and Program for Fndng Mnmal and Quas- Mnmal Custs n Graphs. Zeszyty Naukowe Wydzału Elektrotechnk Automatyk Poltechnk Gdańskej 008, nr 5, s. 49-5. 7. Ford L., Fullkerson D.: Flows n Networks, Prnceton Unversty Press. New Jork 196 8. Stroustrup B.: Język C++. WNT, Warszawa 00. 9. Bllnton R., Lan. G.: A new technque for actve mnmal cut set selecton used n substaton relablty evaluaton. Journal of Mcroelectroncs and Relablty 1995, Vol. 35, No. 5, p. 797-805. 10. Pątek Ł.: Analza nezawodnośc sec sensorowych akcyjnych. Kwartalnk Elektryka 010, z. 1, s. 61-68. Recenzent: Prof. dr hab. nŝ. Bernard Baron Wpłynęło do Redakcj dna 10 paźdzernka 010 r. Abstract A new algorthm for fndng all one, two elements mnmal cuts n graph s presented. The mnmal cut set s wdely utlzed n relablty evaluaton of complex transmsson

150 Ł. Pątek systems [1]. Frst, the algorthm fnds one element mnmal cuts. For each edge a number called capacty s set to value 1. Then by usng the Ford-Fulkerson algorthm the maxmum flow n the graph s found. If the flow equals 1, the searchng procedure along the flow path s appled. Durng the procedure of fndng one element cuts, a set of subgraphs s found. These subgraphs, descrbed by par of edges s,t, are then nspected separately to fnd all two elements mnmal cuts. The algorthm utlze an unque method for searchng the graph for fndng two elements mnmal cuts. Durng the searchng process, certan areas of the graph are dentfed. These areas, called EOC, are a subsets of graph's edges set where every edges n EOC area s not a part of any two element mnmal cut. Each edge lyng between EOC areas are edge whch form a two element cut wth another edge. The procedure for fndng two elements cuts s dvded nto fve stages: 1. Fnd the maxmum flow between vertces s, t usng the Ford-Fulkerson algorthm. If the flow not equals then STOP.. Fnd the flow paths between s, t. 3. Search the graph along the frst path usng specal rules. These rules consst n : vstng one vertces more the once s prohbted; searchng along edges from second path s prohbted; searchng along frst path s allowed f t s drected to vertce s (ncompatble wth the flow drecton) and prohbted f t s drected to vertce t (compatble wth the flow drecton). Durng the searchng the prelmnary lst of EOC areas s found. 4. Check f found n stage 3 EOC areas overlap one another. If so, change the prelmnary lst of EOC areas by jonng overlappng EOC areas. 5. Search the graph along the second path usng specal rules. These rules consst n: vstng one vertces more the once s prohbted (all vsted vertces n stage 3 are treated as vsted n stage 5); searchng along second path s allowed f t s drected to vertce s and prohbted f t s drected to vertce t. Whle searchng along the second path, wth usng the nformaton from EOC areas lst, the two elements mnmal cuts set s generated. A pseudocode verson of the algorthm s gven. The pseudocode descrpton s based on C++ language. The presented algorthm was used to make a computer program whch fnds cut set n graph. The nput data for the program s a textfle descrbng graph structure n a form of edges lst. The output data s a textfle wth the lst of found cuts, sorted by number of edges n cut.