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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1 ELEKTRYKA 2010 Zeszyt 1 (213) Rok LVI Łukasz IĄTEK Instytut Informatyki, olitechnika Częstochowska ALGORYTM ZNAJDOWANIA RZEKROJÓW W GRAFIE O KRAWĘDZIACH NIEZORIENTOWANYCH Streszczenie. Do szukania zbioru przekrojów w grafie o krawędziach niezorientowanych wykorzystano enumeracyjny algorytm znajdujący takie podziały zbioru wierzchołków grafu, które stanowią przekrój grafu. Algorytm wykorzystuje równowaŝność przekroju w grafie o krawędziach niezorientowanych rozumianego jako podzbiór krawędzi lub jako podział zbioru wierzchołków grafu. Na podstawie tej równowaŝności w toku działania algorytmu znajdowany jest zbiór przekrojów grafu w postaci zbioru podzbiorów zbioru krawędzi. Zaprezentowano program komputerowy implementujący algorytm oraz porównano czas znajdowania zbioru przekrojów w wybranych grafach. Słowa kluczowe: przekroje grafu, graf, algorytm, przepływ w sieciach ALGORITHM FOR FINDING CUTS IN UNDIRECTED GRAH Summary. For finding cut set in undirected graph an enumerative algorithm is used. The algorithm finds such divisions of vertices which are a graph cut. The algorithm utilizes equivalence of cut representation in an undirected graph either as a division of vertices or a subset of the graph edge set. With use of this equivalence the graph cut set as a set of graph edges is found. A computer program implementing the algorithm is presented and comparison of work time in chosen undirected graphs is performed. Keywords: graph cuts, graph, algorithm, flow in networks 1. WSTĘ rzekroje w grafach odgrywają istotną rolę w szacowaniu niezawodności złoŝonych sieci komputerowych, telekomunikacyjnych i energetycznych [1, 2, 3]. Ich zastosowania pozwalają odwzorować skomplikowaną strukturę grafu G = V, E reprezentującego analizowany system w równowaŝną strukturę szeregowo-równoległą [1, 2]. Dla równowaŝnej struktury moŝna stosunkowo łatwo analitycznie wyznaczyć poziom niezawodności sieci rozumianej

2 54 Ł. iątek jako prawdopodobieństwo przepływu medium (informacja, głos, prąd elektryczny) między dwoma wyróŝnionymi węzłami sieci. Niech dany będzie graf spójny G = V, E o krawędziach niezorientowanych, gdzie V = v } jest zbiorem wierzchołków grafu, a zbiorem krawędzi jest E = e = i j} : i, j V} W zbiorze wierzchołków V wyróŝniono dwa wierzchołki - źródło s oraz ujście t,,. s, t V. Niech dla dowolnych dwóch wierzchołków w grafie istnieje co najwyŝej jedna łącząca je krawędź. Niech graf nie zawiera pętli, czyli krawędzi typu i j}, i V,. rzekrojem grafu o krawędziach niezorientowanych, rozdzielającym wierzchołki s i t, nazywamy taki podział zbioru wierzchołków V na dwa podzbiory A i B, który spełnia następujące warunki: zbiory A i B stanowią podział zbioru wierzchołków grafu V, zbiory A i B są rozłączne, A U B = V, (1) AI B =, (2) źródło znajduje się w zbiorze A, s A, ujście znajduje w zbiorze B, s A, t B, (3) zbiory te wyznaczają pewien podzbiór krawędzi grafu C E taki, Ŝe kaŝda krawędź e C łączy dwa wierzchołki grafu, z których jeden wierzchołek jest w zbiorze A, drugi w zbiorze B, i j} : i A j B} e =,,, (4) dla wyznaczonego przez podział A i B podzbioru krawędzi grafu C nie istnieje Ŝaden inny przekrój, będący podzbiorem krawędzi C', CI C' C'. (5) Jeśli zatem C jest przekrojem, to nie istnieje Ŝaden podzbiór zbioru C, który sam jest przekrojem. Z powyŝszych warunków moŝna stwierdzić, Ŝe w grafie o krawędziach niezorientowanych G = V, E, na podstawie znajomości przekroju, jako podziału zbioru wierzchołków V, moŝna wyznaczyć równowaŝny przekrój, jako podzbiór zbioru krawędzi E. Najprostszą metodą znajdowania wszystkich przekrojów w grafie jest wyliczenie wszystkich kombinacji zbioru krawędzi i sprawdzenie dla kaŝdej kombinacji spójności grafu

3 Algorytm znajdowania przekrojów 55 po uprzednim usunięciu krawędzi zawartych w tej kombinacji. W przypadku gdy graf nie jest spójny, naleŝy dodatkowo sprawdzić, czy spełniony jest warunek (5). Istnieją metody pozwalające zmniejszyć liczbę sprawdzanych kombinacji. Wymagają one jednak w pierwszej kolejności wyznaczenia wszystkich moŝliwych ścieŝek prowadzących ze źródła s do ujścia t [4, 5]. rezentowany enumeracyjny algorytm pozwala na zmniejszenie złoŝoności znajdowania zbioru przekrojów grafu dzięki zmniejszeniu liczby generowanych kombinacji. Dodatkową zaletą algorytmu jest całkowite wyeliminowanie operacji sprawdzania spójności grafu. 2. ALGORYTM ZNAJDOWANIA RZEKROJÓW W GRAFIE O KRAWĘDZIACH NIESKIEROWANYCH Dany jest graf G = V, E. KaŜdemu wierzchołkowi ze zbioru V i kaŝdej krawędzi ze zbioru E nadano indeks, będący liczbą całkowitą nieujemną. ZałoŜono, Ŝe indeksy nadane wierzchołkom nie pokrywają się z indeksami nadanymi krawędziom. RozwaŜmy funkcję c : E 1, która kaŝdej krawędzi grafu przyporządkowuje liczbę całkowitą 1. Dla kaŝdego zbioru krawędzi ε,..., } źródła s do wierzchołka v, moŝemy obliczyć wagę ścieŝki: = 0 ε n, będących ścieŝką prowadzącą ze v c = c. (6) e i RozwaŜmy podzbiór L zbioru wierzchołków grafu V. Taki podzbiór zbioru wierzchołków nazwiemy warstwą, jeśli v L. e i v c dla będącego najkrótszą ścieŝką jest taka sama dla kaŝdego v v L, c = c x v v x, y. (7) y i Gdy funkcja c kaŝdej krawędzi przyporządkowuje liczbę jeden, wszystkie wierzchołki warstwy charakteryzuje taka sama minimalna liczba krawędzi dzieląca je od źródła s. RozwaŜmy pewną warstwę Li. Wierzchołki warstwy kolejnej Li+1 moŝna wyznaczyć przeglądając listy sąsiedztwa wierzchołków Li. oniewaŝ przetworzenie przez kolejną iterację kaŝdego z wierzchołków oznaczone jest w specjalnej tablicy, przejrzenie listy sąsiedztwa z uwzględnieniem informacji zawartej w tablicy oznaczonych wierzchołków pozwoli na wyznaczenie warstwy Li+1. W toku działania algorytmu struktura grafu przeglądana jest warstwa po warstwie. o przejrzeniu kaŝdej z warstw wierzchołki z tej warstwy zaznaczane są jako oznaczone, co gwarantuje, Ŝe kaŝdy wierzchołek będzie przetworzony tylko jeden raz oraz gwarantuje zakończenie algorytmu.

