Metody Informatyki Stosowanej - Komisja Informatyki

advertisement
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
i2
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( Ri1 (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)
n0
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
28 K
e
  29  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 (81)  29  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 
n0

 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
29 K
e
  210  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)  210  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 LR, gdzie LN oraz R (TN)*,
 SN 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:
TRANZYCJAWARUNEK 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).
TRANZYCJAWARUNEK 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).
TRANZYCJAWARUNEK (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 I1WP1 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.057A 2 + 0.862A + 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.852A + 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
(PQR)  ((PQ)  (QR)  (PR)). 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 jSi
(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 )
xci , yc 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 qR) 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 AU 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 22 (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
56
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.
Download