Polska Akademia Nauk Oddział w Gdańsku Komisja Informatyki Metody Informatyki Stosowanej Nr 2/2009 (19) Szczecin 2009 Metody Informatyki Stosowanej Kwartalnik Komisji Informatyki Polskiej Akademii Nauk Oddział w Gdańsku Komitet Naukowy: Przewodniczący: prof. dr hab. inż. Henryk Krawczyk, czł. koresp. PAN, Politechnika Gdańska Członkowie: prof. dr hab. inż. Michał Białko, czł. rzecz. PAN, Politechnika Koszalińska prof. dr hab. inż. Ludosław Drelichowski, Uniwersytet Technologiczno-Przyrodniczy w Bydgoszczy prof. dr hab. inż. Janusz Kacprzyk, czł. koresp. PAN, Instytut Badań Systemowych PAN prof. dr hab. Jan Madey, Uniwersytet Warszawski prof. dr hab. inż. Leszek Rutkowski, czł. koresp. PAN, Politechnika Częstochowska prof. dr hab. inż. Piotr Sienkiewicz, Akademia Obrony Narodowej prof. dr inż. Jerzy Sołdek, Politechnika Szczecińska prof. dr hab. inż. Andrzej Straszak, Instytut Badań Systemowych PAN prof. dr hab. Maciej M. Sysło, Uniwersytet Wrocławski Recenzenci współpracujący z redakcją: Marian Adamski, Zbigniew Banaszak, Alexander Barkalov, Włodzimierz Bielecki, Piotr Bubacz, Ryszard Budziński, Henryk Budzisz, Andrzej Czyżewski, Ludosław Drelichowski, Witold Dzwinel, Imed El Frey, Mykhaylo Fedorov, Paweł Forczmański, Dariusz Frejlichowski, Krzysztof Giaro, Larysa Globa, Zbigniew Gmyrek, Janusz Górski, Stanisław Grzegórski, Volodymyr Harbarchuk, Volodymyr Hrytsyk, Wojciech Jędruch, Aleksander Katkow, Przemysław Klęsk, Shinya Kobayashi, Leonid Kompanets, Józef Korbicz, Marcin Korzeń, Georgy Kukharev, Mieczysław Kula, Eugeniusz Kuriata, Emma Kusztina, Małgorzata Łatuszyńska, Wiesław Madej, Oleg Mashkov, Oleg Maslennikow, Karol Myszkowski, Evgeny Ochin, Krzysztof Okarma, Piotr Pechmann, Jerzy Pejaś, Andrzej Pieczyński, Andrzej Piegat, Jacek Pomykała, Orest Popov, Remigiusz Rak, Valeriy Rogoza, Khalid Saeed, Jerzy Sołdek, Boris Sovetov, Marek Stabrowski, Andrzej Stateczny, Janusz Stokłosa, Alexander Ţariov, Leszek Trybus, Zenon Ulman, Anrzej Walczak, Jarosław Wątróbski, Sławomir Wiak, Antoni Wiliński, Waldemar Wolski, Waldemar Wójcik, Oleg Zaikin, Zenon Zwierzewicz Redaktor Naczelny: Antoni Wiliński Sekretarz redakcji: Piotr Czapiewski ISSN 1898-5297 Wydawnictwo: Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki Adres kontaktowy: ul. Żołnierska 49 p. 104, 71-210 Szczecin, email: [email protected] Druk: Pracownia Poligraficzna Wydziału Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego w Szczecinie Nakład 510 egz. Spis treści Włodzimierz Bielecki, Tomasz Klimek, Maciej Pietrasik OBLICZENIE TRANZYTYWNEGO DOMKNIĘCIA SPARAMETRYZOWANYCH RELACJI ZALEŻNOŚCI NIE NALEŻĄCYCH DO KLASY D-FORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Larisa Dobryakova, Evgeny Ochin METODA STEGANOGRAFICZNA NA BAZIE WPROWADZENIA DODATKOWEGO BITU DANYCH MEDIALNYCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Luiza Fabisiak ANALIZA WIELOKRYTERIALNA W ZARZĄDZANIU STRATEGICZNYM E-BIZNESU . . . . . . . . . . . . 23 Tomasz Hyla AUTOMATYCZNE SPRAWDZANIE I WERYFIKACJA STATUSU ALGORYTMÓW KRYPTOGRAFICZNYCH WYKORZYSTYWANYCH W INFRASTRUKTURZE KLUCZA PUBLICZNEGO . . . . . . . . . . . . . . . . . . . 31 Sławomir Jaszczak, Michał Wierzbicki TRANSLACJA PROGRAMU IL DO GRAFU SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Jerzy Korostil, Łukasz Nozdrzykowski THE ANALYSIS OF THE IMPORTANCE OF IMAGE ATTRIBUTES AFFECTING VISIBILITY FACT OF STEGANOGRAPHIC HIDE MESSAGES IN DIGITAL IMAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Marcin Mirończuk, Tadeusz Maciak EKSPLORACJA DANYCH W KONTEKŚCIE PROCESU KNOWLEDGE DISCOVERY IN DATABASES (KDD) I METODOLOGII CROSS-INDUSTRY STANDARD PROCESS FOR DATA MINING (CRISP-DM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Stanisław Niepostyn, Ilona Bluemke MODELER MODELU PRZESTRZENNEGO DOD W ŚRODOWISKU TOPCASED . . . . . . . . . . . . . . . 81 Aleksy Patryn, Walery Susłow, Michał Statkiewicz ERRORS IN IDENTIFICATION OF GEOMETRICAL GRAPHICAL FORMS: COMPUTERIZED STUDY . . . 93 Izabela Rojek METODY SZTUCZNEJ INTELIGENCJI W ROZWOJU SYSTEMÓW INFORMATYCZNYCH DLA PRZEDSIĘBIORSTW PRODUKCYJNYCH I WODOCIĄGOWYCH . . . . . . . . . . . . . . . . . . . . . . . 101 Maciej Roszkowski WYBRANE METODY KLASYFIKACJI BEZWZORCOWEJ W ZASTOSOWANIU DO KLASYFIKACJI DANYCH DOTYCZĄCYCH JAKOŚCI ŻYCIA MIESZKAŃCÓW PAŃSTW OECD . . . . . . . . . . . . . . . 113 Jan Sadolewski WPROWADZENIE DO WERYFIKACJI PROSTYCH PROGRAMÓW W JĘZYKU ST ZA POMOCĄ NARZĘDZI COQ, WHY I CADUCEUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Tatyana Shatovska, Iryna Kamenieva, Olena Liskonog CLUSTERIZATION MODULES FOR "ONTOLOGY DATA MODELS FOR DATA AND METADATA EXCHANGE REPOSITORY" SYSTEM TEXT COLLECTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Dominik Strzałka STANY NIERÓWNOWAGOWE PROCESÓW W PRZETWARZANIU ALGORYTMICZNYM . . . . . . . . . 145 Tatiana Tretyakova FUZZY COMPONENTS IN THE CONTENTS OF KNOWLEDGE BASES OF INTELLIGENT DECISION SUPPORT SYSTEMS (ON AN EXAMPLE OF USE OF HYDROMETEOROLOGICAL INFORMATION IN REGIONAL MANAGEMENT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Antoni Wiliński STRATEGIA INWESTOWANIA NA KONTRAKTACH TERMINOWYCH NA WIG20 OPARTA NA KONCEPCJI SAIDENBERGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Marek Włodarski PORÓWNANIE PARAMETRYCZNEJ I NIEPARAMETRYCZNEJ METODY OBLICZANIA KRZYWEJ ROC NA PRZYKŁADZIE ZBIORU SYGNAŁÓW ELEKTRORETINOGRAFICZNYCH . . . . . . . . . . . . . . . . . . 177 Obliczenie tranzytywnego domknięcia sparametryzowanych relacji zależności nie należących do klasy d-form Włodzimierz Bielecki, Tomasz Klimek, Maciej Pietrasik Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: Approaches for calculating the exact transitive closure of a single dependence relation are presented. These approaches are based on calculating firstly the power k of a relation, then transitive closure is easily formed by making k in the formula received to be existentially quantified. Supposed approaches permit for enlarging the scope of dependence relations for which it is possible to calculate exact transitive closure. This enlarges the scope of program loops for which it is possible to extract both fine- and coarse-grained parallelism. Results of experiments with popular benchmarks are presented. Keywords: affine loops, dependence, transitive closure, program transformation, parallelization 1. Wprowadzenie Wyznaczenie dokładnego domknięcia przechodniego grafu w przypadku wielu algorytmów staje się kluczowym wymaganiem zapewniającym prawidłowość wykonywanych przez nich obliczeń. Dotyczy to przede wszystkim problemów związanych z analizą hierarchii (systemy baz danych), analizą przepływów (transport, sieci komputerowe i telekomunikacyjne) jak i również analizą zależności czasowych (systemy równoległe i rozproszone). Jeżeli zagadnienie dopuszcza możliwość ponowienia procesu obliczeniowego w przypadku zmiany parametrów wejściowych (dodanie lub usunięcie kolejnych wierzchołków), wówczas za prawidłowe uznaje się zastosowanie jednego z dobrze znanych algorytmów przeszukiwania w głąb (ang. depth-first search) lub przeszukiwania wszerz (ang. breadth-first search) [5]. Niestety powyższe metody nie sprawdzają się w przypadku gdy proces wyznaczenia domknięcia przechodniego może być przeprowadzony tylko raz, a otrzymany wynik powinien być prawidłowy niezależnie od zmieniającej się liczby wierzchołków takiego grafu. Dotychczas zaproponowano kilka sposobów rozwiązania tego problemu, które zaprezentowano w publikacjach [1][2][9]. Jednak specyfika danego zadania determinuje konieczność doboru odpowiedniej formy reprezentacji grafu. Ponieważ obszar naszych zainteresowań sprowadza się do zastosowań w zakresie przetwarzania równoległego i rozproszonego, jeśli za wierzchołki przyjmiemy instancje instrukcji a za krawędzie łączące te wierzchołki zależności pomiędzy tymi instancjami, to za odpowiedni uznaliśmy wybór relacji krotek symbolizujących istniejące połączenia pomiędzy wierzchołkami za pomocą ograniczeń w postaci afinicznych równań i nierówności. Artykuł ten jest kontynuacją prac zapoczątkowanych w [6][7][8][9], dotyczących opracowania algorytmów wyznaczających domknięcie przechodnie relacji afinicznej na bazie jej potęgi k i ich zastosowania do wyeksponowania zarówno drobno- jak i gruboziarnistej równoległości zawartej w pętlach. Metody Informatyki Stosowanej, nr 2/2009 (19), s. 5-15 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 6 Włodzimierz Bielecki, Tomasz Klimek, Maciej Pietrasik 2. Pojęcia podstawowe Graf skierowany G ( V , E ) nazywamy domknięciem przechodnim grafu G, gdy E jest zbiorem wszystkich takich par ( v, w ) wierzchołków ze zbioru V, że w grafie G istnieje droga z v do w. Grafy mogą być reprezentowane za pomocą relacji krotek definiujących mapowanie n - wymiarowych krotek na m - wymiarowe krotki. Krotka wejściowa symbolizuje wówczas początek a krotka wyjściowa koniec krawędzi łączącej dowolne dwa wierzchołki takiego grafu. K-krotka (ang. Tuple) – jest to punkt w przestrzeni Z k o wartościach całkowitych o wymiarze k. Postać ogólna relacji wygląda następująco : s , s 1 , ..., s k t 1, t 2 , ..., t k ' | 2 n , i1 i 1 i2 , ..., i mi s .t . F i (1) , gdzie F i to ograniczenia w postaci afinicznych równań i nierówności nałożonych na składowe krotki wejściowej s1 , s2 ,..., sk , wyjściowej t1 , t2 ,..., tk ' , zmienne egzystencjalne i1 , i 2 ,..., im i stałe symboliczne. Istnieją dwie relacje związane z domknięciem przechodi nim: dodatnie domknięcie przechodnie – R i domknięcie przechodnie R* R I , gdzie I to relacja tożsamości: s , s 1 , ..., s k s 1, s 2 , ..., s k | 2 n , i 1 i1 i2 , ..., i mi s .t . F i , (2) F i to ograniczenia w postaci afinicznych równań i nierówności nałożonych na składowe krotki wejściowej s1 , s2 ,..., sk , zmienne egzystencjalne i1 , i 2 ,..., imi i stałe symboliczne. Rysunek 1 przedstawia graf reprezentowany przez relację R {[i ] [i 1] : 1 i n} , dla n=3, wraz z odpowiadającymi jej relacjami R {[i ] [i '] : 1 i i ' 4} i R* {[i ] [i '] : 1 i i ' 4} {[i] [i] : 1 i 4} R R+ R* Rysunek 1. Relacja reprezentująca graf, wraz z jej dodatnim domknięciem przechodniem i domknięciem przechodnim Dokładne domknięcie przechodnie relacji R przyjmuje następującą postać: Obliczenie tranzytywnego domknięcia sparametryzowanych relacji zależności… 7 R R k , gdzie (3) k 1 R k R R k 1 R k 1 R R k 2 ... (4) R1 R R0 I “ ” jest operatorem kompozycji relacji. Z powyższego zapisu (3) wynika, że proces obliczenia relacji R powinien być poprzedzony wyznaczeniem relacji R k . W kolejnym rozdziale zaprezentowane zostaną techniki umożliwiające wyznaczanie relacji R k dla pojedynczej afinicznej relacji R . 3. Wyznaczanie relacji R k i R dla pojedynczej relacji afinicznej 3.1. Stan wiedzy k Najprostsze rozwiązanie umożliwiające obliczenie relacji R i R sprowadza się do zastosowania algorytmu iteracyjnego. Przykład takiego algorytmu wygląda następująco: 1 Rk 2 R1 R 3 4 i2 i 2 do 5 R i R i 1 R 6 7 if 8 ( R i ) ( R i R i 1 R i 2 ... R1 ) then begin R k ( R1 k 1) ( R 2 k 2 ) ... ( R i 1 k i 1) 9 10 break end 11 i i 1 12 13 14 15 16 while i N if R k then begin print „Obliczenie dokładnego end k powiodło się” Rnie Rysunek 2. Iteracyjny algorytm obliczania potęgi k relacji i W algorytmie z rysunku 2 relacja R zawiera krawędzie przechodnie obliczone w i-tej k iteracji, a R sumę tych krawędzi uzyskanych w iteracjach od pierwszej do i-1. Powyższy algorytm poddano licznym modyfikacjom, mającym na celu skrócenie czasu jego działania, 8 Włodzimierz Bielecki, Tomasz Klimek, Maciej Pietrasik poprzez zwiększenie przyrostu krawędzi przechodnich uzyskanych w danej iteracji zgodnie z poniższym wzorem: k 1 k 1 R R k R I R 2 R I R I R 2 I R 4 k (5) Pomimo wyraźnej prostoty algorytmy iteracyjne nie mogą być wykorzystywane wprost do wyznaczenia dokładnego domknięcia przechodniego relacji sparametryzowanych, ponieważ w ich przypadku warunek stopu (linia nr 6 algorytmu) nie zawsze będzie spełniony. Na przykład, dla następującego przykładu relacji: R {[m, n] [m 1, m n 1] : 1 n m P 2} (6) metoda iteracyjna zawodzi. Zgodnie z bieżącym stanem wiedzy nie istnieje sformalizowane podejście umożliwiające obliczenie relacji R k i R w ogólnym przypadku. W artykule [9] wyodrębniono klasę relacji d-form, dla których jest to możliwe. Relacja należy do klasy d-form wtedy i tylko wtedy gdy przyjmuje następującą postać : i1 , i2 ,..., im j1 , j2 ,..., jm : p,1 p m, , p s.t. ( L p j p i p U p j p i p M p p ) (7) gdzie L p , U p , M p Z i definiują one wartości stałe nakładające ograniczenia na różnicę składowych krotki wyjściowej j p , wejściowej i p i zmiennych egzystencjalnych p . W przypadku gdy L p lub U p ograniczenie takie jest pomijane przy zapisie powyższej relacji (8). Rysunek 2 przedstawia relację R {[i, j ] [i ', j 2] : 1 i i ' n 1 j m 2} dla n=4 i m=3, należącą do klasy relacji d-form. Rysunek 2. Przykład relacji d-form Dla powyższej relacji R k wygląda następująco: i, j i ', j ' : k 0 i ' i k j ' j 2k 1 2 Rk 1 i n 1 1 j m 2 2 i ' n 3 j ' m . 3 4 (8) Obliczenie tranzytywnego domknięcia sparametryzowanych relacji zależności… 9 Gdzie poszczególne ograniczenia mają następujące znaczenie: (1) ograniczenia nałożone na różnicę składowych krotki wyjściowej i’ i wejściowej i dla danego k. (2) ograniczenia nałożone na różnicę składowych krotki wyjściowej j’ i wejściowej j dla danego k. (3) ograniczenia definiujące zbiór domain( R ). (4) ograniczenia definiujące zbiór range( R ). Dodając kwantyfikator do relacji R k wzglądem zmiennej k otrzymujemy relację R : ' i k j' j 2k i, j i' , j' : ( k : k 0 i 1 2 R . 1 1 1 2 2 ' 3 ' ) i n j m i n j m 3 4 (9) W pozostałych przypadkach z uwagi na brak sformalizowanych metod umożliwiających obliczenie relacji R k w sposób dokładny, dobrze znaną praktyką jest zastosowanie zamiennika w postaci przybliżenia dolnego (niepełny zbiór krawędzi przechodnich) lub górnego (krawędzie nadmiarowe). Przybliżenie dolne otrzymujemy stosując poniższą formułę: n k RLB (n) R (10) k 1 Dla odpowiednio małych wartości parametru n rozwiązanie to będzie zarazem rozwiązaniem dokładnym i równoważnym wykonaniu n kroków algorytmu iteracyjnego. W przypadku ograniczenia górnego zważywszy na fakt, że dla dowolnej relacji R istnieje relacja d należąca do klasy d-form, taka że R d , relację R k obliczamy zgodnie z podejściem charakterystycznym dla relacji d-form, a otrzymane rozwiązanie stanowi przybliżenie górne krawędzi przechodnich relacji R. 3.2. Rozwinięcie istniejących metod Proces wyznaczenia potęgi k pojedynczej relacji afinicznej rozpoczynamy zawsze od próby poszukiwania rozwiązania dokładnego. Kluczowe staje się sprawdzenie czy relacja tworzy łańcuch połączonych ze sobą krawędzi grafu. Jeśli domain( R) range( R) oznacza to, iż żaden z końców relacji nie należy jednocześnie do jej początków i tym samym relacja R k przyjmuje postać: R dla k 1 Rk dla k 1 (11) Najczęściej taki przypadek ma miejsce, gdy liczba zmiennych krotek wejściowej relacji rożni się od liczby zmiennych krotki wyjściowej tej samej relacji. Sytuację taką obrazuje relacja (12) R {[i ] [i ', j ] : 1 i i ' n 1 j m } (12) W przeciwnym wypadku, gdy relacja dla której poszukujemy jej potęgi k nie jest relacją d-form i spełnione są poniższe warunki: 1) relacja nie jest sumą wielu relacji, których krotki wyznaczające początki i końce są różne, 10 Włodzimierz Bielecki, Tomasz Klimek, Maciej Pietrasik 2) każdy koniec/początek posiada dokładnie jeden początek/koniec, tzn. dla dowolnego początku d domain( Ri ) /końca r range( Ri ) istnieje dokładnie jeden koniec range( Ri (d )) /początek domain( Ri1 (r )) , co jest równoważne z tym, że nie istnieją takie d i i d j , że d i d j i R (d i ) R(d j ) / ri i r j , że ri r j i R 1 (ri ) R 1 (r j ) , 3) liczba zmiennych zawartych w opisie relacji, musi być mniejsza lub równa ilości zmiennych indeksujących pętli, wówczas możemy skorzystać z alternatywnego podejścia do obliczenia relacji R k opartego na utworzeniu i rozwiązaniu układu równań rekurencyjnych. Szczegóły tej metody wraz z wynikami przeprowadzonych badań zawarte są w artykułach [6][7][8]. Dla przykładowej relacji R {[i] [2i] : 1 i 2i n } , która nie jest typu d-form, przybliżenie górne relacji R k , obliczone w oparciu o metodę przedstawioną w [9], wygląda następująco: Rk i i' : k 0 i'i k i 1 2i n 2 i' n ( : i' 2 ) , (13) podczas gdy podejście oparte na zastosowaniu układu równań rekurencyjnych: [i ] [i '] : k 0 i 1 2i n i ' i 2k Rk , 2 i ' n ( :2 i ' ) (14) pozwala zdefiniować relację reprezentującą rozwiązanie dokładne. Na podstawie przeprowadzonych obserwacji wytypowaliśmy kolejną klasę relacji, dla której obliczenie jej dokładnej potęgi k jest możliwe. Należą do niej tzw. relacje hybrydowe, czyli takie których część odpowiadających sobie składowych krotki wejściowej i wyjściowej jest charakterystyczna dla relacji d-form, a pozostała spełnia wymagania konieczne dla utworzenia i rozwiązania układu równań rekurencyjnych. Dla przykładowej relacji (15): R [i, j ] [i ', 2 j ] : 1 i i ' n j 1 2 j m , (15) para składowych wejściowych i wyjściowych – i, i’ spełnia wymagania charakterystyczne dla relacji d-form, z kolei para składowych wejściowych i wyjściowych – j, 2j jest odpowiednia dla utworzenia i rozwiązania układu równań rekurencyjnych. Stosując połączenie technik obliczania R k charakterystycznych dla relacji d-form wraz z metodą polegającą na utworzeniu i rozwiązaniu układu równań rekurencyjnych względem poszczególnych składowych krotki wejściowej i wyjściowej, możliwe jest wyznaczenie potęgi k dla tego typu relacji (15). Proces ten wygląda następująco. 1. Sprawdzamy czy dla poszczególnych składowych krotki wejściowej i wyjściowej istnieje zależność tylko pomiędzy odpowiadającymi sobie parami składowych znajdujących się na tej samej pozycji. Jeśli nie, to koniec, proponowane podejście nie pozwala na obliczenie tranzytywnego domknięcia. Inaczej, tworzymy relacje Ri , 1 i m , gdzie m to liczba składowych krotki wejściowej i wyjściowej, składające się tylko z i-tej składowej tychże krotek. Pozostałe składowe deklarujemy jako zmienne egzystencjalne. Dla relacji (15) uzyskujemy: R1 [i ] [i ' ] : ( j : 1 i i ' n j 1 2 j m ) = [i] [i' ] : 1 i i' n 2 m , Obliczenie tranzytywnego domknięcia sparametryzowanych relacji zależności… 11 R2 [ j ] [2 j ] : ( i ' , i : 1 i i ' n j 1 2 j m )= [ j ] [2 j ] : 2 j m 1 j 2 n. 2. Dla nowo powstałych relacji Ri sprawdzamy ich przynależność do klasy relacji a) dform b) lub takiej, dla której możliwe jest utworzenie i rozwiązanie układu równań rekurencyjnych a) ri diffTo Re l ( difference ( Ri )) , gdzie funkcja biblioteczna difference( R ) pakietu Omega[10] oblicza zbiór wektorów dystansu relacji R, a funkcja diffToRel pakietu Omega[10] tworzy relację r na podstawie zadanego zbioru. r1 diffTo Re l ( difference ( R1 )) ; Po wprowadzeniu ograniczenia dla r1 na domain( R1 ) i range( R1 ) : r1 (r1 \ domain( R1 )) / range( R1 ) , przystępujemy do dokonania sprawdzenia: r1 R1 R1 r1 , czyli r1 R1 a to oznacza że relacja R1 spełnia warunek konieczny przynależności do klasy relacji d-form. b) jeżeli (lf Ri ) Ri ( lf Ri ) Ri , gdzie lf to relacja leksykograficznie dodatnia, oznacza to że wykluczono istnienie wspólnych początków i końców. Relacja R jest leksykograficznie dodatnia wtedy i tylko wtedy, gdy: x y R, 0 y x , (16) Pierwsza część warunku: (lf R2 ) R2 wyklucza istnienie takich ri i r j , że ri r j i r range( Ri ) ( lf Ri ) Ri R 1 (ri ) R 1 (r j ) . i wyklucza istnienie takich Z di kolei i dj, druga że część: di d j i d domain( Ri ) i R(d i ) R (d j ) . Ponieważ dla analizowanej relacji warunek: (lf R2 ) R2 ( lf R2 ) R2 , gdzie lf {[i ] [i ' ] : i ' i } jest spełniony wnioskujemy, iż spełnione są wymagania niezbędne do utworzenia i rozwiązania układu równań rekurencyjnych w celu wyznaczenia jej k-tej potęgi. Jeżeli każda z relacji Ri należy do dowolnej z powyższych klas to kontynuujemy postępowanie. W przeciwnym przypadku koniec, proponowane podejście nie pozwala na obliczenie tranzytywnego domknięcia. 3. Tworzymy relację Rc łącząc poszczególne składowe relacji Ri wraz z ich ograniczeniami. m Rc {[ s1 , s2 ,..., sm ] [t 1, t 2 ,..., t m ] : constraints on si from Ri i 0 constraints on ti from Ri } 12 Włodzimierz Bielecki, Tomasz Klimek, Maciej Pietrasik Rc [i , j ] [i ' , 2 j ] : 1 i i ' n 2 m 2 j m 1 j 2 n , gdzie 1 2 (1) jest to ograniczenie dla zmiennych i, i’, (2) jest to ograniczenie dla zmiennej j. Ponieważ Rc R R Rc , możliwe jest połączenie obu technik w celu wyznaczenia relacji R k , która w tym przypadku wygląda następująco: [i, j ] [i ', j ']: k 0 1 i n j 1 2 j m 2 i ' n Rk 2 j ' m i ' i k j ' j 2k ( :2 i ' ) (17) Ostatecznie otrzymana relacja R k powinna spełniać warunek wystarczający : r k R k , gdzie R rk k R R dla dla k 1 k 1 (18) (19) aby można było uznać, że reprezentuje rozwiązanie dokładne. Należy zwrócić uwagę, że w procesie mapowania krotki wejściowej na krotkę wyjściową (15), w tej ostatniej, każda ze składowych zależy tylko i wyłącznie od odpowiadającej jej składowej krotki wejściowej, czyli tej znajdującej się na tej samej pozycji. Relacja (20) nie spełnia tego wymagania, ponieważ jej druga składowa krotki wyjściowej jest mapowana nie tylko względem pierwszej ale i drugiej składowej krotki wejściowej: R [i, j ] [i ', i j ] : 1, i ' 3 i i ' n j 1 i j m (20) Jednak jeśli relacja reprezentuje skończony zbiór relacji spełniających wcześniej zdefiniowane warunki: 1, 2 i 3, wówczas korzystne staje się dokonanie rozwinięcia takiej relacji do sumy relacji, dla których możliwe jest utworzenie i rozwiązanie układu równań rekurencyjnych. Pewne kroki w tym kierunku zostały już poczynione a ich analiza stała się przedmiotem dalszych badań autorów. 4. Wyniki badań Do badań wybrano trzy benchmarki: NAS[13], Livemoore Loops[12] oraz UTDSP[14]. Pierwszy z nich, opracowany przez NASA, składa się z pięciu jąder oraz trzech aplikacji CFD (ang. Computional Fluid Dynamics). Łącznie zawiera on 431 pętli, jednak do naszych badań wykorzystaliśmy 257 (pozostałe zawierają instrukcje skoku, bądź instrukcje zmieniające krok pętli oraz odwołania do niezdefiniowanych zewnętrznych funkcji, które mogą wprowadzić nieznane zależności danych). Benchmark Livemoore Loops opracowany przez Lawrence Livermoore National Laboratory zawiera 24 pętle, z których odrzucono 5 ze względu na występujące w nich ograniczenia w postaci funkcji oraz instrukcje break i continue. Ostatni zbiór testowy – UTDSP (University of Toronto Digital Signal Processing) składający się z sześciu jąder oraz 10 aplikacji przeznaczonych do cyfrowego przetwarzania sygnałów, zawiera 77 pętli, spośród których wybrano 29, które spełniają wspomniane wcześniej wymagania. Do badań został zastosowany program Petit służący do przeprowadzenia analizy zależności w pętlach programowych. Wynikiem analizy zależności jest zbiór Obliczenie tranzytywnego domknięcia sparametryzowanych relacji zależności… 13 relacji zależności produkowanych dla danej pętli. Celem badań było rozpoznanie jaki jest procent relacji poszczególnych pętli oraz zbadanie możliwości obliczenia tranzytywnego domknięcia relacji. W tym celu zostało opracowane narzędzie w oparciu o bibliotekę Omega [10], które rozpoznaje typ relacji, oblicza dla niej najpierw Rk, a potem jej tranzytywne domknięcie korzystając z odpowiedniej techniki omówionej w artykule. Tabela 1a 1 2 3 4 5 6 Benchmark Liczba wszystkich relacji Liczba relacji bez wspólnych elementów dziedziny i przeciwdziedziny Livemoore 1148 22 1,92% 76 6,62 % UTDSP 700 26 3,71 % 244 34,86 % NAS 52098 772 1,48 % 11459 22 % Procent relacji Liczba relacji Procent relacji bez wspólnych o różnych o różnych elementów wymiarach krotek wymiarach krotek dziedziny i wej. i wyj. wej. i wyj. przeciwdziedziny Tabela 1b 7 8 9 Benchmark Liczba relacji d-form Procent relacji d-form Livemoore 1044 90,94 % 0 UTDSP 425 60,71 % NAS 39776 76,35 % 10 11 12 Liczba relacji hybrydowych Procent relacji hybrydowych 0% 3 0,26 % 2 0,29 % 1 0,14 % 10 0,02% 48 0,09 % Liczba relacji, Procent relacji, których Rk których Rk wyzn. za pomocą wyzn. za pomocą równań równań rekurencyjnych rekurencyjnych Tabela 1c 13 14 15 Benchmark Liczba relacji, dla których wyznaczono Rk Procent relacji, dla których wyznaczono Rk Relacje, których Rk obliczono met. iterac. Livemoore 1145 99,74 % 3 UTDSP 698 99,71 % 2 NAS 52098 100 % 0 Tabela 1 przedstawia wyniki badań. W kolumnie 3 podane są liczby relacji, których krotki wejściowe i wyjściowe mają taki sam wymiar; R k dla tych relacji obliczone w oparciu o wzór (11). Kolumna 5 zawiera liczby relacji o rożnych wymiarach krotek wejściowej i wyjściowej, ich R k również jest obliczone za pomocą wzoru (11). Kolumna 15 przedstawia liczby innych relacji czyli takich, które nie można odnieść do żadnej z klas relacji rozpatrywanych w danym artykule. Na przykład, relacja o następującej postaci: R [l, i, k ] [l ' , i k 1, k ' ] : 1 l l ' loop i n 0 k ' 2 k k ' i 0 k 14 Włodzimierz Bielecki, Tomasz Klimek, Maciej Pietrasik nie należy ani do klasy d-form, ani do klasy relacji hybrydowych, jej tranzytywne domknięcie nie może być obliczone w oparciu o równania rekurencyjne ponieważ graf zależności reprezentowany przez R nie jest łańcuchem. R k dla tych relacji zostało obliczone metodą iteracyjną przedstawioną w podrozdziale 3.1. Z analizy wyników zawartych w Tabeli 1 nasuwają się następujące wnioski. Dla badanych benchmarków najwięcej relacji to są relacje, należące do klasy d-form. Ale również są relacje, których tranzytywne domkniecie nie może być obliczone w oparciu o znane podejścia, są to relacje, których tranzytywne domknięcie może być obliczone tylko na podstawie metody zawartej w danym artykule. Przeprowadzone badania również wskazują na to, że pozostaje grupa relacji (chociaż i nie liczna), dla których nie są znane nie iteracyjne podejścia pozwalające na obliczenia tranzytywnego domknięcia (przykład takiej relacji podany jest wyżej). Celem naszych przyszłych badań jest opracowanie uniwersalnej nie iteracyjnej metody pozwalającej na obliczenie tranzytywnego domknięcia dowolnej afinicznej relacji zależności. 5. Podsumowanie Przedstawiliśmy w artykule sposoby obliczenia domknięcia przechodniego sparametryzowanych relacji nie należących do klasy relacji d-form. Do takich relacji należą relacje, których ograniczenia tranzytywnego domknięcia mają nieliniowe wyrażenia oraz relacje hybrydowe czyli takie, których część odpowiadających sobie składowych krotki wejściowej i wyjściowej jest charakterystyczna dla relacji d-form [9], a pozostała pozwala na zastosowanie techniki opartej na utworzeniu i rozwiązaniu układu równań rekurencyjnych [7]. Przedstawione podejścia pozwalają na rozszerzenie możliwości obliczania tranzytywnego domknięcia relacji, a znaczy znajdowanie równoległości dla większego spektrum pętli programowych. Bibliografia [1] B. Boigelot. Symbolic Methods for Exploring Infnite State Spaces. PhD thesis, Universite de Liµege, 1998. [2] E. Nuutila. Efficient Transitive Closure Computation in Large Digraphs, Mathematics and Computing in Engineering Series No. 74 PhD thesis Helsinki University of Technology [3] P. Feautrier, Some Efficient Solutions to the Affine Scheduling Problem, Part I. OneDimensional Time, International Journal of Parallel Programing, Vol 21(5), 1992 [4] P. Feautrier, Some Efficient Solution to the Affine Scheduling Problem, Part II, MultiDimensional Time, International Journal of Parallel Programing, Vol 21(6), 1992 [5] T. Cormen, C. E. Leiserson, R. Rivest, Introduction to Algorithms, The MIT Press, 2001 [6] W. Bielecki, R. Drążkowski, Approach to building free schedules for loops with affine dependences represented with a single dependence relation, WSEAS Transactions on Computers, Issue 11, Volume 4, 2005 [7] W. Bielecki, T. Klimek, K. Trifunovič, Calculating Exact Transitive Closure for a Normalized Affine Integer Tuple Relation, Electronic Notes in Discrete Mathematics 33 (2009) 7–14 [8] W. Bielecki, T. Klimek, K. Trifunovič, Obliczenie potęgi k znormalizowanej afinicznej relacji, Metody Informatyki Stosowanej Nr 2/2008 (Tom 15) Obliczenie tranzytywnego domknięcia sparametryzowanych relacji zależności… 15 [9] W.Kelly, W. Pugh, E. Rosser, T. Shpeisman, Transitive clousure of infinite graphs and its applications, Languages and Compilers for Parallel Computing, 1995 [10] W. Kelly, V. Maslov, W. Pugh, E. Rosser, T. Shpeisman, D. Wonnacott, The Omega library interface guide, Technical Report CS-TR-3445, Dept. of Computer Science, University of Maryland, College Park, March 1995 [11] http://mathworld.wolfram.com/RecurrenceEquation.html [online] [Dostęp 15.04.2009] [12] http://www.netlib.org/benchmark/livermore [online] [Dostęp 30.03.2009] [13] http://www.nas.nasa.gov/Software/NPB [online] [Dostęp 03.04.2009] [14] http://www.eecg.toronto.edu/~corinna/DSP/infrastructure/UTDSP.html [online] [Dostęp 10.04.2009] Metoda steganograficzna na bazie wprowadzenia dodatkowego bitu danych medialnych Larisa Dobryakova, Evgeny Ochin Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: Into the container-original it is introduced the additional low-order digit which is equal to high (signed) bit. This additional low-order digit is non-significant, that is it does not bring distortions in the container-original. Applying procedure of importation of the stego-message in this bit we don’t bring distortions in the container-original. Keywords: steganography, LSB, additional bit, message embedding, container-original, container-result 1. Wprowadzenie Steganografia – nauka zajmująca się ukrytym przesyłania danych, przy której ukrywa się sam fakt przesyłania danych. W odróżnieniu od kryptografii, gdzie obserwator potrafi ustalić, czy jest przesyłana wiadomość zaszyfrowanym tekstem, metody steganografii pozwalają na przesyłanie poufnej informacji niepostrzeżenie dla osób obcych. W związku z obecnym rozwojem techniki obliczeniowej i szybkich kanałów przesyłania informacji pojawiły się nowe metody steganograficzne, których podstawą są informacje zawarte w plikach komputerowych [1]. W steganografii komputerowej istnieją dwa główne rodzaje plików: stego-wiadomość (ukrywana wiadomość) i kontener – plik, który używa się do ukrycia w nim wiadomości. Początkowy stan kontenera, gdy jeszcze nie zawiera ukrytej informacji, nazywa się kontenerem–oryginałem, a konieczny stan kontenera, gdy już zawiera stego-wiadomość, nazywa się kontenerem–rezultatem1. W charakterze kontenera-oryginału często wykorzystuje się różne pliki medialne, na przykład, pliki obrazu, dźwięku, wideo i inne. Wbudowanie stegowiadomości w kontener idzie w parze z pewnymi zniekształceniami danych medialnych, jednak charakter zniekształceń musi być minimalny, aby słuchacz (lub widz), nie zauważył pogorszenia jakości danych, zawartych w pliku medialnym. Wzrok i słuch człowieka nie odróżnia nieznacznych zmian w kolorach obrazu lub w jakości dźwięku [2, 3, 4, 6]. Wyróżnia się dwie klasy metod wbudowania (dodawania2) stego-wiadomości w kontener [7]. 1 W literaturze mozna znaleść „stego-plik, stegoobiekt”. W ramach danego artykułu wykorzystamy słowo„kontener-rezultat”, dlatego, że po-pierwszej, trzeba było w tekscie artykułu rozróżnić i podkreślić takie pojęcia kontenera do wbudowania wiadomości i po wbudowaniu, po-drugiej takie pojęcia najcięściej sa używanie w literaturze angielskiej, po-trzeciej pod pojęciem „stego-plik, stegoobiekt” można zrozumieć jak kontener-oryginał, tak i kontenerar-rezultat lub w niektórych przypadkach stego-wiadomość. 2 Słowo „wbudowanie” jest najbardziej często stosowane przy opisie metod ukrywania informacji w literaturze polskiej. Metody Informatyki Stosowanej, nr 2/2009 (19), s. 17-22 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 18 Larisa Dobryakova, Evgeny Ochin 1. Klasa metod zniekształcających. Klasa ta charakteryzuje się pewnymi zniekształceniami kontenera. 2. Klasa metod niezniekształcających. Metody tej klasy nie zniekształcają kontenera. Jedną z najbardziej znanych zniekształcających metod wbudowywania stegowiadomości w kontener jest zamiana najmniej znaczących bitów danych medialnych (Least Significant Bit – LSB) na odpowiednią dwójkową stego-wiadomość. Metodę tę można wyjaśnić następująco. Niech kontener-oryginał przedstawia I-elementowy wektor liczb dwójkowych Npozycyjnych, które reprezentowane są w kodzie uzupełniającym i opisują pewne dane audio: N 2 Di di , N 1 2 N 1 d i , n 2n , i 0,1,..., I 1. (1) n 0 gdzie di ,n {0,1} – n-ta cyfra dwójkowa i-tej próbki kontenera-oryginału, di , N 1 – znak i-tej próbki kontenera-oryginału ( di , N 1 0 dla liczb nieujemnych 0, di , N 1 1 dla liczb ujem- nych), przy czym: 2 N 1 Di (2 N 1 1). (2) Na przykład, dla N=8 , zakres liczb reprezentowanych przez Di wynosi 128 Di 127 . Stego-wiadomość tekstową przedstawimy w postaci wiersza bitowego długości K bitów3: s0 s1 sk sK 1 , sk {0,1} . (3) Oznaczmy kontener-rezultat jako: N 2 Di di, N 1 2 N 1 di,n 2n , i 0,1,..., I 1, (4) n0 gdzie di,n+ {0,1} – n-ta cyfra dwójkowa i-tej próbki kontenera-rezultatu, di, N 1 – znak i-tej próbki kontenera-rezultatu. Istnieje wiele różnych metod częściowej albo pełnej zamiany najmniej znaczących bitów di ,0 danych medialnych bitami stego-wiadomości. Najbardziej znany algorytm [5, 8] wbudowania stego-wiadomości w kontener można opisać następująco: N 2 N 1 D s d 2 di ,n 2n , i i i , N 1 n 1 D D , i K ,..., I 1 i i i 0,1,..., K 1 (5) Stego-wiadomość zamienia najmniej znaczące bity pierwszych K próbek konteneraoryginału, co doprowadza do pewnych zniekształceń tego kontenera. 3 W literaturze mozna znaleść oznaczenie wierszy bitów jako s0 , s1 , sk , , sK 1 , jednak w ramach danego artykułu korzystamy oznaczenie s0 s1 sk sK 1 dlatego, że w literaturze anglojęzycznej najczęściej używa się opis ciągu bitów postaci s0 s1 sk sK 1 , na przykład 011100011 itd. Metoda steganograficzna na bazie wprowadzenia dodatkowego bitu danych medialnych 19 Dlatego, że zniekształceniom poddają się tylko najmniej znaczące bity konteneraoryginału, to największa względna wartość zniekształceń jednej próbki kontenera-oryginału równa jest 2 N , a średnia względna wartość zniekształceń jednej próbki określa się jako: e 2 N K K 1 i 0 Di Di 2 N K K 1 d i 0 i ,0 di,0 (6) Na przykład, dla N 8 , w przypadku zniekształcenia K / 2 próbek, otrzymamy 28 K e 29 0.2 . K 2 Rozpatrzymy jeszcze jedno podejście do oceny zniekształceń jednej próbki konteneraoryginału. Możliwe są tylko cztery kombinacje4 wartości najmniej znaczących bitów konteneraoryginału di ,0 oraz kontenera-rezultata di,0 (zob. tab. 1). Tabela 1. Wartości LSB kontenera-oryginału di ,0 oraz kontenera-rezultata di,0 oraz prawdopodobieństwa je wystąpienia j di ,0 0 1 2 3 0 0 1 1 d i ,0 Prawdopodobieństwo pojawienia się pary di ,0 di,0 – p j Wartość zniekształcenia 0 1 0 1 1/ 4 1/ 4 1/ 4 1/ 4 0 1 1 0 ej Wartość zniekształcenia próbki Di 0 2 N 2 N 0 W przypadku braku jakiejkolwiek informacji apriorycznej o prawdopodobieństwach wartości 0 albo 1 w najmniej znaczących bitach kontenera-oryginału di ,0 i kontenerarezultata di,0 , można przewidzieć ich jednakowe prawdopodobieństwo. W takim przypadku średnia wartość zniekształceń jednego najmniej znaczącego bitu może być określona jako: 3 e ' e j / 4 (0 1 1 0 ) / 4 0.5 (7) j 0 a średnia względna wartość zniekształceń jednej próbki odpowiednio jako 0.5 2 N 2 ( N 1) . Na przykład, dla N 8 otrzymamy e' 2 (81) 29 0.2 , co zgadza się z oceną (6) dla przypadku równie prawdopodobnego pojawienia się par najmniej znaczących bitów kontenera-oryginału di ,0 i kontenera-rezultata di,0 . 2. Metoda zmniejszania zniekształceń danych medialnych W kontener-oryginał (1) wprowadźmy dodatkowy bit di ,1 . Wynik takiej operacji analogicznie z (1) można przedstawić jako: 4 Cztery kombinacje daje 2 bity: jeden od kontenera-oryginału i drugij od kontenera-rezultatu. 20 Larisa Dobryakova, Evgeny Ochin N 2 D 'i d 'i , N 1 2 N 1 d 'i ,n 2n , i 0,1,..., I 1 (8) n 1 Operacja modyfikacji kontenera (8) nie doprowadza do zniekształceń konteneraoryginału (1) dlatego, że: e 2 N K K 1 i 0 Di D 'i 2 N K K 1 d ' 0 d i 0 i ,0 (9) i ,0 0 W przypadku, gdy dodatkowy bit kontenera-oryginału jest równy 0, to dodatkowe zniekształcenie, wprowadzone w kontener-oryginał jest równe 0 – dla liczb nieujemnych i 0.5 – dla liczb ujemnych. Wtedy, gdy dodatkowy bit kontenera-oryginału jest równy 1, to dodatkowe zniekształcenie, wprowadzone do kontenera-oryginał jest równe 0.5 – dla liczb nieujemnych i 0 – dla liczb ujemnych. W celu minimalizacji zniekształceń kontenera-oryginału przy wprowadzaniu dodatkowego bitu (modyfikacji) nadamy wartości dodatkowego bitu kontenera-oryginału wartość znaku kontenera-oryginała d 'i ,1 d 'i , N 1 . Wbudujemy stego-wiadomość w zmodyfikowany kontener-oryginał (8). Analogicznie jak w wyrażeniu (5) przedstawimy kontener-rezultat jako: N 2 1 N 1 D ' s 2 d ' 2 d 'i , n 2n , i i i , N 1 n0 D ' D ' , i K ,..., I 1 i i i 0,1,..., K 1 (10) Stego-wiadomość wbudowuje się w dodatkowy bit d 'i ,1 pierwszych K próbek modyfikowanego kontenera-oryginału (8), co doprowadza do pewnych zniekształceń konteneraoryginału. Dlatego, że zniekształceniom jest poddawany tylko dodatkowy bit d 'i ,1 zmodyfikowanego kontenera-oryginału , to największa wartość względna zniekształceń jednej próbki kontenera-oryginału równa 2 ( N 1) , a średnia względna wartość zniekształceń jednej próbki może zostać określoną jako: e 2 ( N 1) K K 1 i 0 D 'i D 'i 2 ( N 1) K K 1 d ' i 0 (11) i , 1 Na przykład, dla N 8 , w przypadku zniekształcenia K / 2 próbek, otrzymamy 29 K e 210 0.1 . K 2 Możliwe są tylko kombinacje wartości dodatkowego bitu kontenera-rezultata d 'i ,1 opisane w tabeli 2. Tabela 2. Wartości LSB kontenera-rezultatu di,01 i prawdopodobieństwa ich wystąpienia j d 'i , N 1 d 'i ,1 0 1 2 3 0 0 1 1 0 1 0 1 wartości bitu d 'i ,1 Wartość zniekształcenia e j bitu d 'i ,1 0 1/ 2 1/ 2 0 0.5 0.5 2 2 ( N 1) 0 0 0 Prawdopodobieństwo p j Wartość zniekształcenia próbki D 'i 0 ( N 1) Metoda steganograficzna na bazie wprowadzenia dodatkowego bitu danych medialnych 21 W przypadku braku jakiejkolwiek informacji apriorycznej o prawdopodobieństwach wartości 0 albo 1 w najmniej znaczących bitach kontenera-rezultatu d 'i ,1 można przewidzieć ich jednakowe prawdopodobieństwo. W takim przypadku średnia wartość zniekształceń jednego najmniej znaczącego bitu może być określona jako: 3 e' e j / 4 (0 0.5 0.5 0 ) / 4 0.25 (12) j 0 a średnia względna wartość zniekształceń jednej próbki odpowiednio 0.25 2 N 2 ( N 2) . Na przykład, dla N 8 otrzymamy e' 2 (8 2) 210 0.1 , co zgadza się z oceną dla przypadku równoprawdopodobnego pojawienia się wartości 0 albo 1 w pozycji d 'i ,1 kontenera-rezultatu. 3. Zniekształcenia po wbudowaniu stego-wiadomości W tabeli 3 przedstawione zostały oceny średniej wartości zniekształceń jednej próbki kontenera-oryginału dla opracowanego algorytmu wbudowania wiadomości w dane medialne na podstawie wprowadzenia dodatkowego najmniej znaczącego bitu kontenera oraz dla algorytmu zamiany najmniej znaczących bitów pierwszych K próbek kontenera. Modelowanie wykonano w środowisku MATLAB. Tabela 3. Wartości zniekształceń kontenera-oryginału Algorytm Algorytm zamiany najmniej znaczących bitów pierwszych K próbek kontenera Algorytm na podstawie wprowadzenia dodatkowego bitu Średnia wartość zniekształceń jednej próbki kontenera 0.50 0.25 4. Wniosek W rezultacie wprowadzenia dodatkowego bitu danych medialnych kontener-rezultat D nie zniekształca się w stosunku do kontenera-oryginału, a przy warunku d 'i ,1 d 'i , N 1 modyfikowany kontener-oryginał D ' również nie zniekształca się. W modyfikowany kontenerrezultat D ' wnoszone są zniekształcenia, jednak je warośc jest dwa razy mniejsza, niż przy wykorzystaniu algorytmu zamiany najmniej znaczących bitów pierwszych K próbek kontenera-oryginału. W postaci badań praktycznych przeprowadzone zostało modelowanie na bazie Matlab, tzn. napisany został program realizujący algorytm i obliczona wartośc zniekształceń kontenera-oryginału. Wyniki praktyczne obliczenia znieksztalceń są w tab. 3, co potwierdza wyniki teoretyczne, opisane w tab. 2. Tekst programu zajmuje kilka stron, dlatego nie przyprowadzamy go w danem artykułu. Jednak czytelnik zainteresowany może zapytać kopię tego programu na adres [email protected] i otrzymać tekst programu bezpłatnie. 22 Larisa Dobryakova, Evgeny Ochin Jednem z najważniejszych problemów, związanych z steganografią jest stegoanaliza, przeznaczona dla odnalezienia ukrytych wiadomosci w plikach medialnych. W ramkach danego artykułu problem odnalezienia ukrytych wiadomosci nie rozpatruje się. Bibliografia [1] В.Г. Грибунин, И. Н. Оков, И.В. Туринцев. Цифровая стеганография. Москва. СОЛОН–Пресс. 2002. [2] Osborne C., van Schyndel R., Tirkel A. A Digital Watermark. IEEE International Conference on Image Processing. 1994. [3] Bender W., Gruhl B., Morimoto N., Lu A. Techniques for data hiding. IBM systems journal. 1996. Vol.35. № 3. [4] Petitcolas F., Anderson R., Kuhn M. Information Hiding – A Survey. Proceedings IEEE, Special Issue on Identification and Protection of Multimedia Information. 1999. Vol 87. №7. [5] Arnold M., Kanka S. MP3 robust audio watermarking. International Watermarking Workshop. 1999. [6] Fridrich J., Du R., Long M. Steganalysis of LSB encoding in color images. ICME, 2000. [7] Katzenbeisser S., Petitcolas F.A.P. (eds.). Information Hiding Techniques for Steganography and Digital Watermarking. Artech House, Norwood MA, 2000. [8] Kirovski D., Malvar H. Spread-Spectrum Watermarking of Audio Signals. IEEE Transactions on Signal Processing. Vol. 51. 2003. Analiza wielokryterialna w zarządzaniu strategicznym e-biznesu Luiza Fabisiak Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: Present work trying to make an effort of adaptation multiple criteria decision in formulating economy on-line store. Turn in study magnify problem of creating e-commerce strategy business. All methods and techniques scope in this subject was analyzed and methodic guidelines of proposal own salvation was shown. Results applied strategy analyze methods connected with multiple criteria decision aid in creating realistic e-commerce strategy was shown. Whole execute research closing by final conclusion. Keywords: online shop, e-commerce, AHP, multicriteria decision support 1. Wstęp Jednym z najszybciej rozwijających się działów gospodarki w skali globalnej jest w ostatnich latach handel elektroniczny. Usługi elektroniczne są procesem polegającym na dodawaniu większej funkcjonalności do istniejących programów użytkowych w handlu elektronicznym i biznesie elektronicznym. Celem usług elektronicznych jest zwiększenie satysfakcji klienta z usług internetowych, które są dostarczane. Różnorodność i bogactwo sieci powoduje, że klient ma ze swego komputera dostęp do olbrzymich ilości informacji i wielu ofert sprzedaży, co daje mu bezprecedensową władzę przy wyborze produktu. W nowej cyfrowej ekonomii równowaga sił została gwałtownie przechylona ze sprzedawcy do konsumenta. W tym środowisku znaczenie programów gromadzenia szczegółowych informacji o klientach i rozszerzonego wsparcia dla klientów nigdy nie było większe. Rozwój rynku e-commerce w Polsce jest wyrazem podążania przedsiębiorstw w kierunku gospodarki elektronicznej[1]. Coraz liczniejsze sklepy internetowe wzorują swoje rozwiązania na amerykańskich liderach, takich jak Amazon.com oraz Walmart.com. 2. E-commerce Handel w Internecie rozwija się w błyskawicznym tempie. Powszechna komputeryzacja oraz tani dostęp do Internetu w Stanach Zjednoczonych stworzyła podstawy do jego narodzin. W 1996 roku obroty firm prowadzących działalność w Sieci wyniosły 800 mln. USD, a z roku na rok wynosiły dziesięciokrotnie więcej (źródło: Forrester Research). Elektroniczny handel tworzy tzw. Nową Ekonomię – gospodarkę. Zagraniczni analitycy uważają, że handel w Internecie stanie się motorem stałego, szybkiego wzrostu gospodarczego w najbliższej latach [2]. Metody Informatyki Stosowanej, nr 2/2009 (19), s. 23-30 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 24 Luiza Fabisiak Stworzenie własnego sklepu zapewnia nieograniczone możliwości zarządzania jego parametrami. Wszystkie wykonywane operacje zależne są jedynie od woli przedsiębiorcy, jednocześnie nie wywołują wzrostu kosztów działania. Począwszy od programowania informatycznego, skończywszy na rozstawieniu towarów na elektronicznych półkach. Zasada działania sklepu internetowego jest dosyć skomplikowana i opiera się na wykorzystywaniu specjalistycznego oprogramowania. Schemat pojedynczej transakcji może wyglądać następująco: klient wchodząc na stronę internetowego sklepu danej firmy poszukuje interesującego go produktu. Może w tym celu skorzystać z wyszukiwarki produktów. Po znalezieniu interesującego go towaru zapoznaje się z jego opisem, wyglądem itp. Jeżeli produkt odpowiada jego oczekiwaniom to dodaje go do swojego koszyka, który towarzyszy mu od momentu wejścia na witrynę sklepu [3]. Sklep internetowy działa na podobnych zasadach co tradycyjny tzn. umożliwia klientowi zapoznanie się z towarem, dokonanie zakupu, zapłaty za zmówiony produkt. Najważniejszą różnicą jest to, że istnieje on tylko w Internecie w postaci wyspecjalizowanej witryny WWW oraz, że klient nie może otrzymać towarów fizycznych (książki, sprzęt elektroniczny itp.) bezpośrednio po dokonaniu zakupu lecz musi czekać na ich dostarczenie [4]. Jedną z zalet posiadania szerokiego asortymentu w sklepie internetowym jest możliwość przyciągnięcia większej liczby klientów i zwiększenie średniej wartości zamówienia. Zaindeksowane w wyszukiwarkach towary przyciągają klientów z całego świata. Liczba klientów jest ograniczona jedynie dostępem do Internetu i barierą językową [5]. Techniki marketingowe stosowane w sklepach internetowych, do których zaliczyć można np. cross-selling oraz systemy rekomendacji, polegające najczęściej na pokazaniu towarów, zakupionych przez klientów, którzy kupili oglądany towar („Klienci, którzy kupili towar A, kupili również:...”) [6]. System rekomendacji jest jedną z metod, które powodują, że towary rzadko zamawiane mogą zacząć sprzedawać się w dużych ilościach, jeżeli zostanie zamówiony taki towar kupując równocześnie bestseller [13]. Posiadanie długiego ogona pozycji asortymentowych, dającego możliwość szerokiego wyboru, nie tylko z hitów, ale również z niszowych pozycji nie dostępnych w tradycyjnych sklepach daje przewagę konkurencyjną na rynku [7]. Po wprowadzeniu systemu rekomendacji należy uwzględnić polecenie produktu tak aby było związane z aktualnie przeglądanym asortymentem, a przy polecaniu dodatkowym wybieranego towaru nie ograniczał się tylko do jednej strony produktu. Amazon.com kolejne produkty poleca na stronie wyświetlającej się po dodaniu produktu do koszyka, a także na stronie głównej koszyka. W ten sposób żaden fragment strony się nie marnuje, a sklep wykorzystuje do końca możliwości sprzedaży i ułatwia eksplorację serwisu. W sklepie internetowym amazon.com na stronie głównej znajdujemy sekcje z informacjami o produktach kupionych przez osoby, które w wyszukiwarkę wpisywały podobne zapytania. Tego typu mechanizmy są skuteczne, co ma znaczenie przy budowie zaufania klienta [8]. Pomiędzy pokazywaniem produktów kupowanych przez innych użytkowników, a produktów uzupełniających zachodzi ważna różnica. W pierwszym przypadku klienci nie czują się atakowani reklamą - ponieważ to informacja bazująca na wyborach innych klientów, czyli ich rekomendacje. Natomiast drugi przypadek to konkretna reklama - wyświetlanie więcej niż 3-4 produktów, która może być źle odbierane [7,8]. 3. Struktura informacyjna sklepu internetowego Ważną cechą sklepu internetowego powinna być wygoda i prosta w obsłudze, która umożliwia, że klient w trakcie transakcji, wyboru produktów potrafi się poruszać po sklepie w sposób intuicyjny. Elementem ułatwiającym nawigację po sklepie internetowym jest tzw. Analiza wielokryterialna w zarządzaniu strategicznym e-biznesu 25 belka nawigacyjna dająca możliwość przejścia do dowolnego działu sklepu (kategorii produktów), bez konieczności powrotu do strony startowej sklepu. Wszystkie analizowane sklepy posiadają ten atrybut. Poprawiające nawigację inne elementy to łącze do strony startowej sklepu, wgląd w zawartość koszyka oraz dostęp do wyszukiwarki[9]. Klient sklepu internetowego niejednokrotnie może mieć pytania związane np. z informacją dotyczącą dostawy towaru, formą zapłaty bądź bezpieczeństwem zakupów jakie posiada sklep. Dlatego istotne jest umieszczenie łącza do pomocy oraz FAQ (ang. Frequently Asked Questions), Atutem sklepu internetowego jest umieszczona w nim mapa serwisu, przedstawiająca wszystkie kategorie i grupy produktów. - atrybut taki posiada Amazon.com [8,14]. Sklepy internetowe są typową działalnością e-commerce. Za definicję sklepu internetowego można przyjąć stwierdzenie, że jest to strona WWW współpracująca z bazą danych realizująca przyglądanie, wybór i nabywanie określonego typu produktów. Każdy sklep internetowy powinien zapewniać realizację podstawowych funkcji w celu odpowiedniej komunikacji z klientem i osiągnięciu maksymalnych zysków ze sprzedaży. Można to osiągnąć przez odpowiednią realizację techniczną, która powinna zapewniać [10]: mechanizm uczenia się upodobań klienta, łatwy dostęp do artykułów zgrupowanych w grupach tematycznych i posiadających szczegółowy opis, podpowiadania klientowi oferty uzupełniających i komplementarnych, oferowanie sprzedaży wiązanej i promocyjnej, szybki proces kupowania przez tworzenie listy zakupowych, wyszukiwanie produktów, grup produktów, system rabatów opartych o indywidualne profile klienta, umowy handlowe, upusty ilościowe oraz promocyjne, zaawansowaną obsługę klienta, wyłącznie z komunikacją elektroniczną oraz personalizowaną stroną przedstawiającą historię transakcji, dużą skalowością systemu umożliwiającą integracje z innymi systemami [11]. Abstrahując od różnych znanych rozwiązań oraz podejść do budowy serwisu internetowego typu e-market, w niniejszej pracy została zaprezentowana struktura sklepu internetowego pod kontem określonych potrzeb klienta z uwzględnieniem podstawowych metodologicznych procedur projektowania struktury informacyjnej (Rys. 1). Rysunek 1. Schemat budowy sklepu internetowego Źródło: opracowanie własne na podstawie [12] 26 Luiza Fabisiak Schemat prezentuje dokonywanie zakupów realizowanych na zasadzie pełnego uwierzytelnienia danych klienta poprzez jego rejestrację i automatyzację w bazie danych serwera. Sytuacja umożliwia korzystanie z pełnej oferty sklepu internetowego, dopiero po procesie rejestracji i zalogowaniu się na serwer jednocześnie uwzględnia wiarygodność klienta co pozwala na bezpiecznie przeprowadzenie transakcji. Dodatkowo rejestracja umożliwia firmom na podglądanie zamówień klientów w zakresie ich zainteresowań, co pozawala na tworzenie określonych profili zakupów w postaci zbiorów danych konkretnych produktów realizowanych w ramach zaopatrzenia i dystrybucji. Wykorzystywanie tego rodzaju technik pozwala na odpowiednie dopasowanie ofert zakupu do indywidualnych potrzeb i oczekiwań klienta. Na prezentowanym rysunku (Rys. 1) sklepu internetowego uwzględniono i wprowadzono pojęcie tzw. informacji jawnych oraz informacji nie jawnych, gdyż w rzeczywistych relacjach pomiędzy konkretnym nabywcą a sklepem internetowym zostają zachowane pewne bariery pozwalające z jednej strony zachować dbałość oraz formę sprzedaży a z drugiej bezpieczeństwo danych osobowych klientów i zasoby on-line [12]. 4. Proponowane rozwiązanie Badania ukierunkowano na opracowanie procedury generowania wskazań strategicznych, a w konsekwencji wyboru produktu przez klienta, w połączeniu z ich ilościową reprezentacją. W tym celu połączony został proces formalnych mechanizmów agregacji, opartych na metodzie wielokryterialnego wspomagania decyzji. Zastosowana metoda hierarchicznej analizy problemu (ang. AHP – Analytic Hierarchy Process), wspomaga podejmowanie decyzji w obecności wielu kryteriów dla wybranych problemów decyzyjnych [15]. Metoda AHP ukazuje podejście wielokryterialne, oparte na strategii modelowania preferencji i przy założeniu porównywalności wariantów, uwzględniając specyfikę psychologicznych procesów wartościowania o charakterze hierarchicznym i relacyjnym. Jednocześnie metoda wspiera artykułowanie preferencji decydenta (lub oceniających) oraz wykorzystanie ich w procesie agregacji ocen [16]. Preferencje oceniających (decydujące o subiektywności ocen) stanowią istotę podejścia wielokryterialnego i są zjawiskiem naturalnym dla ocen dokonywanych przez człowieka, w odróżnieniu od pomiarów o charakterze obiektywnym [17]. Wyniki otrzymane za pomocą tej metody są wartościami liczbowymi, określającymi hierarchię możliwych wariantów wg zbiorczej (wielokryterialnej) jakościowej oceny. Występujące w modelu czynniki ryzyka, stanowią kryteria oceny wariantów środowiska sklepu internetowego. Wariantami decyzyjnymi są projektowe lub realizacyjne rozwiązania, który w efekcie zapewnia odpowiednie zastosowanie strategii przedsiębiorstwa. W ramach metody AHP dokonano dekompozycji problemu decyzyjnego, w postaci hierarchicznej struktury decyzyjnej (Rys. 2): cel nadrzędny (otoczenie środowiska), cele pośrednie (główne czynniki składające się na wybór danego rodzaju filmu), czynniki cząstkowe (wybrane kryteria) i warianty decyzyjne (rozwiązanie projektowe lub realizacyjne). Proponowaną procedurę przedstawiono na przykładzie sklepu internetowego. W tym celu zastosowano metodę AHP, na podstawie przeprowadzonej serii eksperymentów badawczych, ujawniono celowość prezentowanej multimetody. Analiza wielokryterialna w zarządzaniu strategicznym e-biznesu 27 Rysunek 2. Schemat struktury hierarchicznej zadania w metodzie Saaty’ego Źródło: opracowanie własne 5. Weryfikacja empiryczna proponowanego rozwiązania W praktyce sklasyfikowano wszystkie czynniki mające wpływ na bieżącą i przyszłą pozycję sprzedaży danych produktów w sklepie internetowym. Istnieją dwa kryteria, które zostały sklasyfikowane: zewnętrzne w stosunku do e-sklepu, które posiadają również charakter uwarunkowań wewnętrznych oraz wywierający wpływ negatywny lub pozytywny na zakupy w Internecie przez użytkowników. Tabela 1. Analiza oceny kupujących poprzez wybrane kryteria Lp. WYBRANE KRYTERIA 1. 2. 3. 4. WIEK ZAWÓD PŁEĆ MIEJSCE ZAMIESZKANIA SUMA RANKING = WAGA x ilość przyznanych punktów (1-9) Thriller Akcja Komedia Animacja Punkty Punkty Punkty Punkty 5 3,4 3 2,04 5 3,4 5 4,08 1 0,23 4 0,92 8 1,84 3 0,69 5 2,8 4 2,24 4 2,24 6 3,36 6 3,36 1 0,56 6 3,36 5 2,8 9,79 5,75 10,84 10,93 Źródło: opracowanie własne Kolejno zdefiniowano strukturę hierarchii, odzwierciedlającej problem. Do oceny analizy zakupów przez Internet wystarcza przyjęcie hierarchicznego modelu o podstawowej strukturze, składającej się z najwyżej czterech poziomów czyli celu nadrzędnego, celu głównego, czynników cząstkowych oraz wariantów decyzyjnych. W modelu hierarchicznym otoczenie środowiska internetowego jest skutkiem zgodnym z określonymi celami cząstkowymi, jakie zostały opisane przez zdefiniowane atrybuty oraz związane z nimi kryteria oceny. System kryteriów oceny całego otoczenia środowiska, w którym zostało przedstawione podejście analityczne poprzez wybór odpowiednich czynników ma zatem strukturę hierarchiczną. Dla celów kolejnych analiz wyznaczono ważność wybranych alternatywnych wariantów strategii sklepu internetowego. Wyznaczony wektor priorytetów znormalizowano, i pozwoliło na opracowanie ilościowej reprezentacji oraz rankingu klientów. Wyniki badań na Wykresie 1 i 2. 28 Luiza Fabisiak Wykres 1. Ogólne pierwszeństwo alternatywnych strategii – priorytety Źródło: opracowanie własne Wykres 2. Ogólne pierwszeństwo alternatywnych strategii – Ocena użyteczności wariantów Źródło: opracowanie własne Przez agregacja ocen w ramach rekomendacji użytkowników sklepów internetowych w danym otoczeniu środowiskowym stanowi podstawę do uogólnienia wyników w postaci tabeli danych zagregowanych, która jest postawą utworzenia zredukowanej struktury wykresu, poddającej oceny końcowe wyznaczone dla kryteriów głównych, czynników i wariantów. Interpretując wyniki powyższych analiz można stwierdzić, że w większości przypadków sklepy internetowe kontaktuje się ze środowiskiem neutralnym. Może to prowadzić do wniosków, że aby osiągnąć wszystkie założone cele, będzie potrzebny odpowiedni nakład pracy i środków. Z przeprowadzonej analizy wynika, że sklepy internetowe powinny zastosować odpowiednie strategie: koncentracji, rozwoju rynku, rozwoju produktu przeznaczony do grupy docelowej klientów. Sklep internetowy może przyjąć jedną z tych strategii sugerując się statystyką zakupów lub zastosować wszystkie naraz docierając do wszystkich klientów. Stosowanie się do powyższych strategii pozwoli zdobyć lepszą sprzedawalność jak również pozyskać nowych klientów. Jak wynika z danych, sklep jest zorganizowany w sposób zapewniający jej sprawne istnienie na rynku internetowym, a także jest odpowiednio zabezpieczona przed konkurencją. Analiza wielokryterialna w zarządzaniu strategicznym e-biznesu 29 Wykres 3. Ukazanie czynników wybranych kryteriów za pomocą pierwszeństwa wag Źródło: opracowanie własne 6. Podsumowanie Przedstawiona w niniejszej pracy procedura badawcza obejmuje analizę decyzyjną w sklepie internetowym. Aparat wielokryterialnego wspomagania decyzji, stanowią część projektowanych strategii innowacyjności. Zastosowana metoda AHP posłużyła do kwantyfikacji ilościowej poszczególnych składników strategii, co stanowi bardzo intuicyjny i wygodny aparat matematyczny. Warto jednocześnie zaznaczyć, że prezentowany zestaw metod cechuje komplementarny charakter. Wykorzystana w pracy koncepcja definiowania preferencji pozwala na łatwe powiązanie wyników badań z określeniem wartości preferencji po- 30 Luiza Fabisiak równywanych wariantów według przyjętych kryteriów. Uogólniając wyniki badań należy wskazać, że prezentowane rozwiązanie może stanowić efektywne narzędzie analityczne wykorzystywane w procesie zarządzania strategicznego. Bibliografia [1] Kołodko G. W. Nowa gospodarka, Redakcja naukowa, Warszawa 2001 [2] http://www.wswebstyle.com [3] Niedźwiedziński M. Globalny handel elektroniczny. Wydawnictwo Naukowe PWN 2004 [4] Laudon K. C., Traver C. G. E-Commerce. Wydawnictwo Prentice Hall 2006 [5] Beier F., Rutkowski K. Logistyka. Warszawa Szkoła Główna Handlowa 1995 [6] Maguire J. Ten Tips for Getting Customers to Up the Order, December 15, 2004 [7] Chodak G. Symulator obrotów magazynowych w sklepie internetowym - propozycja implementacji, Gospodarka Materiałowa i Logistyka 2004 [8] http://www.amazon.com [9] Drygas P. Polski detaliczny handel internetowy, Marketing i Rynek, nr 2/2005, [10] Gregor B., Stawiszyński M. E-commerce. Oficyna Branta, Bydgoszcz, Łódź 2002 [11] Rosenfeld L., Mougille P. Architektura informacji w serwisach internetowych, Wydawnictwo Helion, Gliwice 2003 [12] Teluk T. E-biznes Nowa gospodarka, Wydawnictwo Helion, Gliwice 2002 [13] Wojciechowski M. Odkrywanie wzorców zachowań użytkowników WWW. Materiały konf. POLMAN'99, OWN, Poznań 1999 [14] Linder G., Smith G. Amazon.com recommendations. Item-to-item Collaborative Filtering, IEEE Internet Computing 2003 [15] Saaty T. L., The Analytic Hierarchy Process, New York MacGraw Hill. 1980. [16] Saaty T. L., Vargas L. G. The Analytic Hierarchy Process Series, University of Pittsburg 1990. [17] Saaty T. A scaling method for priorities in hierarchical structures, J of Mathematical Psychology, 15, 1977. [18] Tyszka T. Analiza decyzyjna i psychologia decyzji, PWN, Warszawa 1986. Automatyczne sprawdzanie i weryfikacja statusu algorytmów kryptograficznych wykorzystywanych w infrastrukturze klucza publicznego Tomasz Hyla Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: Currently a lot of services is using a PKI infrastructure for digital signatures, documents’ time stamping, websites identity verification and many others. It is important to use proper, recognized cryptographic algorithms. Recommended Cryptographic Algorithm Status List provides information about recognized algorithms by information providers grouped by countries. The list can be used as a secondary trust source during verification of a digitally signed document. The Cryptographic Algorithm Status Operator manages the list and gathers information from information sources. The operator can be queried for recognized algorithms and can be used to verify the validity of an algorithm in certain period of time. Keywords: cryptographic algorithms, PKI, long-term storage, trust, digital signature 1. Wprowadzenie Obecnie wykorzystywanych jest wiele usług wykorzystujących infrastrukturę klucza publicznego (PKI), począwszy od podpisu elektronicznego do znakowania czasem dokumentów. Użytkownicy wszystkich usług wykorzystujących PKI muszą ufać głównym, zaufanym urzędom certyfikacji wystawiającym certyfikaty kwalifikowane. Głównym źródłem zaufania jest sprawdzenie ścieżki certyfikacji. Dodatkowym źródłem zaufania może być także określona w standardzie ETSI lista statusu zaufanych usług. Ważnym problemem związanym z wszystkimi usługami PKI jest stosowanie odpowiednio silnych algorytmów kryptograficznych uniemożliwiających ich złamanie w czasie ważności konkretnych usług. W artykule została przedstawiona propozycja Centrum Informacji o Algorytmach Kryptograficznych (CIoAK), które zawiera Listę Polecanych Algorytmów Kryptograficznych (LPAK). Lista LPAK umożliwia użytkownikom automatyczne sprawdzanie aktualnie polecanych algorytmów lub weryfikacje tego czy były polecane w określonym czasie. Obecnie informacje na temat polecanych lub wymaganych algorytmów i ich parametrów jest rozproszona po różnych dokumentach. Zawierają ją standardy międzynarodowe oraz różne akty prawne w różnych państwach. Rozdział 2 porusza problem zaufania w infrastrukturze klucza publicznego. Rozdz. 2.1 zawiera informacje o infrastrukturze oraz o usługach PKI. Następnie został przedstawiony problem ważności algorytmów kryptograficznych w ujęciu norm międzynarodowych i legislacji narodowych (rozdz. 2.2) oraz lista statusu zaufanych usług (rozdz. 2.3), mogąca stanowić drugorzędne źródło zaufania. Rozdział 3 prezentuje proponowane rozwiązanie na Metody Informatyki Stosowanej, nr 2/2009 (19), s. 31-40 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 32 Tomasz Hyla które składa się CIoAK (rozdz. 3.2) oraz LPAK (rozdz. 3.3), która stanowi uzupełnienie listy statusów zaufanych usług. W rozdz. 3.4 przedstawiony został sposób dostarczania danych do CIoAK oraz protokół do komunikacji z użytkownikami. Rozdział 4 zawiera podsumowanie i dyskusje. 2. Zaufanie w PKI 2.1. Usługi infrastruktury klucza publicznego Podpis cyfrowy to informacja dołączona do danych, umożliwiająca weryfikację ich autentyczności i integralności. Jedną z technik tworzenia podpisu cyfrowego jest szyfrowanie kluczem prywatnym skrótu z podpisywanego dokumentu. Każdy podpis cyfrowy składany przez tego samego użytkownika jest inny (wyjątek stanowi podpisywanie tego samego dokumentu z wykorzystaniem paddingu nierandomizowanego). Natomiast podpis własnoręczny powinien być zawsze taki sam. Podpis cyfrowy jest wielokrotnie trudniejszy do podrobienia [1] od podpisu własnoręcznego. Aby stwierdzić, że dany klucz publiczny jest przypisany do konkretnej osoby konieczna jest Infrastruktura Klucza Publicznego (ang. PKI – Public Key Infrastructure). Infrastruktura PKI, czyli oprogramowanie, sprzęt, polityki, protokoły i prawo potrzebne aby Alicja mogła zweryfikować podpis cyfrowy Boba [1, 2], jest wykorzystywana obecnie powszechnie w Internecie (np. do bezpiecznych połączeń ze stronami internetowymi banków). W wielu państwach podpis cyfrowy złożony z użyciem PKI jest uznawany za równoważny podpisowi własnoręcznemu. Zaufanie do ważności certyfikatów cyfrowych, potwierdzających przynależność klucza publicznego do osoby fizycznej, wynika z zaufania do urzędu certyfikacji (ang. CA – Certification Authority) wydającego dany certyfikat. Proces sprawdzania ważności podpisu cyfrowego polega na sprawdzeniu skrótu dokumentu ze skrótem odszyfrowanym z użyciem klucza publicznego zawartego w certyfikacie. Następnym krokiem jest sprawdzenie łańcucha certyfikatów (tworzących tzw. ścieżkę certyfikacji), aż do certyfikatu głównego, zaufanego urzędu certyfikacji oraz sprawdzenie listy certyfikatów unieważnionych (ang. CRL – Certificate Revocation List). W infrastrukturze PKI pierwszorzędne źródło zaufania do ważności podpisu cyfrowego stanowi właśnie sprawdzenie ścieżki certyfikacji. Dzięki wykorzystaniu infrastruktury PKI istnieje możliwość stwierdzenia integralności, autentyczności, poufności oraz niezaprzeczalności pochodzenia dokumentów cyfrowych. Ważność certyfikatów trwa zwykle dwa lata. W przypadku gdy dokument musi być przechowywany przez dłuższy okres czasu konieczny jest jeden z sposobów przedłużenia okresu ważności podpisu cyfrowego, np. z użyciem znacznika czasu. Przykładowo, dokumenty medyczne wchodzące w skład elektronicznego rekordu zdrowotnego (ang. EHR – Electronic Health Record) muszą być przechowywane przez całe życie pacjenta, co wielokrotnie przekracza ważność certyfikatów. Istnieje kilka metod opisanych w [3-5] pozwalających na przedłużenie ważności dokumentów medycznych. 2.2. Ważność algorytmów kryptograficznych Wszystkie usługi wykorzystujące infrastrukturę klucza publicznego wykorzystują algorytmy kryptograficzne. Z uwagi na szybki przyrost mocy obliczeniowej komputerów oraz postęp w dziedzinie kryptografii, projektanci systemów PKI muszą określić czy dany algorytm uważany jest za bezpieczny i czy spełnia wymogi prawne, aby podpis cyfrowy był równoważny odręcznemu. W różnych państwach mogą być polecane/wymagane różne algorytmy o różnych parametrach. Na przykład w Polsce załącznik nr 3 Rozporządzenia Rady Automatyczne sprawdzanie i weryfikacja statusu algorytmów kryptograficznych… 33 Ministrów [6] do ustawy o podpisie elektronicznym [7] zawiera informacje na temat minimalnych wymagań dotyczących algorytmów szyfrowych służących do składania podpisu elektronicznego. Natomiast specyfikacja techniczna ETSI TS 102 176-1 [8] zawiera dokładne zalecenia na temat stosowania algorytmów w infrastrukturze klucza publicznego. W normie ETSI TS 102 176-1 zdefiniowano listę polecanych algorytmów funkcji skrótu oraz listę algorytmów używanych do podpisu elektronicznego, a także ich kombinacji nazwanych zestawem do podpisu (ang. signature suite). Głównymi parametrami powodującymi włączenie danego algorytmu do tej specyfikacji technicznej są: uznanie algorytmu za bezpieczny, popularność stosowania algorytmu, łatwa możliwość referencji do jego specyfikacji. W przypadku, gdy algorytm nie jest umieszczony na liście nie oznacza, że nie można go używać, a oznacza że algorytm nie spełnił wyżej wymienionych wymagań. Można założyć rozsądny poziom bezpieczeństwa jeżeli polecane algorytmy zostaną użyte z wykorzystaniem polecanych parametrów w kontekście ich rekomendacji. Lista tych algorytmów jest aktualizowana co pewien okres czasu aby uwzględnić zmiany w dziedzinie kryptografii. 2.3. Lista statusu zaufanych usług Standard ETSI TS 102 231 [9] zawiera informacje o sposobie tworzenia list statusu zaufanych usług (ang. TSL - Trusted-service Status List) udostępniających informacje na temat statusu zaufanych usług, aby zainteresowane strony mogły ustalić czy usługa zaufania (ang. trust service) działała lub działa według uznanych zasad (ang. recognized scheme) lub czy działała według uznanych zasad w czasie w którym transakcja zależna od tej usługi miała miejsce. Celem TSL jest określenie zharmonizowanego sposobu publikacji informacji na temat statusu usług zaufanych i ich dostawców. Listy TSL są zarządzane przez operatorów, którzy postępują według określonych zasad oceny. W ETSI TS 102 231 zdefiniowano tylko typ, rodzaj i znaczenie informacji które mogą być prezentowane za pomocą TSL, natomiast nie definiuje w jaki sposób informacje mają być zbierane przez operatorów. Standard nie określa jakich zasad oceny operator powinien użyć w celu ustalenia statusu usługi zaufanej, którą nadzoruje. Nie definiuje także jak status lub informacje powiązane z zasadami powinny być prezentowane poza kontekstem TSL, np. na stronie zasad. Operator TSL musi być w stanie dostarczać informacje na temat jej zawartości w formie do odczytu przez użytkownika, która jest łatwa do pozyskania i umożliwia drukowanie, oraz w formie do przetwarzania maszynowego umożliwiającej automatyczną weryfikację statusu. Informacje zawarte w TSL powinny stanowić drugorzędne źródło zaufania; podstawowe źródło zaufania powinno wynikać ze sprawdzenia ścieżki certyfikacji. Lista TSL jest podpisana cyfrowo w celu umożliwienia sprawdzenia autentyczności i oprócz aktualnego statusu usług zaufanych musi zawierać także informacje o historii ich statusu. TSL składa się z 4 głównych komponentów: 1. Zawierającego informacje na temat zasad wydawania (ang. issuing scheme). 2. Identyfikującego TSP (ang. Trusted-service Provider) uznawanego przez zasady. 3. Identyfikującego usługi dostarczane przez TSP i ich aktualny status. 4. Zawierającego historię statusu usług. 34 Tomasz Hyla 3. Informacja o statusie algorytmu kryptograficznego 3.1. Problem dostępności informacji o polecanych algorytmach kryptograficznych Obecnie w większości systemów infrastruktury klucza publicznego rodzaj wykorzystywanych algorytmów jest ustalany podczas projektowania systemu lub podczas działania systemu przez eksperta uprawnionego do wprowadzania zmian w wykorzystaniu algorytmów. Informacje na temat polecanych lub wymaganych algorytmów i ich parametrów zawierają standardy międzynarodowe (np. przedstawiony w rozdz. 2.2 standard ETSI) oraz różne akty prawne w różnych państwach (np. w Polsce Rozporządzenie do ustawy o podpisie elektronicznym [6]). Przykładowo, polityka stosowania kryptografii w ochronie zdrowia w Wielkiej Brytanii została opisana przez A. Donaldsona [10]. Podpis elektroniczny jest zwykle równoważny prawnie podpisowi odręcznemu, jeżeli w danym państwie istnieją odpowiednie akty prawne i spełnione są zawarte w nich wymagania odnośnie algorytmów. Wiedza na temat stosowania konkretnych algorytmów jest rozproszona po różnych dokumentach. W przypadku tworzenia systemu np. dla Turkmenistanu, należałoby przeszukać tamtejsze ustawodawstwo co może być kosztowne i problematyczne. Dodatkowym problemem w przypadku systemów archiwizujących dokumenty podpisane elektronicznie jest konieczność, w zależności od przyjętego rozwiązania, ponownego (co pewien okres) podpisania czy znakowania czasem. W długim okresie czasu musi co pewien czas następować zmiana algorytmów lub ich parametrów. Na przykład wg specyfikacji Evidence Record Syntax [11] konieczność zmiany algorytmu funkcji skrótu wymaga mechanizmów innych niż te, które są wbudowane w protokół wymiany informacji. W przypadku weryfikowania archiwalnych dokumentów podpisanych cyfrowo wiedza na temat polecanych algorytmów w przeszłości może stanowić dodatkowe źródło zaufania. W dalszej części niniejszego rozdziału została przedstawiona propozycja Centrum Informacji o Algorytmach Kryptograficznych (CIoAK), które zawiera Listę Polecanych Algorytmów Kryptograficznych (LPAK) (będącą odpowiednikiem TLS) oraz umożliwia użytkownikom automatyczne sprawdzanie aktualnie polecanych algorytmów lub weryfikacje tego czy były polecane w określonym czasie. 3.2. Centrum Informacji o Algorytmach Kryptograficznych Centrum Informacji o Algorytmach Kryptograficznych (CIoAK) (rys. 1) zajmuje się zarządzaniem informacjami na temat obecnych wymagań poszczególnych państw oraz instytucji standaryzacyjnych dotyczących algorytmów używanych w różnych usługach wykorzystujących infrastrukturę klucza publicznego. Centrum zawiera Listę Polecanych Algorytmów Kryptograficznych (LPAK), Listę Zaufanych Ekspertów (LZE) oraz Listę Subskrybentów (LS). LPAK przechowuje informację o aktualnie polecanych algorytmach wraz z ich parametrami oraz o historii polecanych algorytmów. LZE zawiera listę zaufanych, zatwierdzonych ekspertów, którzy mogą przesyłać informację o przełamaniu algorytmów, a LS zawiera listę subskrybentów informowanych o przedterminowej utracie ważności algorytmu. Automatyczne sprawdzanie i weryfikacja statusu algorytmów kryptograficznych… 35 Rysunek 1. Centrum Informacji o Algorytmach Kryptograficznych Dane o algorytmach są przesyłane przez organy tworzące prawo w poszczególnych krajach oraz przez narodowe i międzynarodowe instytucje standaryzacyjne. Dodatkowo informacje o algorytmach mogą umieszczać pracownicy CIoAK na podstawie norm czy aktów prawnych. Lista LPAK jest podpisana cyfrowo przez CIoAK i jest prezentowana na stronie WWW. CIoAK udostępnia usługi pozwalające na przetwarzanie maszynowe LPAK opisane w rozdz. 3.4. 3.3. Lista Polecanych Algorytmów Kryptograficznych Lista Polecanych Algorytmów Kryptograficznych (LPAK) przechowuje informacje na temat algorytmów polecanych lub wymaganych przez instytucje normalizujące oraz przez narodowe akty prawne. W skład przechowywanych algorytmów wchodzą następujące rodzaje algorytmów: algorytmy funkcji skrótu (np. sha-1, Whirlpool), algorytmy podpisu (np. rsa, dsa), algorytmy generowania kluczy i parametrów, generatory liczb losowych, algorytmy tworzenia padding’u oraz zestawy algorytmów wykorzystywanych w certyfikatach kluczy publicznych (ang. signature suite). Lista LPAK jest wydawana co pewien określony okres czasu, np. co 1 dzień. Model logiczny LPAK został zaprezentowany na rys. 2. Konstrukcja listy jest wzorowana na konstrukcji listy TSL określonej w ETSI TS 102 231 [9]. LPAK jest podpisana cyfrowo przez wystawcę. Lista zawiera, dla każdego dostawcy informacji o algorytmach, informacje o nim oraz listę algorytmów, które były lub są polecane czy wymagane (normy zwykle polecają wykorzystanie jakiegoś algorytmu, natomiast akty prawne wymagają stosowania algorytmów o określonych parametrach). Dostawcy informacji są uporządkowani według państw. Natomiast instytucje tworzące normy międzynarodowe są zebrane osobno, gdyż jeżeli dane państwo uznaje daną instytucję to jednocześnie uznaje jej normy. Każde państwo zawiera informacje o uznawanych przez siebie instytucjach międzynarodowych. Konstrukcja listy jest zoptymalizowana pod kątem efektywnego dostępu do polecanych algorytmów w danym państwie. Wyodrębnienie instytucji międzynarodowych pozwala uniknąć powtarzających się wpisów o danym standardzie w wielu państwach. Informacja o konkretnym algorytmie zawiera dane umożliwiające jego jednoznaczną identyfikację (typ identyfikatora, identyfikator, nazwę, rodzaj). Dodatkowo może być zawarta informacja o dodatkowych parametrach (np. dla rsa minimalna długość modułu). Jest to pole opcjonalne zależne od konkretnego algorytmu, gdyż np. dla algorytmu sha-512 nie jest konieczne. Pole „aktualny status” określa, czy algorytm jest aktualnie polecany, czy już nie jest uważany za bezpieczny i nie jest polecany. Pole „data od” zawiera informacje o dacie dodania przez dostawcę algorytmu do listy. Natomiast pole „data do” zawiera in- 36 Tomasz Hyla nazwa wydawcy adres adres URI data wydania data następnego wydania nazwa adres typ adres URI typ id id algorytmu typ algorytmu nazwa algorytmu właściwości algorytmu * rodzaj aktualny status data od data do Algorytm1 Algorytm2 Algorytmy Info. A1 An Dane Algorytmu n Instytucji n Algorytmy Dane Dostawcy 1 Alg. 1 Dane Algorytmu 1 Dostawcy 1 Alg.n Dane Algorytmu n Dostawcy 1 Info. Algorytmy Dostawca n Info. nazwa uznawane instytucje międzynarodowe historia uznania instytucji Dostawca 1 Info Dane Algorytmu 1 Instytucji n Dostawcy Państwo1 Państwa Dane Algorytmu 2 Instytucji 1 Dane Instytucji n Algorytmy Instytucja1 Instytucja n Podpisana LPAK Instytucje międzynarodowe Informacje Informacje o liście formacje, w przypadku algorytmów aktualnie polecanych, o dacie do której zaleca się jego stosowanie, a w przypadków algorytmów już nie ważnych o dacie w której algorytm stracił ważność. Rysunek 3 przedstawia przykładowy fragment listy LPAK zaimplementowanej za pomocą XML, która zawiera informacje na temat dwóch wybranych algorytmów polecanych przez ETSI w TS 102 176-1 [8]. Dane Dostawcy n Alg. 1 Dane Algorytmu 1 Dostawcy n Alg. n Dane Algorytmu n Dostawcy n Podpis cyfrowy Rysunek 2. Model logiczny LPAK Automatyczne sprawdzanie i weryfikacja statusu algorytmów kryptograficznych… 37 Rysunek 3. Fragment przykładowej LPAK zawierającej informacje z [8] 3.4. Komunikacja z użytkownikami Centrum Informacji o Algorytmach Kryptograficznych do komunikacji z użytkownikami i dostawcami informacji używa dwóch typów wiadomości. Wiadomości typu S1x, gdzie x [1,5] służą do sprawdzania czy dany algorytm jest ważny, a także do pobierania listy zalecanych algorytmów oraz do wysłania przez Centrum odpowiedzi do podmiotów wysyłających zapytanie. Natomiast wiadomości typu S2y, gdzie y [1,3] służą do aktualizacji informacji na temat algorytmów. Schemat komunikacji przedstawia rys. 4, natomiast rys. 5 przedstawia fragment diagramu dokumentu typu XML Schema definiującego zawartość wiadomości. W skład grupy S1x wchodzą następujące wiadomości: S11 – zapytanie do CIoAK o aktualnie polecane algorytmy wskazanych typów przez wskazanych dostawców informacji. 38 Tomasz Hyla S12 – odpowiedź Centrum zawierająca polecane algorytmy przez wskazanych dostawców informacji. W przypadku wskazania wszystkich algorytmów od wszystkich dostawców we wszystkich państwach przesyłana jest cała LPAK. S13 – zapytanie weryfikatora odnośnie ważności algorytmu lub algorytmów w określonym przedziale czasu według określonych dostawców informacji; S14 – odpowiedź na zapytanie S13; S15 – wiadomość zawierająca informacji o przełamaniu algorytmu, jest wysyłana automatycznie do wszystkich zapisanych na Liście Subskrybentów (LS). W skład grupy S2y wchodzą następujące wiadomości: S21 – dodanie do Centrum informacji o nowym algorytmie zalecanym od dostawcy informacji (np. od instytucji normalizacyjnej, czy od ustawodawcy krajowego); S22 – aktualizacja informacji w Centrum odnośnie zalecanych algorytmów; S23 – wiadomość od zaufanego eksperta z LZE do systemu zawierająca informację o przełamanym algorytmie. Rysunek 4. Typy wiadomości używanych do komunikacji z CioAK Automatyczne sprawdzanie i weryfikacja statusu algorytmów kryptograficznych… 39 Rysunek 5. Fragment diagramu dokumentu typu XML Schema definiującego zawartość wiadomości 4. Podsumowanie Zaprezentowana w niniejszym artykule lista polecanych algorytmów wraz z centrum informacji o algorytmach kryptograficznych pozwala na agregację informacji o ważności algorytmów kryptograficznych w poszczególnych krajach aby podpisy cyfrowe złożone z ich 40 Tomasz Hyla użyciem były ważne prawnie. CIoAK umożliwia zadawanie zapytań o poszczególne algorytmy lub umożliwia weryfikację ważności danego algorytmu w określonym momencie czasu, co dla podmiotu weryfikującego może stanowić dodatkowe źródło zaufania. Oprócz możliwej do przewidzenia utraty przydatności algorytmu (np. udane ataki typu brute-force powoli zbliżają się do polecanej długości klucza) istnieje możliwość matematycznego przełamania algorytmu. W takim przypadku CIoAK umożliwi szybkie zebranie takiej informacji i przekazanie jej zainteresowanym podmiotom. Przedstawiona konstrukcja LPAK została stworzona tak, aby ułatwić wyszukiwanie informacji według poszczególnych państw. Dodatkowo zostały wyszczególnione instytucje międzynarodowe których standardy mogą być uznawane w poszczególnych krajach jako obowiązujące w kwestii podpisu elektronicznego. Jednakże taka konstrukcja listy jest tylko jedną z rozważanych. Możliwe by było także skonstruowanie listy w której dany algorytm byłby elementem nadrzędnym i zawierałby w sobie informacje o instytucjach w danych państwach których wymagania spełnia. Bibliografia [1] A. D. Fernandes, Risking “trust” in a public key infrastructure: old techniques of managing risk applied to new technology, Decision Support Systems 31 (2001) 303 – 322 [2] S. Lancaster, D. C. Yen, S.-M. Huang, Public key infrastructure: a micro and macro analysis, Computer Standards & Interfaces 25 (2003) 437-446 [3] P. Pharow, B. Blobel, Electronic signatures for long-lasting storage purposes in electronic archives, International Journal of Medical Informatics (2005) 74, 279-287 [4] D. Lekkas, D. Grizalis, Long-term verifiability of the electronic healthcare records’ authenticity, International Journal of Medical Informatics (2007) 76, 442-287 [5] P. Ruotsalainen, B. Manning, A notary archive model for secure preservation and distribution of electrically signed patient documents, International Journal of Medical Informatics (2007) 76, 449-453 [6] Rozporządzenie Rady Ministrów z dnia 7 sierpnia 2002 r. w sprawie określenia warunków technicznych o organizacyjnych dla kwalifikowanych podmiotów świadczących usługi certyfikacyjne, polityk certyfikacji dla kwalifikowanych certyfikatów wydawanych przez te podmioty oraz warunków technicznych dla bezpiecznych urządzeń służących do składania i weryfikacji podpisu elektronicznego, Dz.U. 2002 nr 128 poz. 1094 [7] Ustawa z dnia 18 września 2001 r. o podpisie elektronicznym, Dz.U. 2001 nr 130 poz. 1450 [8] ETSI TS 102 176-1 Electronic Signatures and Infrastructures (ESI); Algorithms and Parameter for Secure Electronic Signatures; Part1: Hash functions and asymmetric algorithms, v2.0.0, November 2007 [9] ETSI TS 102 231 Electronic Signatures and Infrastructures (ESI); Provision of harmonized Trust-service status information, v2.1.1, March 2006 [10] A. Donaldson, Policy for cryptography in healthcare – a view from the NHS, International Journal of Medical Informatics 60 (2000) 105-110 [11] T. Gondrom, R.Brandner, U. Pordesch, RFC 4998 Evidence Record Syntax (ERS), The IETF Trust, August 2007 Translacja programu IL do grafu SFC Sławomir Jaszczak, Michał Wierzbicki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: Authors of this article described an automatisation method of the translation a control sequential algorithm, dedicated to programmable controllers (PLC) from the IL program to the SFC graph. Using a SFC language based on the graph of stages and transitions simplify a task related to the creation of sequential programs. It could be helpful during any modification and development in future, even years ago after an implementation the controlled system. In the first part were given some arguments confirmed a need of the translation from the IL program to the SFC graph e.g. Proficy Machine Edition, using for programming GeFanuc’s PLCs, don’t have SFC language as a standard tool. As a result of it programmers don’t have opportunity to make some modifications with ease. In the second part of the article were described all stages of the translation procedure, which are : preparation part, control part, initialization part and final part. In the third part of the article was given an example of the realistic sequential control system, related to the cutting pipes process. Keywords: PLC (Programmable Logic Controller), IL (Instruction List), SFC (Sequential Function Chart) 1. Wprowadzenie Naturalnym sposobem przedstawiania algorytmu sterowania jest sformułowanie zależności przyczynowo skutkowych, które łatwo jest też przedstawić w postaci grafu. Często dzieje się tak, iż powstaje on jedynie w głowie projektanta systemu by następnie zostać przepisanym do właściwego języka programowania. Podejście takie sprawdza się w odniesieniu do małych systemów, jednak obecnie widać tendencje do coraz większej automatyzacji i zwiększania rozmiarów systemów, co może skutkować zwiększona liczbą błędów. Norma IEC 1131 „Programmable Controllers” definiuje język graficzny SFC, który w swym zapisie przedstawia graf sekwencji, czyli w prosty sposób odzwierciedla przedstawiany algorytm. Tym niemniej użytkownicy często decydują się na użycie innego języka z tego względu, że system który zamierzają wysterować jest na tyle mały iż nie widzą sensu stosowania SFC. Istnieje grupa systemów, które w momencie powstawania były na tyle małe, że nikt nie widział potrzeby oprogramowywania ich przy pomocy SFC, a przez lata rozbudowały się do takich rozmiarów, iż kolejne modyfikacje stały się kłopotliwe. Pojawiła się więc potrzeba stworzenia takiego narzędzia, które dokonywałoby procesu translacji z języków niskiego poziomu (takich jak np IL) do SFC w sposób automatyczny. 2. Translacja z IL do SFC Metoda translacji programu zapisanego w IL do postaci SFC polega na analizie pliku tekstowego i poszukiwaniu w nim konstrukcji językowych odpowiadających strukturze graMetody Informatyki Stosowanej, nr 2/2009 (19), s. 41-55 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 42 Sławomir Jaszczak, Michał Wierzbicki fu. Po dokonaniu analizy dokonuje się syntezy i prezentacji w formie graficznej. Tak postawione zadanie wymagało szczegółowej, wstępnej analizy pliku wejściowego. W tym przypadku był on pewnym ciągiem znaków. Przykładowy fragment program zapisanego w IL może mieć następującą postać (każdy znak został wyróżniony przy pomocy‘’): ‘L’‘D’‘ ’‘S’‘1’‘\n’‘S’‘ ’‘O’‘2’‘\n’‘L’‘D’‘ ’‘S’‘3’‘\n’… Jak łatwo zauważyć, pewne ciągi znaków tworzą na przykład instrukcje, identyfikatory, liczby itd. Są to podstawowe symbole z których zbudowany jest program. W celu łatwiejszej analizy programu ciąg znaków należy rozbić na symbole i badać zależności pomiędzy symbolami a nie znakami. Bardzo przydatnym narzędziem do rozpoznawania symboli są wyrażenia regularne, będące pewnym sposobem opisu ciągów znaków. Większość języków programowania udostępnia narzędzia, które na podstawie tego opisu są w stanie rozpoznawać symbole znajdujące się w łańcuchu znaków. Opis ten może określać pewne szczególne cechy łańcucha lub jego regularność (powtarzający się wzorzec). Podstawowe zasady zapisu wyrażeń regularnych opisano w [9]. Zbiór wszystkich symboli danego języka nazywany jest słownikiem V bądź alfabetem. Symbol, na tym poziomie abstrakcji, jest to pewien podstawowy element nie posiadający żadnej dostrzegalnej struktury [15]. Każdy podzbiór zbioru V* nazywa się językiem nad słownikiem V. Podstawowym elementem składowym języka są zdania. Ponieważ większość języków zawiera nieskończenie wiele zdań, nie można ich zdefiniować na drodze wypisania wszystkich elementów. Każdy taki język L definiujemy specyfikując proces, który generuje wszystkie jego zdania oraz nie generuje żadnych innych elementów zbioru V*. Jedną z metod pozwalających opisać proces generowania zdań jest zastosowanie gramatyki. Gramatyka jest pewną uporządkowaną czwórką (T,N,P,S) [15][1],gdzie : T jest skończonym zbiorem symboli terminalnych. Symbole terminalne (równoważne symbolom alfabetu języka) są symbolami, które pozostaną w wyprowadzonym słowie, N jest skończonym zbiorem symboli nieterminalnych. Symbol nieterminalny w gramatyce formalnej to symbol pomocniczy, który nie może wystąpić w generowanym słowie języka, P jest skończonym zbiorem reguł typu LR, gdzie LN oraz R (TN)*, SN jest wyróżnionym elementem początkowym. Większość języków programowania jest definiowana z wykorzystaniem gramatyk bezkontekstowych, czyli takich, w których wszystkie reguły wyprowadzania wyrażeń są postaci A Γ gdzie: A jest dowolnym symbolem nieterminalnym i jego znaczenie nie zależy od kontekstu, w jakim występuje, Γ jest to dowolny (być może pusty) ciąg symboli terminalnych i nieterminalnych. Przykładowa reguła może mieć następującą postać: instrukcja → operator operand W latach 50-tych opracowano specjalną metodę zapisu reguł gramatyki bezkontekstowej zwaną Notacja Backusa-Naura (ang. Backus-Naur form, w skrócie BNF), która zyskała szczególną popularność w informatyce do zapisu składni języków programowania i protokołów komunikacyjnych. Notacja BNF jest zestawem reguł o następującej postaci: <symbol nieterminalny > ::= <wyrażenie zawierające symbole> Znaczenie użytych tu symboli jest następujące: „<” lewy ogranicznik wyrażenia „>” prawy ogranicznik wyrażenia „::=” jest zdefiniowane jako „|” lub Translacja programu IL do grafu SFC 43 Jak już wspomniano, istnieją narzędzia programowe, które na podstawie wyrażeń regularnych są w stanie rozbić sekwencje znaków na mniejsze zwane symbolami (lub tokenami). Narzędzia takie noszą nazwę analizatorów leksykalnych. Badanie zależności pomiędzy symbolami nosi nazwę analizy składniowej i jest wykonywane przy pomocy parserów. Parser jest narzędziem, które na podstawie specyfikacji języka (na przykład w postaci BNF), potrafi określić czy dany ciąg symboli tworzy zdania należące do tego języka. Na rysunku 1 przedstawiono uproszczoną strukturę analizatora składniowego. Rysunek 1. Struktura przykładowego analizatora składniowego Analizator leksykalny został zrealizowany przy pomocy menadżera tokenów. Zespół JavaCC określił analizator leksykalny jako zbiór leksykalnych stanów. Każdy z tych stanów nazwany jest przy pomocy identyfikatora. Wygenerowany menadżer tokenów w dowolnym momencie znajduje się tylko w jednym z tych stanów. Domyślnie, w momencie zainicjowania menadżera tokenów, znajdować się on będzie w stanie DEFAULT. Możliwe jest określenie startowego stanu analizatora leksykalnego na etapie konstruowania menadżera tokenów. Każdy stan analizatora leksykalnego zawiera uporządkowaną listę wyrażeń regularnych (porządek tej listy jest zaczerpnięty z pliku wejściowego). Istnieją cztery rodzaje wyrażeń regularnych: SKIP, MORE, TOKEN, SPECIAL_TOKEN. Wszystkie wyrażenia regularne, które zostaną zdefiniowane w regułach gramatycznych, są rozpatrywane w stanie DEFAULT, a kolejność ich wystąpień jest uzależniona od kolejności, jaką zajmują w pliku definiującym gramatykę. Dopasowanie tokena polega na sprawdzeniu wszystkich wyrażeń regularnych należących do aktualnego stanu leksykalnego. Menadżer tokenów pobiera maksymalną liczbę znaków z łańcucha wejściowego pasujących do któregoś z wyrażeń. Wybrane jest wyrażenie do którego pasuje najdłuższy ciąg znaków. W wypadku, gdy dwa ciągi mają identyczną długość wybierane jest wyrażenie regularne, którego reguła została wcześniej zdefiniowana w pliku opisującym gramatykę. W danym momencie menadżer tokenów może znajdować się tylko w jednym określonym stanie, dla którego menadżer tokenów rozważa wyrażenia regularne zdefiniowane dla tego stanu. Dla każdego wyrażenia regularnego może zostać określona akcja, którą należy 44 Sławomir Jaszczak, Michał Wierzbicki wykonać lub stan leksykalny, do którego należy się przenieść w momencie dopasowania. Jeżeli nowy stan nie zostanie określony, analizator pozostaje w aktualnym stanie. Innym czynnikiem determinującym czynności wykonane po dopasowaniu go do ciągu wejściowego jest rodzaj wyrażenia regularnego. Klauzula SKIP służy do pominięcia zdefiniowanych fragmentów łańcucha wejściowego. Jest to bardzo przydatny mechanizm, dzięki któremu możliwe jest wyłączenie pewnych fragmentów z analizowanego tekstu już na wstępie. Poniżej znajduje się klauzula SKIP usuwająca białe znaki. Kod źródłowy 1. Klauzula SKIP SKIP : { " " | "\r" | "\t" | "\n"} Klauzula MORE służy do zdefiniowania łańcuchów, które są prefiksami do innych wyrażeń regularnych. Prefiks ten może być wykorzystany w dalszej analizie tekstu. Klauzula TOKEN pozwala zdefiniować zbiór symboli terminalnych i przyporządkować im nazwy. Kod źródłowy 2 reprezentuje przykład takiej klauzuli. W pierwszej linii znajduje się słowo kluczowe TOKEN i dwukropek, po czym następuje część właściwa, definiująca oczekiwane symbole wejściowe. Definicje poszczególnych symboli są oddzielone pionową kreską („|”) symbolizującą alternatywę. Każda definicja jest umieszczona w klamrach „<>”. Kod źródłowy 2. Klauzula TOKEN TOKEN : { < OR: "O" > | < AND: "A" > | < NOT: "N" > | < OPEN: "(" > | < CLOSE: ")" > | < FSC: "FSc" >} Składnia JavaCC pozwala także na tworzenie symboli, które w swojej definicji wykorzystują inne symbole. Kod źródłowy 3 Klauzula TOKEN TOKEN : { <ETYKIETA_S: "S"(<CYFRA>)+> | <ETYKIETA_I: "I"(<CYFRA>)+> | <ETYKIETA_O: "O"(<CYFRA>)+> | <#CYFRA: ["0" - "9"] >} SPECIAL_TOKEN tworzy specjalny token, który nie bierze udziału w parsowaniu. Zdefiniowanie końca pliku <EOF> skutkuje utworzeniem tokena <EOF>. Wykrycie symbolu <EOF> w trakcie dopasowywania do wyrażenia regularnego lub bezpośrednio po wyrażeniu regularnym typu MORE skutkuje raportem o wystąpieniu błędu. Po dopasowaniu wyrażenia regularnego zostaje wykonana akcja leksykalna, a wszystkie zmienne i metody zadeklarowane w regionie TOKEN_MGR_DECLS są dla niej dostępne. Po wykonaniu akcji menadżer tokenów zmienia stan na kolejny określony. Translacja programu IL do grafu SFC 45 Produkcja typu BNF jest standardową produkcją używaną do definiowania gramatyk w JavaCC. Każda składa się z lewej i prawej strony oddzielonej symbolem ”:”. Produkcja typu BNF ma następującą składnię: modyfikator_dostępu zwracany_typ identyfikator ”(” lista_parametrów”)” ”:” blok_java”{”rozwiniecie ”}” Lewa strona specyfikuje nieterminalną część produkcji. Wygenerowany parser zawiera metody, które odpowiadają każdemu nieterminalnemu symbolowi zawartemu w części opisującej gramatykę. Parsowanie względem symbolu nieterminalnego odbywa się poprzez wywołanie metody odpowiadającej temu nieterminalnemu symbolowi. Zapis części nieterminalnej jest dokładanie taki sam jak deklaracja metody w języku Java. Jest to jak najbardziej uzasadnione podejście, skoro każda produkcja nieterminalna jest translowana do metody w generowanym parserze. Nazwa symbolu nieterminalnego jest nazwą metody klasy parsera a zadeklarowane wartości oznaczają przekazywane wartości w górę i w dół drzew rozkładu gramatycznego. Domyślnie modyfikator dostępu ma wartość public. Prawa strona produkcji BNF składa się z dwóch części. Pierwsza część jest zbiorem dowolnych deklaracji i kodu Java. Kod ten jest umieszczany na początku metody generowanej dla tego nieterminalnego symbolu. Dlatego za każdym razem, gdy ten nieterminalny symbol jest używany w procesie parsowania, deklaracja i kod są wykonywane. Deklaracje umieszczone w tej części są widoczne dla całego kodu Java zawartego w akcjach dla poszczególnych reguł BNF. Ponieważ JavaCC nie przetwarza kodu Java w żaden sposób, tyko bezpośrednio umieszcza go w generowanej metodzie możliwe jest, iż kompilator pokaże błędy w kodzie, który został wygenerowany przez JavaCC. Druga część produkcji BNF składa się z reguły BNF. Reguła jest listą jednej lub więcej oddzielonych symbolem ”|” reguł. Pojedyncza reguła może być kodem Java, może składać się z ciągu symboli nieterminalnych i terminalnych lub być wyrażeniem regularnym. Przykładowo reguła ”{” cos() ”}” składa się z trzech elementów: ”{”, cos() i ”}”. Odpowiadający jej ciąg musi równocześnie spełniać każdy z tych trzech warunków. W tym przypadku będzie to każdy ciąg zaczynający się od ”{” i kończący na ”}”, natomiast w środku powinien być łańcuch pasujący do reguły cos(). Reguła BNF może być zbiorem deklaracji i kodu Java umieszczonym w nawiasach (blok Java). Identycznie definiujemy tak zwane akcje parsera, które są umieszczane w wygenerowanym kodzie. Bloki te będą wywoływane za każdym razem, gdy ciąg wejściowy będzie pasował do danej reguły. W celu skrócenia zapisu notację BNF rozszerzono i nazwano EBNF. Rozszerzenie to polegało na wprowadzeniu pomocniczych oznaczeń umieszczanych po symbolu: + oznacza, iż pasujący ciąg może być jednym lub wieloma wystąpieniami symbolu, * oznacza, iż pasujący ciąg może być zerem lub wieloma wystąpieniami symbolu, ? oznacza, iż pasujący ciąg może być maksymalnie jednym wystąpieniem symbolu. Reguła BNF może być wyrażeniem regularnym. Ciąg pasujący do takiej reguły jest tokenem spełniającym to wyrażenie regularne. Gdy dane wyrażenie regularne zostanie dopasowane do ciągu wejściowego, tworzony jest obiekt typu Token. Możliwe jest uzyskanie dostępu do tego obiektu poprzez przypisanie go do zmiennej w następujący sposób: „zmienna =”. Reguła BNF może być symbolem nieterminalnym. W tym przypadku przyjmuje formę wywołania metody o nazwie, jaką nosi ten symbol. Akceptacja takiego symbolu skutkuje tym, iż na parametrach wywołania metody, zostają wykonane operacje po zakończeniu których zwracany jest wynik (jeżeli znak nieterminalny nie został zadeklarowany jako void). Zwrócona wartość może zostać przepisana do zmiennej przy pomocy następującego prefiksu: „zmienna =”. 46 Sławomir Jaszczak, Michał Wierzbicki Jak już wspomniano, w definicji każdej gramatyki znajduje się pewien wyróżniony symbol, od którego są wyprowadzane wszystkie zdania. W tym przypadku zdaniami będą elementy SFC. W rozdziale poświęconym konwersji SFC na IL zostało zdefiniowanych sześć podstawowych etapów tłumaczenia programu. W celu uproszczenia rozważań teoretycznych należy założyć, iż SFC konwertuje się tylko do następujących trzech elementów: część sterującą programu część inicjalizująca programu część wykonawcza programu Elementy te są w stanie w całości odzwierciedlić strukturę grafu. Przed przystąpieniem do właściwej analizy fragmentów kodu należy zwrócić uwagę, iż w pliku wejściowym znajduje się nie jedno, ale wiele wystąpień składowych grafu. Każdy z tych elementów będzie rozpoznawany z osobna, a następnie na ich podstawie zostanie utworzony graf. Posługując się notacją EBNF można skonstruować prostą regułę, która na wysokim poziomie abstrakcji definiuje plik wejściowy. START (WYRAZENIE)+ EOF (1) Kod źródłowy 4. Program w JavaCC odpowiadający wyrażeniu (1) void start() : {} {(wyrazenie())+<EOF>{}} Symbol wyrazenie może zostać rozwinięty w jedną z następujących postaci: Kod źródłowy 5. Definicja symbolu wyrażenie() void wyrazenie():{} {tranzycja() | wyjscie() | poczatkowe() } Analiza części sterującej programu Część sterująca programu zapisana w formie IL składa się z opisu kolejnych tranzycji. Każda tranzycja składa się z pewnego warunku oraz bloku kasującego i ustawiającego. Elementy te zostaną rozwinięte w dalszej części opracowania. Rysunek 2 przedstawia tranzycję daną w najprostszej formie, czyli zwykłej sekwencji. Rysunek 2. Analiza pojedynczej sekwencji Dla łatwości tranzycja ta zostanie zapisana w uproszczonej formie w notacji BNF: TRANZYCJAWARUNEK KASOWANIE USTAWIENIE (2) Translacja programu IL do grafu SFC 47 Jak łatwo udowodnić, przy użyciu powyższej formy i nieznacznych jej modyfikacjach można opisać każdy rodzaj tranzycji. Rozwinięciem przykładu pokazanego na powyższym rysunku jest przykład zademonstrowany na rysunku 3 i rysunku 4. Rysunek 3. Analiza alternatywnych sekwencji Rysunek 4. Analiza końca (zbiegania się) alternatywnych gałęzi Przykłady te w formie IL są kolejno zapisanymi po sobie tranzycjami, a w swoich BNFowych formach są tożsame z zależnością (2). Jako że na bazie zależności 1 cały plik wejściowy jest rozpatrywany jako seria produkcji, nie ma więc znaczenia czy dana tranzycja występuje pojedynczo czy jest jedną z serii. Rysunek 5. Analiza zrównoleglenia 48 Sławomir Jaszczak, Michał Wierzbicki Kody źródłowe 6 i 7 przedstawiają definicje symboli odpowiednio ustawienie() i kasowanie(). Elementy te, zostały wykorzystane do zdefiniowania symbolu tranzycja(), a ich definicja jest na tyle prosta, iż nie wymaga dodatkowych komentarzy. Kod źródłowy 6. Definicja symbolu ustawienie() Void ustawienie():{} {"S" <ETYKIETA_S> } Kod źródłowy 7. Definicja symbolu kasowanie Void kasowanie():{} {"R" <ETYKIETA_S> } Na rysunku 5 został przedstawiony przykład przekładu zrównoleglenia algorytmu sterowania. Pojawia się tu pierwsza różnica w porównaniu z wyżej prezentowanymi tranzycjami, a mianowicie w części odpowiedzialnej za ustawianie bloków występuje nie jeden ale kilka elementów. W celu sprawnego zapisu wyżej przedstawionej konstrukcji modyfikujemy zależność (2) do postaci (3). TRANZYCJAWARUNEK KASOWANIE (USTAWIENIE)+ (3) Znak „+” oznacza, iż musi wystąpić co najmniej jeden symbol typu USTAWIENIE ale może być ich więcej. Jak łatwo zauważyć zaproponowana zależność wciąż pasuje do opisu zwykłych tranzycji. W przeciwieństwie do alternatyw, w przypadku zrównolegleń, początek zrównoleglenia i koniec różnią się od siebie w zapisie. Pierwszą różnicą jest rozszerzenie elementu typu warunek o kolejne zadania, zagadnienie to zostanie poruszone w dalszej części poświęconej analizie symbolu typu WARUNEK. Rysunek 6. Analiza końca zrównoleglenia Kolejnym elementem jest rozszerzenie bloku kasującego o możliwości wystąpień większej liczby linii kasujących. Zagadnienie to rozwiązujemy analogicznie do poprzedniego i modyfikujemy zależność (3) do postaci (4). TRANZYCJAWARUNEK (KASOWANIE)+ (USTAWIENIE)+ (4) Wyrażenie to pokrywa praktycznie cały zakres mogących wystąpić tranzycji. Ponieważ istnieje zasadnicza różnica w graficznej formie przedstawienia zrównoleglenia w porównaniu z pozostałymi elementami typu TRANZYCJA, konieczne jest wychwycenie konstrukcji Translacja programu IL do grafu SFC 49 tego typu w celu ich prawidłowego graficznego przedstawienia. Można to osiągnąć na rożne sposoby. W niniejszej pracy posłużono się następującymi przesłankami: wiele wystąpień KASOWANIE oznacza koniec zrównoleglenia wiele wystąpień USTAWIENIE oznacza początek zrównoleglenia Ponieważ JavaCC umożliwia określenie akcji (w specyfikacji analizatora), które są wykonywane po rozpoznaniu jakiejś produkcji, wystarczy zliczyć liczbę wystąpień konkretnego elementu i na tej podstawie określić z jaką konstrukcją mamy do czynienia. Na podstawie zależności 4 został stworzony kod odpowiadający tranzycji w JavaCC. Ponieważ, nie jest istotne czy instrukcje kasujące poprzedzają ustawiające, dlatego definicję rozszerzono tak, by obejmowała oba przypadki. Kod źródłowy 10. Definicja symbolu tranzycja() void tranzycja():{} { warunek()( (ustawienie())+ (kasowanie())+ |(kasowanie())+ (ustawienie())+)} Nazwa WARUNEK, dla której właściwie bardziej pasującą nazwą byłoby „wyrażenie logiczne”, odnosi się do funkcji, jaką pełni ten element. Na rysunku 7 został przedstawiony przykładowy warunek. Ponieważ każde wyrażenie rozpoczyna się od zapisania pewnej wartości do rejestru, dlatego pierwsza instrukcja to LD. W prezentowanym przykładzie można zaobserwować rekurencje, gdyż fragment umieszczony w nawiasie ma wszystkie cechy samodzielnego wyrażenia logicznego. Rysunek 7. Przykładowy warunek Na tej podstawie można przystąpić do próby formalnego opisu symbolu WARUNEK WARUNEK LD ETYKIETA_S ( OPERATOR )* (ETYKIETA_S |ETYKIETA_I ”(”WARUNEK”)”) (5) W celu uproszczenia zapisu należy wprowadzić pomocniczy symbol PRYMITYW, który zdefiniujemy następująco: PRYMITYW ETYKIETA_S |ETYKIETA_I |”(”WARUNEK”)”) | NOT PRYMITYW (6) Przy uwzględnieniu zależności (6) zależność (5) upraszcza się do następującej postaci: WARUNEK LD PRYMITYW ( OPERATOR PRYMITYW)* 50 Sławomir Jaszczak, Michał Wierzbicki Kod źródłowy 11. Definicja symbolu warunek() String warunek():{} { <LD> prymityw() (operator() prymityw())*} Kod źródłowy 12. Definicja symbolu prymityw() String prymityw():{} { <ETYKIETA_I> |<ETYKIETA_S> |<OPEN> warunek()<CLOSE> |<NOT> prymityw()} Kod źródłowy 13 przedstawia definicję symbolu operator(), który został z kolei wykorzystany w celu zdefiniowania symbolu prymityw(). Symbol operator() jest na tyle prosty, iż została pominięta jego analiza w postaci BNF i ograniczono się jedynie do podania jego definicji w JavaCC. Kod źródłowy 13.Definicja symbolu operator() void operator():{} { <AND> |<OR> |<XOR> |<&>} Analiza części inicjalizującej Część inicjalizująca, która jest prostym elementem do analizy, najczęściej składa się z jednej instrukcji odwołującej się do zmiennej FSc, po czym występuje już wcześniej zdefiniowany symbol USTAWIANIE. Rysunek 8. Analiza części inicjalizującej POCZATKOWE LD FSC SET (7) W ogólności może być wiele kroków startowych, wtedy reguła ta jest modyfikowana do następującej postaci: POCZATKOWE LD FSC (SET)+ (8) Jednak podczas implementacji została zastosowana reguła w prostszej wersji, a kod jej odpowiadający wygląda następująco: Kod źródłowy 14. Definicja symbolu poczatkowe() void poczatkowe():{} { <LD> <FSC> ustawienie()} Translacja programu IL do grafu SFC 51 Analiza części wykonawczej Przyjrzawszy się bliżej części wykonawczej, łatwo jest wyróżnić dwa zasadnicze elementy - blok o zmiennej długości przedstawiający zbiór alternatyw oraz blok przypisania. Rysunek 9. Część wykonawcza BLOK_WYKONAWCZY BLOK_ALTERNATYW BLOK_PRZYPISANIA (9) Blok alternatyw zaczyna się od instrukcji załadowania do rejestru LD, po której występują kolejne wystąpienia instrukcji OR: BLOK_ALTERNATYW LD ETYKIETA_S (OR ETYKIETA_S)* BLOK_PRZYPISANIA PRZYPISANIE ETYKIETA_O (10) (11) Na podstawie przedstawionych zależności można stworzyć kod dla JavaCC. Kod źródłowy 15. Definicja symbolu wyjscie() void wyjscie():{} { <LD> <ETYKIETA_S> (<OR> <ETYKIETA_S>)* <ST> <ETYKIETA_O>} 3. Przykład translacji W celu zaprezentowania działania programu zostanie przytoczony przykład zaczerpnięty z [13]. Rysunek 10 przedstawia schemat ideowy tego procesu. Rysunek 10. Schemat ideowy procesu cięcia rur Źródło: Na podstawie [13] Strzałką poziomą oznaczono kierunek podawania rury. Rura została oznaczona cyfrą 1, a szczęki tnące 2. Elementy wykonawcze w postaci siłowników zostały oznaczone symbo- 52 Sławomir Jaszczak, Michał Wierzbicki lami od S1 do S5. W celu wysunięcia siłownika należy podać na jego wejście logicznej jedynki, zabranie sygnału powoduje wsunięcie siłownika. Każdy siłownik został wyposażony w elementy sygnalizujące skrajne położenia, są to elementy od WP1 do WP10. Przesunięcie rury uzyskuje się na drodze zaciśnięcia szczęki podającej SP, zwolnienia szczęki mocującej SM i uruchomienie siłownika S3. W celu odcięcia rury należy zablokować ją przy pomocy szczęk mocujących SM, a następnie elementem tnącym 2, oddzielić interesujący nas fragment rury. Siłownik S5 zabezpiecza element rury przed wypaczeniem podczas cięcia, w chwili cięcia powinien być wysunięty, a po zakończeniu powinno nastąpić jego wsunięcie w celu zwolnienia elementu. Należy zwrócić uwagę, iż w momencie, gdy rura jest przygotowana do cięcia i spoczywa zamocowana w szczękach mocujących, możliwe jest zwolnienie szczęk podających i ich wycofanie, równocześnie można wykonać cięcie elementu. Ponieważ obie te operacje są zupełnie od siebie niezależne, dlatego do ich opisu należy zastosować element zrównoleglenia. Na podstawie powyższego opisu zaproponowano algorytm cyklicznego sterowania procesem i przedstawiono go na rysunku 11 w postaci SFC. Ponieważ w opracowanym systemie translacji wejścia są oznaczane przy pomocy literki I po której znajduje się numer, a w prezentowanym schemacie występują nazwy WP1 do WP10 należy dokonać przypisania. Dokonano następującego przypisania I1WP1 i analogicznie dla pozostałych zmiennych, zmienne S1 do S5 zostały przyporządkowane zmiennym wyjściowym O1-O5. Dodatkowo zdefiniowano zmienną I0, która odpowiada za uruchomienie cyklu. Kod źródłowy 16. jest kodem wejściowym dla translacji w graf przedstawiony na rysunku 11. Kod ten został uzupełniony o komentarze w celu poprawienia jego czytelności. Kod źródłowy 16. Kod odpowiadający grafowi z rysunku 11. // tranzycja pomiędzy krokami S7,S9 a S0 (koniec zrównoleglenia) LD S7 AND S9 AND(LD I5 AND I7 AND I10) S S0 R S7 R S9 LD S7 AND S9 AND(LD I5 AND I7 AND I10) S S0 R S7 R S9 // tranzycja pomiędzy krokami LD S8 AND I9 S S9 R S8 // tranzycja pomiędzy krokami LD S5 AND I1 S S7 R S5 // tranzycja pomiędzy krokami LD S6 AND I8 S S8 R S6 // tranzycja pomiędzy krokami LD S4 AND I4 S S5 S S6 R S4 S8 a S9 S5 a S7 S6 a S8 S4 a S5,S6 (początek zrównole-glenia) Translacja programu IL do grafu SFC // LD S R // LD S R // LD S R // LD S R // LD ST // LD ST // LD ST // LD ST // LD ST // LD S tranzycja pomiędzy krokami S3 AND I6 S4 S3 tranzycja pomiędzy krokami S2 AND I3 S3 S2 tranzycja pomiędzy krokami S1 AND I2 S2 S1 tranzycja pomiędzy krokami S0 AND( LD I0 AND I5 AND S1 S0 statyczne nadanie wartości S1 OR S2 OR S3 OR S4 O1 statyczne nadanie wartości S1 OR S4 OR S5 OR S7 O2 statyczne nadanie wartości S3 OR S4 OR S5 O3 statyczne nadanie wartości S6 O4 statyczne nadanie wartości S1 OR S2 OR S3 OR S5 OR S6 O5 zainicjowanie kroku S0 FSc S0 53 S3 a S3 S2 a S3 S1 a S2 S0 a S1 I7 AND I10) wyjściu O1 wyjściu O2 wyjściu O3 wyjściu O4 wyjściu O5 OR S9 Na podstawie przeprowadzonego eksperymentu można stwierdzić, iż algorytm tłumaczenia działa prawidłowo. Jak łatwo zauważyć, nawet przy tak krótkim programie o wiele łatwiej jest go analizować w postaci SFC niż IL, co umożliwia sprawną modyfikację przy zmieniających się wymaganiach w stosunku do prezentowanej instalacji 4. Podsumowanie Zaimplementowane procedury znakomicie nadają się do wspomagania projektowania układów sterowania logicznego. Zalety metod bazujących na SFC są widoczne już przy stosunkowo niewielkich systemach do kilkunastu zmiennych procesowych. Można je z powodzeniem wykorzystywać wszędzie tam, gdzie występują sekwencje w sterowanym procesie. Zaproponowana metoda translacji zapewnia maksymalną prostotę i eliminuje niekorzystne zjawisko przeskoku. Wykorzystanie programu JavaCC umożliwiło prostą implementację, a także stworzyło możliwości modyfikacji w celu zapewnienia wykrywania błędów składniowych W celu zapewnienia wygodnej obsługi stworzonego programu zastosowano pakiet Swing i przemyślaną strukturę zapisu poszczególnych elementów grafu. Oprogramowanie jest, z powodzeniem, wykorzystywane w trakcie syntezy algorytmów sterowania, dedykowanych pod sterowniki GeFanuc, których środowisko programistyczne nie zapewnia możliwości tworzenia programów sterujących w SFC. 54 Sławomir Jaszczak, Michał Wierzbicki Rysunek 11. Algorytm procesu cięcia rury w postaci SFC Źródło: Opracowanie własne Bibliografia [1] Taho V.A., Sethi R., Ullman D.J.: Kompilatory Reguły, metody i narzędzia. Wydawnictwo Naukowo-Techniczne Warszawa 2002 [2] Bielecki W.: Metody Kompilacji Zeszyt 1. Wydział Informatyki Politechniki Szczecińskiej Pomoce Dydaktyczne, Szczecin grudzień 1994 [3] Brock S., Muszyński R. Urbański K. Zawirski K.: Sterowniki programowalne. Wydawnictwo Politechniki Poznańskiej Poznań 2000 Translacja programu IL do grafu SFC 55 [4] Broel-Plater B.: Sterowniki Programowalne Właściwości i Zasady Stosowania. Seria Tempus Wydział Elektryczny Politechniki Szczecińskiej, Szczecin 2000 [5] Cybulka J., Jankowska B., Nawrocki J.: Automatyczne Przetwarzanie Tekstów AWK lex yacc. Wydawnictwo Nakom Poznań 2002 [6] Dembiński P., Małuszyński J.: Matematyczne metody definiowania języków programowania. Wydawnictwo Naukowo-Techniczne, Warszawa 1981 [7] Foryś M., Foryś W.: Teoria Automatów i Języków Formalnych. Akademicka Oficyna Wydawnicza EXIT Warszawa 2005 [8] Homenda W.: Elementy Lingwistyki Matematycznej i Teorii Automatów. Oficyna Wydawnicza Politechniki Warszawskiej 2005 [9] Hopecroft J.E., Motwani R., Ullman J.D.: Wprowadzenie do Teorii Automatów Języków i Obliczeń [10] Kasprzyk J.: Programowanie sterowników przemysłowych. Wydawnictwo NaukowoTechniczne Warszawa 2006 [11] Legierski T., Wyrwał J., Kasprzyk J., Hajda J.: Programowanie sterowników PLC. Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego Gliwice 1998 [12] Łukasik Z., Seta Z.: Programowalne Sterowniki PLC w Systemach Sterowania Przemysłowego. Politechnika Radomska im. K. Pułaskiego, Radom 2000 [13] Mikulczyński T., Samsonowicz Z.: Automatyzacja dyskretnych procesów produkcyjnych. Wydawnictwo Naukowo-Techniczne, Warszawa 1997 [14] Seta Z.: Wprowadzenie do Zagadnień Sterowania Wykorzystanie Programowalnych Sterowników Logicznych PLC. Wydawnictwo Mikom Warszawa 2002 [15] Waite M. W., Goos G.: Konstrukcja Kompilatorów. Wydawnictwo NaukowoTechniczne, Warszawa 1989 [16] http://www.engr.mun.ca/~theo/JavaCC-FAQ/ [17] http://www.engr.mun.ca/~theo/JavaCC-Tutorial/ [18] http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-cooltools.html [19] http://perso.orange.fr/eclipse_javacc/ The analysis of the importance of image attributes affecting visibility fact of steganographic hide messages in digital image Jerzy Korostil, Łukasz Nozdrzykowski West Pomeranian University of Technology, Szczecin, Faculty of Computer Science Abstract: This article presents the results of studies analyzing the relevance of some statistical measures histogram and color and Co-Occurence Matrix, whose values have the effect of reducing the visibility to hide the fact steganographic messages. Keywords: steganography, information hiding, visible distortion 1. Introduction Steganographic hiding information in digital color images can cause significant visible distortion in the output image. To minimize this effect in the article (1) proposes the use of certain thresholds, which were selected blocks, which was to be hidden message. This article presents the results of studies analyzing the relevance of some statistical measures, whose values have the effect of reducing the visibility to hide the fact steganographic messages. 2. The algorithm used to hide messages to tests The paper [1] presented an algorithm to hide information in digital color images using a distributed parameters of the steganographic key. The algorithm used to modify the coefficients Cosine Transform DCT for them to hide in certain bits of digital messages. In this algorithm the image was initially divided into blocks of size 32x32 pixels. Then there were the selection of the block, using the key, in terms of its usefulness to hide the message. The selection was designed to minimize the effect of visible to the human eye due to the resulting image distortion to hide the message. Then, in the case of a positive classification of the image, the block was divided into subblock 8x8 pixels, which was a hidden message. Performed on a separate subblock DCT transform, and then depending on the key parameters of the selected coefficients subblock bit hidden messages. In any subblock could hide a bit messages. After the secret, made reverse DCT transform, and the result was the appropriate section of the resulting image. Choice of two factors t1 and t2 specify the key parameter used, and hiding the message was carried out according to the rules: a) For the bit 1: t1+c >= t2-c, where t1 is greater of the coefficients. b) For the bit 0: t1-c < t2+c, where t1 is the lesser of the coefficients. Metody Informatyki Stosowanej, nr 2/2009 (19), s. 57-64 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 58 Jerzy Korostil, Łukasz Nozdrzykowski To ensure safety, the key before any modification is processed by one-way hash function, which was entering some secret key, and seed. The study used a modified version of the above algorithm. The modification involves removing the portion of the selection of an image block in order to verify that the measure may have an impact on the reduction of visibility resulting distortion. This modification makes it more appropriately to hide the message needs more blocks in the image. 3. Measures having a digital image taken into account in studies The analysis was performed on a series of selected core measures, calculated on the basis of the standard color histogram and Co-Occurrence Matrix image. 3.1. The test parameters set for the standard color histogram Standardized color histogram Hng is obtained by dividing the respective values of Hg by the total number of pixels [2]: Hg Hn g Lw * Lk where Lw is the number of rows and columns ans Lk is the number columns Histogram standard specifies the probability with which a given pixel, the color may take g. For further analysis of the basic parameters used standardized color histogram, in order to fix the characteristic of measurement histogram. They are presented below: a) Average, often is called the expected value is calculated as the sum of all the values of variables multiplied by their probability. The changes are an indicator of the average technical error. Lg 1 g * Hn g g 0 b) Variance is the size of a average on which the information signal x deviation from its mean value. Explains the variability of the data variance. It is also a measure of the width of distribution of probability density in the vicinity of the mean value. Lg 1 ( g ) 2 * Hn g 2 g 0 c) Skewness, also known as asymmetry, determines the asymmetry of the histogram curve, that is, the degree and non-central measurements. This ratio provides information about the difference between positive and negative deviations from the mean value. Shows the asymmetry of the probability density curve. Lg 1 3 3 ( g ) 3 * Hn g g 0 d) Kurtosis determines the flatness or sharpness probability density curve. Kurtosis value refers to the power of concentration. Standard normal distribution kurtosis is equal to 3, the distribution of flattened less than 3, but more slender than 3. Kurtosis high value may indicate the presence of transitional pins. The analysis of the importance of image attributes affecting visibility… K 59 L 1 4 4 ( g ) 4 * Hn g 4 g 0 g e) Excess is a measure of histogram flattening, which shall be determined by subtracting from the value of the flattening of 3 The value of the coefficient of zero means the distribution of the shape of a normal, less than 0 means a more flattened distribution than the normal. In this way, indicates the excess concentration of the variable around the mean, whether it is less than or greater than the population of the normal distribution. Lg 2 4 K 3 4 ( g ) 4 * Hng 3 g 0 Kurtosis and skewness are resistant to fluctuations measures of the brightness of the image. Errors caused by fluctuation errors are pixel luminance levels. The error means that the pixel is brighter or darker than the should be). The analysis also took into account the entropy histogram labeled P(g) [3]: L 1 H P( g ) ln[ P( g )] g 0 where: L- the number of color levels, a N – number of all values. 3.2. Co-Occurence Matrix Co-Occurrence matrix C is also called a matrix of switch. It defines the relations between colors in pixels. It is a square matrix, and it must be determined for the selected direction and distances between pairs of pixels. Element Ca,b occurrence matrix, is formed by the designation of all such pairs of pixels, which are respectively a and b. The color matrix may be normalized by dividing each value by the number of all pixels in the test m [4]. Figure 1. Determination of the matrix occurs: a) the source image pixels, b) calculated by a matrix of rows for the image (a), c) a matrix transposed to (b), d) the sum of the matrix (b) and (c), e) matrix (d) standardized. 60 Jerzy Korostil, Łukasz Nozdrzykowski Appointment of a matrix of events for the image composed of pixel values (Fig. 1a) begins by designating the number of pixels in each set of color values a and b (Fig. 1b). For the matrix calculated in pixels, should be designated to the transposed matrix (Fig. 1c), and then summed the two matrices (Fig. 1d). The final stage of standardization can be carried out resulting matrix (Fig. 1e). Coefficients matrix of events inform how many times in the neighborhood, as defined by the distance d and angle tm , there are points with intensity i,j. In the following analysis uses the parameters calculated on the basis of the matrix event, as defined by texture parameters for Harlick symmetric matrix standard: a) Energy (ASM) indicates the spread of pairs of pixels in the image. ASM (C a , b ) 2 a ,b b) Contrast (CON) indicates the levels of brightness of the image, which is mapping the edge sharpness of the texture. CON ((a b) 2 * C a , b ) a ,b c) Correlation determines the correlation of pixels. (a ) * (b ) COR * Ca ,b 2 a ,b where: x y a C a , b b C a , b a b b a x y (a ) * C a , b 2 a b d) Homogenity (Inverse difference moment). Ca ,b 2 a ,b 1 ( a b ) IDM This parameter emphasizes the elements of a matrix of events concentrated along and near the main diagonal. Uniformity has great value to these paintings, where there are areas with similar brightness levels (the number of pairs of pixels with equal or close values is large, which leads to large matrix elements of the events are on and near the main diagonal). Small values are for images in which the distribution of brightness levels is more irregular. e) Entropy sets of information, the average amount of information per pixel representing the incident from a certain set of. Entr C a , b * log(C a , b ) a ,b Events in this set are assigned a likelihood of occurrence. Entropy can be interpreted as the uncertainty of the elementary events in the next time. Entropy can be interpreted as a measure of disorder (the larger, the larger the disorder). These parameters identify the specific characteristics of the matrix event. Later in the analysis of the effects of the changes made the parameters array of events to reduce the visibility of distortions caused steganographic hide the message. The analysis of the importance of image attributes affecting visibility… 61 4. Analysis of the importance of image attributes, in terms of reducing distortion caused steganographic hide messages The study had been taken following the decision-making attributes parameters are defined in Chapter 3: a) number of shades of red; b) for histograms: average, variance, dispersion, skewness, kurtosis, entropy histogram; c) matrix for event (Co-Occurrence matrix): energy, contrast, entropy, homogeneity, for the vertical. Horizontal Data were not taken into account, since they give the same results of encoding the attributes of decision-making, as the vertical. Relevance of attributes determined using the theory of sets of approximate soft reduction and its attributes in the conditional based on the relative likelihood of useful rules [5, 6]. Soft reduction conditional attributes allows rejection of those whose removal causes a slight decrease in the number of examples, which generate a complete rule. This feature gives the flexibility of this method and allows the analysis of these attributes, which may generate conflict rules. In this method, you can evaluate the quality of a set of rules on the basis of the relative likelihood of nuclear rules. Relative atomic probability rules can be expressed by: P Pw L where P – sum of probabilities of atomic rules useful, L – number of elementary sets of conditional. Atomic rule is defined as the rule generated for a single set of elemental. Rule can be regarded as useful, if the likelihood is greater than 0.5. The remainder of the excess is rejected, the value of which resulted directly from kurtosis. This is due to the fact that he is counted on the basis of kurtosis, by subtracting from the constant 3 Leaving the kurtosis, generated by decision attributes identical to those related to the kurtosis. Analysis using the theory of harvesting is to approximate the appropriate encoding and conditional attributes of decision-making, and then by reducing the individual attributes determine their decision-making significance in producing some of the rules completely. The method of reducing soft conditional attributes, which can be a small reduction in the decline in the number of examples, which generate a complete rule. The action method is the following. a) The calculation of Pw(Q) for all conditional attributes. b) The calculation of Pw(Q-q1) for base attributes of the removed one of the conditional attributes. If removing the attribute results in a small reduction in the relative probability Pw(Q)-Pw(Q-q1), then this attribute can be reduced. 4.1. Encoding Attribute Attribute decision analysis, was a factor of PSNR. This attribute has been selected as the distortions caused steganographic hide information in the image. Discretization method were equal to the number of samples at intervals. The coefficient of PSNR coded to 5 compartments, and the samples were allocated depending on which of the included. Range PSNR Coding [0-30] 1 [30-40] 2 [40-50] 3 [50-60] 4 [60-100] 5 62 Jerzy Korostil, Łukasz Nozdrzykowski Attributes used for the same encoding as for decision-making attribute PSNR using the discretization method of an equal number of samples at intervals. The following encoding of the conditional attributes. Number of shades of red, Average Range Coding [0-50] 1 [50-100] 2 [100-150] 3 [150-200] 4 More than 200 5 Below 2000 1 [2000-4000] 2 [4000-6000] 3 [6000-8000] 4 More than 8000 5 [20-40] 2 [40-60] 3 [60-80] 4 More than 80 5 Below -1 1 [-1-0] 2 [0-1] 3 [1-2] 4 More than 2 5 Below 1.8 1 [1.8-2] 2 [2-2.5] 3 [2.5-3] 4 More than 3 5 [0.08-0.09] 4 More than 0.09 5 [0.6-0.7] 4 More than 0.7 5 Variance Range Coding Dyspresja Range Coding Below 20 1 Skewness Range Coding Kurtosis Range Coding Histogram entropy, energy matrix of events Range Coding Below 0.06 1 [0.06- 0.07] 2 [0.07- 0.08] 3 Contrast, entropy matrix events homogenity Range Coding Below 0.4 1 [0.4-0.5] 2 [0.5-0.6] 3 4.2. Appointment of the importance of the attributes of decision-making The analysis using the approximate theory of collections, the library at 382 full-color digital images allowed to obtain the following results: Number of elementary collections: 257 Atomic number of useful rules: 227 Summary likelihood absolute atomic rules useful: 222,867 The relative likelihood of all atomic rules useful: 0.8652 Table 3 presents the results of the analysis made using the theory of sets of approximate solutions to the problem of determining the impact of decision-making parameters of texture on deformation due to hide messages in digital image. The analysis of the importance of image attributes affecting visibility… 63 Table 1. The results of the analysis Reduced attribute Reduced the number of sets of elementary The relative likelihood of all the relevant rules of the reduced nuclear 0.821330 The relevance of the attribute Is it possible to reduce 178 The number of useful rules for the reduced atomic 154 Number of shades of red Average Variance Dispersion Skewness Kurtoza Histogram entropy Energy Contrast Co-Occurence Matrix entropy homogenity 0.050749 No 189 236 229 252 206 221 125 198 176 212 165 168 0.661376 0.838983 0.768559 0.841270 0.800971 0.760181 0.235616 0.030346 0.111739 0.027704 0.074279 0.121422 No No No No No No 266 275 280 229 241 250 0.860902 0.876364 0.892857 0.005013 -0.012856 -0.031918 No Yes Yes 280 250 0.892857 -0.031918 Yes The results of the analysis performed on a sample of 382 random images, it can be concluded that the attributes that can be regarded as insignificant, and therefore cannot take into account is the contrast, entropy and homogeneity of a matrix of events counted. Histogram for the standardized contrasts attribute of low relevance, is the parameter skewness, which also can be possibly reduced. Rejection of the parameter matrix of events may further increase the accuracy of the determination of rules of decision-making. The most important parameter is the average, the entropy dispersion on the standard color histogram. Appointment of material attributes, and to reject those with a negligible impact to the development of a method for the selection of images from the database in order to disguise the steganographic messages, with the reduced number of attributes, decision-making. 5. Conclusions Application of theory to determine the approximate spatial parameters of the importance of texture in its variety of soft (soft). This allows for the reduction of unnecessary or irrelevant parameters. Reducing this to generate a simpler rule of decision, and thus, reduce the calculation time is required in determining the suitability of the image at an angle to hide the message in a way invisible to the human eye. The analysis also showed that in the rejection of certain attributes of decision-making, you can increase the relative likelihood of all atomic rules useful for the reduction of the relative likelihood of any useful atomic rules. You may also be noted that most of the texture data (diversity) of image, the test for the attributes into the parameters determined from the standard color histogram. Their significance is higher than those calculated for the array of events. References [1] Korostil J., Nozdrzykowski Ł. Opracowanie rozproszonego klucza steganograficznego. Metody Informatyki Stosowanej. Kwartalnik Komisji Informatyki PAN Oddział w Gdańsku, Nr 1/2008 (Tom 13), Szczecin 2008. [2] Rudnicki Z. Analiza sekwencji obrazów niejednorodnych. Informatyka w Technologii Materiałów, Numer 2, Tom 3, Rok 2003. 64 Jerzy Korostil, Łukasz Nozdrzykowski [3] Rumiński J. Metody reprezentacji, przetwarzania i analizy obrazów w medycynie. http://astrophysics.fic.uni.lodz.pl/medtech/dodatki/metpo.html (dostęp: marzec 2009). [4] Rudnicki Z. Wybrane metody przetwarzania i analizy cech obrazów teksturowych. Informatyka w Technologii Materiałów. Nr 1, Tom 2, Rok 2002. [5] Mrózek A, Płonka L. Analiza danych metodą zbiorów przybliżonych. Akademicka Oficyna Wydawnicza PLJ Wydanie 1, Warszawa 1999. [6] Piegat A. Matematyka - zbiory przybliżone. Materiały do wykładów. Politechnika Szczecińska, Wydział Informatyki, Szczecin 2007. Eksploracja danych w kontekście procesu Knowledge Discovery In Databases (KDD) i metodologii Cross-Industry Standard Process For Data Mining (CRISP-DM) Marcin Mirończuk1, Tadeusz Maciak2 1 Politechnika Białostocka, Wydział Elektryczny, Politechnika Białostocka, Wydział Informatyki 2 Abstract: Article aims at introducing for the readers few problems connected with KDD process, Data Mining project modeling with the use of CRISP-DM. The systemized knowledge, approaches to and generic terms was presented in the article. In the first part article describes approach to Data Exploration as one of the KDD cycle, which is specialized Knowledge Discovery process. Then article takes the subject of CRISP-DM method. The context of method usage depending on scale and integration of project, which they concern – investigate of useing text mining in Inteligent Decission Support System (IDSS) develop by informatic faculty of Fire Service. At the end of the article the summary was made, which contains common features between the two looks on the exploration and extracting knowledge from data bases. Keywords: data exploration, data mining, Cross-Industry Standard Process for Data Mining, CRISPDM, knowledge discovery in databases, KDD, pre-exploration systems, post-exploration systems, text mining, text analysis 1. Wstęp Systemy informatyczne stanowiące integralną część platform informacyjnych stały się nieodłącznym elementem sprawnie działających firm, przedsiębiorstw, instytucji zarówno z sektora prywatnego jak i państwowego. Aktualnie odgrywają one także ważną rolę w środowiskach naukowych gdzie stanowią doskonałe narzędzie do przeprowadzania i realizacji badań z wybranej dziedziny. W wyniku prac badawczych zarówno środowiska naukowego jak i biznesowego, lub ich kooperacji, powstają nowe rozwiązania dla systemów informacyjnych z zakresu: sprzętu, oprogramowania, technik organizacji i zarządzania zasobami różnego rodzaju czy też budowy elementów samego systemu informacyjnego. Platformy informacyjne mają za zadanie przekształcić dane – szczątkowe nieuporządkowane sygnały, które mogą pochodzić ze źródeł pierwotnych albo wtórnych, tworzonych wewnątrz, jak i na zewnątrz organizacji, lub innych systemów generujących dane – w informację. Informacja powstaje natomiast jako rezultat integrowania i porządkowania danych, które w ten sposób nabierają znaczenia. Informacja następnie może zostać przekształcona w wiedzę – wartościową i zaakceptowaną informację, która integruje dane, fakty, informacje [1]. Systemem informacyjnym można nazwać także platformę, w której zestawienie procesów i sposobów komunikacji (zarówno na poziomie infrastruktury sprzętowo – programoMetody Informatyki Stosowanej, nr 2/2009 (19), s. 65-79 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 66 Marcin Mirończuk, Tadeusz Maciak wej jak i personalnej) zapewnia prawidłowe przekształcenie danych w informację i późniejszy jej obieg. Platforma informatyczna stanowi natomiast narzędzie, lub grupę powiązanych ze sobą narzędzi. Funkcją tych narzędzi jest przetwarzanie informacji przy użyciu technik komputerowych w inny rodzaj informacji, które mogą zostać następnie przetransformowane w wiedzę. Systemy informatyczne znacznie przyśpieszają i normalizują przetwarzaną informację stanowiącą zestaw faktów, jakie mają miejsce w otoczeniu funkcjonującego systemu. Na jego efektywność ma wpływ wiele czynników m.in.: poziom wyszkolenia pracowników, zastosowane oprogramowanie, infrastruktura sprzętowa, rozwiązania sieciowe, rozwiązania wykorzystane przy budowie oprogramowania, dostosowanie systemu do realizowanego zadania. Rozwój technologii umożliwia składowanie coraz to większych ilości danych. Zasoby gromadzonej informacji w istniejących systemach informatycznych (różnego rodzajów bazach danych) zwiększyły się na tyle, iż przestają się sprawdzać – uprzednio wystarczające – rozwiązania przeszukiwania, wydobywania i transformowania informacji w wiedzę lub inny rodzaj informacji. Z tego też względu w procesie tworzenia systemów informatycznych bardzo istotne staje się konstruowanie stosownych narzędzi informatycznych i metod umożliwiających odpowiednie przekształcanie danych w informację. Nowe metody wraz z odpowiednimi narzędziami powinny umożliwiać też wydobywanie informacji z baz danych, z możliwością łatwego transformowania ich do wiedzy. Odpowiedzią na rosnące zapotrzebowanie dotyczące gromadzenia, przeszukiwania czy analizy ciągle powiększających się zbiorów informacji w platformach informatycznych stała się Eksploracja Danych (ang. Data Mining – DM) tzw. wydobywanie wiedzy z danych. Ze względu na odmienne podejścia środowisk naukowych i biznesowych do Eksploracji Danych (ED) powstały różne definicje tego zagadnienia. Najczęściej wykorzystywanymi w publikacjach definicjami, które najlepiej ukazują aktualny pogląd na temat Data Mining, są: Definicja 1 Interdyscyplinarna stosowana metoda naukowa – która wywodzi się z dziedziny nauki i techniki jaką jest informatyka. Zajmuje się ona wizualizacją i wydobywaniem ukrytej „implicite” informacji z dużych zasobów informacyjnych (baz danych) [2]. Wykorzystuje w tym celu technologie przetwarzania informacji oparte o statystykę i sztuczną inteligencję: uczenie maszynowe, metody ewolucyjne, logikę rozmytą oraz zbiory przybliżone. Definicja 2 Jeden z etapów procesu odkrywania wiedzy z baz danych, określany w skrócie jako KDD (ang. Knowledge Discovery in Databases). Termin ten został użyty w pierwszej pracowni KDD w 1989 roku w celu uwydatnienia tego, iż wiedza jest końcowym produktem odkrywania sterowanego danymi (ang. data-driven discovery). Knowledge Discovery in Databases jest wykorzystywane w takich naukach jak Sztuczna Inteligencja (ang. Artificial Inteligence – AI) czy też Uczenie Maszynowe (ang. Machine Learning) [3, 4]. Definicja 3 Kompletna metodologia CRISP-DM (ang. Cross-Industry Standard Process for Data Mining) opracowana przez trzy przedsiębiorstwa przemysłowe: SPSS (ang. Statistical Package for the Social Science), NCR (ang. National Cash Register Corporation) oraz Daimler Chrysler. Metodologia ta dostarcza ujednolicony, elastyczny oraz kompletny model przeprowadzania procesu Eksploracji Danych w przedsiębiorstwach, niezależnie od ich specyfikacji [5-7]. Do definicji pierwszej należy odnosić się z dystansem ze względu na to iż Eksploracja Danych jest młodą, dynamicznie rozwijającą się dyscypliną naukową. Natomiast definiowanie dyscypliny naukowej jest zawsze zadaniem kontrowersyjnym, ponieważ badacze często nie zgadzają się co do dokładnego zakresu i granic swojego obszaru Eksploracja danych w kontekście procesu Knowledge Discovery In Databases… 67 badań [8]. Z tego też względu aktualnie bezpieczniej jest (do czasu usystematyzowania nauki) odnosić się do Eksploracji Danych i osadzać ją w kontekście KDD [3, 9] lub CRISPDM [5, 7]. Przytoczone wyżej trzy definicje (Def.1, Def.2, Def.3) różnią się pod względem przyjmowanego punktu widzenia na temat Eksploracji Danych. Wspólną ich podstawą jest analiza zbiorów danych obserwowanych w celu znalezienia nieoczekiwanych związków i podsumowania danych w oryginalny sposób tak, aby były zarówno zrozumiałe, jak i przydatne w odpowiednich zastosowaniach [10]. Analiza ta zachodzi najczęściej w istniejących systemach informatycznych, w których zgromadzone informacje przekształcane są w inne rodzaje informacji przystosowanych do przeprowadzenia Eksploracji Danych (systemy preeksploracyjne). Analiza danych może także zachodzić w specjalnie skonstruowanych platformach informatycznych, przy konstruowaniu których, odgórnie zakłada się potrzebę przeprowadzenia Eksploracji Danych (systemy posteksploracyjne). W niniejszym artykule w punkcie drugim omówiono zastosowanie ED w kontekście procesów KDD i CRISP-DM. Dokonano szczegółowego opisu tych procesów, wraz z przytoczeniem ich genezy. W punkcie trzecim opisano eksperymentalne zastosowanie procesu KDD do eksploracyjnej analizy tekstu. Analiza ta zostanie przeprowadzona na potrzeby badań dotyczących budowy i zastosowania Inteligentnego Systemu Wspomagania Decyzji (ang. Inteligent Decission Support System – IDSS) [11] dla Państwowej Straży Pożarnej (PSP) zapoczątkowanych przez wydział informatyki Szkoły Głównej Straży Pożarnej (SGSP) [12]. 2. Data mining w kontekście procesu KDD i CRISP-DM Knowledge Discovery in Databases i Cross-Industry Standard Process for Data Mining zazwyczaj dotyczą informacji składowanych w bazach danych z przyczyn innych niż analizy mające na celu wydobycie wiedzy (systemy preeksploracyjne). Aktualnie w wielu sytuacjach koniecznością stało się stosowanie do procesu analizy informacji w bazach danych metod i technik KDD i CRISP-DM, oraz związanych bezpośrednio z nimi algorytmów Eksploracji Danych. Wynika to z szybkiego przyrostu informacji w bazach danych oraz nieprzystosowania dotychczasowych metod i technik (np. On-line Analytical Processing, zapytań typu ad-hoc Standard Query Language) do wnikliwej analizy, generowania i samoistnej weryfikacji hipotez bez bezpośredniego udziału ekspertów [13, 14]. Wydobywaniem wiedzy z danych, oprócz grup naukowo-badawczych i prywatnych firm (korporacji), zainteresowane są także rządy niektórych krajów, w szczególności Stany Zjednoczone. Finansują one i wspierają badania w kierunku Data Mining, gdyż dostrzegły tkwiący w tych technikach potencjał dotyczący polepszenia ochrony zdrowia [15], wewnętrznego i zewnętrznego bezpieczeństwa narodowego [16] oraz bezpieczeństwa ekonomicznego. 2.1. Data Mining jako element procesu Knowledge Discovery in Databases Knowledge Discovery in Databases jest specjalizacją procesu Knowledge Discovery (KD). Został opracowany w środowisku naukowym przez: Frawley, Piatetsky-Shapiro, Matheus, Fayyad i Smyth [3, 4, 17]. Odkrywanie wiedzy (ang. Knowledge Discovery) jest nie trywialnym procesem identyfikowania ważnych, nowych, potencjalnie przydatnych i ostatecznie zrozumiałych wzorów w danych [3]. Dodanie końcówki „In Databases” do Knowledge Discovery ma na celu podkreślenie, że transformacji podlegają zdigitalizowane dane, składowane w bazach danych, do postaci informacji użytecznej dla użytkownika 68 Marcin Mirończuk, Tadeusz Maciak i algorytmu przetwarzania. Na rysunku 1 został przedstawiony konceptualny model relacji zachodzących pomiędzy pojęciami KD, KDD i Data Mining. Wynika z niego, że Knowledge Discovery jest szerszym pojęciowo znaczeniem odnoszącym się do relacji zachodzących w świecie rzeczywistym, które są badane i analizowane bez udziału komputerów. Rysunek 1. Interpretacja graficzna pojęć KD, KDD, DM. Źródło: opracowanie własne Poza graficzną interpretacją pojęć KD, KDD i DM na rysunku 1 przedstawiono też ogólny sposób przetwarzania danych w poszczególnych koncepcyjnych warstwach. Dane ze świata rzeczywistego poddane procesowi digitalizacji i modelowania mogą zostać analizowane za pomocą technik i metod wykorzystujących do obliczeń komputery. Odpowiednio przetworzone informacje cyfrowe, na początkowych etapach procesu KDD, są następnie przetwarzane przez metody i algorytmy Data Mining oparte o Sztuczną Inteligencję (SI) i statystykę w celu wydobycia informacji i utworzenia modelu procesu z analizowanych danych. Proces KDD jest iteracyjny, zawsze istnieje możliwość cofnięcia się w celu ewentualnej korekty parametrów czy weryfikacji założeń. Ponadto na każdym z jego etapów niezbędny jest udział człowieka w postaci eksperta lub grupy ekspertów z danej dziedziny do której dostosowuje się KDD. Na rysunku 2 zostały przedstawione podstawowe etapy KDD, na które składają się następujące czynniki [3, 18, 19]: zapoznanie się z wiedzą dziedzinową aplikacji i zidentyfikowanie celów procesu odkrywania wiedzy; selekcja danych ze skonsolidowanego zbioru danych utworzonego najczęściej ze zbioru danych pochodzących z heterogenicznych i rozproszonych źródeł, ważnych dla badanego problemu; wstępne przetwarzanie danych (czyszczenie, integracja, selekcja, uzupełnianie) – etap, na którym następuje usuwanie niespójnych, niepełnych informacji nieistotnych z punktu widzenia dokonywanej analizy. Dokonywane są także zabiegi uzupełniania danymi Eksploracja danych w kontekście procesu Knowledge Discovery In Databases… 69 zmiennych wybranych do analizy, które nie posiadają przypisanej wartości za pomocą np.: uśredniania, wpisania stałej wartości, wygenerowania losowej wartości z obserwowanego rozkładu zmiennej; odnajdywanie i redukcja zmiennych – odkrywanie przydatnych cech (zmiennych) do modelowania postawionego celu zadania. Redukowanie wymiarowości zagadnienia (redukcja zmiennych) lub transformacja zmiennych poprzez odnajdywanie niezmiennych zależności (bliskiej korelacji) między nimi. Odkrywanie punktów oddalonych zmiennych (ang. outliers); Rysunek 2. Proces KDD. Źródło: [3] dostosowanie procesu KDD do realizacji celu ustalonego w punkcie pierwszym – wybór odpowiedniej metody lub algorytmu Eksploracji Danych z zakresu: opisu (podsumowania), szacowania (estymacji), przewidywania (predykcji), klasyfikacji, grupowania, odkrywania reguł w badanym zbiorze danych; transformacja danych – procesowi temu podlegają dane oczyszczone i ustrukturyzowane, które można przekształcić do postaci wymaganej przez algorytm eksploracji danych. Przekształcanie danych dokonywane jest m.in. za pomoc normalizacji, jak: min-max (ang. min-max normalization) lub standaryzacji np. za pomocą Z-score standardization; eksploracja danych – etap na którym zostaje utworzony model (modele) bądź wydobyty wzorzec (wzorce) za pomocą wcześniej ustalonych metod i algorytmów Data Mining odpowiednich do rozwiązywanego problemu; interpretacja, analiza i ocena wyników – identyfikacja interesujących wydobytych zależności ze wszystkich otrzymanych modeli, wzorców. Oszacowanie ich i wybranie rozwiązania które najbardziej pasuje do realizacji zakładanych na samym początku celów. Etap ten powinien prowadzić do uzyskania przydatnego modelu badanego procesu w kolejnych iteracjach poprzez wprowadzanie odpowiednich modyfikacji na przestrzeni całego procesu odkrywania wiedzy, a w końcu do uzyskania użytecznej wiedzy; prezentacja wyników – graficzna reprezentacja wydobytych danych w postaci różnego rodzaju wykresów, czy diagramów. Krok przeprowadzany równolegle z interpretacją, analizą i oceną wyników. 70 Marcin Mirończuk, Tadeusz Maciak 2.2. Data Mining jako model CRISP-DM w zarządzania projektami Cross-Industry Standard Process for Data Mining jest alternatywnym podejściem do zagadnienia eksploracji danych. CRISP-DM został opracowany w środowisku biznesowym tj. przez trzy koncerny: SPSS (ang. Statistical Package for the Social Science), NCR(ang. National Cash Register Corporation) oraz Daimler Chrysler [5, 20]. Prace zostały zainicjowane w 1996 roku, niedługo po utworzeniu modelu KDD i pierwszych publikacjach na jego temat. Twórcami CRISP-DM oraz jego specyfikacji byli: Chapman (NCR), Clinton (SPSS), Kerber (NCR), Khabaza (SPSS), Reinartz (Daimler Chrysler), Shearer (SPSS) i Wirth (Daimler Chrysler). W sierpniu 2000 roku opublikowana została specyfikacja wersji 1.0 [7]. W przeciwieństwie do KDD, które jest chętnie adoptowane w środowisku naukowobadawczym, CRISP-DM powstał do celów komercyjnych (handlowych, przemysłowych) i jest częściej adoptowane w środowisku biznesowym np. do budowy elementów systemu ERP (ang. Enterprise Resource Planning) takich jak CRM (ang. Customer Relationship Management) i platformy BI (ang. Business Intelligence) [21, 22]. W CRISP-DM zostały zebrane najlepsze praktyki tworzących go przedsiębiorstw. Oferuje kompletny, uniwersalny model (Rysunek 3), który może być stosowany do przeprowadzania wielokrotnego procesu eksploracji danych niezależnie od rodzaju przemysłu, narzędzi i oprogramowania w bardziej dogodny, efektywny, niezawodny i mniej kosztowny sposób [5, 7]. Zgodnie z metodologią CRISP-DM cykl procesu eksploracji danych, który został przedstawiony na rysunku 3, podzielony jest na sześć głównych etapów [5, 7]: zrozumienie uwarunkowań biznesowych (ang. Business Understanding) – pierwsza faza projektu, która może być także traktowana jako zrozumienie uwarunkowań badawczych. Skupia się na zrozumieniu celów i wymagań biznesowych i przekształceniu tej wiedzy w definicje problemu Data Mining. Następuje ustalenie wstępnego planu realizacji projektu systemu, który posłuży do osiągnięcia wyznaczonych celów; zrozumienie danych (ang. Data Understanding) – początkowa faza dotycząca zrozumienia danych. Zgromadzenie potrzebnych danych w jedno skonsolidowane źródło. Zapoznanie się z danymi, zidentyfikowanie problemu jakości danych, odkrywanie pierwszych zależności w danych lub wykrywanie interesujących grup (podzbiorów), w celu utworzenia wstępnych hipotez; przygotowanie danych (ang. Data Preparation) – faza zajmująca największą ilość czasu. Pracochłonny etap przekształcania wstępnych nieobrobionych danych, którego finałem są zestawy danych wykorzystywane we wszystkich pozostałych fazach (dane te są wykorzystane w modelowaniu przez programy narzędziowe). Zadanie przygotowania danych jest czasami wielokrotnie powtarzanym etapem, który nie posiada określonego porządku wykonywania czynności z nim związanych. Odpowiednio wyselekcjonowane, przetransformowane i oczyszczone tabele, rekordy i atrybuty są gotowe do wykorzystania przez programy narzędziowe; modelowanie (ang. Modeling) – w fazie tej stosuje się wyselekcjonowane i optymalnie skalibrowane pod względem parametrów, różne techniki i metody modelujące. Zwykle stosuje się kilka technik dla tego samego problemu eksploracji danych w celu otrzymania grupy modeli, z pośród których można wybrać optymalny dla osiągnięcia postawionego celu. Niektóre techniki modelowania mają określone warunki narzucone na formę przetwarzanych danych. Z tego też względu następuje częste cofanie się do fazy przygotowania danych; Eksploracja danych w kontekście procesu Knowledge Discovery In Databases… 71 Rysunek 3. Model referencyjny (iteracyjny i adaptacyjny) CRISP-DM. Źródło: [23] ewaluacja (ang. Evaluation) – na tym etapie projektu zostaje otrzymany model (lub grupa modeli). Przed przejściem do końcowego zastosowania wybranego modelu dokonywana jest gruntowna ocena otrzymanego modelu. Sprawdzane jest czy wybrane rozwiązanie spełnia wszystkie założenia ustalone w pierwszym etapie. Na końcu tej fazy zostaje podjęta decyzja co do wykorzystania wyników eksploracji danych; wdrożenie (ang. Deployment) – utworzenie modelu zazwyczaj nie stanowi końca projektu. Nawet jeśli celem modelu jest zwiększanie wiedzy o posiadanych danych, zyskana wiedza musi zostać zorganizowana i zaprezentowana w sposób użyteczny dla klienta. Zależąca od wymagań faza wdrożenia może przybierać bardzo prosty charakter i wymagać tylko wygenerowania sprawozdania. Okazać się też może bardziej złożona np. będzie wymagać wdrożenia w innym dziale. W wielu przypadkach decyzję o procesie wdrożenia podejmuje klient, nie analityk danych. Nawet jeśli analityk nie przeprowadzi wdrożenia jest ważne aby klient rozumiał i mógł właściwie wykorzystać utworzone, wdrażane modele. Przedstawiony model na rysunku 3 opisuje kolejne fazy (ang. phase) procesu eksploracji danych, które realizują określone zadania (ang. task) i stanowią najwyższy poziom abstrakcji modelowania. Obejmuje on poszczególne stadia projektu DM z odpowiadającymi im zadaniami generycznymi (ang. generic task), którym z kolei odpowiadają zadania specjalizowane (ang. specialized task) wraz z powiązaniami między tymi zadaniami [7]. Przejścia pomiędzy kolejnymi etapami nie są ścisłe, jednakże pewna hierarchia przejść kształtowana jest w zależności od otrzymanych wyników z poprzedniego etapu. Wymusza to wstępną, odpowiednio dopasowaną kolejność faz [20]. Strzałki na rysunku 3 wskazują najczęstsze przejścia między etapami. Zewnętrzny okrąg na wykresie symbolizuje natomiast iteracyjną (wielokrotną) naturę procesu eksploracji da- 72 Marcin Mirończuk, Tadeusz Maciak nych [5]. Każda pełna iteracja projektu stanowi instancję procesu (ang. process instance), czyli zapis przedsięwziętych akcji, podjętych decyzji i otrzymanych rezultatów. Pojedyncza instancja opisuje wyniki faktycznego działania (działań). Na początkowym poziomie opisu projektu nie jest możliwe zidentyfikowanie wszelkich możliwych etapów. Poszczególne etapy mogą występować pomiędzy wszystkimi zadaniami wymaganymi przez Data Mining w zależności od celu, kontekstu, zamierzeń użytkownika i przede wszystkim od danych . Często rozwiązanie określonego problemu biznesowego lub badawczego prowadzi do dalszych interesujących kwestii, które można rozwiązać za pomocą tego samego ogólnego planu co poprzednio [20] dlatego też elastyczna budowa modelu CRISP-DM doskonale się do tego nadaje. 3. Wykorzystanie KDD do eksploracyjnej analizy tekstu Opis spektrum zastosowań ED przeprowadzanej m.in. za pomocą wyżej opisanych metod i nie tylko, znacznie wykracza poza ramy niniejszego artykułu. Przedstawić można jednak kilka wyróżniających się dziedzin wykorzystujących w badaniach metody, techniki i algorytmy z zakresu ED. Należą do nich: bazy danych – w szczególności hurtownie danych i bazy multimedialne. Bazy multimedialne stanowią szczególny przypadek bazy danych, która wykorzystuje różne formy składowania i przeszukiwania informacji w celu dostarczania odbiorcom wiedzy na ich temat. Bazy multimedialne przystosowane zostały do pracy z takimi źródłami danych ja np. tekst, dźwięk, grafika, animacja, wideo. Ze względu na to na jakim typie mediów dokonywana jest ED wydzielone zostały osobne gałęzie tej dziedziny do których należą m.in. [24-28]: eksploracja obrazów (ang. Picture Mining), eksploracja tekstów (ang. Text Mining, TM), eksploracja wideo (ang. Video Mining) czy też eksploracja map cyfrowych (ang. Spatial Mining). Uwzględnione w tej grupie, obok multimedialnych baz danych, hurtownie danych wyróżnione zostały z tego względu iż agregują dane historyczne, które są oczyszczone w procesie ETL (ang. extraction, transformation, loading). Proces ten przyspiesza znacznie etap czyszczenia danych występujący w procesie KDD i CRISPDM a który pochłania większość czasu przy przeprowadzaniu ED [29, 30]. Dlatego m.in. pod tym względem platformy te stanowią doskonałe środowisko do przeprowadzania zadań eksploracyjnych. Internet i związana z nim tzw. eksploracja stron internetowych (ang. Web Mining) – technika ED, mająca na celu odkrywanie i uzyskiwanie przydatnych informacji, wiedzy i wzorów z dokumentów i usług Internetowych powszechnie określanych jako World Wide Web (WWW) [31]. W obrębie tej techniki możemy wyróżnić trzy jej specjalizacje [32, 33]: eksploracja struktury stron internetowych (ang. Web Structure Mining), eksploracja zawartości stron internetowych (ang. Web Content Mining) i eksploracja użyteczności stron (ang. Web Usage Mining). przemysł i związany z nim tzw. Ang. Quality Mining - a ściślej Ang. Quality Control Data Mining czyli ED wykonywana na rzecz kontroli jakości. Polega na zgłębianiu danych w sterowaniu jakością [34]. Od zwykłej eksploracji odróżnia się m.in. tym iż występuje tutaj konieczność reagowania na zmiany w danych na bieżąco (on-line). środowisko biznesowe (profit i no-profit) - integruje, wykorzystuje i generuje nowe zastosowania oraz wyzwania badawcze na polu ED np. analiza danych on-line w systemach e-commerce, czy systemy tłumaczeń on-line w platformach e-learning wykorzystujące pośrednio techniki TM [35]. Systemy informacyjne (wiedzy) budowane w oparciu o ED i towarzyszące jej metody przeprowadzania nie opierają się mocno na technologii lecz na charakterystyce danych po- Eksploracja danych w kontekście procesu Knowledge Discovery In Databases… 73 chodzących z wycinka modelowanej (badanej) rzeczywistości. W obszarze zainteresowań i badań autorów leży wykorzystanie metody KDD do przeprowadzenia eksploracyjnej analizy tekstu (ang. Text Mining) stanowiącej podgrupę ED wydzieloną ze względu na charakterystyczny rodzaj danych tj. tekst. Analiza ta polega na wykorzystaniu inteligentnych reguł z zakresu Lingwistyki Komputerowej zajmującej się analizą języka naturalnego NLP (ang. Natural Language Processing), metod statystycznych oraz technik m.in. z zakresu przeszukiwania i grupowania danych. Wykorzystywana jest do pozyskiwania informacji (wiedzy) z dużych nieustrukturyzowanych zbiorów danych tekstowych [36]. Aktualnie w Szkole Głównej Straży Pożarnej (SGSP) prowadzone są badania i eksperymenty z zakresu zastosowania rozproszonych baz danych [37-39] i ontologii do opisu zdarzeń zachodzących w obrębie Państwowej Straży Pożarnej (PSP) [12, 40]. W ramach prowadzonych badań powstał problem dotyczący możliwości wykorzystania już istniejących danych tekstowych z bazy danych systemu ewidencji zdarzeń EWID [41, 42] i przekształcenia ich w wiedzę. Przeprowadzane badania kierują się w stronę utworzenia Grupowego Inteligentnego Systemu Wspomagania Decyzji (ang. Group Intelligent Decision Support System – GIDSS) [12]. Podstawę jego miałby stanowić tekstowy system wnioskowania na podstawie przypadków (ang. Case Based Resoning – CBR) [38, 43] lub System Ekspertowy (SE) (ang. Expert System – ES) oparty o reguły wydobyte za pomocą eksploracyjnej analizy tekstu. Bufor danych (wiedzy) dla wybranego systemu stanowiłaby rozproszona lub zcentralizowana, w zależności od wyników badań, multimedialna tekstowa baza danych. Dokonywać się w niej będzie zapis i odczyt np. przypadków zdarzeń zorganizowanych w postaci ontologii. Dodatkowo techniki z zakresu analizy tekstu wykorzystane zostaną do efektywnego przeszukiwania bufora wiedzy i wydobywania z niego potrzebnych w danym momencie określonych opisów przypadków zdarzeń. Metodę KDD do przeprowadzenia eksploracyjnej analizy tekstu wybrano ze względu na mało skomplikowany pod względem ilości założeń i kroków, przejrzysty metodycznie model (rozdział 2.1). Umożliwia on w badaniu o małej skali i rozproszoności szybkie nakreślenie zarysu obszaru badań wraz z utworzeniem jego planu realizacji. Ponadto jest elastyczny i daje się w łatwy sposób modyfikować i dostosować do realizowanego zadania badawczego. Nawet jeśli w jego trakcie zachodzą potrzeby zmian np. pewnych założeń projektowych. Pamiętać należy przy tym, że im wyżej (głębiej) znajdujemy się w procesie KDD lub CRISP-DM to koszt powrotu do punktów poprzednich znacznie rośnie. Z tego względu ważne jest dopracowanie początkowych założeń etapów powyższych metod. Przykładowa, opisana poniżej, realizacja eksploracyjnej analizy tekstu w oparciu o KDD prowadzi do powstania szkieletu systemu do eksploracji tekstu (ang. framework of system to text mining). Podstawowa specyfikacja systemu realizowanego na potrzeby prowadzonych badań przez SGSP opisana jest za pomocą procesu KDD i realizowany jest następująco: a) wiedza dziedzinowa i cele procesu odkrywania wiedzy – wiedzę dziedzinową stanowią m.in.: rozporządzenie Ministra Spraw Wewnętrznych i Administracji [44], system ewidencji zdarzeń EWID, analizy zdarzeń sporządzane po niektórych akcjach i informacje zebrane z wywiadów ze strażakami Jednostki Ratowniczo-Gaśniczej SGSP. Celem procesu odkrywania wiedzy jest po pierwsze dostarczenie dotąd nieznanych lub nieuwzględnionych podczas innych analiz atrybutów i ich wartości do tworzenia w zależności od wyboru: trójek Obiekt-Atrybut-Wartość (ang. Object-Attribute-Value – OAV), sieci semantycznych lub ontologii. Wybrana warstwa reprezentacji danych (wiedzy) ma ułatwić strukturyzację dokumentów oraz budować bazę klas systemu wyrażoną poprzez przypadki użycia w systemie CBR [38] (Rysunek 4) lub bazę wiedzy SE [12] wyrażoną poprzez inteligentne reguły. W zależności od wyboru platformy – tekstowy CBR lub SE – jeden z nich ma stanowić główną podstawę GIDSS w PSP [43]. Drugim celem reali- 74 Marcin Mirończuk, Tadeusz Maciak zowanym po ewaluacji rozwiązania i w drugim cyklu projektowym jest dokonanie minimalizacji wyznaczonego zbioru atrybutów potrzebnych do wyszukania i określenia odpowiedniego działania. Minimalizacja ma służyć m.in. polepszeniu użyteczności (ang. Usability) graficznego interfejsu użytkownika (ang. Graphic Interface User – GUI), poprzez który użytkownik komunikuje się z systemem. Na tym etapie należy także dokonać implementacji mechanizmu przeszukiwania/wyszukiwania odpowiedniego przypadku użycia lub reguły – w zależności od zaimplementowanego rozwiązania. W razie potrzeby należy dokonać optymalizacji tego rozwiązania. W początkowych etapach analizy dotyczących pozyskiwania przypadków użycia z ww. źródeł wiedzy wykluczono takie techniki jak kategoryzacja tekstu (ang. text categorization) i grupowanie tekstu (ang. text clustering) [38]. Niemniej zaznaczyć trzeba iż techniki te mogą w drugim etapie badań stanowić pomocne narzędzia do przeprowadzania odpowiedniej optymalizacji tworzonej platformy i należałoby rozpatrzyć ich użycie. Rysunek 4. Szkic specyfikacji obiektowej – schemat modelu klas reprezentujący podział interwencji w PSP. Źródło: [opracowanie własne] Na Rysunku 4 przedstawiono schemat modelu klas wyrażony w języku modelowania obiektowego UML (ang. Unified Modeling Language) [45]. Stanowi on szkic systemu CBR, po zamianie wyrażenia „Case” na „Reguła” można go rozpatrywać w kontekście SE. Schemat stanowi formalny opis obiektowy realizowanego przedsięwzięcia i rozszerza pomysł przedstawiony w pracy [38] o pola „działanie” i „rezultat”. Znajdować się mają w nich opisy podjętych działań w celu rozwiązania zaistniałego zdarzenia oraz rezultat (wniosek, konkluzja) tych działań wrażony w postaci logicznej. Zastosowano tutaj także pomysł bliższy rozwiązaniom programowym (obiektowym) poprzez zastosowanie Fabryki Abstrakcji (ang. Factory Abstrac) [46] w celu generowania z wybranego Kontenera (ang. Container) odpowiedniego przypadku użycia lub reguły i związanego z nim filtru (ang. Filter) [38]. Kontener jest abstrakcją i zawiera się w Kontenerze Głównym (ang. Main Container), który stanowi zbiór rodzajów interwencji PSP. Na Kontenery składają się: zagrożenia miejscowe, pożary i fałszywe alarmy. W każdym kontenerze przechowywane są odpowiednie dla niego zbiory klas przypadków zdarzeń lub reguł i powiązanych z nimi kolekcje filtrów; Eksploracja danych w kontekście procesu Knowledge Discovery In Databases… 75 b) selekcja danych – dokonana zostaje ze źródeł wymienionych w poprzednim kroku. W pierwszym etapie do analizy wybrane zostaną: dane tekstowe z sekcji opisowej zdarzeń znajdujących się w EWID oraz dane z analiz pochodzących z Komend Wojewódzkich. W drugim etapie nastąpi selekcja danych w postaci atrybutów i ich wartości opisujących zdarzenia. Selekcja będzie dokonywana już z utworzonej bazy wiedzy SE lub CBR; c) wstępne przetwarzanie danych – podczas realizacji pierwszego opisywanego cyklu do selekcji, czyszczenia i uzupełniania danych tekstowych proponuje się kilka zabiegów z zakresu płytkiej analizy tekstu [47] m.in.: odfiltrowanie zbędnych, niemających znaczenia wyrażeń np. różnego rodzaju przyimków i zaimków, oraz określanie częstotliwości występowania form wyrazowych. Filtr zbudowany w oparciu o płytką analizę tekstu może być niewystarczający i jakość uzyskanych danych niedostateczna. Z tego też względu rozpatruje się zastosowanie niskopoziomowej (głębokiej) analizy tekstu rozszerzającej funkcjonalność filtru [48]. Do dodatkowej funkcjonalności należeć będzie m.in. wychwytywanie synonimów, antonimów, homofonów, homogramów, hiponimów, hiperonimów, geronimów, homonimów, skrótów, apostrofów, myślników, zakończeń zdań oraz możliwość przeprowadzania lematyzacji (ang. stemming) [48]. Wszystkie te zabiegi mają na celu utworzenie korpusu językowego, na który składałby się m.in. słownik używanych słów do opisu zdarzeń zachodzących w obrębie PSP oraz worek słów (ang. bag-of-words) [28]. Na podstawie korpusu będzie można zaimplementować odpowiednią reprezentację wiedzy np. w postaci ontologii w wybranym systemie. Drugi etap realizacji eksploracji danych w zakładanej bazie wiedzy nie posiada aktualnie żadnych założeń co do wstępnego przetwarzania danych. Brak założeń wynika z tego iż aktualnie nie jest dostępna pełna wiedza dotycząca atrybutów, które mogą się znaleźć w bazie wiedzy; d) odnajdywanie i redukcja zmiennych – w przypadku analizy tekstu punkt ten jest realizowany w etapie poprzednim przy budowie filtru. Poprzez redukcję i transformację zmiennych można rozumieć np. proces lematyzacji. W drugim etapie projektowym odnajdywanie i redukcja zmiennych bezpośrednio wiąże się z celem eksploracji tj. optymalizacji zbioru przypadków/reguł opisujących zdarzenie poprzez odnajdywanie bliskiej korelacji między nimi; e) dostosowanie procesu KDD do realizacji celu ustalonego w punkcie pierwszym – do analizy tekstu przewiduje się wybranie metody z zakresu streszczenia tekstu (ang. document summarization) [49]. Służy ona do wytwarzania streszczeń z obszernego dokumentu lub grupy dokumentów. Przykładowy algorytm bada powiązania między wyrażeniami. Jeżeli kilka wyrażeń odwołuje się do danego wyrażenia, wówczas zwiększa się jego ranking. Jako podsumowanie analizy wyświetlane jest „n” zdań o najwyższym rankingu, tworząc streszczenie. Druga część eksperymentu związana z optymalizacją zbioru atrybutów opisujących przypadki/reguły zakłada użycie metody ukrytego indeksowania semantycznego (ang. Latent Semantic Indexing – LSI) [8]; f) transformacja danych – w zależności od formy uzyskanych danych z filtru będzie zależeć to czy dane te należy przekształcić. Filtr może zostać zaimplementowany w taki sposób aby dane te automatycznie transformował do wymaganej postaci przez wyselekcjonowany algorytm; g) eksploracja danych – fizyczna implementacja i realizacja, w wybranej technologii, zaplanowanych w poprzednich etapach zadań. Wykonywana jest ona za pomocą wyselekcjonowanych algorytmów i metod z etapu „dostosowanie procesu KDD”; h) interpretacja, analiza i prezentacja wraz z oceną wyników – krok w którym zostanie dokonane podsumowanie badań i w zależności od wyników dokonana zostanie odpo- 76 Marcin Mirończuk, Tadeusz Maciak wiednia ewaluacja rozwiązania. Na tym etapie aktualnie autorzy nie są w stanie przedstawić wyników gdyż eksperyment jest w trakcie planowania i przygotowań do implementacji oraz realizacji. Jeśli chodzi o prezentację i interpretację wyników to rozpatrywane są takie metody jak: sieci semantyczne, histogramy czy też modyfikacja grafu strony (ang. Websites as graphs) za pomocą którego można by było reprezentować dokumenty i powiązane z nim wyselekcjonowane frazy; 4. Podsumowanie W wyniku przeprowadzenia eksploracji danych za pomocą metody CRISP-DM jak i procesu KDD otrzymywane są zazwyczaj nowe interesujące informacje na temat badanego podmiotu (badanych danych). Z procesów tych często wynikają nowe, bardziej sprecyzowane pytania, które prowadzą do kolejnych iteracji eksploracji danych co umożliwia weryfikację poprzednich wyników (modeli, wzorców) [20]. Proces KDD można traktować jako jedną z wielu możliwych odmian modelu CRISPDM. Wynika to z faktu iż CRISP-DM w porównaniu z procesem KDD jest bardziej abstrakcyjną i szerszą projektowo koncepcją w podejściu do ED, która posiada formalną, sprecyzowaną formę opisu modelu. Nie traktuje on jej jako jednego ze swoich kroków, lecz problem Eksploracji Danych określa jako cały cykl działań podjętych na rzecz wydobycia potencjalnie interesujących dla nas informacji. Używając języka z dziedziny programowania można stwierdzić iż KDD dziedziczy pewne cechy i metody CRISP-DM. Mimo pojęciowych różnić i podejścia do problemu, obie koncepcje są strategiami przetwarzania informacji i wiedzy w stylu - z dołu do góry (ang. bottom-up) i z góry do dołu (ang. topdown). Oba podejścia są zsyntezowane tj. składają się z prostych elementów które podlegają dalszej analizie - rozkładowi na poszczególne zadania wraz z ich szczegółowym opisem. Niezależnie od tego czy KDD uznamy za potomka (w koncepcji projektowania obiektowego) CRISP-DM czy też za oddzielny niezależny proces, to w obu podejściach kluczową rolę odgrywają metody i algorytmy Data Mining. Bez względu na to czy do modelowania stosowany jest CRISP-DM czy KDD, oba podejścia wymuszają wstępne przetwarzanie danych w celu otrzymania poprawnych modeli przyjętych hipotez. Oba procesy, Knowledge Discovery In Databases i Cross-Industry Standard Process for Data Mining, mogą dotyczyć wydobywania informacji z danych zebranych w przeszłości, co było ich pierwotnym zadaniem. Mogą również zostać uwzględnione i zaadaptowane przy tworzeniu i projektowaniu nowych systemów (np. systemów ekspertowych, baz danych, hurtowni danych w połączeniu z On-line Analytical Processing [14, 50]). Analizy zdarzeń zachodzących w obrębie PSP realizowane są przez różne osoby. W wyniku tego często język i forma w jakiej są one sporządzane i opisywane nie daje się bezpośrednio zastosować do przetwarzania komputerowego m.in. wnioskowania. Dlatego do pozyskiwania informacji z tego typów dokumentów słusznym zdaje się zastosowanie zaawansowanych technik oraz metod z zakresu analizy tekstu jak i metody do opisu realizacji przedsięwzięcia wyrażonego za pomocą np. KDD. W opisanym przypadku w wyniku zastosowania KDD, pośrednio dostajemy częściową specyfikację systemu wyrażoną w postaci formalnego opisu obiektowego. Służy ona do utworzenia eksploracyjnego tekstowego szkieletu aplikacji (ang. framework application) dającego się potencjalnie w łatwy sposób sprząc z systemem CBR lub SE w zależności od dokonanego wyboru. Dalsze badania autorów kierować się będą w stronę budowania i implementacji w realizowanej platformie „inteligentnego” filtra danych. Filtr ten oparty o analizę tekstu umożliwi budowę korpusu językowego oraz dostarczy informacji do reprezentacji wiedzy w systemie. Eksploracja danych w kontekście procesu Knowledge Discovery In Databases… 77 Bibliografia [1] Brilman J. Nowoczesne koncepcje i metody zarządzania. Wydanie 1. Polskie Wydawnictwo Ekonomiczne, 2002. [2] Wilk-Kołodziejczyk D. Pozyskiwanie wiedzy w sieciach komputerowych z rozproszonych źródeł informacji. In: Lesław H.H. (red.). Społeczeństwo informacyjne Wizja czy rzeczywistość? [on-line] Kraków: Uczelniane Wydawnictwa Naukowo - Dydaktyczne, 2003, 30 maja. [dostęp: 16.11.2007] http://winntbg.bg.agh.edu.pl/skrypty2/0095/285295.pdf. [3] Fayyad U., Piatetsky-Shapiro G., Smyth P. From Data Mining to Knowledge Discovery in Databases. AI Magazine, 1996. [4] Piatetsky-Shapiro G., Frawley J. W. Knowledge Discovery in Databases. AAAI/MIT Press, 1991. [5] CRISP-DM. [on-line] [dostęp: 1.06.2008] http://www.crisp-dm.org/. [6] Metodologia Data Mining – model referencyjny CRISP-DM. [on-line] [dostęp: 01.06.2008] http://www.spss.pl/konsulting/konsulting_datamining_metodologia.html. [7] Chapman P., Clinton J., Kerber R., Khabaza T., Reinartz T., Shearer C., et al. CRISPDM 1.0 Step-by-step data mining guide. [on-line]. [dostęp: 01.06.2008] http://www.crisp-dm.org/CRISPWP-0800.pdf. [8] Hand D., Mannila H., Smith P. Eksploracja danych. Wydanie 1. Warszawa: Wydawnictwo Naukowo-Techniczne, 2005. [9] Fayyad U. M., Piatetsky-Shapiro G., Smyth P. From Data Mining to Knowledge Discovery: An Overview. AAAI Press/MIT Press, s. 1-36. [10] Hand D., Maninila H., Smyth P. Principles of Data Mining. Cambridge: MIT Press, 2001. [11] Zhou F., Yang B., Li L., Chen Z. Overview of the New Types of Intelligent Decision Support System. Innovative Computing Information and Control, No 1(10), 2008, s. 267-267. [12] Mirończuk M., Karol K. Koncepcja systemu ekspertowego do wspomagania decyzji w Panstwowej Strazy Pozarnej. W: Grzech A., Juszczyn K., Kwaśnicka H., Nguyen N.T., (red.). Inżynieria Wiedzy i Systemy Ekspertowe. Warszawa: Akademicka Oficyna Wydawnicza EXIT, 2009. [13] Morzy T. Eksploracja danych: problemy i rozwiązania. [on-line] [Zakopane]: V Konferencja PLOUG 1999 – Integracja danych i systemów informatycznych, 1999, 12-16 października. [dostęp: 16.11.2007] http://www.ploug.org.pl/konf_99/pdf/7.pdf. [14] Zakrzewicz M. Data Mining i odkrywanie wiedzy w bazach danych. [on-line] [Zakopane]: Konferencja PLOUG'97 - Sieciowy system informacji o projektach badawczych, 1997. [dostęp: 16.11.2007] http://www.cs.put.poznan.pl/mzakrzewicz/presentations/ ploug97.pdf. [15] Houston A. L., Chen H., Hubbard S. M., Schatz B. R., Ng T. D., Sewell R. R., et al. Medical Data Mining on the Internet: Research on a Cancer Information System. Artificial Intelligence Review, No 13, 1999, s. 437-466. [16] Clinton B. New York University speech, Salon.com [on-line]. [dostęp: 01.06.2008] http://www.salon.com/politics/feature/2002/12/06/clinton/print.html. [17] Frawley J. W., Piatetsky-Shapiro G., Matheus C. Knowledge Discovery in Databases: An Overview. AI Magazine, No 13(3), 1992, s. 57-70. [18] Janicki M., Ślęzak D. Data mining w praktyce. Wprowadzenie w tematykę [on-line]. [dostęp: 01.06.2008] http://www.qed.pl/WstepDM.html. 78 Marcin Mirończuk, Tadeusz Maciak [19] Kobos M. Data Mining. Przegląd Eksploracji danych [on-line]. [dostęp: 01.06.2008] http://www.mini.pw.edu.pl/~mandziuk/23-11-05.pdf. [20] Larose T. D. Odkrywanie wiedzy z danych. Wydanie 1. Warszawa: Wydawnictwo Naukowe PWN, 2006. [21] Berson A., Smith S., Thearling K. Building Data Miting Applications for CRM. [22] Żytniewski M. Budowa modeli dla analitycznych systemów CRM [on-line]. [dostęp: 01.06.2008] http://www.mini.pw.edu.pl/~mandziuk/23-11-05.pdf. [23] Crisp. [on-line] [dostęp: 01.06.2008] http://www.spss.pl/dodatki/obrazki/crisp.gif. [24] Jia J. W., Wang J. Z., Li J., Lin S. C. Evaluation Strategies For Automatic Linguistic Indexing Of Pictures. Proc IEEE Int Conf Image Processing, 2003. [25] Kotsiantis S., Kanellopoulos D., Pintelas P. Multimedia mining. WSEAS Transactions on Systems, No 3, 2004, s. 3263-3268. [26] Quack T., Ferrari V., Gool L. V. Gool. Video mining with frequent itemset configurations. In Proc CIVR: Springer, 2006. p. 360-369. [27] Santos M., Amaral L. Knowledge Discovery in Spatial Databases through Qualitative Spatial Reasoning. Portugal, 2000. [dostęp: 05.05.2009] http://repositorium.sdum. uminho.pt/bitstream/1822/5584/1/PADD2000_MS_LA.pdf. [28] Solka J. L. Text Data Mining: Theory and Methods. Statistic Survey. [29] Ansari S., Kohavi R., Mason L., Zheng Z. Integrating e-commerce and Data Mining: Architecture and Challenges. [30] Kohavi R., Provost F. Applications of Data Mining to Electronic Commerce Kluwer Academic, 2001. [31] Szełemej Ł. Przegląd metod ekstrakcji wiedzy w serwisach WWW – Web Structure Mining. [32] Kosala R., Blockeel H. Web Mining Research: A Survey. SIGKDD Explorations, No 2, 2000, s. 1-15. [33] Staś T. Wykorzystanie technik ewolucyjnych w procesie nowoczesnej personalizacji portali internetowych. Studia i materiały polskiego stowarzyszenia zarządzania wiedzą. Bydgoszcz: PSZW, 2007. [34] Demski T. Data Mining w sterowaniu procesem (QC Data Mining). StatSoft Polska. [dostęp: 20.09.2008] http://www.statsoft.pl/czytelnia/jakosc/sixqcminer.pdf. [35] Naoki Y. S., Morikawa M. H., Fellow T. I., Shi Y. Open Smart Classroom: Extensible and Scalable Learning System in Smart Space Using Web Service Technology. IEEE Transactions on Knowledge and Data Engineering, No 6(21), 2009. [36] Rajman M. Text Mining – Knowledge Extraction from Unstructured Textual Data. 6th Conference of International Federation of Classification Societies (IFCS-98), 1998. [37] Krasuski A. Rozproszona baza danych − możliwości wykorzystania w PSP. Przegląd Pożarniczy, No 5, 2006, s. 30−33. [38] Krasuski A., Maciak T. Wykorzystanie rozproszonej bazy danych oraz wnioskowania na podstawie przypadków w procesach decyzyjnych państwowej straży pożarnej. [39] Krasuski A., Maciak T. Rozproszone bazy danych w Państwowej Straży Pożarnej − model systemu. In: Kozielski T., editor. Bazy danych, technologie, narzędzia. Warszawa WKŁ, 2005. p. 135−142. [40] Krenski K., Maciak T., Krasuski A. An overview of markup languages and appropriateness of XML for description of fire and rescue analyses. Zeszyty Naukowe SGSP, No 37, 2008, s. 27-39. [41] Abakus: System EWID99. [on-line] [dostęp: 01.05.2009] http://www.ewid.pl/ ?set=rozw_ewid&gr=roz. Eksploracja danych w kontekście procesu Knowledge Discovery In Databases… 79 [42] Abakus: System EWIDSTAT. [on-line] [dostęp: 01.05.2009] http://www.ewid.pl/ ?set=ewidstat&gr=prod. [43] Mirończuk M., Maciak T. Projekt Grupowego Inteligentnego Systemu Wspomagania Decyzji dla Państwowej Straży Pożarnej. Zeszyty Naukowe SGSP, preprint (2009). [44] Rozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 29 grudnia 1999 r. w sprawie szczegółowych zasad organizacji krajowego systemu ratowniczogaśniczego. Dz.U.99.111.1311 § 34 pkt. 5 i 6. [45] Fowler M. UML Distilled: A Brief Guide To The Standard Object Modeling Language. Wydanie 3. Addison-Wesley Professional 2004. [46] Gamma E. Wzorce Projektowe. [47] Sołdacki P. Wprowadzenie do eksploracji tekstu i technik płytkiej analizy tekstu. [online] [dostęp: 01.03.2009] http://www.icie.com.pl/ZISI/Soldacki_Text_Mining.ppt. [48] Makowiecka A. Inżynieria lingwistyczna. Komputerowe przetwarzanie tekstów w języku naturalnym. Warszawa: PJWSTK, 2007. [49] Stergos A., K. Vangelis, Panagiotis S. Summarization from medical documents. Artificial Intelligence in Medicine, No 2, 2005, s. 157−177. [50] Goil S., Choudhary A. A Parallel Scalable Infrastructure for OLAP and Data Mining. IEEE Computer Society, 1999. Modeler modelu przestrzennego DOD w środowisku TOPCASED Stanisław Niepostyn, Ilona Bluemke Politechnika Warszawska, Instytut Informatyki Abstract: In this paper a modeler, named Dodocum, of three dimensional Document Circulation Diagram(DOD) implemented in the TOPCASED environment is presented. This tool generates appropriate UML diagrams from a DOD model. Three dimensional DOD model, briefly described in the paper, enables to design the functionality, structure and even the behavior of an application. Automatically generated UML diagrams are consistent and well enough describe the logical view of software. Metamodel of three dimensional Document Circulation Diagram(DOD) is also presented and the transformation from DOD into UML diagrams are shown. Keywords: MDA, TOPCASED, eclipse, DOD, UML, EMF, GMF 1. Wprowadzenie Model perspektyw architektonicznych „4 + 1” Kruchtena [1] opisuje proces tworzenia oprogramowania, w którym pewne elementy z pewnych perspektyw są dość luźno powiązane z elementami innych perspektyw na zasadzie bliżej nieokreślonych reguł decyzyjnych oraz heurystyk. Proces tworzenia oprogramowania w dużym stopniu zależny jest od wiedzy i doświadczenia projektantów docelowego systemu. Architektura sterowana modelem (MDA - Model Driven Architecture [1]) polega na umiejscowieniu modelowania na centralnym miejscu wytwarzania oprogramowania, oddzieleniu poszczególnych warstw projektu od siebie oraz automatycznej generacji kodu wynikowego z modelu. Ta automatyczna generacja kodu wynikowego z modelu zakłada zaprojektowanie wcześniej odpowiednich transformacji (np. Model-To-Text). Transformacje te to odpowiednie reguły decyzyjne i heurystyki zebrane w trakcie tworzenia podobnych projektów i zapisane w formie wzorców projektowych, czy też odpowiednich parametryzowanych fragmentów docelowego kodu, czy też w formie odpowiedniego oprogramowania produkującego stosowny kod (również modele). Proces tworzenia oprogramowania, w pewnym zakresie, można sformalizować i opisać za pomocą tzw. transformacji zawierających wspomniane wcześniej „reguły decyzyjne oraz heurystyki”. Transformacje takie wymagają jedynie zaprojektowania przez użytkownika odpowiedniego modelu docelowej aplikacji, gdyż pozostałe aspekty rozważanej perspektywy (np. zachowanie, funkcjonalność albo struktura), która odgrywa wiodącą rolę przy generowaniu oprogramowania (najczęściej jest to perspektywa logiczna), zostały wcześniej zaimplementowane w narzędziu zgodnym z MDA. Standardy MDA umożliwiają zachowanie wzajemnych związków pomiędzy kolejnymi modelami oraz pozwalają na opis ich transformacji. Transformacje mogą być powtarzalne (ang. reused) dla wielu innych podobnych projektów budowy oprogramowania. Stąd też wzrost zainteresowania rozwiązaniami poMetody Informatyki Stosowanej, nr 2/2009 (19), s. 81-91 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 82 Stanisław Niepostyn, Ilona Bluemke zwalającymi automatycznie generować oprogramowanie bez potrzeby udziału w tym procesie szeregu specjalistów, których wiedza i doświadczenie zostały już wcześniej, zaimplementowane w narzędziu zgodnym z MDA. W niniejszej pracy przedstawiono modeler Dodocum, modelu przestrzennego DOD – Diagramu Obiegu Dokumentów, zrealizowany w środowisku Topcased. Model przestrzenny DOD, będący oryginalnym rozwiązaniem Autorów, w skrócie przedstawiono w sekcji 2, a dokładniejszy opis jest w [5][6][7]. Model przestrzenny DOD znacznie upraszcza dotychczasową metodę opisu procesów biznesowych DOD, a jednocześnie pozwala automatycznie uzyskać spójne i kompletne diagramy UML pomocne w dalszym procesie budowy oprogramowania, przy generowaniu szkieletu oprogramowania implementującego zaprojektowany proces biznesowy DOD. Środowisko Topcased oraz proces budowy aplikacji w tym środowisku przedstawiono w sekcji 3. W dalszej części pracy zaprezentowano metamodel DOD i jego transformację do modeli UML. 2. Model przestrzenny DOD Na Rysunek 1 przedstawiono przykład prostego procesu biznesowego zamodelowanego za pomocą diagramu DOD oraz „sprzężonych” z DOD diagramów UML opisującymi perspektywę logiczną. Diagram DOD posiada proste i jednoznaczne powiązania m.in. z diagramem obiektów (struktura), diagramem stanów (zachowanie) oraz diagramem przypadków użycia (funkcjonalność). Każdemu obiektowi z nagłówka diagramu DOD odpowiada jeden obiekt. Związki pomiędzy obiektami wyznacza się poprzez identyfikację przepływów informacji (poziome strzałki) pomiędzy obiektami (egzemplarzami obiektów) na diagramie DOD. Ponadto, dla każdego takiego obiektu zidentyfikowanego na diagramie DOD można w prosty i jednoznaczny sposób wyznaczyć jego zachowanie (diagram maszyny stanowej). Operacje w DOD są nazwane i jest ich ograniczona liczba, więc można je wykorzystać do nazwania stanów obiektów na diagramie maszyny stanowej. W podobny sposób można odwzorować elementy z diagramu DOD na diagram przypadków użycia. Na diagramie DOD, dla każdego obiektu, wyraźnie zaznaczona jest kolejność wykonywania poszczególnych operacji na tym obiekcie, stąd też przejścia na diagramie maszyny stanowej są odwzorowane w sposób jednoznaczny z odpowiednich przepływów na diagramie DOD. W celu zwiększenia czytelności podanego mechanizmu odwzorowań zaznaczono w nazwach obiektów numery używane na diagramie DOD. Podobną technikę oznaczeń zastosowano na diagramie maszyny stanowej – podane numery z diagramu maszyny stanowej odpowiadają odpowiednim numerom operacji i przepływów z diagramu DOD. Przykładowo na Rysunek 1 pokazano odwzorowania poszczególnych elementów na diagram przypadków użycia. Jako przypadek użycia systemu zidentyfikowano każdą operację z diagramu DOD i przypisano ją do odpowiedniego aktora, który również wyznaczany jest jednoznacznie z diagramu DOD. W nazwach systemowych przypadków użycia dodatkowo zamieszczono numery operacji, którym odpowiadają zidentyfikowane przypadki użycia. W celu zwiększenia czytelności zastosowanej techniki na rysunku nie pokazano wszystkich odwzorowań. W celu lepszego zobrazowania opisanego wyżej mechanizmu odwzorowania elementów diagramu DOD na poszczególne elementy odpowiednich diagramów UML pokazano na Rysunek 2 trójwymiarowy model przestrzenny DOD (3DOD). W modelu tym poszczególne rzuty na odpowiednio dobrane płaszczyzny można potraktować jako odwzorowanie części elementów diagramu DOD na konkretny diagram UML reprezentujący wyróżniony wymiar perspektywy logicznej. Modeler modelu przestrzennego DOD w środowisku TOPCASED class Diagram klas Opinia [2] 83 stm Decyzja-statechart Podanie [1] Koniec Start Decyzja [3] 10 Diagram obiektów – wymiar struktury Utworzony 11 12 Podpisany 13 Zarchiwizowany 15 14 16 Wysłany 17 Diagram stanów – wymiar zachowania O pinia P odanie [2] Rejestr K ancelaryjny D ecyzja [1] P etent [3] 01 02 18 K P 17 04 U rzędnik 05 09 03 09 16 11 15 06 06 08 D yrektor RK 12 08 07 07 14 13 Diagram Obiegu Dokumentów – DOD – realizacja przypadków użycia uc Diagram UC Obsługa sprawy Utworzenie opinii - 05 Akceptacja podania - 07 Utworzenie decyzji - 11 Akceptacja opinii - 07 Urzędnik Dyrektor Kontrola podania - 03 Archiwizacja dokumentów 09,15 Akceptacja decyzji - 13 Rejestr Kancelaryjny Diagram przypadków użycia – wymiar funkcjonalności Rysunek 1. Diagram DOD (źródło [7]) Rysunek 2. Model przestrzenny DOD (źródło [7]) 3. Środowisko TOPCASED Projekt TOPCASED (Toolkit In OPensource for Critical Application & SystEms Development) [4] powstał w celu redukcji kosztów wytwarzania oprogramowania, które wspiera 84 Stanisław Niepostyn, Ilona Bluemke różnorodne dziedziny inżynierii procesów. Animatorem projektu Topcased była firma Airbus, która w 2004 roku utworzyła wraz z innymi znanymi firmami zespół projektowy, a wynik prac owego zespołu został zaprezentowany w 2005 roku w formie oprogramowania typu „open source”. Projekt Topcased jest środowiskiem otwartym, gdzie programiści, testerzy i użytkownicy końcowi razem opracowują narzędzia niezbędne do opisu procesów, oprogramowania. Rozwiązania proponowane przez Topcased mają na celu zautomatyzowanie czynności związanych z rozwojem szerokiej gamy procesów od fazy projektowej (analitycznej) aż do fazy produktu końcowego. Produktem końcowym może być tu zarówno model określonego systemu jak i gotowe oprogramowanie. W ogólności projekt Topcased znacznie ułatwia czynności przy analizie i projektowaniu systemów, symulacji tych systemów, transformacji modeli pomiędzy poszczególnymi rodzajami ich reprezentacji, automatycznemu sprawdzaniu zgodności funkcjonalności systemów z założeniami oraz tworzy gotowy kod źródłowy wraz ze stosownymi testami oraz dokumentacją. Środowisko Topcased oparte jest na projekcie eclipse [2]. W niniejszej pracy środowisko Topcased przedstawiono w aspekcie automatyzacji większości czynności, jakie należy wykonać w środowisku EMF- Eclipse Modeling Framework oraz w środowisku GEF [3], by wygenerować aplikację MDA z własnego metamodelu. Automatyzacja ta jest możliwa, gdyż środowisko Topcased integruje ze sobą projekty EMF i GEF udostępniając równocześnie oba te zręby. Poniżej opisano w skrócie oba środowiska. Środowisko EMF zostało zaprojektowane w celu uproszczenia procesu projektowania, implementacji i uruchamiania aplikacji opartych na metamodelu danych zgodnie z postulatami Model Driven Architecture. Na podstawie modelu danych opisanych w pliku XML w środowisku EMF można utworzyć narzędzia oraz środowisko uruchomieniowe (ang. runtime support) obsługujące model danych. W szczególności, można budować klasy adaptera (wzorca projektowego) do przeglądania i edycji modelu. Edytor taki można następnie wzbogacać o przeróżne funkcje implementując w edytorze odpowiedni kod w języku Java. Główną ideą wykorzystania tego środowiska, schematycznie pokazanego na Rysunek 3, jest: możliwość zdefiniowania metamodelu (np. UML Model, XML Schema, Relational Database Schema, Java Annotations), wygenerowania odpowiedniego modelu z tego metamodelu (ang. Core Model), standardowa serializacja wszystkich zmian wykonanych w tym modelu oraz wygenerowanie kodu implementacyjnego Javy (bądź wygenerowaniu innych modeli). UML Model Java Code XML Schema Core Model RDB Schema Annotations Other . . . Rysunek 3. Wewnętrzny model środowiska EMF (źródło [2]) Wygenerowana aplikacja w tym środowisku jest oparta na standardowym edytorze TreeView i nie jest zbyt wygodna do modelowania np. procesów biznesowych. Powyższą niedogodność można zniwelować wprowadzając odwzorowania graficzne poszczególnych elementów projektowanego modelu. Funkcjonalność tę zapewnia środowisko Graphical Modeler modelu przestrzennego DOD w środowisku TOPCASED 85 Editing Framework (GEF), które umożliwia utworzenie szkieletu edytora (bądź innej aplikacji) do graficznej reprezentacji istniejącego modelu danych (np. utworzonego w środowisku EMF). Elementy graficzne takiego edytora wykorzystują środowisko Draw2D (org.eclipse.draw2d), które jest standardem wywodzącym się z biblioteki SWT z eclise.org. W takim edytorze można np. graficznie wiązać ze sobą elementy poprzez używanie graficznej reprezentacji poszczególnych elementów modelu danych. Edytor taki można następnie przystosować do własnych potrzeb dodając różne funkcje poprzez wprowadzenie do kodu edytora własnego kodu w języku Java. Środowisko GEF wykorzystuje architekturę MVC (ang. Model-View-Controller), dzięki której zmiany w warstwie modelu dokonuje się poprzez warstwę widoku. Architekturę GEF pokazano na Rysunek 4. Kontroler jest połączeniem pomiędzy widokiem (ang. View), a modelem (ang. Model). Każdy kontroler (zwany również w środowisku GEF elementem EditParts) jest odpowiedzialny zarówno za wiązanie obiektów modelu z obiektami graficznymi widoku jak i za wprowadzanie zmian z widoku do modelu. Element EditParts jest również Obserwatorem (wzorzec Obserwator), który wykonuje zmiany w widoku (View) w zależności od stanu modelu (Model). Warstwa Layers pozwala zobrazować model za pomocą elementów środowiska GEF (wizualizacja elementu RootEditPart). Część edytora GEF zwana EditPartViewer jest odpowiedzialna za zainstalowanie jednego widoku danego modelu na kanwie SWT Control. Ponadto EditPartViewer zachowuje mapowanie obiektów modelu w odpowiadające im części struktury drzewiastej RootEditPart. Za utworzenie odpowiedniego powiązania obiektu modelu danych z elementem kontrolera EditPart jest odpowiedzialny interfejs EditPartFactory. Podobnie rzecz się ma z mapowaniem elementów RootEditPart, a odpowiadającym im elementom graficznym SWT Control. W tym przypadku również stosuje się interfejs EditPartFactory. Model Controller View Rysunek 4. Architektura aplikacji GEF w środowisku Topcased (źródło[3]) 3.1 Proces budowy aplikacji TOPCASED Na Rysunek 5 przedstawiono proces tworzenia edytora klasy EMF. Do zdefiniowania metamodelu należy użyć odpowiedniego narzędzia środowiska EMF (GenModelWizzard) [4], które można „zasilić” odpowiednim metamodelem zaprojektowanym w różnych formatach. Tak zdefiniowany metamodel posiada reprezentację specyficzną w środowisku eclipse 86 Stanisław Niepostyn, Ilona Bluemke - Eclipse Core Model (Ecore) - zarówno w formie graficznej (diagram klas) jak i w formie pliku XMI. Kolejnym etapem procesu generowania edytora klasy EMF jest wygenerowanie modelu generatora tzw. GenModel, który posiada dodatkowy opis niezbędny do utworzenia edytora w środowisku eclipse (np. odpowiednie ścieżki do projektu eclipse, właściwości elementów zdefiniowane dla platformy docelowej itd.). Wygenerowany GenModel można następnie modyfikować za pomocą GenModel Edytora. Po dostosowaniu GenModelu do własnych potrzeb można wygenerować odpowiedni edytor (o strukturze drzewa – TreeView Editor) w formie wtyczki, czy też można nawet wygenerować plik z modelem, który z kolei można wykorzystać w innych narzędziach. Wygenerowana aplikacja w formie TreeView nie jest zbyt dogodna do modelowania, toteż dopiero wizualizacja obiektów modelu do postaci edytowalnych elementów graficznych znacznie zwiększa atrakcyjność zaprojektowanego narzędzia do modelowania. act Proces EMF Użycie narzędzia GenModelWizzard (ECLIPSE plug-in) Mdi, Xsd, JAVA GenModel Format (zależny od eclipse) MetaModel [Wejściowy] GenModel [Wygenerowany] Definicja Modelu GenModel Generowanie Ecore format Użycie narzędzia GenModel Edytor (ECLIPSE plug-in) MetaModel [Wew nętrzny] GenModel [Kompletny] GenModel Przystosowanie EdytorPlugIn Edytor EMF Generowanie ModelPlugIn EditPlugIn Rysunek 5. Proces tworzenia aplikacji klasy EMF (źródło [4]) Na Rysunek 6 pokazano proces generowania edytora graficznego właściwy dla środowiska Topcased. W procesie tym wykorzystywany jest GenModel uzyskany w trakcie tworzenia edytora klasy EMF. Pierwszym etapem procesu jest wygenerowanie konfiguratora dla modelu (ConfiguratorModel) za pomocą narzędzia ConfiguratorWizzard. Kolejną czynnością jest przyłączenie do konfiguratora, za pomocą edytora konfiguratora (Configurator Editor), GenModelu otrzymanego w procesie EMF . Następnie, konfigurator należy wypełnić odpowiednimi wartościami dla docelowego edytora graficznego (wiązanie modelu z elementami sterującymi oraz z elementami graficznymi pokazano na rysunku 2). Odpowiednio skonfigurowany ConfiguratorModel jest podstawą do wygenerowania szkieletu edytora graficznego (Generator Topcased). Szkielet ten (Edytor Graficzny [Wygenerowany]) można następnie ulepszać już w samym Edytorze (modyfikacja kodu Java), przy czym zmiany są natychmiast widoczne w instancji Edytora Graficznego. Taki sposób budowy edytora graficznego pozwala uniknąć wykonywania przeróżnych czynności związanych z „ręcznym” projektowaniem i implementacją klas w projektowanej aplikacji (automatyzacja czynności wymaganych w środowisku Graphical Modeling Framework). Można zauważyć, że automatyzacja takich programistycznych kroków pozwala znacznie obniżyć poziom błędów wprowadzanych przez programistów do kodu aplikacji. Modeler modelu przestrzennego DOD w środowisku TOPCASED 87 act Proces Topcased Użycie narzędzia ConfiguratorWizzard (plug-in) Configurator Format (metamodel Ecore) EditorConfigurator Utworzenie EditorConfigurator [Pusty] Użycie narzędzia Configurator editor (plug-in) GenModel [Kompletny] EditorConfigurator Edycja EditorConfigurator [Kompletny] (from Proces EMF) Użycie narzędzia ConfiguratorWizzard (plug-in) Configurator Format (metamodel Ecore) DiagramConfigurator Utworzenie DiagramConfigurator [Pusty] Użycie narzędzia Configurator editor (plug-in) DiagramConfigurator Edycja DiagramConfigurator [Kompletny] Użycie generatora Topcased (Topcased Plug-in) TopcasedEdytor Generowanie Edytor Graficzny [Wygenerowany] TopcasedEdytor Ulepszenie Edytor Graficzny [Kompletny] Rysunek 6. Proces tworzenia aplikacji klasy GEF w środowisku Topcased (źródło [4]) 4. Modeler Dodocum Opisany w sekcji 3 proces budowy aplikacji w środowisku Topcased wykorzystano do realizacji modelera Dodocum dla przestrzennego modelu DOD [7] pozwalającego na generacje diagramów UML spójnych z modelem DOD. W tym celu należy opracować metamodel DOD (pokazany w sekcji 4.1) oraz transformacje DOD na UML (sekcja 4.3). 4.1. Metamodel DOD Zgodnie z przedstawionym powyżej procesem tworzenia aplikacji EMF pierwszym etapem jej budowy jest (po utworzeniu nowego pustego projektu EMF) zdefiniowanie meta- 88 Stanisław Niepostyn, Ilona Bluemke modelu tej aplikacji w formacie Ecore. Na Rysunek 7 przedstawiono diagram klas zdefiniowany dla metamodelu DOD w edytorze Ecore . Rysunek 7. Metamodel Diagramu Obiegu Dokumentów Po utworzeniu metamodelu należy skonfigurować tzw. model generatora (GenModel), który zawiera szczegółowe informacje o docelowym środowisku, w którym ma działać aplikacja EMF. GenModel tworzy się poprzez utworzenie Modelu EMF, a następnie poprzez odpowiednie wypełnienie jego pól. Ostatnim etapem procesu EMF jest wygenerowanie wszystkich klas aplikacji Dodocum oraz wyeksportowanie odpowiedniej wtyczki (org.topcased.dodocum) do środowiska Topcased. 4.2. Wygenerowanie aplikacji GEF Utworzenie graficznego edytora na bazie edytora danych o strukturze EMF jest dość skomplikowanym procesem tworzenia aplikacji. Polega na utworzeniu graficznego edytora z elementami graficznymi, które następnie należy odpowiednio powiązać z obiektami istniejącymi w metamodelu edytora. Wszystkie te procedury generowania klas edytora GEF są zautomatyzowane w środowisku Topcased za pomocą tzw. konfiguratorów. Po ich utworzeniu i skonfigurowaniu można wygenerować, w środowisku Topcased, kody źródłowe i wszystkie klasy docelowej aplikacji Dodocum (klasy GEF). Pierwszy z nich (dodocum.editorconfigurator), odpowiada za działanie całego edytora graficznego, natomiast drugi (dodocum.diagramconfigurator) odpowiada za wszystkie działania związane z tworzeniem, zmianą, czy usuwaniem elementów graficznych na diagramie. Na początku konfigurowania elementów graficznych edytora GEF należy „zmapować” te elementy metamodelu DOD (GenModel), które będą używane przez edytor graficzny (elementy typu Model Object Configuration - EditParts). Dla głównego diagramu należy utworzyć element RootEditPart, który nie jest związany z jakimkolwiek elementem meta- Modeler modelu przestrzennego DOD w środowisku TOPCASED 89 modelu. W celu wizualizacji krawędzi można utworzyć element SimpleObjectConfiguration, o ile brak takich elementów w metamodelu. Kolejnym etapem konfigurowania aplikacji Dodocum jest zdefiniowanie elementów Node Part Configuration, odpowiadających za działanie elementów graficznych (Figures) związanych z poszczególnymi klasami z metamodelu DOD. Wszystkie elementy typu Node Part Configuration muszą być powiązane z odpowiadającymi im elementami typu Model Object Configuration. W przypadku zdefiniowania krawędzi w metamodelu należy również utworzyć elementy Edge Part Configuration, które muszą być powiązane z odpowiadającymi im elementami typu Model Object Configuration. Ostatnim etapem konfigurowania edytora graficznego Dodocum jest zdefiniowanie palety narzędzi Palette Configuration, używanej do tworzenia na diagramie wszystkich niezbędnych elementów zdefiniowanych w metamodelu. W menu narzędziowym można również grupować poszczególne opcje za pomocą elementu potomnego Palette Category. Natomiast elementy Palette Item pozwalają określić poszczególne narzędzia skojarzone z rysowaniem danego obiektu określonej klasy z metamodelu Dodocum. Rysunek 8. Edytor graficzny Dodocum (klasy GEF) po ulepszeniach Kolejny etap procesu GEF polega na wygenerowaniu wtyczki z edytorem (dodocum.editorconfigurator), a następnie wtyczki z diagramem (dodocum.diagramconfigurator). Po wygenerowaniu tych wtyczek można wprowadzić do ich kodu źródłowego ulepszenia (Rysunek 8). Należy podkreślić, że w trakcie ponownego generowania np. GenModelu, wprowadzone ulepszenia w aplikacji zostają zachowane. Wyeksportowanie wtyczek do środowiska Topcased pozwala zarejestrować aplikację Dodocum w środowisku Topcased. 4.3. Transformacja DOD-To-UML Przystosowanie edytora Dodocum jako narzędzia umożliwiającego transformacje modeli (Model-To-Model) nie nastręcza trudności. W prezentowanym rozwiązaniu transformacje te zaimplementowano w osobnej wtyczce projektu Dodocum – dod2uml. Utworzenie usługi związanej z transformacją modelu DOD do modelu UML (a raczej zestawu kilku modeli UML) wiąże się w środowisku Topcased z wygenerowaniem wzor- 90 Stanisław Niepostyn, Ilona Bluemke cowej wtyczki (wzorzec „TOPCASED template for generating bus service plug-in” w generatorze projektów „Plug-in Project”), jej modyfikacją (implementacja transformacji - Rysunek 9) i zarejestrowaniem wtyczki w środowisku Topcased. class dod2class Dodocum - Odwzor owa nie UML DOD dod2clas s Cla ss Diagra m Obiekt ob2c l Clas s nazwa: char 1 1 Egz emplar z 1 1 pr2as * 0..1 * 0..1 posiada Association 0..1 0..1 Przeply w - etyketa: char opis: char numer: char * posiada Wezel - etykieta: char Decy zja - numer: int opis: char * Rysunek 9. Transformacje metamodelu DOD do fragmentu metamodelu UML Transformacje modelu DOD do odpowiednich modeli UML (diagram klas, diagram stanów, diagram przypadków użycia itp.) zaimplementowane zostały w postaci kodu Java we wtyczce org.topcased.dod2uml. Na Rysunek 10 przedstawiono wygenerowany diagram klas oraz diagram use case z procesu pokazanego na Rysunek 8. Wygenerowane diagramy UML mogą być podstawą do wygenerowania oprogramowania będącego szkieletem aplikacji zamodelowanego procesu biznesowego w notacji DOD. W środowisku Topcased są obecnie rozwijane projekty, których celem są transformacje z diagramów UML do kodu Java, C, Pyton itp. W wersji 1.4 środowiska Topcased można uruchomić generatory kodu, umożliwiające utworzenie szkieletu oprogramowania w powyższych językach programowania z odpowiednich diagramów UML. Modeler modelu przestrzennego DOD w środowisku TOPCASED 91 Rysunek 10 Wygenerowany diagram klas i use case z modelu procesu biznesowego DOD 5. Podsumowanie W niniejszej pracy przedstawiono proces budowy aplikacji w środowisku Topcased na przykładzie zrealizowanego modelera Dodocum. Dodocum umożliwia generowanie różnych diagramów UML z diagramu przestrzennego DOD opisującego realizację procesów biznesowych jednocześnie w trzech różnych aspektach – funkcjonalność, zachowanie, a także struktura. Oryginalnym rozwiązaniem zaprezentowanym w pracy jest metamodel modelu przestrzennego DOD pokazany w sekcji 4.1 oraz transformacja modelu DOD do UML przedstawiona w sekcji 4.3. Zrealizowane narzędzie zostało zastosowane w praktyce w realizowanym przez firmę WOLA INFO projekcie. Podziękowania Autorzy wyrażają swoja wdzięczność dwóm anonimowym recenzentom pierwszej wersji pracy za uwagi. Bibliografia [1] Philippe Kruchten Rational Software Corp., Architectural Blueprints—The “4+1” View Model of Software Architecture, Paper published in IEEE Software 12 (6) November 1995, pp. 42-50 [2] http://www.eclipse.org [3] Randy Hudson, Create an Eclipse-based application using the Graphical Editing Framework. How to get started with the GEF, 29 July 2003 – artykuł [4] Topcased Team, Topcased Specification and Architecture v1.170, TPC-SPE-DESIGN029, dokumentacja na www.topcased.org [5] Niepostyn S.: Diagramy obiegu dokumentów w modelowaniu procesów biznesowych (praca inżynierska). Instytut Informatyki PW, 2007. [6] Niepostyn S., Bluemke I.: Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. X KKIO 2008, Szklarska Poręba, red. Z. Huzar, Z. Mazur. WKŁ Warszawa-Wrocław 2008. [7] Niepostyn S., Bluemke I.: Model przestrzenny DOD. XI KKIO 2009, Pułtusk, wrzesień 2009 Errors in identification of geometrical graphical forms: computerized study Aleksy Patryn, Walery Susłow, Michał Statkiewicz Koszalin University of Technology, Department of Electronics and Computer Science Abstract: Authors of this paper propose as one of usability criteria of GUI elements the level of user’s errors that can be registered during performance of routine tasks. These tasks, lead by the authors in the form of an experiment, had the structure of psycho-diagnostic computer tests, such as proof-reader’s test, and memory test. The series of completed tests was based on algorithms and testing applications developed by the authors. Keywords: graphical user interface, icons and pictograms, graphical metaphor, graphical symbols recognition, memory test, proof-reader’s test. 1. Introduction Productivity of dialogue conducted between man and computer by means of Graphical User Interface (GUI) depends among other things on usability of a set of graphical objects being components of relevant interface. In that context “usability” concept provides possibility of comprehensive depiction of various features of those graphical objects (structure, color, and contrast) and aspects of their interpretation by computer users (pragmatics). Designers, creating computer applications, are still searching for new more effective solutions for GUI in the area of computer graphics. That graphics can be created on the base of digital photographs, scanned pictures or from scratch in graphical editors (drawing) or even in special programs created for production of artificial graphical forms. Usefulness of this graphics in context of any computer application largely depends on the level of intuitiveness of a graphical metaphor; a future user should be able to quickly learn new metaphors implemented by designers for the virtual space and to effectively use a specific program via graphical controls [1, 2]. In other words, one can say the success of a new set of graphics for GUI (e.g. in form of traditional icons or pictograms) depends on whether it has features of a particular graphical language that is easy to learn within the framework of this application. There are international and national standards (ISO/FDIS 9186-1, ISO 9241, PN-ISO 9186:2005) that guide designers while creating ergonomic graphical symbols and pictograms [3, 4]. Unfortunately, those standards do not always give answers to practical questions, as they reflect only the knowledge level in the field of ergonomics that existed at the moment these standards were created. In opinion of the authors, ranking problem regarding usability of graphical elements of GUI has not been solved, and there is also lack of generally accepted scale for comparison of graphical elements usefulness. Difficulty of determination of such scale is related to insufficient number of researches of complex cognitive processes occurring during user’s interaction with GUI. Also, direct transfer of the model of Metody Informatyki Stosowanej, nr 2/2009 (19), s. 93-100 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 94 Aleksy Patryn, Walery Susłow, Michał Statkiewicz phenomenon built on the real situations does not always seem to be an effective solution for virtual spaces. Graphical symbols and pictograms can be analyzed as objects consisting of graphics itself and meaning or metaphor assigned to it. Perception processes of such symbols depends both on graphical features included in symbols and their pragmatics. The impact of symbols’ graphics form itself, without analysis of meaning assigned to such graphics, seems to be the least examined. Based on the examination of alternative intelligent user’s graphical interfaces [5, 6], authors of this paper propose as one of usability criteria of GUI elements the level of user’s errors that can be registered during performance of routine tasks. These tasks, lead by the authors in the form of an experiment, had the structure of psycho-diagnostic computer tests, such as proof-reader’s test [7], and memory test [5]. The series of completed tests was based on algorithms and testing applications developed by the authors. These tests consisted of three procedures: short-term remembering, reproduction, and counting; it was based on materials that are traditionally used for such psychological measurements – alpha-numerical symbols and graphical objects (the shapes used in the experiments were unknown to tested persons from everyday life). These graphical objects were generated with the help of the algorithm, and were of an interest to the researchers only as graphics forms (shapes, instances, objects) that during test execution had no assigned meaning (both constant and learned) to tested persons. The author’s intention was that these objects didn’t have any metaphors, so that they could not be assigned to a symbol group. During testing, this condition has created an intentional situation of learning of these new objects, as actions performed on these objects required correct recognition and remembering. 2. Research methodology Two types of tests have been used in researches of usability of the generated graphical forms. Proof-reader’s test consisted of visual counting of graphical objects (without possibility of counting with the help of mouse pointer, finger, etc.) positioned in the subsequent chart lines. Each chart line was deemed as separate proof-reader’s task for which errors in counting were registered; the test included ten tasks. Proof-reader’s errors made during test performance have been split up into two kinds: the first one, i.e. “foreign objects recognized as proper ones”, expressed with probability of False Acceptance Rate [FAR] PFAR, the second one, i.e. “falsely rejected”, expressed with probability of False Rejection Rate [FRR]. These rates were expressed as an average percentage of errors made to total symbols in the chart. The comparison of these two rates illustrated strictly lower level of probability of the first category: PFAR = 0.4%. In set forth testing conditions, errors were much more frequently caused by the situation in which the user missed an object that was presented in the chart line: PFRR = 1.22% that corresponds approximately to ¾ of all registered errors. In proofreader’s test one could expect phenomena caused by disturbances at the stage of comparison of two areas of user’s memory: copy of iconic memory (it contains the image of the object recognized) and task holding operating memory (it contains the image of objects searched for). Tested persons were not required to work at a specific rate, but they were asked to count symbols accurately. Memory test consisted of remembering of the “word” that consisted of graphical symbols and reproducing of the “word” after a pause, which would guarantee that the trace of the word would disappear from iconic memory. This turned to be a more difficult task than Errors in identification of geometrical graphical forms… 95 a usual memory test that uses only traditional symbols, such as letters and digits; therefore, the number of objects (the word length) provided for single remembering was decreased to four. Memory errors detected were classified as either “announcing of an object which was not in a task-word”, or as „not announcing of an object which occurred in a task word”. The task in memory test consisted of only one “word” to remember, and test course had ten tasks. In memory test we expected phenomena caused by disturbances at the stage of reproduction of the objects stored in operating memory. The users were pressured for time, which was an additional factor that led to errors. In proof-reader’s test, two groups of users (each consisting of thirty people) participated: students of the technical university (male, approx. 22 y. o.) – A group, and high school students (female, approx. 18 y. o.) – B group. Another group of university students (12 persons, male, approx. 20 y. o.) – C group took part in the memory test. The tests were carried out in the educational institutions: in IT Centre of Faculty of Electronics and IT Technologies of Koszalin University of Technology and in Private Education Centre in Koszalin (Poland). Typical computer stations used normally for conducting of classes were used for the tests. The author’s software used for researches worked on the platform of MS Windows XP enabling automatic measurement of time and users’ answer correctness during test and collection of those results together with personal data in the database. It was proven that the standard computer input devices (keyboard, mouse), virtually ensure sufficient accuracy (1ms) of time measurement [8]. Testing was performed in a single-person mode to assure a greater reliability of so obtained results. Firstly, tested users were trained: a user watched a demo version of the test and asked questions. After that each of the participants took the test under the control of one of the authors. 3. Diagrams of error occurrence Figure 1. Comparison of error levels for graphical object set; tests: proof-reader’s test (PP-R, on the left) and memory test (PMEM, on the right) Average level of proof-reader’s errors, PP-R, approximately 2-3%, illustrates insignificant difficulty of the task for the “cognitive system” of the test participants. Correlation between group results amounts to 0.65; if, however, third from the left object in Figure 1 is removed (we called it a “disputable object”), correlation level achieves 0.95. This is the only case, in 96 Aleksy Patryn, Walery Susłow, Michał Statkiewicz which errors of group A exceed errors of group B. Such significant variation introduced by a single object suggests a major difference in its perception possibly due to the gender or experience characteristics of the tested groups. Average error level of reproduction of graphical shapes in short-term memory PMEM, amounts to around 50%, i.e. every second object was reproduced incorrectly. One can notice increasing error level trend with the rise of object algorithmic complexity. Error level in memory test depended also on the position of the object in a “word”; minimal level for the first object and maximal level for the last object was noticed (monotonic dependence on order position in a “word”). The results of proof-reader’s test presented in fig. 1 can be roughly described by a section of a reversed parabola presented by the following formula: PP-R = f(A) = -0.057A 2 + 0.862A + 0.367 (1) The trend of increasing PMEM observed in memory test results (see fig. 1) can be expressed by a linear regression function: PMEM = f(A) = 1.852A + 38.098 (2) Explanations with regard to the coefficient of visual complexity of a graphical object A value are presented below in this paper. 4. Chronometry of errors Figure 2. Change of average error level and time of task performance for a graphical object set during performance of particular (sequential) tasks in proof-reader’s test (on the left) and memory test (on the right) In both situations we notice occurrence of a phenomenon of routine activity learning that manifests itself in a trend of decreasing the time necessary to perform subsequent tasks: in proof-reader’s test this trend is almost monotonic. Learning coefficient in proof-reader’s test (a parameter of logarithmic regression function) amounts to 5.43 – with adapting to empirical data at the level of multiple correlation coefficient R2 = 0.92; that indicates a strong and stable influence of task learning phenomenon on the testing process. In memory test, learning coefficient is 2.24 with adapting to the data R2 = 0.55, which indicates a weaker and less Errors in identification of geometrical graphical forms… 97 stable learning phenomenon. It can be the result of a definitely different level of task complexity for tested person’s mind, which corresponds to different quantities of information flowing between the user and computer application, as noted in earlier studies [9]. Additionally, in memory test we noticed a very strong correlation of time needed to answer with the error level (correlation coefficient value: 0.75); this relationship is absent in the data of proof-reader’s test. The time measurement of elementary tasks under actual conditions can also provide relevant information, which is used in the KLM (Key-stroke Level Model) method of designing user interfaces [10]. During our research we noticed the existence of a correlation between the level of committed errors and the performing time of task in the memory test. The observed phenomenon requires further research. 5. Error level vs. graphical object complexity For evaluation of graphical object complexity we have applied Chaitin’s-Kolmogorow’s approach [11] that requires finding of an optimal (the shortest in relevant language) algorithm code for object generation by means of a calculating machine (as Turing’s machine). It means that the objects generated by the longest algorithms are considered as more complex (one can state that such objects are characterized by higher entropy). If the mind were to analyze graphics like a calculating machine does, then those objects would require a bigger expenditure of works /efforts from cognitive system; thus, it would increase the probability of making errors. At the same time, it is not important how specifically the mind processes the primary form; cognitive analysis can amount to searching for series of analogy to known objects and to simplifying compression, but a higher complexity of the primary form will always require a bigger effort. In order to simplify the finding of the shortest symbol-generating algorithm for our set, we decided to introduce our own non-existing, yet feasible to implement graphicsproduction machine. It can be a printer, a plotter or a cutter-type device. Essentially, it is possible to control this machine with a pseudo-language that can describe two procedures: Circle drawing procedure, e.g. by means of order: draw_circle (int r, boolean is_black); “Head” position setting procedure: move_center(int x, int y);. Then we can assume minimal number of graphics machine instructions necessary for creation of an adequate shape as a measure of complexity of this graphical symbol. To implement the idea described above, we have chosen layer spraying technique that consists of black or white painting on white surface. Four basic commands (instructions) for such machine are the following: paint(), switch_color(), reduce(), move(int x, int y). The crucial assumption is that the machine will always start drawing with identical settings: head position is in the centre of drawn object, nozzle size is set to maximum (basic) circle, and the color is set to black. Detailed instructions for object generating and corresponding ranking position on the complexity scale are illustrated in Table 1. As an alternative solution to the algorithm of graphical object generation, we have considered an intuitive-analytical approach. This approach was based on experts’ ratings that were used to arrive at the final coefficient of visual complexity of a graphical object (A). The coefficient has integrated experts’ opinions about the detection of binary structure components, symmetry and self-similarity (like in fractals). Basing on the amount of research data processed within this approach, it is possible to state that in proof-reader’s test a linear model is a good approximation of the dependence of error level on the binary parameter values that describe the shape complexity. Consequently, graphical shapes can be sorted as 98 Aleksy Patryn, Walery Susłow, Michał Statkiewicz per value of final coefficient of visual complexity RE, which is a weighted sum of binary structure components. Table 1. Algorithmic complexity of graphical object generation Table 2. Phenomenological analysis of graphical object complexity Approximation with a statistical method provides a possibility of interpretation of the obtained data using the following formula: A = 0.013*A + 0.012*I + 0.020*W + 0.014*C (3) The equation variables can assume only binary values and describe the following features of shapes (see table 2): A – occurrence of object asymmetry, I – occurrence of intruders (interjection in the background of the main shape), W – occurrence of fault in the main shape, C – occurrence of a clearly marked centre. During statistical analysis of the data, we have also checked an alternative hypothesis: weights based on subsequent powers of golden section (sectio aurea) provide a good approximation of the dependence of error level on the difficulty coefficient for linear regression curve considering normalizing coefficient K = 0.159. Empirical formula for calculation of complexity coefficient, accepting the alternative hypothesis of “golden number” (φ =1.618), can be recorded as follows: A = K (φ 2* A + φ *I + φ 0*W + φ -1*C) (4) Errors in identification of geometrical graphical forms… 99 6. Summary The results of conducted researches confirm existence of a relationship between structure features of the graphical forms and level of errors made by computer users analyzing those forms. The conducted tests proved the existence of a correlation between the quality of conducted test tasks and the algorithmic and phenomenological complexity of the objects. Additionally, other phenomena were registered; most significant ones include occurrence of routine activity learning in memory test and the existence of a “disputable object” in proofreader’s test. The obtained data also confirms the validity of the applied method, i.e. practical usability of psycho-diagnostic computer tests for the purpose of ranking of graphical form quality. The applied method also enables to expect correct forecasts of the quality of the newly developed graphical shapes. The forecast will be based on the analysis of algorithmic structure or phenomenological features of those shapes and the application of the described approximating functions. Acknowledgements Authors of the application extend acknowledgements to Mr. Piotr Gackowski, M.Sc. for conducting of memory test, to Ms. Beat Reterska, M.A. for the help in conducting of proofreader’s test, and to Szymon Wanatowicz M.Sc. for designing of graphical form sets. References [1] Spolsky J. User Interface Design for Programmers, Apress L. P. 2001 [2] Byrne M. D. Using icons to find documents: simplicity is critical In Proceedings of the INTERACT '93 and CHI '93 Conference on Human Factors in Computing Systems. ACM, New York 1993, NY, 446-453. [3] International Standards for Business, Government and Society, http://www.iso.org [4] McDougall SJP., Curry MB., De Bruijn O. Measuring symbol and icon characteristics: Norms for concreteness, complexity, meaningfulness, familiarity, and semantic distance for 239 symbols. Behavior Research Methods, Instruments, & Computers 1999, 31 (3), 487-519. [5] Patryn A., Statkiewicz M., Susłow W. The perspective of the optimization of computer educational applications by the means of student-computer system modelling. Kognitywistyka i Media w Edukacji, vol. 7 no 1. (2003), p. 49-64 (in Polish). [6] Statkiewicz M., Susłow W. Development of the intelligent GUI for educational applications as an aspect of respect to student’s personality, in: Pająk K., Zduniak A. (eds.) Podmiotowość w edukacji ery globalnego społeczeństwa informacyjnego, Dom Wydawniczy ELIPSA, Warszawa - Poznań 2004, vol. 3, p. 96-104 (in Polish). [7] Susłow W., Statkiewicz M., Reterska B., Wanatowicz S.(2005) Proof-reader’s method of verification of pictogram usability in GUI for e-learning applications In: Tarnowski W. (editor): First Conference of New Technologies in Distance Learning, KoszalinOsieki, 9-11 June 2005, Technical University of Koszalin, Koszalin 2005, p. 234-241 (in Polish). [8] Patryn A., Susłow W., Statkiewicz M., Ileczko G. Study of events chronometry in human-computer system, In papers: IX Poznańskie Warsztaty Telekomunikacyjne, Poznań 12.2004, p. 51-55 (in Polish). [9] Patryn A., Susłow W., Statkiewicz M., Kadowski K. Psychodiagnostic method of graphical user interface evaluation: differences in the flow of information in the hu- 100 Aleksy Patryn, Walery Susłow, Michał Statkiewicz man-computer system, Kognitywistyka i media w edukacji, no. 1-2 (2006), Toruń (in Polish). [10] Kieras D. Using the Keystroke-Level Model to Estimate Execution Times 2001, ftp://www.eecs.umich.edu/people/kieras/GOMS/KLM.pdf [11] Knuth Donald E. The Art of Computer Programming. Vol. 2: Seminumerical Algorithms 3rd ed. by Reading, MA: Addison-Wesley, 1997. Metody sztucznej inteligencji w rozwoju systemów informatycznych dla przedsiębiorstw produkcyjnych i wodociągowych Izabela Rojek Uniwersytet Kazimierza Wielkiego w Bydgoszczy, Wydział Matematyki, Fizyki i Techniki Abstract: In the paper artificial methods in development of information systems for manufacturing and water-supply enterprises were introduced. The classic approaches and the author's approach with use of these methods were presented. The application of artificial intelligence methods is particularly important in critical situation and pronouncement of average in complex technical systems. The improvement of the manufacturing processes and the water-supply systems was made possible through the use of the artificial intelligence methods, new in this area of practice. Keywords: Artificial intelligence, information system, enterprise 1. Wprowadzenie Problemy trudne do modelowania w sposób ścisły, zagadnienia trudne do rozwiązania metodami analitycznymi, niealgorytmizowalne, problemy obliczalne, ale nieefektywnie algorytmizowane wymagają użycia innych niż klasyczne metod obliczeniowych. Metod takich dostarcza rozwijany przez matematyków i informatyków kierunek badań sztucznej inteligencji [1-3]. Systemy powstające w ramach sztucznej inteligencji mają często wspólną cechę: w przypadkach trudnych przetwarzają informacje do postaci algorytmów i czynią to w powiązaniu z symboliczną reprezentacją [4]. Systemy informatyczne (SI) stworzone zostały dla potrzeb wspomagania decyzji lub modelowania zjawisk czy procesów. Coraz częściej wykorzystują one metody sztucznej inteligencji. Nowoczesne systemy, prócz klasycznych systemów ekspertowych, zawierają sieci neuronowe [5], systemy rozmyte [6-7] oraz algorytmy genetyczne (ewolucyjne) [8]. Istnieje tendencja do tworzenia systemów hybrydowych, w których występują różne kombinacje wyżej wymienionych metod sztucznej inteligencji [9]. Polegają one na połączeniu tradycyjnych systemów ekspertowych, systemów uczących się, sztucznych sieci neuronowych oraz algorytmów genetycznych. Systemy hybrydowe integrują metody sztucznej inteligencji, które mają wiele komplementarnych cech i własności. Takie hybrydowe połączenie pozwala na wykorzystanie zalet poszczególnych metod, eliminując wady, jakie posiada każda z nich stosowana niezależnie. Dlatego dają nadzieję na stworzenie lepszych i mocniejszych metod rozwiązywania problemów. Systemy uczące się, zdolne do doskonalenia swego działania na podstawie gromadzonych doświadczeń, mogą być istotnym osiągnięciem w stosunku do tradycyjnych systemów doradczych, opartych wyłącznie na wiedzy pozyskanej od ekspertów ludzi. Metody Informatyki Stosowanej, nr 2/2009 (19), s. 101-111 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 102 Izabela Rojek We współczesnym rozumieniu wspomaganie rzeczywistych procesów i systemów jest to tworzenie aktywnych systemów informatycznych, które cechuje umiejętność uczenia się i adaptacji. Tego typu system: odkrywa wiedzę z danych opisujących sytuację decyzyjną, uzupełnia wiedzę pomiarową [10], stosuje tę wiedzę do wyjaśniania podjętych decyzji i predykcji nowych oraz adaptuje się do zmian preferencji użytkownika. Dlatego coraz częściej w skład systemu informatycznego wchodzą moduły oparte na metodach sztucznej inteligencji. W artykule przedstawiono metody sztucznej inteligencji w rozwoju systemów informatycznych dla przedsiębiorstw produkcyjnych i wodociągowych. Obie dziedziny są ważne dla rozwoju gospodarki kraju oraz aktualne na świecie. Interesujące są efekty usystematyzowania tych dziedzin oraz tworzenie narzędzi wspomagania, które prowadzą do opracowania zbioru modeli z udziałem metod sztucznej inteligencji. 2. Charakterystyka wybranych obiektów badań Wśród zadań przedsiębiorstwa produkcyjnego należy wymienić: planowanie produkcji, techniczne przygotowanie produkcji /konstrukcja i technologia/, planowanie zakupów i gospodarka materiałowa, produkcja i montaż, utrzymanie ruchu, sprzedaż, obsługa klienta i reklamy. Głównym celem badań było wspomaganie projektowania procesu technologicznego a w nim dobór narzędzi do operacji technologicznych. O złożoności i trudności zagadnienia doboru narzędzi do operacji technologicznych świadczą następujące cechy: zagadnienie jest wielocelowe; przy podejmowaniu decyzji należy uwzględnić zarówno koszt i wydajność narzędzi, jak też preferencje technologa; na wybór narzędzi czasami wpływają czynniki losowe, np. brak narzędzi, uszkodzenie narzędzi. W przedsiębiorstwie produkcyjnym bardzo interesująca jest wiedza technologiczna. Technologiczne przygotowanie produkcji nakłada określone potrzeby i wymagania na wiedzę, która zawiera wszystkie informacje niezbędne do zaprojektowania procesu technologicznego. Obecnie rozwijane systemy wspomagające projektowanie procesów technologicznych pozwalają na udostępnienie różnorodnych metod przedstawiania danych, ich przekształcanie i wymianę. Zgromadzona w bazie wiedzy ogromna ilość informacji umożliwia szybkie podejmowanie właściwych decyzji podczas projektowania procesu technologicznego. Opierając się na bogatej i w krótkim czasie dostarczonej przez komputer informacji, technolog może upewnić się, czy zaprojektowane przez niego rozwiązanie jest w danych warunkach rozwiązaniem optymalnym, jak również czy jest rozwiązaniem ekonomicznym. W przypadku użycia metod sztucznej inteligencji (sieci neuronowej, czy drzew decyzyjnych) upraszcza się proces pozyskiwania wiedzy. Metody te zostały opracowane i przetestowane do doboru narzędzi skrawających. Często dzieje się tak, że technolog nie potrafi wyjaśnić swojej decyzji doboru narzędzi, z której można by utworzyć klasyczne reguły występujące w systemach ekspertowych. Ta wiedza jest niepełna i nieścisła. Dlatego wygenerowanie reguł decyzyjnych automatycznie na podstawie modeli w postaci drzew decyzyjnych czy dobór narzędzi na podstawie modeli sieci neuronowych jest ogromnym osiągnięciem w porównaniu z tradycyjnymi metodami. Metody sztucznej inteligencji w rozwoju systemów informatycznych… 103 Kluczowym zagadnieniem wspomagania projektowania procesów technologicznych jest pozyskanie wiedzy i doświadczenia technologów oraz wykorzystanie tej wiedzy w systemach informatycznych poprzez wykorzystanie metod sztucznej inteligencji. Wśród zadań przedsiębiorstwa wodociągowego należy wymienić: produkcję i dystrybucję wody pitnej, zapewnienie żądanej jakości, ilości i ciśnienia wody, energooszczędną eksploatację sieci (sterowanie pompami), minimalizację strat wody (redukcję liczby awarii), rewitalizację sieci (wymianę rur i aparatury sieciowej), projektowanie sieci (modernizację i rozbudowę). Głównym celem wspomagania było sterowanie siecią wodociągową, które należy do złożonych procesów dynamicznych. W wielu ośrodkach na świecie i w kraju uważa się również, że problemem przyszłości będzie brak wody, dlatego należy tworzyć i doskonalić systemy sterowania gospodarką wodną, w tym siecią wodociągową. Udział metod sztucznej inteligencji w tych systemach pozwoli w lepszy sposób sterować siecią wodociągową. Wspomaganie było realizowane w zakresie produkcji i dystrybucji wody pitnej, zapewnienia żądanej ilości i ciśnienia wody oraz energooszczędnej eksploatacji sieci poprzez właściwe sterowanie pompami. O złożoności i trudności systemu świadczą następujące cechy: system jest wielocelowy; przy podejmowaniu decyzji należy uwzględnić zarówno preferencje bezpośrednich użytkowników wody, jak też mieć na uwadze preferencje operatorów sieci oraz aspekty ekologiczne; na zachowanie się systemu w sposób decydujący wpływają czynniki losowe, np. opady deszczu, powodzie, susza, zmiana klimatu i temperatury; system jest dynamiczny, przy czym właściwości te występują w różnych skalach czasu, np. dynamika „szybka” występuje przy przepływie wody w sieci wodociągowej, a dynamika „wolna” przy wyznaczaniu napełniania zbiorników retencyjnych; system jest terytorialnie rozproszony i opisywany przez bardzo dużą liczbę zmiennych. Przedsiębiorstwo wodociągowe zarządza i steruje siecią wodociągową. Prognoza obciążenia sieci wodociągowej jest istotnym elementem sterowania każdym podsystemem przedsiębiorstwa wodno-ściekowego: stacją poboru i uzdatniania wody, siecią kanalizacyjną i oczyszczalnią ścieków. Poprawne przewidywanie obciążenia i sterowanie operacyjne siecią wodociągową pozwoli energooszczędnie sterować pompami na ujęciu wody oraz efektywnie sterować procesem technologicznym w oczyszczalni, przygotowując ją odpowiednio wcześnie do przyjęcia określonej ilości ścieków i ładunku zanieczyszczeń. Ponadto w samej sieci wodociągowej poprawne przewidywanie obciążenia i sterowanie operacyjne siecią wodociągową pozwoli energooszczędnie sterować pompami, które odpowiadają za utrzymanie właściwego poziomu ciśnienia i przepływu wody w sieci wodociągowej oraz właściwego poziomu wody w zbiornikach retencyjnych. 3. Stan badań w świetle literatury przedmiotu Problematyka inteligentnych systemów wspomagania wykorzystujących metody sztucznej inteligencji rozwijana jest w wielu ośrodkach w kraju i zagranicą. Inteligentny system czasu rzeczywistego dla wspomagania działania ciepłowni [11] łączy sztuczną inteligencję oraz technologię informatyczną i uruchamia się w rozproszonym środowisku czasu rzeczywistego. W pracy [12] przedstawiono inteligentny prognozujący system wspomagania decyzji do obsługi okresowej opartej na stanie urządzenia. System diagnozuje uszkodzenia i prognozuje trend pogorszenia się jakości urządzeń. Model tego 104 Izabela Rojek systemu bazuje na rekurencyjnej sieci neuronowej, która była uruchamiana i testowana dla krytycznych urządzeń w elektrowni. W pracy [13] przedstawiono inteligentny system monitoringu czasu rzeczywistego dla wspomagania operatorów elektrowni nuklearnej. W pracy [14] scharakteryzowano inteligentne systemy wytwarzania, jako systemy wykorzystujące systemy ekspertowe, sieci neuronowe, logikę rozmytą i algorytmy genetyczne w projektowaniu i użytkowaniu systemów wytwarzania. Te metody są niezbędne do rozwiązywania problemów zawierających nieprecyzyjne dane i charakteryzujących się nieliniowością. Mniej prac dotyczy rozwiązań stosowanych w przedsiębiorstwach wodociągowych. W artykule [15] przedstawiono modele jakości wody wykorzystujące teorię gier do zarządzania zasobami. Zarządzanie zasobami jest bardzo złożone, dlatego zastosowano teorię gier, która rozwiązuje w sposób optymalny problemy w przypadku konfliktu interesów między użytkownikami. Jednym z podejść modelowania w czasie rzeczywistym systemu wodociągowego jest podejście prezentowane w pracy [16]. Modelowanie numeryczne zostało zastosowane do sterowania siecią wodociągową, w tym analizą jakości wody, dystrybucją wody oraz redukcją przeciekania wody. Odpowiednie modele, zawierając wysoko rozwinięte technologie takie jak geograficzny system informacyjny i systemy telemetrii stały się niezbędnym narzędziem dla operatora sieci wodociągowej. Matematyczny model systemu dostarczania wody został skalibrowany i został zweryfikowany dla rzeczywistej sieci wodociągowej. W innych pracach również zaprezentowano model matematyczny zarządzania dla systemu wodociągowego [17-18]. W Instytucie Badań Systemowych w zespole pod kierunkiem dr. hab. inż. Jana Studzińskiego prowadzone są prace dotyczące opracowania zintegrowanego systemu komputerowego do zarządzania miejską gospodarką wodno-ściekową. Równolegle prowadzono prace dotyczące sieci wodociągowej, sieci kanalizacyjnej oraz oczyszczalni ścieków [19]. Stan badań dotyczący systemów wspomagania wykazał, że w obszarze zastosowań przemysłowych istnieje wiele praktycznych przykładów użycia metod AI. Zauważa się wiele rozwiązań (systemów) do diagnostyki i kontroli urządzeń, wspomagania działania przedsiębiorstw np. ciepłowni, monitoringu przedsiębiorstw lub określonych obiektów np. elektrowni, zarządzania wiedzą w przedsiębiorstwie oraz integracji przedsiębiorstwa. Ponadto spotyka się systemy dotyczące węższego obszaru działań, np. wspomagające projektowanie urządzeń i systemów, przepływ materiałów w systemach wytwarzania, planowanie i sterowanie produkcją. Również znane są zastosowania metod AI w technologicznym przygotowaniu produkcji. Przykładowo wiedza technologiczna może występować w postaci hierarchicznych sieci decyzyjnych, a proces technologiczny projektowany jest przy użyciu systemu ekspertowego wykorzystującego reguły decyzyjne do projektowania. Natomiast w przypadku przedsiębiorstw wodociągowych zauważa się wykorzystanie modeli matematycznych do wspomagania sterowania oraz inteligentne systemy monitorowania. Zintegrowanym podejściem tworzenia zintegrowanego systemu komputerowego do zarządzania miejską gospodarką wodno-ściekową są prace zespołu dr. hab. inż. Jana Studzińskiego. Są one bardzo znaczącym osiągnięciem pod względem teoretycznym i praktycznym. Pozwoliły one na cyfryzację, usensorowienie i optymalizację metodami analitycznymi zarządzania miejską gospodarką wodno-ściekową. Jednak rzeczywistość wykazuje konieczność zastosowania do komputerowego wspomagania hybrydowej inteligencji (ludzkiej i maszynowej). Współczesne przedsiębiorstwa nie korzystają już tylko z danych, ale przede wszystkim z wiedzy. To są przedsiębiorstwa oparte na wiedzy. Tradycyjne systemy informatyczne nie wystarczają. Współczesne systemy muszą spełniać uregulowania prawne, ekologiczne polskie i unijne. Dla zarządzania tak złożonymi systemami jak przedsiębiorstwa produkcyjne i wodociągowe niezbędne jest pozyskanie wiedzy metodami sztucznej inteligencji. Metody sztucznej inteligencji w rozwoju systemów informatycznych… 105 Konieczne jest opracowanie wspomagania złożonego procesu technologicznego oraz systemu wodociągowego z udziałem metod sztucznej inteligencji, poprzez opracowanie inteligentnych modeli (klasyfikacji, prognozy, preferencji). System wspomagania ma przewidywać przyszłe potrzeby. Dzięki temu system będzie w adaptacyjny sposób dostosowywał swoje działanie do nowych warunków oraz wprowadzi nową jakość do wspomagania, które można nazwać inteligentnym. 4. Miejsce wspomagania z udziałem metod sztucznej inteligencji w systemie informatycznym Miejsce wspomagania z udziałem metod sztucznej inteligencji w systemie informatycznym zostało pokazane na przykładzie systemu wspomagania sterowania siecią wodociągową (rys. 1). W komputerowym systemie wspomagania decyzji operatora sieci wodociągowej wyróżniono następujące elementy: branżową bazę danych, mapę numeryczną sieci wodociągowej, system monitoringu oraz model hydrauliczny z algorytmami optymalizacji [20]. Branżowa baza danych jest źródłem technicznych, technologicznych i eksploatacyjnych danych o sieci. Zdefiniowane zostały obiekty sieci wodociągowej. Mapa numeryczna pozwala na wizualizację sieci poprzez generowanie grafu sieci wodociągowej. Poziom funkcji W izualizacja grafu sieci O bliczenia hydrauliczne Kalibracja m odelu O ptym alizacja sieci Sterowanie siecią Poziom m odułów M apa num eryczna M odel hydrauliczny System m onitoringu Algorytm optym alizacji Algorytm sterowania Poziom danych B ranżowa Baza D anych Rysunek 1. Miejsce wspomagania sterowania siecią wodociągową z udziałem metod AI (Źródło: opracowanie własne na podstawie [20]) 106 Izabela Rojek System monitoringu sieci pokazuje rzeczywiste i bieżące informacje o pracy i stanie sieci. Pomiary z monitoringu dalej służą do kalibracji i weryfikacji modelu hydraulicznego sieci. Model hydrauliczny pozwala na obliczanie przepływów wody w przewodach i ciśnień w węzłach sieci. Model ten został opisany liniowymi i nieliniowymi równaniami algebraicznymi (równania liniowe z I prawa Kirchhoffa, równania nieliniowe z II prawa Kirchhoffa, równania liniowe z równania Bernoulliego). Problemem obliczeniowym jest wybór kombinacji pierścieni do formułowania równań nieliniowych z II prawa Kirchhoffa oraz wybór algorytmu rozwiązywania tego równań nieliniowego. Zastosowano algorytm Crossa obliczania równań nieliniowych [20]. Zadaniem systemu komputerowego jest optymalizacja i sterowanie siecią wodociągową. Wyróżniono dwa zadania optymalizacji: projektowanie i sterowanie siecią oraz dwa zadania projektowania: rekonstrukcję i rozbudowę sieci. Zastosowanie sztucznej inteligencji w systemie informatycznym wzbogaca tradycyjne systemy informatyczne. Możliwe jest opracowanie inteligentnych modeli klasyfikacji, predykcji i preferencji dzięki pozyskaniu wiedzy z danych rzeczywistych istniejących w bazach danych przedsiębiorstw. Dodanie inteligencji do systemu pozwala na wprowadzenie nowej jakości do wspomagania działania przedsiębiorstw. System wspomagania jeszcze dokładniej odzwierciedla potrzeby użytkowników systemu i reaguje na nie. System przewiduje przyszłe potrzeby. Dzięki temu system w adaptacyjny sposób dostosowuje swoje działanie do nowych warunków oraz wprowadza nową jakość do wspomagania, które można nazwać inteligentnym. Jest to następna generacja inteligentnego wspomagania. W zbiorze inteligentnych rozwiązań oraz przewidywania i preferencji nie można stosować metod analitycznych, które wymagają zbyt dużego uproszczenia rzeczywistości. W celu przedstawienia rzeczywistości złożonej należy stosować metody sztucznej inteligencji. Opracowane modele sprawdzono w pierwszym etapie na procesach technologicznych, a później w systemie wodociągowym, który jest dużo bardziej złożonym obiektem badań. 5. Zastosowanie metod sztucznej inteligencji do wspomagania Metody sztucznej inteligencji zostały zastosowane do budowy modeli wspomagania. Budowa modeli jest w znacznym stopniu sztuką, to znaczy trudno tu o ścisłe reguły. Punktem startowym do budowy modelu jest ustalenie zmiennych, których wzajemne relacje opisywane są za pomocą danego modelu. Innymi słowy chodzi tutaj o zmienne, które są przedmiotem zainteresowania użytkownika modelu. Te zainteresowania użytkownika mogą być różne. W niektórych przypadkach chodzi o wyrażenie zależności wejście-wyjście (można tu mówić o modelu zewnętrznym), a niekiedy o opis mechanizmów zachodzących w samym systemie (model wewnętrzny). Mając daną strukturę modelu można przystąpić do określenia parametrów modelu. Wiedza podstawowa może tutaj pomóc, ale z reguły potrzebne są dane doświadczalne. Modele klasyfikacji opracowano przy użyciu sieci neuronowych: jednokierunkowych wielowarstwowych ze wsteczną propagacją błędu, liniowych i sieci o radialnych funkcjach bazowych (RBF), klasyfikatorów prostych oraz wielokrotnych w postaci drzew decyzyjnych. Opracowano klasyfikator złożony, w którym dodano preferencje i wyjątki. Celem modeli klasyfikacji było kontrolowanie, czy wartości wejściowe są w normie, czy też nie. Modele predykcji zbudowane zostały przy użyciu sieci neuronowej. Porównano różne ich typy: jednokierunkowe wielowarstwowe ze wsteczną propagacją błędu, liniowe i RBF. Celem budowy modeli predykcji było dokładniejsze przewidywanie wartości wejściowych oraz szybsze reagowanie na nieprawidłowości w systemie. Metody sztucznej inteligencji w rozwoju systemów informatycznych… 107 W celu wzmocnienia inteligentnego wspomagania opracowano modele preferencji, które wprowadzono do modeli klasyfikacyjnych i predykcyjnych jako przykłady, w celu dokładniejszego reagowania na potrzeby użytkowników systemu inteligentnego wspomagania. Na podstawie modelu klasyfikacji, predykcji i preferencji utworzono reguły decyzyjne w systemie wspomagania. W regułach tych zawarto metody zarządzania i sterowania elementami systemu. Reguły decyzyjne wykorzystywane są w sytuacji, gdy system sygnalizuje, że odczytane wartości pomiarowe są nieprawidłowe. Wtedy system zgłasza stan awaryjny. Reguły te wspomagają użytkowników systemu w szybkim reagowaniu na sytuacje awaryjne. Prace badawcze z zakresu wspomagania złożonych procesów technologicznych zachodzących w obszarze projektowania technologii, w szczególności prace związane z tworzeniem modeli komputerowego inteligentnego wspomagania projektowania procesów technologicznych autorka prowadzi od wielu lat. Prowadzone badania dotyczą wielu zagadnień związanych ze wspomaganiem złożonych procesów technologicznych [21-25]. Głównym celem wspomagania, przedstawionego w pracy, jest dobór narzędzi do operacji technologicznych, w którym najważniejsze jest doświadczenie technologa, ze względu na dużą liczbę narzędzi możliwych do wybrania podczas projektowania oraz w sytuacjach zmiany narzędzi w trakcie procesu wytwarzania. Parametry obróbki liczone są następnie z określonych wzorów, a dobór obrabiarki też jest łatwiejszym etapem w projektowaniu procesu technologicznego, ze względu na ograniczoną liczbę obrabiarek. Prowadzone przez autorkę badania pozwoliły na opracowanie baz danych, baz wiedzy, modeli klasyfikacji, predykcji i preferencji oraz metod i systemu pozyskiwania wiedzy na potrzeby systemów wspomagania doboru narzędzi do operacji technologicznych w projektowaniu procesów technologicznych oraz w trakcie wytwarzania. Opracowane metody i modele mogą być szczególnie przydatne i ważne dla przedsiębiorstw charakteryzujących się produkcją jednostkową, o bardzo małej powtarzalności oraz bardzo dużej precyzji wykonania. Dlatego tak ważna jest wiedza pozyskana z gotowych procesów technologicznych zaprojektowanych przez doświadczonych technologów, która następnie jest wykorzystana w trakcie projektowania nowych wyrobów. Do optymalnego zaprojektowania procesu technologicznego należy zastosować odpowiednią wiedzę technologiczną wypływającą z doświadczenia technologa. W celu uzyskania takiej wiedzy należy zastosować odpowiednie narzędzia do jej pozyskania. Zastosowanie sieci neuronowych, czy metod maszynowego uczenia w systemie odkrywania wiedzy na potrzeby systemu wspomagającego projektowanie procesu technologicznego (CAPP) jest obiecującym narzędziem, które pozwoli na uzewnętrznienie doświadczenia technologa w postaci wiedzy w bazach wiedzy oraz na przeprowadzenie w trakcie projektowania procesu technologicznego wnioskowania zbliżonego do rozumowania człowieka. Miarą oceny modeli jest skuteczność wybrania narzędzia z pewnej grupy narzędzi możliwych do wyboru. Im większa liczba narzędzi zostanie poprawnie sklasyfikowana, tym lepiej. Utworzone metody i modele przetestowano na danych rzeczywistych z przedsiębiorstwa produkcyjnego. W celu polepszenia doboru narzędzi do operacji technologicznej opracowano: bazę danych, wykorzystywaną dalej do opracowania modeli i metod wspomagania, model doboru narzędzi do operacji technologicznych, model przewidywania użycia narzędzi w różnych interwałach czasowych, model preferencji technologa w doborze narzędzi, model klasyfikacji wyjątków, typowych przykładów i preferencji dla dobru narzędzi, 108 Izabela Rojek portal korporacyjny – model zarządzania projektowaniem procesu technologicznego, zawierającego wspomaganie doboru narzędzi do operacji technologicznej. Prace badawcze z zakresu wspomagania sterowania siecią wodociągową autorka prowadzi od kilku lat. Zostały one przedstawione na forum międzynarodowym i krajowym [2630]. Dziedzina sterowania siecią wodociągową jest dużo bardziej złożona niż projektowanie procesu technologicznego. Zamysłem autorki było zastosowanie tych samych metod sztucznej inteligencji do opracowania modeli wspomagania sterowania siecią wodociągową, co podczas doboru narzędzi do operacji technologicznych w celu weryfikacji tych metod i modeli w innej dziedzinie i sprawdzenia ich skuteczności. Metody sztucznej inteligencji zostały zastosowane do opracowania szeregu modeli pozwalających na sterowanie siecią wodociągową. W przypadku sterowania siecią wodociągową ze względu na bardzo dużą złożoność należało opracować dużo więcej modeli wykorzystujących metody sztucznej inteligencji. Dodatkowo wykorzystano klasyfikatory wielokrotne złożone z wielu drzew decyzyjnych. Głównym celem wspomagania było sterowanie siecią wodociągową, które należy do złożonych systemów dynamicznych. Wspomaganie było realizowane w zakresie produkcji i dystrybucji wody pitnej, zapewnienia żądanej ilości i ciśnienia wody oraz energooszczędnej eksploatacji sieci poprzez optymalne sterowanie pompami. Opracowanie odpowiednich modeli (klasyfikacji, predykcji i preferencji) i algorytmów pozwoli w automatyczny sposób wspomagać kadrę inżynieryjną przedsiębiorstwa wodociągowego, która obecnie te zadania wykonuje ręcznie. Umożliwi stworzenie mechanizmów bezpiecznej wymiany informacji pomiędzy różnymi algorytmami oraz zapewni wybranym użytkownikom systemu jednolitą formę dostępu do jego funkcji. Opracowanie wymienionych modeli, algorytmów i programów komputerowych oraz wykonanie odpowiednich obliczeń symulacyjnych powoduje, że uzyskuje się narzędzie istotnie usprawniające zarządzanie miejskim przedsiębiorstwem wodociągowym. Nowoczesny system wspomagania zawiera zarówno wspomaganie decyzji oraz sterowanie działaniem urządzeń pracujących w sieci wodociągowej. Wśród parametrów, którymi się steruje można wyróżnić poziom wody w zbiornikach, stałe ciśnienie i przepływ wody w sieci. Utrzymanie tych parametrów jest bardzo trudne ze względu na szybkie i duże zmiany warunków np. zmianę obciążenia sieci wodociągowej. Obciążenie sieci wodociągowej wpływa na pracę pomp oraz na napełnianie zbiorników retencyjnych. Stąd prognoza obciążenia sieci wodociągowej jest istotnym elementem sterowania siecią. Poprawne przewidywanie obciążenia i sterowanie operacyjne siecią wodociągową pozwoli energooszczędnie sterować pompami, które odpowiadają za utrzymanie właściwego poziomu ciśnienia i przepływu wody w sieci wodociągowej oraz właściwego poziomu wody w zbiornikach. System wspomagania w czasie rzeczywistym sprawdza, czy bieżące parametry ciśnienia i przepływu wody mieszczą się w granicy normy. W przypadku parametrów poniżej normy, system wskazuje potrzebę uruchomienia pompy w celu wyrównania poziomu ciśnienia wody. W przypadku przekraczania górnej normy ciśnienia, system sygnalizuje potrzebę wyłączenia pompy. Wykorzystując wbudowane modele można według nich przewidywać potencjalne obciążenie i sterować pompami, w zależności od pory roku, miesiąca, dnia, czy nawet części dnia. W celu polepszenia sterowania siecią wodociągową opracowano: bazę danych, wykorzystywaną dalej do opracowania modeli i metod wspomagania, model kontroli parametrów sieci (ciśnienia i przepływu wody), model przewidywania obciążenia sieci wodociągowej w różnych interwałach czasowych, Metody sztucznej inteligencji w rozwoju systemów informatycznych… 109 model preferencji operatora sieci i odbiorcy wody, model klasyfikacji wyjątków, typowych przykładów i preferencji dla kontroli przepływu wody, metodę sterowania pompami w sieci wodociągowej, metodę sterowania pompami do napełniania zbiorników retencyjnych, portal środowiskowy – model zarządzania środowiskiem, zawierającego wspomaganie sterowania siecią wodociągową. 6. Uwagi końcowe Nowość tego podejścia polega na opracowaniu nowych metod i modeli do funkcjonujących procesów i systemów rzeczywistych. Funkcjonujące systemy działają w rzeczywistości, która jest obecnie zupełnie inna, a do tej pory stosowane były tradycyjne metody, które nie spełniają oczekiwań nowej rzeczywistości. Opracowane modele i metody zawarte w systemie poprzez metawiedzę dodają inteligencji, której kluczowymi elementami jest zdolność do predykcji, zdolność do adaptacji oraz zdolność do wykonywania odpowiednich działań. Nowość polega również na wprowadzeniu przewidywania w systemach podejmowania decyzji dla przedsiębiorstw produkcyjnych i wodociągowych. Ważnym aspektem utworzenia systemu jest możliwość transferu wiedzy między przedsiębiorstwami. Utworzenie takiego systemu może zapobiec utracie wiedzy wraz z odejściem pracowników z przedsiębiorstwa. Często jest to wiedza wielu pracowników zebrana przez długi okres czasu. Wykorzystanie metod sztucznej inteligencji umożliwia utworzenie systemu wspomagania, który w sposób automatyczny pozyskuje wiedzę i ma właściwość adaptacji. Jest to szczególnie ważne przy opracowywaniu systemu dla złożonych systemów rzeczywistych, w których następują ciągłe zmiany i jedne podprocesy zależą od innych oraz wiele czynników zależy jeden od drugiego i każda zmiana powoduje zmiany kolejne. Korzyści ze stosowania metod sztucznej inteligencji wielokrotnie przekraczają pracochłonność ich tworzenia. W rzeczywistości najdłuższym etapem procesu ich tworzenia jest zgromadzenie i przygotowanie danych źródłowych, chociaż poprzez automatyczne gromadzenie danych również ten etap ulega skróceniu. Inteligentny system wspomagania pozwala na pozyskanie danych, wiedzy i doświadczenia ludzi w sposób komplementarny. Wykorzystano zarówno do tego celu bazy danych istniejące w przedsiębiorstwie oraz metody sztucznej inteligencji. Kompleksowe podejście jest istotnym osiągnięciem w stosunku do tradycyjnych systemów opartych wyłącznie na wiedzy pozyskanej od ekspertów ludzi. Jest to szczególnie istotne w sytuacjach, gdy wiedza taka nie jest dostępna, bądź jest trudna do sformalizowania, niepełna i niepewna. Bibliografia [1] Chromiec J., Strzemieczna E. Sztuczna inteligencja: Metody konstrukcji i analizy systemów eksperckich. Akademicka Oficyna Wydawnicza PLJ, 1994. [2] Kacprzyk J., Krawczak M., Zadrożny S. Issues in information technology. Akademicka Oficyna Wydawnicza EXIT, 2002. [3] Ying Liu, Aixin Sun, Han Tong Loh, Wen Feng Lu, Ee-Peng Lim. Advances of Computational Intelligence in Industrial Systems. Springer-Verlag, Vol. 116, 2008. [4] Kosiński W., Hung Son Nguyen, Szczuka M. Inteligencja obliczeniowa – elementy [online]. http://www.impan.gov.pl [dostęp: 2006] [5] Tadeusiewicz R. Sieci neuronowe. Akademicka Oficyna Wydawnicza RM, 1993. 110 Izabela Rojek [6] Kacprzyk J. Rozmyte programowanie dynamiczne, w: Kulczycki P., Hryniewicz O., Kacprzyk J. Techniki informacyjne w badaniach systemowych. WNT, 2007, s. 231-282. [7] Piegat A. Modelowanie i sterowanie rozmyte. Akademicka Oficyna Wydawnicza EXIT, 1999. [8] Michalewicz Z. Algorytmy genetyczne+ struktury danych = programy ewolucyjne. WNT, 1996. [9] Rutkowska D. Inteligentne systemy obliczeniowe: Algorytmy genetyczne i sieci neuronowe w systemach rozmytych. Akademicka Oficyna Wydawnicza PLJ, 1997. [10] Rejer I. Integracja źródeł wiedzy w modelach rozmytych zależności ekonomicznych. Wydawnictwo Naukowe Uniwersytetu Szczecińskiego, 2008 [11] Rao, M.; Sun, X.; Feng, J. Online intelligent system for operation support. Proceedings of the 3rd World Congress on Intelligent Control and Automation, Vol.1, 2000, s. 363 – 368. [12] Yam R.C.M., Tse P.W., Li L., Tu P. (2001) Intelligent Predictive Decision Support System for Condition-Based Maintenance., International Journal of Advanced Manufacturing Technology, Vol. 17, 2001, s. 383 – 391. [13] Schirru R., Pereira C. M. N. A. A Real-Time Artificially Intelligent Monitoring System for Nuclear Power Plants Operators Support. Real-Time Systems, Vol. 27, 2004, s. 71–83. [14] Zaremba M. B. Intelligence in Manufacturing Systems: The Pattern Recognition Perspective. 9th IFAC Workshop on Intelligent Manufacturing Systems, 2008, s.19-24. [15] Wei S., Gnauck A. Game theory Based Water Quality Models for Reservoir Management. 21st conference Informatics for Environmental Protection ENVIROINFO 2007, Vol. 1, 2007, s. 363-370. [16] Farmani R., Ingeduld P., Savic D., Walters G., Svitak Z., Berka J. Real-time modeling of a major water supply system. 8 International Conference on Computing and Control for the Water Industry, Vol. 160, No 2, 2007, s. 103-108. [17] Iskenderov A.A. A Mathematical Model of Water Supply System Management. MAIK Nauka/Interperiodica, Water Resources, Vol. 30, No 4, 2003, s. 458-466(9). [18] Chung G., Kim J., Kim T-W. System dynamics modeling approach to water supply system. KSCE Journal of Civil Engineering, Vol. 12, No. 4, 2008, s. 275-280. [19] Studziński J., Bogdan L. Informatyczny system wspomagania decyzji do zarządzania, sterowania operacyjnego i planowania miejskiego systemu wodno-ściekowego. W: Studziński J., Drelichowski L., Hryniewicz O. (Red.): Rozwój i zastosowania metod ilościowych i technik informatycznych wspomagających procesy decyzyjne, IBS PAN, Badania Systemowe 49, 2006. [20] Studziński J. Optymalizacja i zarządzanie operacyjne miejskimi sieciami wodociągowymi. wykład habilitacyjny, IBS PAN, 2005. [21] Rojek-Mikołajczak I. Zarządzanie wiedzą w dziale technologicznym przedsiębiorstwa produkcyjnego. IX konferencja Komputerowe Systemy Wielodostępne KSW’2003, Bydgoszcz-Ciechocinek, 2003, s. 43-50. [22] Rojek I. Application of artificial intelligence methods in knowledge management in the intelligent database environment, w: Zastosowania Informatyki w nauce, technice i zarządzaniu, IBS PAN, Badania Systemowe, 2005, s. 117-127. [23] Rojek I. Learning System of Manufacturing Knowledge Acquisition. An International Journal Image Processing & Communications, Vol. 11, No 1, 2006, s. 19-23. [24] Rojek I. Knowledge Discovery for Computer Aided Process Planning Systems. Polish Journal of Environmental Studies, Vol. 16, No. 4A, 2007, s. 268-270, short communication. Metody sztucznej inteligencji w rozwoju systemów informatycznych… 111 [25] Rojek I. Neural networks as classification models in intelligent CAPP systems. 9th IFAC Workshop on Intelligent Manufacturing Systems, 2008, s. 105-110. [26] Rojek I. A concept of a decision support system with a knowledge acquisition module for the water supply and sewage system of a city. Studies&Proceedings Polish Association for Knowledge Management , Vol. 9, 2007, s. 98-104. [27] Rojek I. Bazy danych i bazy wiedzy dla miejskiego systemu wodno-ściekowego. BAZY DANYCH – NOWE TECHNOLOGIE, Wydawnictwo Komunikacji i Łączności, 2007, s. 5966. [28] Rojek I. Model of Intelligent Decision Support System Using Methods of Artificial Intelligence. Polish Journal of Environmental Studies, Vol. 17, No. 3B, 2008, s. 375-379. [29] Rojek I. Neural Networks as Prediction Models for Water Intake in Water Supply System, Lecture Notes in Artificial Intelligence, LNAI 5097, Springer-Verlag, 2008, s.1109 – 1119 [30] Rojek I. Opracowanie modelu inteligentnego zarządzania środowiskiem. Badania Operacyjne i Systemowe: Środowisko naturalne, przestrzeń, optymalizacja, IBS PAN, Badania Systemowe, Vol. 63, 2008, s. 79-88 Wybrane metody klasyfikacji bezwzorcowej w zastosowaniu do klasyfikacji danych dotyczących jakości życia mieszkańców państw OECD Maciej Roszkowski Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: The article presents functioning of statistical methods of classification without the pattern: agglomeration and clusterization of k-averages and the method based on Kohonen neural network applied to classification the quality of life of OECD' inhabitants data. Keywords: clusterization, agglomeration, clusterization of k-averages, Kohonen neural networks 1. Wprowadzenie Klasyfikacja jest to taki podział populacji, składającej się ze zbioru p obiektów o n cechach, na q grup (1 ≤ q ≤ p), przy którym są spełnione warunki: warunek „zajętości grup” – każda grupa posiada przynajmniej jeden obiekt, warunek zupełności – suma grup jest całą populacją, warunek rozłączności – poszczególne grupy są rozłączne. Najbardziej ogólny podział metod klasyfikacji zakłada istnienie dwóch grup metod: klasyfikacji wzorcowej i bezwzorcowej. Klasyfikacja ze wzorcem dokonuje podziału obiektów danej populacji na podstawie posiadanej informacji o przynależności do grup innych obiektów z tej samej populacji. Natomiast klasyfikacja bez wzorca nie może opierać się o informacje o przynależności do grup, ponieważ takiej informacji najczęściej się nie posiada. Klasyfikacja bez wzorca dokonuje grupowania obiektów na względnie jednorodne klasy na podstawie podobieństwa i odległości obiektów od siebie w przestrzeni cech. Obiekty „podobne” do siebie należą do tej samej grupy, jednocześnie obiekty z danej grupy nie są „podobne” do obiektów z innych grup. Dlatego też bardzo często klasyfikację bezwzorcową określa się mianem analizy skupień czy też klasteryzacji. Podobieństwo obiektów jest funkcją przyporządkowującą danej parze obiektów (należących do jednej grupy) pewną liczbę rzeczywistą nazywaną współczynnikiem podobieństwa. Funkcja podobieństwa musi spełniać następujące warunki [1]: warunek nieprzekraczalności wartości maksymalnej współczynnika podobieństwa (najczęściej funkcja przyjmuje wartości z przedziału <0;1>, a współczynnik podobieństwa równy jest maksymalnej wartości, czyli jedności, warunek symetrii, który oznacza, że współczynnik podobieństwa obiektu pierwszego do drugiego jest taki sam jak współczynnik podobieństwa obiektu drugiego do pierwszego. W praktyce najczęściej jednak stosuje się funkcję odległości, która jest przeciwieństwem podobieństwa. Im większa odległość w przestrzeni cech pomiędzy dwoma obiektami danej populacji, tym te dwa obiekty są bardziej „niepodobne”. Dlatego też w grupy są łączone Metody Informatyki Stosowanej, nr 2/2009 (19), s. 113-120 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 114 Maciej Roszkowski obiekty leżące blisko siebie w przestrzeni cech. Funkcja odległości musi spełniać następujące warunki [1]: warunek zwrotności, który oznacza, że odległość obiektu od samego siebie jest równa zeru, warunek symetrii, który oznacza, że odległość jednego obiektu od drugiego jest taka sama jak odległość obiektu drugiego od pierwszego, warunek trójkąta, który oznacza, że odległość pomiędzy pierwszym a trzecim obiektem jest mniejsza lub równa dwóm odległościom: pomiędzy pierwszym a drugim obiektem i pomiędzy drugim a trzecim obiektem. Istnieje wiele metod klasyfikacji bezwzorcowej. W praktyce spośród metod statystycznych najczęściej wykorzystuje się metody hierarchicznej i niehierarchicznej klasyfikacji. Dosyć często ich wyniki przeciwstawia się wynikom uzyskanym za pomocą sieci neuronowych, aby wykazać wyższość jednych nad drugimi [4]. Przedstawiana funkcja podobieństwa również wykorzystywana jest w sieci neuronowej Kohonena, jednakże w innej formie. Na wejściu sieci neuronowej Kohonena prezentowane są przypadki. Proces uczenia pozwala na wykrycie i wykorzystanie ukrytych cech znajdujących się w danych (na przykład podobieństwa). Dzięki temu w konsekwencji możliwe staje się rozpoznawanie grup obiektów oraz kojarzenie podobnych grup obiektów (nawet bez znajomości istoty ich podobieństwa). W niniejszej pracy zostaną zaprezentowane wyniki użycia dwóch metod bezwzorcowej klasyfikacji statystycznej (metoda aglomeracji, metoda grupowania k-średnich) oraz metody klasyfikacji bezwzorcowej za pomocą sieci neuronowej Kohonena. 2. Opis danych wejściowych Podczas obliczeń wykorzystano dane dotyczące jakości życia mieszkańców państw OECD zawarte w OECD Factbook 2009 (rocznik statystyczny SourceOECD) [7]. Na dane składały się próbki uczące, z których każda dotyczyła jednego państwa. Poszczególne państwa były obiektami, które podlegały klasyfikacji. Każde z państw było scharakteryzowane przez czynniki składające się na jakość życia. Przed wykorzystaniem danych został dokonany dobór cech wejściowych, dobór obiektów do badań oraz standaryzacja zmiennych wejściowych. Dane składały się z 25 próbek i 9 cech wejściowych: spodziewana długość życia, umieralność niemowląt, liczba ludności z nadwagą i otyłością, wskaźnik samobójstw, subiektywna ocena dobrobytu, czas poświęcany na cele dobroczynne, liczba młodzieży nieuczącej się i bezrobotnej, liczba turystów zagranicznych, liczba śmiertelnych wypadków drogowych. Wszystkie obliczenia zostały wykonane za pomocą pakietu StatSoft STATISTICA 8.0 oraz arkusza kalkulacyjnego Microsoft Excel 2003. 3. Aglomeracja W pierwszej fazie obliczeń w metodzie aglomeracyjnej każdy obiekt jest oddzielną grupą. W kolejnych krokach obiekty znajdujące się najbliżej siebie są łączone w grupy tak długo, aż powstaje jedna grupa zawierająca wszystkie obiekty. Miarą, która oddaje bliskość Wybrane metody klasyfikacji bezwzorcowej w zastosowaniu do klasyfikacji… 115 poszczególnych obiektów jest miara odległości. Istnieje wiele metod wyznaczania odległości, np.: odległość euklidesowa, odległość miejska, odległość Czebyszewa. W pierwszym etapie metody aglomeracji, każdy obiekt jest pojedynczą grupą, w kolejnych krokach następuje łączenie pojedynczych grup w większe grupy. Kryterium, które umożliwia zbadanie odległości pomiędzy poszczególnymi grupami, są metody wiązania. Rozróżnia się wiele metod wiązań, np.: pojedynczego wiązania, pełnego wiązania, średnich połączeń, środków ciężkości. Różnią się one sposobem obliczania odległości pomiędzy grupami. W ostatnim kroku metody aglomeracji wszystkie grupy zostają połączone w jedną wielką grupę obiektów, najczęściej jest to prezentowane w postaci dendrogramu (drzewa). Podział na wiele grup uzyskuje się poprzez „odcięcie” dendrogramu, w takim miejscu które będzie wskazywać na właściwą liczbę grup. Miejsce „odcięcia” uzyskuje się poprzez analizę dendrogramu, analizę wykresu przebiegu aglomeracji, wykorzystanie miernika Grabińskiego [2], wykorzystanie reguły Mojeny lub też wykorzystanie współczynnika RMSSTD [5]. Podczas analizy danych dotyczących jakości życia mieszkańców państw OECD za pomocą aglomeracji została użyta metoda pełnego wiązania. Wykorzystywaną miarą odległości była miara euklidesowa. Na rysunku (Rysunek 1) znajduje się dendrogram powstały w wyniku klasyfikacji danych wejściowych za pomocą aglomeracji. Grubszą linią ciągłą poziomą został zaznaczony punkt odcięcia, wyznaczony na podstawie analizy dendrogramu (Rysunek 1), wykresu przebiegu aglomeracji (Rysunek 2) oraz miernika zaproponowanego przez Grabińskiego [2] (Tabela 1). 10 9 Odległość wiązania 8 7 6 5 4 3 2 1 Meksyk Japonia Szwajcaria Francja Węgry Słowacja Polska Czechy Stany Zjednoczone Portugalia Grecja Hiszpania Włochy Wielka Brytania Niemcy Szwecja Dania Finlandia Belgia Nowa Zelandia Holandia Norwegia Irlandia Austria Australia 0 Rysunek 1. Diagram drzewa (dendrogram) wyznaczony metodą pełnego wiązania przy zastosowaniu euklidesowej miary odległości. Opracowanie własne. Wykres przebiegu aglomeracji (Rysunek 2) pokazuje odległości pomiędzy grupami podczas ich łączenia w trakcie kolejnych kroków aglomeracji. Dłuższa linia pionowa tego wykresu świadczy o dużej odległości rozpatrywanych grup. Najdłuższa pionowa linia występuje w kroku 24, następna pod względem długości jest linia w kroku 20, z kolei następna pod względem długości jest linia w kroku 21. Odcięcie dendrogramu powinno nastąpić po którymś z tych proponowanych miejsc. 116 Maciej Roszkowski 11 10 9 Odległość wiązania 8 7 6 5 4 3 2 1 0 0 3 6 9 12 15 18 21 24 Krok Rysunek 2. Wykres przebiegu aglomeracji. Opracowanie własne. Tabela 1. Obliczanie punktu odcięcia dendrogramu za pomocą miernika zaproponowanego przez Grabińskiego [2]. Opracowanie własne. i 1 2 3 4 5 6 7 8 9 10 11 12 d di-di-1 1,21 1,21 0,00 1,40 0,19 1,46 0,06 1,51 0,05 1,56 0,04 1,67 0,11 1,99 0,32 2,16 0,17 2,28 0,12 2,29 0,00 2,46 0,17 di / di-1 1,00 1,16 1,04 1,04 1,03 1,07 1,19 1,09 1,06 1,00 1,08 i 13 14 15 16 17 18 19 20 21 22 23 24 d 2,54 2,77 2,91 3,00 3,29 3,68 3,71 4,77 5,75 6,22 6,55 9,29 di-di-1 0,08 0,24 0,13 0,09 0,29 0,39 0,03 1,06 0,98 0,47 0,34 2,73 di / di-1 1,03 1,09 1,05 1,03 1,10 1,12 1,01 1,29 1,21 1,08 1,05 1,42 Tabela (Tabela 1) przedstawia sposób obliczeń miernika zaproponowanego przez Grabińskiego. Pierwsza kolumna „i” zawiera kolejne kroki metody aglomeracji, druga kolumna „d” zawiera odległości (długości i-tej gałęzi drzewa), w następnych kolumnach znajdują się przekształcenia tych wartości. Odcięcie dendrogramu powinno mieć miejsce w po tym kroku metody, w którym różnica di-di-1 osiąga maksimum. Proponowane miejsca odcięcia dendrogramu przy użyciu miernika zaproponowanego przez Grabińskiego są identyczne jak propozycje powstałe podczas analizy wykresu przebiegu aglomeracji. Odcięcie dendrogramu po kroku 24 nie jest dobrym rozwiązaniem, gdyż uzyskujemy pojedynczą grupę 24 obiektów. Dobrym rozwiązaniem byłoby wykonanie odcięcia po 20 kroku, jednakże uzyskalibyśmy wtedy 5 grup obiektów, z czego dwa z nich byłyby jednoelementowe. Ostatecznie zdecydowano o podziale po 21 kroku, uzyskując 4 grupy obiektów: Grupa 1: Australia, Austria, Irlandia, Norwegia, Holandia, Nowa Zelandia, Belgia, Finlandia, Dania, Szwecja, Niemcy, Wielka Brytania, Włochy, Hiszpania, Grecja, Portugalia, Stany Zjednoczone, Grupa 2: Czechy, Polska, Słowacja, Węgry, Grupa 3: Francja, Szwajcaria, Japonia, Grupa 4: Meksyk. Wybrane metody klasyfikacji bezwzorcowej w zastosowaniu do klasyfikacji… 117 4. Grupowanie metodą k-średnich Metoda k-średnich umożliwia podział obiektów na określoną liczbę grup, jednakże żadna z grup nie będzie podgrupą innej grupy, jak miało to miejsce w aglomeracji. Za pomocą metody k-średnich tworzy się k grup, z których każda będzie się różnić od innych w największym stopniu. Liczbę grup oraz przedstawicieli każdej grupy uzyskuje się na różne sposoby: losowo, arbitralnie lub na podstawie algorytmu. Po wskazaniu ilości grup i przedstawicieli algorytm k-średnich dokonuje przenosin obiektów pomiędzy grupami, w taki sposób, aby zmienność wewnątrz grup była jak najmniejsza, natomiast zmienność pomiędzy grupami była jak największa. Docelowo każdy obiekt powinien znaleźć się w takiej grupie, w stosunku do której najbliżej się znajduje. Dlatego dla każdego obiektu wyznaczana jest jego odległość od danej grupy. W praktyce liczba kroków wymagana do uzyskania końcowego rozwiązania jest nie większa niż 10 [5]. Podczas analizy danych dotyczących jakości życia mieszkańców państw OECD za pomocą metody k-średnich została arbitralnie narzucona liczba czterech grup. Wstępne centra grup zostały wyznaczone poprzez posortowanie wszystkich odległości pomiędzy obiektami i wybór przypadków przy stałych interwałach. W tabeli (Tabela 2) zostały zestawione elementy poszczególnych grup i ich odległości (euklidesowe) od centrów grup. Analiza tej tabeli pozwala w łatwy sposób odnaleźć obiekty, których odległość od centrów grup jest bardzo duża, przez co takie obiekty powinny stanowić oddzielne grup. Przykładem takiego obiektu może być obiekt Stany Zjednoczone, który wyraźnie odstaje od innych elementów grupy 3, jak również obiekt Japonia, która odstaje od innych obiektów grupy 1. Porównując wyniki klasyfikacji tych dwóch obiektów z wynikami aglomeracji można zauważyć że obiekt Stany Zjednoczone został dołączony do grupy 1 w ostatnim 21 kroku (tuż przed dokonaniem odcięcia dendrogramu), co może świadczyć o potrzebie umieszczenia obiektu Stany Zjednoczone w oddzielnej grupie. Natomiast obiekt Japonia wyraźnie nie pasuje do obiektów grupy 1 podobnie jak miało to miejsce w podczas aglomeracji. Tabela 2. Elementy poszczególnych grup pogrupowane za pomocą metody k-średnich. Opracowanie własne. LP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Elementy grupy 1 Australia Austria Belgia Dania Finlandia Francja Niemcy Irlandia Japonia Holandia Nowa Zelandia Norwegia Szwecja Szwajcaria Odległość 0,42 0,43 0,53 0,56 0,52 0,76 0,60 0,31 1,18 0,66 0,77 0,47 0,63 0,52 LP 1 2 3 4 5 Elementy grupy 2 Czechy Węgry Polska Portugalia Słowacja Odległość 0,48 0,74 0,42 0,78 0,36 LP 1 2 3 4 5 Elementy grupy 3 Grecja Włochy Hiszpania Wielka Brytania Stany Zjednoczone Odległość 0,88 0,37 0,41 0,70 1,07 LP Elementy grupy 4 1 Meksyk Odległość 0,00 118 Maciej Roszkowski 5 4 3 2 1 0 -1 Śmiertelne wypadki drogowe Turyści zagraniczni Młodzież nieucząca się i bezrobotna Czas na cele dobroczynne Samoocena dobrobytu Samobójstwa Nadwaga i otyłość Umieralność niemowląt Długość życia -2 Grupa 1 Grupa 2 Grupa 3 Grupa 4 Rysunek 3. Wykres średnich każdej grupy. Opracowanie własne. Wykres liniowy średnich przedstawiony na rysunku (Rysunek 3) przedstawia dla poszczególnych grup zestawienie różnic pomiędzy nimi, np.: mieszkańców państw z grupy 1 i 3 cechuje dłuższy średni wiek od mieszkańców pozostałych państw z grupy 2 i 4, umieralność niemowląt, ilość ludzi otyłych i z nadwagą oraz ilość młodzieży nie uczącej się lub bezrobotnej jest o wiele wyższa w Meksyku w porównaniu do średniej innych krajów z grup 1, 2 i 3, kraje należące do grupy 2 cechuje niższa subiektywna ocena dobrobytu niż pozostałe badane kraje z grup 1, 3 i 4, kraje grupy 3 są obecnie bardziej atrakcyjnym miejscem do turystyki niż pozostałe badane kraje z grup 1, 2 i 4. 5. Sieć neuronowa Kohonena Sieć neuronowa Kohonena wykorzystuje do nauczania bezwzorcowego metodę uczenia konkurencyjnego. Każda sieć Kohonena poza warstwą wejściową posiada jedną warstwę wyjściową składającą się z neuronów radialnych. Warstwa wyjściowa (przetwarzająca) tworzy mapę topologiczną, którą odzwierciedla się najczęściej jako dwuwymiarową siatkę, której węzły stanowią neurony tej warstwy. Każdy neuron warstwy przetwarzającej jest połączony z każdym neuronem warstwy wejściowej. Za każdym razem podczas prezentacji danej próbki danych neurony „rywalizują” ze sobą i „wygrywa” ten z nich, który uzyska najwyższy poziom aktywacji [3]. Poziom aktywacji neuronu jest równy odległości tego neuronu od próbki wejściowej. Neuron wygrywający podlega uczeniu. Wektor wag jest modyfikowany w ten sposób, aby lepiej rozpoznawał próbki wejściowe podobne do właśnie przetwarzanej. Wektor wag neuronów sąsiadujących ze zwycięzcą również zostaje zmieniony. Po zakończeniu procesu uczenia, sieć neuronowa Kohonena klasyfikuje każdą nową próbkę Wybrane metody klasyfikacji bezwzorcowej w zastosowaniu do klasyfikacji… 119 wejściową do tej grupy, której wektor wag (neuronu w warstwie wyjściowej) jest najbardziej zbliżony [6]. Podczas analizy danych dotyczących jakości życia mieszkańców państw OECD została użyta sieć neuronowa Kohonena SOFM 9-4 o dziewięciu neuronach wejściowych i 4 neuronach w warstwie wyjściowej (wymiary mapy topologicznej 2 na 2 elementy). Inicjalizacja sieci była dokonana w sposób losowy. Uczenie trwało 1000 epok. Ze zbioru uczącego, który składał się ze wszystkich rozpatrywanych przypadków, zostały arbitralnie wybrane próbki do zbioru testowego: Polska, Niemcy, Meksyk, Stany Zjednoczone. W tabeli (Tabela 3) znajduje się zestawienie grup powstałych w wyniku klasyfikacji danych wejściowych za pomocą sieci neuronowej Kohonena. Każdy z obiektów ma również przyporządkowany poziom aktywacji. Uzyskane wyniki klasyfikacji przy użyciu sieci Kohonena są bardzo podobne do wyników klasyfikacji uzyskanych za pomocą metody aglomeracji i grupowania k-średnich. Wszystkie obiekty grupy 1 (oprócz Szwajcarii) oraz grupy 2 (oprócz Meksyku) zostały identycznie zaklasyfikowane do tych grup w metodzie aglomeracji i grupowania k-średnich. Pozostałe grupy uzyskane w klasyfikacji za pomocą sieci neuronowej Kohonena składają się z różnych obiektów, które są różne dla różnych metod klasyfikacji. Zaklasyfikowanie obiektu Meksyk do grupy 2 (sieć Kohonena) musiało być najprawdopodobniej spowodowane skrajnym położeniem tego obiektu w przestrzeni cech. W poprzednich metodach obiekt Meksyk stanowił oddzielną grupę. Na jego nietypowy charakter może wskazywać również skrajnie wysoki poziom aktywacji. Tabela 3. Elementy poszczególnych grup pogrupowane za pomocą sieci Kohonena. Opracowanie własne. LP Elementy grupy 1 Aktywacja LP Elementy grupy 2 Aktywacja 1 Australia 0,40 1 Czechy 0,67 2 Austria 0,42 2 Węgry 0,48 3 Belgia 0,51 3 Meksyk 4,01 4 Dania 0,46 4 Polska 0,45 5 Finlandia 0,50 5 Słowacja 0,44 6 Irlandia 0,24 7 Holandia 0,56 8 Nowa Zelandia 0,91 1 Francja 0,58 9 Norwegia 0,46 2 Niemcy 0,63 10 Szwecja 0,65 3 Włochy 0,45 11 Szwajcaria 0,53 4 Japonia 1,04 5 Hiszpania 0,57 Aktywacja 6 Wielka Brytania 0,72 7 Stany Zjednoczone 1,54 LP Elementy grupy 4 1 Grecja 0,44 2 Portugalia 0,43 LP Elementy grupy 3 Aktywacja 6. Podsumowanie Wszystkie metody wskazują na bardzo zbliżoną klasyfikację obiektów. Co prawda odgórnie zostało narzucone istnienie czterech grup w każdej z metod, ale miało to za zadanie jedynie uproszczenie analizy wyników trzech metod, poprzez ograniczenie się do jednego rozpatrywanego wariantu. 120 Maciej Roszkowski Trudno jest ocenić dokładność każdej z metod, ponieważ nie posiadamy informacji o właściwych przyporządkowaniach do grup. Znamiennym jest na pewno fakt praktycznie identycznej klasyfikacji obiektów do grup 1 i 2 przez wszystkie rozpatrywane metody klasyfikacji. Jednakże z drugiej strony wielce zastanawiające jest różne uporządkowanie pozostałych grup przez rozpatrywane metody. Najprawdopodobniej podział na cztery grupy należałoby przemyśleć i uzasadnić większą liczbą obliczeń, a być może zwiększyć liczbę grup. O poprawności klasyfikacji obiektów do grupy 2 może świadczyć fakt, iż zmiennymi wejściowymi były cechy określające jakość życia, natomiast w wyniku klasyfikacji bezwzorcowej otrzymaliśmy zestaw obiektów sąsiadujących ze sobą geograficznie (pomimo tego, iż żadna cecha wejściowa nie opisywała charakteru geograficznego obiektów). Najprawdopodobniej taka klasyfikacja tych obiektów (Polski, Słowacji, Czech i Węgier) może wynikać z faktu związanej ze sobą historii krajów byłego bloku komunistycznego. Bibliografia [1] Dobosz M. Wspomagana komputerowo statystyczna analiza wyników badań, Akademicka Oficyna Wydawnicza Exit, Warszawa, 2001. [2] Grabiński T. Metody taksonometrii, Akademia Ekonomiczna w Krakowie, Kraków, 1992. [3] Osowski S. Sieci neuronowe do przetwarzania informacji, Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, 2000. [4] Roszkowski M. Metoda identyfikacji stanu obiektów za pomocą sieci neuronowych na przykładzie klasyfikacji klientów na e-rynku, Rozprawa doktorska, Wydział Informatyki Politechniki Szczecińskiej, Szczecin, 2006. [5] Stanisz A. Przystępny kurs statystyki z zastosowaniem Statistica PL na przykładach z medycyny. StatSoft, Kraków, 2007. [6] Witkowska D. Sztuczne sieci neuronowe i metody statystyczne, Wydawnictwo C.H. Beck, Warszawa, 2002. [7] Źródło internetowe: http://www.sourceoecd.org/factbook. OECD Factbook 2009: Economic, Environmental and Social Statistics – Qualify of live, Stan na rok 2009. Wprowadzenie do weryfikacji prostych programów w języku ST za pomocą narzędzi Coq, Why i Caduceus Jan Sadolewski Politechnika Rzeszowska, Wydział Elektrotechniki i Informatyki Abstract: Based on three simple examples, the paper introduces into verification technique of control programs by means of Coq, Why and Caduceus tools developed in France. The examples involve binary multiplexer, RS fillip-flop and a Start-Stop circuit composed of the flip-flop and a gate. The programs to be verified are written in ST language (Structured Text) of IEC 61131-3 standard. The approach consists of four basic steps. First the original ST program is converted into ANSI C to be handled by Caduceus. This in turn converts the ANSI C into a code interpreted by Why. Coq is a proof assistant for verification of conditions generated by Why. Conversions and proofs for each of the examples are presented in details, together with trees involving tactics applied for verification. Based on these, some recommendations and hints how to handle problems of similar classes are given. Keywords: Coq, Why, Caduceus, proof assistant, ST to ANSI C conversion, control programs and function blocks verification 1. Wprowadzenie Do sterowania obiektami automatyki wykorzystywane są obecnie sterowniki programowalne PLC (Programmable Logic Controllers), od których wymaga się niezawodności sprzętowej i poprawności programowej. Standardem do tworzenia oprogramowania sterowników jest norma IEC 61131-3 [13]. Wśród języków normy należy wyróżnić tekst strukturalny (ST – Structured Text) przypominający nieco Pascala, którego uniwersalność jest bezdyskusyjną zaletą. Program sterowania przed wdrożeniem powinien być formalnie zweryfikowany [20]. Dotychczasowe prace z zakresu weryfikacji oprogramowania sterującego nie poruszają zagadnień weryfikacji kodu zapisanego w języku ST np. [4, 9, 10]. Celem niniejszej pracy jest częściowe wypełnienie tej luki, poprzez przedstawienie reguł konwersji oraz metody weryfikacji wykorzystującej ogólnodostępne oprogramowanie. Proces weryfikacji składa się z ręcznej konwersji algorytmu z języka ST do ANSI C oraz uzupełnienia wyniku o specyfikację sprawdzanej jednostki oprogramowania. Weryfikowanymi jednostkami mogą być proste programy lub bloki funkcjonalne nie posiadające pętli, korzystające z maksymalnie jednej instancji innych bloków, w których występują zmienne typu BOOL, SINT, INT, DINT lub LINT. Następnym krokiem weryfikacji są transformacje kodu przeprowadzane automatycznie poprzez programy Caduceus [8] i Why [7] w celu uzyskania lematów warunkujących częściową poprawność [6]. Częściowa poprawność polegająca na weryfikacji zgodności ze specyfikacją jest dowodzona półautomatycznie w środowisku Coq [21]. Aby uzyskać pełną poprawność należy wykazać własność określoności obliczeń i własność Metody Informatyki Stosowanej, nr 2/2009 (19), s. 121-138 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 122 Jan Sadolewski stopu. Prezentowane przykłady prostych bloków funkcjonalnych i programów spełniają drugą własność. Coq jest narzędziem do interaktywnego dowodzenia twierdzeń matematycznych, logicznych itp. Podobnymi narzędziami są Isabelle/HOL [17], Mizar [16], PVS [18]. Cechą charakterystyczną Coqa jest ekstrakcja algorytmu z dowodu do języków funkcjonalnych Ocaml [5] lub Haskell [3]. Ta nieco skomplikowana funkcjonalność nie będzie tutaj szerzej omawiana, bo wymaga znacznej wprawy w posługiwaniu się taktykami konstruktywnego dowodzenia. W praktyce Coq jest stosowany do weryfikacji rzeczywistych systemów, w których bezpieczeństwo jest czynnikiem krytycznym [1, 14]. Praca podzielona jest następująco. W punkcie 2 scharakteryzowano środowisko Coq, wyjaśniono podstawowe pojęcia związane z weryfikacją, metody przeprowadzania dowodu, mechanizm dowodzenia oraz podstawowe taktyki i ich złożenia. W punkcie 3 przedstawiono metody weryfikacji oprogramowania dostępne w Coqu, przy zastosowaniu programów towarzyszących. Dokładniej wyjaśniono metodę weryfikacji programów napisanych w językach imperatywnych. W punkcie 4 przedstawiono przykład przeprowadzania dowodu typowego twierdzenia o implikacji. Punkt 5 zawiera reguły konwersji programów zapisanych w języku ST do postaci ANSI C oraz pokazano przykład transformacji kodu multipleksera binarnego. Wynikiem przekształceń są lematy warunkujące częściową poprawność. Ich dowody wraz z drzewami omówiono w punkcie 6. W punkcie 7 podano przykład wykorzystania reguł konwersji dla przerzutnika RS, będącego automatem sekwencyjnym, wraz z przeprowadzonymi dowodami. Przykład pełnego programu wykorzystującego blok funkcjonalny oraz dowody znajdują się w punkcie 8. 2. Coq – asystent dowodzenia Coq jest interaktywnym narzędziem do dowodzenia twierdzeń. Podstawami teoretycznymi Coqa są logika intuicjonistyczna [15] oraz Izomorfizm Curry’ego-Howarda [11]. Coq wykorzystuje izomorfizm pomiędzy dowodem i programem oraz typem i specyfikacją. Więcej szczegółów na ten temat można znaleźć w [19]. Dystrybucja Coq składa się z kilku programów. Kompilator wywoływany jest poleceniem coqc i używany do tworzenia modułów w postaci prekompilowanej. Interpreter uruchamiany poleceniem coqtop pozwala na interaktywne definicje formuł i dowodzenie. Ten tryb pracy, naśladujący bardzo prosty terminal, może utrudniać przeprowadzanie większych dowodów. Środowisko graficzne CoqIDE [12] uruchamiane poleceniem coqide dostarcza wystarczającego komfortu poprzez główne menu z listą taktyk, szybkie menu kontekstowe dla hipotez, automatyczne uzupełnianie poleceń oraz skróty klawiszowe. Praca z Coqiem składa się z dwóch etapów – definicji i dowodzenia. Definicje określają nowe obiekty, jak sekcje (zakresy widoczności), typy, zmienne, aksjomaty, wchodzące w skład środowiska E (rys. 1). Obiekty te definiowane są w języku Gallina [2, 22] i wykorzystywane w dowodzeniu. Zmienne mogą być zmiennymi wolnymi lub zmiennymi związanymi. Zmienne wolne nie występują w konkluzjach implikacji, ani w definicjach funkcji. W Coqu zmienne wolne nazywa się parametrami (parameters). Zmiennymi związanymi są argumenty funkcji lub zmienne występujące po kwantyfikatorach w deklaracjach aksjomatów, lematów i teorii. Obiekty te nazywa się wtedy produktami zależnymi (dependent products). Produkty zależne rozpoczynające się od kwantyfikatorów są typu Prop oznaczającego logiczną propozycję (odpowiednik zdania logicznego w logice klasycznej). Przejście do trybu dowodzenia odbywa się automatycznie po zdefiniowaniu lematu (lemma), teorii (theorem) lub innego obiektu wymagającego dowodu. W trybie dowodzenia należy wykazać osiągalność dowodzonego celu. Bezpośrednio po przejściu do trybu dowo- Wprowadzenie do weryfikacji prostych programów w języku ST za pomocą… 123 dzenia kontekst Γ jest pusty, a cel zawiera całą formułę dowodzonej teorii (rys. 1). Cel zostaje udowodniony wtedy, gdy kontekst lub środowisko zawiera term świadczący o prawdziwości. Gdy prawdziwość celu nie może być bezpośrednio wykazana, należy cel zmodyfikować za pomocą taktyk. Zastosowanie taktyki może zakończyć się sukcesem albo niepowodzeniem. Oprócz tego taktyki mogą generować dodatkowe podcele, które również należy udowodnić, aby wykazać poprawność pierwotnej teorii. Coq dostarcza całą gamę taktyk zarówno do zastosowań ogólnych jak i specjalnych. Ś rodowis ko (E) - dziedziny - typy - zmienne - aks jomaty - definicje - operatory Konteks t (Γ) - lokalne hipotezy - lokalne zmienne Cel Rysunek 1. Zależności pomiędzy środowiskiem, kontekstem i celem w Coqu Do atomowych taktyk ogólnego przeznaczenia zalicza się: intro – wprowadza zmienne do kontekstu z produktów zależnych lub poprzedników implikacji, apply id – dopasowuje następnik hipotezy id do celu i zastępuje cel poprzednikiem hipotezy (wnioskowanie wstecz), assumption – sprawdza, czy bieżący cel znajduje się w hipotezach kontekstu, exact – unifikuje cel z termem, split – rozdziela cel z koniunkcją () na dwa podcele, left, right – rozpatruje część celu znajdującą się z lewej lub prawej strony operatora alternatywy (), cut term – wstawia term jako poprzednik implikacji w bieżącym celu, jednocześnie tworząc nowy podcel składający się z term, decompose – rozkłada hipotezę połączoną koniunkcją lub alternatywą na hipotezy prostsze lub nowe podcele, rewrite – eliminuje zmienną celu na podstawie hipotezy równości, unfold – zastępuje identyfikator jego definicją (redukcja ). W celu przyspieszenia procesu dowodzenia stosuje się następujące złożenia taktyk: T1 ; T2 – zastosowanie taktyki T1 do bieżącego celu, a następnie do wszystkich wygenerowanych podcelów taktyki T2, T0 ; [T1 | T2 | ... Tn] – zastosowanie taktyki T0, a następnie do wygenerowanych podcelów odpowiednich taktyk: T1 do pierwszego podcelu, T2 do drugiego, Tn do n-tego, T1 || T2 – zastosowanie taktyki T2 w przypadku, gdy taktyka T1 zakończy się niepowodzeniem, repeat T1 – powtórzenie zastosowania taktyki T1 dopóki jej wykonanie kończy się sukcesem, 124 Jan Sadolewski try T1 – ostrożne zastosowanie taktyki T1; w przypadku gdy wykonanie T1 zakończy się niepowodzeniem, cel pozostaje bez zmian, idtac, fail – taktyki nie modyfikujące celu, ale zawsze kończące się odpowiednio sukcesem lub niepowodzeniem. Dostępne są również wbudowane automatyczne taktyki: auto – dopasowuje i wywołuje taktyki: intro, apply, assumption, intuition – przekształca cel do najprostszej postaci bazując na wbudowanej „intuicji”, ring, omega – dowodzą rozstrzygalne problemy z zakresu arytmetyki liczb naturalnych (typ nat) lub liczb całkowitych (typ Z). Ponadto Coq pozwala na tworzenie własnych taktyk będących zestawieniem istniejących. W tym celu używa się nowej definicji Ltac oraz specjalnego języka Ltac. Więcej szczegółów dotyczących tworzenia taktyk można znaleźć w [2, 22]. 3. Konstruowanie poprawnych programów W Coqu istnieją dwie metody otrzymywania poprawnych programów, z których pierwszą z nich przedstawiono na rys. 2. Zadaniem programisty jest wykonanie następujących czynności: 1. Napisanie funkcji realizującej program w języku Gallina. 2. Określenie specyfikacji funkcji. 3. Przeprowadzenie dowodu spełnienia specyfikacji przez realizację. Podczas zapisywania funkcji stosuje się indukcyjne definicje typów oraz funkcje rekurencyjne. Specyfikację tworzy się za pomocą predykatów określających cechy argumentów wejściowych oraz dopuszczalnych zwracanych wartości. Przeprowadzenie dowodu opiera się na rachunku konstrukcji. Z dowodu można w procesie ekstrakcji otrzymać gotową funkcję w języku Ocaml (klon SMLa) lub Haskell. Zagadnienia ekstrakcji gotowych funkcji nie będą jednak tutaj omawiane. Funkcja + S pecyfikacja → Dowód Ekstra kcja P rogram Oca ml, Ha ske ll Coq Rysunek 2. Otrzymywanie poprawnych programów w Coq poprzez ekstrakcję Druga metoda (rys. 3) bazuje na gotowych funkcjach napisanych w innych językach programowania, jednak w szczególny sposób traktowany jest język używany przez program Why, historycznie wywodzący się z Coqa. Obecnie programy Coq i Why należą do wspólnego projektu Proval dotyczącego języków funkcjonalnych wyższego rzędu, dowodzenia programów imperatywnych i zorientowanych obiektowo, metod automatycznego dowodzenia oraz programowania synchronicznego. P rogram z adnotacjami Why Warunki weryfikujące We ryfika tor docelowy Weryfikator zewnętrzny Rysunek 3. Konwersja kodów programów przez Why Wprowadzenie do weryfikacji prostych programów w języku ST za pomocą… 125 Why jest analizatorem kodu i generatorem warunków weryfikujących powstałych z najsłabszych warunków wstępnych Dijkstry [6]. W języku Why przypominającym nieco Ocaml można zapisać konstrukcje wymienione w tab. 1. Tabela 1. Dostępne konstrukcje w Why Konstrukcje imperatywne Adnotacje logiczne Modele logiczne instrukcje przypisania pętle instrukcje wyboru wyjątki warunki wejściowe warunki wyjściowe niezmienniki pętli bezpośrednie asercje typy funkcje predykaty aksjomaty Za pomocą adnotacji logicznych oraz modeli logicznych specyfikuje się programy i funkcje. Zadaniem Why’a jest analiza kodu źródłowego z adnotacjami logicznymi oraz generacja warunków weryfikujących przeznaczonych dla weryfikatora docelowego (Coq, PVS, Isabelle itp.). Wadą tej metody jest jednak wymagana znajomość języka Why, praktycznie nie używanego w zagadnieniach sterowania. Do rozwiązania problemu stosuje się program Caduceus, którego zadaniem jest konwersja kodu z adnotacjami logicznymi zapisanymi w języku ANSI C do języka interpretowanego przez Why. Ponieważ C nie posiada możliwości umieszczania adnotacji bezpośrednio w kodzie, dlatego umieszcza się je w komentarzach zaczynających się od znaku ’@’. W punkcie 5 zostaną przedstawione reguły konwersji kodu z języka ST do C oraz sposób zapisywania specyfikacji. 4. Przeprowadzanie dowodów logicznych W celu ilustracji metody dowodzenia w Coqu przedstawiono zaczerpnięty z [12] przykład sprawdzający, czy dla dowolnych zdań logicznych P, Q, R zachodzi implikacja (PQR) ((PQ) (QR) (PR)). W celu udowodnienia trzeba zadeklarować trzy zmienne wolne typu Prop (parametry) reprezentujące wartości logiczne zdań: Variables P Q R : Prop. Drugim krokiem jest zdefiniowanie udowadnianej teorii: Theorem tw: (P->Q->R)->((P->Q)->(Q->R)->(P->R)). Alternatywą dla definiowania trzech parametrów jest utworzenie produktu zależnego. Otrzymuje się go poprzedzając teorię kwantyfikatorem ogólnym () z dopisaną definicją lokalnych zmiennych związanych: Theorem tw: forall P ->(Q->R)->(P->R)). Q R : Prop, (P->Q->R)->((P->Q) Bezpośrednio po wpisaniu twierdzenia Coq przełącza się samoczynnie z trybu definiowania do trybu dowodzenia. Opcjonalnie można wpisać sprawdzające polecenie Proof, które zgłosi błąd, gdyby Coq znajdował się w trybie definiowania. Tryb dowodzenia wyświetla zawartość kontekstu oraz cel (wraz z podcelami), które należy udowodnić. Obecnym celem jest zapisana wyżej teoria tw. Złożony cel trzeba rozdzielić używając taktyk, tutaj taktyki intro. Powoduje ona umieszczenie poprzednika głównej implikacji w lokalnym kontekście jako hipotezy H (zob. p. 2) znajdującej się nad kreską podwójną. Dowodzony cel zmieni się na poniższy, znajdujący się pod kreską. 126 Jan Sadolewski H : P -> Q -> R ============================ (P -> Q) -> (Q -> R) -> P -> R Proces wprowadzania do kontekstu wielu poprzedników implikacji można przyśpieszyć taktyką intros działającą identycznie jak wielokrotne wywołanie intro. Po zastosowaniu intros cel zmieni się na konkluzję ostatniej implikacji – R, a w kontekście znajdą się nowe trzy hipotezy – H0: P->Q, H1: Q->R i H2: P. Ponieważ cel R nie jest bezpośrednio osiągalny, dlatego należy zastosować następne taktyki. Z hipotezy H1 wynika R, więc można zastosować taktykę apply H1, aby zmienić cel na poprzednik hipotezy H1, czyli Q. Analogicznie można postąpić z hipotezą H0, w wyniku czego nastąpi zmiana celu na P. Cel ten jest identyczny z hipotezą H2 znajdującą się w kontekście, więc można go osiągnąć taktyką exact H2, która kończy dowód. Alternatywą dla taktyki exact H2 jest prostsza taktyka assumption, automatycznie wyszukująca bieżący cel wśród lokalnych hipotez. Koniec dowodu i powrót do trybu definiowania następuje po poleceniu Save lub Qed. Zakończenie dowodu wiąże się z definicją funkcji tw, która zostaje umieszczona w środowisku. Z uwagi na brak podcelów drzewo wyprowadzania dowodu zostało tutaj pominięte (ale drzewa pokazano w p. 6 i następnych). Teorie składające się z implikacji, zmiennych typu Prop oraz połączeń logicznych można udowodnić automatycznie za pomocą taktyki auto dla prostych przypadków oraz intuition dla bardziej zaawansowanych teorii. Należy jednak uważać, aby przy intuition nie doprowadzić do wystąpienia sprzecznych hipotez, bo w takiej sytuacji każdy cel zostanie osiągnięty (nawet fałszywy). Taką sytuację obejmuje teoria: Theorem sprzecznosc: (P /\ ~P) -> R. Cel jest bezpośrednio osiągalny za pomocą taktyki intuition. Ponieważ poprzednik implikacji jest zawsze fałszywy, więc cała implikacja jest prawdziwa niezależnie od wartości zdania logicznego R. Taka sytuacja jest znana w teorii pod łacińską nazwą ex falso quodlibet, czyli „fałsz implikuje wszystko” [15]. W dalszej części pracy taktyka intuition będzie używana do rozkładu celu na prostsze podcele. Na podstawie uzyskanych podcelów będzie można wybrać dalszą drogę postępowania. 5. Transformacja kodu z języka ST Program sterujący zapisany w języku ST należy przekształcić do równoważnej postaci w ANSI C stosując poniższe reguły: 1. Zamiana typów zmiennych na kompatybilne. W przypadku braku pełnej zgodności typów należy utworzyć predykaty kompatybilności dla pojemniejszego typu docelowego języka ANSI C. 2. Zapisanie docelowego kodu w sposób równoważny, najlepiej różniący się tylko symbolami. 3. Zamiana bloków funkcjonalnych na funkcje języka C. Wejścia bloków stają się parametrami funkcji, a wyjście bloku wartością funkcji. 4. Zamiana lokalnych zmiennych bloków funkcjonalnych oraz nadmiarowych wyjść (gdy blok ma więcej niż jedno wyjście) na zmienne globalne. Jako przykład układu kombinacyjnego zostanie teraz przedstawiony blok multipleksera binarnego z rys. 4, przewidziany w normie IEC 61131-3. Specyfikację bloku wyraża wzór y = (s x0) (!s x1). Kod w ST oraz równoważny kod w ANSI C znajduje się w tab. 2. Wprowadzenie do weryfikacji prostych programów w języku ST za pomocą… 127 MUX s x0 x1 y Rysunek 4. Symbol mulitpleksera binarnego Postępując według reguły 1 należy utworzyć predykat kompatybilności nazwany tutaj is_bool_char (zob. tab. 3), ponieważ typ BOOL nie ma odpowiednika w języku C, ale może go realizować okrojony typ char. Zgodnie z regułą 3 blok funkcjonalny MUX zostaje zastąpiony funkcją mux_Proc, a wejścia stają się argumentami funkcji. Za pomocą reguły 2 należy doprowadzić kod ST do równoważnej postaci. Wyjście jest wartością zwracaną w C. Tabela 2. Blok multipleksera w językach ST i ANSI C Zapis w języku ST FUNCTION_BLOCK MUX VAR_INPUT S, X0, X1 : BOOL; END_VAR VAR_OUTPUT Y : BOOL; END_VAR IF S THEN Y := X0; ELSE Y := X1; END_IF END_FUNCTION_BLOCK Równoważny zapis w ANSI C char mux_Proc(char s, char x0, char x1) { if(s) return x0; else return x1; } Po zakończonej transformacji kod funkcji mux_Proc należy uzupełnić o warunki wejściowe (requires w tab. 3) określające zakres dopuszczalnych danych wejściowych. Dla multipleksera są to ograniczenia wynikające z braku w C odpowiedniego typu dla argumentów. Warunki wyjściowe (ensures w tab. 3) określają relację pomiędzy wartościami wejść, a wymaganą wartością wyjścia, wyrażoną w postaci specyfikacji. Dodatkowo warunki wyjściowe uzupełnia się predykatem kompatybilności typów BOOL i char dla wyjścia bloku. Wszystkie warunki zapisane w postaci adnotacji kodu dla programu Caduceus przedstawiono w tab. 3. Tabela 3. Wynik konwersji bloku multipleksera do języka C z klauzulami //@ predicate is_bool_char(char c) { c == 0 || c == 1 } /*@ requires is_bool_char(s) && is_bool_char(x0) @ && is_bool_char(x1) @ ensures is_bool_char(\result) && @ (\result <=> ((s && x0) || (!s && x1))) */ char mux_Proc(char s, char x0, char x1) { if(s) return x0; else return x1; } Caduceus transformuje kod z tab. 3 generując dwa pliki: plik specyfikacji z adnotacjami zapisanymi w kodzie Why, plik implementacji z kodem funkcji w języku Why. 128 Jan Sadolewski Tabela 4. Wygenerowana specyfikacja dla programu Coq Definition is_bool_char (c:Z) := (* CADUCEUS_1 *) (c = 0 \/ c = 1). Program Why przekształca otrzymane pliki do formatu weryfikatora Coq. Z pliku specyfikacji otrzymuje się prekompilowany moduł zawierający predykat zapisany w postaci definicji funkcji. Pokazano go w tab. 4. Z pliku implementacji otrzymuje się dwa lematy z tab. 5, które należy udowodnić za pomocą Coqa. Tabela 5. Lematy do udowodnienia w Coqu Lemma mux_Proc_impl_po_1 : forall (s: Z), forall (x0: Z), forall (x1: Z), forall (HW_1: (* CADUCEUS_4 *) (((is_bool_char s) /\ (is_bool_char x0)) /\ (is_bool_char x1))), forall (HW_2: s <> 0), (* CADUCEUS_5 *) ((is_bool_char x0) /\ ((x0 <> 0 <-> s <> 0 /\ x0 <> 0 \/ s = 0 /\ x1 <> 0))). Lemma mux_Proc_impl_po_2 : forall (s: Z), forall (x0: Z), forall (x1: Z), forall (HW_1: (* CADUCEUS_4 *) (((is_bool_char s) /\ (is_bool_char x0)) /\ (is_bool_char x1))), forall (HW_3: s = 0), (* CADUCEUS_5 *) ((is_bool_char x1) /\ ((x1 <> 0 <-> s <> 0 /\ x0 <> 0 \/ s = 0 /\ x1 <> 0))). Uzyskane lematy są zapisane w języku Gallina. HW_1 w tab. 5 wyraża warunki wejściowe dla funkcji mux_Proc. Komentarz (* CADUCEUS_5 *) oznacza początek warunku końcowego pochodzącego ze specyfikacji, jaki musi zostać spełniony przez funkcję. HW_2 i HW_3 określają wartość argumentu s jaka jest aktualnie rozpatrywana. 6. Dowodzenie Do przeprowadzenia dowodu zostanie tutaj użyte środowisko CoqIDE ze względu na łatwiejszy sposób dokonywania cofnięć zastosowanych taktyk. Lematy mux_Proc_impl_po_1 oraz mux_Proc_impl_po_2 można udowodnić domyślną taktyką intuition. Jednakże dla bliższego zademonstrowania metody dowodzenia użyto tutaj atomowych taktyk z punktu 2, najpierw taktyki intros. Kontekst i cel zmieniają się wtedy na poniższe: s : Z x0 : Z x1 : Z HW_1 : (is_bool_char s /\ is_bool_char x0) /\ is_bool_char x1 HW_2 : s <> 0 ============================ is_bool_char x0 /\ (x0 <> 0 <-> s <> 0 /\ x0 <> 0 \/ s = 0 /\ x1 <> 0) Wprowadzenie do weryfikacji prostych programów w języku ST za pomocą… 129 Drugim krokiem jest zastosowanie taktyki decompose [and] HW_1 w celu rozdzielenia koniunkcji w hipotezie HW_1. Kontekst rozszerzy się o trzy nowe hipotezy: H0: is_bool_char x1, H1: is_bool_char s i H2: is_bool_char x0. W trzecim kroku za pomocą taktyki split rozdziela się cel połączony koniunkcją na dwa podcele. Powoduje to powstanie podcelów is_bool_char x0 oraz x0<>0 <> s<>0/\x0<>0\/s=0/\x1<>0. Pierwszy z nich jest identyczny z hipotezą H2, sugerując zastosowanie taktyki assumption. Drugi cel składający się z równoważności należy rozdzielić za pomocą split. W wyniku powstają dwa podcele z implikacją zamiast równoważności. Taktyka intro eliminuje pierwszą implikację, powodując powstanie nowej hipotezy H: x0<>0 oraz zmianę celu do postaci s<>0/\x0<>0 \/s=0/\x1<>0. Cel jest połączony alternatywą, a jego lewa część składa się z koniunkcji hipotez HW_2 i H. Taktyka left pozostawia do dalszego dowodu lewą część alternatywy, czyli s<>0/\x0<>0. Cel ten zostanie osiągnięty za pomocą złożenia taktyk split; assumption. Pozostałą drugą implikację można uprościć taktyką intro. Powoduje to powstanie nowej hipotezy H: s<>0/\ x0<>0\/s=0/\x1<>0 i zamianę celu na x0<>0. Kolejnym krokiem jest uproszczenie hipotezy H poprzez dekompozycję koniunkcji i alternatywy taktyką decompose [and or] H. Efektem rozdzielenia hipotezy będącej alternatywą jest powstanie dwóch identycznych podcelów o różnych kontekstach. Pierwszy podcel jest identyczny z hipotezą H5, co udowadnia taktyka assumption. Drugi podcel zawiera sprzeczne hipotezy HW_2: s<>0 oraz H4: s=0, bo zmienna s musiałaby jednocześnie być różna od zera i równa zero. Udowodnienie tego podcelu realizuje taktyka contradiction kończąca dowód. Zapisanie dowodu i przejście do trybu definiowania następuje po poleceniu Save. Drzewo dowodu pierwszego lematu zostało przedstawione na rys. 5. intros decompose [and] HW_1 split assumption split intro left intro decompose [and or] H split; assumption assumption contradiction Rysunek 5. Drzewo dowodu pierwszego lematu bloku multipleksera MUX Lemat drugi należy udowodnić podobnie jak pierwszy. Po zastosowaniu taktyki intros kontekst i cel zmienią się na poniższe: s : Z x0 : Z x1 : Z HW_1 : (is_bool_char s /\ is_bool_char x0) /\ is_bool_char x1 HW_3 : s = 0 ============================ is_bool_char x1 /\ (x1 <> 0 <-> s <> 0 /\ x0 <> 0 \/ s = 0 /\ x1 <> 0) 130 Jan Sadolewski Podobnie jak poprzednio hipoteza HW_1 zostanie rozdzielona taktyką decompose [and] HW_1. Powoduje to powstanie hipotez H0: is_bool_char x1, H1: is_bool_char s i H2: is_bool_char x0. Teraz taktyka split tworzy dwa podcele is_bool_char x1 oraz x1<>0<-> s<>0/\x0<>0\/s=0/\x1<>0. Pierwszy zostanie osiągnięty przez assumption, a drugi składający się z równoważności rozdzielony za pomocą split na dwie implikacje x1<>0>s<>0/\x0<>0\/s=0/\x1<>0 i s<>0/\ x0<>0\/s=0/\x1<>0->x1<>0. Taktyka intro przeniesie poprzednik pierwszej implikacji do kontekstu jako hipotezę H: x1<>0. Celem staje się teraz konkluzja pierwszej implikacji s<>0/\x0<>0\/s=0/\x1<>0, będąca alternatywą. Prawa część alternatywy składa się koniunkcji hipotez HW_3 i H, więc taktyka right pozostawi ją do dalszego dowodu. Cel s=0/\x1<>0 zostanie osiągnięty złożeniem taktyk split; assumption. Druga implikacja s<>0/\ x0<>0\/s=0/\x1<>0->x1<>0 po zastosowaniu intro zostanie rozdzielona na hipotezę H: s<>0/\x0<>0\/s=0/\x1<>0 i cel x1<>0. Hipoteza H ulegnie rozkładowi na elementarne hipotezy za pomocą taktyki decompose [and or] H. Utworzy to podobnie jak poprzednio dwa identyczne podcele o różnych kontekstach. W pierwszym z nich występuje sprzeczność między hipotezami H4 i HW_3, sygnalizowana przez contradiction. Drugi podcel jest identyczny z hipotezą H5 i jest osiągalny za pomocą assumption. Polecenie Save kończy dowód. Drzewo dowodu drugiego lematu zostało przedstawione na rys. 6. intros decompose [and] HW_1 split assumption split intro right intro decompose [and or] H split; assumption contradiction assumption Rysunek 6. Drzewo dowodu drugiego lematu bloku MUX Blok multipleksera jest prostym przypadkiem użycia instrukcji warunkowej IF, którego budowa reprezentuje układ kombinacyjny. W procesie weryfikacji układów kombinacyjnych lematy upraszcza się taktykami intros i split. Pierwszą z nich stosuje się dla celów zawierających implikacje, a drugą dla koniunkcji i równoważności. Następnie rozdziela się złożone hipotezy stosując taktykę decompose. Uzyskane proste hipotezy i cele dowodzi się stosując taktyki assumption lub contradiction. 7. Programy automatów sekwencyjnych Jako przykład układu sekwencyjnego zostanie zweryfikowany blok przerzutnika RS pokazany na rys. 7. Specyfikację bloku wyraża wzór: Q = R (Q' S). Oznaczenie Q' wyraża stan wyjścia Q w poprzednim cyklu obliczeniowym. Zapis kodu w języku ST oraz równoważnego kodu w ANSI C przedstawiono w tab. 6. Wprowadzenie do weryfikacji prostych programów w języku ST za pomocą… 131 RS BOOL S BOOL R Q BOOL Rysunek 7. Symbol przerzutnika RS Postępując podobnie jak w punkcie 5, na podstawie reguły 1 (zamiana typów) należy utworzyć predykat kompatybilności is_bool_char. Reguła 3 powoduje zamianę bloku funkcjonalnego RS na funkcję w C. Użycie reguły 4 do zamiany zmiennej lokalnej pstate z bloku na zmienną globalną w wynikowym kodzie wymusza ograniczenie stosowania w zewnętrznym programie jednej instancji weryfikowanego bloku. Dotychczasowa weryfikacja nie wymagała rozróżniania wartości logicznych używanych zmiennych. W obecnym przykładzie jest to niezbędne, dlatego wprowadzono dwa dodatkowe predykaty is_bool_char_set i is_bool_char_not_set oznaczające odpowiednio logiczną prawdę oraz logiczny fałsz wyrażone jako wartości typu char. Całość kodu wraz z zapisaną specyfikacją podano w tab. 7. Dodatkowego wyjaśnienia wymagają klauzula assigns, zmienna \result oraz modyfikator \old. Tabela 6. Blok przerzutnika RS zapisany w języku ST oraz ANSI C Zapis w języku ST Równoważny zapis w ANSI C static char pstate = 0; char rs_Proc(char R, char S) { if(R) { pstate = 0; return 0; } else if(S) { pstate = 1; IF R THEN pstate := 0; Q:=0; return 1; ELSIF S THEN pstate := 1; Q:=1; ELSE Q := pstate; END_IF } else return pstate; END_FUNCTION_BLOCK } FUNCTION_BLOCK RS VAR_INPUT R, S : BOOL; END_VAR VAR_OUTPUT Q : BOOL; END_VAR VAR pstate : BOOL; END_VAR Tabela 7. Kod przerzutnika RS w języku C z klauzulami //@ predicate is_bool_char(char c) { c == 0 || c == 1 } //@ predicate is_bool_char_set(char c) { c == 1 } //@ predicate is_bool_char_not_set(char c) { c == 0 } static char pstate = 0; /*@ requires is_bool_char(R) && is_bool_char(S) && @ is_bool_char(pstate) @ assigns pstate @ ensures is_bool_char(\result) && ( (!R && @ (\old(pstate) || S)) <=> (\result) ) */ char rs_Proc(char R, char S){ if(R) { pstate = 0; return 0; } else if(S) { pstate = 1; return 1; } else return pstate; } Klauzula assigns wyraża możliwe modyfikacje wartości zmiennych globalnych przez funkcję, czego wymaga program Caduceus. Zmienna \result określa zwróconą wartość 132 Jan Sadolewski funkcji. Modyfikator \old(x) oznacza wartość zmiennej x przed wywołaniem funkcji. Używa się go do zapisu specyfikacji, w których występują wartości stanów w poprzednim cyklu obliczeniowym. Transformacja kodu zawartego w tab. 7 za pomocą programów Caduceus i Why generuje dwa pliki, podobnie jak w punkcie 5. Plik specyfikacji zawiera definicje trzech predykatów z tab. 7 zapisanych w języku Gallina. Natomiast w pliku implementacji znajdują się trzy lematy podane w tab. 8, które należy udowodnić. Lematy zawierają zmienną pstate0 oznaczającą poprzednią wartość zmiennej pstate zapisaną w Caduceusu z modyfikatorem \old. Komentarzami CADUCEUS_4 oznaczono warunek wejściowy, a CADUCEUS_6 warunek wyjściowy weryfikowanej funkcji. Hipotezy HW_2 i HW_4 informują o wartościach zmiennej R w rozpatrywanych lematach. Podobnie hipotezy HW_3 i HW_6 dotyczą zmiennej pstate0, a HW_5 i HW_7 zmiennej S. Tabela 8. Lematy weryfikujące przerzutnik RS Lemma rs_Proc_impl_po_1 : forall (R: Z), forall (S: Z), forall (pstate: Z), forall (HW_1: (* CADUCEUS_4 *) (((is_bool_char R) /\ (is_bool_char S)) /\ (is_bool_char pstate))), forall (HW_2: R <> 0), forall (pstate0: Z), forall (HW_3: pstate0 = 0), (* CADUCEUS_6 *) ((is_bool_char 0) /\ ((R = 0 /\ (pstate0 <> 0 \/ S <> 0) <-> 0 <> 0))). Lemma rs_Proc_impl_po_2 : forall (R: Z), forall (S: Z), forall (pstate: Z), forall (HW_1: (* CADUCEUS_4 *) (((is_bool_char R) /\ (is_bool_char S)) /\ (is_bool_char pstate))), forall (HW_4: R = 0), forall (HW_5: S <> 0), forall (pstate0: Z), forall (HW_6: pstate0 = 1), (* CADUCEUS_6 *) ((is_bool_char 1) /\ ((R = 0 /\ (pstate0 <> 0 \/ S <> 0) <-> 1 <> 0))). Lemma rs_Proc_impl_po_3 : forall (R: Z), forall (S: Z), forall (pstate: Z), forall (HW_1: (* CADUCEUS_4 *) (((is_bool_char R) /\ (is_bool_char S)) /\ (is_bool_char pstate))), forall (HW_4: R = 0), forall (HW_7: S = 0), (* CADUCEUS_6 *) ((is_bool_char pstate) /\ ((R = 0 /\ (pstate <> 0 \/ S <> 0) <-> pstate <> 0))). W celu udowodnienia lematu rs_Proc_impl_po_1 zostanie użyta taktyka intuition. Kontekst i cel zmienią się na następujące: R : Z S : Z pstate : Z HW_2 : R = 0 -> False H0 : is_bool_char pstate H1 : is_bool_char R H2 : is_bool_char S pstate0 : Z HW_3 : pstate0 = 0 ============================ is_bool_char 0 Wprowadzenie do weryfikacji prostych programów w języku ST za pomocą… 133 Cel można uprościć rozwijając definicję (redukcja ) is_bool_char za pomocą taktyki unfold is_bool_char. Zmieni ona postać na alternatywę 0=0\/0=1. Użycie taktyk left i trivial kończy dowód pierwszego lematu. Podobnie dowodzi się lemat rs_Proc_impl_po_2. Najpierw należy zastosować taktykę intuition, a następnie right i trivial. Lemat rs_Proc_impl_po_3 jest udowadniany automatycznie taktyką intuition. Drzewa tych dowodów pominięto. Blok przerzutnika RS jest przykładem układu sekwencyjnego, pamiętającego poprzedni stan w zmiennej globalnej. Podczas zapisu adnotacji programów realizujących takie układy należy zwrócić szczególną uwagę na klauzulę assigns oraz modyfikator \old. W procesie dowodzenia układów sekwencyjnych lematy upraszcza się taktyką intuition. Domyślnie taktyka ta nie rozwija definicji, dlatego jej działanie kończy się na elementarnych wyrażeniach zawierających predykaty. Następnie wykonując redukcję cel przybiera elementarną postać udowadnianą w punkcie 6. 8. Program układu Start-Stop W poprzednim punkcie wykazano poprawność bloku funkcjonalnego przerzutnika RS. Obecnie będzie przedstawiona weryfikacja programu układu Start-Stop korzystającego z bloku RS. Schemat blokowy układu pokazano na rys. 8. Kod programu w języku ST oraz równoważny kod w ANSI C znajduje się w tab. 9. Specyfikacja wygląda następująco: silnik powinien zostać włączony po naciśnięciu przycisku START i przerwać pracę po naciśnięciu przycisku STOP. STOP ALARM START RS R Q SILNIK S Rysunek 8. Schemat blokowy układu Start-Stop Tabela 9. Układ Start-Stop zapisany w językach ST i ANSI C Zapis w języku ST VAR_GLOBAL START, STOP, ALARM, SILNIK : BOOL; END_VAR PROGRAM StartStop VAR RS_FF : RS; END_VAR SILNIK := RS_FF(R := STOP OR ALARM, S := START); END_PROGRAM Równoważny zapis w ANSI C char START, STOP, ALARM, SILNIK; char rs_Proc(char R,char S); void StartStop() { SILNIK = rs_Proc(STOP || ALARM, START); } Program w języku ST można potraktować jako blok funkcjonalny nie posiadający wejść ani wyjść. Dlatego zgodnie z regułą 3 z punktu 5 (konwersja), program ten należy przekształcić na funkcję w języku C z typem zwracanym void. Użycie instancji RS_FF bloku funkcjonalnego wyklucza w metodzie inne instancje bloku RS. Wywołanie bloku funkcjonalnego należy zastąpić wywołaniem funkcji w C. Warunkami wejściowymi nakładanymi na funkcję StartStop są znanymi już ograniczeniami wynikającymi z zastąpienia typu BO- 134 Jan Sadolewski OL typem char. Funkcja rs_Proc reprezentująca przerzutnik RS wykorzystuje zmienną globalną pstate, dlatego trzeba ją umieścić w klauzuli assigns funkcji wywołującej StartStop. Na warunki wyjściowe składa się specyfikacja zapisana w postaci iloczynu dwóch implikacji oraz ograniczenie is_bool_char. Część stanowiącą uzupełnienie kodu przerzutnika z tab. 7 o program sterowania pokazano w tab. 10. Tabela 10. Kod programu Start-Stop w języku C z klauzulami char START, STOP, ALARM, SILNIK; /*@ requires is_bool_char(START) && is_bool_char(STOP) && @ is_bool_char(SILNIK) && is_bool_char(ALARM) && @ is_bool_char(pstate) @ assigns SILNIK,pstate @ ensures is_bool_char(SILNIK) && @ ((is_bool_char_set(STOP) || is_bool_char_set(ALARM)) @ => is_bool_char_not_set(SILNIK)) && @ (is_bool_char_set(START) && is_bool_char_not_set(STOP) @ && is_bool_char_not_set(ALARM) @ => is_bool_char_set(SILNIK)) */ void StartStop() { SILNIK = rs_Proc(STOP || ALARM, START); } Transformacja kodu z tab. 10 programami Caduceus i Why generuje siedem lematów. Trzy z nich powstały z kodu przerzutnika RS i udowodniono je już w punkcie 7. Fragmenty pozostałych czterech są pokazane w tab. 11. Tabela 11. Lematy weryfikujące program sterowania Start-Stop Lemma StartStop_impl_po_1 : ... (((is_bool_char 1) /\ (is_bool_char START)) /\ (is_bool_char pstate)). Lemma StartStop_impl_po_2 : ... (((is_bool_char SILNIK0) /\(((is_bool_char_set STOP) \/ (is_bool_char_set ALARM) -> (is_bool_char_not_set SILNIK0)))) /\ ((((is_bool_char_set START) /\ (is_bool_char_not_set STOP)) /\(is_bool_char_not_set ALARM) -> (is_bool_char_set SILNIK0)))). Lemma StartStop_impl_po_3 : ... (((is_bool_char 0) /\ (is_bool_char START)) /\ (is_bool_char pstate)) Lemma StartStop_impl_po_4 : ... (((is_bool_char SILNIK0) /\ (((is_bool_char_set STOP) \/ (is_bool_char_set ALARM)->(is_bool_char_not_set SILNIK0)))) /\ ((((is_bool_char_set START) /\ (is_bool_char_not_set STOP)) /\ (is_bool_char_not_set ALARM) -> (is_bool_char_set SILNIK0)))) Lemat StartStop_impl_po_1 można uprościć taktyką intuition. Powoduje ona przekształcenie lematu na dwa identyczne podcele is_bool_char 1, z których każ- Wprowadzenie do weryfikacji prostych programów w języku ST za pomocą… 135 dy udowadnia się taktykami unfold is_bool_char, right i trivial. Drzewo dowodu znajduje się na rys. 9a. W celu udowodnienia lematu StartStop_impl_po_2 można rozpocząć od domyślnej taktyki intuition. Przekształca ona lemat na sześć podcelów, w tym podcel is_bool_char_not_set SILNIK0, którego nie można odrębnie udowodnić. Rozwiązaniem tego problemu jest cofnięcie taktyki intuition i rozkład celu na implikację, a następnie zastosowanie taktyki omega. Drzewo dowodu pokazano na rys. 9b. Jako pierwsza zostanie użyta taktyka intros. Obecny cel będący koniunkcją należy rozdzielić za pomocą taktyki split. Pierwszy podcel (is_bool_char SILNIK0) /\ ((is_bool_char_set STOP) \/ (is_bool_char_set ALARM) -> (is_bool_char_not_set SILNIK0)) również należy rozdzielić za pomocą split. Bieżący kontekst zawiera hipotezę HW_5: SILNIK0 = result. Taktyką rewrite HW_5 należy zamienić zmienną SILNIK0 w bieżącym podcelu na zmienną result. Obecny podcel is_bool_char result stanowi część hipotezy HW_4 znajdującej się w kontekście. Zastosowanie taktyki decompose [and] HW_4 spowoduje wyodrębnienie is_bool_char result jako lokalnej hipotezy H. Podcel ten zostanie udowodniony taktyką assumption. Do pozostałych dwóch podcelów należy zastosować redukcję dla predykatów is_bool_char_set oraz is_bool_char_not_set, a następnie użyć taktyki omega, która kończy dowód lematu. a) unfold is_bool_char intros b) intuition split unfold is_bool_char split right right rewrite HW_5 trivial trivial decompose [and] HW_4 unfold is_bool_char_set assumption unfold is_bool_char_not_set unfold is_bool_char_set unfold is_bool_char_not_set omega omega Rysunek 9. Drzewa dowodu dla lematów programu Start-Stop: (a) StartStop_impl_po_1, (b) StartStop_impl_po_2 Lemat StartStop_impl_po_3 po zastosowaniu taktyki intuition upraszcza się do celu is_bool_char 0. Można go udowodnić podobnie jak StartStop_impl_po_1 zastępując poprzednią taktykę right właściwą taktyką left. intros split split rewrite HW_9 decompose [and] HW_8 assumption unfold is_bool_char_set unfold is_bool_char_not_set omega unfold is_bool_char_set unfold is_bool_char_not_set decompose [and] HW_8 rewrite HW_9 cut (is_bool_char (result)) unfold is_bool_char omega Rysunek 10. Drzewo dowodu lematu StartStop_impl_po_4 assumption 136 Jan Sadolewski Lemat StartStop_impl_po_4 udowadnia się podobnie jak StartStop_impl_po_2. Drzewo dowodu pokazano na rys. 10. Najpierw zostaną użyte taktyki intros i split, aż do otrzymania trzech podcelów. Pierwsze dwa można udowodnić analogicznie jak w StartStop_impl_po_2. Trzeci podcel po wykonaniu redukcji predykatów zmienia się na (START=1/\ STOP=0)/\ALARM=0->SILNIK0=1. Następnym krokiem jest rozdzielenie hipotezy HW_8 na składowe, które zostają umieszczone w kontekście za pomocą taktyki decompose [and] HW_8. Powoduje ona dodanie dwóch hipozez H: is_bool_char result oraz H0: (pstate<>0\/START<>0)<-> result<>0. Na podstawie równości zmiennych result oraz SILNIK0 zawartej w hipotezie HW_9 taktyka rewrite HW_9 usuwa z celu zmienną SILNIK0. Obecnego celu (START=1/\STOP=0)/\ALARM=0>result=1 nie można udowodnić automatycznie taktyką omega, pomimo, że jego prawdziwość stwierdzają hipotezy HW_6 i H0 znajdujące się w kontekście. Z tego względu użyto metody cięcia [15] wprowadzającej do celu wyrażenie is_bool_char(result) jako poprzednik implikacji. Ma to za zadanie ograniczenie wartości zmiennej result dla taktyki omega. Cięcie generuje dwa nowe podcele, z których pierwszy po redukcji wprowadzonego predykatu jest udowodniony taktyką omega, a drugi znajduje się w kontekście jako hipoteza H, co kończy dowód. Lematy weryfikujące programy dowodzi się podobnie jak bloki funkcjonalne. W pierwszym kroku należy zastosować taktykę intuition do uproszczenia celu oraz hipotez. W drugim kroku należy sprawdzić osiągalność celu poprzez przegląd hipotez. Gdy hipotezy świadczą o prawdziwości celu, to następnym krokiem jest rozwinięcie predykatów i dalsze przekształcenia taktykami z punktu 6. Gdy na postawie hipotez nie można określić prawdziwości celu, lub cel jest fałszywy to należy cofnąć taktykę intuition z pierwszego kroku i ręcznie upraszczać cel za pomocą taktyk intro i split do osiągnięcia pojedynczych implikacji. Implikacje zawierają predykaty, które rozwija się taktykami unfold, a następnie udowadnia za pomocą taktyki omega. W przypadku, gdy cel nie zawiera implikacji i nie można udowodnić go taktykami assumption, contradiction i omega, należy wykorzystać metodę cięcia. Jako argumentu cięcia należy użyć wyrażenia ograniczającego zakres zmiennej znajdującej się w celu. Poprawność celu i wyrażenia może być wykazana za pomocą wcześniejszych taktyk. 9. Podsumowanie Przedstawiono metodę przeprowadzania dowodów poprawności prostych programów sterowania napisanych w języku ST w środowisku Coq. Wykorzystano w tym celu dwa pomocnicze narzędzia Why i Caduceus należące do wspólnego projektu Proval. Metoda polega na ręcznej konwersji programu sterowania zapisanego w języku ST za pomocą przedstawionych reguł do równoważnej postaci w ANSI C. Ze względu na prostotę ST i podobieństwo do ANSI C nie powinno stanowić to problemu. Postać tę uzupełnia się o specyfikację wejść i wyjść a następnie poddaje automatycznym transformacjom programami Caduceus i Why. Program Why generuje lematy, które należy udowodnić, aby wykazać poprawność realizacji. Przedstawione reguły konwersji z języka ST do ANSI C stosuje się do przekształcania prostych bloków funkcjonalnych i programów. Zastosowanie niektórych reguł prowadzi do ograniczeń w liczbie instancji bloków, co jest wadą zaproponowanego rozwiązania. Wśród pozytywnych cech prezentowanych reguł wyróżnić można przejrzysty zapis specyfikacji i łatwość przeprowadzania dowodów w podobnych przypadkach. Wprowadzenie do weryfikacji prostych programów w języku ST za pomocą… 137 Podczas weryfikacji układów kombinacyjnych odpowiednio stosowane taktyki intro, split oraz decompose upraszczają lematy do postaci osiągalnych przez assumption lub contradiction. Lematy układów sekwencyjnych i programów, upraszcza się taktyką intuition a następnie po zastosowaniu redukcji zostaje osiągnięty taktyką omega, czasami wspomaganą metodą cięcia (cut). Brak możliwości wykazania poprawności programu czy bloku, w których nie występują pętle, nakazuje poszukiwanie błędu w niespójnej czy wadliwej specyfikacji lub w niewłaściwie zapisanej implementacji. Dalsze prace będą dotyczyły zautomatyzowania konwersji z języka ST do ANSI C. Planuje się również rozszerzenie metody weryfikacji na czasowe układy sekwencyjne oraz bardziej zaawansowane programy i bloki zawierające pętle. Instrukcje iteracyjne wymagają dodatkowych adnotacji i metod dowodzenia, których tutaj nie poruszano. Bibliografia [1] Affeldt R., Kobayashi N. Formalization and Verification of a Mail Server in Coq. Lecture Notes in Computer Science, v. 2609, Springer, 2003. [2] Bertot Y., Castéran P. Interactive Theorem Prooving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Springer-Verlag, 2004. [3] Bird R. Introduction to Functional Programming using Haskell. Prentice Hall, New York, 1998. [4] Bukowiec A., Węgrzyn M. Design of Logic Controllers for Safety Critical Systems Using FPGAs with Embeded Microprocessors. [w:] Colnaric M., Halang W. A., Węgrzyn M. (red.). Real-time programming 2004 (WRTP 2004): a proceedings volume from the 28th IFAC/IFIP Workshop, Oxford Elsevier Ltd, 2005. [5] Chailloux E., Manoury P., Pagano B. Developing Applications With Objective Caml. O'Reilly, Paris, 2000. [6] Dijkstra E. W. Umiejętność programowania. Wydawnictwa Naukowo Techniczne, Warszawa 1985. [7] Filliâtre J. Ch. The WHY verification tool. Tutorial and Reference Manual [online]. http://www.lri.fr, [dostęp: 2009]. [8] Filliâtre J. Ch., Hubert T., Marché C. The CADUCEUS verification tool for C programs [online]. http://caduceus.lri.fr, [dostęp: 2009]. [9] Halang W., Śnieżek M. Bezpieczny sterownik logiczny. Oficyna Wydawnicza Politechniki Rzeszowskiej, Rzeszów, 1998. [10] Hooman J., Vain J. Integrating Methods for the Design of Real-Time Systems, Journal of Systems Architecture, v. 42, n. 6-7, 1996. [11] Howard W.A. The formulaes-as-types notion of construction. [w:] Hindley J. R. (red.). To H.B. Curry: Essays on Combinatory Logic, lambda-calculus and formalism. Seldin, 1980. [12] Huet G., Kahn G., Paulin-Mohring Ch. The Coq Proof Assistant. A Tutorial [online]. http://coq.inria.fr/doc/main.html, [dostęp 2009]. [13] IEC 61131–3 standard: Programmable Controllers-Part 3, Programming Languages. IEC, 2003. [14] Kerbœuf M., Novak D., Talpin J. P. Specification and Verification of a Steam-Boiler with Signal-Coq, University of Oxford, 2000. [15] Logika Formalna Zarys Encyklopedyczny. Marciszewski W. (red.). Państwowe Wydawnictwa Naukowe, Warszawa 1987. 138 Jan Sadolewski [16] Muzalewski M. An Outline of PC Mizar. Foundation Philippe le Hodey, Brussels, 1993. [17] Nipkow T., Paulson L. C., Wenzel M. Isabelle/HOL - A Proof Assistant for HigherOrder Logic. Lecture Notes in Computer Science v. 2283. Springer, 2002. [18] Owre S., Shankar N., Rushby J. M., Stringer-Calvert D. W. J. PVS System Guide. SRI International, 2001. [19] Parent C. Developing certified programs in the system Coq. The Program tactic. Research Report No 93-29, Lyon, 1993. [20] Storey N. Safety-Critical Computer Systems. Addison Wesley, 1996. [21] Strona domowa projektu Coq [online] http://coq.inria.fr, [dostęp: 2009]. [22] The Coq Development Team. The Coq Proof Assistant Reference Manual, Ecole Polytechnique, INRIA, Universit de Paris-Sud, 2007. Clusterization modules for “Ontology Data Models for Data and Metadata Exchange Repository” system text collections Tatyana Shatovska, Iryna Kamenieva, Olena Liskonog Kharkiv National University for Radioelectronics Abstract: In this paper the clusterization dataset module for “Ontology Data Models for Data and Metadata Exchange Repository” is considered. This module makes it possible to perform texts clusterization without prior clusters end-points. Keywords: data mining, clusterization , tfidf, stemming, k-means, dendrogram, java 1. Introduction Data Mining have a long track of application for financial markets forecasting, banking, insurance, medicine, image segmentation, marketing, text mining and other fields. The most sophisticated and accurate method of text analysis in Data Mining is clusterization. Clusterization is the automatic partitioning of a multitude into groups depending on their similarity without clusters (classes, taxons)’ pre-setting, the so-called unsupervised learning [3]. Clusterization in Data Mining gains value when it is one of the stages of data analysis or closed-form solutions. We have developed the algorithm and program module for Ontology Data Models for Data and Metadata Exchange Repository System which is based on ontology models and intellectual agents and processes high textual data flows. Using the system module which is detailed in this paper we have the possibility to cluster a text (document) that entered our system with an incomplete or absent set of information on its authors, etc., to refer it to the file directory according to certain categories. 2. Text collections’ clusterization module For clustering text collections in this module the algorithm based on the vector-space model, text similarity function, k-means and dendrogram was developed (Fig.1). Text preprocessing implies eliminating stop-words and stemming. Stop-words are empty linguistic units which bear no meaning. These include pronouns, conjunctions, interjections, etc. As a rule they are deleted from the considered text with the aim of deloading a searchengine [1]. The next step of text preprocessing - stemming – is the algorithm to define the word stem. For example words like “presentation”, “presented”, “presenting” will be reduced to the common stem “present”. It is a widely used procedure of information retrieval word procesing which enhances acceleration of document processing. We chose Porter Stemming Algorithm [2,6]. Metody Informatyki Stosowanej, nr 2/2009 (19), s. 139-144 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 140 Tatyana Shatovska, Iryna Kamenieva, Olena Liskonog Figure 1. Text Processing Vector-space model presents text di as a set of terms (words) t1,t2…tn for the given text. t1,t2…tn terms are significant words indicated by user at his/her own discretion. As some words may be present in virtually all texts and consequently have minor influence on text’s categorization in order to reduce such words’ significance the tf-idf model is applied. The tf (term frequency) metrics is the ratio of the number of times the t word occurs in the d text to the text length (1): tf nt k nk . (1) Normalization of text length is needed to equalize the short and long (with a significantly higher absolute occurrence of words) texts. idf (inverse document frequency) – is the logarithm of the ration of all texts number to the number of texts with the t word (2): idf log D (2) (di t ) Thus for the words occurring frequently in texts the idf will tend to 0 (if a word occurs in all the texts the idf will be 0), which helps to highlight the significant words. Every text will be presented as dj = (w1j, w2j, …, wtj) vector where wij = tfij idfi. Having found the frequency of occurring of those words previously set as significant ones we can find the similarity of texts. Let’s mark the d text of d = (w1, w2, …, wn) type by V (d ) vector . The similarity of texts will be defined as the cos of the angle included between two vectors. All the texts will be searched in pairs and the cos of their V (di ) and V (d j ) vectors’ si- milarity will be calculated (3): cos Sim( d i , d j ) V (di ) V (d j ) V (di ) V (d j ) , (3) where denominator is the product of Euclidean distances (4): 2 iM Vi ( d ) The less is the angle between text vectors the more similar are the texts [4]. (4) Clusterization modules for “Ontology Data Models for Data and Metadata Exchange… 141 As a result of all vectors’ search and calculations of their similarity we obtain the following matrix (5): d1 d1 d 1 cos Sim12 1 1 d1 cos Sim12 d n cos Sim1n cos Sim2 n cos Sim1n cos Sim2 n 1 dn (5) Further the k-means algorithm is used. Clusters are represented as centroids which are the “centre of mass” of all the texts in cluster. The essence of this algorithm is in minimizing the total deviation on every cluster (6): k V xi i 2 i 1 jSi (6) where Si – k-clusters, µi – centroids of the i-th cluster. In each algorithm iteration we shift each vector to the cluster with closest centroid. For a more precise clusterization after the k-means method we apply dendrograms. The previously obtained matrix of text similarity gives us the possibility to draw a dendrogram. In plotting the dendrogram our every step implies sequential agglomeration of a couple of the most similar texts. That’s why they are called agglomerative. The agglomeration culminates in forming a cluster which contains all the texts. The means of measuring a distance determine the specific features of clusters obtained. For building a diagram the method of nearest neighbor was chosen. This method joins those clusters which have the smallest distance between periphery objects. The main advantage of this method is its mathematical properties: the results obtained under this method are invariant to the monotone transformation of similarity matrix; this method can not be hindered by the “coincidences” of data. It means that the method of single connection is among those few whose results remained unchanged in any data transformations which leave the partial ordering of similarity matrix stable. Closer to the clusterization process completion one big cluster is formed while all the remaining objects are added to it one by one [7]. At the initial stage of dendrogram drawing each text is represented as a separate с cluster. Thus the most similar texts are (7): cos Sim ( ci , c j ) max cos Sim ( x, y ) xci , yc j (7) After joining сi to сj the obtained cluster will be compared to the following cluster сk (8): cos Sim((ci c j ), ck ) max(cos Sim (ci , ck ), cos Sim (c j , ck )) (8) Having found the most similar texts as a result of step-by-step procedure we can build the dendrogram. This dendrogram makes it possible to cluster texts into categories without pre-setting a quantity of clusters [5]. 142 Tatyana Shatovska, Iryna Kamenieva, Olena Liskonog 3. The results “Ontology Data Models For Data and Metadata Exchange Repository” Method was tested in unstructured documents (fig.2). Unstructured documents are a set of versatile-themed documents kept in a single array. Figure 2. Structured Documents Formation Dendrogram For the experiment variously formatted (.ppt, .txt, .pdf, XML, HTML) unstructured documents were taken, 15 GB each. Our algorithm demonstrated good results of clusterization (Fig.3). The speed of clusterization in unstructured documents showed 3.5 min. Quality of clusterization showed 91%. Figure 3. Unstructured Documents Clusterization Results The algorithm was also tested in Reuters text collections– 21578 out of UCI – repository (Fig.4). Reuters – 21578 is among the most complex documents collections. Few scientists will test their systems in this collection out of UCI – repository, as it is characterized by structural complexity. One of the distinguishing features of this collection is a significant scatter in document sizes which makes the task of information retrieval still more difficult. Clusterization modules for “Ontology Data Models for Data and Metadata Exchange… 143 Figure 4. Dendrogram for Reuters – 21578 The result showed that this algorithm took 6 minutes to cluster text collections and the clusterization precision was 95% (Fig.5). Figure 5. The Results of Reuters – 21578 Text Collection Clusterization 4. Summary This paper describes the algorithm of clustering text collections which will make it possible within Ontology Data Models for Data and Metadata Exchange Repository System to cluster the inflowing documents (texts) without filling in the mandatory fields. The developed module was tested in unstructured documents and Reuters – 21578 text collection. References [1] Berry M. W. Survey of Text Mining. Springer , 2003. [2] Porter M. F. An algorithm for suffix stripping. Program,1980. [3] Cutting D. R., Karger D. R., Predesen J. O., Turkey J. W. Scatter/Gather: A clusterbased approach to browsing large document collections. Proc. of the Fifteenth Interna- 144 [4] [5] [6] [7] Tatyana Shatovska, Iryna Kamenieva, Olena Liskonog tional Conference on Research and Development in Information retrieval, 1992, pp. 318-329 Salton G., Buckley C. Term Weighting Approaches in Automatic Text Retrieval. Information Processing and Management, 1988 (24 no. 5), pp. 513–523. Zhambu M. Hierarchical cluster-analysis and correspondences. Finances and statistics, 1988. Lovins J. B. Development of a stemming algorithm. Mechanical Translation and Computation, 1968, №11 (1-2), pp. 11-31. Dubes R. C., Jain A. K. Algorithms for Clustering Data. Prentice Hall, 1988. Stany nierównowagowe procesów w przetwarzaniu algorytmicznym Dominik Strzałka Politechnika Rzeszowska, Wydział Elektrotechniki i Informatyki Abstract: In article there will be shown the thermodynamical analysis of simple insertion sort algorithm and its possible connections with Tsallis non-extensive definition of entropy. The algorithmic processing, which is based on the idea of Turing machine will be connected with nonequilibrium thermodynamics to indicate the existence of non-equilibrium states in the case of insertion-sort. The implementations of Turing machines (considered as algorithms) need energy for their work, thus the problem of entropy production appears. As it will turn-out in the problem of sorting for some cases the levels of entropy production will lead to the nonextensivity. Keywords: non-extensive entropy, non-equilibrium thermodynamics, algorithmic processing. 1. Wprowadzenie Jeszcze w połowie wieku XIX wydawało się, że mechanika Newtona ma charakter uniwersalny. Jednakże początek XX wieku przyniósł nam spore zmiany w tym spojrzeniu i dziś powszechnie wiadomo, że [1]: gdy masa obiektu jest bardzo mała, mechanika Newtona musi być uzupełniona o mechanikę kwantową; gdy prędkość obiektu jest bliska prędkości światła w próżni, to należy sięgnąć do teorii względności; gdy pod uwagę brane są obiekty o bardzo dużej masie, wtedy w grę wchodzi ogólna teoria względności. Innymi słowy współczesny punkt widzenia ogranicza klasyczną mechanikę Newtona do przypadków kiedy ,1/ c, G 0, 0, 0 , ale z drugiej strony znane są jej uogólnienia. Czy podobne rozważania można przedstawić w stosunku do fundamentalnego pojęcia, jakim jest entropia? Czy pojęcie entropii można rozszerzyć podobnie jak zostało to uczynione w przypadku mechaniki Newtona? Odpowiedź na te pytania jest twierdząca; nim jednak zostanie ona pokazana warto uzasadnić, dlaczego entropia powinna być tak ważnym fundamentem wszelkich rozważań. Zrozumienie pojęcia entropii nieodłącznie wiąże się z koncepcją energii, która jest wszechobecna w naszym życiu. Zasada zachowania energii mówi, że różnica energii wewnętrznej w układzie musi być równa ilości energii doprowadzonej do układu podczas przemiany minus energia odprowadzona w czasie tej przemiany. Zasada pozwala na zapisanie równania i nie nakłada żadnych ograniczeń na wielkości w tym równaniu. Co więcej, nie daje ona żadnych wskazówek, w jaki sposób energia ma być dostarczana lub odprowadzana z układu, lub jakie prawa (o ile w ogóle istnieją) powinny rządzić przemianami enerMetody Informatyki Stosowanej, nr 2/2009 (19), s. 145-160 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 146 Dominik Strzałka gii z jednej postaci w drugą. Znaczenie mają jedynie różnice przekształconej energii. Istnieją jednak reguły rządzące przekształceniami energii. Koncepcja entropii i związane z nią pojęcia dotyczą właśnie tych reguł. Termin entropia został sformułowany po raz pierwszy przez niemieckiego fizyka Rudolfa Clausiusa w roku 1865, który proponując go m.in. powiedział [2]: „Proponuję nazwać wielkość S entropią systemu, za greckim słowem »trope« (gr. τροπη) – przemiana1. Celowo wybieram słowo entropia, aby było one tak podobne, jak tylko to możliwe, do słowa energia2: wielkości te, nazwane tymi określeniami, są ze sobą tak blisko spokrewnione w fizycznym znaczeniu, że to świadome podobieństwo w ich nazwach wydaje się być bardzo stosowne” [tłum. D. Strzałka]. Entropia podobnie jak i energia jest także parametrem, który służy do opisu stanu układu. Entropia mówi, w jaki sposób rozłożona jest wewnętrzna energia układu i jakie są możliwości jej transformacji. Poprzez związki ze statystyką i prawdopodobieństwem pojęcie entropii zostało uogólnione i stało się użyteczne do zapisu względnego stopnia zorganizowania, czyli przeciwieństwa dezorganizacji [3]. Entropia jest pojęciem względnym, a więc znaczenie mają jedynie zmiany entropii. Jednak w przeciwieństwie do energii, entropię można stworzyć. W termodynamice przepływ ciepła między gorącymi a chłodnymi częściami układu powoduje bowiem zmianę rozkładu energii w układzie, a w rezultacie wzrost całkowitej entropii układu. Gdy wszystkie części układu znajdą się w tej samej temperaturze, ciepło przestaje płynąć, układ osiąga stan równowagi termodynamicznej i entropia układu osiąga maksimum. Jest to sytuacja, w której makroskopowe parametry układu, takie jak ciśnienie, objętość i wszystkie funkcje stanu, są stałe w czasie; w układzie (systemie) nie występuje przepływ energii3. Stan równowagi termodynamicznej należy także utożsamiać z równowagą mechaniczną (nie występują niezrównoważone siły) i chemiczną (brak makroskopowego przepływu cząstek i reakcji chemicznych). Klasyczna termodynamika zajmuje się przede wszystkim stanami równowagowymi, co oznacza, że w układzie (systemie) nie występują niezrównoważone potencjały lub siły. System, który znajduje się w stanie równowagi nie doświadcza żadnych zmian, jeżeli tylko jest odizolowany od otoczenia. 2. Entropia Boltzmann’a-Gibbs’a i jej uogólnienie Entropia Boltzmanna-Gibbsa (entropia BG) dla systemów wyizolowanych pozostających w stanie równowagi termodynamicznej wyrażana jest jako [3][6] S BG k ln W , (1) gdzie k jest stałą Boltzmanna, zaś W jest liczbą mikrostanów pojawiających się z równym prawdopodobieństwem w systemie. Zależność (1) wynika z następujących założeń: jeżeli w każdym układzie izolowanym znajdującym się w stanie równowagi termodynamicznej występują tylko te mikrostany, które odpowiadają makrostanowi o ustalonych wartościach energii E, objętości V i liczbie czą1 będzie to więc εν-τροπη z gr. ενέργεια, gdzie εν- oznacza „w”, έργον oznacza „praca”, natomiast przyrostek -ια formuje rzeczownik. Wyraz złożony εν-εργεια w potocznym języku greckim oznacza m.in. „magiczną operację”; wcześniej używane było przez Arystotelesa w znaczeniu „aktywność, działanie” lub „wigor, krzepkość, żywość, energia” 3 pojęcia układ i system są dość często w literaturze używane tu zamiennie. Jest to w pewnym sensie nadużycie, niemniej jednak jedna z definicji słowa układ mówi, że jest to [4]: „całość składająca się z powiązanych wzajemnie elementów”, a sformułowanie to jest w pewnym sensie bliskie definicji pojęcia system [5] 2 Stany nierównowagowe procesów w przetwarzaniu algorytmicznym 147 steczek N (tzw. mikrostany dozwolone, w odróżnieniu od mikrostanów odpowiadających makrostanom o innych od ustalonych wartościach energii lub objętości, czy też liczby cząsteczek4), to przyjmując, że W jest liczbą wszystkich dozwolonych mikrostanów i wszystkie mikrostany są równoprawdopodobne (nic nie wyróżnia poszczególnych mikrostanów), cała informacja o układzie jest zawarta w liczbie W (E; V; N). Jeśli makroskopowy układ o objętości V, liczbie cząsteczek N i energii E podzielony zostanie na dwa statystycznie niezależne makroskopowe podukłady A i B takie, że pij A B pi A p j B i, j (2) o objętości V1 i V2, (V = V1 + V2), liczbach cząstek N1 i N2, (N = N1 + N2) oraz energiach E1 i E2, (E = E1 + E2), to entropia SBG całości układu jest sumą entropii podukładów, czyli [1] S BG A B S BG A S BG B . (3) Jest to zgodne z fundamentalną zasadą przyjętą u podstaw termodynamiki mówiącą, że entropia jest wielkością ekstensywną (addytywną). Statystyczna niezależność (2) implikuje, że oddziaływania pomiędzy podukładami A i B są zaniedbywalne: to, w jakim stanie jest jeden podukład nie ma wpływu na stan drugiego podukładu. Zatem dla każdego mikrostanu w pierwszym układzie mogą wystąpić wszystkie dozwolone mikrostany w drugim podukładzie. Czyli liczba mikrostanów dla całego układu wynosi W = W1·W2 (jest to zatem wielkość multiplikatywna). Wielkością spełniającą warunek ekstensywności (3) jest lnW (lub dowolny inny logarytm), bowiem ln(W1·W2) = ln(W1) + ln(W2). Postawiono więc postulat5, aby związek między liczbą mikrostanów a entropią, czyli statystyczna definicja entropii oparta była o równanie (1). W roku 1988 brazylijski uczony greckiego pochodzenia, Constantino Tsallis, przestawił postulat, by klasyczną definicję entropii uznać jedynie za szczególny przypadek entropii o charakterze nieekstensywnym (nieaddytywnym) i rozszerzyć poprzez następujące równanie [1][6] x1 q 1 y ln q x , 1 q (4) które powszechnie w literaturze nazywane jest q-logarytmem (parametr qR) i przy q=1, czyli ln1(x), staje się zwykłym logarytmem naturalnym, co wynika z faktu, iż ln x x1 q (1) x1 q 1 0 ln x . lim ln q x lim lim q 1 q 1 1 q 0 1 q 1 Na podstawie zależności (4) uogólnienie wzoru Boltzmanna (1) dla liczby W mikrostanów pojawiających się z równym prawdopodobieństwem w systemie jest dane zależnością [6] W 1 q 1 . S q pi 1/ W , i k ln q W k 1 q 4 (5) można je utożsamiać ze stanem nierównowagi tak, nadal jest to postulat, co jest niezwykle ważne w kontekście rozważań toczących się obecnie w kwestii problemu definicji entropii [1][7] 5 148 Dominik Strzałka Parametr q jest przede wszystkim utożsamiany jako stopień nieekstensywności. Jeżeli, podobnie jak i poprzednio, rozważone zostaną dwa statystycznie niezależne systemy A i B (zgodnie z zależnością (3)), to dla entropii Tsallisa otrzymuje się [ ] S q A B S q A S q B 1 q S q A Sq B . (6) Niezależnie od q, wartość Sq 0, ale dla: q 1 Sq A B Sq A Sq B , (7) q 1 Sq A B Sq A S (8) q B . Własność opisana równaniami (7) i (8) nazywana jest dla q < 1 superekstensywnością (superaddytywnością), a dla q > 1 subekstensywnością (subaddytywnością). W związku z tym entropia Tsallisa często nazywana jest entropią nieekstensywną. Entropia Tsallisa spełnia wszystkie właściwości entropii BG, ale jest addytywna tylko dla q=1 (tzn. może być addytywna dla q≠1, ale wtedy gdy rozważania nie dotyczą systemów statystycznie niezależnych). Innymi słowy dla q=1 (czyli stanu równowagi termodynamicznej) entropia Tsallisa sprowadza się do entropii Boltzmanna. Pojęcie entropii wiąże się wprost z energią i przepływem ciepła, które to na poziomie mikroskopowym jest kojarzone z ruchem cząsteczek; jest termodynamicznym fundamentem pozwalający na opis dyfuzji gazów i wyjaśnia, jakimi prawami rządzą się np. ruchy Browna (często nazywane także błądzeniem losowym). Proces ten wykorzystuje się bardzo często do modelowania statystycznego. Jego rozkład gęstości prawdopodobieństwa p(x) przemieszczenia pojedynczej cząsteczki może być uzyskany wprost z założeń wynikających z entropii BG. Należy tylko przyjąć, że entropia opisana zależnością (1) [8][9]: S p x k B p x ln p x dx (9) powinna osiągnąć największą wartość dla pewnego przyjętego rozkładu p(x) przy założeniu, W że spełniony jest warunek normalizacji i 1 pi 1 (lub p( x)dx 1 ) oraz wartość przemieszczenia średniokwadratowego definiowanego jako x p x dx 2 2 d (gdzie d jest wymiarem przestrzeni), jest skończona. Używając parametrów Lagrange’a można pokazać, że warunek ten spełnia Gaussowski rozkład gęstości prawdopodobieństwa [8][9]: 2 e x p x , Z gdzie Z e x2 dx (10) 1 1 oraz . kT 2 2 Zatem entropia BG poprzez swoje związki ze statystyką stanowi termodynamiczny fundament dla klasycznego rachunku prawdopodobieństwa, a ściślej rzecz ujmując, dla istnienia rozkładów prawdopodobieństwa, które należą do basenu traktora rozkładu Gaussa [10]. Jeżeli w wyżej prezentowanym toku postępowania zastosować entropię Tsallisa S q p x k 1 p x q 1 q dx q R (11) Stany nierównowagowe procesów w przetwarzaniu algorytmicznym 149 q dx p x 2 d (jest to tzw. q-średniokwadratową nieznormali zowaną wartość oczekiwana), to poszukiwany będzie rozkład gęstości prawdopodobieństwa p(x), który jest wyrażony jako [9] a także przyjąć, że x 2 1 1 β 1 q x 2 1 q , pq x Zq (12) 1 gdzie Z q 1 1 q x 2 1 q dx . Dla - q 1 wartość pq(x) wynosi [8] pq x przy x 1 5 3q 1 2 1 q 2 1 q 1 q 1 q x 1 , 3 q 2 q 3 q 2 1 q (13) 3 q . 1 q 2 1 e , co oznacza, że jest to rozkład Gaussa (dla q 2 = 1 entropia Tsallisa staje się entropią BG), natomiast dla 1 <q< 3 wartość pq(x) wynosi [8][9] Dla q = 1 będzie to p1 x pq x 1 1 x 2 1 q 1 1 q 1 , 1 3 q 3 q 2 1 q 1 q 1 x q 2 1 3 q 2 przy czym dla |x| zależność (14) zachowuje się jak: pq x x 2 q 1 (14) . Dla q 3 nie jest możliwe spełnienie warunku normalizacji w związku z tym nie można określić wartości pq(x) [9]. Jeżeli określić wartość średniokwadratową dla prawdopodobieństwa pq(x), to będzie ona skończona dla wartości q < 5/3, natomiast nie będzie jej można określić dla 5/3 q 3. Jeżeli jednak do określenia wartości średniokwadratowej użyć wspomnianej wyżej qśredniej, to będzie ona miała wartość skończoną dla wszystkich q 3. Oznacza to, że dla q < 5/3 rozkłady prawdopodobieństwa będą należały do basenu traktora rozkładu normalnego, natomiast dla q > 5/3 rozkłady prawdopodobieństwa nie będą posiadały skończonej (zwykłej, nie q) wartości drugiego momentu a ich ogony będą zanikały w sposób potęgowy. W związku z tym jako rozkłady graniczne pojawią się -stabilne rozkłady Lévy’ego (nazywane czasem -samopodobnymi) z indeksem samopodobieństwa (stabilności) < 2 przy czym [9] 1 3 q H q 1 dla 5 q 3. 3 (15) 150 Dominik Strzałka Rysunek 1. Wartości q-rozkładów prawdopodobieństw wyznaczone według formuł (13) i (14) Tak więc przyjęcie założeń wynikających z koncepcji Tsallisa pozwala nie tylko na wyjaśnienie fizycznego sensu granicznych rozkładów Lévy’ego, ale także umożliwia, podobnie jak w przypadku entropii BG i ruchów Browna, stworzenie spójnego, uogólnionego fundamentu analiz statystycznych, bazującego tym razem na nieekstensywnej postaci entropii, wyjaśniającego m.in. wątpliwości artykułowane przez E. Stanley i R. Mantegna w [10]: „Czy warto zajmować się rozkładami potęgowymi? Z matematycznego punktu widzenia są one istotne, mimo że ich momenty są nieskończone. Z fizycznego punktu widzenia, są nieistotne dla pewnych skończonych (»izolowanych«) układów. Na przykład, nieskończona wartość drugiego mementu w mechanice statystycznej prowadziłaby do nieskończonej wartości temperatury. (...) Rozkłady potęgowe mogą się wydawać sprzeczne z intuicją, ponieważ nie zawierają charakterystycznej skali. Ogólnie mówiąc, zmienne losowe mające nieskończone momenty traktowano (...), jako »wypadek przy pracy«”. Entropia Tsallisa pokazuje wyraźnie, że rozkłady takie nie tylko są istotne dla pewnych układów, ale mają swoje termodynamiczne uzasadnienie nie będące już tylko kwestią „wypadku przy pracy”6. 3. Sortowanie Przedstawione do tej pory rozważania mają ścisły związek z problemami, które na pierwszy rzut oka nie są związane z ogólnie rozumianą informatyką. Zauważmy jednak, że u podstaw informatyki, takiej jaka jest powszechnie znana, leży idea maszyny Turinga. Została ona wprowadzona w latach 1935-1936 przez Alana Matchisona Turinga [11] jako odpowiedź na problem postawiony w 1900 roku przez Dawida Hilberta, znany pod niemiecką nazwą Entscheidungsproblem7 [12]. O maszynach Turinga można myśleć jako o algorytmach rozwiązujących problemy związane ze słowami i jeśli stworzony zostanie sposób zapisu dowolnych problemów w postaci takich właśnie słów, to algorytm dla problemu obliczeniowego jest po prostu maszyną Turinga, która rozstrzyga odpowiedni język [13]. Maszyna Turinga jest na tyle mocnym modelem obliczeń algorytmicznych, że nie wymyślono żadnych jej realnych ulepszeń, które zwiększyłyby dziedzinę rozstrzygalnych 6 warto w tym miejscu nadmienić, że podejście zaproponowane przez Tsallisa jest w chwili obecnej dość szeroko propagowane w literaturze (C. Tsallis jest m.in. przewodniczącym Komitetu Redakcyjnego czasopisma Physica A – Statistical Mechanics and Its Applications, w którym spora część artykułów jest poświęcona nieekstensywnej definicji entropii), ale także nie brakuje wyraźnych głosów krytycznych; jako przykład warto prześledzić dyskusję w artykułach []. 7 w wolnym tłumaczeniu „problem decyzyjny”; był to jeden (dokładnie dziesiąty) z dwudziestu trzech problemów, jakie na Międzynarodowym Kongresie Matematyków w Paryżu w 1900 roku postawił David Hilbert Stany nierównowagowe procesów w przetwarzaniu algorytmicznym 151 przez nie języków czy też wpłynęły bardziej niż wielomianowo na szybkość jej działania [14]. Z tego też powodu jest to model, który może posłużyć, do implementacji dowolnego algorytmu. Nie istnieje oczywiście dowód tego stwierdzenia, bowiem niemożliwym jest określenie, co tak naprawdę oznacza sformułowanie dowolny algorytm, ale wynika to wprost z tezy Alonso Churcha która mówi, że [13][15]: „Każda sensowna próba stworzenia matematycznego modelu obliczeń algorytmicznych i zdefiniowania jego czasu działania musi doprowadzić do modelu obliczeń i związanej z nim miary kosztu czasowego, które są wielomianowo równoważne maszynom Turinga8.” Zauważmy także, że maszyna Turinga to w rzeczywistości koncepcja z zakresu matematyki, nie zaś fizyczne urządzenie [12]. Tradycyjne i szeroko akceptowalna definicja pojęcia maszyna związana jest z fizyką. Zakłada ona, że jest to system fizyczny pracujący w sposób deterministyczny w dobrze zdefiniowanych cyklach; zbudowany przez człowieka, którego głównym celem jest skupianie dyspersji energii w celu wykonania pewnej pracy fizycznej [16]. Maszyna taka działa niemal9 zgodnie z koncepcją mechanizmu podaną przez Deutsch’a10 [19], jak perfekcyjny mechanizm poruszający się w sposób cykliczny zgodnie z dobrze poznanymi i opisanymi prawami fizyki stanowiąc sobą system prosty, aczkolwiek skomplikowany11. Z drugiej jednak strony nie bez znaczenia jest fakt, że postęp techniczny doprowadził do sytuacji, w której istnieje ogromna liczba różnego typu implementacji maszyny Turinga i są to jak najbardziej systemy o charakterze fizycznym. Analiza elementarnych własności maszyn Turinga [20] jako koncepcji matematycznej mówi nam m.in. że jest to model oparty o nieograniczone zasoby: dla przykładu w maszynie Turinga długość taśmy jest nieograniczona a konsumpcja energii dla wykonywania obliczeń wynosi 0. Oznacza to, że pomiędzy modelem matematycznym a jego fizyczną implementacją pojawiają się co najmniej dwie dość subtelne, ale niezwykle ważne rozbieżności: po pierwsze model matematyczny, by mógł działać, nie potrzebuje ani jednego dżula energii, tymczasem jego fizyczna implementacja tak; po drugie zaś zasoby otaczającego nas środowiska zawsze są ograniczone. W związku z tym, że w modelu matematycznym obliczeń algorytmicznych nie zachodzi konsumpcja energii, problem fizycznej sprawności tego modelu (rozumianej jako stosunek dostarczonej doń energii do pracy jaką maszyna wykona) przestaje obowiązywać12. Co więcej wydaje się, że w związku z tym powinna przestać interesować nas również koncepcja produkcji entropii, skoro maszyna nie konsumuje energii. Niemniej jednak problem ten nie jest aż tak oczywisty nie tylko ze względu na fakt, że implementacje maszyny Turinga są fizycznymi systemami, ale także ze względu na fakt użycia maszyn Turinga do rozwiązy- 8 co prawda teza ta odnosiła się pierwotnie to zaproponowanej przez Churcha notacji lambda, ale Turingowi udało się pokazać, że zarówno jego jak i model Churcha są sobie równoważne; jako że Kurt Gödel bardziej preferował podejście Turinga, przyjęła się właśnie taka interpretacja tezy Churcha, nazywanej czasem tezą Churcha-Turinga 9 słowo niemal jest tu jak najbardziej na miejscu: w maszynie parowej następuje proces dyssypacji energii, ściśle związany z termodynamiką i pojęciem strzałki czasu, zatem maszyna parowa może działać tylko w jednym kierunku, zgodnym ze strzałką czasu. 10 mechanizm Deutsch’a mógł poruszać się w kierunku przeciwnym – jest to kwestia niebagatelna; zrozumienie, że wiele fizycznych procesów może zachodzić tylko w jednym kierunku, co zaprzecza koncepcji mechanistycznej wizji świata zaproponowanej przez Newtona, zajęło naukowcom wiele lat. 11 system skomplikowany to taki, w którym współpracuje ze sobą w sposób całkowicie mechanistyczny bardzo duża liczba elementów [22] 12 oczywiście nadal interesujące pozostają kwestie związane ze złożonością obliczeniową pewnych algorytmów oraz istniejącymi możliwościami rozwiązywania problemów algorytmicznych, dla których nadal brakuje rozwiązań o złożoności P 152 Dominik Strzałka wania takich problemów algorytmicznych, które ze swej natury związane są z takimi pojęciami jak porządek. Klasycznym przykładem tego typu problemu jest sortowanie. Jest to najczęściej jeden z pierwszych problemów omawianych na kursach poświęconych algorytmice a na przykładzie algorytmów sortowania wyjaśniana jest m.in. idea złożoności obliczeniowej. Dla przykładu: we wstępie polskiego wydania książki „Wprowadzenie do algorytmów” [14] autor pisze: „Rozpoczniemy od ogólnego omówienia problemów obliczeniowych i algorytmów służących do ich rozwiązywania. Naszym wiodącym przykładem będzie sortowanie (...)”. Generalnie głównym celem sortowania jest w istocie odszukanie takiej permutacji (zmiany uporządkowania) a1' , a2' ,..., aN' ciągu wejściowego składającego się z N liczb (lub w ogólności N kluczy) a1 , a2 ,..., aN , aby a1' a2' ... aN' [14][18][21]. Jak widać poszukiwanie odpowiedniej permutacji odbywa się z wykorzystaniem relacji porządkującej „<” określonej na wartościach (kluczach) tak, że spełnione są następujące warunki dla trzech wartości a, b, c [18]: jest prawdziwa dokładnie jedna z możliwości a < b, a = b, b < a; jeśli a < b i b < c, to a < c. W artykule, w kontekście prezentowanych rozważań, omówiony zostanie algorytm prostego sortowania przez wstawianie. Jest to jeden z najprostszych i najbardziej intuicyjnych algorytmów sortowania a jego szczegółowy opis można znaleźć w literaturze [14][24]. Nie jest to zbyt szybki algorytm (dla przypadku pesymistycznego należy do klasy algorytmów o złożoności O(n2) podobnie jak i dla przypadku średniego []), ale jest niezwykle prosty, bo składa się jedynie z dwóch pętli: zewnętrznej gwarantującej posortowanie wszystkich elementów oraz wewnętrznej, która znajduje właściwe miejsce dla każdego klucza w posortowanym ciągu oraz cechuje się niezwykle ciekawym zachowaniem w kontekście analizy dynamiki możliwych zachowań algorytmu – szczegóły można znaleźć w literaturze [24][23][25][26]. Wynika to z faktu, że liczba wywołań wewnętrznej pętli tego algorytmu, którą można także utożsamić z czasem trwania tej pętli, zależy od [24]: liczby sortowanych kluczy (rozmiaru zadania). Jeśli dla przykładu sortowany jest pesymistyczny przypadek, to dla długich ciągów wejściowych oraz elementów o małej wartości klucza, czas trwania tej pętli może być bardzo długi zwłaszcza dla danych znajdujących się na końcu sortowanego zbioru wejściowego. aktualnie sortowanej wartości klucza; jeśli sortowanie wykonywane jest zgodnie z relacją „<”, to dla danych o dużych wartościach klucza odszukanie właściwego miejsca powinno trwać bardzo krótko, natomiast dla danych o małych wartościach powinno zająć wiele wywołań pętli wewnętrznej. Tak więc wszystkie fragmenty zbioru wejściowego zbliżone do przypadku optymistycznego, co należy rozumieć jako wstępne, przybliżone posortowanie danych (np. w wyniku wystąpienia w ciągu wejściowym lokalnego trendu rosnącego), będą skutkowały mniejszą liczbą wywołań pętli, natomiast fragmenty zbliżone do przypadku pesymistycznego (czyli np. lokalne trendy malejące) oznaczały będą potrzebę większej liczby wywołań pętli wewnętrznej. Trzeci warunek jest widoczny dopiero, gdy przyjmie się, że algorytm jest pewnego rodzaju czarną skrzynką, na wejściu której pojawia się zbiór nieuporządkowanych danych wejściowych, a na wyjściu zbiór posortowany. Można wtedy dostrzec, że istnieje jeszcze jeden dodatkowy warunek długości trwania wewnętrznej pętli. Jest nim charakter dotychczas posortowanego ciągu, czyli zbiór wartości znajdujący się w tej części tablicy, gdzie Stany nierównowagowe procesów w przetwarzaniu algorytmicznym 153 przechowywane są już posortowane klucze13 – pojawia się tu elementarne sprzężenie zwrotne. Zatem pozycja każdego nowego sortowanego elementu zależy nie tylko od jego wartości liczbowej (rozumianej tu jako wejście IN), ale również od wartości elementów już wcześniej posortowanych (czyli de facto wyjścia OUT). Gdyby bowiem tak nie było, to każdy nowy, sortowany element ciągu wejściowego miałby z góry określone miejsce w już posortowanym ciągu (byłby dołączany zawsze np. na początku, na końcu lub w innym miejscu ciągu wyjściowego). Wyżej wymieniowe obserwacje będą wpływały na dynamikę pracy analizowanego algorytmu a jej analiza zostanie przeprowadzona w kontekście uwarunkowań termodynamicznych. Zauważmy bowiem, że sortowanie jest operacją wprowadzania porządku do przetwarzanego zbioru14 innymi słowy jest to operacja zmniejszania poziomu entropii w przetwarzanym zbiorze. O ile jednak w przypadku podejścia klasycznego tzn. opartego na matematycznym modelu maszyny Turinga zmniejszanie entropii w przetwarzanym zbiorze nie będzie powodowało jej wzrostu w otoczeniu maszyny (nie konsumuje ona energii), o tyle w przypadku fizycznej implementacji maszyny, uporządkowanie przetwarzanego zbioru musi spowodować wzrost entropii w otoczeniu maszyny. Wynika to z faktu, iż operacja posortowania wymagała będzie zużycia przez maszynę energii, której wytworzenie w źródle spowoduje „gdzieś” wzrost entropii. 4. Poziomy produkcji entropii w sortowaniu przez wstawianie Aby odnieść dotychczasowe rozważania do problemu przetwarzania algorytmicznego zauważmy, że charakter pracy algorytmu sortowania przez wstawianie jest głównie zdefiniowany przez liczbę wywołań wewnętrznej pętli (jest to w przypadku analizy złożoności obliczeniowej tzw. operacja dominująca). Sortowanie oznacza zmniejszanie entropii wewnętrznej sortowanego zbioru kosztem jej wzrostu w otoczeniu, ale kwestią otwartą pozostaje określenie poziomów, na jakich produkowana będzie entropia. Jeżeli sortowany jest zbiór danych o rozmiarze n, to może wystąpić w nim n! możliwych ustawień kluczy. Jedno z tych ustawień będzie odnosiło się do przypadku właściwego ułożenia elementów w zbiorze (tzn. zbiór będzie już posortowany – przypadek optymistyczny); inne zaś odnosiło będzie się do przypadku pesymistycznego (w zbiorze istniał będzie porządek, ale odmienny od wymaganego). Dla obu wyżej wymienionych sytuacji można bez większego problemu podać dokładną liczbę operacji dominujących, jakie musza zostać wykonane w algorytmie, natomiast w większości pozostałych n!-2 przypadków nie jest to takie proste. Niemniej jednak analiza sortowania przez wstawianie może być przeprowadzona w oparciu o pojęcie inwersji [18][23]. Liczba inwersji może zostać użyta do obliczenia ile razy potrzeba będzie wykonać operację dominującą w algorytmie sortowania przez wstawianie [24], ale także jest informacją o poziomie entropii w przetwarzanym zbiorze, bowiem liczba inwersji jest informacją o tym, jak wiele elementów zbioru nie jest uporządkowanych. Oczywiście ich uporządkowanie zmniejszy entropię w zbiorze, ale spowoduje to wzrost entropii w otoczeniu. W związku z tym można zastanowić nad poziomami produkcji entropii podczas sortowania przez wstawianie. Jeżeli przez M oznaczona zostanie całkowita liczba wywołań pętli zewnętrznej i wewnętrznej potrzebnych do posortowania kolejnych elementów ni w zbiorze 13 w zapisie (opartym o pseudokod) badanego algorytmu (zobacz w polskim wydaniu [14] str. 24) znajduje się warunek A[i]>key and i>length(A) połączony logicznym i. Jego pierwsza część (A[i]>key) odnosi się właśnie do prezentowanych tu rozważań 14 dla przykładu w książce Knuth’a [18] można znaleźć stwierdzenie, że określenie sortowanie nie do końca jest fortunne i być może lepiej byłoby nazwać je porządkowaniem 154 Dominik Strzałka wejściowym o rozmiarze n, to dla każdego kolejnego klucza M = ni. Niech M1 oznacza liczbę wywołań pętli zewnętrznej i w analizowanym algorytmie dla każdego klucza wyniesie ona zawsze 1. Jeżeli przez M2 będzie oznaczona liczba wywołań pętli wewnętrznej, to w czasie sortowania kolejnych kluczy może ona zmieniać się od 0 do ni-1, zaś przez M3 można oznaczyć liczbę tych wywołań pętli wewnętrznej, które mogły wystąpić a nie nastąpiły15; wtedy M = M1 + M2 + M3. Dla liczb M1, M2 i M3 można określić liczbę możliwych konfiguracji wywołań obu pętli dla przypadków: optymistycznego, pesymistycznego i pozostałych. Przez analogię podejście to można zinterpretować jako określenie w układzie liczby dozwolonych mikrostanów (konfiguracji), dzięki czemu możliwe będzie wyznaczenie poziomów produkcji entropii w kontekście liczby niezbędnych wywołań pętli wewnętrznej [26]. Liczba konfiguracji mikrostanów jest iloczynem (wielkość ta jest bowiem multiplikatywna) dwóch kombinacji W CMM1 CMM 2 M1 M M 1 ! M! M! , M 1 ! M M 1 ! M 2 ! M M 1 M 2 M 1 ! M 2 ! M 3 ! (16) czyli liczby C kombinacji M1 niezbędnych wywołań pętli zewnętrznej z wszystkich M wywołań razy liczby C kombinacji M2 niezbędnych wywołań pętli wewnętrznej z pozostałych możliwych M – M1 wywołań. Przypadek optymistyczny charakteryzuje się koniecznością jednorazowego wywołania dla każdego klucza pętli zewnętrznej (M1 = 1), braku wywołań pętli wewnętrznej (M2 = 0) oraz ni – 1 braków wywołań tej pętli (M3 = ni – 1), co oznacza, że liczba konfiguracji wywołań pętli WO będzie wynosiła WO ni ! ni . 1!0! ni 1 ! (17) Dla przypadku pesymistycznego będzie to: M1 = 1, M2 = ni – 1, M3 = 0, co oznacza, że WP wynosi WP ni ! ni . 1! ni 1 !0! (18) Zatem liczba konfiguracji mikrostanów w obu przypadkach jest taka sama (WO = WP). Być może wydaje się to trochę zaskakujące, ale warto zauważyć, że choć dla przypadku pesymistycznego elementy ułożone są w kolejności odwrotnej niż zakłada relacja sortująca, to jednak jest to porządek. Więc z punktu widzenia termodynamiki przypadki optymistyczny i pesymistyczny są takie same. Jeśli analizie poddać dowolny inny przypadek dla przykładu taki, w którym choć raz wywołana zostanie wewnętrzna pętla, czyli M1 = 1, M2 = 1, M3 = ni – 2, to WD wyniesie WD 15 ni ! n 2 ! ni 1 ni n n 1 , i i i 1!1! ni 2 ! ni 2 ! (19) wynika to z faktu, że nie zawsze w algorytmie istnieje potrzeba wykonania maksymalnej liczby wywołań pętli wewnętrznej Stany nierównowagowe procesów w przetwarzaniu algorytmicznym 155 co oznacza, że WD ≥ WO (lub WP), a więc dla przypadku optymistycznego lub pesymistycznego produkcja entropii jest na możliwie najmniejszym poziomie, co odpowiada relacjom podanym przez Onsagera [3]. Wynika z nich, że jeżeli układ znajduje się w stanie bliskim równowagi termodynamicznej16, to produkcja entropii zachodzi na poziomie najniższym z możliwych. Zatem podczas pracy algorytmu sortowanie albo przypadku optymistycznego, albo pesymistycznego oznacza stan równowagowy. O ile w przypadku optymistycznym i pesymistycznym widać, że proces sortowania ma charakter ekstensywny, o tyle nie wiadomo czy rozważania te są uprawnione dla pozostałych instancji. Można się jednak o tym przekonać wykonując opis w skali mikro, badając zachowanie algorytmu w odniesieniu do zbiorów danych wejściowych z pewnymi własnościami. Nadto, aby uniknąć problemów związanych z określaniem liczby inwersji, można przeanalizować zachowanie algorytmu poprzez zapisanie dla każdego sortowanego klucza wykonanej liczby operacji dominujących (niech będzie oznaczona jako Y(n)) a następnie rozpatrzyć proces przyrostów liczby operacji dominujących Y’(n) wykonywanych w algorytmie tzn. badając, jak zachowuje się proces: Y’(n) = Y(n +1) – Y(n). Nie trudno zauważyć, że dla przypadku optymistycznego wyrażenie to zawsze będzie równe zero, a dla przypadku pesymistycznego zawsze równe jeden. Jeżeli sortowane będą instancje „zbliżone” do przypadku optymistycznego lub pesymistycznego, to pojawią się stosunkowo niewielkie odchylenia od podanych wyżej liczby przyrostów, a ich rozkłady prawdopodobieństwa powinny charakteryzować się przede wszystkim tym, że będą posiadały szybko zanikające ogony, zatem będą należały do basenu atraktora rozkładu Gaussowskiego, a jest to rozkład graniczny będący naturalną konsekwencją przyjęcia założeń leżących u podstaw klasycznej definicji entropii Boltzmann’a-Gibbs’a. Może jednak okazać się, że pewne własności sortowanych zbiorów wejściowych (np. długie trendy spadkowe i wzrostowe) sprawią, że rozkłady prawdopodobieństwa przyrostów liczby operacji dominujących będą miały zdecydowanie inny charakter, a wtedy pomocna okaże się koncepcja entropii nieekstensywnej. 5. Stany nierównowagowe pracy algorytmu sortowania przez wstawianie Celem zobrazowania dotychczasowych rozważań wykonany został eksperyment polegający na posortowaniu przez wstawianie zbiorów danych wejściowych, którymi były jednowymiarowe trajektorie ruchu Browna. Każdy taki zbiór liczył 106 elementów. Cechą charakterystyczną tych zbiorów jest występowanie lokalnych trendów wzrostowych lub spadkowych, które z punktu widzenia algorytmu sortującego mogą być potraktowane jako lokalne optymistyczne lub pesymistyczne przypadki. Trendy te oraz ich zmiany będą wpływały na dynamikę pracy algorytmu oraz liczbę operacji dominujących, jakie należy wykonać w algorytmie. Jeśli sortowanie realizowane jest według porządku niemalejącego, to każdy trend wzrostowy będzie przypadkiem wstępnie poprawnego ułożenia danych wejściowych (innymi słowy może być w dużym przybliżeniu potraktowany jako przypadek zbliżony do optymistycznego) – w analizie matematycznej sytuacja taka byłaby opisywana przez niewielką liczbę inwersji. Natomiast każdy trend spadkowy będzie przypadkiem niewłaściwego ułożenia danych (czyli w dużym przybliżeniu przypadkiem zbliżonym do pesymistycznego) – w analizie matematycznej sytuacja taka wiąże się z dużą liczbą inwersji. Każdy trend wzrostowy w zbiorze wejściowym oznaczał będzie spadek liczby operacji dominujących, natomiast trend spadkowy szybki ich wzrost (rys. 2). Podczas eksperymentu rejestrowana była liczba operacji dominujących Y(n) potrzebnych do posortowania każdego klucza. Jako że posortowanych zostało 500 zbiorów danych wej16 czasem mówi się o tzw. (quasi)równowadze 156 Dominik Strzałka ściowych, otrzymano zbiór rejestracji procesu sortowania, dla których następnie zbadano przede wszystkim empiryczny rozkład gęstości prawdopodobieństwa przyrostów liczby operacji dominujących Y’(n). Rysunek 2. Przykładowa trajektoria wejściowa X(t) ruchu Browna i odpowiadająca jej trajektoria liczby operacji dominujących Y(n) potrzebnych do posortowania kolejnych elementów [24] Rysunek 3. Przykładowy proces przyrostów liczby operacji dominujących Y’(n) Stany nierównowagowe procesów w przetwarzaniu algorytmicznym 157 Na rys. 3 została pokazana przykładowa realizacja procesu przyrostów liczby operacji dominujących dla n = 106. Wizualna analiza wykresu wskazuje, że występują tzw. efekty agregacji, przebieg procesu sortowania ma dynamiczny charakter oraz (w związku z tym) proces może nie mieć gaussowskiego charakteru. Rysunek 4. Przykładowy empiryczny rozkład prawdopodobieństwa procesu przyrostów liczby operacji dominujących Y’(n) dla n = 106 wraz z dopasowanym rozkładem normalnym. Rozkład empiryczny posiada zdecydowanie wolniej zanikające ogony. Rysunek 5. Porównanie rozkładów empirycznych oraz dopasowanych rozkładów normalnych dla procesów przyrostów Y’(n) przy rozmiarze zadanie n = 103 oraz n = 105 O niegaussowskim charakterze rozkładu empirycznego można się przekonać analizując gęstość prawdopodobieństwa na rys. 4, gdzie w skali log-lin widać, że ogony zanikają zdecydowanie wolniej niż dla dopasowanego do danych rozkładu normalnego wyznaczonego za pomocą obliczonej średniej i wariancji dla analizowanej rejestracji procesu sortowania. Oznacza to, że proces przyrostów ilości operacji dominujących, w przypadku kiedy sorto- 158 Dominik Strzałka wanymi zbiorami danych wejściowych są trajektorie ruchu Browna, ma charakter nieekstensywny. Nadto, wolno zanikające ogony oznaczają q > 1 zatem z punktu widzenia entropii Tsallisa mamy do czynienia z subaddytywnością. W analizowanym przypadku oszacowana wartość stopnia nie-ekstensywności mierzona za pomocą wartości parametru q wynosi q ≈ 1,3. W przypadku analizy rys. 4 można zadać kilka interesujących pytań. Jednym z nich może być próba rozstrzygnięcia kwestii: dla jak dużego rozmiaru n danych wejściowych nieekstensywny charakter produkcji entropii jest dobrze widoczny. Jeżeli elementów w sortowanym zbiorze jest niewiele (rys. 5 pokazuje rozkład m.in. dla n = 1000), to nieekstensywność rozkładu prawdopodobieństwa procesu przyrostów nie jest dobrze widoczna, zaś dla zbioru danych zdecydowanie liczniejszego (rys. 5, n = 105) efekt jest zdecydowanie lepiej widoczny. Jednym z wniosków płynących z tej obserwacji, może być sugestia, że klasyczna (matematyczna) analiza omawianego algorytmu (dla przykładu pokazywana w [14]), w której zachowanie algorytmu dla niewielkiego zbioru danych obrazuje także jego możliwe zachowanie dla dowolnego rozmiaru danych wejściowych, czyli w pewnym sensie jest ona rozciągana na zbiory danych wejściowych o dowolnym rozmiarze n, nie do końca pokazuje charakter możliwych zachowań analizowanego algorytmu. Wydaje się, że omawiany tu problem nieekstensywności produkcji entropii jest raczej cechą o charakterze emergentnym; wyłania się wtedy, gdy przetwarzany zbiór danych jest odpowiednio liczny. Oczywiście algorytm sortowania przez wstawianie jest algorytmem mało wydajnym (o czym informuje nas m.in. jego złożoność obliczeniowa) i sortowanie dużych zbiorów danych zdecydowanie lepiej przeprowadzać za pomocą np. sortowania szybkiego, ale już ten prosty algorytm może otworzyć nowe pole dyskusji dotyczące analizy algorytmów w kontekście nie tylko uwarunkowań o charakterze matematycznym, ale także uwarunkowań związanych z cechami o charakterze fizycznym. 6. Zakończenie W artykule zostały zaprezentowane rozważania dotyczące istnienia możliwych związków pomiędzy nieekstensywnmą definicją entropii zaproponowaną przez C. Tsallisa a przetwarzaniem algorytmicznym na przykładzie sortowania przez wstawianie. Wykresy rozkładów empirycznych w skali log-lin pokazujące istnienie wolno zanikających ogonów rozkładów prawdopodobieństwa wskazują, że uwarunkowania termodynamiczne pracy analizowanego algorytmu wyłaniają się dopiero dla odpowiednio dużych przetwarzanych zbiorów danych. W pewnym sensie jest to cecha o charakterze emergentnym, która w klasycznej analizie algorytmów nie jest w ogóle brana pod uwagę. W artykule [23] pokazano, że taką cechą może być także przenoszenie pewnych własności sortowanych zbiorów danych (efekt zależności długoterminowych) na poziom dynamiki zachowań algorytmu i liczby operacji dominujących, jakie są wykonywane w czasie jego pracy. Jest to podejście odmienne od dotychczas zakładanego, kiedy to w klasycznej analizie złożoności obliczeniowej przyjmowano, że najbardziej interesującym i miarodajnym jest przypadek pesymistyczny (najgorszy z możliwych) lub w niektórych przypadkach tzw. przypadek średni. Tymczasem analiza pracy algorytmu w połączeniu z wiedzą nt. przetwarzanych danych pokazuje, że istnieją pewne charakterystyczne cechy, które mogą mieć fundamentalne znaczenie w przypadku analizy maszyn Turinga traktowanych nie jako model matematyczny, ale rozważanych w kontekście fizycznych właściwości implementacji. Stany nierównowagowe procesów w przetwarzaniu algorytmicznym 159 Bibliografia [1] Tsallis C. What should a statistical mechanics satisfy to reflect nature?, Physica D, 193, 2004, pp. 3-34. [2] Laidler K. J. The Physical World of Chemistry. Oxford University Press, 1995. [3] Prigogine I., Stengers I. Z chaosu ku porządkowi. Nowy dialog człowieka z przyrodą, Państwowy Instytut Wydawniczy, Warszawa, 1990. [4] Morrison F. Sztuka modelowania układów dynamicznych, deterministycznych, chaotycznych, stochastycznych, WNT, Warszawa, 1996. [5] von Bertalanffy L. An Outline of General System Theory. British Journal of the Philosophy of Science, 1, 1950, pp. 134–164. [6] Tsallis C. Possible generalization of Boltzmann-Gibbs statistics, Journal Statistical Physics, 52, 1988, p. 479. [7] Tirnakli U., Buyukkilic F., Demirhan D. A New Formalis for Nonextensive Physical Systems: Tsallis Thermostatistics, Journal of Physics, 23, 1999, pp. 21 –28. [8] Alemany P. A., Zanette D. H. Fractal random walks from a variational formalism for Tsallis entropies, Physical Reviev E, 49, 1994, p.R956. [9] Tsallis C., Levy S. V. F., Souza A. M . C., Mayanard R. Statistical-Machanical Foundation of the Ubiquity of Lèvy Distributions in Nature, Physical Review Letters, 75, 1995, p.3589, [10] Mantegna R. N., Stanley H. E. Ekonofizyka - wprowadzenie, PWN, Warszawa, 2001. [11] Turing A. M. On computable numbers, with an application to the Entscheidungsproblem, Proceedings of the London Mathematical Society, Series 2, 42, 1936, pp, 230–265. Errata appeared in Series 2, 43, 1937, pp. 544–546. [12] Penrose R. Nowy umysł cesarza, PWN, Warszawa, 2000. [13] Papadimitriou Ch. H. Złożoność obliczeniowa. WNT, Warszawa, 2002. [14] Cormen T. H., Leiserson Ch. E., Rivest R. L. Wprowadzenie do algorytmów. WNT, Warszawa, 2001. [15] Church A. An Unsolvable Problem of Elementary Number Theory. American Journal of Mathematics, 58, 345-363. [16] Horákowá J., Kelemen J., Čapek J. Turing, von Neumann, and the 20th Century Evolution of the Concept of Machine. International Conference in Memoriam John von Neumann, John von Neumann Computer Society, pp. 121–135, Budapešť, 2003. [17] Deutsch K. Mechanism, Organism, and Society. Philosophy of Science, 18, 1951, pp. 230-252. [18] Knuth D. E. Sztuka programowania. WNT, Warszawa, 2002. [19] Deutsch K. Mechanism, Organism, and Society. Philosophy of Science, 18, 1951, pp. 230–252. [20] Stepney S., Braunstein S. L., Clark J. A., Tyrrell A., Adamatzky A., Smith R. E., Addis T., Johnson C., Timmis J., Welch P., Milner R., Partridge D. Journeys in non-classical computation II: Initial journeys and waypoints. International Journal of Parallel, Emergent and Distributed Systems, 21(2), 2006, pp. 97–125. [21] Banachowski L., Diks K., Rytter W. Algorytmy i struktury danych. WNT, Warszawa, 1996. [22] Amaral L. A. N., Ottino J. M. Complex Systems and Networks: Challenges and Opportunities for Chemical and Biological Engineers, Chemical Engineering Science, 59(89), 2004, pp. 1653–1666. [23] Grabowski F., Strzałka D.: Wybrane właściwości statystyczne dynamiki procesu sortowania przez wstawianie, Metody Informatyki Stosowanej 1/2009 (18), s. 85-98 160 Dominik Strzałka [24] Strzałka D. Procesy w systemie komputerowym na styku dane-algorytm prostego sortowania przez wstawianie w ujęciu statystyki nie-ekstensywnej, PhD Thesis, Politechnika Śląska, Wydział Automatyki, Elektroniki i Informatyki, Gliwice 2009 [25] Grabowski F., Strzałka D. Dynamic behavior of simple insertion sort algorithm. Fundamenta Informaticae 72, 2006, pp. 155–165. [26] Strzałka D., Grabowski F. Towards possible non-extensive thermodynamics of algorithmic processing - statistical mechanics of insertion sort algorithm, International Journal of Modern Physics C, vol. 19 n. 9, 2008, pp. 1443–1458. [27] Kuhn T. S. The Structure of Scientific Revolutions, University of Chicago Press, 1962. Fuzzy components in the contents of knowledge bases of intelligent decision support systems (on an example of use of hydrometeorological information in regional management) Tatiana Tretyakova West Pomeranian University of Technology, Szczecin, Faculty of Computer Science and Information Technology Abstract: In article the problem of creation of knowledge bases of intelligent systems of decision support, which accept with the account of the hydrometeorological information, is presented. Use of fuzzy knowledge is specificity of systems of this class. Approaches to construction of some fuzzy models for these systems are considered. The fuzzy model of the natural phenomenon is submitted. The model of process of decision-making about a choice of the action preventing (in full or in part) damage from the dangerous natural phenomenon is shown. Keywords: intelligent systems, fuzzy models, hydrometeorological information, decision support 1. Introduction The using of the intelligent computer systems, which take into account the hydrometeorological information in acceptance of decisions, is rather useful. Applications of such systems are especially relevant for the territories subject to influences of the dangerous natural phenomena. Intelligent decision support systems are used in conditions of uncertainty for increase of a degree of confidence of the persons accepting the decisions concerning a choice of strategy of reaction to calls of a nature. In regional management such decisions are accepting concerning the preventive or protective actions with the purpose of reduction or avoidance of influence of the dangerous hydrometeorological phenomena on economic objects, and also concerning accommodation of economic objects at strategic planning. Today, in conditions of change of climate and shortage of water and power resources to such strategic decisions as accommodation of economic objects, is attached great importance [1]. The using of decision support systems in regional management and in management of economic objects is discussed for a long time [2]. The main requirement made to intelligent decision support systems in view of the hydrometeorological information, is presence in content of knowledge bases of set of models, including fuzzy models, which support a choice of strategy of reaction in conditions of existing threat from the nature. Use of such systems is especially useful to the territories subject to influences of the dangerous natural phenomena. Intelligent decision support systems can be included in structure of information systems of regional management and cities, economic objects as local intelligent subsystems [3]. In case of need these subsystems, by loss Metody Informatyki Stosowanej, nr 2/2009 (19), s. 161-167 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 162 Tatiana Tretyakova of their localness, can receive connections with other subsystems of information system, or with external databases by means of modern technologies OLAP and GIS [4]. Local intelligent systems can be used not only at a choice of strategy of reaction to the warning of hydrometeorological services on threat of the dangerous natural phenomenon. Also they can be used at acceptance of decisions on accommodation of economic objects in strategic planning. Besides, the processed initial hydrometeorological information is taking into account in designing, transport, power, agriculture and other branches [5]. One more direction of use of local intelligent systems in conditions of existence of threats on the part of a nature is the training of the personnel with the purpose of formation of skills necessary in case of influence of the dangerous hydrometeorological phenomenon. In this case these systems act as simulators (systems of training). Their use provides the best adaptation of heads and all personnel to dangerous situations. Thus the contents of knowledge bases of local intelligent systems - simulators should contain models, the facts and the rules used during training. In the present work approaches to representation of some fuzzy components of the contents of knowledge base are shown. These components come to light during construction of infological model and trees of decisions for problem area: “decision making on a choice of strategy of reaction in view of estimations of the hydrometeorological information”. Thus the opportunity of occurrence of hydrometeorological situations of a different degree of the danger, provided in the appropriate scripts is taken into account also. Construction of the infological models of process of decision-making is directly connected to the description of its problem area DJ. Problem area DJ should be submitted by subject domain РJ and by tasks ZJi, which are deciding in this subject domain: DJ = {РJ, ZJi}. Results of structurization of a subject domain and construction of trees of decisions allow to pass to definition of content's structure of the knowledge bases, necessary for acceptance of decisions. However the knowledge of experts revealed as a result of their search at structurization of a subject domain, has subjective character. It concerns too areas in which the hydrometeorological information is taken into account in choice of strategy of reaction. Thus ambiguity of the description of qualitative characteristics of objects and consequences of influence on them of hydrometeorological factors can act. Besides, the hydrometeorological information too can be uncertain and imprecise. For this reason at creation of content of knowledge bases of local intelligent decision support systems, accepted on the basis of the hydrometeorological information, fuzzy sets and fuzzy logic of Lotfi Zadeh [7, 8] can be used. Methodological bases and examples of modeling with use of fuzzy sets and fuzzy logic are widely submitted in world literature, for example, by J. Kacprzyk [8,9], A. Pegat [10], S. J. Russell and P. Norvig [1], A. Leonenkov [12]. Works of these authors have helped to understand opportunities of use of fuzzy sets and fuzzy logic at creation of content of knowledge bases and to approach to creation of fuzzy models for intelligent decisions support systems taking into account the hydrometeorological information. 2. Fuzzy modeling of the dangerous natural phenomenon caused by hydrometeorological factors The dangerous natural phenomenon we shall present, as fuzzy set: DNPi {p i , DNPi (p i )} , where: pi – the parameters of the dangerous phenomenon submitted as linguistic variables, DNPi – membership function of parameter pi to an interval which is determined by borders of linguistic variables. Fuzzy components in the contents of knowledge bases of intelligent decision suport… 163 In case of use of estimations of the indistinct hydrometeorological information in decision-making such fuzzy linguistic variables, as, for example, intensity of the hydrometeorological phenomenon can be used. As an example of a linguistic variable it is possible to present subjective estimation of intensity of such hydrometeorological phenomenon, as mudflow avalanche. Intensity (volume) of mudflow avalanche is measured in м3. Formalization of an estimation of intensity of an avalanche can be executed with the help of a linguistic variable {β, T, X, G, M}, where β - the name of fuzzy linguistic variable: for example, intensity of mudflow avalanche; T – set of values of a linguistic variable, each of which represents the name of a separate fuzzy variable: “small”, “average”, “large”, “catastrophic”; X – range of definition of fuzzy variables which enter into definition of a linguistic variable β: C = [0, 5·106]; G – syntactic procedure of formation of new terms with the help of logic relations “AND”, “OR”, “NOT” etc., for example: “small or average intensity of an avalanche”, M – semantic procedure, tasks on X = [0, 5·106] fuzzy variables: 1 – “low intensity”, 2 – “average intensity”, 3 – “the large intensity”, 4 – “catastrophic intensity”, ~ and also the appropriate fuzzy sets A {x / A ( x )} from terms G (T) according to rules of translation fuzzy relations and modifiers “END”, “OR”, “NO” etc. 3. Process of decision making in conditions of threat of the dangerous natural phenomenon It was underlined that acceptance of decisions in view of the hydrometeorological information occurs in conditions of use of uncertain and imprecise information. Taking into account this fact, the block diagram of process of decision-making about realization of protective actions in conditions of threat of the dangerous natural phenomenon it is possible to present as shown on fig. 1. The decision on a choice of the action that is directed to the reduction or avoidance of damage from influence of hydrometeorological factors can be accepted according to the algorithm that is submitted on fig. 2. From the fig. 1, 2 is following, that during decision-making about strategy of reaction to the dangerous natural phenomena fuzzy models can be used. The structure of some of them is considered in paragraphs 4, 5. 4. Formalizations of knowledge of intelligent decision-support systems with use of fuzzy logic The opportunity of the dangerous natural phenomenon can be estimated on the basis of some fuzzy hydrometeorological information. Such opportunity can be included to the content of knowledge bases of the decision support systems. For an estimation of a degree of the validity of any fuzzy statement concerning an opportunity of influence of the dangerous phenomenon we shall enter representation of the validity of fuzzy statements Т which operates from set of considered fuzzy statements concerning existence of threat of dangerous phenomenon U to an interval [0,1], i.e. T: U → [0,1]. In this case value of the validity of the fuzzy statement concerning threat of dangerous phenomenon AU we shall designate as T(A). Then, for example, for statements ~ ~ ~ ~ A1 , A 2 , A 3 , A 4 concerning threat mudflow avalanches it is possible to present the validity of these statements as follows: ~ ~ A1 – strong long-term rains cause a mudflow avalanche: T( A1 ) = 0,6 164 Tatiana Tretyakova ~ A 2 – the growing temperature of air at the big stocks of snow in mountains causes a ~ mudflow avalanche: T( A 2 ) = 0,7 ~ A 3 – strong rains and growing temperature of air at the big stocks of snow in mountains ~ cause a mudflow avalanche: T( A 3 ) = 0,8 ~ A 4 – a high level of water in mountain lake, the strong rains, growing temperature of air ~ at the big stocks of snow in mountains cause a mudflow avalanche: T( A 4 ) = 0,9. Besides at fuzzy modeling of statements concerning of threat of mudflow avalanches not only an illegibility of a linguistic variable “ intensity of mudflow avalanches ”, but also other statements used in a submitted example is necessary to take into account: a high level of water in mountain lake; the big stocks of snow; strong rains; growing temperature of air. It is necessary to set those value areas of variables, which influence on the process of formation of mudflow. Start The data on parameters of dangerous natural phenomenon (DNP) Delimitation of the territory subject to threat of the dangerous natural phenomenon Database of the objects located on this territory xi X Identification of set of objects subject to threat of dangerous natural phenomenon Library of scripts The script 1 (the phenomenon of low intensity): A1 {x i X A1 ( x ) 0} x i X i The script N (the phenomenon of catastrophic intensity): A n {x i X An ( x i ) 0} x i X Estimation of loss Models base for calculation of loss Choice of strategy of response Database about cost of protective actions Decision End Figure 1. The block diagram of decision-making about realization of protective actions in conditions of threat of the dangerous natural phenomenon Fuzzy components in the contents of knowledge bases of intelligent decision suport… 165 Start Quantitative estimation of risk R i : PRi C Ri Estimation of the project's expenses C 0i Comparison of values R i and C 0i If R i C 0i No Yes Inclusion to the list of projects - candidates Ki after the quantitative estimation Quality estimation of the project Whether the estimation good is? No Yes Inclusion to the list of projects - candidates Ki after the quality estimation n Choice R i C 0i ) min of the project: M (R i , C 0i ) i 1 End Figure 2. Algorithm of a choice of actions directed on prevention of damage from a dangerous natural phenomenon 5. Fuzzy models for an estimation of the damage caused by the dangerous hydrometeorological phenomenon At existing threat of the dangerous natural phenomenon (flooding, mudflow avalanche, etc.) under its influence can be a territory with the economic objects x i X, i(1, n ) . Among the models used at an estimation of probable damage, there should be models, which will allow determining objects that find oneself under influence of the given natural phenomenon at its predicted intensity. Losses from influence of the dangerous phenomenon on each of objects depend on intensity of the phenomenon. We shall present sets of objects, 166 Tatiana Tretyakova which can appear under influence of the hydrometeorological phenomenon at its different intensity, as fuzzy sets (table 1). Table 1. Fuzzy sets of the objects, which are taking place in a dangerous zone of different intensity of the hydrometeorological phenomenon Intensity of the Fuzzy set of objects in a dangerous zone hydrometeorological phenomenon Small A {x1 / A ( x1 ) x2 / A ( x2 ) ... xn / A ( xn )} or A {xi X A ( xi ) 0} xi X , i (1, n) Average B {x1 / B ( x1 ) x2 / B ( x2 ) ... xn / B ( xn )} or B {xi X B ( xi ) 0} xi X , i (1, n) Large C {x1 / C ( x1 ) x2 / C ( x2 ) ... xn / C ( xn )} or C {x X ( x ) 0} x X , i (1, n) i Catastrophic C i i D {x1 / D ( x1 ) x2 / D ( x2 ) ... xn / D ( xn )} or D {x X ( x ) 0} x X , i (1, n) i D i i ~ ~ ~ ~ It is possible to write down, that A B C D , as A(xi) B(xi) C(xi) D(xi), as is shown in tab. 2. Data in tab. 2 are example representations of a fuzziness of subjective estimation of experts, whether there is a concrete object under influence of the dangerous phenomenon. Table 2. Membership functions of objects in the area subject to danger of mudflow influence NN Objects of the territory subject to danger of mudflow influence x i X, i(1, n ) 1 2 3 ... 10 ... 50 ... n x1 x2 x3 ... x10 ... x50 ... xn Membership funсtion : [0,1] at the appropriate intensity of mudflow: Small Average Large Catastrophic 0,1 0,2 0,1 ... 0,1 ... 0,1 ... 0,2 0,2 0,4 0,2 ... 0,3 ... 0,3 ... 0,4 0,5 0,6 0,3 ... 0,4 ... 0,5 ... 0,7 0,6 0,8 0,5 ... 0,6 ... 0,7 ... 0,8 Fuzzy components in the contents of knowledge bases of intelligent decision suport… 167 6. Summary Acceptance of decisions at the regional level concerning reaction to the dangerous hydrometeorological phenomena by virtue of feature of the hydrometeorological information and geographical features of region frequently occurs to use incomplete and inprecise information. The plan of decision making process about a choice of variant of the action connected to reduction or to prevention of damage from influence of hydrometeorological factors, offered in article, allows to define needs for models of a different kind. The submitted approach to formation of content of knowledge bases of decision support systems with taking into account the hydrometeorological information provides using of fuzzy models. It is connected not only to uncertainty, incompleteness and with imprecise of the most hydrometeorological information, but also with subjectivity of estimations of experts, which knowledge are used at creation of such systems. Fuzzy statements and fuzzy sets can be used for development of rules for knowledge base of decision support systems in view of the hydrometeorological information. The received conclusions will help to make the correct decision concerning a choice of strategy of reaction to dangerous natural phenomena. References [1] Zielona Księga dla Rady Parlamentu Europejskiego, Europejskiego Komitetu Ekonomiczno-Społecznego i Komitetu regionów. Adaptacja do zmian klimatycznych w europie-warianty działań na szczeblu UE. Komisja Wspólnot Eropejskich (KWE), Bruksela, 29.06.2007 (in Polish) [2] Fiuk G., Budziński R.. (1995) Model Systemu Informatycznej Obsługi Miasta Szczecin. W ks.: Systemy Informatyczne w Zarządzaniu Aglomeracjami Miejskimi. PAN IBS, Oddział w Szczecinie, Warszawa-Szczecin (in Polish) [3] Tretyakova T. (2009) Wiedza i modele dla inteligentnych lokalnych składników systemu wspomagania decyzji. Studia i materiały Polskiego Stowarzyszenia Zarządzania Wiedzą Nr 18. PSZW, Bydgoszcz (in Polish) [4] Tretyakova T., Zair A.. (2008) The Structure and Knowledge of the Intelligent System of Warning and Decision’s Support that Includes Local Systems. Polish Journal of Environment Studies, Vol.17, No. 4C. [5] Tretyakova T. (2005). Knowledge base of expert system "HMDecision" in information system of class DSS - the objective approach to designing. Proceeding of 6-th International Conference “the Analysis, forecasting and management in complex systems”, St Petersburg (in Russian) [6] Zadeh L. (1965) Fuzzy sets. Information and Control, vol.8. [7] Zadeh L. (1988) Fuzzy logic. IEEE Transactions on Computers, vol.21, no. 4. [8] Kacprzyk J. (2006) Komputerowe systemy wspomagania decyzji dla potrzeb zarządzania wiedzą. W ks. pod red. R.Kulikowski, Z.Bubnicki, J.Kacprzyk. Systemowekomputerowe wspomaganie zarządzania wiedzą. ELIT, Warszawa (in Polish) [9] Yu X., Kacprzyk J. (2008) Applied Decision Support with Soft Computing, Springer [10] Piegat A. (2001) Fuzzy Modeling and Control, Physica-Verlag Heidelberg, New York [11] Russel S., Norvig P. (2003) Artificial Intelligence, A Modern Approach. Prentice Hall, New Jersej [12] Leonenkov A. (2003) Fuzzy modeling in the environment MATLAB and fuzzyTECH. BHV- Petersburg (in Russian) Strategia inwestowania na kontraktach terminowych na WIG20 oparta na koncepcji Saidenberga Antoni Wiliński Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: The paper presents a trading strategy, tested using historical data, aimed at trading WIG20based futures, inspired by a concept proposed by Richard Saidenberg. The strategy is based on simple technical analysis rules, can be also treated as a pattern recognition method. A primary goal consists in finding a pattern allowing for detecting a reversal point, basing on the lagged Bollinger band. The strategy has been verified using several years long time series of WIG20-based futures quotes. Satisfactory results were obtained, considering prediction accuracy and practical usability. Keywords: trading strategies, financial engineering, pattern recognition, technical analysis, financial markets, forecasting, computational intelligence, financial mathematics, WIG20 1. Wprowadzenie Celem pracy jest przetestowanie na danych historycznych pewnej, istotnie zmodyfikowanej przez autora, koncepcji zaprezentowanej przez amerykańskiego eksperta rynków finansowych Richarda Saidenberga podczas wywiadu z innym znanym praktykiem giełdowym Joe Krutsingerem, opublikowanego w pracy tego ostatniego [10]. Koncepcja ta należy do grupy tzw. prostych reguł analizy technicznej, wyekstrahowanych spośród powtarzalnych wzorców w szeregach czasowych instrumentów finansowych. Najczęściej do reguł tych zalicza się grupy lub sekwencje warunków wykorzystujących rozmaite wskaźniki oparte na średnich kroczących, różnicach średnich, ich pierwszych pochodnych, odchyleniach standardowych (np. związanych z istotną w niniejszej pracy wstęgą Bollingera) czy punktach zwrotnych (pivot points). Friesen, Weller i Dunham [8] twierdzą, że metody te były przez wiele lat lekceważone przez środowisko akademickie pomimo częstego stosowania ich przez praktyków giełdowych. Cai B., Cai C. i Keasey [3] zauważyli skuteczność zarówno predykcyjną jak i inwestycyjną najprostszych reguł opartych na różnicach średnich kroczących i ich pochodnych, a także poziomach zmiany kierunku ruchu ceny (punktach zwrotnych). Tian, Wan i Guo [17] stwierdzili efektywność niektórych prostych reguł na jednych rynkach i całkowitą ich nieprzydatność na innych. Rozróżniali pod tym względem rynki dojrzałe i rosnące (np. amerykański i w szczególności w opozycji do niego – rynek chiński). Do przekonanych zwolenników prostych reguł należą także tacy badacze jak Brock i Lakonishok [2], LeBaron [2,11], Gencay [9], czy też wielu wybitnych praktyków takich jak najważniejszy w niniejszej pracy – Richard Saidenberg, Joe Krutsinger, Larry Williams, Joseph DiNapoli czy Michael Connor [10]. Niemal wszystkie próby podejmowane przez teoretyków i praktyków rynku zmierzają do pewnego operacyjnego celu, którym jest odróżnienie trendu od cyklu, a co za tym idzie, Metody Informatyki Stosowanej, nr 2/2009, s. 169-176 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 170 Antoni Wiliński znalezienie punktów zwrotnych w szeregu czasowym opisującym obserwowany instrument finansowy. Punkt zwrotny to lokalne maksimum lub minimum. Pojecie „lokalne” jest oczywiście bardzo względne i zależy od branego pod uwagę horyzontu czasowego. Po głębszym namyśle, można stwierdzić, że to istota predykcyjnego powodzenia. We wspomnianym wywiadzie z Joe Krutsingerem Richard Saidenberg opisuje strategię zbudowaną na pomyśle otwierania pozycji na wstędze Bollingera, ale przesuniętej o 10 kroków wprzód. Wstęga, według niego, zbudowana winna być na 3 okresowej średniej kroczącej. Saidenberg rekomenduje rynek dobowy dla USD/CHF do testowania tego pomysłu. Wstęgi winny być oddalone od średniej o 2 odchylenia standardowe obliczone na ostatnich 15 wartościach zamknięć świec. Zamknięcie pozycji winno nastąpić na wstędze przeciwnej. Tyle dokładnie zaproponował Saidenberg. Wdrożenie tego pomysłu wymaga oczywiście implementacji i prób, także poszukiwania odpowiednich rynków (być może innych niż proponowany przez Saidenberga). Z niniejszej pracy wynika, że Saidenberg, co do szczegółów, głęboko się myli. Jego ogólny schemat może jednak, po istotnych modyfikacjach, stać się inspiracją rozwiązania prowadzącego do uzyskania obiecujących wyników. Wstęgą Bollingera nazywane jest, uznane za bardzo praktyczne, narzędzie analizy technicznej rynków zdefiniowane przez Johna Bollingera pod koniec ubiegłego wieku [19]. Wstęga Bollingera składa się z trzech krzywych: środkowej – będącej n-okresową średnią kroczącą, górnej – położonej ponad krzywą środkową w odległości wyznaczonej przez kkrotność n-okresowego odchylenia standardowego, oraz dolnej – położonej poniżej środkowej krzywej w odległości wyznaczonej przez k-krotność n-okresowego odchylenia standardowego. Wstęga Bollingera jest często stosowanym i użytecznym środkiem oceny względnego położenia kursu. W praktyce obserwuje się odległość górnej wstęgi od dolnej i przez to określa się zmienność rynku. Jeżeli odległość tych krzywych, czyli zmienność, jest duża, wówczas dobrą strategią jest sprzedawanie przy górnej wstędze i kupowanie przy dolnej. Jeśli wstęgi są bardzo blisko siebie, znaczy to, że rynek jest uspokojony i należy raczej poczekać na oddalenie się krzywych od siebie. Najczęściej przyjmuje się n=20 (dla obliczenia średniej kroczącej) i k=2; Saidenberg proponuje n=3 i k=2, ale dla odchylenia standardowego obliczonego dla innej liczby okresów liczonych wstecz od chwili bieżącej – ns =15. Badania przeprowadzone przez autora według tych parametrów np. na kilkudziesięciu tysiącach świec godzinowych podstawowej pary walutowej EUR/USD nie dały dobrych rezultatów. Przeprowadzono w związku z tym badania w przestrzeni parametrów poszukując optymalnych ich wartości. Uzyskano wówczas znaczną poprawę wyników. Zrezygnowano także z zamykania otwartych pozycji na przeciwległej granicy wstęgi Bollingera, zastępując ten warunek zamknięciem po ustalonej (niewielkiej) liczbie kroków. Poszukując innych rynków do przetestowania tej skorygowanej strategii wybór autora padł na naturalny dla polskiego środowiska, wielokrotnie poddawany rozmaitym próbom, testom i modelom, indeks WIG20 – najważniejszy polski instrument finansowy. 2. Opis strategii Niech więc będą dane wyniki próbkowania rynku w postaci macierzy danych Ci,j – dla i=1, …, N (liczba pomiarów), j=1, …, 4 (kolumny odpowiadające wartościom świecy OHLC). W autorskiej strategii inspirowanej przedstawionym wcześniej pomysłem Richarda Saidenberga rozbudowano przestrzeń parametrów różnicując sposób inwestowania po obu stronach rynku. To oczywista zmiana koncepcji pierwotnej stanowiącej inspirację dla autora. Wybór tych, a nie innych parametrów strategii jest rezultatem wielu prób symulacyj- Strategia inwestowania na kontraktach terminowych na WIG20… 171 nych. Inne parametry stosowano dla pozycji długich i inne dla krótkich. W związku z tym w strategii występuje 9 parametrów: SLs – to bariera Stop Loss zamknięcia pozycji krótkiej w sytuacji przekraczania dopuszczalnej przez inwestora straty; SLl – to bariera Stop Loss zamknięcia pozycji długiej, w podobnej sytuacji, dotyczącej przekraczania dopuszczalnej przez inwestora straty; Lkr – liczba kroków wprzód, po której nastąpi przymusowe zamknięcie pozycji, o ile nie zostanie wcześniej zamknięta na barierach SL; Lcof – liczba kroków wstecz, dla której obliczane jest odchylenie standardowe badanego instrumentu; Ks – współczynnik szerokości wstęgi Bollingera – to mnożnik odchylenia standardowego od średniej. Bariera górna umieszczona jest w odległości Ks razy odchylenie standardowe od średniej kroczącej; Kl – współczynnik szerokości wstęgi Bollingera – to mnożnik odchylenia standardowego od średniej. Bariera dolna umieszczona jest Kl razy odchylenie standardowe od średniej kroczącej; bs – bufor neutralizujący drgania ceny o wysokich częstotliwościach dla pozycji krótkich. To dodatkowa wartość przewyższenia bariery górnej konieczna dla uruchomienia pozycji krótkiej po powrocie do środka wstęgi; bl – bufor neutralizujący drgania ceny o wysokich częstotliwościach dla pozycji długich. To dodatkowa wartość przekroczenia w dół bariery dolnej; Lw – liczba kroków, o którą przesuwa się wprzód wstęgi Bollingera. Algorytm będący podstawą do implementacji opisuje następująca sekwencja kroków: 1. W i-tej chwili czasu ti niech będzie zamknięta świeca Ci,j i znane wszystkie poprzednie wartości Ci,j dla i = i-1, i-2, …, i- Lcof oraz j=1, …, 4; 2. W chwili bieżącej ti należy obliczyć średnią kroczącą z 3 ostatnich zamknięć: MA3i = (Ci,4 + Ci-1,4 + Ci-2,4) / 3; 3. Biorąc pod uwagę Lcof ostatnich wartości zamknięcia Ci,4 dla i = i, i-1, i-2, … , i-Lcof należy obliczyć ich odchylenie standardowe S(i, Lcof); 4. W odległości Ks · S(i, Lcof) powyżej MA3i należy ustalić barierę górną wstęgi Bollingera: G i = MA3i + Ks · S(i, Lcof), i odpowiednio w odległości Kl · S(i, Lcof) poniżej, barierę dolną: Di = MA3i – Kl · S(i, Lcof); 5. Mając ustalone wartości wstęgi Bollingera dla całego szeregu czasowego należy dla chwili bieżącej określić wartości przesuniętej wstęgi Bollingera, biorąc jej wartości sprzed Lw kroków: Gp i = G i-Lw , Dp i = D i-Lw Sytuacje opisane w pierwszych krokach algorytmu przedstawiono na rys. 1. 172 Antoni Wiliński Instrument bazowy na tle przesunietej wstegi Bollingera 3200 bariera górna 3100 Instrument bazowy - WIG20 3000 2900 2800 2700 bariera dolna 2600 2500 0 5 10 15 20 25 Rysunek 1. Na wykresie przedstawiono fragment szeregu czasowego dobowego WIG20 (czarna ciągła krzywa) na tle przesuniętej wstęgi Bollingera (krzywe przerywane – górna i dolna). Na wykresie widać charakterystyczne, odkryte przez Bollingera zmierzanie bieżącego kursu (krzywa czarna) do środka wstęgi. 6. Jeżeli wartość zamknięcia świecy zakończonej w chwili bieżącej jest większa niż wartość bariery górnej przesuniętej wstęgi Bollingera, przesuniętej dodatkowo w górę o wartość bs, to spełniony jest warunek otwarcia pozycji krótkiej ws1i = 1: Jeżeli Ci,4 > Gpi + bs to ws1i = 1 inaczej ws1i = 0 Odpowiednio – jeżeli wartość zamknięcia ostatniej świecy jest niższa niż dolna bariera przesuniętej wstęgi Bollingera pomniejszona o bufor bl , to, podobnie jak wyżej, spełniony jest warunek otwarcia pozycji długiej wl1i = 1: Jeżeli Ci,4 < Dpi – bl to wl1i = 1 inaczej wl1i = 0 Pozycje, po spełnieniu warunku otwarcia, otwierane są na poziomie zamknięcia ostatniej świecy (czyli w chwili bieżącej). 7. Po spełnieniu warunku otwarcia pozycja jest zamykana po spełnieniu jednego z trzech następujących warunków: po upływie zadanej dopuszczalnej liczby świec Lkr licząc od świecy, w której nastąpiło otwarcie pozycji. Wówczas zwrot (zysk lub strata) z pozycji np. krótkiej wynosi: Ri = Ci,4 – Cj,4 , dla j = i + Lkr gdzie i – indeks świecy, w której nastąpiło otwarcie pozycji; po osiągnięciu przez kurs bariery Stop Loss (bariera SL ma wartość ujemną). Wówczas Ri = SL gdy (Ci,4 – Cj,2) < SL dla j < i + Lkr; Strategia inwestowania na kontraktach terminowych na WIG20… 173 po osiągnięciu przez kurs zamknięcia kolejnej rozpatrywanej świecy bariery Dpj . Wówczas: Ri = Ci,4 – Cj,4, gdy Cj,4 < DpBo j dla j = {i, i+1, …, i+ Lkr }. Podobnie dla pozycji długich. 8. Po każdej i-tej świecy obliczano zysk Ri i zysk skumulowany z dotychczasowych kroków . W zysku tym uwzględniano koszty transakcji przyjmując, że spread dla indeksu WIG20 wynosi 2 jednostki indeksowe (tyle wynosi przeciętnie spread obserwowany np. w popularnej platformie domu maklerskiego bossa.pl [20] dla kontraktu terminowego na WIG20). Dodatkowo, platformy transakcyjne w Polsce pobierają zazwyczaj stałe koszty od otwarcia i zamknięcia pozycji – komentarz do tych kosztów będzie zamieszczony w końcowej części artykułu. Badania przeprowadzono na zbiorze danych o liczności ok. 1000 świec dobowych indeksu WIG20 (ok. 4 lat). 3. Opis badań Najistotniejszym wynikiem przeprowadzonych badań symulacyjnych jest wykres narastania kapitału przedstawiony na rys. 2. Wyniki mierzono w jednostkach indeksowych WIG20. Wykres wskazuje na dość płynny systematyczny wzrost zysku skumulowanego. Zysk w skali owych ok. 4 lat jest rzędu 6500 punktów indeksu WIG20, czyli ponad 1500 na rok. Dokładny wynik końcowy to Zk = 6491 punktów. Maksymalne obsunięcie wystąpiło na poziomie 793 punktów, a uproszczony współczynnik Sharpe’a1 (stosunek wartości średniej zwrotów z otwartych pozycji z uwzględnieniem zerowych przyrostów w przypadku braku sygnału do otwarcia pozycji, do odchylenia standardowego tych zwrotów) wyniósł Sh=0.1217. To wynik raczej dobry dla tak długiego horyzontu. O jakości strategii świadczą też jej inne cechy związane z ryzykiem. Wspomniane obsunięcie maksymalne przekracza wprawdzie 10% wartości końcowej, jednak przez wielu inwestorów taki wynik uważany jest za bardzo przyzwoity. O innych korzystnych właściwościach strategii świadczą także takie wskaźniki jak: duża moc strategii wyrażona liczbą otwartych pozycji. W trakcie symulacji otwarto 703 pozycje, w tym 316 długich i 387 krótkich. Stanowi to 69.3% spośród 1014 testowanych sytuacji. Oznacza to, że prawie dwie na trzy świece stwarzają sytuację sprzyjającą otwarciu długiej lub krótkiej pozycji; występuje duża symetria otwarć (prawie jednakowa liczba długich i krótkich pozycji). Rynek przy tym badany był przez 4 lata i pomimo widocznych dwóch długoterminowych trendów nie widać związku tych zmian z krzywą zysku skumulowanego. Badania przeprowadzono dla ustalonych parametrów strategii wspomnianych we wstępie. Określenie tych parametrów wymagało wielu dodatkowych prób polegających na przeszukiwaniu racjonalnie zdefiniowanej przestrzeni argumentów. 1 W kryterium Sharpe’a powinno uwzględniać się także tzw. stopę zwrotu wolną od ryzyka, tu pominiętą. 174 Antoni Wiliński Zysk skumulowany - punkty indeksowe WIG20 7000 6000 5000 4000 3000 2000 1000 0 -1000 0 100 200 300 400 500 600 700 800 900 1000 Rysunek 2. Krzywa zysku skumulowanego. Na wykresie uwzględnione są zyski zarówno z długich, jak i krótkich pozycji. Wykres indeksu WIG20 w ostatnich 1014 świecach dobowych 4000 3500 3000 2500 2000 1500 1000 0 200 400 600 800 1000 1200 Rysunek 3. Wykres zmian wartości zamknięć świec dobowych indeksu WIG20 dla ostatnich 1014 świec (do 10.09.2009) Ostatecznie symulacja, której wyniki przedstawione są na rys. 2, przeprowadzona została dla następujących wartości argumentów: Stop Loss dla strony długiej SLl = 36; dla krótkiej SLs = 45; Lkr – liczba kroków wprzód, dobrano Lkr = 28. To, dla rozważanych tu szybkozmiennych procesów podejmowania decyzji, stosunkowo długi horyzont (oczywiście badano także inne warianty, niewiele gorsze wyniki uzyskiwano także dla krótkich horyzontów zamknięcia pozycji). Lcof – liczba kroków wstecz, dobrano Lcof = 4. To zaskakująco duża zmiana wobec sugestii Saidenberga rekomendującego Lcof = 15. Ks i Kl – współczynniki szerokości wstęgi Bollingera – to mnożnik odchylenia standardowego od średniej. Wstęga górna umieszczona jest Ks razy odchylenie standardowe od średniej kroczącej, a wstęga dolna Kl razy odchylenie standardowe. Optymalne wartości Strategia inwestowania na kontraktach terminowych na WIG20… 175 tych współczynników są zaskakująco różne. Dla badanej przestrzeni uzyskano Ks = 2,6 i Kl = 1,5. Lw – liczba kroków przesunięcia wprzód wstęgi Bollingera. Dobrano Lw = 18. Także ta wartość zdecydowanie różni się od sugerowanej przez Saidenberga zalecającego Lw = 10. Ostatnim parametrem przestrzeni jest bufor przesuwający granice wstęgi Bollingera na zewnątrz – górną do góry o bs = 9 i dolną w dół o bl = 7. Dla tak dobranych parametrów przeprowadzono symulację, której najważniejszym wynikiem jest wykres narastania kapitału przedstawiony na rys. 3. Badania przeprowadzono w środowisku Matlab z macierzą danych zawierającą ponad tysiąc świec dobowych do 10.09.2009. 4. Wnioski Uzyskane wyniki wskazują na dość dobrą przewidywalność prognoz, ale jednocześnie zwrócić należy uwagę na znaczną asymetrię w wartościach parametrów dotyczących obu stron rynku. Należy przewidywać, że wartości tych parametrów nie będę stabilne w dłuższych okresach i w związku z niestacjonarnością rynków, rozwiązaniem pod względem predykcyjnym lepszym będzie sukcesywna zmiana tych parametrów. Wymaga to opracowania odrębnej strategii, takiej, w której opisany powyżej algorytm byłby komponentem większego, nadrzędnego systemu podejmowania decyzji. Najistotniejszym obszarem przyszłych modyfikacji strategii byłoby zapewne określenie wielkości zbioru uczącego (pewnego fragmentu szeregu czasowego od chwili bieżącej wstecz). Badanie właściwości tego przeszłego szeregu pozwalałoby na określenie optymalnych parametrów strategii. Drugim obszarem badań byłoby określenie wielkości zbioru testowego (szeregu czasowego przyszłych przebiegów), w ramach którego stosowane byłyby skuteczne transakcje inwestycyjne wykorzystujące parametry określone na odcinku uczącym. Tak więc podsumowując, przeprowadzone badania na stałym wybranym zbiorze danych nie są w najmniejszym stopniu gwarancją uzyskania dobrych wyników prognoz, pozwalają jednak na postawienie tezy, ze istnieje zapewne taki, najlepszy stosunek wielkości zbioru uczącego do testowego, który umożliwi skuteczne zarabianie na udanych predykcjach. Badania dowodzą bowiem, że istnieją parametry strategii, umożliwiające stosunkowo płynny wzrost kapitału skumulowanego. Czy z praktycznego punktu widzenia osiągnięty wynik może być interesujący dla przeciętnego inwestora? Oczywiście tak, dla przeciętnego. W Polsce raczej nie publikuje się rezultatów porównań rozmaitych strategii inwestycyjnych, lub w ogóle nie ujawnia się skutecznych strategii (może z wyjątkiem konkursów ogłaszanych przez xtb.pl). Przekładając jednak przedstawione tu rezultaty na konkretne wyniki finansowe można byłoby je interpretować następująco. Wynik ok. 6500 punktów indeksowych na WIG20 oznaczałby w na rynku kontraktów terminowych, gdzie stosowana jest dźwignia równa 10, przychód końcowy wynoszący 65000 PLN (w ciągu ok. 3 lat). Największe obsuniecie kapitału wynosiłoby ok. 8000 PLN (dokładnie 793 punkty indeksowe). Jeżeli bardzo ostrożny inwestor, dysponujący kwotą np. 100 tys. PLN grałby wg przedstawionej strategii wyłącznie jednym kontraktem, to uzyskałby po trzech latach wynik 165 tys. PLN, mając największe obsuniecie rzędu 8000 PLN i płacąc prowizje w wysokości rzędu 14 tys. PLN (ok. 700 transakcji po 20 PLN). Wynik końcowy to ok. 150 tys. PLN z posiadanych 100 tys. To ok. 17% rocznie. A przecież są inwestorzy skłonni do większego ryzyka. Wynik należy więc uznać za obiecujący. 176 Antoni Wiliński Bibliografia [1] Ball P. Masa krytyczna. Jak jedno z drugiego wynika. Insignis. Kraków 2007 [2] Brock W., Lakonishok J., LeBaron B. Simple technical trading rules and stochastic properties of stock returns. Journal of Finance 47(1992), 1731-1764. [3] Cai B. M., Cai C. X., Keasey K. Market Efficiency and Returns to Simple Technical Trading Rules: Further Evidence form US, UK, Asian and Chinese Stock Markets. AsiaPacific Financial Markets, Springer 2005, 45-60. [4] Carolan C. Kalendarz spiralny. WIG-Press, Warszawa 1996. [5] Fama E. Efficient capital markets. Journal of Financial Economics 11 (1991) 15751617. [6] Fama E. Market efficiency, long-term returns, and behavioral finance. Journal of Finacial Economics 49 (1998) 283-306 [7] Fischer R. Liczby Fibonacciego na giełdzie. WIG-Press, Warszawa 1996. [8] Friesen G. C. F, Weller P., Dunham L. M. Price trends and patterns in technical analysis: A theoretical and empirical examination. Journal of Banking & Finance 33(2009) 1089-1100. [9] Gencay R. Linear, non-linear and essential foreign exchange rate prediction with simple technical trading rules. Journal of International Economics 47(1999) 91-107. [10] Krutsinger J. Systemy transakcyjne. Sekrety mistrzów. Wig-Press, Warszawa 1999. [11] LeBaron B. Technical trading rules and regime shifts in foreign exchange intervention. Journal of International Economics 49(1999), 125-143. [12] Muriel A. Short-term predictions in forex trading. Physica A 344 (2004) 190–193 [13] Pedrycz W. Computational Intelligence: An Introduction. CRC Press 1997. [14] Raghuraj R. K., Lakshminarayanan S. Variable Predictive Models – A new multivariate classification approach for pattern recognition application. Elsevier, Pattern Recognition vol. 42/1, 2009 p.7-17 [sciencedirect.com]. [15] Satchwell Ch. Pattern Recognition and Trading Decisions. McGraw Hill, New York 2005. [16] Schwager J. D. Analiza techniczna rynków terminowych. WIG-Press, Warszawa 2002. [17] Tian G. G., Wan G. H., Guo M. Market efficiency and the returns to simple technical trading rules: New evidence from U.S. equity makets and Chinese equity markets. AsiaPacific Financcial Markets. 9(2002), 241-288. [18] Wiliński A. GMDH - Metoda grupowania argumentów w zadaniach predykcji na potrzeby handlu automatycznego na rynkach finansowych. Wydawnictwo IBS PAN, seria Badania Systemowe t. 65, Warszawa 2009. [19] www.investopedia.com [dostęp sierpień 2009] [20] www.bossa.pl [dostęp sierpień 2009] Porównanie parametrycznej i nieparametrycznej metody obliczania krzywej ROC na przykładzie zbioru sygnałów elektroretinograficznych Marek Włodarski Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Elektryczny Abstract: In this paper an introduction to two-class ROC analysis with its application for medical decision making is presented. ROC graph is a simple method to show classifier’s performance by visualization of the trade-off between specificity and sensitivity, but also the area under ROC curve (AUC) is a measure of the test’s ability to discriminate between two alternative states. In this article two approaches (parametric and non-parametric) for ROC curve generation are compared on pattern electroretinogram (PERG) data set. The ROC analysis can be adopted in the machine learning as the technique for comparing and organizing decision systems. Keywords: classification,ROC analysis, pattern electroretinogram 1. Wstęp Rozwój dziedziny automatycznego rozpoznawania wzorców sprawił, że projektant systemu wspomagania decyzji dysponuje szerokim spektrum algorytmów klasyfikacyjnych [1]. Jeśli dodatkowo uwzględni różne zbiory zmiennych wejściowych, to uzyska wiele wariantów systemu rozpoznawania. Spośród nich musi dokonać wyboru tego, który zapewni najlepszą realizację określonego zadania. Celem niniejszego artykułu jest przedstawienie praktycznych aspektów stosowania analizy ROC jako metody oceny jakości reguł decyzyjnych. Organizacja tej pracy jest następująca. Rozdział 2 wprowadza podstawowe pojęcia związane z analizą ROC. Rozdział 3 opisuje dwa podejścia do obliczania krzywej ROC: parametryczne i nieparametryczne. Zaprezentowaniu pierwszego posłużył model binormalny. Więcej uwagi poświęcono nieparametrycznemu wyznaczaniu krzywej ROC, jako bardziej rozpowszechnionemu w praktyce. Opis uzupełniono dwoma przykładami numerycznymi, które mają na celu ułatwić zrozumienie istoty tej metody, a szczególnie związku pola pod krzywą ROC ze statystyką Wilcoxona. Niewielka liczebność „sztucznych” zbiorów danych pozwala prześledzić wykonywane obliczenia. W dwóch kolejnych rozdziałach przedstawiono praktyczne zastosowanie analizy ROC w zadaniu klasyfikacji sygnałów biomedycznych, na przykładzie sygnału PERG. W rozdziale 4 krzywe ROC służą do graficznego wskazania optymalnej reguły decyzyjnej wykorzystującej pojedynczą cechę przebiegu PERG, a jednocześnie pole pod krzywą ROC pozwala porównać zdolności dyskryminacyjne badanych cech. W rozdziale 5 przedstawiono bardziej złożone reguły klasyfikacyjne, które mogą być ocenione z wykorzystaniem krzywej ROC. Metody Informatyki Stosowanej, nr 2/2009 (19), s. 177-192 Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki ISSN 1898-5297 http://pan.wi.zut.edu.pl 178 Marek Włodarski 2. Wprowadzenie do analizy ROC Analiza ROC przeważnie jest używana do opisu klasyfikatorów dychotomicznych, które dokonują wyboru między dwoma alternatywnymi klasami. W testach medycznych jest to stwierdzenie schorzenia lub jego braku u badanego pacjenta. Zwyczajowo klasa, która wiąże się z bardziej drastyczną akcją jest nazywana pozytywną, a druga – negatywną. W rozpoznawaniu dwuklasowym mogą zaistnieć cztery sytuacje, odpowiadające czterem różnym parom (rzeczywistość, decyzja). Liczebności ich występowania zapisuje się w tablicy kontyngencji (inaczej nazywanej macierzą pomyłek) o wymiarach 22 (tabela 1). Zastosowano anglojęzyczną terminologię spotykaną w większości prac, też polskich np. [2]. Tabela 1. Tablica kontyngencji w rozpoznawaniu dwuklasowym Rzeczywista klasa Przewidywana klasa Negatywna pozytywna TN – true negative FP – false positive FN – false negative TP – true positive negatywna pozytywna Tabela 2. Względne miary jakości rozpoznawania dwuklasowego true negative rate false positive rate TN tnr N Neg fpr FP N Neg specyficzność spec 1 – specyficzność false negative rate true positive rate FN fnr N Pos tpr 1 – czułość TP N Pos czułość sens Jeśli liczebność przypadków rzeczywiście negatywnych zostanie oznaczona jako N Neg TN FP , a rzeczywiście pozytywnych – jako N Pos FN TP , to można zdefiniować względne miary jakości klasyfikacji (tabela 2). Podstawową miarą jest skuteczność (dokładność, ang. accuracy) acc, definiowana jako prawdopodobieństwo trafnego rozpoznania obiektu pochodzącego z badanych populacji. Empirycznie jest ona wyznaczana na podstawie próby testowej, jako frakcja trafnie rozpoznanych obiektów wśród wszystkich testowanych obiektów, czyli acc TN TP TN FP FN TP (1) Skuteczność acc jest średnią ważoną specyficzności (tnr) i czułości (tpr), zależną od częstości występowania obiektów z obu klas (Neg i Pos) w zbiorze testowym. acc Neg tnr Pos tpr gdzie Neg N Neg N Neg N Pos i Pos N Pos N Neg N Pos (2) Porównanie parametrycznej i nieparametrycznej metody obliczania krzywej ROC… 179 Posługiwanie się wyłącznie skutecznością przy ocenie testu może być mylące, co ma poważne konsekwencje szczególnie wtedy, gdy jedna z błędnych decyzji diagnostycznych jest obciążona większym kosztem od drugiej. Przykładowo, nie rozpoznanie schorzenia ma zwykle poważniejsze skutki od podjęcia fałszywego alarmu w przypadku pacjenta zdrowego. Uzasadnia to potrzebę opisu metody diagnostycznej przy pomocy pary (spec, sens), tym bardziej, że znając prawdziwe liczebności obu klas można obliczyć acc (2). Tą parę przedstawia się graficznie w przestrzeni ROC zwyczajowo określonej jako (fpr, tpr), czyli (1 – spec, sens). Można w niej wskazać kilka charakterystycznych punktów: punkt (0, 1), reprezentujący idealny klasyfikator, trafnie rozpoznający wszystkie obiekty; punkt (0, 0), reprezentujący regułę przyporządkowującą wszystkie obiekty do klasy negatywnej („Zawsze Neg”); punkt (1, 1), reprezentujący regułę przyporządkowującą wszystkie obiekty do klasy pozytywnej („Zawsze Pos”); przekątna łącząca punkty (0, 0) i (1, 1), która reprezentuje klasyfikatory dokonujące losowego wyboru jednej z dwóch klas. Wiele metod klasyfikacyjnych tworzy zmienną wyjściową x w skali co najmniej porządkowej, które dopiero następnie jest zamieniana na binarną zmienną (negatywny – 0, pozytywny – 1) według reguły Neg gdy x t d x , Pos gdy x t (3) w której parametr t jest nazywany wartością progową. Porównując reguły wykorzystujące różne wartości t obserwuje się wymianę specyficzności na czułość. Podwyższenie progu t czyni klasyfikator bardziej konserwatywnym, tj. wymagającym silniejszych przesłanek by zaklasyfikować obiekt jako pozytywny. W wyniku obniżenia progu t uzyskuje się klasyfikator bardziej liberalny, który przy słabszych przesłankach przyporządkowuje obiekt do pozytywnych. Na potrzeby prezentacji z rys. 1 posłużono się teoretycznym przykładem dwóch klas, dla których cecha x ma rozkład normalny, odpowiednio N(–1, 1) dla negatywnych i N(1, 1) dla pozytywnych. Na wykresie pogrubiona krzywa, która reprezentuje reguły uzyskane przy różnych wartościach progowych t, jest nazywana krzywą operacyjno-charakterystyczną odbiornika [3] lub po prostu krzywą ROC (ang. receiver operating characteristic curve). Linie prostopadłe do osi układu współrzędnych reprezentują reguły o równej specyficzności i czułości. Ułatwia to wskazanie reguły minimalizującej jeden z rodzajów dwóch błędów (fpr lub fnr) przy ustalonej, nieprzekraczalnej wartości drugiego (kryterium NeymanaPearsona). W przestrzeni ROC można porównywać nie tylko wartości specyficzności i czułości, ale również inne miary, poprzez wykreślenie odpowiednich linii izometrycznych [4, 5]. Zostanie to przedstawione na przykładzie skuteczności. Reguły o równej wartości skuteczności acc, tworzą w przestrzeni ROC krzywą opisaną równaniem (4) tpr Neg acc Neg fpr Pos Pos (4) Jest to funkcja liniowa, której nachylenie zależy od ilorazu częstości Neg Pos . Dla konkretnego zbioru danych ten iloraz jest ustalony, więc linie iso-accuracy tworzą rodzinę 180 Marek Włodarski równoległych prostych. Im dana prosta leży bliżej lewego górnego rogu przestrzeni, tym wyższej skuteczności odpowiada. a) b) Krzywa ROC idealny lne libera Krzywa ROC Neg Zawsze Pos Pos Pos sens e lo so w ik at or y 1 Neg 3 Pos kl as yf konser watywn e sens Neg 1 3 Zawsze Neg 1 - spec 1 - spec Rysunek 1. Krzywa ROC: (a) charakterystyczne punkty przestrzeni ROC; (b) punkty maksymalnej skuteczności przy różnych ilorazach częstości występowania klas. Specyficzność i czułość nie zależą od częstości Neg i Pos, więc ta sama krzywa ROC może posłużyć do wskazania reguł o najwyższej skuteczności dla różnych proporcji występowania obiektów negatywnych i pozytywnych. Na rys. 1b przedstawiono trzy takie przypadki. Gdy zbiorze danych negatywne obiekty przeważają nad pozytywnymi, maksymalną skuteczność da reguła konserwatywna, w przeciwnym przypadku – liberalna. Wszystkie potencjalne (dla różnych częstości Neg i Pos) punkty największej skuteczności leżą na otoczeniu wypukłym (ang. convex hull) krzywej ROC. 3. Metody wyznaczania krzywej ROC Przy wyznaczaniu krzywej ROC są możliwe dwa podejścia: parametryczne i nieparametryczne. Parametryczne zakłada kształt rozkładów i dokonuje estymacji jego parametrów. Ilustracją jego stosowania jest przykład dwóch rozkładów o znanych parametrach zamieszczony w poprzednim rozdziale. Nieparametryczne (model-free) polega na wyznaczeniu krzywej ROC bezpośrednio ze zbioru danych. 3.1. Parametryczne wyznaczanie krzywej ROC Typowym przykładem parametrycznego podejścia do wyznaczania krzywej ROC jest metoda wykorzystująca model binormalny [6, 7]. Zakłada on, że dla każdej z klas rozkład cechy x jest rozkładem normalnym, tj. zbiór obiektów negatywnych jest opisany rozkładem N Neg , Neg , a pozytywnych N Pos , Pos . Wówczas wartość tpr można wyrazić w funkcji fpr jako tpr a b 1 fpr (10) Porównanie parametrycznej i nieparametrycznej metody obliczania krzywej ROC… gdzie a 181 Pos Neg jest różnicą średnich dwóch grup, odniesioną do odchylenia standardo Pos wego pozytywnych, b 0 jest stosunkiem odchyleń standardowych, 1 jest dystrybuantą standaryzowanego rozkładu normalnego, a 1 – funkcją do niej odwrotną. Wartość AUC, czyli pole pod krzywą ROC, wyraża się równaniem a AUC 2 1 b Neg Pos 2 2 Pos Neg (11) Praktyczne wyznaczenie krzywej ROC polega na dyskretyzacji fpr i obliczeniu odpowiadających wartości tpr z równania (10) [7]. Wartości progowe t, odpowiadające punktom na krzywej nie są jawnie określone. Można je wyznaczyć na podstawie wartości fpr jako: t 1 fpr Neg Pos (12) 3.2. Nieparametryczne wyznaczanie krzywej ROC dla skończonego zbioru danych bez powtórzeń Ta część ma na celu przedstawienie znaczenia wyników uzyskiwanych podczas nieparametrycznego wyznaczania krzywej ROC. Jeśli chodzi o praktyczny aspekt obliczeniowy, to wydajny algorytm został przedstawiony przez Fawcetta [8]. Przedstawienie metody nieparametrycznej wymaga skończonego zbioru obiektów należących do dwóch klas pozytywnej i negatywnej. Utworzono grupy o małej liczebności (tabela 3), w celu łatwiejszego śledzenia wykonywanych działań. Tabela 3. Zbiór 10 obiektów bez powtórzeń Wartość cechy x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Ranga r 1 2 3 4 5 6 7 8 9 10 Rzeczywista klasa y Neg Neg Neg Pos Pos Neg Pos Neg Pos Pos Punkty tworzące krzywą ROC będą wyznaczone przez sprawdzenie wszystkich przyporządkowań, jakie można osiągnąć regułą (3) stosując różne wartości progowe t. Zbiór 10 różnych wartości można podzielić jedynie na 11 różnych sposobów, które zestawiono w tabeli 4. Reguła (3) przyporządkowuje obiekt opisany cechą x t do zbioru negatywnych, więc 10 podziałów można uzyskać stosując wartości ze zbioru danych jako wartości progowe. Jedynie regułę „Zawsze Pos“ tworzy się ustalając wartość progową równą dowolnej mniejszej wartością od minimalnej w zbiorze danych. Wyznaczone pary (tpr, fpr) posłużyły do wykreślenia krzywej ROC na rys. 2. Linią kropkowo-kreskową zaznaczone otoczenie wypukłe krzywej ROC. 182 Marek Włodarski Tabela 4. Wszystkie możliwe podziały jedną wartością progową 10-elementowego zbioru obiektów z tabeli 3 (bez powtórzeń zmiennej niezależnej) wraz z miarami jakości klasyfikacji. Pogrubieniem zaznaczono trafne rozpoznania. Podziały zbioru, gdy regułą przyporządkowującą obiekt do pozytywnych jest x r y 0.1 1 0 0 0 0 0 0 0 0 0 0 0 1 0.2 2 0 0 0 0 0 0 0 0 0 0 1 1 0.3 3 0 0 0 0 0 0 0 0 0 1 1 1 0.4 4 1 0 0 0 0 0 0 0 1 1 1 1 0.5 5 1 0 0 0 0 0 0 1 1 1 1 1 0.6 6 0 0 0 0 0 0 1 1 1 1 1 1 0.7 7 1 0 0 0 0 1 1 1 1 1 1 1 0.8 8 0 0 0 0 1 1 1 1 1 1 1 1 0.9 9 1 0 0 1 1 1 1 1 1 1 1 1 1.0 10 1 0 1 1 1 1 1 1 1 1 1 1 fpr 0.0 0.0 0.0 0.2 0.2 0.4 0.4 0.4 0.6 0.8 1.0 spec 1.0 1.0 1.0 0.8 0.8 0.6 0.6 0.6 0.4 0.2 0.0 tpr 0.0 0.2 0.4 0.4 0.6 0.6 0.8 1.0 1.0 1.0 1.0 acc 0.5 0.6 0.7 0.6 0.7 0.6 0.7 0.8 0.7 0.6 0.5 x>1.0 x>0.9 x>0.8 x>0.7 x>0.6 x>0.5 x>0.4 x>0.3 x>0.2 x>0.1 x>0.0 sens Krzywa ROC i Convex Hull AUC = 0.8 1 - spec Rysunek 2. „Nieparametryczna“ krzywa ROC dla zbioru danych z tabeli 3 Porównanie parametrycznej i nieparametrycznej metody obliczania krzywej ROC… 183 3.3. Znaczenie pola pod krzywą ROC Krzywa ROC pozwala graficznie przedstawić wymianę czułości na specyficzność przy zmianie wartości progowej t. Ale nie jest ona konieczna do wskazania reguły o najwyższej skuteczności. Zainteresowanie krzywą ROC wzrosło po ukazaniu się artykułu Hanleya i McNeila [9] o znaczeniu pola pod krzywą ROC (ang. area under curve – AUC). Wskazali oni trójstronną równoważność. Z jednej strony pole pod krzywą ROC jest równoważne prawdopodobieństwu tego, że dla losowo wybranych dwóch obiektów pozytywnego i negatywnego cecha x pozwala uporządkować te obiekty we właściwej kolejności. Z drugiej strony statystyka Wilcoxona też mierzy prawdopodobieństwo . Te własności zostaną przedstawione dla przykładowego 10-elementowego zbioru danych. Wartość AUC wyznaczona metodą trapezów wynosi 0.8. Jak oszacować na podstawie próby prawdopodobieństwo tego, że z losowo wybranej pary obiektów różnych klas, obiekt negatywny będzie miał niższą wartość cechy niż pozytywny? Należy sprawdzić wszystkie takie pary występujące w danej próbie. W tabeli 5 zestawiono różnice wartości x dla wszystkich możliwych par zawierających obiekt negatywny i pozytywny. W kolumnach umieszczono NNeg cech obiektów negatywnych, w wierszach NPos cech obiektów pozytywnych. Obliczana jest wartość UNeg jako suma ocen tych różnic w ten sposób, że ujemnej różnicy xNeg – xPos nadawana jest ocena 1; zerowej różnicy xNeg – xPos nadawana jest ocena 1/2; dodatniej różnicy xNeg – xPos nadawana jest ocena 0. Tabela 5. Macierz różnic wartości x obiektów negatywnych i pozytywnych dla danych z tabeli 3. Pogrubieniem zaznaczono dodatnie różnice, kursywą – ujemne. xNeg – xPos Cechy xPos obiektów pozytywnych 0.4 0.5 0.7 0.9 1.0 Cechy xNeg obiektów negatywnych 0.1 0.2 0.3 0.6 0.8 -0.3 -0.2 -0.1 0.2 0.4 -0.4 -0.3 -0.2 0.1 0.3 -0.6 -0.5 -0.4 -0.1 0.1 -0.8 -0.7 -0.6 -0.3 -0.1 -0.9 -0.8 -0.7 -0.4 -0.2 Stosunek UNeg do liczby wszystkich par ( N Neg N Pos ) szacuje prawdopodobieństwo tego, że w losowo wybranej parze obiekt negatywny przyjmuje wyższą wartość cechy x niż pozytywny. Estymata z próby prawdopodobieństwa tego, że para zostanie uporządkowana we właściwej kolejności (obiekt pozytywny jest opisany wyższą wartością cechy x niż negatywny), wynosi ˆ 1 U Neg N Neg N Pos (5) i jest równa polu AUC. W podanym przykładzie suma ocen UNeg jest równa 5, liczba par – 25, natomiast oszacowanie ˆ 1 5 25 0.8 . Wartość UNeg jest jednocześnie statystyką U testu Manna-Whitneya. Test MannaWhitneya jest obliczany identycznie jak test sumy rang Wilcoxona (ang. Wilcoxon rank-sum 184 Marek Włodarski test), gdyż między sumą rang obiektów negatywnych SNeg a statystyką UNeg zachodzi związek U Neg S Neg W podanym przykładzie N Neg N Neg 1 suma 2 rang (6) obiektów negatywnych wynosi 56 5. S Neg 1 2 3 6 8 20 , co pozwala wyznaczyć UNeg jako 20 2 Oba testy zostały przedstawione niezależnie latach 40-tych XX wieku, dlatego często jest stosowane określenie test Wilcoxona-Manna-Whitneya (WMW). Rozkład statystyki UNeg może być określany w sposób dokładny poprzez zbadanie sum rang wszystkich możliwych podziałów zbioru danych na grupy liczebności NNeg i NPos. Przy dużych liczebnościach grup liczba permutacji N Neg N Pos N Neg N Pos ! N Neg N Neg ! N Pos ! (7) staje się na tyle duża, że stosowana jest aproksymacja rozkładem normalnym o wartości oczekiwanej i wariancji równych odpowiednio. U U2 Neg N Neg N Pos 2 N Neg N Pos N Neg N Pos 1 Neg 12 (8) (9) Znaczenie związku pola AUC ze statystyką WMW polega na tym, że na tej podstawie określane są odchylenia standardowe i przedziały ufności wartości AUC [9, 7], co jest z kolei istotne przy porównywaniu krzywych ROC wyznaczonych dla różnych zmiennych x. 3.4. Krzywa ROC dla skończonego zbioru danych z powtórzeniami Powyższe rozważania prowadzono przy założeniu, że zbiór danych jest na tyle „ciągły”, że nie występują w nim powtórzenia wartości cech. W praktyce jednak takiej sytuacji nie można wykluczyć. Pewne cechy z samej swej natury (np. liczebności) przyjmują skończony dyskretny zbiór wartości. Również wielkości realnie „ciągłe” w technice cyfrowej są zapisywane ze skończoną precyzją. W metodach statystycznych bazujących na uporządkowaniu obiektów stosowane są tzw. rangi wiązane (ang. mid-ranks). Obiektom opisanym tą samą wartością przypisywana jest jedna ranga, będąca średnią rang nadanych w zwykłym sortowaniu, co przedstawiono w tabeli 6 na przykładzie 10-elemetowego zbioru danych. Powtórzenia zmieniają dokładny rozkład statystyki Wilcoxona, co omawia [10]. W tym artykule zostanie tylko przedstawiony wpływ powtórzeń na krzywą ROC. Gdy nie występują powtórzenia liczba różnych podziałów zbioru danych jest równa liczbie obiektów plus jeden (reguła „Zawsze Pos”). W ogólnym przypadku ta liczba jest równa liczbie niepowtarzających się wartości plus jeden (reguła „Zawsze Pos”). W tabeli 7 Porównanie parametrycznej i nieparametrycznej metody obliczania krzywej ROC… 185 zestawiono możliwe podziały przykładowego 10-elementowego zbioru danych. Na podstawie ich miar jakości (fpr, tpr) na rys. 3 wykreślono krzywą ROC. Tabela 6. Zbiór 10 obiektów z powtórzeniami Wartość cechy x 0.2 0.2 0.4 0.4 0.6 0.6 0.6 0.8 1.0 1.0 Ranga r 1.5 1.5 3.5 3.5 6 6 6 8 9.5 9.5 Rzeczywista klasa y Neg Neg Neg Pos Pos Neg Pos Neg Pos Pos Tabela 7. Wszystkie możliwe podziały jedną wartością progową 10-elementowego zbioru obiektów z tabeli 6 (z powtórzeniami zmiennej niezależnej) wraz z miarami jakości klasyfikacji. Pogrubieniem zaznaczono trafne rozpoznania. 0.2 0.2 0.4 0.4 0.6 0.6 0.6 0.8 1.0 1.0 fpr spec tpr acc Ranga r 1.5 1.5 3.5 3.5 6 6 6 8 9.5 9.5 Podziały zbioru, gdy regułą przyporządkowującą obiekt do pozytywnych jest x>1.0 x>0.8 x>0.6 x>0.4 x>0.2 x>0.0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0.0 0.0 0.2 0.4 0.6 1.0 1.0 1.0 0.8 0.6 0.4 0.0 0.0 0.4 0.4 0.8 1.0 1.0 0.5 0.7 0.6 0.7 0.7 0.5 Klasa y 0 0 0 1 1 0 1 0 1 1 Krzywa ROC i Convex Hull sens Cecha x AUC = 0.78 1 - spec Rysunek 3. „Nieparametryczna“ krzywa ROC dla zbioru danych z tabeli 6 186 Marek Włodarski Z punktu widzenia klasyfikacji danych najbardziej niekorzystna jest sytuacja, w której tą samą wartością cechy są opisane obiekty różnych klas. Wówczas żadna reguła decyzyjna wykorzystująca wyłącznie tą cechę nie jest w stanie rozróżnić tych obiektów. Takie zdarzenie można rozpoznać po przebiegu krzywej ROC. Gdy wśród danych brak powtórzeń lub powtórzenia występują tylko w obrębie jednej klasy, krzywa ROC składa się wyłącznie z odcinków prostopadłych do osi układu współrzędnych. Powtórzenia wartości zmiennej x u obiektów różnych klas objawia się wystąpieniem odcinków o innych nachyleniach. Fawcett [8] zwraca uwagę na to, że brak sprawdzenia powtórzeń może skutkować błędnym wykreśleniem krzywej ROC. Dlatego w swoim algorytmie wydajnego generowania punktów ROC pamięta wartość progową z poprzedniej iteracji. Podobnie jak poprzednim przykładzie z macierzy różnic (tabela 8) można wyznaczyć UNeg = 5.5 oraz estymatę prawdopodobieństwa ˆ 1 5.5 25 0.78 . Tabela 8. Macierz różnic wartości x obiektów negatywnych i pozytywnych dla danych z tabeli 6. Pogrubieniem zaznaczono dodatnie różnice, kursywą – ujemne. xNeg – xPos Cechy xPos obiektów pozytywnych 0.4 0.6 0.6 1.0 1.0 Cechy xNeg obiektów negatywnych 0.2 0.2 0.4 0.6 0.0 -0.2 -0.2 0.2 0.0 -0.4 -0.4 -0.2 0.0 -0.4 -0.4 -0.2 -0.8 -0.8 -0.6 -0.4 -0.8 -0.8 -0.6 -0.4 0.8 0.4 0.2 0.2 -0.2 -0.2 4. Ocena cech sygnału PERG za pomocą analizy ROC Obie metody nieparametryczna i parametryczna zostaną porównane na praktycznym przykładzie bazy danych zapisów PERG. 4.1. Sygnał PERG Sygnał PERG (ang. Pattern Electroretinogram) jest rejestracją elektrycznej odpo-wiedzi siatkówki na specyficzny rodzaj pobudzenia optycznego, zwany wzorcem. Badanie PERG jest użyteczne w wykrywaniu wczesnych objawów degeneracji wewnętrznych struktur neuronalnych oka, charakterystycznych dla jaskry [11]. Przebieg sygnału PERG typowy dla zdrowego oka przedstawiono na rysunku 4. Można wyróżnić na nim trzy komponenty (dwa ujemne i jeden dodatni) N35, P50 i N95. Standard (kolejne edycje [12, 13, 14]) organizacji ISCEV (ang. the International Society for Clinical Electrophysiology of Vision) zaleca ich opis przez podanie położenia ekstremów za pomocą 5 parametrów: trzech czasów utajenia (do niedawna powszechnie określanych mianem latencji) oraz dwóch wartości międzyszczytowych. W tej pracy przyjęto skróconą konwencję literowych oznaczeń cech przebiegu PERG przedstawioną na rysunku 4. Porównanie parametrycznej i nieparametrycznej metody obliczania krzywej ROC… P50 E D Amplituda [V] B 187 A N35 N95 C Czas [s] Rysunek 4. Charakterystyczne cechy przebiegu PERG typu transient 4.2. Porównanie zdolności dyskryminacyjnych cech przebiegu PERG W opublikowanym w 1996 roku artykule [15] dla 43 pacjentów ze wczesnym stadium jaskry i 43 pacjentów z grupy kontrolnej porównano 57 testów psychofizycznych oraz 24 testy elektrofizjologiczne. Wśród tych ostatnich było 5 cech sygnału PERG (amplituda P50, latencja P50, amplituda N95, latencja N95, amplituda P50+N95). Należy zaznaczyć, że w pracy [15] amplitudy fal sygnału PERG mierzono od linii bazowej, inaczej niż w przyjęto w standardzie ISCEV. Pierwszy dokument ISCEV na temat PERG wydany również w roku 1996 [12] jeszcze jako „wskazówki” zalecał międzyszczytowy pomiar amplitud. W pracy [15] zastosowano pole pod krzywą ROC jako miarę zdolności testu do separacji grup oraz obliczono miary jakości klasyfikacji dla optymalnej wartości progowej. Najlepszy wynik uzyskano dla amplitudy N95, dla której pole AUC wynosiło 0.898, a błąd metody 13.4 %. Ze względu na inny pomiar amplitud tego wyniku nie można odnieść do dostępnych danych. Parametrowi E odpowiada miara P50 + N95 w pracy [15], dla której uzyskano pole AUC równe 0.873 i błąd 20.7 %. Celem badań było potwierdzenie wyników [15] na podstawie zbioru zapisów PERG zarejestrowanych w Pracowni Elektrofizjologii Siatkówki, Dróg Wzrokowych i Perymetrii Statycznej Katedry i Kliniki Okulistycznej Pomorskiej Akademii Medy-cznej w Szczecinie, kierowanej przez dr hab. n. med. Wojciecha Lubińskiego. Baza danych składa się ze 184 przebiegów PERG: 80 pochodzących od oczu pacjentów ze stwierdzonym schorzeniem układu wzrokowego oraz 104 bez schorzenia. Ze względu na różnice warunków pomiarowych nie jest uzasadnione porównanie obliczonych wartości progowych z pracą [15]. Oceniona zostanie zdolność cech przebiegu PERG do rozróżnienia przypadków negatywnych i pozytywnych. Analizie ROC poddano pięć cech wskazanych na rysunku 4. Liczne prace poświęco-ne badaniu PERG (np. [16]) stwierdzają istotność ilorazu wartości międzyszczyto-wych D i E. Ponadto własne doświadczenia z analizą danych PERG [17] wskazały przydatność ich śred- 188 Marek Włodarski niej geometrycznej DE . Ostatecznie, analizę ROC – zarówno metodą nieparametryczną, jak i parametryczną – wykonano dla ośmiu zmiennych. Rysunek 5. Krzywe ROC 8 cech przebiegu PERG wyznaczone metodą parametryczną (zielona, pogrubiona linia) oraz nieparametryczną (ciemnoczerwona cieńsza linia). Zaznaczono punkty maksymalnej skuteczności wraz z liniami iso-accuracy. Wyznaczone krzywe porównano na rysunku 5. Wyniki obliczeń związanych z krzywymi ROC zestawiono w tabelach 9 i 10. Dla zachowania zgodności z zapisem reguły (3) cechy, które przyjmowały wyższe wartości dla obiektów negatywnych niż pozytywnych, zostały zastosowane ze znakiem przeciwnym. Dla zmiennych opartych na wartościach międzyszczytowych, nieparametryczne krzywe ROC (kreślone według danych) znacznie odbiegają od krzywych oczekiwa-nych na podstawie modelu binormalnego. Dla tych cech obserwowany jest również charakterystyczny kształt nieparametrycznych krzywych ROC. Od lewego dolnego rogu przestrzeni ROC (reguła „Zawsze Neg”) krzywa ROC przebiega niemal pionowo, czyli początkowo obniżana wartość progowa napotyka niemal wyłącznie przypadki pozytywne. Przy czułościach bliskich 50 % (około połowa przypadków ze schorzeniami trafnie rozpoznana) następuje załamanie krzywej. Oznacza to, że reguła decyzyjna błędnie klasyfikuje coraz większą grupę obiektów negatywnych. Można stąd wywnioskować, że zapisy PERG oczu ze schorzeniami dzielą się na dwie grupy: jedna zdecydowanie odbiega wskazaniami międzyszczytowej E od przypadków kontrolnych, ale druga jest z nimi przemieszana. Zjawisko to w sposób decydujący ogranicza skuteczność rozpoznawania obiektów. Ponadto, taki przebieg krzywej ROC skutkuje tym, że regułami maksymalnej skuteczności są reguły konserwatywne (o specyficzności wyższej od czułości). Przykład z cechami opisującymi sygnały PERG pokazuje jeszcze jeden mankament modelu binormalnego. Posłużono się ilorazem wartości międzyszczytowych w dwóch postaciach D/E i E/D. Obie zmienne porządkują obiekty w ten sam sposób (tylko kolejność jest odwrócona). Nieparametryczna krzywa ROC musi być dla nich identyczna. Natomiast metoda parametryczna oparta na przybliżeniu rozkłady cech w klasach rozkładami normalnymi, dała dwa zupełnie różne wyniki. Binormalna krzywa ROC dla cechy D/E jest nadmiernie optymistyczna, a dla cechy E/D nadmiernie pesymistyczna, co znajduje swoje odzwierciedlenie w wartościach AUC. Porównanie parametrycznej i nieparametrycznej metody obliczania krzywej ROC… 189 Na rysunku 5 zaznaczono punkty na krzywych ROC, dla których skuteczność jest największa. Odpowiadające im wartości progowe t zestawiono w tabeli 9. W przy-padku nieparametrycznych krzywych ROC kilkakrotnie różne wartości progowe zapewniały tą samą skuteczność, przy różnych wartościach czułości i specy-ficzności. Na krzywych parametrycznych zawsze wskazywany był jeden punkt. Tabela 9. Wartości progowe t zapewniające najwyższą skuteczność acc, wyznaczone na parametrycznej i nieparametrycznej krzywej ROC Cecha A B C -D -E DE Próg wg modelu binormalnego 31.5 55.7 112.9 - 6.16 - 9.27 Progi wg krzywej nieparametrycznej 30.5 56 114.5, 115 - 5.04 - 7.51, - 7.70, - 7.73, - 8.39 - 7.87 - 6.14 - E/D - 1.1223 0.8744 D/E - 1.1620 0.8606 Wartość progowa z modelu binormalnego jest najkorzystniejsza tylko wtedy, gdy obie populacje faktycznie są opisane rozkładami normalnymi o wyznaczonych parametrach. Dla danego zbioru zapisów PERG regułę o najlepszej skuteczności wskazuje metoda nieparametryczna. W przypadku cechy E reguła decyzyjna (3) z taki dobranym progiem skutkuje błędem klasyfikacji 20.65 %, co jest wynikiem zaskakująco bliskim uzyskanemu w artykule [15]. W tabeli 10 porównano wyznaczone obiema metodami pola AUC pod krzywymi ROC. Nie należy na ich podstawie wnioskować o podobieństwie krzywych, np. wartości AUC dla cechy D są bardzo bliskie, jednak nieparametryczna krzywa ROC znacznie odbiega od gładkiego i wypukłego kształtu krzywej binormalnej. Tabela 10. Pole AUC wyznaczone parametrycznie i nieparametrycznie Cecha A B C -D -E DE - E/D D/E AUC wg modelu binormalnego 0.613 0.642 0.560 0.678 0.819 0.759 0.632 0.715 AUC wg nieparametrycznej krzywej 0.607 0.636 0.543 0.676 0.834 0.762 0.695 0.695 Na postawie wartości AUC można uporządkować cechy według ich zdolności do separacji obiektów pozytywnych i negatywnych. Pomijając przypadek ilorazu międzyszczytowych, obie metody identycznie uszeregowały cechy PERG. Ze względu na określoną przez ISCEV metodykę opisu sygnału PERG nie odniesiono się do wyników uzyskanych w pracy [15] dla amplitud fal mierzonych od linii bazowej. 190 Marek Włodarski Wynik uzyskany dla wartości międzyszczytowej E 0.834 jest nieznacznie niższy od odpowiadającego mu wyniku 0.873 w cytowanym artykule. Potwierdzona została też znaczna przewaga amplitud fal nad ich latencjami. Tabela 11. Ranking zdolności ośmiu cech przebiegu PERG do rozróżniania grup Cechy uporządkowane od najlepszej do najgorszej -E DE D/E -E DE D/E, - E/D -D wg pola AUC B - E/D A C parametrycznego -D B A C nieparametrycznego 5. Ocena klasyfikatorów sygnału PERG za pomocą analizy ROC Zastosowanie krzywej ROC nie ogranicza się wyłącznie do porównywania metod klasyfikacyjnych wykorzystujących pojedynczą obserwację. Rolę cechy x z równania (3) może pełnić dowolna liniowa lub nieliniowa funkcja wektora cech obiektu y f x . Wprawdzie każdy klasyfikator wektorowi cech x przypisuje etykietę klasy k , która w rozpoznawaniu dwuklasowym jest utożsamiana z binarną wartością. Jednak ta zero-jedynkowa wartość jest często wynikiem zastosowania ogranicznika (3) na zmienną y wyznaczaną przez algorytm decyzyjny. Zostaną porównane dwie powszechnie znane metody rozpoznawania obiektów: pojedynczy perceptron z liniową funkcją aktywacji (ADALINE), liniowa analiza dyskryminacyjna Fishera (LDF). Obie metody dokonują identycznej operacji liniowego rzutowania wektora cech x z przestrzeni M-wymiarowej (gdzie M to liczba cech) na przestrzeń jednowymiarową: y wTx b (13) Różni je sposób wyznaczania kierunku wektora w. Pierwsza jest przykładem metody adaptacyjnej, wektor wag perceptronu jest tworzony podczas iteracyjnego uczenia. Liniowa analiza dyskryminacyjna jest typową metodą parametryczną: dla określonego kształtu rozkładu estymowane są jego miary położenia i rozproszenia. W oryginalnej metodzie Fishera kierunek w jest określony wyrażeniem w W 1 Pos Neg (14) gdzie W jest wewnątrzgrupową macierzą kowariancji, a Pos i Pos – wektorami średnich w grupach. Stały współczynnik b dla perceptronu jest wyznaczany podczas uczenia, natomiast w fisherowskiej dyskryminacji wynosi b w T Pos Neg 2 . W tym przypadku jest on nieistotny, gdyż krzywa ROC jest uzyskiwana przez zmianę wartości progowej t w równaniu (3), co jest równoważne zmiana stałej składowej wyrażenia (13). Dla obu metod należy oczekiwać zbliżonego wyniku, tj. podobnego kierunku wektora w. W celu łatwiejszego porównania unormowano długość wyznaczonych wektorów. Zestawione w tabeli 12 współczynniki, pozwalają wstępnie wnioskować o podobieństwie uzyskanych rozwiązań. Na rysunku 6. wykreślono krzywe ROC wyznaczone parametryczną (model binormalny) i nieparametryczną. Zarówno przy rzutowaniu ADALINE jak i LDF, można zaobserwować, że ciągła krzywa parametryczna leży poniżej łamanej nieparametrycznej. Skutkuje to przede wszystkim różnicą w obliczonym polu pod krzywą ROC (tabela 13). Podejście nieparametryczne wskazuje na większą zdolność zmiennej y (13) do separacji grup niż podejście pa- Porównanie parametrycznej i nieparametrycznej metody obliczania krzywej ROC… 191 rametryczne. Obie metody pokazały nieznaczną przewagę rzutowania LDF w rozpatrywanym przykładzie. Rysunek 6. Krzywe ROC dla dwóch metod klasyfikacyjnych wykorzystujących 7 cech przebiegu PERG wyznaczone metodą parametryczną (zielona, pogrubiona linia) oraz nieparametryczną (ciemnoczerwona cieńsza linia). Na wykresy naniesiono przewidywane punkty maksymalnej skuteczności wraz z liniami iso-accuracy. Tabela 12. Znormalizowane współczynniki kierunkowe wektora w Metoda A B C -D -E D/E ADALINE 0.0121 -0.0063 0.0039 -0.5090 -0.2932 -0.0982 LDF 0.0140 -0.0142 0.0042 -0.5372 -0.2466 -0.1399 DE 0.8032 0.7941 Tabela 13. Pole AUC obliczone parametrycznie i nieparametrycznie. Metoda AUC wg modelu binormalnego AUC wg modelu nieparametrycznego ADALINE 0.916 0.937 LDF 0.921 0.943 Przede wszystkim pole AUC pozwala porównać metody wykorzystujące 7 cech przebiegu PERG (tabela 13) z regułami korzystającymi tylko z pojedynczej cechy sygnału (tabela 10). Zgodnie z przedstawioną w rozdziale 3 interpretacją pola AUC najlepsza z cech, międzyszczytowa E, pozwala w około 83 % trafnie zaklasyfikować losowo wybraną parę obiektu negatywnego i pozytywnego. Rzut siedmiu cech sygnału PERG pozwala w około 94 % trafnie rozróżnić tą parę. 6. Wnioski Krzywa ROC pozwala graficznie przedstawić miary jakości klasyfikacji dla reguł decyzyjnych, które można sprowadzić do postaci (3). Poprzez wykreślenie linii iso-accuracy łatwo wskazać regułę zapewniającą najwyższą skuteczność. Jednak obserwowana wymiana specyficzności na czułość może posłużyć też do wskazania innej reguły, np. według kryterium Neymana-Pearsona. Pole pod krzywą ROC określa zdolność cechy x do separacji obiektów z dwóch klas. Gdy dostępny jest zbiór wielu cech, miara AUC pozwala wskazać najlepszą. Nie oznacza to bynajmniej ograniczenia stosowania krzywej ROC do metod klasyfikacyjnych wykorzystujących pojedynczą obserwację. Analiza ROC może być stosowana dla każdej reguły klasyfikacyjnej, która tworzy zmienną wyjściową w skali porządkowej. Miara AUC pozwala ocenić na ile zastosowanie bardziej zaawansowanej metody klasyfikacyjnej poprawia jakość rozpoznawania. 192 Marek Włodarski Bibliografia [1] Jain A.K., Duin R.P.W., Mao J.: Statistical Pattern Recognition: A Review. IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 22, No. 1., Jan 2000. [2] Strumiłło P.: Modelowanie i analiza sygnału elektrokardiograficznego z zastosowaniem układów i przekształceń nieliniowych. Politechnika Łódzka. Zeszyt Naukowy Nr 906. Rozprawy naukowe, z. 309. Łódź 2002. [3] Koronacki J. Ćwik J.: Statystyczne systemy uczące się. Wydawnictwa NaukowoTechniczne, Warszawa 2005. [4] Fürnkranz J., Flach P.A.: An Analysis of Rule Evaluation Metrics. Proceedings of the Twentieth International Conference on Machine Learning (ICML-2003), Washington DC, 2003. [5] Fürnkranz J., Flach P.A.: ROC’n’Rule Learning – Towards a Better Uderstanding of Covering Algorithms. Machine Learning, No 58, 2005, s. 39-77. [6] Greiner M., Pfeiffer D., Smith R.D.: Principles and practical application of the receiver-operating characteristic analysis for diagnostic tests. Preventive Veterinary Medicine, No 45, 2000, s. 23-41. [7] Brown C.D., Davis H.T.: Receiver operating characteristic curves and related decision measures: A tutorial. Chemometrics and Intelligent Laboratory Systems, No 80, 2006, s. 24-38. [8] Fawcett T.: An introduction to ROC analysis. Pattern Recognition Letters, No 27, 2006, s. 861-874. [9] Hanley J.A., McNeil B.J.: The meaning and use of the area under a receiver operating characteristic (ROC) Curve. Radiology, No 143, 1982, s. 29-36. [10] Sprent P., Smeeton N.C.: Applied nonparametric statistical methods, Chapman & Hall, 2001. [11] Palacz O., Lubiński W., Penkala K.: Elektrofizjologiczna diagnostyka kliniczna układu wzrokowego. OFTAL, Warszawa 2003. [12] Marmor M.F., Holder G.E., Porciatti V., Trick G.L., Zrenner E.: Guidelines for basic pattern electroretinography. Recommendations by the International Society for Clinical Electrophysiology of Vision. Documenta Ophthalmologica No 91, 1996 s. 291-298. [13] Bach M., Hawlina M., Holder G.E., Marmor M.F., Meigen T. Vaegan, Miyake Y.: Standard for Pattern Electroretinography. Documenta Ophthalmologica, No 101, 2000, s. 11-18. [14] Holder G.E., Brigell M.G., Hawlina M., Meigen T., Vaegan, Bach M.: ISCEV standard for clinical pattern electroretinography - 2007 update. Documenta Ophthalmologica No 114, 2007, s. 111-116. [15] Graham S.L., Drance S.M., Chauhan B.C., Swindale N.V., Hnik P., Mikelberg F.S., Douglas G.R.: Comparison of Psychophysical and Electrophysiological Testing in Early Glaucoma. Investigative Ophthalmology & Visual Science, No 13, Vol. 37, December 1996. [16] Holder G.E.: Pattern Electroretinography (PERG) and an Integrated Approach to Visual Pathway Diagnosis. Progress in Retinal and Eye Research No. 4, Vol. 20, 2001, s. 531-561. [17] Włodarski M., Brykalski A.: Comparison of bayesian classifiers of pattern electroretinogram based on PERG waveform attributes and coefficients of wavelet compression. Międzynarodowa Konferencja z Podstaw Elektrotechniki i Teorii Obwodów, XXX ICSPETO 2007, 23-26.05.2007.