4 56 Ł. iątek ierwszą analizowaną warstwą L0 jest warstwa składająca się z wierzchołka źródła ( L = s} 0. Następujące operacje są wykonywane w czasie jednej iteracji algorytmu: 1. na podstawie wierzchołków warstwy L i, list sąsiedztwa wierzchołków oraz informacji o oznaczonych wierzchołkach wyznaczone zostają wierzchołki warstwy L i+1, 2. tworzone są wszystkie kombinacje k-elementowe (k=1,..., L i+1 ) zbioru wierzchołków warstwy L i+1, 3. kaŝda kombinacja wierzchołków warstwy L i+1 zestawiana jest z tablicą podziałów zbioru wierzchołków określoną dla warstwy L i. Na podstawie kaŝdej kombinacji i kaŝdego podziału określonego dla warstwy L i powstaje nowy podział zbioru wierzchołków grafu. Następuje sprawdzenie, czy ten podział jest przekrojem, tzn. czy spełnia warunki (4) i (5). Jeśli jest, to tworzony jest równowaŝny podzbiór krawędzi. Nowy podział zbioru wierzchołków kojarzony jest z warstwą L i+1, 4. wszystkie wierzchołki z warstwy L i+1 zostają oznaczone, 5. wierzchołki z warstwy L i+1 stają się nową warstwą L i. 3. STRUKTURY DANYCH WEJŚCIOWYCH I WYNIKOWYCH ALGORYTMU Struktura grafu G = V, E moŝe być zapisana w pliku tekstowym o określonym wymaganiami uŝytkownika formacie. Format ten moŝe być przyjazny dla uŝytkownika programu i mieć postać np. listy krawędzi, danych jako pary liczb będących indeksami wierzchołków połączonych przez krawędź. Bez względu na pierwotny format zapisu grafu dla potrzeb prezentowanego algorytmu struktura grafu musi być przekształcona do postaci listy sąsiedztwa wierzchołków. ostać odpowiednich funkcji tworzących listę sąsiedztwa wierzchołków zaleŝy od potrzeb uŝytkownika i dlatego nie będzie rozwaŝana w tej pracy. W wyniku działania algorytmu otrzymujemy zbiór przekrojów. KaŜdy przekrój dany jest w postaci podzbioru zbioru krawędzi grafu. Taka postać wyniku nadaje się do wykorzystania w obliczeniach niezawodności złoŝonych systemów przesyłowych. Struktury danych wejściowych algorytmu VLISTS: lista sąsiedztwa wierzchołków zawierająca informację o strukturze grafu G = V, E. Lista zapisana jest w pamięci jako tablica o elementach będących tablicami liczb całkowitych. KaŜdy i-ty element tablicy VLISTS jest listą indeksów wierzchołków, z którymi wierzchołek o indeksie i jest połączony krawędzią. KaŜdy element tablicy VLISTS zawiera listę indeksów wierzchołków zakończoną liczbą całkowitą -1. Zakładamy, Ŝe wszystkie indeksy wierzchołków w grafie są liczbami

5 Algorytm znajdowania przekrojów 57 nieujemnymi. Wymiar tablicy VLISTS jest równy V, a wymiar jej elementów zaleŝy od liczby krawędzi łączących wierzchołek reprezentowany przez dany element tablicy VLISTS z innymi wierzchołkami. KaŜdej krawędzi ( i, j) E grafu G = ( V, U ) w tablicy VLISTS odpowiadają dwie liczby całkowite. ierwsza liczba j zawarta jest w elemencie VLISTS[i], druga liczba i zawarta jest w elemencie VLISTS[j]. s oraz t: indeksy dwóch wyróŝnionych wierzchołków, źródła i ujścia. Struktury i typy danych wynikowych algorytmu Typy danych eset: tablica liczb całkowitych będących indeksami krawędzi grafu G = V, E. ojedyncza tablica reprezentuje jeden podzbiór zbioru wierzchołków grafu. Struktury danych ESETS: tablica zawierająca podzbiory zbioru krawędzi grafu G = V, E. Wymiarem tablicy ESETS jest największy rząd przekroju znalezionego w grafie. KaŜdy element tablicy zawiera wskaźniki do tablic eset. KaŜda tablica eset zawarta w ESETS reprezentuje jeden prawidłowy przekrój grafu. 4. STRUKTURY DANYCH OMOCNICZYCH ALGORYTMU Typy danych pomocniczych vset: tablica liczb całkowitych będących indeksami wierzchołków grafu G = V, E. Elementem końcowym kaŝdej tablicy vset jest liczba -1. ojedyncza tablica reprezentuje jeden podzbiór zbioru wierzchołków grafu. Struktury danych pomocniczych VSETS: tablica zawierająca podzbiory zbioru wierzchołków grafu G = V, E. KaŜdy i-ty element tablicy VSETS zawiera listę wskaźników do tablic vset. Wymiarem tablicy VSETS jest liczba warstw odnalezionych w grafie. oniewaŝ liczba ta jest nieznana na początku algorytmu, tablicę VSETS zaimplementowano jako dynamiczną strukturę danych, której rozmiar rośnie wraz z kaŝdą iteracją algorytmu. CHECKED: tablica o rozmiarze równym V i elementach o rozmiarze jednego bitu. Wartość elementu tablicy 1 oznacza, Ŝe wierzchołek został oznaczony w toku pracy algorytmu. Tablica jest na starcie inicjowana liczbami 0.

6 58 Ł. iątek comb_vset: tablica zawierająca pojedynczą kombinację podzbioru wierzchołków grafu. COMBINATIONS: tablica zawierająca wskaźniki do tablic wszystkich k-elementowych kombinacji podzbioru wierzchołków grafu. LAYER_I: tablica zawierająca indeksy wierzchołków warstwy Li. LAYER_I_LUS: tablica zawierająca indeksy wierzchołków warstwy Li SEUDOKOD ALGORYTMU Algorytm składa się z trzech funkcji. unktem startowym algorytmu jest pierwsze polecenie funkcji o nazwie FIND_CUTS. Argumentami funkcji jest tablica V_LISTS, indeks wierzchołka źródła s, indeks wierzchołka ujścia t. Wartością zwracaną przez funkcję jest liczba 1. Z funkcji FIND_CUTS wywoływane są dwie pomocnicze funkcje o nazwach ADD_ESET oraz CHECK_ESETS. Zadaniem pierwszej funkcji jest zbudowanie zbioru eset na podstawie przekazanego, jako argument zbioru vset, oraz sprawdzenie, czy znaleziony vset spełnia załoŝenie (5). Jeśli vset spełnia załoŝenia, funkcja dodaje znaleziony eset do tablicy ESETS oraz zwraca wartość logiczną prawda. W przeciwnym przypadku funkcja zwraca wartość logiczną FAŁSZ. oniewaŝ sprawdzanie warunku (5) w funkcji ADD_ESET odbywa się przez porównanie z przekrojami o mniejszej liczbie krawędzie, a te przekroje są generowane w róŝnej kolejności, istnieje moŝliwość, Ŝe w zbiorze ESETS znajdą się przekroje niespełniające warunku (5). Dlatego konieczne jest na końcu ponowne sprawdzenie zbioru przekrojów w funkcji CHECK_ESETS. Algorytm wykorzystuje funkcje CREATE_COMBINATIONS, w których zawarty jest algorytm generowania kombinacji k-elementowych przedstawiony w pracy [6]. seudokod tej funkcji nie został zawarty w tej pracy. oniŝszy pseudokod opisuje algorytm znajdowania przekrojów w grafie o krawędziach niezorientowanych. Składnia pseudokodu bazuje na składni języka C++ [7]. function FIND_CUTS( V_LIST, s, t ) VSETS[0]:= VSETS[0] U s}; CHECKED[s] =1; LAYER_I = LAYER_I U s}; integer layer_i_index =0 while ( LAYER_I Ø ) LAYER_I_LUS = Ø for each v in LAYER_I for each w in VLISTS[v] if (w==t) continue;

7 Algorytm znajdowania przekrojów 59 if ( CHECKED[w]==1 ) continue; LAYER_I_LUS := LAYER_I_LUS U w}; } } if ( LAYER_I_LUS=Ø ) break; for ( i = 1 ; i < LAYER_I_LUS ; i++) COMBINATIONS = CREATE_COMBINATIONS( LAYER_I_LUS,i ); for each comb_vset in COMBINATIONS for ( j=0 ; j< comb_vset ; j++ ) comb_vset [j] = LAYER_I_LUS[ comb_vset [j] ] ; for each comb_vset in COMBINATIONS for ( j =0 ; j < VSETS[layer_i_index] ; j++ ) vset_tmp = Ø; for each w in VSETS[v][j] vset_tmp = vset_tmp U w}; for each w in comb_vset vset_tmp = vset_tmp U w}; if ( ADD_ESET( vset_tmp ) ) VSETS[layer_i_index+1]=VSETS[layer_i_index+1] U vset_tmp}; }// end of for j }// end of for each comb_vset layer_i_index++; LAYER_I= Ø; for each v in LAYER_I_LUS LAYER_I= LAYER_I U v}; CHECKED[v] =1; } } // end of for i } //end of while (LAYER_I Ø) CHECK_ESETS ( ); return 1; } //end of function FIND_CUTS function ADD_ESET ( vset ) new_eset= Ø; bool = true; for each v in vset for each w in VLISTS[v] if ( w vset ) new_eset= new_eset U v,w} } for ( i=0 ; i < ESETS ; i++ ) for each eset in ESETS[i] if ( (new_eset I eset) == eset ) bool = false; if ( new_eset == eset ) return 0; } if (bool==true) ESETS[ new_eset -1 ] = ESETS[ new_eset -1 ] U new_eset; return l; }//end of function ADD_ESET

8 60 Ł. iątek function CHECK_ESETS ( ) for (m= ESETS -1 ; m 0 ; m--) for each eset in ESETS[i] bool=true; for ( i=0 ; ESETS ; i++ ) for each eset2 in ESETS[i] if ( (eset I eset2) == eset ) bool = false; if (bool==false) ESETS[ eset -1 ] = ESETS[ eset -1 ] \ new_eset; } }//end of function CHECK_ESETS 6. RZYKŁAD Jako przykład ilustrujący działanie algorytmu zostanie uŝyty graf pokazany na rysunku 1. Graf ten składa się z 8 wierzchołków oraz 12 krawędzi. W grafie istnieje 17 przekrojów rozdzielających źródło s od ujścia t. NajniŜszy rząd przekroju występującego w grafie, czyli liczba krawędzi przekroju, wynosi 2. NajwyŜszym rzędem przekroju jest 6. Rys.1. rzykładowy graf Fig.1. Example graph oniŝej podano pełną listę przekrojów grafu z rysunku 1: 2-elementowe: 9,10}, 19,20}, 3-elementowe: }, }, },12,17,20}, 4-elementowe: 9,11,14,16}, 12,13,14,15}, 13,16,17,19}, 13,16,18,19}, 5-elementowe: 10,11,12,13,14}, 13,14,15,17,19}; 3,14,15,18,19}, 6-elementowe: 9,11,13,14,18,20}, 9,11,13,14,17,20}, 10,11,13,14,17,19}, 10,11,13,14,18,19}. Na rysunku 2a - f pokazano wynik działania pierwszych iteracji algorytmu. Ze względu na oszczędność miejsca pokazano dane tymczasowe tylko z tych, wybranych iteracji, w których są znajdowane przekroje grafu. Znakami "+" zaznaczono wierzchołki ze zbioru vset.

9 Algorytm znajdowania przekrojów 61 LAYER_I = 1} start algorytmu LAYER_I_LUS=2,3} vset = 1} vset = 1,2} eset=9,10} eset=10,11,12,13,14} LAYER_I=1} LAYER_I = 1} LAYER_I_LUS=2,3} LAYER_I_LUS=2,3} vset = 1,3} vset = 1,2,3} eset=9,11,15} eset=12,13,14,15} LAYER_I=2,3} LAYER_I = 2,3} LAYER_I_LUS=4,5,7} LAYER_I_LUS=4,5,7} vset = 1,2,5} vset = 1,2,3,5} eset=10,11,13,14,17,19} eset=13,14,15,17,19} Rys. 2. Wybrane wartości struktur danych pomocniczych i wynikowych dla niektórych iteracji algorytmu Fig. 2. Chosen auxilary and output data structure values for some iterations of the algorithm 7. ROGRAM KOMUTEROWY IMLEMENTUJĄCY ALGORYTM Na podstawie zaprezentowanego algorytmu wykonano program komputerowy znajdujący przekroje w grafach. rogram został stworzony w języku programowania C++

10 62 Ł. iątek z wykorzystaniem biblioteki STL (Standard Template Library) [7,8], a skompilowany za pomocą kompilatora GNU C++. W celu sprawdzenia poprawności działania algorytmu opracowano szereg testowych grafów oraz zaimplementowano algorytm znajdowania przekrojów przez wyznaczanie kombinacji krawędzi grafu. Dokonano równieŝ porównania czasu wykonania algorytmu dla grafów o róŝnej liczbie krawędzi. Tabela 1 zawiera porównanie czasu działania programów bazujących na dwóch róŝnych algorytmach. rogram A bazuje na prezentowanym w pracy algorytmie znajdowania przekrojów. rogram B bazuje na metodzie wyliczania wszystkich kombinacji zbioru krawędzi oraz sprawdzania spójności grafu. Tabela 1 orównanie czasu działania programu dla grafów o róŝnej liczbie krawędzi i wierzchołków ZłoŜoność struktury grafu Czas wykonania programu A [S] Czas wykonania programu B [S] E =13 V = E =22 V = E =53 V = > 2 h 8. WNIOSKI rezentowany algorytm pozwala na znalezienia pełnego zbioru przekrojów grafu. W odróŝnieniu od innych algorytmów spełniających to samo zadanie nie wymaga wykonywania operacji sprawdzenia grafu na spójność oraz nie wymaga znalezienia zbioru ścieŝek w grafie. Główną cechą algorytmu jest podział zbioru wierzchołków grafu na warstwy. UmoŜliwia to zmniejszenie liczby analizowanych kombinacji zbioru wierzchołków. Zmniejszenie czasu znajdowania zostało potwierdzone przez wykonanie programu bazującego na algorytmie dla szeregu przykładowych grafów. Algorytm moŝe znaleźć zastosowanie w analizie niezawodności złoŝonych systemów przesyłowych za pomocą zbioru przekrojów. W szczególności w tych zagadnieniach, w których konieczne jest znalezienie przekrojów o duŝej liczbie elementów. Taka potrzeba moŝe zajść, gdy elementy struktury sieci reprezentowanej przez graf mają duŝą zawodność oraz są nienaprawialne. Wówczas prawdopodobieństwo jednoczesnej awarii wszystkich elementów wchodzących w skład przekroju jest znaczące i nieuwzględnienie przekrojów w obliczeniach wprowadzi nieakceptowalny błąd określenia niezawodności.

11 Algorytm znajdowania przekrojów 63 BIBLIOGRAFIA 1. Billinton R., Allan. R.: Reliability Evaluation of Engineering Systems. 2nd ed., lenum ress, New York Grabski F., Jaźwiński J.: Funkcje o losowych argumentach w zagadnieniach niezawodności, bezpieczeństwa i logistyki. WKŁ, Warszawa Shooman M.: Reliability of computer systems and networks. Fault tolerance analysis and design, John Wiley and Son, New York Billinton R., Lian G., A new technique for active minimal cut set selection used in substation reliability evaluation. Electric ower Systems Research 1995, Vol. 35, No. 5, p Filipiak S.: Metody oceny niezawodności stacji elektroenergetycznych WN/SN. Metody i Systemy Komputerowe w Automatyce i Elektrotechnice, Częstochowa Ruskey F.: Combinatorial generation. Victoria Stroustrup B.: Język C++. WNT, Warszawa Baron B., iątek Ł.: Metody numeryczne w C++. Wydawnictwo olitechniki Śląskiej, Gliwice Wpłynęło do Redakcji dnia 12 lipca 2010 r. Recenzent: rof. dr hab. inŝ. Bernard Baron Abstract A new enumerative algorithm for finding cuts in undirected graph is presented. The algorithm utilize equivalence between two ways of describing cut in undirected graph. The first, describe a cut as a division of graph's vertice set V into two subset A and B where the source s is in set A and the sink t is in set B ( s A, t B ). The second, describe a cut as a subset of graph's edges set E. Either a division of vertices set or a subset of edges must fulfill conditions (1)-(5) to be named as a graph cut. The algorithm is based on division of graph's vertice set into a subsets named layers. Each layer contains a set of vertice which are located at the same distance from the sink s. To determination of distance a function c : E 1 is set on all edges. The distance from the sink is given by addition, ε,..., } v c = c of values of function c for every edges from the shortest path e i e i = 0 ε n leading from source s to a vertice v. Every layer is a subset of vertices where for each two vertice the condition is fullfilled: v, v L, c = c x y i v x v y

12 64 Ł. iątek In each iteration two neighboring layers L i and L i+1 are processed. A combination of vertices from layer L i+1 are made and combined with vertices set connected with layer L i, found in previous iteration. A function FIND_ADDITIONAL_V is used to find additional vertices which are necessary to identify a new division of vertices. For each division of vertices a subset of graph's edges set is generated. The edges subset is checked for compliance with conditions (5). The presented algorithm does not need of checking graph connectivity and does not need of indentify all paths from source to sink as are other algorithms. The division of graph's vertices set into layer allows to reduce the number of combination need to complete cut set search. A pseudocode version of the algorithm is given. The pseudocode description is based on C++ language. The presented algorithm was used to make a computer program which finds cut set in graph. The input data for the program is a textfile describing graph structure in a form of edges list. The output data is a textfile with the list of found cuts, sorted by number of edges in cut. Examples of program work time with several different graphs are presented.

Sortowanie topologiczne skierowanych grafów acyklicznych

Sortowanie topologiczne skierowanych grafów acyklicznych Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)

Bardziej szczegółowo

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

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane: Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem

Bardziej szczegółowo

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

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

Krzysztof Jakubczyk. Zadanie 2

Krzysztof Jakubczyk. Zadanie 2 Zadanie 2 Krzysztof Jakubczyk Moje rozwiązanie nie znajduje strategii pozycyjnej w znaczeniu zdefiniowanym na wykładzie (niezaleŝnie od pozycji startowej), gdyŝ takowa nie istnieje. Przykład: 1 1 0 Środkowa

Bardziej szczegółowo

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

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

WSPÓŁCZYNNIK GOTOWOŚCI SYSTEMU LOKOMOTYW SPALINOWYCH SERII SM48

WSPÓŁCZYNNIK GOTOWOŚCI SYSTEMU LOKOMOTYW SPALINOWYCH SERII SM48 TECHNIKA TRANSPORTU SZYNOWEGO Andrzej MACIEJCZYK, Zbigniew ZDZIENNICKI WSPÓŁCZYNNIK GOTOWOŚCI SYSTEMU LOKOMOTYW SPALINOWYCH SERII SM48 Streszczenie W artykule wyznaczono współczynniki gotowości systemu

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia InŜynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,, S, GD], gdzie: N jest zbiorem wierzchołków

Bardziej szczegółowo

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

Podstawowe własności grafów. Wykład 3. Własności grafów Wykład 3. Własności grafów 1 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2). 2 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2).

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia InŜynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,[, S, GD], gdzie: N jest zbiorem wierzchołków

Bardziej szczegółowo

STOCHASTYCZNY MODEL BEZPIECZEŃSTWA OBIEKTU W PROCESIE EKSPLOATACJI

STOCHASTYCZNY MODEL BEZPIECZEŃSTWA OBIEKTU W PROCESIE EKSPLOATACJI 1-2011 PROBLEMY EKSPLOATACJI 89 Franciszek GRABSKI Akademia Marynarki Wojennej, Gdynia STOCHASTYCZNY MODEL BEZPIECZEŃSTWA OBIEKTU W PROCESIE EKSPLOATACJI Słowa kluczowe Bezpieczeństwo, procesy semimarkowskie,

Bardziej szczegółowo

DUAL SIMILARITY OF VOLTAGE TO CURRENT AND CURRENT TO VOLTAGE TRANSFER FUNCTION OF HYBRID ACTIVE TWO- PORTS WITH CONVERSION

DUAL SIMILARITY OF VOLTAGE TO CURRENT AND CURRENT TO VOLTAGE TRANSFER FUNCTION OF HYBRID ACTIVE TWO- PORTS WITH CONVERSION ELEKTRYKA 0 Zeszyt (9) Rok LX Andrzej KUKIEŁKA Politechnika Śląska w Gliwicach DUAL SIMILARITY OF VOLTAGE TO CURRENT AND CURRENT TO VOLTAGE TRANSFER FUNCTION OF HYBRID ACTIVE TWO- PORTS WITH CONVERSION

Bardziej szczegółowo

FAQ: 00000014/PL Data: 26/11/2008 Komunikacja w protokole MPI za pomocą Global Data (GD) pomiędzy sterownikami S7-300

FAQ: 00000014/PL Data: 26/11/2008 Komunikacja w protokole MPI za pomocą Global Data (GD) pomiędzy sterownikami S7-300 PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC S7 300/S7 400 w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci MPI i usługi komunikacyjnej Danych

Bardziej szczegółowo

Języki programowania, wtorek , 12:15-13:45 Zadanie 11 - ostatnie

Języki programowania, wtorek , 12:15-13:45 Zadanie 11 - ostatnie Języki programowania, wtorek 10.01.2017, 12:15-13:45 Zadanie 11 - ostatnie Dzisiaj wykorzystamy kolejną bardzo ważną rzecz języka C++ - szablony funkcji i szablony klas. Wstęp co to są klasy i funkcje

Bardziej szczegółowo

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji. 1. Znajdowanie miejsca zerowego funkcji metodą bisekcji. Matematyczna funkcja f ma być określona w programie w oddzielnej funkcji języka C (tak, aby moŝna było łatwo ją zmieniać). Przykładowa funkcja to:

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram

Bardziej szczegółowo

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

Wykład 8. Drzewo rozpinające (minimum spanning tree) Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,

Bardziej szczegółowo

Kolejkowanie. Graf sekwencyjny. Graf sekwencyjny: biegunowy, acykliczny Graf acykliczny to graf nie zawierający cykli G(V,E)

Kolejkowanie. Graf sekwencyjny. Graf sekwencyjny: biegunowy, acykliczny Graf acykliczny to graf nie zawierający cykli G(V,E) Kolejkowanie Systemy wbudowane dr. inŝ. Paweł Russek Katedra Elektroniki AGH Graf sekwencyjny Graf sekwencyjny: biegunowy, acykliczny Graf acykliczny to graf nie zawierający cykli Cykl to droga zamknięta

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

ZASTOSOWANIE SPLOTU FUNKCJI DO OPISU WŁASNOŚCI NIEZAWODNOŚCIOWYCH UKŁADÓW Z REZERWOWANIEM

ZASTOSOWANIE SPLOTU FUNKCJI DO OPISU WŁASNOŚCI NIEZAWODNOŚCIOWYCH UKŁADÓW Z REZERWOWANIEM 1-2011 PROBLEMY EKSPLOATACJI 205 Zbigniew ZDZIENNICKI, Andrzej MACIEJCZYK Politechnika Łódzka, Łódź ZASTOSOWANIE SPLOTU FUNKCJI DO OPISU WŁASNOŚCI NIEZAWODNOŚCIOWYCH UKŁADÓW Z REZERWOWANIEM Słowa kluczowe

Bardziej szczegółowo

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n

Bardziej szczegółowo

Algorytm wyznaczania najkrótszej ścieżki w grafie skierowanym w zbiorze liczb rozmytych

Algorytm wyznaczania najkrótszej ścieżki w grafie skierowanym w zbiorze liczb rozmytych NEUMNN Tomasz 1 lgorytm wyznaczania najkrótszej ścieżki w grafie skierowanym w zbiorze liczb rozmytych WSTĘP W systemach zarządzania transportem jedną z najbardziej istotnych kwestii jest zapewnienie najkrótszej

Bardziej szczegółowo

Ogólne wiadomości o grafach

Ogólne wiadomości o grafach Ogólne wiadomości o grafach Algorytmy i struktury danych Wykład 5. Rok akademicki: / Pojęcie grafu Graf zbiór wierzchołków połączonych za pomocą krawędzi. Podstawowe rodzaje grafów: grafy nieskierowane,

Bardziej szczegółowo

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69

Bardziej szczegółowo

PROJEKT Z TEORETYCZNYCH PODSTAW INFORMATYKI

PROJEKT Z TEORETYCZNYCH PODSTAW INFORMATYKI Autor: DAWID PICHEN (132775) PROJEKT Z TEORETYCZNYCH PODSTAW INFORMATYKI Temat: ALGORYTM DIJKSTRA Wstęp Celem niniejszego projektu była implementacja, analiza i wskazanie złoŝoności obliczeniowej algorytmu

Bardziej szczegółowo

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

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1 Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1 G. Wybrane elementy teorii grafów W matematyce teorię grafów klasyfikuje się jako gałąź topologii. Jest ona jednak ściśle związana z algebrą i

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

POISSONOWSKA APROKSYMACJA W SYSTEMACH NIEZAWODNOŚCIOWYCH

POISSONOWSKA APROKSYMACJA W SYSTEMACH NIEZAWODNOŚCIOWYCH POISSONOWSKA APROKSYMACJA W SYSTEMACH NIEZAWODNOŚCIOWYCH Barbara Popowska bpopowsk@math.put.poznan.pl Politechnika Poznańska http://www.put.poznan.pl/ PROGRAM REFERATU 1. WPROWADZENIE 2. GRAF JAKO MODEL

Bardziej szczegółowo

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1 Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem

Bardziej szczegółowo

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej. Wrocław, 28.11.2017 Wstęp do informatyki i programowania: liczby pierwsze Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Zajmiemy się liczbami pierwszymi... liczby

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy

Bardziej szczegółowo

PODSTAWY INFORMATYKI wykład 10.

PODSTAWY INFORMATYKI wykład 10. PODSTAWY INFORMATYKI wykład 10. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutniacza w Krakowie WEAIiE,

Bardziej szczegółowo

KURS MATEMATYKA DYSKRETNA

KURS MATEMATYKA DYSKRETNA KURS MATEMATYKA DYSKRETNA LEKCJA 28 Grafy hamiltonowskie ZADANIE DOMOWE www.akademia.etrapez.pl Strona 1 Część 1: TEST Zaznacz poprawną odpowiedź (tylko jedna jest prawdziwa). Pytanie 1 Drogę nazywamy

Bardziej szczegółowo

Tworzenie przypadków testowych

Tworzenie przypadków testowych Tworzenie przypadków testowych Prowadząca: Katarzyna Pietrzyk Agenda 1. Wprowadzenie 2. Wymagania 3. Przypadek testowy Definicja Schemat Cechy dobrego przypadku testowego 4. Techniki projektowania Czarnej

Bardziej szczegółowo

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S.

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S. 1 Zbiór potęgowy - Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S. - Dowolny podzbiór R zbioru 2 S nazywa się rodziną zbiorów względem S. - Jeśli S jest n-elementowym zbiorem,

Bardziej szczegółowo

ANALIZA HIERARCHICZNA PROBLEMU W SZACOWANIU RYZYKA PROJEKTU INFORMATYCZNEGO METODĄ PUNKTOWĄ. Joanna Bryndza

ANALIZA HIERARCHICZNA PROBLEMU W SZACOWANIU RYZYKA PROJEKTU INFORMATYCZNEGO METODĄ PUNKTOWĄ. Joanna Bryndza ANALIZA HIERARCHICZNA PROBLEMU W SZACOWANIU RYZYKA PROJEKTU INFORMATYCZNEGO METODĄ PUNKTOWĄ Joanna Bryndza Wprowadzenie Jednym z kluczowych problemów w szacowaniu poziomu ryzyka przedsięwzięcia informatycznego

Bardziej szczegółowo

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda Segmentacja obrazów cyfrowych Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp autor: Łukasz Chlebda 1 Segmentacja obrazów cyfrowych - temat pracy Temat pracy: Aplikacja do segmentacji

Bardziej szczegółowo

Interpreter - EasyCompile

Interpreter - EasyCompile Akademia Podlaska w Siedlcach Siedlce, dn. 20.V.2006r. Wydział Nauk Ścisłych Instytut Informatyki Interpreter - EasyCompile Projekt z SISW Wykonali: Paweł Sawczuk Edwin Tomczuk Krzysztof Pietraszek I Inf.

Bardziej szczegółowo

Grafy w MATLABie. LABORKA Piotr Ciskowski

Grafy w MATLABie. LABORKA Piotr Ciskowski Grafy w MATLABie LABORKA Piotr Ciskowski przykład 1 SIMBIOLOGY MODEL OF A REPRESSILATOR OSCILLATORY NETWORK Repressilator oscillatory network (cokolwiek to znaczy ;-) żródło: http://www.mathworks.com/help/bioinfo/examples/working-with-graph-theory-functions.html

Bardziej szczegółowo

AiSD zadanie trzecie

AiSD zadanie trzecie AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania

Bardziej szczegółowo

DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY PROGRAMU AGREGAT - 2

DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY PROGRAMU AGREGAT - 2 InŜynieria Rolnicza 14/2005 Michał Cupiał, Maciej Kuboń Katedra InŜynierii Rolniczej i Informatyki Akademia Rolnicza im. Hugona Kołłątaja w Krakowie DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY

Bardziej szczegółowo

Liczbę 29 możemy zaprezentować na siedem różnych sposobów:

Liczbę 29 możemy zaprezentować na siedem różnych sposobów: Numeryczna analiza rozkładu liczb naturalnych na określoną sumę liczb pierwszych Świerczewski Ł. Od blisko 200 lat matematycy poszukują odpowiedzi na pytanie zadane przez Christiana Goldbacha, który w

Bardziej szczegółowo

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0  Zofia Kruczkiewicz Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 http://www.junit.org/ Zofia Kruczkiewicz 1. Aby utworzyć test dla jednej klasy, należy kliknąć prawym przyciskiem myszy w oknie Projects na wybraną

Bardziej szczegółowo

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli Automatyczne generowanie testów z modeli Numer: 1 (33) Rozkmina: Projektowanie testów na podstawie modeli (potem można je wykonywać ręcznie, lub automatycznie zwykle chce się automatycznie) A ja mówię

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Informacje podstawowe 1. Konsultacje: pokój

Bardziej szczegółowo

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska Teoria grafów dla małolatów Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska Wstęp Matematyka to wiele różnych dyscyplin Bowiem świat jest bardzo skomplikowany wymaga rozważenia

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Twierdzenie 2.1 Niech G będzie grafem prostym

Bardziej szczegółowo

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 1 / 20

Bardziej szczegółowo

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 8: Structured PredicCon 2

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 8: Structured PredicCon 2 TTIC 31210: Advanced Natural Language Processing Kevin Gimpel Spring 2019 Lecture 8: Structured PredicCon 2 1 Roadmap intro (1 lecture) deep learning for NLP (5 lectures) structured predic+on (4 lectures)

Bardziej szczegółowo

Wstęp do informatyki- wykład 2

Wstęp do informatyki- wykład 2 MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne A. Permutacja losowa Matematyka dyskretna - wykład - część 2 9. Podstawowe algorytmy kombinatoryczne Załóżmy, że mamy tablice p złożoną z n liczb (ponumerowanych od 0 do n 1). Aby wygenerować losową permutację

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych 1 / 30 STL Standard Template Library, STL (ang. = Standardowa Biblioteka Wzorców) biblioteka C++ zawierająca szablony (wzorce), które umożliwiają wielokrotne użycie. Główne

Bardziej szczegółowo

Liczby losowe i pętla while w języku Python

Liczby losowe i pętla while w języku Python Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak

Bardziej szczegółowo

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

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie Wykład 8. Kolorowanie 1 / 62 Kolorowanie wierzchołków - definicja Zbiory niezależne Niech G będzie grafem bez pętli. Definicja Mówimy, że G jest grafem k kolorowalnym, jeśli każdemu wierzchołkowi możemy

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Algorytmy i Struktury Danych. Anna Paszyńska

Algorytmy i Struktury Danych. Anna Paszyńska Algorytmy i Struktury Danych Anna Paszyńska Tablica dynamiczna szablon Array Zbiory Zbiory template class Container {public: virtual ~Container() { }; virtual int Count() const = 0;

Bardziej szczegółowo

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

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ. Gramatyki grafowe Def. Nieskierowany NL-graf (etykietowane wierzchołki) jest czwórką g = (V, E, Σ, ϕ), gdzie: V niepusty zbiór wierzchołków, E V V zbiór krawędzi, Σ - skończony, niepusty alfabet etykiet

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

MODELOWANIE PROCESU EKSPLOATACJI OBIEKTÓW TECHNICZNYCH ZA POMOCĄ DYNAMICZNYCH SIECI BAYESOWSKICH

MODELOWANIE PROCESU EKSPLOATACJI OBIEKTÓW TECHNICZNYCH ZA POMOCĄ DYNAMICZNYCH SIECI BAYESOWSKICH InŜynieria Rolnicza 12/2006 Grzegorz Bartnik, Andrzej Kusz, Andrzej W. Marciniak Katedra Podstaw Techniki Akademia Rolnicza w Lublinie MODELOWANIE PROCESU EKSPLOATACJI OBIEKTÓW TECHNICZNYCH ZA POMOCĄ DYNAMICZNYCH

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

Bardziej szczegółowo

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles). Wykład 1 1-1 Informatyka nauka zajmująca się zbieraniem, przechowywaniem i przetwarzaniem informacji. Informacja obiekt abstrakcyjny, który w postaci zakodowanej moŝe być przechowywany, przesyłany, przetwarzany

Bardziej szczegółowo

bo od managera wymaga się perfekcji

bo od managera wymaga się perfekcji bo od managera wymaga się perfekcji MODELOWANIE PROCESÓW Charakterystyka modułu Modelowanie Procesów Biznesowych (BPM) Modelowanie procesów biznesowych stanowi fundament wdroŝenia systemu zarządzania jakością

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Teoria automatów i języków formalnych. Określenie relacji

Teoria automatów i języków formalnych. Określenie relacji Relacje Teoria automatów i języków formalnych Dr inŝ. Janusz ajewski Katedra Informatyki Określenie relacji: Określenie relacji Relacja R jest zbiorem par uporządkowanych, czyli podzbiorem iloczynu kartezjańskiego

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

Algorytmiczna teoria grafów Przepływy w sieciach.

Algorytmiczna teoria grafów Przepływy w sieciach. Algorytmiczna teoria grafów Sieć przepływowa Siecią przepływową S = (V, E, c) nazywamy graf zorientowany G = (V,E), w którym każdy łuk (u, v) E ma określoną przepustowość c(u, v) 0. Wyróżniamy dwa wierzchołki:

Bardziej szczegółowo

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy ZAKLESZCZENIA w SO brak środków zapobiegania zakleszczeniom Zamówienia na zasoby => przydział dowolnego egzemplarza danego typu Zasoby w systemie typy; identyczne egzemplarze procesory obszary pamięci

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa Diagnostyka i niezawodność robotów Laboratorium nr 4 Modelowanie niezawodności prostych struktur sprzętowych Prowadzący: mgr inż. Marcel Luzar Cel

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 12a: Prawdopodobieństwo i algorytmy probabilistyczne http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Teoria prawdopodobieństwa

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów Drzewa: Drzewo (ang. tree) jest strukturą danych zbudowaną z elementów, które nazywamy węzłami (ang. node).

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

Podstawy Informatyki. Sprawność algorytmów Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych

Bardziej szczegółowo

Analiza Sieci Społecznych Pajek

Analiza Sieci Społecznych Pajek Analiza Sieci Społecznych Pajek Dominik Batorski Instytut Socjologii UW 25 marca 2005 1 Wprowadzenie Regularności we wzorach relacji często są nazywane strukturą. Analiza sieci społecznych jest zbiorem

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

Bardziej szczegółowo

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First

Bardziej szczegółowo

Systemy ekspertowe. System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro

Systemy ekspertowe. System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro Systemy ekspertowe System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro Autorzy: 1 Wstęp Wybór zestawu komputerowego, ze względu na istnienie wielu

Bardziej szczegółowo

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji

Bardziej szczegółowo

ALGORYTM ROZPOZNAWANIA OBRAZÓW MATERIAŁÓW BIOLOGICZNYCH

ALGORYTM ROZPOZNAWANIA OBRAZÓW MATERIAŁÓW BIOLOGICZNYCH InŜynieria Rolnicza 7/2005 Bogusława Łapczyńska-Kordon, Jerzy Langman, Norbert Pedryc Katedra InŜynierii Mechanicznej i Agrofizyki Akademia Rolnicza w Krakowie ALGORYTM ROZPOZNAWANIA OBRAZÓW MATERIAŁÓW

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

SSK - Techniki Internetowe

SSK - Techniki Internetowe SSK - Techniki Internetowe Ćwiczenie 2. Obsługa formularzy. Operatory, instrukcje warunkowe oraz instrukcje pętli w PHP. Obsługa formularzy Skryptu PHP moŝna uŝyć do obsługi formularza HTML. Aby tego dokonać,

Bardziej szczegółowo

Czas pracy: 60 minut

Czas pracy: 60 minut EGZAMIN MATURALNY OD ROKU SZKOLNEGO 2014/2015 INFORMATYKA POZIOM ROZSZERZONY ARKUSZ I PRZYKŁADOWY ZESTAW ZADAŃ DLA OSÓB SŁABOSŁYSZĄCYCH (A3) WYBRANE:... (środowisko)... (kompilator)... (program użytkowy)

Bardziej szczegółowo

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 Wykład 8 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 sformułowanie problemu przegląd drzewa poszukiwań przykłady problemów wybrane narzędzia programistyczne J. Cichoń, P. Kobylański

Bardziej szczegółowo

... (środowisko) ... ... 60 minut

... (środowisko) ... ... 60 minut EGZAMIN MATURALNY OD ROKU SZKOLNEGO 2014/2015 INFORMATYKA POZIOM ROZSZERZONY ARKUSZ I PRZYKŁADOWY ZESTAW ZADAŃ DLA OSÓB Z AUTYZMEM, W TYM Z ZESPOŁEM ASPERGERA (A2) WYBRANE:... (środowisko)... (kompilator)...

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Centralność w sieciach społecznych. Radosław Michalski Social Network Group - kwiecień 2009

Centralność w sieciach społecznych. Radosław Michalski Social Network Group - kwiecień 2009 Centralność w sieciach społecznych Radosław Michalski Social Network Group - kwiecień 2009 Agenda spotkania Pojęcie centralności Potrzeba pomiaru centralności Miary centralności degree centrality betweenness

Bardziej szczegółowo

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40 Programowanie w C++ Wykład 7 Katarzyna Grzelak 23 kwietnia 2018 K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40 Standard Template Library (STL) K.Grzelak (Wykład 7) Programowanie w C++ 2 / 40 C++ Templates

Bardziej szczegółowo

Informatyka w szkole - algorytm Dijkstry dla każdego. Krzysztof Diks Instytut Informatyki, Uniwersytet Warszawski

Informatyka w szkole - algorytm Dijkstry dla każdego. Krzysztof Diks Instytut Informatyki, Uniwersytet Warszawski Informatyka w szkole - algorytm Dijkstry dla każdego Krzysztof Diks Instytut Informatyki, Uniwersytet Warszawski Problem 1: Labirynt Źródło: www.dla-dzieci.ugu.pl Problem : Wilk, owca i kapusta Źródło:

Bardziej szczegółowo

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak Teoria grafów podstawy Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Grafy zorientowane i niezorientowane Przykład 1 Dwa pociągi i jeden most problem wzajemnego wykluczania się Dwa

Bardziej szczegółowo

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 9: Inference in Structured Prediction

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 9: Inference in Structured Prediction TTIC 31210: Advanced Natural Language Processing Kevin Gimpel Spring 2019 Lecture 9: Inference in Structured Prediction 1 intro (1 lecture) Roadmap deep learning for NLP (5 lectures) structured prediction

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie. Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy

Bardziej szczegółowo

Data Mining Wykład 5. Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny. Indeks Gini. Indeks Gini - Przykład

Data Mining Wykład 5. Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny. Indeks Gini. Indeks Gini - Przykład Data Mining Wykład 5 Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny Indeks Gini Popularnym kryterium podziału, stosowanym w wielu produktach komercyjnych, jest indeks Gini Algorytm SPRINT

Bardziej szczegółowo

Digraf. 13 maja 2017

Digraf. 13 maja 2017 Digraf 13 maja 2017 Graf skierowany, digraf, digraf prosty Definicja 1 Digraf prosty G to (V, E), gdzie V jest zbiorem wierzchołków, E jest rodziną zorientowanych krawędzi, między różnymi wierzchołkami,

Bardziej szczegółowo

Systemy liczenia. 333= 3*100+3*10+3*1

Systemy liczenia. 333= 3*100+3*10+3*1 Systemy liczenia. System dziesiętny jest systemem pozycyjnym, co oznacza, Ŝe wartość liczby zaleŝy od pozycji na której się ona znajduje np. w liczbie 333 kaŝda cyfra oznacza inną wartość bowiem: 333=

Bardziej szczegółowo

Jak działa grawitacja?

Jak działa grawitacja? Nazwa projektu: Kreatywni i innowacyjni uczniowie konkurencyjni na rynku pracy DZIAŁANIE 3.2 EDUKACJA OGÓLNA PODDZIAŁANIE 3.2.1 JAKOŚĆ EDUKACJI OGÓLNEJ Projekt współfinansowany przez Unię Europejską w

Bardziej szczegółowo

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce Metody systemowe i decyzyjne w informatyce Laboratorium Zadanie nr 3 Osada autor: A Gonczarek Celem poniższego zadania jest zrealizowanie fragmentu komputerowego przeciwnika w grze strategiczno-ekonomicznej

Bardziej szczegółowo