Metody Informatyki Stosowanej

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

Download "Metody Informatyki Stosowanej"

Transkrypt

1 Polska Akademia Nauk Oddział w Gdańsku Komisja Informatyki Metody Informatyki Stosowanej Nr 4/2011 (29) Szczecin 2011

2 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. Constantin Gaindric, Corr. Memb. of Academy of Sciences of Moldova prof. dr hab. inż. Janusz Kacprzyk, czł. rzecz. PAN, Instytut Badań Systemowych PAN prof. dr hab. Jan Madey, Uniwersytet Warszawski prof. Elisabeth Rakus-Andersson, Blekinge Institute of Technology, Karlskrona, Szwecja 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, Zachodniopomorska Szkoła Biznesu w Szczecinie 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, Andrzej Banachowicz, Zbigniew Banaszak, Joanna Banaś, Alexander Barkalov, Włodzimierz Bielecki, Piotr Błaszyński, Janusz Bobulski, Mariusz Borawski, Piotr Bubacz, Ryszard Budziński, Henryk Budzisz, Arkadiusz Bukowiec, Dariusz Burak, Tadeusz Czachórski, Jacek Czarnecki, Andrzej Czyżewski, Robert Dylewski, Piotr Dziurzański, Witold Dzwinel, Imed El Fray, Mykhaylo Fedorov, Paweł Forczmański, Dariusz Frejlichowski, Krzysztof Giaro, Zbigniew Gmyrek, Lesław Gniewek, Marek Gorgoń, Anna Grocholewska-Czuryło, Stanisław Grzegórski, Volodymyr Harbarchuk, Edward Hrynkiewicz, Zbigniew Huzar, Janusz Jabłoński, Andrzej Janczak, Jarosław Jankowski, Wojciech Jędruch, Szymon Kaczanowski, Tadeusz Kaczorek, Andrei Karatkevich, Andrzej Kasiński, Aleksander Katkow, Włodzimierz Khadzhynow, Przemysław Klęsk, Jacek Kluska, Leonid Kompanets, Józef Korbicz, Jerzy Korostil, Przemysław Korytkowski, Marcin Korzeń, Witold Kosiński, Magdalena Krakowiak, Krzysztof Kraska, Mariusz Kubanek, Georgy Kukharev, Eugeniusz Kuriata, Emma Kusztina, Piotr Lipiński, Małgorzata Łatuszyńska, Ewa Łukasik, Radosław Maciaszczyk, Wiesław Madej, Krzysztof Makles, Wojciech Maleika, Krzysztof Małecki, Radosław Mantiuk, Andrzej Marciniak, Oleg Maslennikow, Tomasz Mąka, Dariusz Mrozek, Piotr Mróz, Karol Myszkowski, Andrzej Napieralski, Evgeny Ochin, Krzysztof Okarma, Remigiusz Olejnik, Piotr Pechmann, Jerzy Pejaś, Andrzej Pieczyński, Andrzej Piegat Piotr Piela, Maria Pietruszka, Zbigniew Pietrzykowski, Mateusz Piwowarski, Marcin Pluciński, Anna Pławiak-Mowna, Orest Popov, Edward Półrolniczak, Artur Przelaskowski, Izabela Rejer, Valeriy Rogoza, Przemysław Różewski, Mirosław Ryba, Anna Samborska-Owczarek, Dominik Sankowski, Adam Słowik, Marek Stabrowski, Andrzej Stateczny, Jerzy Stefanowski, Janusz Stokłosa, Szymon Stoma, Jakub Swacha, Zdzisław Szczerbiński, Tomasz Szmuc, Marcin Szpyrka, Bożena Śmiałkowska, Ryszard Tadeusiewicz, Alexander Ţariov, Larysa Titarenko, Anna Tomaszewska, Leszek Trybus, Andrzej Tujaka, Zenon Ulman, Andrzej Walczak, Jarosław Wątróbski, Agnieszka Węgrzyn, Marek Węgrzyn, Sławomir Wiak, Waldemar Wolski, Waldemar Wójcik, Oleg Zaikin, Wojciech Zając, Danuta Zakrzewska, Zenon Zwierzewicz Redakcja: Antoni Wiliński (redaktor naczelny) Dariusz Frejlichowski (zastępca redaktora naczelnego) Piotr Czapiewski (sekretarz redakcji) ISSN Wydawnictwo: Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki Adres kontaktowy: ul. Waryńskiego 17, Szczecin, Wydano we współpracy ze Stowarzyszeniem Przyjaciół Wydziału Informatyki w Szczecinie

3 Spis treści Michaela Chocholatá THE ROLE OF THE TRADING VOLUME IN EXPLAINING THE VOLATILITY PERSISTENCE: EVIDENCE FROM AUSTRIAN, BELGIAN AND FRENCH STOCK MARKET Paweł Forczmański, Dariusz Frejlichowski, Adam Nowosielski, Radosław Hofman AKTUALNE TRENDY W TWORZENIU SYSTEMÓW INTELIGENTNEGO MONITORINGU WIZYJNEGO. 19 Agnieszka Kamińska, Włodzimierz Bielecki OBLICZENIOWE SZACOWANIE LOKALNOŚCI DANYCH NA POZIOMIE PAMIĘCI PODRĘCZNEJ Marcin Mirończuk, Tadeusz Maciak SYSTEM INFORMACYJNY NA TEMAT SIECI HYDRANTÓW DLA KRAJOWEGO SYSTEMU RATOWNICZO-GAŚNICZEGO: METODA SEGMENTACJI TEKSTU I JEJ OCENA Krzysztof Guzek, Piotr Napieralski STREAMED PHOTON MAPPING Krzysztof Myszkorowski FUZZY FUNCTIONAL DEPENDENCIES WITHIN THE POSSIBILISTIC DATABASES FRAMEWORK Paweł Lekki, Radosław Mantiuk INTERAKTYWNY RENDERING ZŁOŻONYCH SCEN NA PRZYKŁADZIE GRY KOMPUTEROWEJ ZOMBIE DRIVER Robert Król, Małgorzata Pelczar ANALIZA WYNIKÓW BADANIA KOMPETENCJI STUDENTÓW W ZAKRESIE PROGRAMOWANIA Larisa Dobryakova, Evgeny Ochin METODA STEGANOGRAFICZNA NA PODSTAWIE ANALIZY LSB DWÓCH SĄSIEDNICH PRÓBEK DANYCH JEDNOWYMIAROWYCH Mariusz Dramski, Marcin Mąka DRZEWO CZWÓRKOWE W PROJEKTOWANIU GRAFÓW DLA UPROSZCZONEGO ALGORYTMU MRÓWKOWEGO Agnieszka Kamińska MODEL OBLICZENIOWEGO SZACOWANIA CZASU WYKONANIA PROGRAMU Krzysztof Makles STABILNOŚĆ I ZBIEŻNOŚĆ MODELU GRADIENTOWEGO W INTERAKTYWNEJ OPTYMALIZACJI WIZUALNEJ W TRYBIE BEZPOŚREDNIM Marcin Mirończuk, Tadeusz Maciak PROCES I METODY EKSPLORACJI DANYCH TEKSTOWYCH DO PRZETWARZANIA RAPORTÓW Z AKCJI RATOWNICZO-GAŚNICZYCH Remigiusz Olejnik CHARAKTER RUCHU HTTP W LOKALNYCH SIECIACH BEZPRZEWODOWYCH Sławomir Wiak, Paweł Drzymała, Henryk Welfle SUPPORT, ANALYSIS AND REPORTING SYSTEM OF THE SPORT EVENTS Krzysztof Przednowek, Krzysztof Wiktorowicz NEURONOWY SYSTEM OPTYMALIZACJI WYNIKU SPORTOWEGO ZAWODNIKÓW UPRAWIAJĄCYCH CHÓD SPORTOWY Michał Twardochleb, Paweł Włoch METODA MAPOWANIA RYZYK POWIELARNYCH PRZEDSIĘWZIĘĆ BIZNESOWYCH DLA SYSTEMU WSPOMAGANIA DECYZJI MENADŻERSKICH

4 Mirosław Zając, Zbigniew Gmyrek AN EXAMINATION OF THE INFLUENCE OF ADAPTIVE FILTER PARAMETERS ON THE OBJECTIVE SCALAR MEASURES OF IMAGE QUALITY Mateusz Smoliński SYSTOLIC COMPUTATION FOR CONFLICT ELIMINATION BETWEEN PARALLEL EXECUTED DISTRIBUTED TRANSACTIONS Dominik Szajerman GPU-BASED RENDERING AND ANIMATION OF WATER SPREADING ON FLAT SURFACES Katarzyna Gościewska BADANIE SKUTECZNOŚCI AUTOASOCJACYJNEJ SIECI HOPFIELDA W ZAGADNIENIU OGÓLNEJ ANALIZY KSZTAŁTU Wojciech Maleika, Piotr Stempiński OPRACOWANIE METODY PERSONALIZACJA REKLAMY NA POTRZEBY PORTALI FINANSOWYCH 251 Edward Półrolniczak, Mirosław Łazoryszczak QUALITY ASSESSMENT OF INTONATION OF CHOIR SINGERS USING F0 AND TREND LINES FOR SINGING SEQUENCE Wojciech Maleika WPŁYW UKŁADU PROFILI POMIAROWYCH NA DOKŁADNOŚĆ TWORZONYCH MODELI DNA PRZY PRACACH SONDAŻOWYCH Z WYKORZYSTANIEM ECHOSONDY WIELOWIĄZKOWEJ Ewa Adamus, Przemysław Klęsk, Joanna Kołodziejczyk, Marcin Korzeń, Andrzej Piegat, Marcin Pluciński CHILD WELL BEING ESTIMATION AS A MULTI-CRITERIA DECISION PROBLEM Karina Tomaszewska TEORIA LUK INFORMACYJNYCH W BADANIU NIEBEZPIECZEŃSTWA WYZNACZENIA NIEODPOWIEDNIEJ DAWKI LEKU

5 The role of the trading volume in explaining the volatility persistence: evidence from Austrian, Belgian and French stock market # Michaela Chocholatá University of Economics in Bratislava, Faculty of Economic Informatics Abstract: This paper deals with the role of the trading volume in explaining the volatility persistence for the daily data (both stock indices and individual stocks) from the Austrian, Belgian and French stock market. The main aim was to investigate the volatility trading volume relation to find out if there are differences between stock indices and individual stocks concerning the reduction of the volatility persistence after inclusion of the trading volume into the conditional volatility equation. Unlike many other studies, our analysis in general didn t confirm that the inclusion of the trading volume into the conditional volatility equation made the volatility persistence negligible. Furthermore there was also no difference observed concerning the results for index return series and individual stocks. Keywords: trading volume, volatility persistence, GARCH, EGARCH, GJR-GARCH 1. Introduction To understand the relationships between returns, volatility and trading volumes has been a challenging issue in financial econometrics for a long time. There are a lot of studies investigating these relationships and various theoretical models have been developed. It is almost impossible to mention all of them (for the detailed survey of empirical studies analyzing the mentioned relationships see e.g. Ané and Ureche-Rangau (2008), Gursoy et al. (2008), Kumar et al. (2009)). An excellent survey of literature dealing with the modelling of volatility can be found in Poon and Granger (2003). The analyses usually come from the typical features of the financial time series, which are commonly analyzed in the form of returns (first differences of original series). The main feature of return series is the time-varying volatility, i.e. the variance changes over time, which means that the large changes tend to follow large changes while small changes have a tendency to follow other small changes. The empirical distributions of stock returns have thick tails, are found to be leptokurtic relative to the normal distribution and exhibit a high degree of volatility persistence (see e.g. Ané and Ureche-Rangau (2008)). One of the possible explanations of the autoregressive conditional volatility is the mixture of distributions hypothesis (MDH), firstly presented by Clark (1973), in which a stochastic mixing variable is a function of the information arrival to the market. Since the information arrival is unobservable, the trading volume can be used as a proxy for information flow. With the arrival of # This paper is supported by the Grant Agency of Slovak Republic - VEGA, grant no. 1/0595/11 "Analysis of Business Cycles in the Economies of the Euro Area (with Regards to the Specifics of the Slovak Economy) Using Econometric and Optimization Methods". Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

6 6 Michaela Chocholatá a good information the prices will rise and in case of bad information the prices will decline. The MDH also explains the positive relationship between the price volatility and the trading volume. Another approach to capture the changes in variance is the Engle s (1982) ARCH (Autoregressive Conditional Heteroscedasticity) model, which was further generalized by Bollerslev (1986) and became the name GARCH, i.e. generalized ARCH. In order to capture the asymmetric effects the EGARCH, i.e. exponential GARCH, model of Nelson (1991) and GJR- GARCH model of Glosten et al. (1993) 1 were developed. Since that time a large number of autoregressive conditional heteroscedastic models have been developed (for the extensive survey of the ARCH-type models see e.g. Franses and van Dijk (2000)) and also the literature dealing with these models has grown in a spectacular fashion. On the basis of MDH, Lamoureux and Lastrapes (1990) provide the economic explanation of the volatility persistence. They proved, for a sample of 20 US common stocks, that the inclusion of the contemporaneous trading volume (as a proxy for the mixing variable) into the conditional variance equation led to the disappearance of the GARCH effects. Sharma et al. (1996) analyzed the New York Stock Exchange Index and showed that the GARCH effects on volatility hadn t vanish when the trading volume was included into the conditional variance equation. They came to the conclusion that while trading volume may be a good proxy for information arrival in case of individual stocks, the same may not be true for the market as a whole. Their argument is based on the fact that the volatility of an individual stock is influenced both by firm-specific factors and macro factors and both these factors have an effect on the trading volume of an individual stock. On the other hand, the volatility of a stock exchange index is influenced mostly by macro factors which dominate the firm-specific factors, but the corresponding trading volume is affected by both these factors. Miyakoshi (2002) applied the mentioned approach both to the individual stock prices quoted at the Tokyo Stock Exchange and their stock index. He proved that the trading volume reduced the GARCH/EGARCH effect for individual stocks and during selected data periods also for the analyzed stock index. He suggests that the cause of the results is news included in the current trading volume. Omran and Mckenzie (2000) applied the approach of Lamoureux and Lastrapes (1990) on the 50 UK companies and found out that although the parameter estimates of the GARCH model became insignificant after inclusion of the trading volume into the conditional volatility equation, the autocorrelations of the squared residuals still exhibited a highly significant GARCH effects. Aragó and Nieto (2005), Miyakoshi (2006), Girard and Biswas (2007), Gursoy et al. (2008) did the analyses for various groups of countries also with the decomposed total trading volume into its unexpected and expected components, i.e. the share of the trading volume which corresponds to trading caused by the existence of new information and the rest. Aragó and Nieto (2005) analyzed different international stock indices (among others also the French CAC) and although they proved that the unexpected volume has a greater effect on the conditional volatility than the total volume, the degree of persistence of the corresponding GARCH model was not significantly influenced. Miyakoshi (2006) investigated the effect of news on conditional volatility (based on the asymmetric EGARCH model) for the case of six Asian stock indices and found out that the influence of the current news lasted for one day in two cases and for at least two days in remaining cases. Girard and Biswas (2007) examined the interaction of the volatility and trading volume in 27 emerging and 22 developed markets (among others including the Austrian, Belgian and French stock indices) and proved that the 1 Equivalent to the GJR-GARCH model is the threshold GARCH (TGARCH) model of Zakoian (1994).

7 The role of the trading volume in explaining the volatility persistence 7 decomposition of the trading volume into its expected and unexpected components led to the reduction of the volatility persistence. Gursoy et al. (2008) did the analysis for the 12 emerging stock markets and received mixed results. Although the degree of volatility persistence was high in all cases, only in six markets the unexpected volume can considered to be a proxy for new information arrival consistent with the MDH. Using the GJR-GARCH model, they concluded, that the unexpected trading volume could not explain the GARCH effects. Ané and Ureche-Rangau (2008) presented results for the six stocks quoted at the London Stock Exchange taking into account the long memory properties of the analyzed time series. They concluded that while the volatility and the trading volume might share common shortrun behaviour, their long-run behaviour is being completely different. Kumar et al. (2009) analyzed the relationships between price and trading volume for 50 Indian stocks. They applied various approaches, among them the MDH approach, and similarly as e.g. Ané and Ureche-Rangau (2008) received mixed results neither completely rejecting the MDH, nor absolutely accepting it. For the majority of the stocks they found out that the GARCH effect was either reduced or became insignificant after the inclusion of the trading volume into the GARCH model, but for some stocks no reduction in volatility persistence was proved. Naliniprava (2010) dealt with the analysis of the empirical relationship between trading volume and stock returns volatility in Indian stock market using various ARCH-type models. The study confirmed the evidence of leverage and asymmetric effect and furthermore proved that daily new information in market might have significant impact on price volatility. The aim of this paper is to analyse the impact of trading volume inclusion into the conditional volatility equation (using the GARCH, GJR-GARCH and EGARCH models) on the volatility persistence for the Austrian, Belgian and French market. The analysis was done on daily data, similarly as Miyakoshi (2002) did, both for stock indices and individual stocks in order to find out if there are differences between stock indices and individual stocks concerning the reduction of the volatility persistence after inclusion of the trading volume into the conditional volatility equation. The analyzed data period spans from January 1, 2005 to May 30, 2011 and the data were obtained from the website The rest of this paper is organized as follows: section 2 deals with the methodological aspects concerning the volatility persistence and trading volume, section 3 describes the data and empirical results of the analysis a section 4 concludes. 2. Methodology: volatility persistence and trading volume Since this paper is concentrated on the analysis of the volatility-trading volume relation for various stocks and stock indices, it seems to be useful to specify the methodological aspects of returns calculation, conditional heteroscedasticity equations and motivations connected with the inclusion of the trading volume into the conditional heteroscedasticity equation. If P t is the closing value of the stock index at time t and r t denotes logarithm of the corresponding stock return, the formula for calculation of the logarithmic stock return is as follows: or in the form of a conditional mean equation: r ln( P P ) 1 (1) t = t t rt = µ + ε (2) t

8 8 Michaela Chocholatá where µ is the return mean value which is supposed to equal zero 2. In order to capture the time-varying volatility of the logarithmic stock return series taking into account the volatility-trading volume relation, the ARCH-type models with the logarithmic trading volume included can be used. The basic GARCH(p,q) model is specified as follows: q p α iε t i + β i i= 1 i= 1 h t = α h (3) where p denotes the order of a GARCH term and q is the order of an ARCH term. Since in the analysis only models with p = 1 and q = 1 were used 3, we will present their mathematical formulas only for orders (1,1). The GARCH(1,1) model specification with logarithmic daily trading volume V t included can be expressed as: h α α ε β + ψ 2 t = t 1 + 1ht 1 Vt, > 0 0 t i α, α 0, β 0, ψ 0 (4) where parameter α 1 represents the estimate of the lagged squared residual term (ARCH term) and β 1 represents the parameter estimate of the lagged conditional volatility variable (GARCH term). The persistence of variance is measured by the sum ( α 1 + β 1 ) and in case that the sum approaches unity, we can speak about great persistence of shocks to volatility. If the sum exceeds unity, it implies not only high volatility persistence, but also the nonstationarity in the variance (see e.g. Gursoy et al. (2008), Sharma et al. (1996)). Concerning the restricted model of equation (4) by setting the trading volume parameter ψ = 0, i.e. ignoring the trading volume, the equation (4) represents the GARCH(1,1) model. Setting the parameters α 1 = β1 = 0, i.e. ignoring the ARCH effect, the equation (4) can be characterized as the information-based variance model (Miyakoshi (2002)). Following the approach of Lamoureux and Lastrapes (1990) the inclusion of the trading volume into the conditional volatility equation should lead to the reduction in the persistence of conditional volatility represented by an important reduction in the parameters α 1, β 1 and the loss of their significance. The presented GARCH model shows some limitations which have been considered and overcomed in later ARCH-type models, e.g. it does not consider the possibility of asymmetry in the conditional volatility. To capture both the volatility persistence and the asymmetric effects, e.g. the GJR-GARCH(1,1) and EGARCH(1,1) models were suggested. The conditional variance function of a GJR-GARCH(1,1) model with logarithmic daily trading volume V t included is given by the following formula: h t 1 = α + α ε + β h + γ ε I + ψv t 1 1 t 1 1 t 1 t 1 t, (5) where α > 0 0, α 0 1, α 1 + γ 1 0, β 1 0. The different impact of negative and positive 1, ak ε < t 1 0 shocks on volatility is given by I t 1 =, i.e. the impact of negative shocks is 0, ak ε t 1 > The specification of the conditional mean equation (2) differs among various authors. The logarithmic return series can be also specified as Box-Jenkins ARMA models with lag length defined by some information criteria (Akaike information criterion AIC, Schwarz information criterion SC, etc.), but the statistical nature of these criteria is unknown for the ARCH-type models (see e.g. Miyakoshi (2002)). In this paper the conditional mean equation in the form of (2) will be used. 3 The GARCH(1,1) model is considered to be an adequate representation of the conditional variance for many economic time series (see e.g. Bollerslev (1986)).

9 The role of the trading volume in explaining the volatility persistence 9 α 1 + γ 1, while the impact of positive shocks equals α 1. The volatility persistence is meas- α +. If the ured in the same way as in case of GARCH(1,1) model, i.e. by the sum ( ) 1 β 1 parameter γ 1 > 0, then negative shocks increase volatility more than positive shocks (leverage effect). The asymmetric effect is present if γ 1 0. After inclusion of the daily trading volume into the conditional volatility equation we can again expect that parameter ψ should be positive and the volatility persistence should become negligible (Lamoureux and Lastrapes (1990)). Another model which enables to capture the asymmetric effect is the EGARCH(1,1) model 4. The corresponding conditional volatility model with logarithmic daily trading volume V t included is given as follows: ε t 1 ε t 1 ln( ht ) = α 0 + α1 + β1 ln( ht 1 ) + γ 1 + ψvt. (6) h h t 1 Concerning the exponential form of the conditional variance function h t there are no restrictions on parameters α 0, α 1, β 1 and γ 1 in order to ensure the non-negativity of the h t. The persistence of variance can be measured by the magnitude of β 1. If β 1 approaches unity, then it takes a long time for volatility to die out. The value of β1 can be in general less than 1, equal to 1 or more than 1 (see e.g. Noryati (2010)). Setting the trading volume parameter ψ = 0, i.e. ignoring the trading volume, the equation (6) represents the EGARCH(1,1) model. If we set α 1 = β1 = γ 1 = 0 ignoring the ARCH-type effects, the equation (6) represents the information-based variance model. The impact of negative (positive) shocks on the logarithm of the conditional variance is given by α1 γ 1 ( α 1 + γ 1 ). Furthermore we can say that the asymmetric effect (leverage effect) exists if γ 1 0. Similarly as in case of GARCH(1,1) model, it can be expected (using the approach of Lamoureux and Lastrapes (1990)) that the inclusion of the trading volume into the conditional volatility equation should lead to the reduction in the persistence of conditional volatility measured by β Data and empirical results on the ARCH-type volume models The analyzed data period spans from January 1, 2005 to May 30, The data set comprises two types of data: the daily closing values of three European stock indices Austrian ATX, Belgian BEL20, French CAC40 together with the corresponding daily trading volumes 5 and the daily closing values of five stocks with the highest index portion valid to the May 30, 2011 for each analyzed stock index also together with the corresponding daily trading volumes. The five stocks with the highest weight for individual analyzed indices were as follows: Austrian ATX 6 (atx 7 ) ERSTE GROUP BANK AG (ers), IMMOFINANZ t 1 4 Concerning the EGARCH and GJR-GARCH models, Miyakoshi (2002) provides a brief survey of papers comparing the EGARCH and GJR-GARCH models with the conclusion, that It is ambiguous whether the EGARCH or threshold GARCH is the most convenient framework to model stock index returns on for markets where large News are observed quite often. 5 Trading volume is defined as the daily number of shares traded on a particular day. 6 Although the OMV AG was the stock with the second highest index portion, it was not used for analysis because the data concerning the corresponding trading volume were not available. Also the stock with the fifth highest index portion ANDRITZ AG was excluded from the analysis since in case of this stock it came to the

10 10 Michaela Chocholatá AG (immo), TELEKOM AUSTRIA AG (tel), VIENNA INSURANCE (ins), VOEST AL- PINE AG (voest), Belgian BEL20 (bel) AB INBEV (an), DELHAIZE GROUP (dl), GBL (gb), GDF SUEZ (gd), SOLVAY (s) and French CAC40 (cac) BNP APRIBAS ACT.A (bnp), FRANCE TELEKOM (ft), GDF SUEZ (gdf), SANOFI (san), TOTAL (tot). The analysis was done only for those daily values which were defined for the stock index, its corresponding stocks and corresponding trading volumes, i.e. the number of observations was as follows: Austria 1573, Belgium 1611 and France All the calculations were carried out in econometrical software EViews 5.1. Descriptive statistics and the Lagrange Multiplier test statistics for 1 lag, i.e. 2 LM ( 1) = TR, for daily logarithmic return series (both for indices and stocks) are in the Table 1. Table 2 comprises the descriptive statistics for the logarithmic trading volume series. Table 1. Descriptive statistics and LM(1) statistics for daily logarithmic return series Mean Std.Dev. Skewness Kurtosis Jarque-Bera LM(1) atx 0, , , , ,749*** 167,3421*** ers -0, , , , ,087*** 159,5298*** immo -0, , , , ,63*** 180,8302*** tel -0, , , , ,639*** 143,5739*** ins 0, , , , ,504*** 39,01445*** voest 0, , , , ,1909*** 80,71098*** bel -0, , , , *** 13,70712*** an 0, , , , ,36*** 307,1679*** dl 0, , , , ,704*** 11,65735*** gb 0, , , , ,0199*** 120,6067*** gd 0, ,02 0, , ,37*** 15,44856*** s 0, , , , ,437*** 21,58962*** cac 0, , , , ,824*** 71,84022*** bnp -0, , , , ,831*** 17,60648*** ft -0, , , , ,248*** 64,93582*** gdf 0, , , , ,93*** 26,77521*** san -0, , , , ,181*** 188,5425*** tot -0, , , , ,814*** 124,5683*** Note: The symbols *, ** and *** denote in the whole paper (also in individual appendices) the rejection of the null hypothesis at the 10, 5 and 1 % significance levels respectively. Source: own calculations in EViews 5.1 The results in Table 1 indicate that while the mean of the daily logarithmic return series varies in all cases around 0, the standard deviations are for individual cases sharply different and vary between 1,4191% (gb) and 88,2474% (voest). The sample moments for the time series indicate that the empirical distributions have heavy tails relative to the normal distribution. Concerning the values of the skewness statistics it can be said that the daily logarithmic return series exhibit in some cases negative and in some cases positive asymmetry. Other typical feature of the financial return series is that the underlying data are sharply peaked above the mean which is confirmed by the high values of the kurtosis statistics. The rejection of the normality distribution hypothesis is given by the extremely high values of stock split during the analysed period (May 3, 2007). These two excluded stocks were substituted by the stocks with the sixth and seventh highest index portion, respectively. 7 Abbreviations of individual time series used further in the text are in the brackets.

11 The role of the trading volume in explaining the volatility persistence 11 χ distribution. The values of LM(1) statistics clearly confirm the presence of the ARCH effect since they 2 are considerably higher than the corresponding χ ( 1) statistics. As it is clear from the Table 2, the logarithmic trading volume series show in majority cases the non-normal distribution (see values of the Jarque Bera statistics) and are negatively skewed. 2 the Jarque Bera statistics in comparison to the critical values of the ( 2) Table 2. Descriptive statistics for the logarithmic trading volume Mean Std.Dev. Skewness Kurtosis Jarque-Bera atx 15, , , , ,704236* ers 13, , , , ,063452** immo 14, , , , ,2168*** tel 13,5663 0, , , , ins 11, , , , ,0572*** voest 13, , , , ,1116*** bel 16, , , , ,86001*** an 14, , , , ,18051*** dl 12, , , , ,8885*** gb 12, , , , ,20941*** gd 14, , , , ,89913*** s 12, , ,3463 5, ,6657*** cac 18, , , , ,54*** bnp 15, , , , ,3997*** ft 16, , , , ,591*** gdf 14, , , , ,88146*** san 15, , , , ,65*** tot 15, , , , ,3433*** Source: own calculations in EViews 5.1 Furthermore the stationarity of the analyzed daily logarithmic return series and also of the daily logarithmic trading volumes can be proved using e.g. the Augmented Dickey Fuller (ADF) unit root test 8. Concerning the above mentioned features of the analyzed time series, the analysis was done in two steps using the three forms of the conditional heteroscedasticity models - GARCH(1,1), GJR-GARCH(1,1) and EGARCH(1,1). In the first step the parameters of the conditional mean equation (2) together with conditional volatility equations without trading volume variable were estimated. In the second step the conditional volatility equation with trading volume variable included was used to model the autoregressive conditional heteroscedasticity. The parameters of the GARCH(1,1) models and GARCH(1,1) models with trading volume variable included, respectively are for individual indices and individual stocks summarized in Appendices 1A and 1B, respectively. Taking into account the results summarized in Appendix A it is apparent that all the estimated parameters α 1 (alfa) and β 1 (beta) are highly statistically significant. The values of the LM(1) statistics and Ljung Box Q statistics for standardized residual series and 8 The results of the ADF test for individual series are not presented here from space reasons, but can be provided by the author upon request. For the detailed information about various unit root tests see e.g. Franses and Dijk (2000).

12 12 Michaela Chocholatá squared standardized residual series for 12 lags, i.e. statistics Q(12) and Q2(12) confirm at the significance level 1% the adequate use of the conditional heteroscedasticity model. The volatility persistence is high both for market indices and corresponding stocks and takes values of more than 0,931 and even 1,00 for two Austrian stocks (immo, voest). Similar results concerning the volatility persistence above 1,00 were received e.g. by Gursoy et al. (2008) and it means that there is not only high volatility persistence but also variance nonstationarity of the corresponding return series. After inclusion of the trading volume variable into the conditional volatility equation (4), the parameters α 1 and β 1 still remain statistically significant, but the volatility persistence declined in almost all cases (the only exception was immo). The decline was mostly moderate with almost no difference between stock indices and their individual stocks. Taking into account the test statistics for standardized residuals, it seems to be clear that no remaining heteroscedasticity was detected at the significance level 1% (the only exception was bel for higher lags, i.e. although there was no remaining heteroscedasticity identified for 1 lag, with 12 lags there is a serious problem with a high correlation of squared standardized residuals). In order to capture the asymmetry in volatility, the parameters of the GJR-GARCH(1,1) models were estimated. Appendices 1C and 1D, respectively, comprise of the parameter estimates of the GJR-GARCH(1,1) models and GJR-GARCH(1,1) models with trading volume variable included, respectively and some statistics for testing the standardized residuals. While all the β 1 parameters were statistically significant at the significant level 1%, the same was not truth for the parameters α 1 (see Appendix 1C). The parameters γ 1 were with one exception (s) statistically significant at the significant level 1% (in case of voest only at 5% significance level) which clearly confirms the existence of the asymmetric effect. As expected, there is a leverage effect ( γ 1 > 0 ) in 16 cases. In one case (voest) surprisingly the negative leverage effect was observed, which means that negative shocks (bad news) generate less volatility than positive shocks (good news). Appendix 1D reports the estimation results of the GJR-GARCH(1,1) models where a trading volume variable is used as a proxy for information flow, i.e. of model (5). The results show that a trading volume variable has at the significance level 1% positive effect on the conditional volatility in all analyzed cases. Similar as in case of GARCH(1,1) model, the volatility persistence didn t become negligible, but only a slight to moderate decline was recorded again without any difference between the index return series and series of individual stocks. Concerning the test statistics for standardized residuals, the remaining heteroscedasticity at the significance level 1% was identified in one case (cac) which means that a model with a higher number of lags (GJR-GARCH(2,1)model) should be used to ensure the uncorrelatedness of the squared standardized residuals. The next model used for modelling the volatility which enables to capture the asymmetric effect is the EGARCH(1,1) model. Parameter estimates of the EGARCH(1,1) model without and with trading volume variable included and some statistics for testing the standardized residuals can be found in Appendices 1E and 1F. Concerning the results in Appendix 1E it can be said that all the parameters α 1 and β 1 were statistically significant. Also the statistically significant asymmetric effect γ 1 0 was confirmed for almost all analyzed series (the only exception was s), hence the EGARCH(1,1) model is preferred to the GARCH(1,1) model. Volatility persistence measured by the values of β 1 is quite high, it ranges from 0,922 (ins) to almost 0,994 (dl), but since it is still less than 1 which indicates

13 The role of the trading volume in explaining the volatility persistence 13 stationary persistence. With exception of cac there was no remaining heteroscedasticity detected in standardized residuals 9. After inclusion of the trading volume variable into the conditional heteroscedasticity equation (6) situation has changed and we received interesting results. As it was expected, the volume variable was in all cases highly statistically significant and positive. Although the volatility persistence sharply decreased in many cases (Austrian data ins, Belgian data an, dl, gd, s and French data bnp, ft, gdf, san), exactly in these cases the squared standardized residuals were identified to be significantly correlated and the use of the EGARCH(1,1) model was not adequate. The similar results (for GARCH(1,1) model) were received by Omran and Mckenzie (2000), but it is necessary to mention that these results didn t eliminate the need for some ARCH-type modelling of stock return series. 4. Conclusion We investigated the relationship conditional volatility volume for 18 time series 3 stock indices return series (Austrian ATX, Belgian BEL20 and French CAC40) and 15 individual stocks. Unlike the conclusions of e.g. Lamoureux and Lastrapes (1990), Sharma et al. (1996) the analysis on our data didn t confirm their results that the inclusion of the trading volume into the conditional volatility equation makes the volatility persistence negligible. There was also no difference observed concerning the results for index return series and individual stocks as it is presented e.g. by Sharma et al. (1996). The presented analysis could be in the future research extended using the decomposed trading volume into its expected and unexpected part. Interesting should be also to do the analysis for the stock indices and corresponding individual stocks of the V4 countries (Czech Republic, Hungary, Poland and Slovak Republic), but it is a little bit problematic concerning the data availability. References [1] Ané T. Ureche-Rangau L. Does Trading Volume Really Explain Stock Returns Volatility? Journal of International Financial Markets, Institutions and Money, Vol. 18, No. 3 (July), 2008, p [2] Arago V. Nieto L. Heteroskedasticity in the returns of the main world stock exchange indices: volume versus GARCH effects. Journal of International Financial Markets, Institutions and Money 15, 2005, p [3] Bollerslev T. Generalized Autoregressive Conditional Heteroscedasticity. Journal of Econometrics 31, 1986, No. 3. [4] Clark, P.K. A Subordinated Stochastic Process Model with Finite Variance for Speculative Prices. Econometrica, 41, 1973, p [5] Engle R.F. Autoregressive Conditional Heteroscedasticity with Estimates of the Variance of United Kingdom Inflation. Econometrica 50, 1982, No. 4. [6] Franses P.H. van Dijk D. Non-Linear Time Series Models in Empirical Finance. Cambridge, Cambridge University Press In case of cac the appropriate model should be EGARCH(2,1) which is similar to the case of GJR- GARCH.

14 14 Michaela Chocholatá [7] Giorgioni G. - Holden K. - Hančlová J. A review of the current methods of econometric modelling. In: Proceedings of 26th International Conference - Mathematical Methods in Economics 2008, 1. ed. Liberec: Technická univerzita Liberec, p [8] Girard E. Biswas R. Trading Volume and Market Volatility: Developed versus Emerging Stock Markets. The Financial Review 42, 2007, p [9] Glosten L.R.- Jagannathan R. Runkle D. Relationship between the expected value and the volatility of the nominal excess return on stocks. Journal of Finance 48, 1993, p [10] Gursoy G. Yuksel A. Yuksel A. Trading volume and stock market volatility: evidence from emerging stock markets. Investment Management and Financial Innovations, Vol. 5, Issue 4, 2008, p [11] Kumar B. Singh P. Pandey A. The Dynamic Relationship between Price and Trading Volume: Evidence from Indian Stock Market. W.P. No Available at: [12] Lamoureux C. Lastrapes N. Heteroscedasticity in stock return data: volume versus GARCH Effects. The Journal of Finance, Vol. XLV (March 1990), No. 1, p [13] Miyakoshi T. ARCH versus Information-Based Variances: Evidence from the Tokyo Stock Market. Japan and the World Economy 14, 2002, p [14] Miyakoshi T. News and Asian Emerging Markets. Review of Pacific Basin Financial Markets and Policies. Vol. 9, No. 3, 2006, p [15] Naliniprava T. The Empirical Relationship between Trading Volumes & Stock Return Volatility in Indian Stock Market. European Journal of Economics, Finance and Administrative Sciences 24, 2010, p [16] Nelson D. Conditional heteroskedasticity in asset returns: A new approach. Econometrica 59, 1991, p [17] Noryati A. Impact of Automated Trading in the Crude Palm Oil Futures Market on its Underlying Spot Market. International Research Journal of Finance and Economics 36, Available at: [18] Omran M.F. Mckenzie E. Heteroscedasticity in stock returns data revisited: volume versus GARCH effects. Applied Financial Economics 10, 2000, p [19] Pekár J. - Brezina I. - Čičková Z. Model support for construction of regional models. In: Regional disparities in Central and Eastern Europe : theoretical models and empirical analyses. Bratislava : EKONÓM. 2010, p [20] Poon S-H. Granger C.W.J.: Forecasting Volatility in Financial Markets: A Review. Journal of Economic Literature, Vol. XLI (June 2003), p [21] Rachev S.T. et al. Financial Econometrics. From Basics to Advanced Modeling Techniques. John Wiley&Sons, Hoboken, New Jersey, [22] Sharma J.L. Mougoue M. Kamath R. Heteroscedasticity in stock market indicator return data: volume versus GARCH effects. Applied Financial Economics, Vol. 6, 1996, p [23] Zakoian J.M. Threshold Heteroskedastic Models. Journal of Economic Dynamics and Control, 18, 1994, p [24] [25] (valid to May 31, 2011) [26] BE html?selectedMep=3 (valid to May 31, 2011) [27] FR html?selectedMep=1 (valid to May 31, 2011)

15 The role of the trading volume in explaining the volatility persistence 15 Appendices 1A AF Source: own calculations in EViews 5.1 Appendix 1A Parameters of the GARCH(1,1) model and selected statistics alfa*** beta*** LM(1) Q(12) Q2(12) alfa+beta atx 0, ,8417 0, ,626 16,41 0, ers 0, , , ,611 12,953 0, immo 0, , , ,992* 2,1148 1, tel 0, , , ,035 2,3435 0,98875 ins 0, , , ,8862 4,8231 0, voest 0, ,9146 2, ,172 16,67 1, bel 0, , , , ,86* 0, an 0, , , ,021 11,878 0, dl 0, , , ,531 1,8367 0, gb 0, , , ,6402 3,7655 0, gd 0, , , ,9303 0,358 0, s 0, , , ,5117 6,0133 0, cac 0, , , , ,153** 0, bnp 0, , , ,459 15,352 0, ft 0, , ,783301* 11,167 5,5215 0, gdf 0, , , ,1469 0,1673 0, san 0, , , ,079 6,6704 0, tot 0, , , , ,976 0, Appendix 1B Parameters of the GARCH(1,1) model with volume and selected statistics alfa*** beta*** volume*** LM(1) Q(12) Q2(12) alfa+beta atx 0, , , , ,764 14,404 0, ers 0, , , , ,168 12,947 0,98487 immo 0, , , , ,26 2,3749 1, tel 0, , , , ,883 5,8759 0, ins 0, , , , , ,973 0, voest 0, , , , ,107 14,799 0, bel 0, , , , , ,553*** 0, an 0, , , , ,314 20,316* 0, dl 0, , , , ,559* 9,4564 0,7076 gb 0, , , , ,3848 6,0071 0, gd 0, , , , ,3123 4,5955 0, s 0, , , , ,9605 8,8752 0, cac 0, , , , ,245 20,289* 0, bnp 0, , , , ,513 13,506 0, ft 0, , , , ,629 12,827 0,70195 gdf 0, , , , ,007 1,654 0,73883 san 0, , , , ,99 20,766* 0, tot 0, , , , ,684 11,048 0,969272

16 16 Michaela Chocholatá Appendix 1C Parameters of the GJR-GARCH(1,1) model and selected statistics alfa gama beta*** LM(1) Q(12) Q2(12) alfa+beta atx 0, ,187204*** 0, , ,317 15,265 0, ers 0,028045** 0,083939*** 0, , ,607 12,865 0, immo 0,17091*** 0,20056*** 0, , ,172* 1,9313 0, tel 0, ,10077*** 0, , ,623 3,2027 0, ins 0,115237*** 0,146507*** 0, , ,8821 4,4127 0, voest 0,101948*** -0,03151** 0, ,899845* 13,293 16,073 1, bel 0, ,210788*** 0, , , ,363 0, an 0, ,136526*** 0, , ,342 9,689 0, dl -0, ,03932*** 0, , ,117 2,5147 0, gb -0,01773* 0,233298*** 0, , ,835 6,8904 0, gd -0,0015 0,073305*** 0, , ,408 0,5707 0, s 0,058819*** 0, , , ,5177 5,963 0, cac -0,03154*** 0,227787*** 0, ,3103*** 10,78 26,75*** 0, bnp 0,014938* 0,109841*** 0, , , ,518* 0, ft 0,007552** 0,027771*** 0, , ,67 3,9778 0, gdf -0, ,090054*** 0, , ,204 0,4496 0, san 0,025413*** 0,039702*** 0, , ,095 5,3906 0, tot 0,038903*** 0,099496*** 0, , , ,375 0, Appendix 1D Parameters of the GJR-GARCH(1,1) model with volume and selected statistics alfa gama beta*** volume*** LM(1) Q(12) Q2(12) alfa+beta atx 0, ,181932*** 0, , , ,799 12,347 0, ers 0,0316*** 0,08*** 0, , , ,783 13,369 0, immo 0,168992*** 0,234785*** 0, , , ,550* 2,1599 0, tel 0,066782*** 0,174397*** 0, , , ,661 5,2125 0, ins 0,156057*** 0,279026*** 0, , , ,935 13,256 0, voest 0,104723*** -0,03279** 0, , , ,217 14,338 1,01722 bel -0, ,241063*** 0, , , , ,858* 0, an 0,071989*** 0,244499*** 0, , , ,215 9,0255 0, dl 0,168237*** -0, , , , ,309 10,329 0, gb -0, ,238847*** 0, , , ,936 8,0893 0, gd 0,102464*** 0, , , , ,006 5,9645 0,66724 s 0,074336*** 0,067278*** 0, , , ,1033 8,8146 0, cac -0,04017*** 0,240018*** 0, , ,8156*** 10,697 24,296** 0, bnp 0, ,125163*** 0, , , , ,233 0, ft 0,033389* 0,123269*** 0, , , ,329 10,833 0, gdf 0,136075*** 0, , , , ,721 1,4091 0, san 0,050506** 0,216044*** 0, , , ,605 17,498 0, tot 0,031338** 0,125586*** 0, , , ,215 11,365 0,883778

17 The role of the trading volume in explaining the volatility persistence 17 Appendix 1E Parameters of the EGARCH(1,1) model and selected statistics alfa*** gama beta*** LM(1) Q(12) Q2(12) atx 0, ,115148*** 0, , ,413 13,547 ers 0, ,061855*** 0, , ,173 18,136 immo 0, ,048107*** 0, , ,505** 2,248 tel 0, ,091616*** 0, , ,646 3,1726 ins 0, ,077105*** 0, , ,1173 2,879 voest 0, ,019356* 0, ,75335* 13,359 16,072 bel 0, ,140895*** 0,9757 0, , ,951* an 0, ,109339*** 0, , ,308 11,333 dl 0, ,05369*** 0, , ,44 3,1902 gb 0, ,132077*** 0, , ,245 6,0766 gd 0, ,093806*** 0, , ,188 0,3632 s 0, , , , ,3195 6,7603 cac 0, ,172572*** 0, ,1430*** 9, ,012** bnp 0, ,091828*** 0, , , ,616** ft 0, ,03335*** 0, , ,067 4,8842 gdf 0, ,112302*** 0, , ,837 0,4213 san 0, ,050254*** 0, , ,595 5,7426 tot 0, ,071924*** 0, , , ,09 Appendix 1F Parameters of the EGARCH(1,1) model with volume and selected statistics alfa*** gama beta volume LM(1) Q(12) Q2(12) atx 0, ,109973*** 0,935451*** 0,109463*** 0, ,413 10,926 ers 0, ,058358*** 0,978296*** 0,037066*** 2,784593* 10,398 20,759* immo 0, ,064792*** 0,970105*** 0,045181*** 0, ,613** 2,6496 tel 0, ,126490*** 0,847553*** 0,256316*** 0, ,84 12,999 ins 0, , , ,990760*** 0, , ,40*** voest 0, ,023176** 0,986372*** 0,024213** 3,697982* 14,187 16,311 bel 0, ,160884*** 0,950889*** 0,040278*** 0, ,868 19,297* an 0, ,095406*** -0,199801*** 1,416324*** 3,79542* ,65*** dl 0, , , ,394104*** 0, ,376*** 124,11*** gb 0, ,136175*** 0,932442*** 0,051401*** 0, ,662 8,3665 gd 0, , ,274871*** 1,275045*** 3,222473* 16, ,72*** s 0, ,100761*** 0,297041*** 1,128872*** 0, ,884 71,877*** cac 0, ,178377*** 0,954267*** 0,096304*** 8,317*** 9,917 16,878 bnp 0, ,060058** -0,118552*** 2,417512*** 3,79673* 23,451** 560,51*** ft 0, , ,137044*** 1,878116*** 0, ,726*** 102,06*** gdf 0, ,069324** -0,243543*** 1,286251*** 2, ,663* 374,84*** san 0, ,122751*** -0,085604* 1,62563*** 2, ,545** 293,08*** tot 0, ,08982*** 0,935995*** 0,090272*** 0, ,211 9,502

18

19 Aktualne trendy w tworzeniu systemów inteligentnego monitoringu wizyjnego Paweł Forczmański 1, Dariusz Frejlichowski 1, Adam Nowosielski 1, Radosław Hofman 2 1 Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki 2 Smart Monitor sp. z o.o Abstract: This article provides an overview and critical analysis of computer vision algorithms used in the construction of the modules responsible for recognition and identification of objects which are elements of an intelligent monitoring system. We investigate state-of-the-art methods with an enough high potential to be implemented in a practical realization of such a system. The article describes three main elements of modern surveillance system, namely an adaptive background model, object extraction and tracking. Finally, we describe several recent benchmark datasets that can be used to test real systems. Keywords: Visual surveillance system, background model, object detection, object tracking, video content analysis 1. Wprowadzenie W niniejszym artykule przedstawiono przegląd i krytyczną analizę algorytmów widzenia komputerowego wykorzystanych przy budowie modułów rozpoznawania i identyfikacji obiektów będących elementami inteligentnego systemu monitoringu wizyjnego. Szczególny nacisk położono na wskazanie metod, których potencjał jest na tyle wysoki, aby można je było zastosować w praktycznej realizacji takiego systemu. W artykule skupiono się na trzech głównych elementach, tj. adaptacyjnym modelu tła, ekstrakcji obiektów ruchomych i śledzeniu obiektów pierwszoplanowych. Na początku pracy opisano wybrane algorytmy i oceniono ich potencjał w aspekcie wykorzystania w praktycznej realizacji systemu monitoringu. Następnie skupiono się na opisie wybranych podejść algorytmicznych. Dodatkowym problemem, jaki można zaobserwować w toku analizy literatury naukowej jest brak uniwersalnego zestawu danych testowych, który przydatny jest w procesie opracowywania i badania nowych algorytmów stosowanych do budowy inteligentnych systemów monitoringu wizyjnego. W ostatnich latach podjęto jednakże próby, które maja za zadanie ocenę skuteczności działania systemów monitoringu wizyjnego w ograniczonym zakresie zastosowań i sytuacji. Każdy z projektów skupia się na innych aspektach obserwacji i detekcji konkretnych obiektów oraz zdarzeń. Ich przeglądowi poświęcony jest jeden z rozdziałów niniejszej pracy Cechy nowoczesnych systemów monitoringu wizyjnego Nowoczesne systemy monitoringu wizyjnego stają się coraz popularniejsze, a ich funkcjonalność z roku na rok rośnie. Głównym elementem każdego z nich, i jednocześnie najbardziej zawodnym, jest człowiek operator, który obserwuje na bieżąco strumień video Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

20 20 Paweł Forczmański, Dariusz Frejlichowski, Adam Nowosielski, Radosław Hofman i podejmuje określone akcje w zależności od zaistniałej sytuacji. Należy jednocześnie podkreślić, iż duża liczba jednocześnie obserwowanych monitorów powiązanych z wieloma kamerami zainstalowanymi w różnych punktach chronionego obszaru powoduje, że nie wszystkie zagrożenia są odpowiednio wcześnie identyfikowane, co może przekładać się na niską skuteczność całego systemu ochrony. Analiza problemu pokazuje, że na rynku istnieją dwa główne trendy, które definiują zakres zastosowań nowoczesnych systemów monitoringu. Pierwszy z nich dotyczy problemów ochrony mienia i obejmuje tworzenie systemów nadzoru chroniących prywatne posesje, zakłady pracy, magazyny i ogólnie rozumianą przestrzeń publiczną przed włamaniami, kradzieżami oraz działaniem czynników takich jak pożar czy powódź. Celem systemów należących do tej kategorii jest wykrywanie wtargnięcia osób nieuprawnionych do określonych pomieszczeń, przekroczenie ogrodzenia, czyli w dużej ogólności przebywania w określonych miejscach osób do tego nieuprawnionych a także wykrywanie obecności dymu, ognia, czy też wody. Kategoria ta obejmuje również inteligentne systemy transportowe, które stosowane są m.in. do śledzenia ruchu pojazdów. Druga kategoria systemów skupia się na wykrywaniu określonych zachowań, niezgodnych z ustalonymi normami, np. bójek, aktów wandalizmu, napadów rabunkowych, zarówno na otwartym terenie, jak również w pomieszczeniach zamkniętych (sklepach, bankach, lokalach rozrywkowych i gastronomicznych). Do kategorii tej należą również systemy wykrywające określone zachowania osób chorych (zasłabnięcia, zemdlenia, upadki), które wymagają szybkiej interwencji personelu medycznego. O ile na rynku znaleźć można wiele przykładów systemów, które wspomagają monitoring miejsc publicznych i prywatnych domów lub mieszkań pod kątem ochrony przed włamaniem, czy kradzieżą, to systemy z drugiej wymienionej kategorii nie są tak licznie reprezentowane. Wynika to z dużo większego stopnia złożoności algorytmów detekcji zachowań w porównaniu do algorytmów detekcji ruchu i śledzenia obiektów ruchomych. 2. Krytyczna analiza istniejących rozwiązań Systemy inteligentnego monitoringu w większości przypadków koncentrują się na śledzeniu osób w sekwencjach video. W niewielkiej liczbie przypadków systemy takie dodatkowo analizują zachowanie obserwowanych osób i pojazdów. Ponieważ sama skuteczna i efektywna realizacja zadania lokalizacji obiektów ruchomych nie stanowi o nowoczesności systemu monitoringu wizyjnego, w dalszej części niniejszego rozdziału opisane zostaną systemy, które wykonują bardziej zaawansowane działania. Interesującym przykładem zaawansowanego podejścia do monitoringu wizyjnego jest koncepcja systemu opisana w [1]. System analizujący zachowanie śledzonych osób opiera się na informacji o trajektorii, położeniu i prędkości wykrytych obiektów. Do analizy wykorzystywane są Ukryte Modele Markowa (ang. Hidden Markov Models, HMM). Rozpoznawanie konkretnego zachowania sprowadza się do wyznaczenia podobieństwa do wzorca zapisanego w bazie danych systemu. Zakłada się przy tym istotny wkład analizy wielu wcześniej zarejestrowanych sekwencji w procesie adaptacji systemu. Stanowi to niestety dość istotną wadę, związaną z koniecznością przygotowania dużej bazy danych uczących dla każdego konkretnego przypadku. Do tego należy dodać ograniczoną skuteczność HMM wykorzystujących udział eksperta w procesie kalibracji systemu. Opracowanie [2] prezentuje algorytm uogólnionego filtra cząsteczkowego MAPF do śledzenia wielu różnorodnych obiektów w tym samym momencie. W proponowanym rozwiązaniu obiekty śledzone są przez cały czas, z uwzględnieniem prostych scenariuszy, takich jak na przykład wejście lub wyjście śledzonego obiektu (w sensie pojawienia się

21 Aktualne trendy w tworzeniu systemów inteligentnego monitoringu wizyjnego 21 nowego obiektu na scenie lub opuszczenia jej poprzez śledzony obiekt). Drugą kluczową cechą wspomnianego systemu jest wskazanie konkretnych miejsc, które podlegają analizie, na przykład wejścia do sklepu lub obszarów o ograniczonym dostępie, co z praktycznego punktu widzenia jest bardzo istotne. Pamiętać należy, że nie wszystkie fragmenty rejestrowanego obszaru muszą podlegać analizie, a niektóre wręcz nie powinny być obserwowane. W pracy [3] zwrócono szczególną uwagę na problemy typowe dla systemów automatycznego monitoringu, a wśród nich szczególnie na ich niską skuteczność w warunkach rzeczywistych. Dotyczy to szczególnie modułu klasyfikacji obiektów zlokalizowanych na scenie. Dlatego też w praktycznie wszystkich rzeczywistych aplikacjach wprowadza się szereg dodatkowych ograniczeń i założeń dla funkcjonowania finalnego systemu. Jest to o tyle istotna cecha, że podobnie jak w przypadku poprzedniej analizowanej publikacji, różnego rodzaju ograniczenia dotyczyć mogą przede wszystkim rozmiaru i kształtu kontrolowanego obszaru, liczby analizowanych obiektów, parametrów kamery, itd. Najpoważniejszą wadą prezentowanego w [3] podejścia jest pominięcie problemu modelowania tła. Autorzy z góry założyli, że tło jest predefiniowane i niezmienne, a wykrywanie śledzonych obiektów sprowadza się do prostego algorytmu odejmowania macierzy pikseli. Co więcej, system należy skalibrować w celu poprawnej oceny perspektywy i skali obserwowanych obiektów. Pierwsze uproszczenie istotnie ogranicza możliwość wykorzystania podejścia w warunkach rzeczywistych, gdzie zazwyczaj tło jest zmienne w czasie, nie tylko ze względu na pojawiające się obiekty, które mają być monitorowane. Najbardziej oczywiste są zmiany oświetlenia w ciągu doby, ale równie często mogą pojawiać się problemy z ruchem niewielkich obiektów spowodowanym na przykład wiatrem (również zauważalny w pomieszczeniach, jako ruch za oknem). Klasyczny przykład tego typu to ruch liści drzew w scenariuszu obejmującym monitorowanie terenu na zewnątrz budynku. Kolejną cechą opisywanego podejścia jest wyróżnienie zaledwie pięciu klas obiektów (tj. człowiek, części ciała, bagaż, grupa ludzi, tłum). Zastosowane deskryptory obiektów to m.in.: symetria obiektu (wyznaczana poprzez porównywanie rzutów obiektu 2D na osie OX i OY), cechy DCT (dyskretna transformata kosinusowa), momenty geometryczne, symetryczne fluktuacje organów (ang. Symmetric Organs Fluctuation, SOF feature), właściwości tekstury (wartość średnia luminancji, odchylenie standardowe dla histogramu, asymetria histogramu), pionowe i poziome projekcje, cechy morfologiczne (zestaw pięciu prostych cech do opisu obiektów: stosunek wysokości obiektu do obwodu, stosunek powierzchni obiektu do kwadratu obwodu, stosunek szerokości do wysokości, stosunek powierzchni obiektu do powłoki wypukłej), miara SDF (ang. Scene Dependent Features). Ważna idea została przedstawiona w [4] i dotyczy wykrywania nieprawidłowości w trajektorii ruchu obserwowanych osób. Takie rozwiązanie wydaje się być szczególnie istotne w przypadku monitorowania zachowania osób chorych. Jednakże już sami autorzy zwracają uwagę na trudność w określeniu modelu podejrzanego zachowania i brak prostej miary podobieństwa dla analizowanych trajektorii. W [4] trajektorie ruchu obserwowanych osób reprezentowane są w formie przejść pomiędzy wierzchołkami grafu. Na ruch składają się proste odcinki (wektory), co daje jego dyskretną reprezentację. Poprzez akumulację możliwe staje się określenie typowej trajektorii (dominujące przejścia w grafie). Praktyczna implementacja algorytmów grafowych może być jednak trudna z uwagi na duże wymagania stawiane przed zasobami obliczeniowymi. Ciekawą koncepcję zaproponowano w [5]. Celem autorów było monitorowanie zachowania człowieka po przebytym udarze oraz obserwacja osoby upośledzonej ruchowo, poddanej długotrwałej rehabilitacji. Ograniczeniem proponowanego rozwiązania jest niewątpliwie konieczność stosowania widzialnych znaczników (markerów), co w praktycznych zastosowaniach nie jest możliwe.

22 22 Paweł Forczmański, Dariusz Frejlichowski, Adam Nowosielski, Radosław Hofman Rozwiązaniem powyższego problemu jest podejście zaprezentowane w pracy [6], które zakłada posiadanie wiedzy o układzie monitorowanego pomieszczenia i pozycjach kluczowych przedmiotów. System rozpoznaje kilka akcji, np. wejście do pomieszczenia, praca przy komputerze, odebranie telefonu, otwarcie szafki, wstawanie, siadanie, podniesienie przedmiotu, pozostawienie przedmiotu, opuszczenie pokoju (z przedmiotem). Do określenia powyższych cech wykorzystywany jest graficzny edytor, obsługiwany przez operatora, który kalibruje system. Akcje modelowane i rozpoznawane są poprzez maszynę stanów (cecha wysokopoziomowa). Przejścia pomiędzy stanami zależą od położenia osoby, uzależnione są od zmian wykrytych w scenie lub są wynikiem śledzenia są to trzy cechy niskopoziomowe używane w systemie. Wadą tego podejścia jest konieczność znajomości topografii pomieszczenia i każdorazowa kalibracja systemu w sytuacji, gdy zostanie ona zmieniona. 3. Algorytmy stosowane w systemach monitoringu wizyjnego Zasadę działania inteligentnego systemu monitoringu wizyjnego można przedstawić za pomocą schematu przedstawionego na rysunku 1. Najważniejszymi elementami są w takim systemie moduły odpowiedzialne za modelowanie tła, śledzenie i klasyfikację obiektów. Ważną funkcję spełnia również moduł eliminacji artefaktów (np. cieni, odbić, fałszywych detekcji). Strumień video indywidualne klatki obiekty pierwszego planu Śledzenie obiektów Model tła Ruchome obiekty Usuwanie artefaktów Odpowiedź systemu Obiekty do klasyfikacji Klasyfikacja obiektów 3.1. Model tła Rysunek 1. Schemat funkcjonalny inteligentnego systemu monitoringu wizyjnego Algorytmy wykrywania ruchu w strumieniu video bazują w większości przypadków na procesie usuwania tła, czyli metodzie wydobywania obiektów pierwszoplanowych. Obiekt na pierwszym planie można opisać jako obszar zainteresowania, który charakteryzuje się wysoką spójnością przestrzenną. Należy w tym miejscu podkreślić, że wysoka spójność

23 Aktualne trendy w tworzeniu systemów inteligentnego monitoringu wizyjnego 23 przestrzenna dotyczy obiektów o stosunkowo dużych gabarytach, co pozwala na wyeliminowanie w procesie detekcji obszarów o dużej zmienności, ale nie będących w zakresie zainteresowania systemu, np. liści na drzewach lub fal na wodzie. W niektórych przypadkach odległość poruszającego się obiektu stanowi również podstawę dla tego, aby uznać go za tło, np. jeśli na scenie jedna osoba znajduje się blisko kamery, podczas gdy druga osoba znajduje się daleko w tle, system powinien zignorować osobę oddaloną od kamery. Odejmowanie tła to cała klasa technik segmentacji w zastosowaniach takich jak nadzór wizyjny, nawigacja autonomicznych obiektów ruchomych itp. Istnieje wiele problemów związanych z tworzeniem skutecznego algorytmu odejmowania tła. Po pierwsze, algorytm taki musi być odporny na zmiany oświetlenia. Po drugie, należy unikać wykrycia niestacjonarnych obiektów w tle, cieni poruszających się obiektów, ruchomych odblasków światła, odbić obiektów w wodzie czy też w gładkich powierzchniach (szyby, lustra). Skuteczny model tła powinien szybko reagować na zmiany na scenie i dostosowywać się do nich. Podczas wyboru algorytmu należy zwracać szczególną uwagę na wysoki wskaźnik wykrywalności obiektów pierwszoplanowych i niski czas przetwarzania. W literaturze naukowej spotkać można trzy główne nurty związane z algorytmami eliminacji tła: naiwne modele bazujące na odejmowaniu tła statycznego; modele o średnim stopniu skomplikowania, bazujące na uśrednianiu w czasie; złożone modele adaptacyjne, bazujące m.in. na modelach Gaussowskich (ang. Gaussian Mixture Models). Podejścia z pierwszej z omawianych grup bazują na prostym założeniu, że obraz tła jest znany i niezmienny w czasie. Algorytmy te porównują bieżącą klatkę z wcześniej wykonanym obrazem tła, na którym nie ma ruchomych obiektów i wskazują piksele, którymi różną się oba obrazy. Jeżeli liczba takich pikseli jest większa od zera, oznacza to, że na scenie pojawił się ruchomy obiekt pierwszoplanowy. Tego typu rozwiązania są zazwyczaj mało skuteczne, a jedyną ich zaletą jest możliwość pracy na indywidualnych klatkach bez dostępu do całej sekwencji video. Algorytmy takie zawodzą w sytuacji, gdy na scenie nie ma faktycznie ruchu obiektów, natomiast zmianom podlega oświetlenie, zmieniają się warunki atmosferyczne (opady deszczu i śniegu) a także w sytuacjach, gdy sensor kamery charakteryzuje się dużym szumem własnym. W [7] zaproponowano szybkie odejmowanie tła na podstawie wykrywania zmian w scenie przy użyciu mapy przesunięć (stereowizja). Rozwiązanie to zostało zmodyfikowane i opisane w [8]. W drugim rozwiązaniu dodano podejście polegające na wydajniejszej konfiguracji przestrzennej kamer, tak, aby uniezależnić się od błędów pojawiających się przy użyciu wcześniejszej wzmiankowanej metody. Aby wyeliminować powyższe problemy stosuje się często modele wykorzystujące uśrednione tło, obliczone na podstawie pewnej liczby klatek pobranych z sekwencji video. Takie rozwiązanie zwiększa stabilność modelu tła. Dalsze zwiększenie odporności na wyżej wymienione problemy można uzyskać poprzez obliczanie wzorca tła, jako średniej arytmetycznej z kolejnych klatek, wyznaczanej w określonym z góry interwale czasowym i poprzez regularne powtarzanie tego działania. Taki algorytm opisano w [9]. Opisane badania pokazały, że liczba uśrednianych klatek powinna mieścić się w przedziale , co w przypadku strumienia o 25 klatkach/s daje 5 10 sekund czasu trwania rejestracji. Bez wątpienia największą skuteczność można uzyskać przy wykorzystaniu adaptacyjnych algorytmów bazujących na GMM (ang. Gaussian Mixture Models). Jest to obecnie najczęściej wspominana w publikacjach naukowych technika eliminacji tła. W [10] opisana została metoda wykorzystująca adaptacyjny model obliczany dla każdego piksela obrazu, opisany za pomocą zestawu rozkładów Gaussa. Metoda ta uwzględnia

24 24 Paweł Forczmański, Dariusz Frejlichowski, Adam Nowosielski, Radosław Hofman powolne zmiany oświetlenia, powtarzalny ruch na nieuporządkowanym w tle i długoterminowe zmiany sceny. Przedstawione w pracy wyniki eksperymentalne, uzyskane za pomocą GMM są bardzo obiecujące, dlatego też metoda ta stała się bazą do dalszych badań prowadzonych przez wielu innych naukowców. Przykładowe efekty działania modelu tła bazującego na GMM przedstawiono na rysunku 2. Rysunek 2. Efekty działania algorytmu modelowania tła za pomocą GMM. W pierwszym wierszu od lewej: klatka strumienia wejściowego i piksele tła. W drugim wierszu: piksele obiektów pierwszoplanowych i maska binarna obiektów przekazywanych do modułu śledzenia Poważnym problemem opisywanym w literaturze jest optymalny dobór liczby modeli gaussowskich opisujących każdy piksel. Autorzy prezentują pogląd, że w praktycznych zastosowaniach liczba ta powinna być w zakresie 3-5. W [11] przedstawiono modyfikację algorytmu GMM, która pozwala na adaptacyjny dobór liczby rozkładów. Kolejny problem dotyczy procedury obliczania równania aktualizacji modelu tła. W artykule [12] poprawiono adaptacyjne cechy modelu GMM na bazie ponownego obliczania współczynników równania aktualizacji. Autorzy udowodnili, że ich podejście pozwala na uzyskanie lepszych rezultatów nie tylko dzięki większej wydajności, ale także szybszemu procesowi uczenia modelu. Przy tym możliwe jest wykrywanie poruszających się cieni analizowanych obiektów. Dzięki temu można uzyskać dodatkową redukcję czasu potrzebnego na obliczenia. Algorytmy bazujące na GMM charakteryzują się, niestety, niską odpornością na nagłe zmiany oświetlenia, co powoduje wiele fałszywych detekcji. W publikacji [13] autorzy zaproponowali wykorzystanie zarówno cech dotyczących kolorów, jak i gradientów pikseli, co spowodowało, że proces odejmowania tła jest bardziej odporny na nagłe zmiany oświetlenia. W [14] wykorzystane zostało rozmyte łączenie gradientu oraz koloru w funkcji modelu tła. Kolejne modyfikacje modelu GMM zaprezentowano także w [15], [16] oraz [17]. W pierwszym ze wspomnianych artykułów, po krytycznej ocenie oryginalnego podejścia zaproponowano metodę, stosującą usprawnioną wersję wektora koloru, dzięki czemu zwiększono wydajność całego algorytmu. Natomiast pozostałe dwie wymienione prace koncentrowały się na przeglądzie metod usuwania tła i zwiększeniu odporności modelu na nieoczekiwane zmiany wynikające z wpływu środowiska. Ciekawe podejście do połączenia GMM z innymi cechami przestrzenno-czasowymi opisano również w [18].

25 Aktualne trendy w tworzeniu systemów inteligentnego monitoringu wizyjnego Śledzenie obiektów Zadanie śledzenia obiektów w strumieniu video definiuje się jako proces ustalania położenia danych obiektów w kolejnych klatkach obrazu. Dodatkowo, może ono zawierać elementy szacowania toru ruchu, po którym porusza się analizowany obiekt. Etap śledzenia obiektów odbywa się po wyznaczeniu przez model tła regionów pierwszoplanowych. Na podstawie prognozowanego położenia regiony te dopasowywane są do już śledzonych obiektów. Obiekty często są etykietowane, co ułatwia późniejszą analizę np. zachowania. Następnie aktualizowana jest trajektoria ruchu obiektu oraz prognozowane jest jego przyszłe położenie. Dla obszarów pierwszego planu, do których nie można dopasować żadnego śledzonego obiektu, tworzy się nowe obiekty, natomiast obiekty opuszczające obserwowaną scenę muszą zostać usunięte z listy śledzonych obiektów. Dodatkowo, fragment algorytmu odpowiedzialny za śledzenie powinien reagować na sytuacje, w których kilka śledzonych obiektów spotyka się w jednym regionie pierwszego planu i tworzy jeden obiekt, aby po chwili znów podzielić się na kilka odrębnych obiektów. Moduł śledzący powinien zadbać w takiej sytuacji o to, aby obiekty po podzieleniu się otrzymały pierwotne etykiety. Bardzo wiele algorytmów śledzenia zakłada, ze obiekty poruszają się w sposób płynny, nie zmieniając drastycznie swojej trajektorii i prędkości [19][20]. Założenie to znacznie upraszcza całe zadanie, jednak powoduje, że algorytm staje się podatny na szum. Zakłócenia wpływające na wyznaczenie konturu obiektu, wpływają na określenie położenia środka masy, co z kolei nie pozostaje bez efektu przy prognozowaniu jego przyszłego położenia. Założenie o liniowości procesu przemieszczania się nie jest także całkowicie poprawne w przypadku śledzenia osób, które mogą w sposób nieprzewidywalny zatrzymać się lub całkowicie zmienić kierunek poruszania się. W literaturze przedmiotu zaobserwować można kilka kierunków badań nad algorytmami śledzenia obiektów, m.in.: algorytmy bazujące na wyglądzie (ang. appearance-based), algorytmy wykorzystujące modele i wektory ruchu. Do pierwszej grupy należy algorytm Mean-shift, który wymaga określenia cech(-y) obrazu, na jakiej będzie operować. Może to być zarówno kolor, wykryte krawędzie, jak i inne cechy dobrze opisujące śledzone obiekty. W [21] jako cechę obrazu wykorzystano wynik działania filtra cząsteczkowego (ang. particle filter). Proces śledzenia rozpoczyna się od wskazania obiektu oraz miejsca, w którym się on znajduje w aktualnej klatce, następnie wyznaczane są cechy obiektu. Dla kolejnych klatek wykonywane są następujące kroki: 1. Odnalezione jest miejsce, w ustalonym otoczeniu ostatniego punktu obserwacji obiektu, o największym podobieństwie do ostatniego obrazu śledzonego obiektu. 2. Wyznaczany jest aktualny obraz obiektu. Główną zaletą algorytmu Mean-shift jest jego prostota. Za największą wadę tej metody należy jednocześnie uznać bazowanie na wyglądzie śledzonego obiektu, co pociąga za sobą szereg komplikacji. Jedną z nich są problemy z lokalizowaniem obiektów częściowo zasłoniętych lub gubienie obiektów zmieniających swój wygląd. Metoda ta nie jest odporna na sytuacje, gdy obiekty poruszają się zbyt szybko w stosunku do przetwarzanej liczby klatek. Prostym rozwiązaniem tego problemu jest poszukiwanie obiektu w wielu miejscach na scenie lub zwiększenie rozmiaru przeszukiwanego otoczenia. Jednak oba rozwiązania nie są optymalne, ponieważ pociągają za sobą wzrost ilości wykonywanych obliczeń. Problemy wymienione powyżej rozwiązuje w wielu przypadkach zastosowanie filtra Kalmana, który jest określony przez zbiór równań matematycznych opisujących estymator

26 26 Paweł Forczmański, Dariusz Frejlichowski, Adam Nowosielski, Radosław Hofman prognozująco-poprawiający [20]. Zadaniem filtra Kalmana jest estymowanie przyszłych wartości pochodzących z zaszumionego źródła w trzech krokach: 1. Prognozowanie na podstawie posiadanych danych kolejnych wartości ze źródła. 2. Korygowanie ostatniej prognozy na podstawie aktualnego pomiaru. 3. Aktualizowanie stanu estymatora. Filtr Kalmana znalazł zastosowanie w wielu dziedzinach, jednak najczęściej jest on używany w systemach wymagających prognozowania kierunku ruchu oraz położenia obiektów np. w systemach automatycznego nadzoru [20]. Należy jednak pamiętać o tym, że filtr Kalmana może modelować tylko liniowe systemy, co w przypadku systemów automatycznego nadzoru wymaga uproszczenia modelu poruszania się ludzi. Niezbędne jest założenie, że obserwowane obiekty nie będą gwałtownie zmieniać swojej prędkości oraz kierunku ruchu. Niewątpliwą zaletą śledzenia obiektów tą metodą jest jej duża wydajność oraz prostota. Należy także zwrócić uwagę na to, że w przeciwieństwie do algorytmu Mean-Shift, filtr Kalmana dokonuje śledzenia na podstawie wyznaczonej pozycji obiektu, a wiec jakość śledzenia nie zależy od fizycznego wyglądu i stopnia widoczności obiektu. Filtr Kalmana dostarcza również informacje o szacowanym przyszłym położeniu obiektu, co ułatwia identyfikację i etykietowanie wykrytych w kolejnej klatce obszarów pierwszego planu. Informacja o szacowanym przyszłym położeniu obiektu wykorzystywana jest także do poprawnego etykietowania obiektów, które połączyły się w jeden obszar pierwszego planu a następnie rozłączyły. Innym rozwiązaniem o dużym potencjale jest probabilistyczny model śledzenia zmian, który został zaprezentowany w pracy Kevina Smitha, Pedro Quelhasa i Daniela Gatica- Pereza w [22]. Model ten zakłada podział modułu śledzącego obiekty na dwie warstwy. Zadaniem pierwszej warstwy jest szacowanie ilości, położenia oraz rozmiaru obiektów obecnych na scenie. Z kolei zadaniem drugiej warstwy jest wykrywanie prawdopodobnych zdarzeń porzucenia obiektów oraz ich rozpoznawanie. Do implementacji tego modelu autorzy rozwiązania zaproponowali użycie różnostanowej dynamicznej sieci bayesowskiej (ang. Mixed-state Dynamic Bayesian Network), której zadaniem jest opis znajdujących się na scenie obiektów. Natomiast do śledzenia stanu obiektów wykorzystywana jest metoda próbkowania bazująca na podejściu Monte-Carlo i łańcuchach Markowa (ang. Monte Carlo Markov Chain). Większość metod śledzenia działa na dwuwymiarowym widoku sceny pozyskanym z pojedynczej kamery. Powoduje to problemy w sytuacji, gdy śledzony obiekt znika z pola widzenia kamery, przy czym z dużym prawdopodobieństwem cały czas znajduje się w obszarze sceny. Rozwiązaniem tego typu problemów jest zastosowanie transformacji homograficznej. Wiele z proponowanych systemów monitoringu wizyjnego udostępnia możliwość mapowania wykrytych obiektów na dwuwymiarowy plan obserwowanej sceny. Mapowanie takie uzyskiwane jest dzięki homografii i pozwala na wykorzystywanie w pełni informacji o scenie obserwowanej z wielu punktów jednocześnie. Metoda ta została wykorzystana m.in. w [23]. W systemach wykorzystujących tę metodę wykonywana jest operacja separacji tła dla każdej z kamer osobno, następnie korzystając z informacji o wzajemnym położeniu kamer oraz planie sceny, możliwe jest nałożenie na siebie wykrytych regionów pierwszego planu. Metoda ta umożliwia wyznaczenie dokładnego położenia obiektów, poprzez wyznaczenie części wspólnej nałożonych na siebie regionów pierwszego planu. Tak utworzony obraz można wykorzystać także do usuwania zakłóceń, wymagając, aby śledzone były obiekty wykryte przynajmniej na części aktualnych obrazów sceny. Podejście to pozwala obliczyć rzeczywiste odległości pomiędzy śledzonymi obiektami, co jest niezbędne w problemach rozpoznawania zdarzeń. Należy przy tym pamiętać, że wykorzystanie homografii zwiększa wydajność modułu śledzącego, nie definiując żadnego mechanizmu etykie-

27 Aktualne trendy w tworzeniu systemów inteligentnego monitoringu wizyjnego 27 towania obiektów, co wymusza zaimplementowanie metody szacowania trajektorii i etykietowania obiektów np. filtru Kalmana Usuwanie artefaktów W praktyce tworzenia systemów monitoringu istotnym problemem jest klasyfikacja obiektów ruchowych i elementów sceny, które nie są fizycznymi obiektami, a jednak poruszają się. Przykładem może być problem usuwania cienia obiektu, który jest śledzony. Przykładowe rozwiązanie można znaleźć w pracy [24], gdzie do realizacji tego zadania wykorzystano podejście teksturalne i filtry Gabora. Inna propozycja usuwania tła znajduje się w pracy [25]. Polega ona na analizie składowych w modelu HSV i w wielu przypadkach daje dobre rezultaty, nie okupione znaczącym zwiększeniem obciążenie systemu komputerowego. Przykładowe efekty działania procedury usuwania cieni przedstawiono na rysunku 3. Rysunek 3. Efekt usuwania cienia za pomocą metody opisanej w [25] Kolejne interesujące podejście opisane w [26] ma na celu uniezależnienie się od problemu nagłych zmian oświetlenia i cieni. Ograniczono się przy tym do ujęć realizowanych wewnątrz budynku, w pomieszczeniach zamkniętych. Podstawą proponowanego rozwiązania jest oryginalny, trójwymiarowy, stożkowy kształt modelu oświetlenia (ang. 3D Cone- Shape Illumination Model, CSIM), wzbogacony o metodę odejmowania z udziałem cieni i usuwaniem artefaktów. Podobne zagadnienia rozpatrywano również w [27] oraz [28]. Tam także, jako najistotniejszy problem do rozwiązania wskazano możliwość wykrywania obiektu na pierwszym planie w przypadku zmiennego oświetlenia, z jednoczesnym usunięciem cieni. Innego rodzaju podejście do automatycznej korekcji koloru obrazu zaprezentowano w [29], gdzie główny nacisk położono na wykorzystanie cech statystycznych obrazu. W [30] zastosowano algorytm wykrywania i śledzenia poruszających się obiektów przy użyciu linii obliczanych jako gradient jasności obrazu i bazujących na przepływie optycznym oraz detektorze krawędzi. Natomiast w [31] zrealizowano bardzo trudne zadanie rozdzielenia wyekstrahowanych obiektów na kategorie: poruszające się, duchy i cienie. 4. Przegląd benchmarkowych baz danych Ze względu na znaczną złożoność problemów spotykanych przy tworzeniu inteligentnych systemów monitoringu wizyjnego, których głównymi elementami są często algorytmy analizy i rozpoznawania obrazów i sekwencji video już na wstępie konieczne jest zwrócenie szczególnej uwagi na przygotowanie odpowiednich danych do badania ich skuteczności. Szczególnie ważne jest, aby dane testowe odzwierciedlały rzeczywiste warunki, w jakich działać ma dany system. Należy w tym miejscu uwzględnić dwie kwestie związane z uru-

28 28 Paweł Forczmański, Dariusz Frejlichowski, Adam Nowosielski, Radosław Hofman chamianiem systemu w przypadku różnorodnych, wymienionych w wstępie, scenariuszy oraz parametry techniczne charakteryzujące dane wejściowe odzwierciedlające rzeczywiste warunki otoczenia. 4.1 CAVIAR Pierwszy z prezentowanych rozwiązań to system CAVIAR [32]. Skrót wywodzi się od słów Context Aware Vision using Image-based Active Recognition. Na potrzeby omawianego projektu, osoby w nim zaangażowane przygotowały zestaw sekwencji video przedstawiających określone scenariusze i prezentujące zachowania obserwowanych osób. Zawarto w nich m.in. sekwencje spacerujących ludzi, spotykających innych ludzi, oglądających witryny sklepowe, wchodzących i wychodzących ze sklepów, bijących się, a także pozostawiających paczki w określonych miejscach. Większość sekwencji była nagrywana z użyciem kamery z obiektywem szerokokątnym, w standardzie PAL, w rozdzielczości 384 x 288 pikseli, zarejestrowanych w 25 klatkach na sekundę. Zastosowano kompresję MPEG2. Uzyskane pliki miały rozmiary pomiędzy 12 a 21 MB. Takie dane w dobry sposób odzwierciedlają rzeczywiste dane generowane przez systemy monitoringu wizyjnego PETS W środowisku naukowym szczególne znaczenie mają organizowane przez organizację IEEE warsztaty PETS - Performance Evaluation of Tracking and Surveillance [33]. W ramach warsztatów każdorazowo udostępniana jest oryginalna baza testowa. Bazy testowe PETS koncentrują się na analizie zachowania dużych grup ludzi, m.in. w zakresie szacowania liczby osób na scenie, sposobu poruszania się osób jako tłumu, czy też śledzeniu konkretnej osoby a także detekcji sytuacji potencjalnie niebezpiecznych, np. porzucenia bagażu. Możliwe są także inne scenariusze, ale prawie zawsze obejmują one ewaluację systemów detekcji wielu obiektów i rozpoznawania zdarzeń. Takie założenia wynikają z tego, że przedsięwzięcie PETS przeznaczone jest raczej dla badania systemów związanych z bezpieczeństwem miejsc publicznych (lotniska, centra handlowe, dworce) CLEAR i CREDS Projekt CLEAR ( Classification of events, activities and relationships ) jest bardzo zbliżony do wyżej wymienionego PETS. Są to warsztaty organizowane w celu oceny wydajności systemów analizy sekwencji video i, podobnie jak poprzednio, organizatorzy przygotowują specjalny zestaw danych testowych, które są podstawą późniejszej oceny zaproponowanych przez naukowców rozwiązań [34]. Przedmiotem szczególnego zainteresowania jest identyfikacja wydarzeń i różnych form aktywności oraz ich wzajemne powiązanie. Najważniejsze problemy, które są uwzględniane w bazie obejmują śledzenie osób, śledzenie twarzy, śledzenie pojazdów, identyfikację osób, szacowanie położenia głowy, detekcję i klasyfikację dźwięków. Niestety danych testowych zawartych w bazie projektu CLEAR jest niewiele. W niektórych przypadkach jest to zaledwie pojedyncza sekwencja, co stanowi poważne ograniczenie w zastosowaniu do testowania realnych systemów. Innym przykładem podobnych warsztatów jest CREDS Call for real-time event detection solutions (creds) for enhanced security and safety in public transportation, które miały formułę zbliżoną do dwóch wcześniej omawianych [35]. Tym razem jednak uwagę

29 Aktualne trendy w tworzeniu systemów inteligentnego monitoringu wizyjnego 29 skoncentrowano na ocenie jakości wykrywania zdarzeń w środkach komunikacji miejskiej w aspekcie bezpieczeństwa ETISEO ETISEO [36] to projekt poświęcony ewaluacji systemów rozumienia obrazów, który zakończył się w 2006 roku. Najważniejszym celem było zbadanie wpływu charakterystyk strumieni video na skuteczność segmentacji, śledzenia i rozpoznawania zdarzeń. Uzyskane wnioski i rezultaty zaowocowały decyzją o upublicznieniu różnego rodzaju danych, jakie pojawiły się w trakcie realizacji ETISECO, co sprawia, że projekt charakteryzuje się dużym znaczeniem w aspekcie całego problemu analizy sekwencji video 4.5. i-lids i SPEVI Biblioteka i-lids [37] zawiera sekwencje przeznaczone do ewaluacji skuteczności wykrywania zdarzeń takich jak porzucony bagaż, zaparkowany pojazd, ochrona przy wejściu do budynku i ochrona wybranych stref. Była tworzona przy współpracy z Centrum Ochrony Infrastruktury Krajowej (Centre for the Protection of National Infrastructure) i jest chętnie stosowana przez różnego rodzaju służby w Wielkiej Brytanii. Jest uznawana za rządową bazę testową dla systemów analizy sekwencji video w tym kraju. Wymienia się aktualnie pięć scenariuszy, których dotyczyć może testowanie. Należą do nich monitorowanie stref zamkniętych, wykrywanie zaparkowanych pojazdów, wykrywanie porzuconego bagażu, nadzór wejść do budynku oraz śledzenie obiektów z uwzględnieniem obrazu z wielu kamer. Podobna do projektu i-lids jest Inicjatywa SPEVI (Surveillance Performance EValuation Initiative) [38], która dotyczy szeroko rozumianego monitoringu wizyjnego z głównym naciskiem położonym na zadania związane ze śledzeniem osób w środowisku biurowym CVAP Na zakończenie przeglądu publicznych baz związanych z monitoringiem warto wspomnieć o bazie testowej opracowanej przez pracowników laboratorium CVAP (Computer Vision and Active Perception Lab) z Królewskiego Instytutu Technologicznego w Szwecji [39]. Omawiana baza zawiera zestaw sekwencji video przygotowanych z myślą o rozpoznawaniu czynności realizowanych przez człowieka. Opracowano bazę prezentującą sześć podstawowych aktywności: marsz, wolny bieg (jogging), szybki bieg, boksowanie, machanie rękoma i klaskanie. Czynności te były powtarzane przez 25 różnych osób w czterech różnych środowiskach (scenariuszach): s1) na zewnątrz, s2) na zewnątrz ze zmianą skali rejestrowanego obrazu, s3) na zewnątrz ze zmieniającym się ubiorem rejestrowanych osób, s4) wewnątrz. W wersji końcowej baza zawiera 2391 sekwencji, nagranych na jednorodnym, statycznym tle, zapisanych w rozdzielczości 160x120 pikseli. Średnia długość sekwencji to cztery sekundy. Autorzy zastrzegają, że baza nie może zostać użyta w celach komercyjnych. 5. Podsumowanie Zaprezentowany w niniejszym artykule przegląd obejmował zagadnienia wykrywania i śledzenia ruchu obiektów na scenie w zastosowaniu do budowy nowoczesnych systemów monitoringu wizyjnego. W pracy przedstawiono problem badawczy i wskazano ich trzy główne moduły: budowę modelu tła, śledzenie obiektów i usuwanie artefaktów. Jak pokaza-

30 30 Paweł Forczmański, Dariusz Frejlichowski, Adam Nowosielski, Radosław Hofman ła analiza nie opracowano jak dotąd systemu, który realizuje wszystkie postulowane zadania. W związku z powyższym jako najważniejsze wnioski i wytyczne dla dalszych badań naukowych, także eksperymentalnych, można wymienić co następuje. Warto ograniczyć obszar podlegający analizie, tak jak zaproponowano to w [2]. Dzięki takiemu ograniczeniu można zredukować obciążenie końcowego systemu, a także zmniejszyć ryzyko błędnego alarmu w przypadku lokalizacji obiektów, które nas nie interesują. Dodatkowo, ważne jest, aby dokładnie określić parametry działania systemu realizującego określony scenariusz. Nie da się uniknąć szeregu ograniczeń, związanych z takimi kwestiami, jak na przykład rozmiar kontrolowanych obiektów, ich liczba, kształt i rozmiar analizowanego obszaru, parametry i ustawienia kamery. Na ten problem zwracają uwagę praktycznie wszyscy autorzy. Jako że nie można założyć z góry znanego, predefiniowanego i niezmiennego tła, należy skoncentrować się na podejściach adaptacyjnie dostosowujących model tła. W przypadku śledzenia obiektów najlepszym rozwiązaniem wydaje się być wykorzystanie pewnych podstawowych cech opisujących analizowane obiekty w celu określenia ich charakteru i właściwości. Cechy te można przedstawić w postaci numerycznej, dzięki czemu ich późniejsza analiza i klasyfikacja jest znacznie prostsza. W przypadku systemów pracujących w warunkach rzeczywistych (niekontrolowana konfiguracja obiektów na scenie, zmienne oświetlenie i warunki atmosferyczne) konieczne jest wykorzystywanie skutecznych metod usuwania artefaktów takich, jak cienie, czy odbicia w lustrze. Badanie systemów monitoringu wizyjnego można oprzeć na benchmarkowych bazach danych dostępnych w środowisku naukowym, jednak analiza pokazuje, że nie istnieje jedna uniwersalna baza, która zagwarantowałaby możliwość badania różnorakich scenariuszy w odmiennych warunkach środowiskowych. Dlatego sensowne wydaje się opracowywanie własnych baz danych, ukierunkowanych na wiele różnorakich scenariuszy działania rzeczywistego systemu. Artykuł został opracowany w związku z realizacją przez Spółkę Smart Monitor sp. z o.o. projektu: Budowa prototypu innowacyjnego systemu bezpieczeństwa opartego o analizę obrazu - "SmartMonitor". Projekt Fundusze Europejskie - dla rozwoju innowacyjnej gospodarki : UDA-POIG /10-00, Wartość projektu: zł, Udział Unii Europejskiej: zł, Okres realizacji: Bibliografia [1] Robertson N., Reid I. A general method for human activity recognition in video. Computer Vision and Image Understanding, vol.104, 2006, s [2] Pantrigo J.J., Hernández, J., Sánchez A. Multiple and variable target visual tracking for video-surveillance applications. Pattern Recognition Letters, vol. 31, 2010, s [3] Gurwicz Y., Yehezkel R., Lachover B. Multiclass object classification for real-time video surveillance systems. Pattern Recognition Letters, vol. 32, 2011, s [4] Calderara S., Heinemann U., Prati A., Cucchiara R., Tishby N., Detecting anomalies in people s trajectories using spectral graph analysis. Computer Vision and Image Understanding, vol. 115, 2011, s [5] Zhou H., Hu H., Human motion tracking for rehabilitation A survey. Biomedical Signal Processing and Control 3, 2008, s [6] Douglas A., Mubarak S. Monitoring human behavior from video taken in an office environment. Image and Vision Computing, vo. 19, 2001, s

31 Aktualne trendy w tworzeniu systemów inteligentnego monitoringu wizyjnego 31 [7] Ivanov Y., Bobick A., Liu J. Fast lighting independent background subtraction. In IEEE Workshop on Visual Surveillance, 1998, s [8] Lim S., Mittal A., Davis L. S., Paragios N. Fast illumination-invariant background subtraction using two views: Error analysis, sensor placement and applications. IEEE Conference on Computer Vision and Pattern Recognition (CVPR'05), vol. 1, 2005, s [9] Frejlichowski D. Automatic Localisation of Moving Vehicles in Image Sequences Using Morphological Opertion. 1st IEEE International Conference on Information Technology, 2008, s [10] Stauffer C., Grimson W. E. L. Adaptive background mixture models for real-time tracking. IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 1999, 2: 252 [11] Zivkovic Z. Improved adaptive gaussian mixture model for background subtraction. In Proceedings of the 17th International Conference on Pattern Recognition, ICPR 2004., vol. 2, 2004, s [12] Kaewtrakulpong P., Bowden R. An improved adaptive background mixture model for realtime tracking with shadow detection. In Proceeding of the 2nd European Workshop on Advanced Video Based Surveillance Systems, Computer Vision and Distributed Processing, Kluver Academic Publishers, 2001, s. 1-5 [13] Javed O., Shafique K., Shah M. A hierarchical approach to robust background subtraction using color and gradient information. In Workshop on Motion and Video Computing, 2002, s [14] Zhang H., Xu D. Fusing color and gradient features for background model. In 8th International Conference on Signal Processing, vol.2, no., 16-20, 2006 [15] Wang H., Suter D. A re-evaluation of mixture of gaussian background modeling [video signal processing applications]. In IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP '05), 2005, vol. 2, s [16] Piccardi M. Background subtraction techniques: a review. In IEEE International Conference on Systems, Man and Cybernetics, 2004, vol. 4, s [17] Gao X., Boult T.E., Ramesh V., Coetzee F. Error analysis of background adaption. In IEEE Conference on Computer Vision and Pattern Recognition, 2000, s [18] Yumiba R., Miyoshi M., Fujiyoshi H. Moving Object Detection with Background Model based on Spatio-Temporal Texture. Proceedings of the 2011 IEEE Workshop on Applications of Computer Vision (WACV), 2011, s [19] Comaniciu D., Ramesh V., Meer P. Kernel-based object tracking. IEEE Transactions on Pattern Analysis and Machine Intelligence, 25(5), 2003, s [20] Welch G., Bishop G. An introduction to the kalman filter. SIGGRAPH 2001, Course 8. [21] Li L., Ma R., Huang W., Leman K. Evaluation of an ivs system for abandoned object detection on pets 2006 datasets. Ninth IEEE International Workshop on Performance Evaluation of Tracking and Surveillance (PETS 2006). Institute for Infocomm Research, s , [22] Smith K., Quelhas P., Gatica-Perez D. Detecting abandoned luggage items in a public space. Ninth IEEE International Workshop on Performance Evaulation of Tracking and Surveillance (PETS 2006), 2006, s [23] Auvinet E., Grossmann E., Rougier C., Dahmane M., Meunier J. Left-luggage detection using homographies and simple heuristics. Ninth IEEE International Workshop on Performance Evaulation of Tracking and Surveillance (PETS 2006), 2006, s [24] Leone A., Distante C., Buccolieri F. A shadow elimination approach in videosurveillance context, Pattern Recognition Letters, vol. 27, 2006, s

32 32 Paweł Forczmański, Dariusz Frejlichowski, Adam Nowosielski, Radosław Hofman [25] Forczmański P., Seweryn M. Surveillance Video Stream Analysis Using Adaptive Background Model and Object Recognition. Lecture Notes in Computer Science, Volume 6374, Computer Vision and Graphics, 2010, s [26] Hu J.-S., Su T.-M., Jeng S.-C. Robust background subtraction with shadow and highlight removal for indoor surveillance. In IEEE/RSJ International Conference on Intelligent Robots and Systems, 2006, s [27] Lou J., Yang H., Hu W., Tan T. An illumination invariant change detection algorithm. ACCV2002: The 5th Asian Conference on Computer Vision, January 2002, Melbourne, Australia, [28] Horprasert T., Harwood D., Davis L. S. A robust background subtraction and shadow detection. In Proceedings of the Asian Conference on Computer Vision, 2000 [29] Bascle B., Bernier O., Lemaire V. A statistical approach for learning invariants: application to image color correction and learning invariants to illumination. In International Journal of Imaging Systems and Technology, 2007 [30] Yokoyama M., Poggio T. A contour-based moving object detection and tracking, Visual Surveillance and Performance Evaluation of Tracking and Surveillance, nd Joint IEEE International Workshop on, Oct. 2005, s [31] Cucchiara R., Grana C., Piccardi M., Prati A. Detecting Moving Objects, Ghosts and Shadows in Video Streams, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 25, 2003, s [32] CAVIAR, Context aware vision using image-based active recognition, [dostęp 09/2011] [33] PETS, IEEE International Workshop on Performance Evaluation of Tracking and Surveillance, [dostęp 09/2011] [34] CLEAR, Classification of events, activities and relationships evaluation campaign and workshop, [dostęp 09/2011] [35] CREDS, Call for real-time event detection solutions (creds) for enhanced security and safety in public transportation, [dostęp 09/2011] [36] ETISEO, Video understanding evaluation, [dostęp 09/2011] [37] i-lids, Image library for intelligent detection systems, [dostęp 09/2011] [38] SPEVI, Surveillance Performance EValuation Initiative, [dostęp 09/2011] [39] CVAP, Computer Vision and Active Perception Lab at KTH in Stockholm, Recognition of human actions, [dostęp 09/2011]

33 Obliczeniowe szacowanie lokalności danych na poziomie pamięci podręcznej Agnieszka Kamińska, Włodzimierz Bielecki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: In order to effectively use cache memory, it is essential to ensure good data locality at the cache memory level. This can be achieved by appropriately transforming the source code of a program to a semantically equivalent form. The problem is, however, how based only on the form of the source code of a program to assess the data locality it involves and apply this assessment for selection of the source code of the shortest execution time. The paper presents Wolfe s method of estimating data locality and - using the matrix multiplication problem for reference discusses the possibilities of applying Wolfe s method for the purpose of estimating the program execution time. The paper also presents software prepared by the authors and dedicated for estimating data locality. Keywords: data locality, cache memory, optimizing compilers 1. Wprowadzenie W celu usprawnienia komunikacji między procesorem a pamięcią, co w konsekwencji prowadzi do poprawy wydajności przetwarzania realizowanego w systemach komputerowych, we współczesnych architekturach sprzętowych stosuje się hierarchię pamięci [1]. Ideą hierarchicznej organizacji pamięci jest wydzielenie kolejnych jej poziomów, w miarę zwiększania odległości od procesora. Rozpoczynając od poziomu najwyższego, położonego najbliżej procesora, wydziela się następujące poziomy pamięci: rejestry procesora, pamięć podręczna (ang. cache), pamięć główna, pamięci zewnętrzne (np. dyski magnetyczne). Wraz ze wzrostem odległości od procesora, kolejne, coraz niżej położone poziomy hierarchii pamięci cechują się: (1) malejącym kosztem ekonomicznym wytworzenia pamięci, w przeliczeniu na bit jej pojemności, (2) rosnącą pojemnością pamięci oraz (3) rosnącym czasem dostępu do pamięci [1]. Biorąc pod uwagę wyżej wymienione właściwości hierarchii pamięci, z punktu widzenia wydajności idealna sytuacja to taka, gdy wszystkie dane potrzebne procesorowi znajdują się w pamięci położonej możliwie najwyżej w hierarchii pamięci. Rejestry procesora, znajdujące się najwyżej w hierarchii pamięci, mają bardzo niewielką pojemność. W związku z tym, efektywne wykorzystanie kolejnego poziomu hierarchii pamięci, to jest pamięci podręcznej, ma istotny wpływ na wydajność przetwarzania danych w systemach komputerowych. Warunkiem koniecznym dla efektywnego wykorzystania pamięci podręcznej jest zapewnienie dobrej lokalności znajdujących się w niej danych. Oznacza to, że dane potrzebne procesorowi mają być dostępne w pamięci podręcznej natychmiast po zgłoszeniu na nie zapotrzebowania, a nie dopiero wówczas pobierane z pamięci głównej. Jednym ze sposobów Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

34 34 Agnieszka Kamińska, Włodzimierz Bielecki osiągnięcia takiego stanu jest transformacja kodu źródłowego programu do odpowiedniej postaci semantycznie równoważnej. Ponieważ większość operacji związanych z przetwarzaniem danych jest realizowana w pętlach programowych, stosownym transformacjom należy poddać przede wszystkim pętle programowe, znajdujące się w kodzie źródłowym. Problemem jest tu jednak jak bez uciekania się do kompilacji kodu źródłowego do postaci wykonywalnej oraz jego uruchamiania przeprowadzić ocenę lokalności danych, by na podstawie samej tej oceny wskazać tę postać kodu, której czas wykonania będzie najkrótszy. Celem niniejszego artykułu jest: (1) przedstawienie zaproponowanej przez Wolfe a [2] metody obliczeniowego szacowania lokalności danych w oparciu o postać kodu źródłowego, (2) omówienie implementacji autorskiego oprogramowania do szacowania lokalności danych według metody Wolfe a, (3) przedstawienie i omówienie wyników badań nad lokalnością danych, przeprowadzonych dla wybranego przykładu, w kontekście możliwości zastosowania ich do obliczeniowego szacowania czasu wykonania programu. 2. Szacowanie lokalności danych Przetwarzanie danych w pętlach programowych polega na wielokrotnym wykonywaniu pewnej, ustalonej sekwencji operacji na zmieniających się danych. Pętla może wiele razy odwoływać się do danych pochodzących z jednej i tej samej lokalizacji w pamięci lub do danych położonych w sąsiadujących lokalizacjach w pamięci. Sytuacje te określa się jako, odpowiednio: czasowe ponowne użycie (ang. temporal reuse) oraz przestrzenne ponowne użycie danych (ang. spatial reuse) [2]. Ze względu na swoją istotę, pętle programowe cechują się potencjalnie największym ponownym użyciem danych. Występowanie ponownego użycia danych w pętli programowej stwarza możliwość i sposobność do efektywnego wykorzystania pamięci podręcznej, ponieważ można wielokrotnie odwoływać się do danych raz pobranych do pamięci podręcznej i w niej się znajdujących, zamiast każdorazowo pobierać odpowiednie dane do pamięci podręcznej z pamięci głównej. Im większe ponowne użycie danych, tym potencjalnie większe możliwości wykorzystania pamięci podręcznej, co w praktyce przekłada się na potencjalnie lepszą lokalność przetwarzanych danych i krótszy czas wykonywania programu. Wspomniana poprawa lokalności danych dotyczy zarówno lokalności czasowej (ang. temporal locality), która zachodzi gdy wykorzystywane są dane z tych samych lokalizacji w pamięci jak i lokalności przestrzennej (ang. spatial locality), która zachodzi gdy wykorzystywane są dane z sąsiadujących lokalizacji w pamięci [2]. Zaproponowana przez Wolfe a [2] metoda szacowania lokalności danych opiera się na powyższych obserwacjach. Metoda ta ma zastosowanie do pętli programowych, w których odwołania do lokalizacji w pamięci są wyrażone przy pomocy skalarów i tablic o indeksach afinicznych (liniowych). Istotą tej metody jest ocena lokalności danych w oparciu o współczynniki ponownego użycia danych i wyznaczony na ich podstawie zbiorczy odcisk danych (ang. data footprint). Współczynniki ponownego użycia danych są wyznaczane dla wszystkich odwołań (referencji) pojawiających się w ciele analizowanych pętli. Wartości tych współczynników są obliczane na podstawie ogólnej liczby iteracji poszczególnych pętli oraz na podstawie postaci indeksów poszczególnych odwołań. Dla każdego, występującego w ciele pętli, odwołania do pamięci obliczane są następujące współczynniki: własnego-czasowego ponownego użycia (ang. self-temporal reuse factor), własnego-przestrzennego ponownego użycia (ang. self-spatial reuse factor) oraz własnego-ponownego użycia (ang. self-reuse factor). Współczynniki te są obliczane osobno dla każdej pętli, w ciele której pojawia się rozpatrywane odwołanie.

35 Obliczeniowe szacowanie lokalności danych na poziomie pamięci podręcznej 35 Współczynnik własnego-czasowego ponownego użycia mówi w ilu iteracjach danej pętli k jest wykorzystywana wartość pobrana z określonej lokalizacji pamięci, wskazanej przez rozpatrywane odwołanie. Możliwe wartości tego współczynnika to 1 (w przypadku gdy pobrana wartość jest użyta w dokładnie jednej iteracji pętli k) lub N k (w przypadku gdy pobrana wartość jest użyta w każdej iteracji pętli k) gdzie N k to liczba iteracji pętli k. Współczynnik przyjmuje wartość N k tylko wtedy, gdy zmienna k nie występuje w żadnym indeksie rozpatrywanego odwołania; w przeciwnym przypadku współczynnik przyjmuje wartość 1. Przykładowo, dla kodu źródłowego realizującego mnożenie macierzy z blokowaniem (patrz Rysunek 1) i odwołania D[i][j] rozpatrywanego na poziomie pętli k (patrz linie 7 i 8 kodu źródłowego), współczynnik własnego-czasowego ponownego użycia jest równy liczbie iteracji pętli k, czyli BLOCK_SIZE, ponieważ w żadnym indeksie odwołania D[i][j] nie występuje zmienna k zaś raz pobrana wartość D[i][j] może być wykorzystana we wszystkich (BLOCK_SIZE) iteracjach pętli k. Natomiast dla kodu źródłowego z Rysunku 1 i odwołania E[i][k] oraz odwołania F[k][j] rozpatrywanych na poziomie pętli k (patrz linie 7 i 8 kodu źródłowego), współczynnik własnego-czasowego ponownego użycia jest równy 1, ponieważ pobrane wartości E[i][k] oraz F[k][j] można wykorzystać tylko raz, w tej konkretnej iteracji pętli k, dla których wartości E[i][k] oraz F[k][j] zostały pobrane. 1. float D[N][N], E[N][N], F[N][N]; 2. for(it=0; it<n; it=it+block_size){ 3. for(jt=0; jt<n; jt=jt+block_size){ 4. for(kt=0; kt<n; kt=kt+block_size){ 5. for(i=it; i<min(it+block_size,n); i++){ 6. for(j=jt; j<min(jt+block_size,n); j++){ 7. for(k=kt; k<min(kt+block_size,n); k++){ 8. D[i][j] = D[i][j] + E[i][k] * F[k][j]; 9. } //endfor k 10. } //endfor j 11. } //endfor i 12. } //enfor kt 13. } //endfor jt 14. } //enfor it Rysunek 1. Mnożenie macierzy z blokowaniem kod źródłowy Współczynnik własnego-przestrzennego ponownego użycia mówi ile różnych elementów z pobranego wiersza pamięci podręcznej, zawierającego wartość z lokalizacji wskazanej przez rozpatrywane odwołanie, można wykorzystać podczas wykonywania wszystkich iteracji danej pętli k bez konieczności ponownego pobierania tych elementów z pamięci głównej. Jeśli dla rozpatrywanego odwołania własne-przestrzenne ponowne użycie nie występuje, współczynnik przyjmuje wartość 1. W przeciwnym razie, współczynnik ten przyjmuje większą z wartości: 1, L/a sk gdzie L liczba elementów mieszczących się w wierszu pamięci podręcznej, o typie identycznym z typem wartości pobranej z lokalizacji wskazanej przez rozpatrywane odwołanie, a sk współczynnik stojący przy zmiennej k w tym indeksie rozpatrywanego odwołania, który to indeks w sposób sekwencyjny odwzorowuje w pamięci tablicę związaną z rozpatrywanym odwołaniem. Współczynnik własnego-przestrzennego ponownego użycia może przyjąć wartość większą od 1 tylko wtedy, gdy zmienna k pojawia się wyłącznie w tym indeksie rozpatrywanego odwołania, który to indeks w sposób sekwencyjny odwzorowuje w pamięci tablicę związaną z rozpatrywanym odwołaniem, a stojący przy zmiennej k współczynnik jest mniejszy niż rozmiar linii pamięci podręcznej (wyrażony liczbą elementów mieszczących się w linii pamięci podręcznej). Przykładowo, dla kodu źródło-

36 36 Agnieszka Kamińska, Włodzimierz Bielecki wego z Rysunku 1, przy założeniu o wierszowym porządku odwzorowania tablic wielowymiarowych w pamięci, współczynnik własnego-przestrzennego ponownego użycia dla odwołania D[i][j] oraz odwołania F[k][j] rozpatrywanych na poziomie pętli k (patrz linie 7 i 8 kodu źródłowego) wynosi 1. Wynika to stąd, że przy odwzorowaniu wierszowym ostatni indeks odwołania jest odpowiedzialny za sekwencyjne odwzorowanie w pamięci tablicy związanej z tym odwołaniem; w przypadku odwołań D[i][j] oraz F[k][j] w ostatnim indeksie występuje zmienna j, natomiast nie występuje zmienna k. Natomiast w przypadku odwołania E[i][k], rozpatrywanego na poziomie pętli k, w ostatnim indeksie tego odwołania występuje zmienna k ze współczynnikiem 1 w związku z tym, współczynnik własnegoprzestrzennego ponownego użycia dla E[i][k] jest równy liczbie elementów typu float (bo E[i][k] jest odwołaniem do wartości typu float) mieszczących się w linii pamięci podręcznej. Współczynnik własnego-ponownego użycia R k dla odwołania do pamięci, występującego w pętli k, mówi ile maksymalnie razy można wykorzystać w pętli k dane znajdujące się w tym samym wierszu pamięci podręcznej, co wartość pobrana z lokalizacji wskazanej przez rozpatrywane odwołanie. Wartość współczynnika własnego-ponownego użycia jest zależna od wartości współczynników: własnego-czasowego ponownego użycia oraz własnego-przestrzennego ponownego użycia. Jeżeli współczynnik własnego-czasowego ponownego użycia ma wartość większą niż 1, to współczynnik własnego-ponownego użycia przyjmuje identyczną wartość co współczynnik własnego-czasowego ponownego użycia. Jeżeli współczynnik własnego-czasowego ponownego użycia ma wartość równą 1, to współczynnik własnego-ponownego użycia przyjmuje identyczną wartość co współczynnik własnego-przestrzennego ponownego użycia. Przykładowo, dla kodu źródłowego z Rysunku 1 i odwołania D[i][j] rozpatrywanego na poziomie pętli k (patrz linie 7 i 8 kodu źródłowego), współczynnik własnego-czasowego ponownego użycia wynosi BLOCK_SIZE, natomiast współczynnik własnego-przestrzennego ponownego użycia wynosi 1. Ponieważ współczynnik własnego-czasowego ponownego użycia ma w tym przypadku wartość większą niż 1, to dla odwołania D[i][j] rozpatrywanego na poziomie pętli k współczynnik własnego-ponownego użycia przyjmuje wartość BLOCK_SIZE. Natomiast dla odwołania E[i][k] rozpatrywanego na poziomie pętli k (patrz linie 7 i 8 kodu źródłowego), współczynnik własnego-czasowego ponownego użycia wynosi 1, zaś współczynnik własnegoprzestrzennego ponownego użycia przyjmuje wartość równą liczbie elementów typu float (bo E[i][k] jest odwołaniem do wartości typu float) mieszczących się w linii pamięci podręcznej. W związku z tym, dla odwołania E[i][k] rozpatrywanego na poziomie pętli k współczynnik własnego-ponownego użycia przyjmuje wartość równą liczbie elementów typu float mieszczących się w linii pamięci podręcznej. Jeżeli dla danego odwołania, występującego w pętli k, występuje własne-czasowe lub własne-przestrzenne ponowne użycie, to zakładając pełne wykorzystanie właściwości pamięci podręcznej liczba operacji transferu danych z pamięci głównej do pamięci podręcznej, związanych z przedmiotowym odwołaniem, zostanie zredukowana: w przypadku własnego-czasowego ponownego użycia w najlepszym razie, z N k (gdzie N k liczba iteracji pętli k) do 1, w przypadku własnego-przestrzennego ponownego użycia w najlepszym razie, o liczbę elementów mieszczących się w jednym wierszu pamięci podręcznej i będących identycznego typu co wartość wskazywana przez rozpatrywane odwołanie. Jeżeli rozpatrywane odwołanie pojawia się p razy w ciele pętli k (sytuacja tzw. grupowego ponownego użycia, które może mieć miejsce w aspekcie zarówno czasowym, jak i przestrzennym analogicznie, jak przy własnym ponownym użyciu), to z tego tytułu liczba operacji transferu danych z pamięci głównej do pamięci podręcznej może zostać zredukowana co najwyżej o p.

37 Obliczeniowe szacowanie lokalności danych na poziomie pamięci podręcznej 37 Odcisk danych dla danego odwołania do pamięci, występującego w pętli k, mówi jaka jest minimalna liczba linii pamięci podręcznej, które muszą zostać nadpisane danymi pobieranymi z pamięci głównej, aby w momencie rozpoczęcia każdej iteracji pętli k już dysponować w pamięci podręcznej (bez konieczności sięgania do pamięci głównej) wartością pobraną z lokalizacji, wskazanej przez rozpatrywane odwołanie dla tej iteracji. Jeżeli dla danego odwołania nie występuje ponowne użycie danych, odcisk danych będzie równy liczbie iteracji pętli k (N k ). Jeżeli dla danego odwołania występuje ponowne użycie danych równe R k, odcisk danych będzie zredukowany o wartość ponownego użycia danych i wyniesie (N k / R k ). Przykładowo, dla kodu źródłowego z Rysunku 1 i odwołania F[k][j] rozpatrywanego na poziomie pętli k (patrz linie 7 i 8 kodu źródłowego), własne ponowne użycie danych nie występuje, więc współczynnik własnego-ponownego użycia przyjmuje wartość 1. W związku z tym, dla odwołania F[k][j] rozpatrywanego na poziomie pętli k odcisk danych jest równy liczbie iteracji pętli k, czyli BLOCK_SIZE. Natomiast dla kodu źródłowego z Rysunku 1 i odwołania D[i][j] rozpatrywanego na poziomie pętli k (patrz linie 7 i 8 kodu źródłowego), własne ponowne użycie danych wynosi BLOCK_SIZE. W związku z tym, ponieważ liczba iteracji pętli k wynosi także BLOCK_SIZE, odcisk danych dla odwołania D[i][j] rozpatrywanego na poziomie pętli k wynosi BLOCK_SIZE/ BLOCK_SIZE = 1. Jeżeli pętla k wchodzi w skład pętli zagnieżdżonej, to obliczony w ten sposób odcisk danych nie uwzględnia pozycji pętli k w gnieździe i ewentualnej, wynikającej stąd konieczności nadpisania więcej niż (N k / R k ) linii pamięci podręcznej. Aby uwzględnić pozycję pętli k w pętli zagnieżdżonej, należy wyznaczyć skumulowany odcisk danych dla rozpatrywanego odwołania do pamięci, występującego w pętli k. Przykładowo, dla kodu źródłowego z Rysunku 1 i odwołania D[i][j] rozpatrywanego na poziomie pętli k (patrz linie 7 i 8 kodu źródłowego), odcisk danych wynosi 1. Pętla k jest najbardziej zagłębioną pętlą w pętli zagnieżdżonej w związku z tym, skumulowany odcisk danych dla odwołania D[i][j], obliczony na poziomie pętli najmniej zagłębionej it, będzie większy od odcisku danych na poziomie pętli k (równego 1), ze względu na konieczność uwzględnienia wpływu i zapotrzebowania na pamięć podręczną pozostałych (innych niż k) pętli gniazda. Wzór (1) [2] przedstawia sposób wyliczenia wyrażonego w bajtach skumulowanego odcisku danych F * r dla pewnego odwołania, występującego w pętli k wchodzącej w skład pętli zagnieżdżonej. Pętla k znajduje się na r-tym (licząc od pętli najbardziej wewnętrznej) poziomie n-poziomowego gniazda pętli: r * N F = i r l (1) R i= 1 i gdzie l oznacza rozmiar linii pamięci podręcznej, wyrażony w bajtach, N i oznacza liczbę iteracji pętli i, R i oznacza współczynnik własnego-ponownego użycia na poziomie pętli i, wyznaczony dla analizowanego odwołania. Biorąc pod uwagę wszystkie odwołania do pamięci, występujące w analizowanym kodzie źródłowym i wyznaczone dla nich skumulowane odciski danych, można obliczyć zbiorczy odcisk danych. Zbiorczy odcisk danych informuje, jaka powinna być minimalna pojemność pamięci podręcznej (wyrażona liczbą linii lub bajtów niezbędnej pamięci podręcznej), aby pomieścić w niej równocześnie wszystkie dane przetwarzane w ramach rozpatrywanego kodu (pętli). Jeżeli wyliczona wartość zbiorczego odcisku danych nie przekracza rozmiaru dostępnej pamięci podręcznej a w analizowanym kodzie występuje ponowne użycie danych, to wówczas fakt ponownego użycia danych w kodzie przełoży się na występowanie lokalności danych na poziomie pamięci podręcznej [2].

38 38 Agnieszka Kamińska, Włodzimierz Bielecki W Tabeli 1 przedstawiono w syntetyczny sposób jak, stosując metodę Wolfe a, można obliczyć współczynniki ponownego użycia i zbiorczy odcisk danych dla przykładowego kodu źródłowego - mnożenia macierzy z blokowaniem (patrz Rysunek 1). Oznaczenia wykorzystane w Tabeli 1: CACHE_LINE_ELEMENTS CACHE_LINE_B liczba elementów typu float w linii pamięci podręcznej, rozmiar linii pamięci podręcznej, wyrażony w bajtach. Wartości współczynników ponownego użycia są obliczane począwszy od najbardziej wewnętrznej pętli. Dla każdej pętli analizowane są wszystkie występujące w niej odwołania do pamięci; do określenia ponownego użycia związanego z każdym z odwołań wykorzystywane są indeksy odwołań, zgodnie z zasadami przedstawionymi w niniejszym punkcie artykułu. Tabela 1. Wyznaczenie współczynników ponownego użycia i odcisku danych Własne-czasowe ponowne użycie Pętla Odwołanie Własneprzestrzenne ponowne użycie Własneponowne użycie Odcisk danych [linie pamięci podręcznej] Skumulowany odcisk danych [linie pamięci podręcznej] k D[i][j] BLOCK_SIZE 1 BLOCK_SIZE BLOCK_SIZE/ BLOCK_SIZE=1 E[i][k] 1 CA- CA- BLOCK_SIZE/ CHE_LINE_EL CHE_LINE_ELE CACHE_LINE_EL EMENTS/1=C MENTS EMENTS ACHE_LINE_E LEMENTS F[k][j] BLOCK_SIZE/ 1= j D[i][j] 1 CA- CHE_LINE_EL EMENTS/1= CA- CHE_LINE_EL EMENTS CA- CHE_LINE_ELE MENTS BLOCK_SIZE BLOCK_SIZE/ CACHE_LINE_EL EMENTS E[i][k] BLOCK_SIZE 1 BLOCK_SIZE BLOCK_SIZE/ BLOCK_SIZE=1 F[k][j] 1 CA- CHE_LINE_EL EMENTS/1= CA- CHE_LINE_EL EMENTS CA- CHE_LINE_ELE MENTS BLOCK_SIZE/ CACHE_LINE_EL EMENTS i D[i][j] BLOCK_SIZE/1= BLOCK_SIZE E[i][k] BLOCK_SIZE/1= BLOCK_SIZE F[k][j] BLOCK_SIZE 1 BLOCK_SIZE BLOCK_SIZE/ BLOCK_SIZE = 1 1 BLOCK_SIZE/ CACHE_LINE_ELEMENT S BLOCK_SIZE BLOCK_SIZE/ CACHE_LINE_ELEMENT S*1= BLOCK_SIZE/ CACHE_LINE_ELEMENT S 1* BLOCK_SIZE/ CACHE_LINE_ELEMENT S= BLOCK_SIZE/ CACHE_LINE_ELEMENT S (BLOCK_SIZE/ CACHE_LINE_ELEMENT S)* BLOCK_SIZE BLOCK_SIZE*(BLOCK_S IZE/ CACHE_LINE_ELEMENT S) BLOCK_SIZE*(BLOCK_S IZE/CACHE_LINE_ELEM ENTS) 1*(BLOCK_SIZE/ CACHE_LINE_ELEMENT S)* BLOCK_SIZE = (BLOCK_SIZE/ CACHE_LINE_ELEMENT S)* BLOCK_SIZE

39 Obliczeniowe szacowanie lokalności danych na poziomie pamięci podręcznej 39 Własne-czasowe ponowne użycie Pętla Odwołanie Własneprzestrzenne ponowne użycie Własneponowne użycie Odcisk danych [linie pamięci podręcznej] Skumulowany odcisk danych [linie pamięci podręcznej] kt D[i][j] [N/BLOCK_SIZ E] E[i][k] F[k][j] [N/BLOCK_SIZ E] [N/BLOCK_SIZ E] jt D[i][j] [N/BLOCK_SIZ E] E[i][k] F[k][j] [N/BLOCK_SIZ E] [N/BLOCK_SIZ E] 1 [N/BLOCK_SIZ E] 1 [N/BLOCK_SIZ E] 1 [N/BLOCK_SIZ E] 1 [N/BLOCK_SIZ E] 1 [N/BLOCK_SIZ E] 1 [N/BLOCK_SIZ E] [N/BLOCK_SIZE]/ [N/BLOCK_SIZE]= 1 [N/BLOCK_SIZE]/ [N/BLOCK_SIZE]= 1 [N/BLOCK_SIZE]/ [N/BLOCK_SIZE]= 1 [N/BLOCK_SIZE]/ [N/BLOCK_SIZE]= 1 [N/BLOCK_SIZE]/ [N/BLOCK_SIZE]= 1 [N/BLOCK_SIZE]/ [N/BLOCK_SIZE]= 1 1*BLOCK_SIZE*(BLOCK _SIZE/ CACHE_LINE_ELEMENT S) = BLOCK_SIZE*(BLOCK_S IZE/ CACHE_LINE_ELEMENT S) 1*BLOCK_SIZE*(BLOCK _SIZE/ CACHE_LINE_ELEMENT S) = BLOCK_SIZE*(BLOCK_S IZE/ CACHE_LINE_ELEMENT S) 1*(BLOCK_SIZE/ CACHE_LINE_ELEMENT S)* BLOCK_SIZE = (BLOCK_SIZE/ CACHE_LINE_ELEMENT S)* BLOCK_SIZE 1*BLOCK_SIZE*(BLOCK _SIZE/ CACHE_LINE_ELEMENT S) = BLOCK_SIZE*(BLOCK_S IZE/ CACHE_LINE_ELEMENT S) 1*BLOCK_SIZE*(BLOCK _SIZE/ CACHE_LINE_ELEMENT S) = BLOCK_SIZE*(BLOCK_S IZE/ CACHE_LINE_ELEMENT S) 1*(BLOCK_SIZE/ CACHE_LINE_ELEMENT S)* BLOCK_SIZE = (BLOCK_SIZE/ CACHE_LINE_ELEMENT S)* BLOCK_SIZE it D[i][j] [N/BLOCK_SIZ E] E[i][k] F[k][j] [N/BLOCK_SIZ E] [N/BLOCK_SIZ E] 1 [N/BLOCK_SIZ E] 1 [N/BLOCK_SIZ E] 1 [N/BLOCK_SIZ E] [N/BLOCK_SIZE]/ [N/BLOCK_SIZE]= 1 [N/BLOCK_SIZE]/ [N/BLOCK_SIZE]= 1 [N/BLOCK_SIZE]/ [N/BLOCK_SIZE]= 1 1*BLOCK_SIZE*(BLOCK _SIZE/ CACHE_LINE_ELEMENT S) = BLOCK_SIZE*(BLOCK_S IZE/ CACHE_LINE_ELEMENT S) 1*BLOCK_SIZE*(BLOCK _SIZE/ CACHE_LINE_ELEMENT S) = BLOCK_SIZE*(BLOCK_S IZE/ CACHE_LINE_ELEMENT S) 1*(BLOCK_SIZE/ CACHE_LINE_ELEMENT S)* BLOCK_SIZE = (BLOCK_SIZE/ CACHE_LINE_ELEMENT S)* BLOCK_SIZE

40 40 Agnieszka Kamińska, Włodzimierz Bielecki Zbiorczy odcisk danych - suma skumulowanych odcisków danych dla pętli 3* (BLOCK_SIZE) 2 najbardziej zewnętrznej (it), wyrażona liczbą linii pamięci podręcznej / CACHE_LINE_EL EMENTS Zbiorczy odcisk danych, wyrażony liczbą bajtów pamięci podręcznej 3* (BLOCK_SIZE) 2 * CACHE_LINE_B / CACHE_LINE_EL EMENTS 3. Oprogramowanie do szacowania lokalności danych Na podstawie wyliczeń przedstawionych w Tabeli 1 widać, że bez wspomagania komputerowego obliczeniowe szacowanie lokalności danych według metody Wolfe a jest zadaniem dość żmudnym i czasochłonnym, nawet dla prostego przypadku. Co więcej, uzyskanych w ten sposób wyników nie można bezpośrednio wykorzystać w kompilatorach optymalizujących, które stanowią ważny obszar potencjalnego zastosowania praktycznego metody Wolfe a [3]. Rozwiązaniem tych problemów jest automatyzacja obliczeniowego szacowania lokalności danych. Z uwagi na brak ogólnie dostępnego oprogramowania do szacowania lokalności danych według metody Wolfe a, na potrzeby prowadzonych badań nad lokalnością danych zostało przygotowane autorskie oprogramowanie dedykowane do szacowania lokalności danych według metody Wolfe a. Przedmiotowe oprogramowanie zostało zrealizowane w języku C++. Od strony czysto funkcjonalnej, działanie zaimplementowanego modułu jest bardzo proste. Dla podanego pliku wejściowego z kodem źródłowym w języku C, moduł oblicza wartości współczynników ponownego użycia oraz odcisk danych; obliczone wartości są zapisywane do pliku tekstowego, dzięki czemu można je z łatwością wykorzystać do późniejszych analiz. Rysunek 2 przedstawia strukturę wewnętrzną zaimplementowanego modułu. cmp SS_DataLocalityEstimation Clan «call» Constraints PolyhedralRepresentation 0..* Utilities «use» «call» Reference «use» DataLocalityEstimation DataReuse 0..* 0..* 1 Iterator Rysunek 2. Struktura zaimplementowanego modułu do szacowania lokalności danych

41 Obliczeniowe szacowanie lokalności danych na poziomie pamięci podręcznej 41 Po uruchomieniu modułu i wskazaniu pliku z kodem źródłowym do analizy, uruchamiana jest klasa PolyhedralRepresentation, która pełni rolę parsera, przekształcającego odpowiednio wyróżnione fragmenty wejściowego kodu źródłowego do semantycznie równoważnej postaci wielościanowej. W celu dokonania transformacji, klasa ta wykorzystuje pomocniczo zewnętrzną bibliotekę Clan [4]. W oparciu o wyznaczoną w ten sposób postać wielościanową kodu, przy pomocy klasy DataLocalityEstimation wyliczane są wartości współczynników ponownego użycia oraz odcisk danych. Podczas wykonywania przekształceń i obliczeń przez klasy PolyhedralRepresentation i DataLocalityEstimation, do reprezentowania danych i przechowywania wyników cząstkowych wykorzystywane są następujące struktury: Constraints, DataReuse, Reference, Iterator. Struktura Constraints służy do reprezentacji ograniczeń występujących w granicach pętli; każdy element typu Constraint opisuje jedno ograniczenie. Struktura DataReuse jest wykorzystywana do przechowywania informacji na temat ponownego użycia danych w analizowanych pętlach programowych; każdy element typu DataReuse odnosi się do jednej pętli (w przypadku analizy pętli zagnieżdżonych, element typu DataReuse odnosi się do dokładnie jednej pętli gniazda). Struktura Iterator służy do reprezentacji iteratorów związanych z poszczególnymi pętlami; każdy element typu Iterator opisuje jeden iterator. Struktura Reference jest wykorzystywana do przechowywania informacji na temat poszczególnych referencji (odwołań do pamięci), pojawiających się w analizowanym kodzie. Każdy element typu Reference odnosi się do jednej referencji. Klasa Utilities to zestaw metod o charakterze narzędziowym, wykorzystywanych przez klasy PolyhedralRepresentation i DataLocalityEstimation. 4. Badania eksperymentalne Badania eksperymentalne przeprowadzono dla kodu źródłowego realizującego mnożenie macierzy z blokowaniem (patrz Rysunek 1). Blokowanie zastosowano w celu uzyskania różnych, zależnych od przyjętej wartości BLOCK_SIZE, semantycznie równoważnych postaci wyjściowego kodu źródłowego, pociągających za sobą inną lokalność przetwarzanych danych. Dla każdego rozmiaru bloku BLOCK_SIZE i dla każdego analizowanego rozmiaru macierzy N (N = 100, 200, 300, 400, 500, 600) przeprowadzono po 5 niezależnych pomiarów czasu wykonania programu z blokowaniem, w środowisku testowym o parametrach przedstawionych w Tabeli 2. W ramach każdego z przeprowadzonych pomiarów, kod z blokowaniem był wykonywany p razy, przy czym wartość p była dobierana empirycznie tak, by łączny czas wykonania p powtórzeń wynosił około 1,5 do 2 minut (od p=8 000 dla N=100 do p=70 dla N=600). Dzięki temu podejściu, wartości uzyskane z pomiarów można uznać za prawdziwe wartości mierzonych wielkości. Tabela 2. Charakterystyka środowiska testowego Procesor Intel Core 2 Quad Q6600 Liczba rdzeni / wątków 4 / 4 Pamięć podręczna L1 Data 4 x 32 KB, 8-way set associative, 64-byte line size System operacyjny Linux Ubuntu Jaunty Jackalope Kompilator gcc (Ubuntu ubuntu4) Optymalizacja kompilacji Wyłączona (kompilacja z opcją O0)

42 42 Agnieszka Kamińska, Włodzimierz Bielecki Otrzymane wyniki uśredniono, obliczając średnią dla każdego rozmiaru macierzy i każdego rozmiaru bloku, z 5 przeprowadzonych pomiarów. Dodatkowo, oszacowano odcisk danych, zgodnie z metodą Wolfe a. Do oszacowania odcisku danych wykorzystano autorskie oprogramowanie, przedstawione w punkcie 3 niniejszego artykułu. Rozmiar bloku (BLOCK_SIZE) był dobrany tak, by wszystkie bloki razem wzięte nie przekraczały swoim rozmiarem dostępnej pamięci podręcznej, tzn. (2): 3 * BLOCK_SIZE 2 [elementów typu float] [B] / 4 [B/element typu float] czyli BLOCK_SIZE 52,256 (2) Podsumowanie wyników pomiarów (średnia z 5 niezależnych pomiarów) przedstawia Tabela 3. Wymiar macierzy [1] BLOCK_SIZE [2] Tabela 3. Wyniki pomiarów dla mnożenia macierzy Odcisk danych [B] [3] % wypełnienia pamięci podręcznej przez odcisk danych [4] ,3750 Rozmiar danych [B] [5] Czas zmierzony [cykle CPU] [6] , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,00 Zgodnie z przewidywaniami i obliczeniami przedstawionymi w punkcie 2 (patrz Tabela 1), dla analizowanego przykładu odcisk danych jest niezależny od rozmiaru mnożonych

43 Obliczeniowe szacowanie lokalności danych na poziomie pamięci podręcznej 43 macierzy, jest on zależny wyłącznie od rozmiaru bloku. Ta zależność (patrz także Tabela 1) jest następująca: Zbiorczy odcisk danych, wyrażony liczbą bajtów pamięci podręcznej = 3* (BLOCK_SIZE) 2 * CACHE_LINE_B / CACHE_LINE_ELEMENTS (3) Szacunkowe wartości odcisku danych, uzyskane przy pomocy oprogramowania do szacowania lokalności danych (patrz Tabela 3), są zgodne z zależnością teoretyczną (3). Na podstawie wyników pomiarów (patrz Tabela 3), można sformułować następujące wnioski dotyczące analizowanego przykładu. przyspieszenie t(block_size=16, N=n) / t(block_size=b, N=n) 1, , , , , ,00000 BLOCK_SIZE=16 BLOCK_SIZE=26 BLOCK_SIZE=37 BLOCK_SIZE=45 BLOCK_SIZE=52 0, wymiar macierzy (N) Rysunek 3. Rozmiar bloku a przyspieszenie wykonywania programu 0,01150 czas wykonania 1 iteracji [cykle CPU] 0, , ,00850 BLOCK_SIZE=16 BLOCK_SIZE=26 BLOCK_SIZE=37 BLOCK_SIZE=45 BLOCK_SIZE=52 0, , wymiar macierzy (N) Rysunek 4 Rozmiar bloku a czas wykonywania iteracji Ze wzrostem rozmiaru mnożonych macierzy, wzrasta ilość danych, które muszą zostać przetworzone w programie. W konsekwencji, wydłuża się czas wykonania programu. Stosując blokowanie, można zwiększając rozmiar bloku zwiększyć lokalność danych znajdujących się w pamięci podręcznej, a tym samym, poprawić wykorzystanie pamięci podręcznej. W efekcie, przy określonej ilości danych do przetworzenia, wspomniana poprawa lo-

44 44 Agnieszka Kamińska, Włodzimierz Bielecki kalności danych, spowodowana zwiększeniem rozmiaru bloku, generalnie skutkuje krótszym czasem wykonania programu. W praktyce oznacza to przyspieszenie wykonywania programu (patrz Rysunek 3). 0,01150 czas wykonania 1 iteracji [cykle CPU] 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,02344 wymiar macierzy=100 wymiar macierzy=200 wymiar macierzy=300 wymiar macierzy=400 wymiar macierzy=500 wymiar macierzy=600 % wypełnienia pamięci podręcznej przez odcisk danych Rysunek 5 Wypełnienie pamięci podręcznej blokiem danych a czas wykonywania iteracji Ze wzrostem rozmiaru mnożonych macierzy jest obserwowane skrócenie średniego czasu wykonywania 1 iteracji operacji mnożenia. Zjawisko to jest obserwowane także dla poszczególnych rozmiarów bloków (patrz Rysunek 4 i Rysunek 5). 5. Podsumowanie Wyniki uzyskane w przeprowadzonych badaniach wskazują na potencjalną możliwość zastosowania zaproponowanej przez Wolfe a metody obliczeniowego szacowania lokalności danych do obliczeniowego szacowania czasu wykonania programu, w oparciu o samą postać kodu źródłowego programu. Uzyskane wyniki potwierdzają także możliwość i zasadność wyznaczania współczynników ponownego użycia oraz odcisku danych w sposób zautomatyzowany, przy pomocy opracowanego w tym celu oprogramowania. W niniejszym artykule przedstawiono wyniki uzyskane dla prostego przykładu pętli realizującej mnożenie macierzy z blokowaniem. W przyszłych pracach planowane jest przeprowadzenie badań eksperymentalnych dla znacznie bardziej licznego zbioru pętli pochodzących z uznanych benchmark ów (NAS, UTDSP), celem uzyskania szerszego spektrum wyników umożliwiającego sformułowanie bardziej uogólnionych wniosków. Bibliografia [1] Stallings W. Organizacja i architektura systemu komputerowego. Projektowanie systemu a jego wydajność. Wydawnictwa Naukowo-Techniczne, 2004 [2] Wolfe M. High Performance Compilers for Parallel Computing. Addison Wesley, 1996 [3] Kraska K., Kamińska A. Koncepcja metody zwiększania lokalności danych na poziomie pamięci podręcznej oparta na transformacjach pętli programowych. Metody Informatyki Stosowanej, Nr 2/2010, Tom 23, s [4] Bastoul C., Cohen A., Girbal S., Sharma S., Temam O. Putting Polyhedral Loop Transformations to Work, LCPC 16 International Workshop on Languages and Compilers for Parallel Computers, LNCS 2958, 2003

45 System informacyjny na temat sieci hydrantów dla krajowego systemu ratowniczo-gaśniczego: metoda segmentacji tekstu i jej ocena Marcin Mirończuk 1, Tadeusz Maciak 2 1 Politechnika Białostocka, Wydział Elektryczny, 2 Politechnika Białostocka, Wydział Informatyki Abstract: This article describes the design process rule segmentator. The article also describes a reference design procedure set of segments. There have been a description of the numerical experiment and the reference created a collection of segments. Designed segmentator was used to extract segments from the fire service reports. Segmentation results were compared with other solutions to the segmentation of the text. Keywords: Rule segmentator, extraction sentence from text, text segmentation, phrases extraction, method of text segmentation 1. Wstęp W Państwowej Straży Pożarnej PSP do ewidencji zdarzeń służy system EWID-99 [1-3]. Po każdej interwencji PSP tworzony jest raport w wersji papierowej który przenoszony jest do wyżej wymienionego systemu elektronicznego [4]. Jeden z autorów dokonał opracowania metody projektowania systemu informacyjnego bazującej na analizie zebranych tam danych tekstowych. Metoda ta opiera się na eksploracyjnej analizie tekstu do jego strukturalizacji [5, 6]. Wybrany system informacyjny do zaprojektowania stanowił system informacyjny na temat sieci hydrantów dla krajowego systemu ratowniczo-gaśniczego. Jeden z etapów proponowanej metody polegał na segmentacji dokumentacji zdarzeń, który pociągał za sobą szereg problemów do rozwiązania, omawianych w niniejszym artykule. Segmenty w literaturze poświęconej lingwistyce komputerowej i przetwarzaniu tekstów w języku naturalnym, określa się też jako tokeny (ang. tokens). Podział tekstu na segmenty polega na rozpoznawaniu granic między podstawowymi elementami tekstu w postaci zdań. Segmentacja tekstu definiowana jest też, jako liniowy podział tekstu na co najmniej dwóch poziomach [7]. Pierwszy poziom stanowi podział tekstu na jednostki, zwykle zdania, które mogą być przetwarzane składniowo niezależnie od innych jednostek tego samego poziomu. Drugi poziom stanowi segmentacja tekstu, prowadząca do tego, że tekst dzielony jest na jednostki, nazwane tokenami lub segmentami, którym przypisuje się interpretacje morfosyntaktyczne, czyli informacje o częściach mowy (rzeczownik, czasownik itp.) i wartościach odpowiednich kategorii morfosyntaktycznych (rodzaju, przypadku itp.). Zazwyczaj segmentacja w tym sensie nazywana jest tokenizacją. Dodatkowo dla poprawy dalszej interpretacji tekstu, a więc i jakości, ważne jest rozpoznawanie segmentów charakterystycznych dla tekstów danego typu, np.: dat, adresów, nazw ulic itp. [8]. W badaniach prowadzonych przez autorów ważny aspekt stanowił podział tekstu na pierwszym poziomie. Ważne jest to z tego względu, że każdemu wydzielonemu segmentowi z raportu w procesie klasyfikacji nadawane jest znaczenie, określany jest jego kontekst. Odbywa się to poprzez analizę jego elementów Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

46 46 Marcin Mirończuk, Tadeusz Maciak składowych wyrażeń. Na ich podstawie budowany jest klasyfikator który przydziela segment do jednej z wydzielonych klas semantycznych (określających kontekst). Nieprawidłowa segmentacja może doprowadzić więc nie tylko do nieoprawnego podziału zdania na części, ale także może doprowadzić do nieprawidłowej interpretacji semantycznej segmentu. W literaturze dziedzinowej dotyczącej przetwarzania tekstów mało miejsca poświęca się metodom segmentacji na poziomie zdań i ich ocenom [7, 9-11]. W niniejszym tekście omówiono metodę podziału tekstu na segmenty oraz dokonano jej oceny. Skonstruowana metoda segmentacji polegała na rozpoznawaniu granicy zdań w dokumentach tekstowych opisujących interwencje dokonywane przez służby ratownicze PSP. Okazało się, że zadanie to nie jest banalne w przypadku próby segmentacji badanej dokumentacji. Do jego rozwiązania autorzy zaproponowali metodę opartą o regułowe dzielenie tekstu na segmenty. Metoda ta korzystała z bazy wiedzy zawierającej używane w dokumentacji skróty oraz bazy reguł określającej warunki segmentacji. W niniejszym opracowaniu autorzy przedstawili także wpływ rodzaju bazy wiedzy na prawidłową segmentację dostępnej dla nich dokumentacji. Zademonstrowane zostały też dwa możliwe sposoby polepszenia segmentacji tekstu tj. zmniejszenia błędu segmentacji. Pierwszy polegający na rozbudowie bazy wiedzy oraz drugi polegający na bezpośredniej korekcji w postaci zastosowania kompensacji oznaczonych segmentów. Całość rozwiązania, w postaci proponowanej metody, została poddana ocenie w odniesieniu do dwóch dostępnych dla autorów segmentatorów. Pierwszy z nich wykorzystywał rozszerzone reguły segmentacji (ang. exchange rule segmentation SRX) [8]. Drugi natomiast stanowił komponent wchodzący w skład otwartego pakietu do analizy języka naturalnego (ang. open natural language processing toolkit opennlp) [12, 13]. 2. Metodyka badań Metodyka badań zakładała następujące etapy: - etap 1 polegał na wytworzeniu w iteracyjnym cyklu bazy wiedzy oraz bazy reguł segmentatora regułowego do prawidłowej segmentacji raportów. Etap ten został opisany w podpunkcie etap 2 polegał na segmentacji losowej próby raportów za pomocą reguł wytworzonych na etapie nr 1 oraz utworzeniu referencyjnego zbioru danych który stanowił zbiór odniesienia do badania i oceny wybranych segmentatorów. Etap ten został opisany w podpunkcie 2.2, - etap 3 polegał na dokonaniu oceny wybranych segmentatorów. Etap ten został opisany w podpunkcie 2.4. Wyżej wymienione etapy składały się na przyjętą metodykę badań nad segmentacją raportów Etap 1 Budowa bazy wiedzy oraz reguł B(W, R) segmentatora regułowego Pierwszy etap badania polegał na wytworzeniu bazy wiedzy oraz reguł segmentatora regułowego (SR). W dalszym omówieniu bazę wiedzy oraz reguł będzie symbolizował zapis w postaci B(W, R), gdzie B oznacza bazę natomiast W oznacza wiedzę a R reguły. Reguły oraz baza wiedzy służyła do prawidłowej segmentacji, odkrywania i wydzielania segmentów z badanych raportów. Rysunek 1 przedstawia poglądowy schemat badania raportów i odkrywania reguł oraz elementów bazy wiedzy. Zgodnie z rysunkiem 1 dane wejściowe do segmentacji stanowiły raporty, które zapisane zostały w bazie danych oznaczonej jako Zbiór raportów. Z bazy tej pobierano w iteracyjnym cyklu po n = 20 raportów. Pobrane dokumenty następnie poddawane były procesowi segmentacji regułowej wykonywanej przez segmentator regułowy, który do swe-

47 System informacyjny na temat sieci hydrantów dla krajowego systemu 47 go działania wykorzystywał B(W, R), wstępnie uzupełnioną wiedzą i regułami na temat możliwych skrótów oraz zakończeń zdań. Po segmentacji wydzielone segmenty były zapisywane do Zbioru Segmentów (ZS), gdzie dokonywano ich przeglądu oraz etykietowania. Etykietowanie polegało na oznaczeniu segmentu za pomocą etykiety: - T (ang. true) w przypadku, gdy segment został prawidłowo wyodrębniony, - F (ang. false) w przypadku, gdy segment został nieprawidłowo wyodrębniony. Rysunek 1. Pierwszy etap iteracyjnej budowy bazy wiedzy i reguł segmentatora regułowego do segmentacji raportów. Źródło: [opracowanie własne] W wyniku tego, że na tym etapie badania nie był dostępny żaden wzorzec w postaci zbioru segmentów dobrze wydzielonych i zaetykietowanych (zbiór segmentów z samymi etykietami T, stanowiący referencyjny zbiór segmentów), do wstępnej oceny segmentatora posłużono się wskaźnikiem struktury, który prezentuje równanie 1. c st p s = (1) cs gdzie: p s wskaźnik struktury, c st liczba segmentów dobrze wydzielonych (ilość etykiet T), c sf liczba segmentów nieprawidłowo wydzielonych (ilość etykiet F). Przyjęto a priori, że segmentacja będzie zadawalająca, a tym samym B(W, R) będzie wystarczająca do segmentacji większej populacji raportów, gdy p s 0,97 w k = 20 kolejnych losowaniach i segmentacjach raportów segmentatorem regułowym. W przypadku, gdy wskaźnik struktury przyjmował mniejsze wartości niż oczekiwane, wówczas następowała analiza segmentów źle podzielonych, po której dokonywano aktualizacji B(W,R) o potrzebne elementy. W dalszej kolejności dokonywano powtórnego losowania raportów ze zbioru raportów i ich segmentacji za pomocą SR. W przypadku osiągnięcia stabilnego wyniku segmentacji, określonego jako wartość p s 0,97 w k = 20 kolejnych losowaniach, proces segmentacji był zakończony i następowało przejście do etapu nr Etap 2 Budowa Referencyjnego Zbioru Segmentów (RZS) Etap nr 2 polegał na wytworzeniu Referencyjnego Zbioru Segmentów (RZS), czyli zbioru segmentów prawidłowo wydzielonych z raportów, z których zbudowane są raporty (referencyjny zbiór raportów). W odniesieniu do tego zbioru w dalszej kolejności dokonano oceny: - utworzonego segmentatora regułowego i jego B(W, R), - utworzonego segmentatora regułowego z wybranym kompensatorem K(typ, B(W, R)), - segmentatora regułowego opartego o reguły zapisane w formacie SRX dla języka polskiego (pl) [12], - segmentatora opennlp opartego o reguły dla języka angielskiego (en) [13].

48 48 Marcin Mirończuk, Tadeusz Maciak Pierwsze dwa rozwiązania zostały od razu zweryfikowane i ocenione podczas tego etapu, z tego względu, iż użyto ich w procesie budowy, omawianego RZS. Pozostałe trzy oceniono na etapie nr 3 eksperymentu (podpunkt 2.4). Język angielski został zastosowany w celu sprawdzenia na ile zmiana językowej bazy leksykalnej wpływa na jakość segmentacji. Zastosowano je także w celu potwierdzenia czy też sfalsyfikowania możliwości zastosowania innych segmentatorów do podziału dostępnej dokumentacji. Schemat procesu, który służył do budowy RZS jak i oceny na tym etapie segmentatora regułowego oraz segmentatora regułowego z kompensatorem K w odniesieniu do tego zbioru przedstawia rysunek 2. Rysunek 2 przedstawia schemat procesu użytego do budowy referencyjnego zbioru segmentów oraz weryfikacji i oceny segmentatora regułowego jak i segmentatora regułowego z kompensatorem K(reguła, B(W, R)) użytych do budowy tego zbioru. Po otrzymaniu odpowiedniej B(W, R) dającej ustaloną a priori wartość wskaźnika struktury p s, z etapu nr 1 eksperymentu, przystąpiono do segmentacji większej populacji raportów tj. populacji liczącej n = 3735 raportów. Raporty te poddano segmentacji regułowej za pomocą SR wykorzystującego wcześniej wspomnianą B(W, R). Posegmentowane raporty tj. wyodrębnione segmenty z raportów, zapisywane były do ZS. Następnie tak wydzielonym segmentom nadawano dwie etykiety. Pierwsza etykieta dotyczyła tego czy segment został wyodrębniony prawidłowo czy też nie (podobnie jak na etapie nr 1 eksperymentu). Druga etykieta dotyczyła tego do jakiej klasy semantycznej C s należy wyodrębniony segment. Klasy te określają funkcję (rolę, znaczenie) segmentu w raporcie. Podczas badania tekstów oraz budujących ich segmentów wyróżniono pięć klas semantycznych, do których mogą należeć segmenty. Klasy te mają następujące nazwy: operacje (klasa c 1 ), sprzęt (klasa c 2 ), szkody (klasa c 3 ), meteo (klasa c 4 ), ogólna (klasa c 5 ). Po oznakowaniu wszystkich wylosowanych segmentów w wyniku tego, że nie istniał żaden RZS w doniesieniu do którego można było określić błąd segmentatora oraz ewentualnie błąd manualnego etykietowania segmentów, utworzono Zbiór Segmentów Niezweryfikowanych (ZSN). Zbiór ten można było przekształcić w RZS na trzy różne sposoby. Do sposobów tych należały następujące metody: - metoda polegająca na przeglądzie zbioru segmentów i wyznaczenia wskaźnika struktury p s, w przypadku gdy wskaźnik struktury osiąga wartość 1 (p s = 1) wówczas segmentator nie popełnia błędu segmentacji i dzieli wszystkie raporty poprawnie, dając tym samym RZS. Analiza ZSN wykazała, że wskaźnik struktury dla tego zbioru był równy p s = 0, Stąd wynikł wniosek, że należy ponownie przejrzeć ZSN i po dokonaniu analizy niepoprawnie rozbitych segmentów uaktualnić ponownie B(W, R) o wykryte nowe elementy oraz jeszcze raz przeprowadzić proces segmentacji. Krok ten wiązał się jednak z utratą wcześniejszych danych w postaci etykiet semantycznych nadanych dla wyodrębnionych segmentów, - metoda polegająca na kompensacji K(typ, B(W, R)) czyli na takim połączeniu ze sobą sąsiadujących segmentów, aby zmniejszyć ilość segmentów nieprawidłowo podzielonych. Przebadano pięć typów kompensatorów, do których należały takie kompensatory K jak: K(FFF i FTT, B(W, R)), K(FFT i FTT, B(W, R)), K(FFF, B(W, R)), K(FFT, B(W, R)), K(FFT, B(W, R) ), gdzie B(W, R) w zapisie z K oznacza bazę wiedzy oraz reguł kompensatora, natomiast np. zapis FFF i FTT oznacza typ reguły. W tym przypadku reguła brzmi następująco: Jeśli aktualny segment jest zaetykietowany jako nieprawidłowy (ma wartość etykietki F) oraz następny segment posiada także etykietkę F to połącz oba segmenty i oznacz je jako nieprawidłowo wyodrębnione (nadaj etykietkę F). Natomiast jeśli aktualnie przetwarzany segment ma etykietkę F a następny T to, połącz oba segmenty i nadaj im etykietkę T. Taki proces kompensacji powtarza się iteracyjnie, aż zostanie osiągnięty warunek stopu, czyli wszystkie segmenty zostaną skompensowane i zaetykietowane. W wyniku kompensacji ZSN otrzymano wskaźnik struktury na poziomie p s = 0, Teoretycznie więc należało wykonać mniej prac manualnych związanych z poprawą segmentów

49 System informacyjny na temat sieci hydrantów dla krajowego systemu 49 w celu otrzymania RZS. W praktyce zastosowany kompensator był obciążony błędem związanym z wcześniejszym niepoprawnym manualnym etykietowaniem segmentów jak i sam wprowadzał błąd związany z niepoprawnym łączeniem i etykietowaniem segmentów. Niektóre typy kompensatorów łączyły a następnie niepoprawnie etykietowały segmenty. W praktyce należało zastosować kompensator K(FFT, B(W, R) ) z własnymi regułami, dzięki którym kompensator nie popełniał błędów związanych z przypisaniem etykietki prawdziwej do segmentu faktycznie źle podzielonego i na odwrót. Należało też zwrócić uwagę na to, że kompensacja w opisywanym przypadku nie wytworzy RZS nawet z B(W, R) ). Związane jest to z tym, że nieprawidłowy podział zmienia kontekst segmentu. Natomiast łączeniu (kompensacji) podlegają tylko segmenty o tej samej klasie semantycznej, - metoda polegająca na manualnej poprawie ZSN, lub w przypadku gdy precyzyjnie i dokładnie zostały zaetykietowane segmenty (bez manualnego błędu etykietowania Zbiór Segmentów Zweryfikowanych) manualnej poprawie Skompensowanego Zbioru Segmentów Zweryfikowanych (SZSZ). Niezależnie od wybranej metody należało dokonać manualnej pracy polegającej na przejrzeniu otrzymanych zbiorów segmentów i ich ręcznej poprawie w celu otrzymania RZS. Zebrane statystyki dla wytworzonego RZS przedstawia tabela 1. Tabela 1. Statystyki referencyjnego zbioru segmentów. Źródło: [opracowanie własne] Min. Średnia Wariancja Maks. Pierwszy kwartyl Mediana Trzeci kwartyl rozstęp (25. percentyl) (75. percentyl) IQR Na podstawie analizy danych z tabeli 1 można stwierdzić, że połowę danych stanowią raporty składające się z 3 6 segmentów. Minimalna długość raportu wynosi 1 segment natomiast maksymalna 28 segmentów. Za punkt oddalony można uznać raporty składające się z segmentów. Dość spora wariancja świadczy o dość znacznym zróżnicowaniu zbioru segmentów i odchyleniu od wartości średniej. Dalsze eksperymenty polegały na badaniu wpływu typu bazy wiedzy oraz reguł jak i ich ilości na prawidłowość przeprowadzania procesu segmentacji. Badaną zmienną zależną była zmienna c s określająca ilość wykrytych segmentów, które natomiast określały długość (typ t) raportu, w zależności od typu rodzaju B(W, R). Podstawową zależność na ilość raportów przedstawia równanie 2. c cst + csf cs = (2) t t r = gdzie: c r ilość raportów, c s ilość segmentów, c st ilość segmentów wydzielonych prawidłowo, c sf ilość segmentów wydzielonych nieprawidłowo, t długość (typ) raportu, gdzie t Ν Wybrane wskaźniki do opisu drugiego etapu eksperymentu Podczas etykietowania zbioru segmentów oraz RZS poczyniono następujące założenia co do wydobywanych segmentów: - segmentator nie jest karany za błędy interpunkcyjne ludzi w raportach, które powodują to, że nie można jednoznacznie określić końca zdania, - błąd podziału powoduje zmianę kontekstu segmentu, a więc nie wszystkie segmenty zostaną skompensowane, - teoretycznie możliwe są wszystkie, pięć typów kompensacji, w praktyce zrealizowana została tylko jedna w postaci K(FFT, B(W, R) ).

50 50 Marcin Mirończuk, Tadeusz Maciak Rysunek 2. Schemat procesu użytego do budowy RZS oraz weryfikacji i oceny SR jak i SR z kompensatorem K(reguła, B(W, R)), użytych do budowy tego zbioru segmentów. Źródło: [opracowanie własne]

51 System informacyjny na temat sieci hydrantów dla krajowego systemu 51 Zgodnie z terminologią z zakresu klasyfikacji [14] proces manualnego etykietowania segmentów, działanie segmentatora lub kompensatora K(typ, B(W, R)) można ocenić za pomocą czterech następujących etykiet nadawanych wyodrębnionym segmentom: - prawdziwe klasyfikacje negatywne (ang. true negative, TN) segmenty oznaczone zostały jako negatywne i przewidziane zostały jako negatywne w odniesieniu do RZS, - prawdziwe klasyfikacje pozytywne (ang. true positive, TP) segmenty oznaczone zostały jako pozytywne i przewidziane jako pozytywne w odniesieniu do RZS, - fałszywe klasyfikacje negatywne (ang. false negative, FN) segmenty oznaczone zostały jako pozytywne ale przewidziane zostały jako negatywne w odniesieniu do RZS. - fałszywe klasyfikacje pozytywne (ang. false positive, FP) segmenty oznaczone zostały jako negatywne ale przewidziane zostały jako pozytywne w odniesieniu do RZS. W tabelach od 2 do 5 zaprezentowano przykładowe klasyfikacje, które mogą zostać wykryte i skorygowane, przy manualnym etykietowaniu segmentów oraz przy działaniu kompensatora K(reguła, B(W, R)): Etykieta FN Tabela 2. Tabela prezentująca fałszywe klasyfikacje negatywne. Źródło: [opracowanie własne] Tekst Spaleniu uległo 10h. łąki o wym. 1000mx1000m. Obok paliło się następne 20h. Etykieta TP 1 2 Referencyjny zbiór segmentów S S Spaleniu uległo 10h. łąki o wym. 1000mx1000m Obok paliło się następne 20h Segmenty otrzymane po przejściu przez SR z ręcznym etykietowaniem lub kompensator K(reguła, B(W, R)) S1 Spaleniu uległo 10h. łąki o wym. S2 1000mx1000m. Obok paliło się następne 20h Etykieta nadana fałsz prawda Etykieta rzeczywista Tabela 3. Tabela prezentująca prawdziwe klasyfikacje pozytywne. Źródło: [opracowanie własne] Tekst Na miejsce zdarzenia przyjechał str. Kowalski. Na miejscu zdarzenia byli natomiast już obecni Kowalski1 oraz Kowalski2. Etykieta TN 1 2 Referencyjny zbiór segmentów Na miejsce zdarzenia przyjechał str. Kowalski Na miejscu zdarzenia byli natomiast już obecni Kowalski1 oraz Kowalski2 Segmenty otrzymane po przejściu przez SR z ręcznym etykietowaniem lub kompensator K(reguła, B(W, R)) S1 Na miejsce zdarzenia przyjechał str. Kowalski S2 Na miejscu zdarzenia byli natomiast już obecni Kowalski1 oraz Kowalski2 Etykieta nadana prawda prawda fałsz fałsz Etykieta rzeczywista prawda prawda Tabela 4. Tabela prezentująca prawdziwe klasyfikacje negatywne. Źródło: [opracowanie własne] Tekst Spaleniu uległo 10h. łąki o wym. 1000mx1000m. Obok paliło się następne 20h. 1 2 Referencyjny zbiór segmentów Spaleniu uległo 10h. łąki o wym. 1000mx1000m Obok paliło się następne 20h. Segmenty otrzymane po przejściu przez SR z ręcznym etykietowaniem lub kompensator K(reguła, B(W, R)) Etykieta nadana Etykieta rzeczywista S1 Spaleniu uległo 10h fałsz fałsz S2 łąki o wym. 1000mx1000m. Obok paliło się następne 20h. fałsz fałsz

52 52 Marcin Mirończuk, Tadeusz Maciak Etykieta FP Tabela 5. Tabela prezentująca fałszywe klasyfikacje pozytywne. Źródło: [opracowanie własne] Tekst Spaleniu uległo 10h. Łąka była o wym. 1000mx1000m. Obok paliło się następne 20h. 1 2 Referencyjny zbiór segmentów Spaleniu uległo 10h Łąki była o wym. 1000mx1000m Segmenty otrzymane po przejściu przez SR z ręcznym etykietowaniem lub kompensator K(reguła, B(W, R)) Etykieta nadana Etykieta rzeczywista S1 Spaleniu uległo 10h fałsz prawda S2 Łąka była o wym fałsz fałsz S3 1000mx1000m. Obok paliło się następne 20h. Do podstawowych wskaźników, wykorzystanych w badaniu i weryfikowaniu utworzonego SR oraz wspierającego go kompensatora K(reguła, B(W, R), należały wskaźniki które prezentują równania 3 11 zawarte w pracach [15-17]: - precyzja (ang. precision) prawdziwie (pozytywnie) przewidziane wartości (ang. positive prediction value) - przywołanie (ang. recall) wrażliwość (ang. sensitivity) - negatywnie przewidziane wartości - specyficzność (ang. specificity) - błąd - dokładność (prawdziwość, ścisłość) (ang. accuracy) fałsz fałsz TP P = (3) TP + FP TP R = (4) TP + FN TN N = (5) TN + FN TN S = (6) TN + FP FP + FN E = (7) TP + FP + TN + FN TP + TN D = (8) TP + FP + TN + FN - współczynnik pozytywnego sfałszowania (ang. false positive rate) FP α = (9) FP + TN - współczynnik negatywnego sfałszowania (ang. false negative rate) - moc (ang. power) FN β = (10) FN + TP P = 1 β (11)

53 System informacyjny na temat sieci hydrantów dla krajowego systemu 53 Po korekcji etykiet i wytworzeniu Zbioru Segmentów Zweryfikowanych (ZSZ), można było określić rzeczywisty błąd segmentatora oraz zysk z użycia kompensatora K(FFT, B(W, R) ), dokonując oceny rozwiązania poprzez porównanie otrzymanych zbiorów segmentów z RZS. W tym celu, wykorzystano dodatkowe zależności zaczerpnięte z zakresu przetwarzania informacji (ang. information retrievel IR) użyte w pracy [18] równoważne ww. wskaźnikom. Wykorzystane i przedstawione dalej zależności zostały wyprowadzone na podstawie następującego założenia: Załóżmy, że jest dostępny jednoelementowy zbiór zapytań Q i zapytanie q 1 Q oraz zbiór segmentów S i, że dla zapytania q 1 mamy: - zbiór segmentów zwróconych przez segmentator (system segmentacji) (ZSZ lub SZSZ) R q S, - zbiór istotnych segmentów S q oznakowanych ręcznie ze zbioru segmentów S (RZS) tj. S q S. Dzięki tak sformułowanemu problemowi, możliwe jest wówczas wyznaczenie alternatywnego zapisu [14]: - precyzji - przywołania Sq Rq P = PIR = (12) R q Sq Rq R = RIR = (13) S Dodatkowo przeprowadzono także podstawowe testy z zakresu statystyki na niezależność segmentacji od rodzaju (typu) raportu oraz zgodności otrzymanych zbiorów segmentów z RZS. Założono więc, że dobry segmentator powinien być niezależny od tego na jakim tekście pracuje tj. jego długości wyrażonej w segmentach Segmentator regułowy (SR) Weryfikacja manualnego etykietowania segmentów tj. weryfikacja poprawności nadanych manualnie etykiet w postaci: prawda, fałsz dla wydzielonych przez segmentator regułowy segmentom z raportów, polegała na porównaniu kolejno zbioru segmentów niezweryfikowanego z referencyjnym zbiorem segmentów oraz zbioru segmentów zweryfikowanego z referencyjnym zbiorem segmentów. Zbiór segmentów niezweryfikowanych stanowił zbiór segmentów otrzymanych za pomocą SR, który to zbiór zaetykietowano manualnie bez sprawdzenia poprawności tego etykietowania. Zbiór segmentów zweryfikowanych stanowiły prawidłowo zaetykietowane segmenty, z poprawionymi etykietami w odróżnieniu do ZSN. Referencyjny zbiór segmentów stanowił natomiast prawidłowy, zweryfikowany zbiór segmentów budujących raporty. Dzięki dokonaniu porównania została określona rzeczywista struktura i wartość błędu popełnionego przy etykietowaniu zbioru segmentów, a więc i samego SR z którego segmenty w dalszej kolejności podane zostały procesowi kompensacji w celu wyboru najlepszej jej strategii. Strukturę i wartość błędu, popełnionego przy manualnym etykietowaniu segmentów otrzymanych z SR w odniesieniu do RZS, wraz z pozostałymi wskaźnikami wymienionymi w podpunkcie przedstawia kolejno tabela 6 i tabela 7. q

54 54 Marcin Mirończuk, Tadeusz Maciak Tabela 6. Tabela struktury błędów popełnianych przy manualnym etykietowaniu segmentów otrzymanych z SR w odniesieniu do RZS. Źródło: [opracowanie własne] TP = FP = 7 FN = 426 TN = 294 Tabela 7. Tabela wskaźników określających jakość działania SR z popełnionymi błędami przy manualnym etykietowaniu segmentów otrzymanych z SR. Źródło: [opracowanie własne] Wskaźnik P R N S Wartość Wskaźnik E D α β P Wartość Podczas etykietowania a więc i wstępnej oceny działania segmentatora został popełniony błąd I rodzaju (pole FP macierzy kontyngencji) oraz II rodzaju (pole FN macierzy kontyngencji). Oznaczono FP = 7 segmentów jako nieprawidłowo wydzielone które w rzeczywistości powinny być zaetykietowane prawidłowo oraz oznaczono jako prawidłowo FN = 426 wydzielonych segmentów, które faktycznie powinny być oznaczone jako nieprawidłowo wydzielone. Po dokonaniu odpowiedniej korekty, polegającej na zmianie etykiet określających prawidłowość wydzielenia segmentu, otrzymana została struktura błędów w zbiorze przetworzonych segmentów (ZSZ), którą prezentuje tabela 8. Tabela 8. Tabela struktury błędów, popełnionych przez SR, określonych w zbiorze przetworzonych segmentów. Źródło: [opracowanie własne] TP = FP = 0 FN = 0 TN = 720 Określenie rzeczywistej struktury i wartości błędu segmentatora regułowego po wprowadzeniu poprawek na zbiór przetworzonych segmentów z ręcznie nadanymi etykietami w odniesieniu do referencyjnego zbioru segmentów prezentuje tabela 9. Wartości poszczególnych wskaźników wymienionych w podpunkcie wyliczone zostały za pomocą zależności z zakresu przetwarzania informacji przedstawionych w podpunkcie Wartości dla poszczególnych wyprowadzonych zależności IR prezentuje tabela 10 natomiast wartości odpowiednich wskaźników zawiera tabela 11. Tabela 9. Tabela struktury błędów, popełnionych przez SR, określanych w odniesieniu do RZS. Źródło: [opracowanie własne] TP = FP = 720 FN = 436 TN = Tabela 10. Tabela do obliczeń wskaźników określających jakość działania SR zapisana w notacji z zakresu przetwarzania informacji. Źródło: [opracowanie własne] Ilość segmentów otrzymanych w wyniku przetwarzania raportów R q = TP + FN + TN + FP = TP + FP Ilość segmentów referencyjnych S q = TP + FN 2 2 Część wspólna segmentów przetworzonych i referencyjnych S R TP q q = Tabela 11. Tabela wskaźników określających jakość działania SR. Źródło: [opracowanie własne] Wskaźnik P R N S Wartość Wskaźnik E D α β P Wartość

55 System informacyjny na temat sieci hydrantów dla krajowego systemu 55 W wyniku korekty błędu związanego z manualnym etykietowaniem segmentów otrzymano dane (ZSZ), które nie są obciążone tym błędem. Statystyki wybrane do porównania ZSZ i ZSN otrzymanych w wyniku działania SR w zestawieniu z RZS prezentuje tabela 12. Tabela 13 oraz tabela 14 prezentuje kolejno, wartości wskaźników otrzymanych dla testów: - zgodności Kołmogorowa-Smirnova wyników, otrzymanych z SR, w postaci ZSZ jak i ZSN z RZS, - niezależności, gdzie była testowana hioteza H 0 mówiąca o tym, że wynik segmentacji jest niezależny od typu raportu (długości dokumentu wyrażonego w liczbie segmentów). Wartość wskaźników dla przeprowadzonych testów zostały otrzymane w wyniku użycia funkcji statystycznych dostępnych w opraogramowaniu R-project [19]. Tabela 12. Tabela z wybranymi statystykami RZS oraz ZSZ i ZSN. Źródło: [opracowanie własne] RZS ZSZ ZSN Prawidłowe segmenty Nieprawidłowe segmenty Średnia Wariancja Pierwszy kwartyl (25. percentyl) Mediana Trzeci kwartyl (75. percentyl) IQR Precyzja Przywołanie Błąd E Tabela 13. Tabela wskaźników otrzymanych dla testów zgodności Kołmogorowa-Smirnova dla danych pochodzących z ZSZ i ZSN z RZS. Źródło: [opracowanie własne] RZS ZSZ ZSN Test zgodności Kołmogorowa-Smirnova Poziom zgodności D Tabela 14. Tabela wskaźników otrzymanych dla testów niezależności χ segmentacji regułowej od długości raportów. Źródło: [opracowanie własne] RZS ZSZ ZSN 2 χ t Stopień swobody ν Wyniki które prezentują tabele wykazują, iż podczas etykietowania ręcznego segmentów popełniono błędy związane z manualnym etykietowaniem segmentów. Zaetykietowano taki sam zbiór segmentów (przywołanie) niemniej w rzeczywistości precyzja okazała się mniejsza natomiast błąd większy. Ten fakt można było także zaobserwować za 2 pomocą testu na niezależność χ który dla ZSZ przybrał większe wartości a więc segmentacja była bardziej zależna od długości raportu niż na początku się spodziewano. Podstawowe statystyki w postaci: średniej, mediany, kwartyli oraz rozstępu między kwartylowego (ang. inter-quartile range, IQR) jak i test zgodności Kołmogorowa-Smirnova ZSZ i ZSN z RZS nie wykazały żadnych różnic między ZSZ i ZSN stąd na ich podstawie nie można ocenić jakości działania segmentatora.

56 56 Marcin Mirończuk, Tadeusz Maciak Graficzna prezentacja wybranych statystyk jak i wizualizacja danych ZSZ w zestawieniu z referencyjnym zbiorem segmentów, została dokonana za pomocą różnego rodzaju wykresów m.in.: histogramów czy też kwartylowych. Wymienione wykresy prezentują rysunki 3 4. Rysunek 3. Histogramy porównawcze rozkładu częstotliwości segmentów w zależności od długości raportu (typu) w RZS i ZSZ utworzonym przez SR. Źródło: [opracowanie własne] Rysunek 3 oraz rysunek 4 prezentują graficzne porównanie wybranych parametrów ZSZ z RZS. Na pierwszym z nich można, na podstawie wizualnej oceny, stwierdzić dobre dopasowanie pierwszego zbioru do drugiego, świadczy to o dobrej, prawidłowej ekstrakcji segmentów przez SR. Drugi rysunek wykreślono w celu dokładniejszego sprawdzenia dopasowania obserwacji pochodzących z ZSZ do RZS. Na pierwszym z serii czterech wykresów można zaobserwować praktycznie pokrywające się dystrybuanty ZSZ z RZS. Na trzech kolejnych wykresach kwantylowych można zauważyć, że punkty ułożone są blisko prostej y = x. Świadczy to o tym, że obserwacje pochodzą z tego samego rozkładu. Reasumując, na podstawie analizy graficznej można stwierdzić zadawalające wzajemne dopasowanie ZSZ z RZS a więc i zadawalające działanie segmentatora Segmentator regułowy z kompensatorem K(FFT, B(W, R) ) Praktyczna kompensacja błędu polegała na zasymulowaniu reguł, SR poprzez dobranie tak reguł aby kompensator nie popełniał błędów I i II rodzaju. Sposób ten umożliwił porównanie działanie kompensatora z innymi wytypowanymi metodami segmentacji. W praktyce na drodze eksperymentu ustalono, że aby kompensator był przeźroczysty i nie popełniał błędów I i II rodzaju należy nałożyć reguły na strategię kompensacji typu FFT. W pozostałych przypadkach autorom nie udało się osiągnąć zadawalających rezultatów kompensacji. Pomimo wprowadzania reguł kompensator wykazywał w dalszym ciągu ww. błędy i błąd segmentacji był znacznie większy niż dla przytaczanych wyników wybranej strategii.

57 System informacyjny na temat sieci hydrantów dla krajowego systemu 57 Rysunek 4. Wykresy dotyczące porównania dystrybuanty oraz wykresy kwartylowe dystrybuanty, prawdopodobieństwa i częstotliwości RZS ze ZSZ utworzonym przez SR. Źródło: [opracowanie własne] Ilościowe określenie etykiet oznaczających prawidłowe i nieprawidłowe wydzielenie segmentów w skompensowanym zbiorze segmentów zweryfikowanych, otrzymanych w wyniku wykorzystania kompensatora K(FFT, B(W, R) ) prezentuje tabela 15. Określenie rzeczywistej struktury i wartości błędu SR z kompensacją K(FF T, B(W, R) ), przetworzonych segmentów w odniesieniu do referencyjnego zbioru segmentów prezentuje tabela 16. Wartości poszczególnych wskaźników wymienionych w podpunkcie wyliczone zostały za pomocą, zależności z zakresu przetwarzania informacji przedstawionych w podpunkcie Wartości dla poszczególnych wyprowadzonych zależności IR prezentuje tabela 17 natomiast wartości odpowiednich wskaźników zawiera tabela 18. Tabela 15. Tabela struktury błędów, popełnionych przez SR z kompensacją K(FFT, B(W, R) ), określonych w zbiorze przetworzonych segmentów. Źródło: [opracowanie własne]. TP FP 0 FN 0 TN 494 Tabela 16. Tabela struktury błędów popełnionych przez SR z kompensatorem K(FFT, B(W, R) ) określanych w odniesieniu do RZS. Źródło: [opracowanie własne] TP = FP = 494 FN = 323 TN = 12430

58 58 Marcin Mirończuk, Tadeusz Maciak Tabela 17. Tabela do obliczeń wskaźników określających jakość działania SR z kompensatorem K(FFT, B(W, R) ) zapisana w notacji z zakresu przetwarzania informacji. Źródło: [opracowanie własne] Ilość segmentów otrzymanych w wyniku przetwarzania raportów R q = TP + FN + TN + FP = TP + FP Ilość segmentów referencyjnych S q = TP + FN 2 2 Część wspólna segmentów przetworzonych i referencyjnych S R TP q q = Tabela 18. Tabela wskaźników określających jakość działania SR z kopmensatorem K(FFT, B(W, R) ). Źródło: [opracowanie własne] Wskaźnik P R N S Wartość Wskaźnik E D α β P Wartość Ilość zasymulowanych, rzeczywiście odtworzonych reguł segmentacji = 226 niepowodujących błędu I i II rodzaju. Statystyki wybrane do porównania SZSZ otrzymanego w wyniku działania segmentatora regułowego z kompensacją K(FFT, B(W, R) ), w zestawieniu z RZS prezentuje tabela 19. Tabela 20 oraz tabela 21 prezentuje kolejno, wartości wskaźników otrzymanych dla testów: - zgodności Kołmogorowa-Smirnova wyników, otrzymanych z SR z kompensacją K(FFT, B(W, R) ), w postaci SZSZ z RZS, - niezależności, gdzie była testowana hioteza H 0 mówiąca o tym, że wynik segmentacji jest niezależny od typu raportu (długości dokumentu wyrażonego w liczbie segmentów). Wyniki które prezentują tabele wykazują nieznaczną poprawę segmentacji wspieraną kompensatorem w odniesieniu do segmentacji regułowej bez tego wsparcia. Rzeczywiście wyekstrahowano, oznaczono poprawniej dodatkowo 226 segmenty. Ten fakt 2 można było także zaobserwować za pomocą testu na niezależność χ który dla SZSZ przybrał mniejsze wartości w porównaniu z segmentatorem regułowym. Świadczy to o tym, że segmentacja stała się bardziej niezależna od długości raportów. Podstawowe statystyki w postaci: średniej, mediany, kwartyli oraz rozstępu między kwartylowego jak i test zgodności Kołmogorowa-Smirnova SZSZ z RZS wykazują coraz większą ze sobą zbieżność. Tabela 19. Tabela z wybranymi statystykami RZS oraz ZSZ otrzymanego w wyniku działania SR z kompensacją K(FFT, B(W, R) ). Źródło: [opracowanie własne] RZS Segmentator regułowy z kompensacją K(FFT, B(W, R) ) Prawidłowe segmenty Nieprawidłowe segmenty Średnia Wariancja Pierwszy kwartyl 3 3 (25. percentyl) Mediana 4 4 Trzeci kwartyl 6 6 (75. percentyl) IQR 3 3 Precyzja Przywołanie Błąd E

59 System informacyjny na temat sieci hydrantów dla krajowego systemu 59 Tabela 20. Tabela wskaźników otrzymanych dla testów zgodności Kołmogorowa-Smirnova dla danych pochodzących z SR z kopmensatorem K(FFT, B(W, R) ), SZSZ z RZS. Źródło: [opracowanie własne] Test zgodności Kołmogorowa-Smirnova Referencyjny zbiór segmentów Segmentator regułowy z kompensacją K(FFT, B(W, R) ) Poziom zgodności D Tabela 21. Tabela wskaźników otrzymanych dla testów niezależności χ wyniku segmentacji SR z kopmensatorem K(FFT, B(W, R) ), SZSZ od długości raportów. Źródło: [opracowanie własne] Referencyjny zbiór segmentów Segmentator regułowy z kompensacją K(FFT, B(W, R) ) 2 χ t Stopień swobody ν Graficzna prezentacja wybranych statystyk jak i wizualizacja danych pozyskanych z działania SR z kopmensatorem K(FFT, B(W, R) ) w zestawieniu z RZS, została dokonana za pomocą różnego rodzaju wykresów m.in.: histogramów czy też kwartylowych. Wymienione wykresy prezentują rysunki 5 6. Rysunek 5 oraz rysunek 6 prezentują graficzne porównanie wybranych parametrów SZSZ z RZS. Na pierwszym z nich można, na podstawie wizualnej oceny, stwierdzić praktycznie całkowite dopasowanie pierwszego zbioru do drugiego, świadczy to o dobrej, prawidłowej ekstrakcji segmentów przez SR z kompensacją i jej poprawie w odniesieniu do SR. Drugi rysunek wykreślono w celu dokładniejszego sprawdzenia dopasowania obserwacji pochodzących SZSZ do RZS. Na pierwszym z serii czterech wykresów można zaobserwować praktycznie pokrywające się dystrybuanty SZSZ z RZS. Na trzech kolejnych wykresach kwantylowych można zauważyć, że punkty ułożone są blisko prostej y = x. Świadczy to o tym, że obserwacje pochodzą z tego samego rozkładu. Reasumując, na podstawie analizy graficznej można stwierdzić praktycznie całkowite dopasowanie SZSZ z RZS a więc i poprawę działania segmentatora Etap 3 Analiza porównawcza wybranych typów segmentatorów Podczas porównywania działania wytypowanych i zbadanych segmentatorów posłużono się dodatkowymi zależnościami (wskaźnikami) w postaci: harmonicznej i entropii [16]. Zależności na wymienione wskaźniki prezentują równanie 14 oraz równanie 15: - harmoniczna (średnia harmoniczna) miara F P R F = 2 (14) P + R gdzie: P wartość precyzji, R wartość przywołania, entropia. k n j H = j = H j (15) 1 n H j m = i = p 1 p log( p ) (16) n ij ij ij = m i = 1 n ij ij (17)

60 60 Marcin Mirończuk, Tadeusz Maciak gdzie: n j liczba segmentów w grupie j, n całkowita liczba segmentów, H j entropia dla grupy j, p ij prawdopodobieństwo klasy i w grupie j, n ij ilość wystąpień etykiety klasy i w grupie j. Rysunek 5. Histogramy porównawcze rozkładu częstotliwości segmentów w zależności od długości raportu (typu) w RZS i SZSZ utworzonym przez SR z kopmensatorem K(FFT, B(W, R) ). Źródło: [opracowanie własne] Rysunek 6. Wykresy dotyczące porównania dystrybuanty oraz wykresy kwartylowe dystrybuanty, prawdopodobieństwa i częstotliwości RZS ze SZSZ utworzonym przez SR z kopmensatorem K(FFT, B(W, R) ). Źródło: [opracowanie własne]

61 System informacyjny na temat sieci hydrantów dla krajowego systemu 61 Schemat blokowy procesu do weryfikacji pięciu wytypowanych i przebadanych segmentatorów prezentuje rysunek 7. Rysunek 7. Poglądowy schemat procesu weryfikacji segmentatorów. Źródło: [opracowanie własne] Rysunek 7 prezentuje proces weryfikacji pięciu wybranych, przebadanych segmentatorów. Na początku z RZS pobierane były raporty, które poddawano następnie procesowi segmentacji za pomocą wybranego segmentatora. Wyniki segmentacji były zapisywane w ZSZ. Po zapisie dokonywana była ocena poprzez porównanie ze sobą RZS z otrzymanym ZSZ. Z każdego porównania były rejestrowane (zapisywane) wytypowane wskaźniki do oceny działania segmentatora i jakości segmentacji tekstu. Wybrane statystyki oraz wskaźniki do porównania wytypowanych, zbadanych segmentatorów w zestawieniu z referencyjnym zbiorem segmentów prezentuje tabela 22. Tabela 23 prezentuje zbiorcze, porównawcze wartości wybranych wskaźników określających jakość działania przebadanych segmentatorów. Wyniki które prezentują tabele wskazują wyraźnie lepsze działanie skonstruowanego segmentatora regułowego oraz segmentatora regułowego z kompensacją niż pozostałych użytych do porównania segmentatorów. Segmentacja pogarsza się wraz z próbą zmiany reguł języka segmentacji, co wiąże się ze zmianą bazy wiedzy na temat zakończeń segmentów, które w zależności od języka są różne. O pogorszeniu segmentacji świadczy zmiana statystyk w odniesieniu do RZS. Widać wyraźny wzrost średniej jak i wariancji dla otrzymanych zbiorów segmentów z wybranych segmentatorów. Pociąga to za sobą zbytnie rozdrobnienie raportów. Zwiększa się ilość segmentów jak i ilość raportów o danym typie, które nie występują w RZS. Z tego wynika, że segmentacja, wykonana za pomocą segmentatorów wybranych do porównania z SR, stała się bardziej zależna od długości raportów. Małe wartości F miary oraz duże wartości entropii porównywanych segmentatorów i wytwarzanych przez nich zbiorów segmentów w odniesieniu do SR, SR z kompensacją i RZS świadczą o znacznej ich niejednorodności, a więc niesatysfakcjonującym ich działaniu i przetwarzaniu dostępnej dokumentacji.

62 62 Marcin Mirończuk, Tadeusz Maciak Tabela 22. Statystyki wytypowanych, przebadanych segmentatorów. Źródło: [opracowanie własne] RZS Segm. SRX Segm. opennlp SR SR z kompensacją Język PL PL EN PL PL Prawidłowe segmenty Nieprawidłowe segmenty Średnia Wariancja Pierwszy kwartyl (25. percentyl) Mediana Trzeci kwartyl (75. percentyl) IQR Precyzja Przywołanie Błąd E Błąd względny % 7.38% 2.23% 1.34% Test zgodności Test niezależności Tabela 23. Wskażniki określające jakośc działania wytypowanych, przebadanych segmentatorów. Źródło: [opracowanie własne] Segmentator Język Precyzja Przywołanie Błąd F-miara Entropia Segmentator regułowy SRX PL opennlp EN Segmentator regułowy PL Segmentator wspierany kompensacją PL Graficzna prezentacja wybranych statystyk i wartości wskaźników z badania wytypowanych, zbadanych segmentatorów w zestawieniu z referencyjnym zbiorem segmentów, została dokonana za pomocą różnego rodzaju wykresów m.in.: pudełkowych, precyzji/przywołania, histogramów czy też kwartylowych. Wymienione wykresy prezentują rysunki Na rysunku 8 który prezentuje wykres pudełkowy rozkładu ilości segmentów, można zaobserwować wyraźne przesunięcie mediany dla segmentatorów nr. 2 i 3 w odniesieniu do RZS. Świadczy to o tym, że segmentatory te zwracają większą ilość raportów składających się z pięciu segmentów zamiast czterech. Zaobserwować można także dla dwóch ww. segmentatorów inne punkty oddalone. Podczas ich stosowania za punkty oddalone można uznać raporty składające się z segmentów, gdzie w rzeczywistości za punkty oddalone uznaje się raporty składające się już z segmentów. Różnice dotyczą także, dla segmentatora nr. 3 wartości maksymalnej. Segmentator ten daje raporty składające się z 32 segmentów zamiast 28. W tym przypadku tylko jeden z ww. dwójki segmentatorów, który oznaczono numerem 2, zwrócił prawidłową maksymalną ilość raportów składających się z 28 segmentów. Prezentowane statystyki, mediana, wartość minimalna oraz maksymalna jak i punkty oddalone skonstruowanego SR oraz SR z kompensacją pokrywają się z RZS. Rysunek 9 prezentuje wykres punktowy przywołania/precyzji wytypowanych, zbadanych segmentatorów. Zaprezentowano na nim zmianę wartości precyzji oraz przywołania w zależności od typu segmentatora (im bliżej punktu (1,1) tym lepsze działanie segmentatora). Można zaobserwować, że wraz ze zmianą reguł języka segmentacji jakość segmentacji wyraźnie spada. Zmniejsza się zarówno precyzja jak i przywołanie. Widać, że segmentator

63 System informacyjny na temat sieci hydrantów dla krajowego systemu 63 SRX z regułami dla języka polskiego charakteryzuje się prawie taką samą precyzją jak segmentator opennlp dla języka angielskiego, wyróżnia go jedynie lepsze przywołanie. Oznacza to to, że ilościowo zwracają one taką samą liczbę segmentów jednak w odniesieniu do RZS segmentator SRX jest nieznacznie lepszy. Precyzja i przywołanie utworzonego SR oraz SR z kompensacją jest bliska punktu (1, 1) świadczy to o tym, że wynikowy zbiór segmentów pokrywa się praktycznie z RZS. Rysunek 8. Wykres pudełkowy rozkładu ilości segmentów. Źródło: [opracowanie własne] Rysunek 9. Wykres punktowy przywołania/precyzji w ZSZ wytworzonym przez wytypowane, zbadane segmentatory. Źródło: [opracowanie własne] Rysunek 10 prezentuje porównawcze histogramy rozkładu częstotliwości segmentów w danej grupie raportów. Na każdym z wykresów prezentowanych na rysunku 10 znajduje się porównanie dopasowania obserwacji empirycznych pochodzących z otrzymanych zbiorów segmentów do RZS. Widać, że segmentator SRX oraz SR i SR z kompensacją w odróżnieniu do segmentatora opennlp z ustawioną wersją angielską przywołują taki sam zbiór raportów o długości 28 segmentów. Niemniej opracowany SR oraz SR z kompensacją znacznie lepiej pokrywa się z RZS w przedziale raportów składających się z 2 15 segmentów.

64 64 Marcin Mirończuk, Tadeusz Maciak Rysunek 11 prezentuje wykresy kwantylowe na których można zauważyć, że dla niektórych zbiorów segmentów punkty ułożone są w znacznej odległości od prostej y = x. Świadczy to o tym, że obserwacje nie pochodzą dokładnie z tego samego rozkładu tj. RZS. Reasumując, na podstawie analizy graficznej można wykazać znaczne różnice w działaniu segmentatorów co jest związane z ich bazą wiedzy oraz reguł jak i na ich podstawie można wybrać najbardziej odpowiedni segmentator do realizacji zadania segmentacji raportów ze zdarzeń, który to stanowił opisany przez autorów segmentator regułowy. Rysunek 10. Histogramy porównawcze rozkładu częstotliwości segmentów w zależności od długości raportu (typu) w referencyjnym zbiorze segmentów i zbiorze segmentów utworzonym przez wytypowane, zbadane segmentatory. Źródło: [opracowanie własne] Rysunek 11. Wykresy dotyczące porównania kwantyli częstotliwości dla wytypowanych, zbadanych segmentatorów. Źródło: [opracowanie własne]

65 System informacyjny na temat sieci hydrantów dla krajowego systemu Wnioski Z punktu wybranych statystyk (średnia mediana, wariancja) zbiór segmentów zweryfikowanych oraz zbiór segmentów niezweryfikowanych nie wykazują między sobą żadnych różnic. Różnice zostały wykryte dopiero w wyniku zastosowania odpowiednich miar w postaci przywołania, precyzji oraz błędu, czyli miar z zakresu dziedzin klasyfikacji oraz grupowania (uczenia maszynowego, sztucznej inteligencji), które są bardziej adekwatnymi wskaźnikami oceny segmentacji oraz działania wybranych segmentatorów. Niepoprawna segmentacja powoduje wzrost średniej jak i wariancji w zbiorze segmentów. Świadczy to o zbytnim rozdrobnieniu segmentów i całych tekstów oraz o zbyt małej bazie wiedzy i reguł na temat skrótów i ich wykrywania niektórych badanych segmentatorów. Dodatkowo może to świadczyć o tym, że teksty z reguły nie kończą się skrótami. Przy tworzeniu segmentatorów należy więc zadbać o B(W, R) na wysokim poziomie jakości. Elementy jej będą zależeć od analizowanej dziedziny tj. od używanego słownictwa (zasobu leksykalnego) ekspertów, którzy tworzą raporty jak i języka w jakim sporządzana jest dokumentacja. Badanie wykazało, przy porównywaniu reguł zbudowanego segmentatora regułowego z segmentatorem opartym o reguły SRX, że w większości raportów używa się niestandardowych skrótów, niebędących częścią poprawnego języka polskiego. Wynika z tego wniosek, że w celu dokładnej segmentacji należy przeprowadzić odpowiedni proces wcześniejszej analizy dostępnych tekstów w celu wydobycia reguł oraz wiedzy na temat stosowanych w tekście skrótów jak i reguł kończenia zdań. Przy tworzeniu raportów często używa się skrótów związanych z elementami analizowanej dziedziny ratownictwa, z którymi decydenci mają najczęstszy kontakt oraz które w jej zakresie weszły do powszechnego obiegu i stały się na tyle naturalne, iż na stałe zapisały się do słownika leksykalnego i semantycznego decydentów. Ponadto segmentacja może być wspierana, pod pewnymi warunkami, kompensacją. Kompensator optymalizuje błąd segmentacji, przez co należy wykonać mniej manualnej pracy związanej z budowaniem RZS. Badania wykazały, że najlepsze rezultaty zapewniał kompensator K(FFT, B(W, R) ). Uzyskane dane pokazały, że większość raportów zbudowana jest z trzech-czterech segmentów. Może to sugerować, że akcje są dość standardowe, podobne do siebie i schematyczne. Tak więc nie wymagają one większego komentarza przez decydentów. W przypadku większej komplikacji akcji ratowniczo-gaśniczej, polegającej na użyciu lub udziale innych sił i środków z systemu ratowniczo-gaśniczego i spoza niego oraz bardziej skomplikowanych akcji logistycznych, raporty stają się dłuższe oraz bogatsze w opisy. W ramach eksperymentu wytworzono unikalny, w ramach dziedziny ratownictwa, zbiór reguł oraz elementów bazy wiedzy na temat stosowanych skrótów przez decydentów jak i zbiór prawidłowo wydzielonych i oznakowanych segmentów z elektronicznej części Karty informacji ze zdarzenia w postaci sekcji zatytułowanej Dane opisowe do informacji ze zdarzenia [4]. W dalszej kolejności pozyskany zbiór segmentów będzie poddawany przetwarzaniu w torze formowania i strukturalizacji informacji. Na jego podstawie będzie podjęta próba budowy systemu informacyjnego na temat sieci hydrantów dla krajowego systemu ratowniczo-gaśniczego. Bibliografia [1] Abakus: System EWID99. [on-line] [dostęp: 1 maja 2009] Dostępny w Internecie: [2] Abakus: System EWIDSTAT. [on-line] [dostęp: 1 maja 2009] Dostępny w Internecie:

66 66 Marcin Mirończuk, Tadeusz Maciak [3] Strona firmy abakus. [on-line] [dostęp: 1 marca 2009] Dostępny w Internecie: [4] 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 pkt. 5 i 6. [5] Mirończuk M. Przegląd oraz zastosowanie metod eksploracji danych tekstowych do przetwarzania raportów z akcji ratowniczo-gaśniczych (w cyklu recenzji), [6] PWN. Strukturalizacja. [dostęp: 1 kwietnia 2011] Dostępny w Internecie: [7] Przepiórkowski A. Techniki dezambiguacji morfo syntaktycznej. Powierzchniowe przetwarzanie języka polskiego. Warszawa: Akademicka oficyna wydawnicza EXIT, s [8] Mykowiecka A. Elementy tekstu segmenty, słowa, zdania. Inżynieria lingwistyczna Komputerowe przetwarzanie tekstów w języku naturalnym. Warszawa: Wydawnictwo PJWSTK, s [9] Mykowiecka A. Inżynieria lingwistyczna. Komputerowe przetwarzanie tekstów w języku naturalnym. Warszawa: PJWSTK, [10] Moens M. F. Information Extraction: Algorithms and Prospects in a Retrieval Context (The Information Retrieval Series). Springer, [11] Mooney R. J., Bunescu R. C. Mining Knowledge from Text Using Information Extraction. SIGKDD Explorations, No 7, 2005, s [12] Miłkowski M., Lipski J. Using SRX Standard for Sentence Segmentation. In: Vetulani Z., editor. Human Language Technology Challenges for Computer Science and Linguistics: Springer Berlin / Heidelberg, s [13] opennlp. [dostęp: 1 kwietnia 20011] Dostępny w Internecie: [14] Stąpor K. Automatyczna klasyfikacja obiektów. Warszawa: Akademicka oficyna wydawnicza EXIT, [15] Hand D., Mannila H., Smith P. Eksploracja danych. Wydanie 1. Warszawa: Wydawnictwo Naukowo-Techniczne, [16] Markov Z., Larose D. T. Eksploracja zasobów internetowych. Analiza struktury, zawartości i użytkowania sieci WWW. Warszawa: Wydawnictwo Naukowe PWN, [17] Manning C. D., Raghavan P., Schütze H. Introduction to Information Retrieval. Press C.U., [18] Markov Z., Larose D. T. Wyszukiwanie informacji tekstowych i wyszukiwanie w Internecie. Eksploracja zasobów internetowych Analiza struktury, zawartości i użytkowania sieci WWW. Warszawa: Wydawnictwo Naukowe PWN, s [19] The R Project for Statistical Computing. [dostęp: 1 stycznia 2011] Dostępny w Internecie: Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego w ramach Programu Operacyjnego Kapitał Ludzki Działanie 8.2 Transfer wiedzy, Poddziałanie Regionalne strategie innowacji, budżetu państwa oraz środków Samorządu Województwa Podlaskiego. Artykuł finansowany w ramach pracy statutowej S/WI/4/08

67 Streamed Photon Mapping Krzysztof Guzek, Piotr Napieralski Institute of Information Technology, Technical University of Łódź Abstract: In this paper, we present a new solution for Global Illumination an extended photon mapping algorithm. Our technique replaces samples technique in traditional photon mapping as well as the manner of photon map construction. Our approach avoids emitting unneeded photons and decreased computation time. The proposed approach allows one to reduce the number of comparisons when searching for neighbouring photons in order to calculate the final colour of the pixel. Keywords: Photorealistic Image Synthesis, Global Illumination, Photon Mapping, Visualization 1. Introduction Global illumination plays an important role in generating images with a high degree of realism. Algorithms which generate images using the described method are able to obtain such effects as soft shadows, caustic effects as well as indirect lighting. Nowadays modern methods use computer hardware capabilities that are able obtain realistic and effective images in a reasonable amount of time. The most popular method is photon mapping. This is a two-pass method thanks to which we can get an approximate solution of the rendering equation giving images with small errors with a biased rendering algorithm. In recent years several researchers have developed this method to eliminate the existing errors and to reduce the computing time. The popularity of Photon Mapping is illustrated by the fact that it is used by the most popular rendering engines like Mental ray, YafaRay or V-Ray. These engines are part of the important systems used in interdisciplinary rendering visualization. 2. Photon Mapping Photon Mapping was first proposed by Jensen [1] in The author's idea was to create an independent data structure representing the distribution of light energy (flux) on the geometry of scene objects in the places ray intersections. The structure - photon map is created during the first pass, by sending a large number of photons from light sources. The distribution of particles takes place in a similar way as was done in the Path tracing [2]. The direction of the reflection ray is calculated on the basis of their BRDF function. Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

68 68 Krzysztof Guzek, Piotr Napieralski Figure 1. Distribution of photons (D direct illumination, C caustic photon, I indirect illumination, S shadow photon) In order to accelerate the rendering process, the structure of the map is divided into a photon map and a caustic map. Storing the photons responsible for the caustic in a separate data map allows for significant acceleration of the rendering process. Both maps are then used during the second pass - rendering. This phase launches the classical Monte Carlo ray tracing(fig. 2). Figure 1. Second pass of Photon Mapping rendering The rays are sent from the viewer through each pixel in a scene form a direction vector ωr. The radiance L s (x, ω r ) is calculated at the intersection x of the origin ray with the surface geometry based on the rendering equation [2].

69 Streamed Photon Mapping 69 L ( x, ω ) = L ( x, ω ) + s r e + fr ( x, ωr, ωi) Li ( x, ωi)cosθidωi Ω where: L e radiance emitted by the surface, L i irradiance from the direction ω i, f r BRDF function, Ω - all directions of the light. The reflected radiance is computed as the sum of the energy of the neighbouring photons (with respect to their BRDF function) divided by the area of a circle with a radius of the sphere equal to a searching radius (2). r n Φ p( x, ωp) Lr ( x, ω r ) fr ( x, ωp, ωr) (2) A p= 1 where: L r reflected radiance by the surface at x in direction ω r, L i irradiance from the direction ω i, f r BRDF function, A projected area of the sphere used to locate the photons. Additionally, in his successive papers, Jensen proposed using kd trees to optimize searches photons. The Photon Mapping made it possible to get independent light intensity calculations from the geometry of the scene. (1) 2. Improvement methods Contemporary researchers try to find ways to optimize the data structure and to reduce time searching for a sufficient number of neighbouring photons. The calculation of a correct distribution of the light in the scene is associated with the solution of the rendering equation (1). Stochastic methods are used to lead a random distribution of the photons in the areas which are negligible for the final image of the scene. The method used for identifying areas important to the image quality was introduced by Keller and Wald [3]. They applied projection maps for determining which areas should be sent with a higher number of photons. The method improved the quality of the effects of caustic through the density of photons in the environment of objects refracting light. The method with the original solution assumed that one surface collected photons in the calculation of collision energy in the considered geometry. This kind of solution leads to errors in the form of areas of underexposure in areas where the geometry is not flat or less than the radius of the surrounding sphere (Ω from equation 1) Gathering information about the surrounding geometry of the hit points [4] and adaptive approximation of the surface which collects photons using polygons under existing conditions [5] allowed to eliminate the described errors. The heuristic solution proposed by Tobler [6] received for the area surrounding the sampling photons octagon instead of circle as it was in previously described methods. The solution greatly helped in overcoming errors generated in the corners of the geometry. A different approach of the method was proposed by Havran et al. [7] defined as Fast final gathering via reverse photon mapping. The reversing of the process was designed to find the nearest photons in an established area around the path of hit point. This approach required an appropriate structure - radiance maps. The structure was saved in the form of several files with a resolution of the target image and contained a partial calculation of intensity. Handling large data records (corresponding to a large number of photons and reflection) contributes to a rising demand for memory. The solution for eliminating this error was to apply progressive photon mapping [8,9] which consists of a cyclic repeating propagation of

70 70 Krzysztof Guzek, Piotr Napieralski photons in the scene followed by the calculation of the approximate value of intensity for each hit point and narrowing the search radius. During the estimating energy, the described algorithms take into account the impact of photons and the photon map has been closely associated with the geometry of the scene. Considering the data structure paths of the photon allowed for partial independence of the scene geometries and a way to improve estimations of the density of photons. A group of methods for solving such problems is a Ray Mapping proposed by Havran et al. [7] Ray mapping algorithm requires multiple, time-consuming calculation of the ray intersection with the disc. Optimizations in the way of identifying the most probable set of rays (the convergence trends) and spatial indexing disks that are surrounded by the sampling point have been proposed by García [10]. The described methods, however, require definitely larger resources (both computation time and memory). The idea for the appropriate grouping to increase speed and accuracy of the estimates of the density of light was proposed by Chen et al. [11]. The Photon map was grouped on the basis of time-space coherence in the groups of data. Each group was individually recorded in the separate photon map, which corresponded to areas of brightness, this improved the area surrounding the sampling neighbours photons. This method allowed smoother rendering of scenes that contain complicated caustic effects through a gemstonelike object. 3. Streamed Photon Mapping In order to improve the photon mapping algorithm and accelerate the process of searching the neighbouring photons, described in the previous section, we propose an innovative streamed photon mapping algorithm. The main difference compared to the classical photon mapping algorithm occurs during the propagation of photons in the scene. At the beginning, a defined number of photons is emitted from a source of light. Each of these photons (further referred to as the leading photons) is assigned with a certain number of associated photons, thus forming a stream. Energy of the single stream is apportioned from the integral energy of the light source. E 1 = (3) n st E s where: E st energy of the photon stream, E s integral energy of light source, n number of leading photons emitted from light source. The direction of the leading photon and hence the direction of single stream can be determined in a stochastic manner or by the use of the projection maps. The directions of other individual photons, associated with the stream, are determined based on randomly selected points in the spherical space set around the collision point of the leading photon with the geometry of the scene. Schematic propagation of the photon stream according to the above algorithm is presented in Fig.3.

71 Streamed Photon Mapping 71 Figure 3. Schematic propagation of photon stream (A1,A2,A3 - associated photon, L - leading photon) The number of bounces of a stream is dependent on the value specified at the beginning of propagation as well as the condition number of remaining photons associated with singular leading photon. Associated photons, whose directions of propagation will collide with the geometry of the scene at a distance greater than the size of the defined spherical space, are eliminated from the stream (Fig. 4). Figure 4. Decay of the stream (A1,A2 - associated photon, L - leading photon) This implicates decreasing size of the sphere in a proportional way. In addition, it is possible to introduce the parameter responsible for cyclical decay of the stream, for example, by eliminating the associated photons with the mechanism of Russian Roulette[12] (4).

72 72 Krzysztof Guzek, Piotr Napieralski L n ξ < p = otherwise L p 0 (4) where: L n radiance estimate, ξ ϵ [0,1] random variable, p ϵ [0,1] probability of further propagation. The initial number of photons associated with the photon stream, the radius of the sphere which describes the width of the stream and the decay coefficient are parameters defined by the user. In the case when the leading photon interacts with the specular surface, associated photons are eliminated and all the stream energy is transferred to a leading photon. Any associated photons from the stream that interact with the specular surface, are eliminated. In contrast to classical photon mapping, our procedure needs to store information about streams of photons. Such a solution requires an appropriate record structure that stores the photons list of the stream, assigned to the individual leading photon (Fig. 5). Figure 5. Structure of photon stream The photon map keeps information about streams (the stream is stored to the map after each interaction of the leading photon). In the text step, as in the classical method, the structure is reorganized in a kd tree [13]. The flag used in the process of balancing kd-trees is stored in the structure of the stream. In the rendering pass, searching for neighbouring photons is limited to identifying a list of leading photons with associated streams. Thus significantly reducing the number of comparisons. Single photon energy corresponds to the energy of the stream divided by the number of associated photons (3). The final radiance is calculated from the equation (2). Photons that are taken into consideration are selected from streams found around the impact point (Fig. 6).

73 Streamed Photon Mapping 73 Figure 6. Searching of the nearest photons around the impact point (L1, L2 leading photons designating streams, X impact point, R searching radius) This is similar to the classical photon mapping approach and makes it possibile to use several well-known filters (i.e. Cone and Gaussian filters) in order to improve density estimation. 4. Conclusions and further works The proposed solution allows for the optimization of the nearest neighbors search algorithm. Locating the nearest photons is critical for good performance of the photon map algorithm. In Streamed Photon Mapping, searching is limited to identifying a group of leading photons with associated streams. Contrary to grouped photon mapping [11], photons are assembled into streams at the beginning of the propagation process. This permits the implement of a simple but quite efficient structure for the searching algorithm. Construction of the proposed solution allows for the use of a progressive photon mapping approach [8], thus decreasing memory requirements for the photon map. Future work includes the testing of visual correctness in order to identify possible artifacts generated by Streamed Photon Mapping, depending on the number of associated photons and width of the stream. In the case of further evaluation various types of 3D scenes should be tested to verify the performance of the method in different virtual environments. Presented solution is an efficient method for producing high-quality, photorealistic images with full global illumination. References [1] Jensen H. W. Global Illumination using Photon Maps. Springer-Verlag, [2] Kajiya J. T. The Rendering Equation. Computer Graphics 20, 1986: [3] Keller A., Wald I. Efficient Importance Sampling Techniques for the Photon Map. Proceedings of Vision Modelling and Visualisation Saarbruecken Germany,

74 74 Krzysztof Guzek, Piotr Napieralski [4] Hey H., Purgathofer W. Advanced radiance estimation for photon map global illumination. Computer Graphics Forum 21(3), 2002: [5] Wenping Wang, Kam Wah Wong. Adaptive density estimation using an orthogonal series for global illumination. Computers & Graphics 29(5), October 2005: [6] Tobler S. R.F., Maierhofer, Improved illumination estimation for photon maps in architectural scenes. Proc. of WSCG [7] Herzog R., Seidel H. P., Havran V. Fast final gathering via reverse photon mapping. Computer Graphics Forum (Proceedings of Eurographics 2005) 24 (3) [8] Jensen H. W., Hachisuka T. Stochastic Progressive Photon Mapping. ACM Transactions on Graphics (SIGGRAPH Asia 2009) [9] Ogaki S., Jensen H., Hachisuka T. Progressive photon mapping. ACM Transactions on Graphics [10] Ureńa C., Revelles J., Lastra M., Montes R., García R. J. A particle-path based method for Monte Carlo density estimation. Proc. Of the 13th Eurographics Workshop on Rendering [11] Tsai T.C., Chen Y.S., Chen L.H. Grouped photon mapping. Vis Comput (2010) 26. Springer-Verlag, [12] Glassner A. S. Principles of digital image sythesis. Morgan Kaufmann, [13] Bentley J. L. Multidimensional binary search trees used for associative searching. Communications of the ACM, volume 18, number 9, pages ACM, 1975

75 Fuzzy functional dependencies within the possibilistic databases framework Krzysztof Myszkorowski Politechnika Łódzka, Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Abstract: The paper deals with fuzzy functional dependencies in relational databases. For data representation a possibility-based approach has been used. It is assumed, that attribute values are represented by means of interval-valued possibility distributions. According to this approach extended definitions of fuzzy functional dependency and fuzzy normal forms have been introduced. Keywords: fuzzy databases, fuzzy functional dependency, interval-valued possibility distribution, fuzzy normal forms 1. Introduction Conventional relational database systems are designed with the assumption of the precision of information collected in them. Every element (attribute values, integrity conditions etc.) must be precisely defined. Imprecise details are either precluded or receive precise interpretation in somehow artificial way. Elements of attribute domains are mutually unrelated which means that they can be either identical or completely distinct. It is assumed that tuples must completely belong to relations. There is no partial membership. However, if our knowledge concerning the real world is imperfect one has to apply tools for describing uncertain or imprecise information [1]. One of them is the fuzzy set theory [2]. Up to now very much effort has been spent on developing fuzzy data models [3, 4, 5, 6]. Fuzzy extensions to the entity-relationship model were presented in [7]. Major components of the model i.e. entities, relationships and attributes have been presented in the fuzzy context. There are two major approaches concerning fuzzy data representation, namely, the similarity-based approach [8] and the possibility-based approach [9]. However, in some circumstances traditional fuzzy sets may appear insufficient [10, 11]. Hence in the paper applying of their extension, known as interval-valued fuzzy sets, is proposed [12, 13]. For data representation a possibility-based approach has been used. The paper deals with functional dependencies which can exist between attributes. They reflect integrity constraints and should be studied during the design process. The concept of functional dependency (FD) is very important in the normalization process of relational databases. In fuzzy databases this notion has to be modified. Hence different approaches concerning fuzzy functional dependencies (FFDs) emerged in professional literature. A number of different definitions emerged. Each of them was associated with representation of fuzzy data. Different forms within the similarity-based approach have been proposed in [14, 15]. Fuzzy functional dependencies within the possibilistic data model have been defined in [6, 9, 16, 17]. Kumar et al. [18] applied in their definition the theory Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

76 76 Krzysztof Myszkorowski of intuitionistic fuzzy sets. Arora and Biswas [19] presented a concept of Rank Neutrosophic functional dependency. According to the approach applied there have been defined appropriate fuzzy normal forms which represent guidelines for designing relational databases [6, 14, 20]. This paper introduces the notion of a fuzzy functional dependency (FFD) the grade of which is expressed by means of a subinterval of [0, 1]. Based on this concept the extended fuzzy normal forms are defined. It is assumed, that attribute values are represented by means of interval-valued possibility distributions. The idea of this concept addresses the problem of applying imprecise possibility measures. The interval-valued possibility distribution is defined using the notion of an interval-valued fuzzy set. The paper is organized as follows. The next section presents the basic notions related to interval-valued possibility distributions. Then the extended definition of the fuzzy functional dependency is formulated. Based on this notion the concept of relation key is introduced. The fourth section contains the proposed definitions of fuzzy normal forms. 2. Interval-valued possibility distributions Since the first presentation of the fuzzy set theory [2] a number of its extensions have been proposed [13, 21, 22, 23]. One of them is the theory of type-2 fuzzy sets in which the membership grades are expressed by means of ordinary fuzzy sets. Thus the mapping R [0, 1], where R denotes a universe of discourse, occurring in the definition of an ordinary fuzzy set has been replaced with the mapping R I [0, 1], where I [0, 1] denotes the set of all ordinary fuzzy sets that can be defined over the interval [0, 1]. The concept of an interval-valued possibility distribution is defined with the use of the concept of an interval-valued fuzzy set (IVF) which is a particular case of a type-2 fuzzy set. The elements of the IVF are assigned with closed subintervals of [0,1]. The idea of the IVF extends the notion of the ordinary fuzzy set. The assigned intervals approximate the correct value of membership degrees. Definiton 1. Let R be a universe of discourse. An interval-valued fuzzy set A in R is defined as F = { < x, µ ( x) > : x R, µ ( x) = [ µ ( x), µ ( x)], µ ( x), ( x): R [0,1]}, (1) A A A A A µ A L U L U where µ A (x): R Int [0, 1] is an interval-valued membership function, Int [0, 1] stands for the set of all closed subintervals of [0,1]: Int ([0, 1]) = {[a, b]: a, b [0, 1]}. Values of µ A L (x) and µ AU (x) are interpreted as the lower and upper membership functions, respectively. The degree of equality or in other words the closeness measure of IVFs A and B, denoted by (A, B), can be can estimated by comparing degrees of inclusions A B and B A. To decide whether A is included in B one must compare grades of membership expressed by intervals. Fuzzy sets are equal if A B and A G. In further considerations it will be assumed the following ordering [24]: [ a, a ] [ b, b ] a b and a b. (2) L U L U L The degree of inclusion can be estimated with the use of interval-valued fuzzy implicators. This operation is an extension of the fuzzy implication [25]. An interval-valued fuzzy implicator is a mapping Int ([0, 1]) Int ([0, 1]) Int ([0, 1]). Its arguments are subintervals of [0,1]. In further considerations it will be applied the following implicator [26]: L U U

77 Interval fuzzy functional dependencies within the possibilistic databases framework 77 I GIV = [ c, d ] [ c, 1] [1, 1] [ d, d ] if if if if which is the extension of the Gödel implicator: I a > c and a > c and a c and a c and b > d b d b d b > d, (3) ( a, b) = 1 if a b and I ( a, b) = b if a b. (4) > G G The degree of inclusion for IVFs, denoted by (A, B), is an interval (A, B) = [ (A, B) L, (A, B) U ]. Its bounds can be evaluated as follows: ( A, B) = min(inf I( µ ( x), µ ( x)) ), ( A, B) = min(inf I( µ ( x), µ ( x)) L x A B L U x A B U ). (5) A closeness measure (A, B) between IVFs A and B is a mapping IF(R) IF(R) Int([0,1]), where IF(R) denotes a set of all IVFs in R. The bounds of (A, B) can be expressed as follows: ( A, B) ( A, B) L U = min(inf = min(inf x x I( µ ( x), µ ( x)) A I( µ ( x), µ ( x)) A B B L U, inf x, inf x I( µ ( x), µ ( x)) B I( µ ( x), µ ( x)) Based on the concept of IVFs one can define the concept of the interval-valued possibility distribution. Definition 2. Let R be a universe of discourse, X be a variable on R and A be an intervalvalued fuzzy set with µ A (x) = [µ A L (x), µ AU (x)]. The interval-valued possibility distribution of X with respect to A is defined as Π = { π ( x) / x : x R, π ( x) = ( x)}, (7) µ X X X A where π X (x) = [π X L (x), π XU (x)] is a closed subinterval of [0,1]. Values X and Y described by means of classical possibility distributions can be compared with use of possibility and necessity measures, denoted by Poss and Nec, respectively. These measures express the extent to which the considered values satisfy a comparison relation. According to Prade and Testemale [9] Poss( Π = Π ) = sup min( π ( x), π ( x)), (8) X Y x X Nec( Π = Π ) = 1 sup min( π ( x), π ( y)). (9) X Y x y In case of interval-valued possibility distributions the measures are subintervals of [0,1]: Poss = [Poss L, Poss U ] and Nec = [Nec L, Nec U ]. The bounds of these intervals can be obtained by transformation of formulas (8-9): Poss( Π Poss( Π Nec( Π Nec( Π X X X X = Π = Π = Π = Π Y Y ) ) L U Y Y ) ) L U = sup x = sup = 1 sup = 1 sup x min( π min( π x y x y X L X U min( π min( π X B Y ( x), π ( x), π X U X L Y L Y Y U ( x), π ( x), π A A ( x)), ( x)) Y U Y L, ( y) ), ( y) ). L ), U ). (6) (10) (11)

78 78 Krzysztof Myszkorowski Example 1. Suppose X = {[0.3, 0.5]/a, [0.4, 0.7]/b, [1,1]/c, [0.7, 0.8]/d} and Y = {[1, 1]/a, [0.4, 0.5]/b, [0.3, 0.4]/c}. Possibility and necessity measures of X = Y equal: Poss ( X = Y ) L = max(min(0.3, 1), min(0.4, 0.4), min(1, 0.3)) = max(0.3, 0.4, 0.3) = 0.4 Poss ( X = Y ) U = max(min(0.5, 1), min(0.7, 0.5), min(1, 0.4)) = max(0.5, 0.5, 0.4) = 0.5 Nec ( X = Y ) L = 1 - max(min(0.5, 0.5), min(0.5, 0.4), min(0.7, 1), min(0.7, 0.4), min(1, 1), min(1, 0.5), min(0.8, 1), min(0.8, 0.5), min(0.8, 0.4)) = 1 - max(0.5, 0.4, 0.7, 0.4, 1, 0.5, 0.8, 0.5, 0.4) = 0 Nec ( X = Y ) U = 1 - max(min(0.3, 0.4), min(0.3, 0.3), min(0.4, 1), min(0.4, 0.3), min(1, 1), min(1, 0.4), min(0.7, 1), min(0.7, 0.4), min(0.7, 0.3)) = 1 - max(0.3, 0.3, 0.4, 0.3, 1, 0.4, 0.7, 0.4, 0.3) = 0 However, if elements of possibility distributions X and Y are closed to one another a higher degree of possibility that X = Y may be expected. A description of an intervalvalued possibility distribution can be extended by a closeness relation R c. This relation is a mapping R R [0,1] such that for x, y R R c (x, x) = 1 (reflexivity) and R c (x, y) = R c (y, x) (symmetry). The values of R c (x, y) express grades of closeness between elements of R. Insertion of R c (x, y) into (10) and (11) leads to the following formulas: Poss( Π Poss( Π Nec( Π Nec( Π X X X X = Π = Π = Π = Π Y Y ) ) L U Y Y ) ) L U = sup = sup = 1 sup = 1 sup x, y x, y x y x y min( π min( π min( π min( π X L X U X U X L ( x), π ( x), π Y L ( x), π ( x), π Y U Y U Y L ( y), R c ( y), R ( x, y)), c ( y),1 R ( y),1 R ( x, y)), c c ( x, y)), ( x, y)). Example 2. Suppose R c for elements of possibility distributions from the previous example is specified in the table1. Table 1. Closeness relation for example 1 R c a b c d a 1 0,5 0,6 1 b 0,5 1 0,9 0,4 c 0,6 0,9 1 0,2 d Poss ( X = Y ) L = max(min(0.3, 1, 1), min(0.3, 0.4, 0.5), min(0.3, 0.3, 0.6), min(0.4, 1, 0.5), min(0.4, 0.4, 1), min (0.4, 0.3, 0.9), min (1, 1, 0.6), min(1, 0.4, 0.9), min (1, 0.3, 1), min(0,7, 1, 1), min(0.7, 0.4, 0.4), min(0.7, 0.3, 0.2)) = max(0.3, 0.3, 0.3, 0.4, 0.4, 0.3, 0.6, 0.4, 0.3, 0.7, 0.4, 0.2) = 0.7 Poss ( X = Y ) U = max(min(0.5, 1, 1), min(0.5, 0.5, 0.5), min(0.5, 0.4, 0.6), min(0.7, 1, 0.5), min(0.7, 0.5, 1), min (0.7, 0.4, 0.9), min (1, 1, 0.6), min(1, 0.5, 0.9), min (1, 0.4, 1), min(0,8, 1, 1), min(0.8, 0.5, 0.4), min(0.8, 0.4, 0.2)) = max(0.5, 0.5, 0.3, 0.5, 0.5, 0.4, 0.6, 0.5, 0.4, 0.8, 0.4, 0.2) = 0.8 Nec ( X = Y ) L = 1 - max(min(0.5, 0.5, 0.5), min(0.5, 0.4, 0.4), min(0.7, 1, 0.5), min(0.7, 0.4, 0.1), min(1, 1, 0.4), min(1, 0.5, 0.1), min(0.8, 1, 0), min(0.8, 0.5, 0.6), min(0.8, 0.4, 0.7)) = 1 - max(0.5, 0.4, 0.5, 0.1, 0.4, 0.5, 0, 0.5, 0.4) = 0.5 (12) (13)

79 Interval fuzzy functional dependencies within the possibilistic databases framework 79 Nec ( X = Y ) U = 1 - max(min(0.3, 0.4, 0.5), min(0.3, 0.3, 0.4), min(0.4, 1, 0.5), min(0.4, 0.3, 0.1), min(1, 1, 0.4), min(1, 0.4, 0.1), min(0.7, 1, 0), min(0.7, 0.4, 0.6), min(0.7, 0.3, 0.8)) = 1 - max(0.3, 0.3, 0.4, 0.1, 0.4, 0.1, 0, 0.4, 0.3) = 0.6 As it was expected, by incorporation of the closeness relation the higher values of measures Poss ( X = Y ) and Nec ( X = Y ) have been obtained. 3. Fuzzy functional dependencies Functional dependencies play an important role in a logical database design. They allow to express facts about the fragment of reality which is to be modeled by a designer. A functional dependency (FD) is a particular kind of data constraint. Let R(U) be a relation scheme, where U denotes a set of attributes U ={X 1, X 2,, X n }. Let X and Y be subsets of U: X, Y U. The classical definition of functional dependency between attributes X and Y, denoted by X Y, is based on the assumption that attribute values are given precisely. The existence of X Y means that X-values fully determine Y-values. If attribute values are imprecise the definition of FD has to be extended. The condition of equality becomes too restrictive. One can say about a certain degree of the dependency X Y. In order to receive the information to what extent X functionally determines Y one has to evaluate the degree of the closeness of attribute values in different tuples. The extended version of FD which reflects the association between fuzzy attributes is said to be the fuzzy functional dependency (FFD). In [6] Chen has introduced the definition of FFD for the possibilistic fuzzy data model with the use of fuzzy implicator. If attribute values are allowed to be interval-valued possibility distributions the degree of the dependency should be evaluated by a closed subinterval of [0, 1]. It requires the modification of the definition. For estimation of tuple closeness, denoted by = c, one can apply formulas (10). Let t and t be two tuples of relation r. The degree of t(x) = t (X) is expressed as follows: where = = ( t( X i ), t'( X i )) ( t( X i ), t'( X i )) L c c U ( t(( X ), t' ( X ) ( t( X ), t'( X ) U 1 = Poss( Π t 1 = Poss( Π L = min = min ( X ) i t( X ) i i i = Π = Π ( ( t( X ), t'( X )) ( ( t( X ), t'( X )) t' ( X ) i ) i t' ( X ) i i L ) U i i U L ), ) if t( X if t( X, otherwise otherwise i X i X ) and t'( X i ) and t'( X i ) are identical i (14). (15) ) are identical Definition 3. Let R(U) be a relation scheme and let X and Y be subsets of U: X, Y U, where U ={X 1, X 2,, X n }. A fuzzy functional dependency X θ Y is said to exist in θ = [θ L, θ U ] degree if and only if for every relation r of R the following conditions are met: min min t, t r 1 2 t, t r 1 2 I( t ( X ) = 1 c I( t ( X ) = 1 c t ( X ), t ( Y ) = 2 t ( X ), t ( Y ) = c c t ( Y )) 2 L t ( Y )) 2 U θ L θ U, (16)

80 80 Krzysztof Myszkorowski where [θ L, θ U ] [0, 1], = c is a closeness measure (14) and I is the following fuzzy implicator I c if t1( X ) and t2 ( X ) are identical I =, (17) IGIV otherwise where I c is a classical implication operator. Table 2. Relation PQS example 3 P Q S 1 P1 Q1 low 2 P2 Q P3 [0.8, 0,9]/Q3, [1, 1]/Q [1,1]/P2, [1,1]/P3 [1, 1]/Q2, [0.6, 0.8]/Q3 high 5 [1,1]/P1, [0.5, 0.7]/P5 Q P4 [1,1]/Q1, [1,1]/Q Example 3. Relation PQS (table 1) presents a relationship between the post held (P), qualifications (Q) and salary (S). The membership functions for interval-valued fuzzy sets - low (µ l ) and high (µ h ) are shown in Fig 1. µ l µ h 1 1 µ l L µ l U µ h U µ h L S S Figure 1. Membership functions for fuzzy sets low and high example 3 Attributes of relation PQS satisfy the dependency PQ [0.5, 0.7] S. For we have: 1. for tuples t 2 and t 4 : = c (t 2 (PQ), t 4 (PQ)) L = = c (t 2 (PQ), t 4 (PQ)) U = 1, = c (t 2 (S), t 4 (S)) L = µ hl (9000) = 0.6, = c (t 2 (S), t 4 (S)) U = µ hu (9000) = for tuples t 3 and t 4 : = c (t 3 (PQ), t 4 (PQ)) L = min (0.8, 0.6) = 0.6, = c (t 2 (PQ), t 4 (PQ)) U = min (0.9, 0.8) = 0.8, = c (t 3 (S), t 4 (S)) L = µ hl (8500) = 0.5, = c (t 3 (S), t 4 (S)) U = µ hu (8500) = for tuples t 1 and t 6 : = c (t 1 (PQ), t 6 (PQ)) L = = c (t 1 (PQ), t 6 (PQ)) U = 1,

81 Interval fuzzy functional dependencies within the possibilistic databases framework 81 = c (t 2 (S), t 4 (S)) L = µ ll (1500) = 1, = c (t 2 (S), t 4 (S)) U = µ lu (1500) = 1 Basing on formula (3) we obtain: I([1,1], [0.6, 0.8]) = [0.6, 0.8], I([0.6, 0.8], [0.5, 0.7]) = [0.5, 0.7], I([1, 1], [1, 1]) = [1, 1]. Definition 4. A FFD X θ Y is partial if there exists a set X X such that X θ Y. If for no proper subset X of X X θ Y then Y is said to be fully functionally dependent on X in θ degree. Definition 5. Let X, Y, Z U and Y X. Z is transitively functionally dependent on X in θ degree, X θ Z, θ = [θ L, θ U ], if and only if X α Y and Y β Z with θ = [min(α L, β L ), min(α U, β U )]. Like for classical functional dependencies there are the inference rules for FFDs. These rules are referred to as the extended Armstrong s axioms: A1: Y X X θ Y for all θ A2: X θ Y XZ θ YZ A3: X α Y Y β Z X γ Z, where γ = [min(α L, β L ), min(α U, β U )]. The following rules result from Armstrong s axioms: D1: X α Y X β Z X θ YZ, where γ = [min(α L, β L ), min(α U, β U )] D2: X α Y WY β Z XW γ Z, where γ = [min(α L, β L ), min(α U, β U )] D3: X α Y Z Y X α Z D4: X α Y X β Y for β α. The above rules can be used to derive new FFDs. Definition 6. Let F and G be sets of FFDs with respect to the relation scheme R. Then G is called to be logically implied by F, denoted by F = G, if each functional dependency X α Y G holds in all relations of R satisfying F. The closure of F, denoted by F +, is a set of all FFDs logically implied by F: F + = { X α Y: F = X α Y }. (18) A set F of FFDs is minimal if it does not contain redundant dependencies and extraneous attributes. An attribute A is extraneous in X α Y if F = (F (X α Y)) (( X A ) α Y) (extraneous in X) or if F = (F (X α Y)) ( X α (Y A)) (extraneous in Y). Example 4. Let us compute a minimal cover of the following set of FFDs: F = {A [0.8, 0.9] E, AB [0.7, 0.8] CD, AC [1, 1] D, AJ [0.5, 0.6] BE, ADE [0.6, 0.7] C, CE [0.75, 0.85] A, CJ [0.9, 1] A, D [0.9, 0.9] BJ}. It is easy to see that F is not minimal. According to D3 we can eliminate extraneous attributes in the right sides of the three dependencies: AB [0.7, 0.8] CD,

82 82 Krzysztof Myszkorowski AJ [0.5, 0.6] BE and D [0.9, 0.9] BJ. Dependencies AJ [0.5, 0.6] E, AB [0.7, 0.8] D and ADE [0.6, 0.7] C are redundant. For we have: 1. A [0.8, 0.9] E AJ [0.8, 0.9] E AJ [0.5, 0.6] E 2. AB [0.7, 0.8] C AC [1, 1] D AB [0.7, 0.8] D 3. D [0.9, 0.9] B AD [0.9, 0.9] AB AD [0.9, 0.9] AB AB [0.7, 0.8] C AD [0.7, 0.8] C ADE [0.6, 0.7] C The minimal cover of F is the following F min = {A [0.8, 0.9] E, AB [0.7, 0.8] C, AC [1, 1] D, AJ [0.5, 0.6] B, CE [0.75, 0.85] A, CJ [0.9, 1] A, D [0.9, 0.9] B, D [0.9, 0.9] J }. Let us return to the scheme from example 3. The FFD PQ [0.5, 0.7] S describes an integrity constraint for the ternary relationship PQS. It constitutes a restriction for binary relationships which can occur within PQS. The possibility to impose fuzzy binary relationships is limited by levels of FFDs comprising all the three attributes [27]. Let us assume that between attributes P and S there should be dependency P φ S, where φ = [0.4, 0.5]. This dependency is disturbed by values of attribute S in tuples t 1 and t 5. To impose it, it is sufficient to change t 5 (S) into a value lower or equal to The other values do not have to be modified. Dependency PQ [0.5,0.7] S is not disturbed. If, however, φ = [0.7, 0.9], the disturbance of dependency P φ S is much higher. Analyzed should be the values in the first five tuples. To impose the dependency P [0.7, 0.9] S, the following changes should be made: t 2 (S) 9500, t 3 (S) 9500 and t 5 (S) By using Armstrong rules we conclude that the dependency PQ [0.7,0.9] S is forced, which is contradictory to the assumption (to the dependency PQ [0.5, 0.7] S). The same situation would occur when dependency Q φ S were imposed. Noteworthy, other functional dependencies cannot exist for any subinterval of [0,1]. Inclusion of fuzzy functional dependencies requires extension of the notion of relation key. It can be defined in terms of FFDs. Definition 7. Let F be a set of FFDs defined over a relation scheme R(U). A set of attributes K U is called a θ-key of R if K θ U F + and there does not exist K K such that K θ U F +. An attribute X U is called a θ-prime attribute of scheme R(U) if it belongs to some θ-key of R. Other attributes are called θ-nonprime attributes. In view of the rule D4 we can conclude that a θ-key of R is also a θ -key for θ < θ. The scheme PQS (example 3) has a θ-key PQ at the level [0.5, 0.7]. The θ-prime attributes are P and Q. A relation scheme can have more than one θ-key. We call them candidate keys. Example 5. Let us consider the ternary relationship R(X,Y,Z) with the following FFDs: XY [0.9, 1] Z, XZ [0.7, 0.8] Y, YZ [0.5, 0.6] X. Scheme R has three candidate keys at the θ [0.5, 0.6] level, two at the θ [0.7, 0.8] level and one at the θ [0.9, 1] level. 4. Fuzzy normal forms Based on the concept of FFD one can extend fuzzy normal forms which have been defined for possibilistic fuzzy databases.

83 Interval fuzzy functional dependencies within the possibilistic databases framework 83 Definition 8. A relation scheme R is in the fuzzy first normal form (F1NF) if for any relation r of R attribute values are excluding interval-valued possibility distributions. The F1NF specifies the structure or relations. The notion an excluding interval-valued possibility distribution means that an attribute can take exactly one value which is associated with a subinterval of [0,1]. Thus elements of the attribute domain are mutually exclusive. In the relation PQS t 4 [Q] = {[1, 1]/Q2, [0.6, 0.8]/Q3} means that Q2 is completely possible and possibility of Q3 is estimated by an interval [0.6, 0.8]. Only one of these values can occur. In the opposite case there should exist the following tuples: <{[1,1]/P2, [1,1]/P3}, {[1,1]/Q2}, high > and < { [1,1]/P2, [1,1]/P3 }, {[0.6, 0.8]/Q2}, high >. Definition 9. A relation scheme R is in θ-fuzzy second normal form (θ-f2nf), if R is in F1NF and every θ-nonprime attribute is fully functionally dependent on a θ-key in α degree, where α = [α L, α U ]. If the relation scheme R is in θ-f2nf then no proper subset K of a θ-key K of R can determine any θ-nonprime attribute A. A dependency K β A cannot exist for any β. If all θ- keys of R are single attributes then R is in θ-f2nf. Example 6. Scheme PQS from the example 3 is in [0.5, 0.7]-F2NF. Let us augment it by attribute A determining age and assume that its values are connected with values of attribute P. Let us assume that the relationship between the post and age is expressed by P φ A, φ = [φ L, φ U ]. In result of such modification PQ is a θ-key with θ L = min[φ L, 0.5] and θ U = min[φ U, 0.7]. However, because of the introduced dependency the modified scheme is not in [0.5, 0.7]-F2NF. There is a nonprime attribute dependent on a part of the θ-key. Definition 10. A relation scheme R(U), is in θ-fuzzy third normal form (θ-f3nf), if R is in F1NF and for every FFD X φ Y F +, where X, Y U and Y X, X contains a θ-key of R or Y is a θ-prime attribute. The definition of θ-f3nf eliminates the possible occurrence of transitive dependencies between the attributes. Higher normal forms can be obtained by decomposition of a relation scheme R(U) into several schemas with fewer attributes. A set of relation schemes ρ = {R 1 (U 1 ), R 2 (U 2 ),, R n (U n )} is a decomposition of R(U) if U = U 1 U 2 U n, U i = {X i 1, X i2,, X in }. The decomposition should be lossless and preserve FFDs. The former property means that the original relation can be obtained by joining the component relations i.e. for each relation r of R r = Pr ( r)* Pr ( r)*...* Pr ( r), (19) U 1 U 2 where projection (Pr) and join (*) are defined as follows: Pr r) = { t = ( Π ): t( X, X,..., X ) = r( X, X,..., X )}, (20) X, X,..., X ( X, X,..., X t' r 1 2 n n 1 2 n 2 r1* r2 = { t = ( Π t r1, t r2 1 2 t( X k,..., X l 1 X 1 t ( X ) = t,..., Π k 1,..., X ( X k X k 1 l ) =,..., X l, Π id 2 X k t ( X ) t( X,..., Π k,..., X l + 1, X l l,..., X Π ) t( X n ) = t U n,..., X l ,..., X ( X Π X n l + 1 : k 1 ) = t,..., X n 1 ( X )}, 1,..., X n k 1 ) (21)

84 84 Krzysztof Myszkorowski where id stands for identical. Let F i denotes a set of all FFDs in F + that include only attributes of R i i.e. F i = {X φ Y: X φ Y F + and XY U i }. The decomposition is dependency preserving if F + = (F 1 F 2 F n ) +. When decomposing R to θ-f3nf one can use a minimal set F of FFDs [6]. Attributes included in any FFD F form a scheme in θ-f3nf. Attributes which are not included in any FFD form the scheme by themselves. For the scheme R(A, B, C, D, E, J) with FFDs from example 4 we create the following schemes in θ-f3nf: R1(A, E) [0.8, 0.9]-F3NF, R2(A, B, C) [0.7, 0.8]-F3NF, R3(A, C, D) [1, 1]-F3NF, R4(A, B, J) [0.5, 0.6]-F3NF, R5(A, C, E) [0.75, 0.85]-F3NF, R6(A, C, J) [0.9, 1]-F3NF, R7(B, D, J) [0.9, 0.9]-F3NF. Example 7. Let us consider the relation scheme EQS with attributes E - employee, Q - qualifications and S - salary. Let us assume that between its attributes there exist FFDs: E [0.6, 0.8] Q and Q [0.7, 0.9] S. Basing on transitivity axiom they yield the dependency E [0.6, 0.8] S. The key of EQS is E. It is the [0.6, 0.8]-key. Attributes Q and S disturb the conditions of definition 10, because Q is not a θ-key and S is not a θ-prime attribute. The θ-fuzzy third normal form is obtained in result of the decomposition into relations with schemes: EQ(E, Q) - [0.6, 0.8]-F3NF and QS(Q, S) - [0.7,0.9]-F3NF. This decomposition maintains the dependencies. Eliminating from definition 10 the possibility that attribute Y in X θ Y is θ-prime leads to a stronger definition. This is a definition of θ-fuzzy Boyce-Codd normal form. Definition 11. A relation scheme R(U) is in θ-fuzzy Boyce-Codd normal form (θ-fbcnf), if R is in F1NF and for every FFD X φ Y F +, where X U and Y X, X contains a θ-key of R. Example 8. Let us consider the relation scheme CONTRACTS with attributes: E employee-number, N employee-name, P project-number, S salary. Suppose that F = { E [1,1] N, N [1,1] E, EP [0.8, 0.9] S}. Since N [1,1] E and EP [0.8, 0.9] S, hence NP [0.8, 0.9] S (rule D2). The scheme has two candidate keys EP and NP at the level [0.8, 0.9]. The only θ-nonprime attribute is S. The scheme CONTRACTS is in [0.8, 0.9]-F3NF. Since the left sides of dependencies E [1,1] N and N [1,1] P do not contain a [0.8, 0.9]-key, the conditions of definition 11 are not satisfied. Schemes in θ-fbcnf can be obtained by decomposing CONTRACTS into schemes: EN(E, N) ([1, 1]-FBCNF) and EPS(E, P, S) ([0.8, 0.9]-FBCNF). Example 9. Let us consider the relation scheme PAYROLL with attributes: E employeenumber, N employee-name, S salary and FFDs F = { E [0.7,0.8] N, N [0.7,0.8] E, E [0.8, 0.9] S}. From N [0.7,0.8] E and E [0.8, 0.9] S we have N [0.7, 0.8] S (axiom A3). There exist two candidate [0.7, 0.8]-keys E and N. The scheme is in ([0.7, 0.8]-FBCNF). Imposition of a permitted binary relationship into a ternary relationship may result in disturbing of θ-fbcnf. Let us consider the ternary relationship R(X,Y,Z) with the following FFDs: XY α Z and XZ β Y. The scheme R is in θ-fbcnf, where θ = [min(α L, β L ), min(α U, β U )]. Imposition of X φ Z (φ L α L, φ U α U ) implies X γ Y with

85 Interval fuzzy functional dependencies within the possibilistic databases framework 85 γ = [min(β L, φ L ), min(β U, φ U )]. For we have: X φ Z XZ β Y X γ Y. A new key arises (at the γ level). The scheme remains in θ-fbcnf, where θ =γ. If we impose Y φ Z, no new key will be created. Since the left side of the new dependency does not contain a θ -key, R is not in θ-fbcnf. It remains in θ-f3nf, because Z is a β-prime attribute. Like in conventional databases relation schemes occurring in higher normal forms satisfy conditions of lower forms. Relationships between F1NF and θ-f2nf as well as between θ-f3nf and θ-fbcnf follow from the definitions. One should prove a similar relationship between θ-f3nf and θ-f2nf. Definition 10 implies that a relation scheme is in θ-f3nf if there are no transitive dependencies. For schemes in θ-f2nf a transitive dependency X α Y β Z may occur if Y X. Hence each relation scheme in θ-f3nf is also in θ-f2nf. 5. Conclusions The notion of functional dependency plays an important role in the database design theory. In fuzzy databases its definition should be extended according to the representation of fuzzy data. In this paper we proposed a new definition of a fuzzy functional dependency (FFD) for possibilistic databases with attribute values represented by interval-valued possibility distributions. We used an interval-valued fuzzy implicator. The concept of FFD has been applied in definitions of extended fuzzy normal forms which correspond to definitions in classical relational model. References [1] Motro A. Imprecision and Uncertainty in Database Systems. in Studies in Fuzziness: Fuzziness in Database Management Systems, P.Bosc and J. Kacprzyk (eds.), Physica Verlag, 1995 [2] Zadeh L. A. Fuzzy sets. Information and Control, 8, 1965, [3] Galindo J., Urutia A, Piattini M. Fuzzy Databases. Modelling, Design and Implementation. Idea Group Publishing, Londyn 2005 [4] Ma Z.M., Zhang W.J., Ma W.Y. Extending object-oriented databases for fuzzy information modeling. Information Systems, 29, 2004, [5] Yazici A., Georgie R. Fuzzy Database Modelling. Physica Verlag, Heidelberg, 1999 [6] Chen G.Q. Fuzzy logic in Data Modeling semantics, constraints and database design Kluwer, Boston, 1998 [7] Ma Z.M., Zhang W.J., Ma W.Y. Chen G.Q. Conceptual Design of Fuzzy Object- Oriented Databases Using Extended Entity-Relationship Model. International Journal of Intelligent Systems, 16, 2001, [8] Buckles B.P., Petry F.E. A Fuzzy Representation of Data for Relational Databases. Fuzzy Sets and Systems, 7, 1982, [9] Prade H., Testemale C. Generalizing Database Relational Algebra for the Treatment of Incomplete and Uncertain Information and Vague Queries, Information Science, 34, 1984, [10] Mańko J., Niewiadomski A. Cardinality and Probability under intuitionistic and interval-valued fuzzy sets. Journal of Applied Computer Science, 14, 2006, [11] Niewiadomski A. Methods for the linguistic summarization of data: applications of fuzzy sets and their extensions. EXIT, Warszawa, 2008

86 86 Krzysztof Myszkorowski [12] Sambuc R. Founctions φ-floues. Application á l aide au diagnostic en pathologie thyroidienne. PhD thesis, University de Marseillé, France, 1975 [13] Karnik N.N., Mendel J.M. An Introduction to Type-2 Fuzzy Logic Systems. University of Southern California, Los Angeles, 1998 [14] Shenoi S., Melton A., Fan L.T. Functional dependencies and normal forms in the fuzzy relational database model. Information Sciences, 60, 1992, 1-28 [15] Sozat M., Yazici A. A complete axiomatization for fuzzy functional and multivalued dependencies in fuzzy database relations. Fuzzy Sets and Systems, 117, 2001, [16] Raju, K.V.S.V.N., Majumdar, A.K. Fuzzy Functional Dependencies and Lossless Join Decomposition of Fuzzy Relational Database Systems. ACM Trans. On Database Systems 13, 1988, [17] Cubero, J.C., Vila, M. A. A new definitions of fuzzy functional dependency in fuzzy relational databases. International Journal for Intelligent Systems, 9, 1994, [18] Kumar D., Hmoudab M., Biswas R. A Method of Intuitionistic Fuzzy Functional Dependencies in Relational Databases. European Journal of Scientific Research, Vol. 29, No. 3, 2009, [19] Arora M., Biswas R. Rank Neutrosophic Armstrong Axioms and Functional Dependencies. International Journal of Computer Science and Communication, Vol. 1, No. 2, 2010, [20] Bahar O., Yazici A. Normalization and Lossless Join Decomposition of Similaritybased Fuzzy Relational Databases. International Journal of Intelligent Systems, 19, 2004, [21] de Tre G., de Caluwe R. Level-2 fuzzy sets and their usefulness in object-oriented database modeling. Fuzzy Sets and Systems, 140, 2003, [22] Atanasow K.T., Intuitionistic fuzzy sets. Theory and Applications. Springer Verlag, 1999 [23] Gau W.L., Buehrer D.J. Vague sets. IEEE Transactions Systems Man Cybernetics. 23, 1993, [24] Sengupta AQ., Pal T. K., Chakraborty D. Interpretation of inequality constraints involving interval coefficients and a solution to interval linear programming. Fuzzy Sets and Systems, 119, 2001, [25] Cornelis C., Deschrijver G. The compositional rule of inference in an intuitionistic fuzzy logic setting. in Striegnitz K. (Ed), Proc. Sixth ESSLLI Students Session, 2001 [26] Alcade C., Burusco A., Fuentes-Gonzales R. A constructive method for the definition of interval-valued fuzzy implication operators. Fuzzy Sets and Systems, 153, 2005, [27] Myszkorowski K. Fuzzy Functional Dependencies in Multiargument Relationships. In Rutkowski L., Scherer R., Tadeusiewicz R., Zadeh L.A., Żurada J.M. (Eds.), ICAISC (2010), LNCS 6113, , Springer, Heidelberg, 2011

87 Interaktywny rendering złożonych scen na przykładzie gry komputerowej Zombie Driver Paweł Lekki 1,2, Radosław Mantiuk 2 EXOR Studios 1 Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki 2 Abstract: The complexity and size of virtual environments in computer games has grown tremendously in the recent years. This work presents the problem of visualisation of the massive environment in a modern computer game. It defines technical requirements for a computer game engine and presents techniques used during production of the commercial game Zombie Driver. In this work, architecture of the Zombi Driver game engine is presented. It consists of three separate processing pipelines that use separate scene graph instances: graphics rendering (octree), physics simulation (octree) and game logic processing (proprietary scene graph). The paper explores multiple methods of scene construction, workflow and processing optimisation that have been developed during the game s production. The resulting game engine implementation is tested using scenes with varying complexity to determine the efficiency of rendering massive environments and reveal its bottlenecks. Keywords: massive environments, game engines, Zombie Driver, space subdivisions, scene graphs, real time rendering 1. Wprowadzenie Jednym z istotnych problemów w tworzeniu gier komputerowych jest udostępnienie złożonego środowiska (ang. massive environment), po którym mógłby się poruszać gracz. Jako definicja złożonego środowiska przyjęta została scena, w której znajduje się wielokrotnie więcej obiektów, niż dany system komputerowy jest w stanie wyświetlić jednocześnie w czasie rzeczywistym. Wiodącym problemem jest efektywny sposób przygotowania danych opisujących złożone środowisko, w którym dobra organizacja danych wejściowych powinna zapewniać jak najmniejsze zużycie pamięci oraz przyspieszać ich przetwarzanie. Obecna architektura komputerów osobistych w znacznej mierze uzależnia wydajność renderingu grafiki komputerowej od efektywnego dostarczania danych do karty graficznej, w postaci tzw. wsadów (ang. batch) [1], tzn. pakietów trójkątów. Kolejność i wielkość wsadów powinna uwzględniać zależności pomiędzy budową całej sceny oraz budową aktualnie wyświetlanego jej obszaru obejmowanego przez pole widzenia kamery. Przy czym budowę sceny należy rozumieć nie tylko jako statyczne struktury obiektów, które się na niej znajdują, ale również uwzględnić dynamikę i oddziaływanie między obiektami oraz logikę gry komputerowej (np. oddziaływanie przeciwników na gracza skutkujące określonymi zdarzeniami). W artykule przedstawiona została architektura podziału danych sceny, zapewniająca wydajne zarządzanie obiektami przetwarzanymi przez potoki renderingu grafiki, symulacji fizyki Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

88 88 Paweł Lekki, Radosław Mantiuk oraz logiki gry. Z uwagi na niejednorodną funkcję poszczególnych potoków w każdym z nich zastosowano odrębny podział danych oparty na drzewach ósemkowych i jednorodnej przestrzeni komórkowej. Architekturę zaprezentowano na przykładzie autorskiej gry komputerowej Zombie Driver [2] będącej jednocześnie produktem komercyjnym, a więc zapewniającym wiarygodne środowisko testowe dla przyjętych rozwiązań. Scena gry Zombie Driver zbudowana jest z ponad 27 mln trójkątów. Dlatego moc obliczeniowa współczesnych procesorów CPU i GPU uniemożliwia jej wyświetlenie w czasie rzeczywistym z zastosowaniem standardowych technik renderingu. W artykule opisany został sposób podziału zasobów gry, który zapewnia jej prawidłowe interaktywne działanie. W artykule przedstawiony jest sposób konstrukcji sceny używanej w grze Zombie Driver, który umożliwił przyspieszenie renderingu, skrócenie czasu wczytywania sceny oraz zmniejszenie nakładów pracy potrzebnych do wymodelowania złożonego środowiska. Dyskutowane są wymagania techniczne silnika gry Zombie Driver oraz przeprowadzane testy wydajności silnika. Artykuł obejmuje prezentację technik wizualizacji złożonych środowisk w grach komputerowych ze szczególnym uwzględnieniem metod podziału sceny (rozdz. 2). W rozdz. 3 przedstawiono architekturę podziału sceny w grze Zombie Driver, a w rodz. 4 zasady jej implementacji. W rozdz. 5 przeprowadzone zostało badanie wydajności silnika gry analizujące wpływ wielkości i struktury sceny na czas renderingu. 2. Przeglad technik wizualizacji złożonych środowisk 3D Efektywny rendering złożonych scen w dużej części polega na wydajnym zarządzaniu zbiorem obiektów znajdujących się na scenie. Zastosowanie odpowiednich struktur danych zwanych grafem sceny jest kluczowe dla szybkiego wyznaczania zbioru obiektów widzianych przez kamerę oraz właściwego wykorzystania pamięci operacyjnej komputera Silnik gry komputerowej Koszty związane z opracowaniem wszystkich technologii wymaganych do produkcji gry komputerowej stały się na tyle wysokie, że w praktyce nie tworzy się już gier od podstaw [3]. Tworzy się natomiast zestawy ewolucyjnie rozwijanych bibliotek oraz narzędzi, na podstawie których tworzone są kolejne gry komputerowe. Dzięki temu koszty implementacji są pomniejszane o bazę stworzoną w poprzednich latach. Możliwe jest również licencjonowanie technologii przez firmy, które nie posiadają zasobów potrzebnych do stworzenia własnych rozwiązań. Pełny zbiór bibliotek oraz narzędzi używanych do produkcji gry komputerowej nazywany jest zbiorczo silnikiem gry (ang. game engine). W skład typowego silnika gry powinny wchodzić biblioteki odpowiadające za: rendering grafiki, rendering dźwięku, symulację fizyki, obsługę urządzeń wejścia/wyjścia, sztuczną inteligencję oraz transmisję sieciową. Istotnym komponentem każdego silnika gry są także narzędzia używane do tworzenia zasobów gry, czyli danych wejściowych dla odpowiednich bibliotek (różnego typu edytory, konwertery formatów czy też kompilatory danych). Klasycznym przykładem silnika gry rozwijanego stopniowo przez wiele lat są kolejne wersji technologii firmy id Software [4]. Gry oparte na każdej nowej odsłonie tego silnika, ustanawiały wyznacznik jakości renderingu grafiki komputerowej w czasie rzeczywistym. W grze Doom wprowadzone zostało w pełni oteksturowane pseudo-trójwymiarowe środowisko, podział przestrzeni za pomocą drzewa BSP, zmienne oświetlenie, pozycjonowany dźwięk

89 Interaktywny rendering złożonych scen stereo oraz możliwość prowadzenia rozgrywki wieloosobowej poprzez sieć komputerową. Następna wersja tego silnika została wykorzystana do stworzenia gry Quake, w której wprowadzono w pełni trójwymiarowe środowisko z poprawnym renderingiem perspektywy. Na podstawie technologii użytej w grze Quake stworzony został silnik id Tech 2 zastosowany w grze Quake II, w której wprowadzono kolorowe oświetlenie oraz sprzętową akcelerację renderingu. Silnik id Tech 3 udostępnił możliwość zastosowania shaderów oraz parametrycznie opisywanej geometrii środowiska. Kolejna odsłona id Tech 4 wprowadziła w pełni dynamiczne, ujednolicone oświetlenie dla wszystkich obiektów na scenie, obliczane dla każdego piksela obrazu Metody ograniczania zbioru obiektów widocznych Podczas procesu ograniczania zbioru obiektów widocznych określane jest, które obiekty powinny zostać wygenerowane, a które można pominąć podczas generowania bieżącego obrazu. Obliczanie dokładnego zestawu widocznych trójkątów może być bardziej kosztowne czasowo niż sam ich rendering [5, Rozdz.14.2], w związku z czym większość algorytmów zajmujących się tym problemem oblicza jedynie przybliżony zestaw trójkątów potencjalnie widocznych (PVS ang. potentialy visible set). Do podstawowych technik ograniczenia zbioru obiektów widocznych można zaliczyć odrzucanie na podstawie stożka widoczności (ang. view frustum culling), odrzucanie powierzchni tylnych (ang. backface culling) oraz odrzucanie na podstawie odległości (ang. distance clipping) [6]. Zastosowanie tych algorytmów dla skomplikowanych scen składających się z milionów trójkątów byłoby zdecydowanie niewystarczające, dlatego w celu optymalizacji początkowe obliczenia wykonywane są na hierarchicznie uporządkowanych strukturach danych reprezentujących scenę. Do tego rodzaju struktur, nazywanych grafami sceny, zaliczane są drzewa BSP, drzewa czwórkowe i ósemkowe oraz drzewa k-wymiarowe. Uzupełnieniem powyższych metod jest zastosowanie bufora-z [7], niestety ta optymalizacja jest możliwa daleko w potoku renderowania sceny, kiedy duża część operacji została już wykonana. Drzewo BSP Algorytm binarnego podziału przestrzeni BSP (ang. binary space partitioning) [8] tworzy hierarchiczną strukturę danych poprzez rekurencyjne dzielenie sceny na wypukłe zbiory trójkątów. Każdy węzeł drzewa zawiera płaszczyznę podziału oraz dwóch synów znajdujących się odpowiednio z tyłu i z przodu tej płaszczyzny, w liściach natomiast znajdują się właściwe wielokąty opisujące geometrię sceny. Efektem ubocznym procesu jest tworzenie dodatkowych trójkątów przez podział sceny. Obliczanie struktury drzewa wykonywane jest w trybie offline przed renderingiem. Na wyjściu algorytm dostarcza posortowaną listę trójkątów od najdalszego do najbliższego w stosunku do kamery, co teoretycznie dla obiektów statycznych pozwala na pominięcie techniki bufora-z. Drzewa BSP w połączeniu z algorytmem tworzenia portali [9] najlepiej sprawdzają się w zamkniętych środowiskach ze skomplikowaną architekturą [10]. Do grona najbardziej znanych gier wykorzystujących ten algorytm można zaliczyć gry oparte na technologii id Tech (np. Quake [4]), gry oparte na silniku Source (np. Half-Life [11]) oraz serię gier Call of Duty [12]. Ten typ podziału sceny jest również stosowany w silniku Unreal, jednak w jego najnowszej wersji zastosowanie algorytmu zostało ograniczone na rzecz sprzętowego odrzucania obiektów zasłoniętych (ang. hardware occlusion culling) [13, 14, 15].

90 90 Paweł Lekki, Radosław Mantiuk Drzewa czwórkowe (ang. quadtree) i ósemkowe (ang. octree) Drzewo czwórkowe jest strukturą danych najczęściej używaną do podziału dwuwymiarowej przestrzeni na mniejsze części. W każdej iteracji podziału kwadrat z poziomu wyższego jest dzielony na cztery mniejsze aż do uzyskania wartości granicznej podziału [16, 17]. W praktyce ta struktura ma również zastosowanie do organizacji przestrzeni trójwymiarowej o względnie płaskiej strukturze (jednowarstwowej), jak np. krajobraz terenu bez zabudowań [18]. Jest także często używana do wykrywania kolizji w dwóch wymiarach, czy też kompresji bitmap dwukolorowych. Drzewo czwórkowe jest wykorzystywane np. w oprogramowaniu Microsoft Flight Simulator [19]. Drzewo ósemkowe jest trójwymiarowym odpowiednikiem drzewa czwórkowego, w którym przestrzeń trójwymiarowa jest dzielona za pomocą regularnie rozłożonych sześcianów [20]. W przypadku zastosowań w renderingu grafiki trójwymiarowej dany sześcian drzewa jest dzielony na jeszcze mniejsze, dopóki liczba obiektów (najczęściej są to trójkąty) w nim zawartych nie przekracza zadanej wartości brzegowej. Drzewa ósemkowe stanowią dobre rozwiązanie w przypadku otwartych, trójwymiarowych scen, są również relatywnie proste w implementacji i charakteryzują się niskim kosztem obliczeń [21]. Do grona najbardziej znanych gier wykorzystujących ten algorytm można zaliczyć Torchlight [22] oraz omawianą w tej pracy grę Zombie Driver. Drzewo k-wymiarowe (ang. kd-tree) Drzewo k-wymiarowe jest strukturą danych używaną do organizacji obiektów w k-wymiarowej przestrzeni [23]. Każdy węzeł, który nie jest liściem, zawiera hiperpłaszczyznę, która dzieli przestrzeń na dwie podprzestrzenie. Każdy węzeł drzewa odpowiada za jeden z k-wymiarów drzewa, a hiperpłaszczyzna podziału zawarta w węźle jest prostopadła do osi wymiaru danego węzła. W praktycznych zastosowaniach w renderingu grafiki trójwymiarowej drzewa k-wymiarowe dają podobne rezultaty do drzew ósemkowych z lepiej dobranymi rozmiarami komórek. Niestety wiąże się to z dłuższym czasem konstrukcji drzewa. Z tego powodu ich zastosowanie ma większe uzasadnienie w przypadku, kiedy czas renderingu obiektów zawartych w drzewie jest duży w stosunku do czasu tworzenia drzewa. 3. Struktura sceny w grze Zombie Driver Na rys. 1 prezentowany jest schemat architektury silnika gry Zombie Driver. Przetwarzanie sceny rozdzielono na trzy potoki odpowiedzialne za odrębne zadania wymagające osobnego zestawu przetwarzanych obiektów o różnej charakterystyce występowania na scenie. W związku z tym każdy posiada osobną instancję grafu sceny, na podstawie której dokonuje wyboru obiektów aktualizowanych w każdej ramce. Każdy potok silnika uwzględnia w przetwarzaniu tylko te obiekty, które są dla niego istotne i wykorzystuje hybrydowy system grafów sceny. Potok renderingu grafiki Charakterystyka ustawienia kamery w grze Zombie Driver (rys. 6) w znacznym stopniu ogranicza wymagania odnośnie systemu renderingu, praktycznie eliminując wymóg zastosowania skomplikowanych metod określania obiektów zasłoniętych. Jako graf sceny zastosowano drzewo ósemkowe oraz podstawowe metody ograniczenia zbioru widzialnego, czyli odrzucanie na podstawie odległości oraz na podstawie stożka widoczności.

91 Interaktywny rendering złożonych scen Definicja sceny Potok logiki gry Potok renderingu grafiki Potok symulacji fizyki Przeciwnicy Cele misji Obiekty statyczne Obiekty dynamiczne Systemy cząsteczkowe Statyczna bryła kolizji Obiekty dynamiczne Obszary kolizyjne Przestrzeń komórkowa Drzewo ósemkowe Drzewo ósemkowe Rendering Rysunek 1. Schemat architektury silnika gry Zombie Driver z wyszczególnieniem zastosowanych rodzajów grafów podziału sceny Potok symulacji fizyki Niektóre obiekty występujące w grze muszą być pomijane w potoku symulacji fizyki (np. efekty cząsteczkowe, billboardy, drobne dekoracje), stąd też silnik fizyczny wykorzystuje odrębną instancję grafu sceny w postaci drzewa ósemkowego. Obliczenia w potoku symulacji fizyki wykonywane są ze stałym interwałem 30 razy na sekundę, niezależnie od obliczeń wykonywanych w potokach logiki gry i renderowania grafiki. Na wejściu przyjmowane są informacje z potoku logiki gry, takie jak np. zmiana zachowania pojazdu na skutek naciskania klawiszy przez gracza, tworzenie nowych obiektów fizycznych lub usuwanie już istniejących. Na wyjściu potok symulacji fizyki dostarcza informacje o kolizjach, pozycji, orientacji i prędkości wszystkich obiektów, symulując ich zachowanie zgodnie z prawami fizyki. Potok logiki gry Zadania związane z logiką rozgrywki można podzielić na zadania globalne i lokalne. Zadania globalne to ogólnie pojęte techniki nie związane z przestrzenią gry, np. czas rozgrywki, obliczanie punktów, cele misji. Zadania lokalne to wszystkie zachowania bezpośrednio związane z obiektami umieszczonymi w przestrzeni gry, np. sztuczna inteligencja przeciwników, stan obiektów środowiska (z wykluczeniem symulacji fizycznej), tworzenie i usuwanie obiektów, stan pojazdu gracza. Zadania lokalne, a w szczególności sposób zarządzania rozmieszczeniem i sztuczną inteligencją przeciwników mają znaczący wpływ na sposób przygotowania środowiska gry. Liczba wykonywanych obliczeń zależy bezpośrednio od liczby obiektów aktualizowanych w każdej ramce. Należy przy tym zauważyć, że obiekty, które powinny być aktualizowane nie są tożsame z obiektami widocznymi na ekranie. W celu uzyskania wiarygodnego zachowania środowiska gry, aktualizowane są wszystkie obiekty na obszarze nieznacznie większym niż obszar widoczny.

92 92 Paweł Lekki, Radosław Mantiuk Z tego powodu konieczne jest zastosowanie oddzielnego grafu sceny dla potoku logiki gry, w takiej formie, która pozwalałaby na efektywne przetwarzanie aktualizowanych obiektów. Przestrzeń rozgrywki podzielono na równej wielkości komórki. W trakcie przemieszczania się gracza aktualizowane są tylko komórki znajdujące się w ustalonej od niego odległości, natomiast pozostała część sceny pozostaje w uśpieniu. Głównymi zaletami tego rozwiązania jest stały i bardzo niski czas wyszukiwania obiektów oraz relatywnie prosta implementacja. 4. Implementacja gry W rozdziale opisane zostały techniki wykorzystywane do tworzenia trójwymiarowego środowiska gry Zombie Driver, fizycznie poprawnej animacji środowiska oraz sterowania logiką gry. Potok renderingu grafiki w grze oparty został na silniku graficznym Ogre 3D w wersji [24]. Ogre 3D to wieloplatformowa biblioteka graficzna wysokiego poziomu, o otwartym kodzie źródłowym. Jej zadaniem jest przetwarzanie danych przygotowanych do renderingu i zapewnienie platformy abstrakcji pomiędzy interfejsami silnika graficznego a warstwą sprzętu Przygotowanie modeli 3D Podstawowym narzędziem użytym do tworzenia trójwymiarowych modeli obiektów jest program 3ds Max R9 firmy Autodesk. Został on wykorzystany zarówno do tworzenia pojedynczych modeli referencyjnych, jak również do konstrukcji całej mapy miasta. Wymodelowanie całego miasta jako jednolitej siatki 3D byłoby bardzo trudne ze względu na ogromny nakład pracy potrzebny do tego zadania oraz ograniczenia techniczne. W związku z powyższym model miasta został logicznie podzielony na mniejsze elementy składowe w kategoriach: podłoże, duże obiekty statyczne, małe obiekty statyczne, plamy (ang. decals). Pełny model miasta zawierający referencje do wszystkich mniejszych modeli składowych został nazwany scena główna. Na rys. 2 prezentowane są przykładowe modele przygotowane na potrzeby gry. Szczegółowy opis procesu tworzenia modeli geometrycznych zawarty został w [25]. Rysunek 2. Przykładowe modele obiektów, od lewej: podłoże, duży obiekt statyczny, plama Scena główna stworzona została przez połączenie opisanych elementów z wykorzystaniem funkcji XRef programu 3ds Max. Funkcja ta umożliwia wstawienie do sceny modelu jako referencji do zewnętrznego pliku. Modele wstawione w ten sposób widoczne są w scenie głównej z pełną szczegółowością, a zestaw operacji dozwolonych na modelach referencyjnych znajdujących się wewnątrz sceny głównej, ogranicza się do przesuwania, obracania oraz skalowania. Tego typu podejście różni się w zasadniczy sposób od klasycznego modelowania 3D i w przypadku modelowania rozległych scen znacznie przyspiesza proces dzięki

93 Interaktywny rendering złożonych scen wielokrotnemu wykorzystaniu powtarzających się elementów. Uniezależnienie tworzenia pojedynczych obiektów od ich umiejscowienia w scenie pozwala na zrównoleglenie pracy, a dodatkowo poprawki wprowadzane na obiekcie źródłowym aplikowane są automatycznie na wszystkich jego wystąpieniach w scenie głównej. Kolejną zaletą takiego podejścia jest zmniejszenie objętości pliku sceny głównej. Zastosowanie wielokrotnych kopii identycznych obiektów jest również konieczne do wykorzystania sprzętowego instancjonowania obiektów w procesie renderingu. W celu umożliwienia sprawnego korzystania z wstawiania obiektów za pomocą funkcji Xref, funkcjonalność programu 3ds Max rozszerzono za pomocą autorskiego narzędzia do edycji i eksportu scen, napisanego w języku skryptowym Max Script [26]. Oprócz wygodnego katalogowania obiektów dostępnych do konstrukcji sceny, zadaniem edytora jest przypisywanie obiektom za pomocą specjalnych modyfikatorów dodatkowych parametrów logiki gry. Definicję sceny rozbudowano o dodatkowe informacje specyficzne dla gry Zombie Driver, w związku z czym razem z edytorem zintegrowany został odpowiedni eksporter definicji sceny Implementacja potoku symulacji fizyki Rdzeniem potoku symulacji fizyki jest biblioteka PhysX firmy NVIDIA [27] (w wersji 2.8.1). Dodatkowo stworzono autorską implementację symulacji mechaniki pojazdów. Jako interfejs pomiędzy potokiem renderingu a potokiem symulacji fizyki zastosowana została biblioteka NxOgre (w wersji 1.5.4) [28]. Symulacja fizyki w grze Zombie Driver obejmuje wiele obiektów o różnych parametrach. W celu optymalizacji wymaganych obliczeń wyodrębniono kilka typów obiektów o zbliżonych właściwościach: Obiekty statyczne jest to najliczniejsza grupa obiektów, ale zarazem najprostsza w symulacji. Wszystkie obiekty statyczne posiadają jednakowe parametry (współczynnik tarcia, nieskończona masa) dzięki czemu możliwe jest ujednolicenie obliczeń. Przed uruchomieniem kompilacji przeprowadzany jest proces scalania wszystkich statycznych obiektów znajdujących się w scenie w jeden mesh reprezentujący całe miasto. Proces testowania kolizji z jednym meshem o dużej złożoności przebiega szybciej niż testowanie dużej liczby pojedynczych obiektów. Obiekty dynamiczne tego typu obiekty posiadają zróżnicowane parametry (masa, wytrzymałość), oprócz tego mogą się poruszać, a po przekroczeniu progu wytrzymałości rozpadają się na mniejsze części. Podłoże wykorzystując fakt, że cała powierzchnia podłoża jest płaska i że nie występują w nim dziury, możliwe jest jego zminimalizowanie do pojedynczej bryły. Przestrzeń dookoła gracza jest aktualizowana tylko w obrębie zasięgu komórek potoku logiki gry, tak więc do obliczania kolizji z podłożem wykorzystywany jest pojedynczy sześcian, który zawsze znajduje się na wysokości zerowej i przesuwany jest razem z kamerą. Pojazd gracza jest najbardziej skomplikowanym obiektem fizycznym występujący w grze. Zawieszenie pojazdu jest w pełni symulowane zgodnie z zasadami mechaniki zaimplementowanymi na potrzeby gry. Wrogowie ze względu na bardzo dużą liczbę jednocześnie występujących wrogów, wszystkie obliczenia z nimi związane ograniczono do testowania kolizji parametrycznych sfery.

94 94 Paweł Lekki, Radosław Mantiuk 4.3. Implementacja potoku logiki gry Potok logiki gry jest w całości autorskim kodem i nie bazuje na żadnych zewnętrznych bibliotekach. Z punktu widzenia konstrukcji sceny dla tego potoku najistotniejszy jest sposób przygotowania danych odnośnie pozycji, rodzaju i właściwości przeciwników. Informacje odnośnie pozycji przeciwników, punktów startowych, celów misji oraz obiektów specjalnych zapisywane są w odrębnych plikach misji i wczytywane w trakcie procesu ładowania sceny. Format przechowywania danych jest zbliżony do formatu sceny używanego przez potok wyświetlania grafiki. W końcowych etapach gry miasto jest zaludnione przez ponad 16 tysięcy przeciwników, a ich liczba we wszystkich misjach trybu fabularnego przekracza 100 tysięcy. Manualne wstawienie tak dużej liczby obiektów pochłonęłoby bardzo dużo czasu pracy projektantów gry. W celu przyspieszenia tego procesu edytor sceny rozszerzono o funkcjonalność umożliwiającą wstawianie całych grup przeciwników. W przestrzeni sceny określane są obszary, w których będą pojawiać się przeciwnicy. Oprócz rozmiaru każdy obszar zawiera również informacje odnośnie typu przeciwników, jaki będzie się w nim pojawiał oraz ich liczbie. W trakcie ładowania sceny przeciwnicy są losowo umieszczani w obrębie poszczególnych obszarów, dzięki czemu liczba obiektów określających pozycje przeciwników zmniejszyła się w przybliżeniu dziesięciokrotnie. 5. Analiza efektywności technik podziału sceny Celem analizy było zbadanie charakterystyki silnika i określenie zasadności stosowania prezentowanych rozwiązań do renderingu dużych środowisk w czasie rzeczywistym. Testy wykorzystane zostały do określenia wpływu wielkości sceny na wydajność silnika oraz wpływu złożoności ramki obrazu (liczby obiektów oraz wsadów w polu widoczności kamery) na wydajność silnika. Przeanalizowano również wpływ liczby obiektów na scenie (wielkości sceny) na zużycie pamięci Procedura testowa oraz dane wejściowe Wszystkie testy przeprowadzone zostały w grze Zombie Driver w wersji 1.2.5, kod wykonywalny z rewizji Wykonano je na komputerze wyposażonym w system operacyjny Windows XP, procesor Intel Core 2 Duo 2.2Ghz, 3.3GB pamięci operacyjnej oraz kartę graficzną GeForce 8600GTM 512MB. Testy polegały na pomiarze prędkości renderingu ramki obrazu oraz określeniu wielkości pamięci operacyjnej potrzebnej do wygenerowania tej ramki. Do testów wykorzystanych zostało pięć różnych scen (rys. 3): Scena 1 prosta scena zawierająca tysiąc jednakowych obiektów (kontenerów) (1 tys. obiektów, 12 tys. trójkątów), Scena 2 jedna-czwarta głównej sceny (miasta z komercyjnej wersji Zombie Driver)( tys. obiektów, mln trójkątów), Scena 3 jedna-druga głównej sceny ( tys. obiektów, mln trójkątów), Scena 4 całe miasto ( tys. obiektów, mln trójkątów), Scena 5 podwójna kopia miasta ( tys. obiektów, mln trójkątów) Wpływ wielkości sceny na czas renderingu W teście tym istotne było zbadanie czy sam fakt występowania obiektów w scenie, bez ich wyświetlania, ma znaczący wpływ na prędkość renderingu. Analiza wyników zawartych w tabeli 1 w jasny sposób wykazuje, że zwiększanie liczby tych obiektów w istotny sposób obciąża silnik gry.

95 Interaktywny rendering złożonych scen Rysunek 3. Po lewej: scena przedstawiająca całe miasto (Scena 4), po prawej: tysiąc kontenerów (Scena 1) Scena 1 Scena 2 Scena 3 Scena 4 Scena 5 Wielkość sceny (zużycie 4 MB 168 MB 309 MB 486 MB 817 MB pamięci) Czas rendering ramki 0 ms 4 ms 4,7 ms 8,5 ms 18,5 ms Czas renderingu ze skorygowanym drzewem ósemkowym 0 ms 3,5 ms 4 ms 7,5 ms 15 ms Tabela 1. Rezultaty badania wpływu wielkości sceny na wydajność silnika gry Zombie Driver. Wartości w tabeli reprezentują zmianę w stosunku do wczytywania pustej sceny referencyjnej. W tabeli uwzględniono wyniki pomiarów prędkości renderingu przed i po zmianie parametrów rozmiaru drzewa ósemkowego. Bardzo duży spadek wydajności wraz ze zwiększaniem rozmiarów miasta zasugerował sprawdzenie poprawności doboru parametrów tworzenia grafu sceny. Po wizualizacji komórek podziału drzewa ósemkowego znaleziony został błąd niedopasowania rozmiarów drzewa do sceny (rozmiar drzewa był mniejszy niż wielkość sceny), który powodował nadmierny podział sceny. Na rys. 4 zaprezentowana została różnica pomiędzy nieprawidłowym a prawidłowym podziałem drzewa. Poprawienie błędu pozwoliło uzyskać istotny wzrost wydajności renderingu. Badanie wpływu liczby obiektów w scenie na czas renderingu zostało powtórzone z poprawioną strukturą drzewa ósemkowego. Porównanie wydajności renderingu obydwu drzew (widoczne na rysunku 5) pokazuje, że sposób konstrukcji drzewa ma coraz większy wpływ wraz ze zwiększaniem rozmiarów sceny. W przypadku nadmiernego podziału drzewa obciążenie wzrasta proporcjonalnie szybciej do liczby dodatkowych obiektów. Poprawiona struktura drzewa zachowuje liniowy wzrost obciążenia Wpływ złożoności ramki obrazu na czas renderingu W celu dokładniejszej analizy wpływu struktury sceny na czas renderingu użyto programu NVIDIA PerfHUD (w wersji ) [29]. Program ten dostarcza informacje na temat obrazu przetwarzanego przez API Direct3D, co ułatwia profilowanie wydajności silnika graficznego. Należy przy tym zauważyć, że do korzystania z tego programu potrzebne są

96 96 Paweł Lekki, Radosław Mantiuk Rysunek 4. Wizualizacja komórek podziału drzewa ósemkowego, po lewej stronie prezentowany jest zbyt gęsty podział, poprawiony w procesie analizy sceny (rysunek po prawej). Rysunek 5. Porównanie wydajności renderingu sceny w przypadku zastosowania drzewa ósemkowego z nadmiernym podziałem i poprawionego podziału drzewa ósemkowego. Na wykresie porównane zostały bezwzględne czasy renderingu ramki. specjalne sterowniki (instalowane razem z oprogramowaniem) udostępniające dokładniejsze informacje o stanie karty graficznej, a w związku z tym znacząco wolniejsze. Z tego powodu uzyskane wyniki prędkości renderingu należy rozpatrywać jedynie pod kątem analizy zależności pomiędzy poszczególnymi elementami potoku. Do pomiarów wykorzystana została scena zawierająca całe miasto z trybu fabularnego (Scena 4). Jako ujęcia referencyjne obrane zostały trzy różne pozycje, które przedstawiały zróżnicowane graficznie obszary (patrz rys. 6). Dla każdego obszaru zastosowano trzy różne ustawienia kamery: ustawienia domyślne gry (wysokość kamery 30 metrów, offset kamery 13,5 metrów, FarClipping 90 metrów), dwukrotne oddalenie x2 (wysokość kamery 60 metrów, offset kamery 27 metrów, FarClipping 180 metrów) oraz czterokrotne oddalenie x4 (wysokość kamery 120 metrów, offset kamery 54 metry, FarClipping 360 metrów). W tabeli 2 przedstawione są wyniki testów. Porównanie wyników Obszar 1, kamera x4 i Obszar 3, kamera x4 pokazuje prawie dwukrotną różnicą w czasie renderingu pomimo bardzo zbliżonej liczby widocznych trójkątów (odpowiednio oraz ). Wyniki wskazują na wyraźną zależność czasu renderingu od liczby wsadów generowanych przez silnik

97 Interaktywny rendering złożonych scen Rysunek 6. Sceny użyte do testów prędkości renderingu Rendering ramki Wsady Trójkaty Obszar 1, kamera x1 20,2ms Obszar 1, kamera x2 27ms Obszar 1, kamera x4 51,3ms Obszar 2, kamera x1 23,5ms Obszar 2, kamera x2 33,3ms Obszar 2, kamera x4 58,8ms Obszar 3, kamera x1 21ms Obszar 3, kamera x2 23,3ms Obszar 3, kamera x4 27,8ms Tabela 2. Wyniki testów prędkości renderingu. Czas renderingu jednej ramki obrazu podany w milisekundach. graficzny. Przeanalizowanie najbardziej skrajnych pomiarów Obszar 2, kamera x4 i Obszar 3, kamera x4 potwierdza nieefektywne wykorzystanie zasobów karty graficznej, w przypadkach kiedy liczba trójkątów przypadających na wsad jest niska. W rezultacie wydajność renderingu jest bezpośrednio zależna od prędkości głównego CPU. Zaobserwowana prawidłowość wzrasta ze zwiększaniem liczby renderowanych wsadów, przykładowo dla całego miasta (Scena 1) przez prawie 30 procent czasu karta graficzna pozostaje bezczynna Wpływ wielkości sceny na zużycie pamięci Na wykresie 7 przedstawiającym przyrost pamięci możemy zaobserwować, że wzrost zadeklarowanej pamięci stopniowo zwalnia wraz z doczytywaniem kolejnych partii miasta jednak tylko do pewnego poziomu. Ilość zadeklarowanej pamięci po wgraniu sceny 5 wzrasta o 331MB w stosunku do sceny 4. Przeliczając liczbę dodatkowych obiektów na wzrost zużycia pamięci otrzymujemy średnią wartość 5,65KB na jeden obiekt. W przypadku optymalnej implementacji liczba danych potrzebnych do opisania n liczby identycznych obiektów w scenie nie powinna przekraczać m + (n p), gdzie m oznacza dane opisujące strukturę modelu a p dane opisujące umieszczenie danego modelu w scenie. Biorąc pod uwagę, że są to identyczne obiekty różniące się jedynie pozycją w scenie, tak duży wzrost pamięci wydaje się nieuzasadniony i wskazuje na dużą redundancję danych o obiektach występujących w scenie.

98 98 Paweł Lekki, Radosław Mantiuk Rysunek 7. Wykres przedstawiający przyrost pamięci dla kolejnych scen względem liczby obiektów 3D w scenie 6. Podsumowanie Analiza wyników testów wykazuje liniowy wzrost wymagań pamięciowych oraz obliczeniowych wraz ze wzrostem rozmiarów sceny. Uzyskanie takiej zależności możliwe jest dzięki właściwemu zaprojektowaniu struktury sceny oraz odpowiedniemu sparametryzowaniu zarówno wielkości przestrzennej komórek podziału, jak i liczby wsadów i trójkątów przypadających na poszczególne obszary. Wąskie gardło wydajności silnika niekoniecznie wiąże się wyłącznie z wydajnością procesora graficznego (GPU). Równie istotne jest prawidłowe rozłożenie obliczeń pomiędzy CPU i kartą graficzną. Przedstawione w artykule techniki podziału danych wysyłanych do potoku symulacji fizyki oraz logiki pozwalają np. na minimalizację modeli brył kolizyjnych do ogólnego obrysu kształtu czy uogólnienie rozmieszczania przeciwników, a w rezultacie wielokrotne skrócenie czasu renderingu. Podziękowania Niniejszy artykuł został napisany na podstawie doświadczeń zebranych przy produkcji gry Zombie Driver. Specjalne podziękowania należą się wszystkim członkom zespołu firmy EXOR Studios, uczestniczącym w produkcji gry (w alfabetycznej kolejności nazwisk): Andrzej Czajkowski (programowanie), Mateusz Kotiuk (programowanie, potok renderingu grafiki, potok symulacji fizyki), Wojciech Lekki (zarządzanie projektem, grafika 3D), Grzegorz Łabuzek (programowanie, potok renderingu dźwięku, interfejs użytkownika), Paweł Stelmach (udźwiękowienie), Tomasz Tulikowski (projektant rozgrywki), Wojciech Woźny (programowanie, potok logiki gry), Konrad Wyremski (grafika 2D/3D), Damian Zubrzycki (grafika 3D). Część prac związanych z projektem i publikacją została sfinansowana ze środków uzyskanych w ramach grantu MNiSW, nr N N Bibliografia [1] M. Wloka. Batch, Batch, Batch: What Does It Really Mean? Game Developers Conference 2003, [2] Zombie Driver web page [3] G. L. Paweł Lekki. Creating games based on existing graphics engines. Proceedings of the 10th Central European Seminar on Computer Graphics, [4] id Software Video Game Development Company. games/ doom/. Data odwiedzin strony:

99 Interaktywny rendering złożonych scen [5] T. Akenine-Moller, E. Haines, N. Hoffman. Real-Time Rendering (3rd edition). A K Peters, [6] D. Cohen-Or, Y. Chrysanthou, C. T. Silva, F. Durand. A Survey of Visibility for Walkthrough Applications. SIGGRAPH, [7] M. Slater, A. Steed, Y. Chrysanthou. Computer Graphics And Virtual Environments: From Realism to Real-Time. Addison Wesley, [8] B. F. N. H. Fuchs, Z. M. Kedem. On Visible Surface Generation by A Priori Tree Structures. SIGGRAPH 80, [9] K. Weiler. Polygon comparison using a graph representation. SIGGRAPH 80, [10] F. P. B. John M. Airey, John H. Rohift. Towards image realism with interactive update rates in complex virtual building environments. Symposium on Interactive 3D Graphics, [11] V. Corporation. Source Engine. source.valvesoftware.com/. Data odwiedzin strony: [12] Call of Duty - Wikipedia. pl.wikipedia.org/ wiki/ Call\_of\_Duty. Data odwiedzin strony: [13] E. Games. UDN, Unreal Engine 3: Precomputed Visibility. udn.epicgames.com/ Three/ PrecomputedVisibility.html. Data odwiedzin strony: [14] D. Sekulic. GPU Gems, chapter Chapter 29. Efficient Occlusion Culling. Addison Wesley, [15] J. B. Michael Wimmer. GPU Gems 2, chapter Chapter 6. Hardware Occlusion Queries Made Useful. Addison Wesley, [16] M. de Berg, M. van Kreveld, M. Overmars, O. Schwarzkopf. Computational Geometry, chapter Rozdział 14: Quadtrees: strony Springer-Verlag, [17] T. G. Rokicki. An Algorithm for Compressing Space and Time. drdobbs.com/ high-performance-computing/ , Data odwiedzin strony: [18] V. T. Egor Yusov. GPU-optimized efficient quad-tree based progressive multiresolution model for interactive large scale terrain rendering. Proceedings of the GraphiCon 2007 conference, [19] A. Szofran. Global Terrain Technology for Flight Simulation. Products/ Games/ FSInsider/ developers/ Pages/ GlobalTerrain.aspx, Game developers Conference [20] H. Sundar, R. S. Sampath, S. S. Adavani, C. Davatzikos, G. Biros. Low-constant Parallel Algorithms for Finite Element Simulations using Linear Octrees. SC 07 Proceedings of the 2007 ACM/IEEE conference on Supercomputing, [21] G. Junker. Pro OGRE 3D Programming (Expert s Voice in Open Source), chapter Chapter 5. Ogre Scene Management. Apress, [22] R. games. Torchlight. Data odwiedzin strony: [23] D. M. M. Songrit Maneewongvatana. It s okay to be skinny, if your friends are fat. University of Maryland, [24] T. K. Software. Ogre 3D. Data odwiedzin strony: [25] P. Lekki. Interaktywny rendering złożonych scen w grach komputerowych. Master s thesis, Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, [26] A. Inc. 3ds Max 9 User s Reference, usa.autodesk.com/ adsk/ servlet/ item?siteid= &id= [27] N. Corporation. PhysX. developer.nvidia.com/ object/ physx.html. Data odwiedzin strony: [28] R. Southern. NxOgre. Data odwiedzin strony: [29] N. Corporation. PerfHUD. developer.nvidia.com/ object/ nvperfhud\_home.html. Data odwiedzin strony:

100

101 Analiza wyników badania kompetencji studentów w zakresie programowania Robert Król 1, Małgorzata Pelczar 2 1 Fundacja Rozwoju Branży Internetowej Netcamp 2 Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: The inevitable adjustment of educational offer to the requirements of the job market has forced the introduction of professional testing of competence of students and graduates, as well as preparation of necessary assessment methods. The article presents the result analysis of software development competence test given to students of the IT Faculty at Westpomeranian University of Technology. For justification of hypotheses concerning the influence of various factors onto the level of students' preparation for programming task solving has been used the mathematical analysis. Keywords: skills, task programming, analysis of variance, statistical tests 1. Wprowadzenie Przeprowadzana obecnie reforma szkolnictwa wyższego zakłada między innymi integrację uczelni z gospodarką i dostosowanie kształcenia do potrzeb rynku pracy. Ustawa z dnia 18 marca 2011 r. nowelizująca ustawę - Prawo o szkolnictwie wyższym, ustawy o stopniach naukowych i tytule naukowym oraz o stopniach i tytule w zakresie sztuki oraz niektórych innych ustaw zakłada wprowadzenie Krajowych Ram Kwalifikacji (KRK), które rozszerzają autonomię uczelni w sferze dydaktyki, dopuszczając samodzielne tworzenie programów kształcenia. Programy kształcenia mają być oparte na efektach kształcenia, wykorzystując właściwe opisy dla poziomów KRK jak i obszarów kształcenia [1,2,3]. Wydział Informatyki ZUT przygotowując i realizując program kształcenia nawiązuje do modelu uczenia się przez całe życie wynikającego z procesu bolońskiego. Proces ten zakłada otwarcie na potrzeby rynku i dopasowywanie się do tych potrzeb tak, aby absolwent stał się mobilny i posiadł kompetencje umożliwiające między innymi współdziałanie w zespole i zarządzanie projektami. Przy czym kompetencje definiuje się jako zakres czyjejś wiedzy, umiejętności i doświadczenia. Celem badania przeprowadzonego przez Fundację Rozwoju Branży Internetowej Netcamp było sprawdzenie kompetencji w zakresie poziomu umiejętności programowania studentów studiów I i II stopnia na kierunku Informatyka, Wydziału Informatyki ZUT. Na umiejętność programowania składają się trzy elementy: zrozumienie zadania, stworzenie rozwiązania (kodu), które zwraca poprawne wyniki dla pełnego zbioru możliwych w zadaniu przypadków oraz wykazanie się zdolnością stworzenia rozwiązania, które ma najniższą, możliwą złożoność obliczeniową. Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

102 102 Robert Król, Małgorzata Pelczar 2. Charakterystyka badania kompetencji w zakresie programowania Badanie zaplanowano do realizacji między 20 a 24 czerwca 2011 roku. Uczestnicy badania nie byli wcześniej poinformowani, jakie zadania będą rozwiązywać. Każdego dnia do badania podchodzili studenci innego roku. Badanie odbywało się w salach laboratoryjnych Wydziału przy znajdujących się tam komputerach. Do rozwiązania testu potrzebna była przeglądarka i dostęp do Internetu. Studenci danego roku podzieleni zostali na grupy osobowe, każdą grupę pilnował jeden audytor, który przekazywał studentom podstawowe informacje o badaniu oraz pilnował zasad, które były następujące: wolno było korzystać z każdej pomocy (wyszukiwarki internetowej, dotychczas napisanego kodu, materiałów ze studiów) miało to za zadanie symulować pracę studenta w rzeczywistych warunkach, kiedy przystępując do rozwiązania problemu, posługuje się on wszystkimi znanymi mu narzędziami; nie wolno było korzystać z pomocy kolegów (zakazane były rozmowy w sali, porozumiewanie się za pomocą komunikatorów itp.) miało to zapewnić, że badana będzie umiejętność rozwiązywania problemów przez studenta, a nie przez inne osoby. Studenci zanim podeszli do testu programistycznego, wypełniali ankietę, dotyczącą: kierunku studiów, obranej specjalności, roku, oceniali źródło swoich umiejętności programistycznych ( wszystkiego nauczyła mnie uczelnia kontra wszystkiego nauczyłem się sam ), oceniali swoje umiejętności programowania w skali od 1 do 10, odpowiadali na pytanie - czy pracują w zawodzie wymagającym umiejętności programowania. Następnie przechodzili do rozwiązania zadań programistycznych, mając do wyboru 8 języków programowania (C, C++, Jva, C#, Python, Ruby on Rails, Pascal, PHP) oraz 60 minut na ich rozwiązanie. Badanym udostępnione zostało środowisko programistyczne, mieszczące się w przeglądarce internetowej, które było miejscem gdzie studenci wpisywali swój kod, sprawdzali jego poprawność, otrzymywali informacje z kompilatora, jak również testowali go pod kątem przypadków testowych. Za każde rozwiązanie można było zdobyć maksymalnie 100 punktów. Na 100 punktów składały się: punkty za każde, wcześniej zdefiniowane przez twórcę zadanie, przypadki testowe (puste tablice, maksymalne i minimalne wartości zmiennych, przypadki szczególne dla zadania jak np. dzielenie przez zero) co stanowiło punktów maksymalnie do uzyskania w zależności od typu zadania, pozostałe punkty przyznawane były za złożoność obliczeniową kodu w porównaniu do założonej (najlepszej) złożoności idealnego rozwiązania - im kod wykonywał dłużej operację, tym mniejsza była liczba przyznanych punktów. Studenci mieli do wyboru dwa typy zadań: geometryczne, gdzie tematem zadania było rozwiązanie zadań matematycznych, typowo programistyczne, gdzie tematem zadania było rozwiązanie zadań związanych z tablicami oraz listami. Każde zadanie zawierało wstęp teoretyczny oraz przykładowe parametry wraz z rozwiązaniem. Nie można przytoczyć oryginalnej treści zadań, gdyż jest ono chronione prawem autorskim i nie uzyskano zgody na ich publikacje. 3. Analiza statystyczna wyników z badania W celu analizy wyników badania programistów ustalone zostały następujące zmienne: zależne ocena otrzymana za rozwiązanie pierwszego zadania w skali od 0 do 100 punktów, oznaczona O 1,

103 Analiza wyników badania kompetencji studentów w zakresie programowania 103 ocena otrzymana za rozwiązanie drugiego zadania w skali od 0 do 100 punktów, oznaczona O 2, ocena będąca średnią arytmetyczną ocen z dwóch zadań w skali od 0 do 100 punktów, oznaczona O s, niezależne rok studiów, na którym obecnie studiuje rozwiązujący zadanie, zmienna oznaczona R, zmienna określająca opinię studenta w jakiej mierze jego umiejętności wynikają z samokształcenia, a w jakiej z procesu studiowania na uczelni w skali od 0 do 10 punktów (0-uczelnia, 10 samokształcenie), oznaczona K. zmienna dwuwartościowa (nie 0, tak-1) określająca czy student pracuje zawodowo, oznaczona P, samoocena umiejętności programowania studenta w skali od 0 do 10 punktów, oznaczona U. W badaniu wzięło udział 216 studentów i w dalszej analizie będzie rozpatrywanych 216 przypadków wymienionych wyżej zmiennych Statystyki opisowe Dla zmiennych zależnych obliczone zostały wartości statystyk opisowych zamieszczone w tabeli 1. Tabela 1. Statystyki opisowe dla poszczególnych zmiennych zależnych Zmienne Średnia arytmetyczna Mediana Moda Liczność mody Pierwszy kwartyl Trzeci kwartyl Odchylenie standardowe Współczynnik zmienności O 1 63,79 66,67 100, ,27 100,00 37,77 59% O 2 27,12 22,22 0, ,00 33,33 31,23 115% O S 45,45 54,24 66, ,22 65,28 25,43 56% Ze statystyk opisowych można wywnioskować, że zadanie drugie było dużo trudniejsze niż zadanie pierwsze średni wynik punktowy różni się aż o 36 punktów. Natomiast średnia arytmetyczna ocen za oba zadania jest poniżej 50 punktów, ale za to mediana tej zmiennej przyjmuje wartość 54,24 punkty, więc 50% studentów średnio za oba zadania uzyskało poniżej 54 punktów, a 50% studentów powyżej tej wartości. Najczęstszym wynikiem w zadaniu pierwszym była maksymalna wartość 100 punktów, otrzymało ją 95 studentów, co stanowi 44% badanych, natomiast w zadaniu drugim najczęściej otrzymywano 0 punktów taki wynik uzyskało 68 studentów, czyli 31,5% wszystkich uczestniczących w badaniu. Biorąc pod uwagę średnią arytmetyczną ocen za oba zadania to najczęstszym wynikiem było 67 punktów, ale liczność mody 30 jest niewielka i stanowi niecałe 14% wszystkich przypadków. Zróżnicowanie położenia ocen za poszczególne zadania oraz średniej oceny z obu zadań obrazuje rysunek 1.

104 104 Robert Król, Małgorzata Pelczar zadanie pierwsze średnia ocen obu zadań zadanie drugie Mediana 25%-75% Zakres nieodstających Odstające Rysunek 1. Wykres położenia ocen z dwóch zadań i średniej oceny za oba zadania Oceny za pierwsze zadanie i ocena średnia były w dużym stopniu zróżnicowane, odchylenie standardowe stanowiło ponad 50% wartości średniej, natomiast ocena za rozwiązanie drugiego zadania była w bardzo dużym stopniu zróżnicowana, odchylenie standardowe stanowiło ponad 100% wartości średniej i występowały oceny odstające, czyli takie, które nie pokrywają się z rozkładem pozostałych danych Współczynniki korelacji dla zmiennych ilościowych Następnym etapem analizy była analiza zależności ocen uzyskanych za rozwiązanie dwóch zadań i oceny średniej za oba zadania od zmiennych niezależnych. W tabeli 2 zamieszczone zostały obliczone współczynniki korelacji wraz z wynikami testu istotności współczynnika korelacji, w którym zweryfikowana została hipoteza zerowa H 0 : współczynnik korelacji r=0, wobec hipotezy alternatywnej H 1 : współczynnik korelacji r 0. Obliczona została wartość statystyki sprawdzającej t oraz p - graniczny poziom prawdopodobieństwa. Jeżeli p α (α-przyjęty poziom istotności testu, α=0,05), to odrzuca się hipotezę zerową na korzyść hipotezy alternatywnej, jeżeli p>α to brak podstaw do odrzucenia hipotezy zerowej. Współczynniki korelacji - r Tabela 2. Współczynniki korelacji dla par poszczególnych zmiennych R - rok K ocena skąd pochodzą umiejętności P czy student pracuje? U ocena własnych umiejętności O 1 0,28 0,19 0,11 0,16 p=0,000 p=0,004 p=0,092 p=0,018 O 2-0,03 0,07 0,05 0,18 p=0,625 p=0,302 p=0,432 p=0,007 O S 0,19 0,19 0,12 0,23 p=0,006 p=0,006 p=0,083 p=0,001

105 Analiza wyników badania kompetencji studentów w zakresie programowania 105 Z analizy korelacji widać, że ocena uzyskana za rozwiązanie zadania pierwszego i średnia ocen za rozwiązanie obu zadań zależały w niewielkim stopniu (r<0,3, ale statystycznie istotnie różny od zera) od roku, na którym studiuje student, od oceny skąd pochodzą umiejętności studenta oraz od samooceny umiejętności. Natomiast nie zależy od tego czy student pracuje zawodowo przy rozwiązywaniu zadań programistycznych. Natomiast ocena za rozwiązanie zadania drugiego była zależna tylko od samooceny własnych umiejętności Analiza wariancji (ANOVA) Ponieważ zmienne niezależne dzielą zmienne zależne na grupy, więc analizując wpływ poszczególnych zmiennych niezależnych na zmienne zależne zastosowano metody analizy wariancji (ANOVA), w której weryfikuje się hipotezę zerową H 0 : średnie w poszczególnych grupach są równe, wobec hipotezy alternatywnej H 1 : średnie w poszczególnych grupach nie są równe, przy założeniu, że wariancje w poszczególnych grupach są równe. Obliczona została wartość statystyki sprawdzającej F oraz p - graniczny poziom prawdopodobieństwa. Jeżeli p α (α=0,05), to odrzuca się hipotezę zerową na korzyść hipotezy alternatywnej, jeżeli p>α to brak podstaw do odrzucenia hipotezy zerowej. Niestety założenia analizy wariancji (równość wariancji) spełnia tylko para zmiennych ocena za rozwiązanie zadania drugiego i rok studiów, na którym studiuje badany student. Z analizy wariancji dla tej pary wynika, że zmienna rok nie różnicuje wyniku zadania drugiego. Wartość statystyki sprawdzającej wynosi F=0,38773, graniczny poziom prawdopodobieństwa wynosi p=0,76195, więc brak jest podstaw do odrzucenia hipotezy o równości średniego wyniku z rozwiązania drugiego zadania w zależności od roku, na którym studiuje badany student. Wyniki testu wariancji obrazuje rysunek F(3, 212)=,38773, p=, zadanie drugie , , , , rok Rysunek 2. Wykres średnich ocen za zadanie drugie otrzymanych przez studentów poszczególnych lat studiów

106 106 Robert Król, Małgorzata Pelczar 3.4. Podział zmiennych zależnych na kategorie Ponieważ metody analizy wariancji nie mogły być zastosowane do pozostałych przypadków, więc zdecydowano o podziale zmiennych zależnych na kategorie według następujących zasad: wynik punktowy zadania w przedziale [0, 30] oznaczono liczbą 2, wynik punktowy zadania w przedziale (30, 50] oznaczono liczbą 3, wynik punktowy zadania w przedziale (50, 80] oznaczono liczbą 4, wynik punktowy zadania w przedziale (80, 100] oznaczono liczbą 5. Tak określone zmienne, mogą być traktowane jako zmienne skategoryzowane i zastosować można do ich analizy metody analizy zmiennych jakościowych, takie jak testy niezależności oraz współczynniki korelacji rang Tabele wielodzielcze i testy niezależności Dla zmiennych zależnych skategoryzowanych (oznaczanych Y) i zmiennych niezależnych (oznaczanych X) określone zostały tablice wielodzielcze i przeprowadzone testy niezależności χ 2 (Chi-kwadrat), w których zweryfikowano hipotezę zerową H 0 : zmienne X, Y są niezależne, wobec hipotezy alternatywnej H 1 : zmienne X, Y nie są niezależne. Obliczona została wartość statystyki sprawdzającej χ 2 oraz p - graniczny poziom prawdopodobieństwa. Jeżeli p α (α=0,05), to odrzuca się hipotezę zerową na korzyść hipotezy alternatywnej, jeżeli p>α to brak podstaw do odrzucenia hipotezy zerowej. Tabela 3. Wyniki testu niezależności χ 2 dla poszczególnych zmiennych Wyszczególnienie K ocena skąd pochodzą umiejętności pracuje? umiejętności P czy student U ocena własnych R - rok Chikwadrkwadr. Chi- p Chi-kwadr. p p Chi-kwadr. p Ocena zadania 1 38,309 0,000 39,218 0,121 4,167 0, ,353 0,048 Ocena zadania 2 13,933 0,125 24,208 0,762 1,332 0, ,496 0,437 Ocena średnia 16,865 0,051 29,491 0,492 6,872 0, ,492 0,029 Z testów niezależności χ 2 wynika, że zmienna skategoryzowana ocena rozwiązania zadania pierwszego jest niezależna od zmiennych K - ocena skąd pochodzą umiejętności studenta oraz P - czy student pracuje zawodowo. Natomiast zmienna skategoryzowana ocena rozwiązania zadania drugiego jest niezależna od wszystkich zmiennych niezależnych. Biorąc pod uwagę średnią ocenę skategoryzowaną to zależy ona tylko od zmiennej U ocena własnych umiejętności, przy czym wyniki testu badającego jej niezależność od zmiennej R rok są dyskusyjne, bo gdyby przyjąć α=0,1 to odrzucilibyśmy hipotezę o niezależności zmiennych. Tę ostatnią wątpliwość może rozwiać dalsza analiza współczynników korelacji rang Współczynniki korelacji rang W dalszej analizie obliczone zostały współczynniki korelacji rang dla poszczególnych par zmiennych zależnych i niezależnych wraz z testami istotności tych współczynników. Zweryfikowano hipotezę zerową H 0 : współczynnik korelacji rang r S =0, wobec hipotezy alternatywnej H 1 : współczynnik korelacji rang r S 0.

107 Analiza wyników badania kompetencji studentów w zakresie programowania 107 Obliczona została wartość statystyki sprawdzającej t oraz p - graniczny poziom prawdopodobieństwa. Jeżeli p α (α=0,05), to odrzuca się hipotezę zerową na korzyść hipotezy alternatywnej, jeżeli p>α to brak podstaw do odrzucenia hipotezy zerowej. W tabeli 4 pokazane są wyniki tych obliczeń. Tabela 4. Współczynniki korelacji rang wraz z wynikami testu ich istotności R - rok K ocena skąd pochodzą umiejętności P czy student pracuje? U ocena własnych umiejętności Wyszczególnienie Ocena zadania 1 Ocena zadania 2 Ocena średnia Współczynnik korelacji rang r S 0,288-0,011 0,218 Statystyka sprawdzająca t 4,396-0,167 3,264 p 0,000 0,867 0,001 Współczynnik korelacji rang r S 0,188 0,083 0,182 Statystyka sprawdzająca t 2,797 1,212 2,703 p 0,006 0,227 0,007 Współczynnik korelacji rang r S 0,115 0,065 0,129 Statystyka sprawdzająca t 1,688 0,949 1,896 p 0,093 0,344 0,059 Współczynnik korelacji rang r S 0,165 0,190 0,245 Statystyka sprawdzająca t 2,447 2,837 3,689 p 0,015 0,005 0,000 Tu wyniki okazały się analogiczne do wyników analizy korelacji dla zmiennych ilościowych, czyli ocena uzyskana za rozwiązanie zadania pierwszego i średnia ocen za rozwiązanie obu zadań zależały w niewielkim stopniu (r S również poniżej 0,3) od roku, na którym studiuje student, od oceny skąd pochodzą umiejętności studenta oraz od samooceny umiejętności. Natomiast nie zależy od tego czy student pracuje zawodowo przy rozwiązywaniu zadań programistycznych. Natomiast ocena za rozwiązanie zadania drugiego była zależna tylko od samooceny własnych umiejętności. 4. Podsumowanie Badanie zostało przeprowadzone w celu określenia poziomu kompetencji w zakresie rozwiązywania zadań programistycznych studentów Wydziału Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego w Szczecinie. Przeprowadzona analiza wyników badania kompetencji wskazuje na dużą rozbieżność w wynikach ocen za rozwiązane zadania pierwszego i drugiego, zadanie drugie okazało się o wiele trudniejsze od zadania pierwszego. Jeżeli natomiast chodzi o wpływ zmiennych niezależnych na ocenę rozwiązania zadań, to nie miało wpływu na ocenę to, czy studenci pracują w zawodzie wymagającym umiejętności programowania, a także ocena rozwiązania zadania drugiego nie zależała od zmiennych niezależnych, z wyjątkiem oceny własnych umiejętności. Oznacza to, że w następnych badaniach należałoby uwzględniać inne zmienne niezależne. Biorąc pod uwagę zastosowane metody, to traktowanie badanych zmiennych jako zmienne ilościowe i jako zmienne skategoryzowane dało analogiczne rezultaty, przy

108 108 Robert Król, Małgorzata Pelczar czym więcej założeń formalnych było spełnionych przy metodach dotyczących zmiennych jakościowych. Dla większości zmiennych zastosowanie metod analizy wariancji jest metodologicznie niepoprawne, gdyż nie spełniają one założeń o równości wariancji w poszczególnych grupach, wtedy celowe jest skategoryzowanie zmiennych i zastosowanie do ich analizy tablic wielodzielczych i testów niezależności χ 2. W sposób analogiczny można badać kompetencje w innych zakresach wiedzy i umiejętności studentów oraz analizować wyniki tych badań w oparciu o metody statystyki matematycznej. Dostosowywanie się do nowych wymagań związanych z reformą szkolnictwa wyższego związane jest z wypracowaniem metod badania kompetencji zawodowych studentów oraz metod analizy ich wyników, artykuł powyższy stanowi tego próbę. Bibliografia [1] Od europejskich do polskich ram kwalifikacji. Model Polskich Ram Kwalifikacji. Ministerstwo Edukacji Narodowej, Warszawa, styczeń 2010, [online]. ekspertow.pdf [dostęp: październik 2011] [2] Strategia rozwoju szkolnictwa wyższego w Polsce do 2020 roku drugi wariant, Raport cząstkowy przygotowany przez konsorcjum: Ernst & Young Business Advisory, Instytut Badań nad Gospodarką Rynkową, marzec [3] Działania rządu z zakresie Nauka i szkolnictwo wyższe [online] [dostęp: październik 2011]. [4] Luszniewicz A., Słaby T. Statystyka z pakietem komputerowym STATISTICA PL. Teoria i zastosowania. Wydawnictwo C.H.Beck, [5] Sobczyk M. Statystyka. Wydawnictwo Naukowe PWN S.A., 2007.

109 Metoda steganograficzna na podstawie analizy LSB dwóch sąsiednich próbek danych jednowymiarowych Larisa Dobryakova 1, Evgeny Ochin 2 1 Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki 2 Akademia Morska w Szczecinie, Wydział Nawigacyjny Abstract: In this article is elaborated a steganography algorithm on the base on the partly distortion of container LSB with use the two of containers least significant bits, estimated distorting the container at using this method and brought comparing with the method the LSB exchange. It was shown, that the method drawn up was more immune before reading out the message by strange persons, than the existing method of building in stego message into media data, what show Normalized Cross Correlation rates to. Keywords: Steganography, container, embedding of dates, stego-message, Least Significant Bit, LSB. 1. Wprowadzenie W związku z pojawieniem się sieci komputerowych łatwość i szybkość dostępu do informacji znacznie zwiększyły groźbę naruszenia bezpieczeństwa danych przy braku zabezpieczenia. Problem zapewnienia bezpieczeństwa informacji, przedstawionej w postaci cyfrowej jest bardzo aktualny w związku z intensywnym rozwojem i rozpowszechnieniem technologii komputerowych. Wśród metod organizacyjnych, metodologicznych i technicznych zabezpieczania informacji znajdują się i metody steganografii. Zadaniem steganografii jest ukrycie samego faktu istnienia danych poufnych przy ich przekazywaniu, zachowywaniu i obróbce. Proces ukrywania informacji realizuje się na różne sposoby. Łączną cechą tych sposobów jest to, że ukrywana wiadomość wbudowuje się w obiekt, niezwracający na siebie uwagi, który następnie jest transportowany (przesyłany do adresata) w sposób jawny. Główne pojęcia steganografii zastały zdefiniowane w roku 1996 na Pierwszej Konferencji Międzynarodowej Ukrywania Danych Information Workshop on Information Hidding. System steganograficzny (stego system) jest to zestaw środków i metod, które wykorzystywane są w celu utworzenia danych dla ukrytego kanału przekazania informacji. W steganografii komputerowej istnieją dwa główne rodzaje plików: stego wiadomość (ukrywana wiadomość) i kontener plik, który został użyty w celu ukrycia w nim wiadomości. Początkowy stan kontenera, gdy jeszcze nie zawiera on ukrytej informacji, nazywa się kontenerem oryginałem, a końcowy stan kontenera, gdy zawiera już stego wiadomość, nazywa się kontenerem rezultatem. Pod kluczem rozumie się algorytm, ustalający kolejność wbudowania wiadomości w kontener oryginał. Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

110 110 Larisa Dobryakova, Evgeny Ochin 2. Algorytmy zamiany LSB danych medialnych Jednym z najbardziej znanych metod steganografii z wykorzystaniem plików medialnych jest metoda zamiany najmniej znaczących bitów kontenera (LSB) odpowiednią dwójkową stego wiadomością. Metodę tę można wyjaśnić następująco: niech kontener oryginał przedstawia I elementowy wektor liczb dwójkowych N pozycyjnych, które reprezentowane są w kodzie uzupełniającym i opisują pewne dane 1D: N 2 N 1 i i, N 1 i, n n= 0 n D = d 2 + d 2, i = 0,1,..., I 1, (1) 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 ( di, N 1 = 0 dla liczb nieujemnych, di, N 1 = 1 dla liczb ujemnych), przy czym: N 1 N 1 2 D i (2 1). Na przykład, dla N = 8, zakres liczb reprezentowanych przez D i wynosi 128 D i 127. Stego wiadomość tekstową zawsze można przedstawić w postaci wiersza bitowego długości K bitów: Oznaczmy kontener rezultat jako: { s s s s s } 0 1, {0,1} k K 1 k (2) N N i i, N 1 i,0 i, n n= 1 n D = d 2 + d + d 2, i = 0,1,..., I 1 (3) gdzie d + i,n {0,1} n ta cyfra dwójkowa i tej próbki kontenera rezultatu, d + znak. i, N 1 Algorytm wbudowania stego wiadomości w kontener przedstawia zamianę pierwszych K najmniej znaczących bitów kontenera d i,0 wiadomością długości K bitów (pierwszy wiersz algorytmu), przy czym pozostałe I K bitów kontenera oryginała pozostają bez zmian (drugi wiersz algorytmu: N 2 + N 1 n Di = di, N si + di, n 2, i = 0,1,..., K 1 n= 1 (4) + Di = Di, i = K,..., I 1 3. Wbudowanie wiadomości w dane jednowymiarowe na podstawie analizy dwóch sąsiednich próbek LSB kontenera W niniejszej pracy w celu zmniejszania stego błędów 1 rozpatrzone zostało wbudowanie wiadomości w dane medialne na podstawie analizy zawartości par najmniej znaczących bitów di,0d i + 1,0 próbek danych i modyfikacji najmniej znaczących bitów d i,0 próbek danych. Metodę tę można wyjaśnić na podstawie tabeli 1. 1 Stego błąd jest to zniekształcenie kontenera.

111 Metoda steganograficzna na podstawie analizy LSB dwóch sąsiednich próbek 111 Tabela 1. Wbudowanie danych w najmniej znaczące bity Wbudowanie s k = 0 Wbudowanie s k = 1 d i,0 d i + 1,0 i 1,0 d + + k = i,0 d d i + 1,0 i 1,0 d + + k = i,0 Odczytanie s k d + d + i+ 1,0 k s = k = 0 0 d i + 1,0 k d i+ 1,0 k k d i+ 1,0 k d i + 1,0 k 0 1 k 1 0 d i + 1,0 k 1 0 d i+ 1,0 k k 1 1 d i+ 1,0 k 1 1 d i + 1,0 k k + 1 Algorytm wbudowania można opisać następująco: k = 0 /* k numer bitu stego wiadomości* / for i = 0,1,..., I 1: + if skdi,0di+ 1,0 = 000 then { Di = Di ; k = k + 1;} if skdi,0di+ 1,0 = 001 then { di+ 1,0 = 0; k = k + 1;} if skdi,0di+ 1,0 = 011 then di+ 1,0 = 0; if k < K then if,0 1,0 111 then { + skdi di+ = Di = Di ; k = k + 1;} if skdi,0di+ 1,0 = 110 then { di+ 1,0 = 1; k = k + 1;} if s,0 + 1,0 = 100 then + 1,0 = 1; kdi di d i + else Di = Di ; else if k = K then Goto End_Wbudowanie_skuteczne end; if k < K then Goto Error_Krótki_kontener End_Wbudowanie_skuteczne : Algorytm odczytywania stego wiadomości z kontenera rezultatu: k = 0 for i = 0,1,..., I 1: if di,0 = di+ 1,0 then { sk = di,0; k = k + 1 }; if k = K then goto End_of_destego end; End_of_destego : Przykład: (5) (6) Niech stego wiadomość testowa wygląda następująco: sk { } a testowy kontener oryginał odpowiednio: d { } = , k = 0,1,..., 4, i,0 = , i = 0,1, 2,...,9. W rezultacie wykorzystania algorytmu (5) został zbudowany kontener rezultat: d + i,0 = { }. Algorytm wbudowania stego wiadomości w kontener można pokazać za pomocą tabeli 2.

112 112 Larisa Dobryakova, Evgeny Ochin Tabela 2.Wbudowanie wiadomości testowej k { } d i,0 = { } i odczytanie z kontenera d + i,0 = { } Wbudowanie s k d d i + 1,0 d + i+ 1,0 s = w kontener testowy Odczytanie s k k sk i i,0 k i d + i,0 d + i+ 1,0 sk Na rys.1 pokazane zostały wyniki wbudowania wiadomości testowej w kontener oryginał testowy na podstawie opracowanego algorytmu(5). s k k d i, i d + i, i Rysunek 1. Stego wiadomość s k = { }, kontener oryginał i,0 { } rezultat d + i,0 = { } d =, kontener Na rys.2 pokazane zostały wyniki wbudowania wiadomości testowej kontener oryginał testowy na podstawie algorytmu zamiany najmniej znaczących bitów (4). Jak widać najmniej znaczące bity kontenera rezultatu po wbudowaniu wiadomości na podstawie algorytmu (4) dokładnie powtarzają wiadomość (rys. 2), czego nie ma przy wbudowaniu wiadomości na podstawie opracowanego algorytmu (rys. 1). Z rysunków tych można wnioskować, że odczytanie wiadomości z kontenera rezultatu w przypadku algorytmu (4) jest łatwiejsze, niż w przypadku opracowanego w artykule algorytmu, ponieważ przy wykorzystaniu algorytmu wbudowania wiadomości (4) osoba obca

113 Metoda steganograficzna na podstawie analizy LSB dwóch sąsiednich próbek 113 potrafi wyodrębnić najmniej znaczące bity z kontenera rezultatu oraz wprost złożyć wiadomość z otrzymanego wiersza bitów. W przypadku wykorzystania opracowanego algorytmu nie da się wprost odczytać wiadomość z poszczególnych najmniej znaczących bitów, ponieważ nie wszystkie bity przy wbudowaniu wiadomości uległy zniekształceniu, czyli zamianie wartości LSB. To jest główną zaletą zaproponowanej metody. 1 s k k 1 d i, i d + i, i Rysunek 2. Stego wiadomość s k = { }, kontener oryginał i,0 { } kontener rezultat d + i,0 = { } d =, Dodatkową zaletą zaproponowanej metody jest jej nowość: każda nowa opracowana metoda steganograficzna pozwala wbudowywać wiadomości w dane medialne w sposób nieznany dla osób obcych, co zwiększa jej odporność 2 na odczytywanie przez te osoby. 4. Wartość zniekształcenia kontenera przy wbudowaniu stego wiadomości Oszacowanie ilościowe odporności zabezpieczenia systemu steganograficznego przed zewnętrznymi oddziaływaniami przedstawia dosyć trudne zadanie, które w praktyce realizowane jest zazwyczaj za pomocą metod analizy systemowej, modelowania matematycznego lub badania eksperymentalnego. Z zasady, zawodowo opracowany stego system zabezpiecza trzechpoziomowy model ochrony danych, który rozwiązuje dwa główne zadania: ukrywanie faktu istnienia chronionych danych (pierwszy poziom ochrony); blokowanie niesankcjonowanego dostępu do danych, które realizuje się za pomocą wyboru odpowiedniej metody ukrywania danych (drugi poziom ochrony). 2 Odporność wbudowanej informacji to miara pewności prawidłowego odczytu ukrytej informacji po wykonaniu sekwencji określonych przekształceń sygnału kontenera. Wbudowana informacja jest odporna tylko wtedy, gdy całą informacje uda się odczytać bezbłędnie [7].

114 114 Larisa Dobryakova, Evgeny Ochin W postaci trzeciego poziomu ochrony może występować wstępna ochrona kryptograficzna (szyfrowanie) ukrywanych danych. Do porównawczego szacowania jakości środków steganograficznych stosuje się różne wskaźniki, dające oceny ilościowe. W danym artykule wykorzystane są dwa kryteria: wartość średniokwadratowa MSE (Mean Square Error), znormalizowana korelacja wzajemna NC (Normalized Cross Correlation). Przy analizie poziomu zniekształceń najbardziej rozpowszechnioną miarą oceny zniekształceń wnoszonych w kontener jest obecnie wartość średniokwadratowa, chociaż nie zawsze koreluje ona z subiektywnym postrzeganiem danych medialnych. Fmin 1 Fmin ( i i ) i,0 i,0 min i= 0 Fmin i= 0, (7) MSE = D D = d d F F min minimalna długość kontenera potrzebna do wbudowywania stego wiadomości (wartość ta jest wartością zmienną, zależną od zawartości stego wiadomości i kontenera). Przy wykonaniu algorytmu (5) z wykorzystaniem pakietu MatLab, okazało się, ze wartość zniekształcenia kontenera oryginału wynosi MSE 0, 5, co jest równe wartości zniekształcenia kontenera przy wbudowaniu stego wiadomości za pomocą algorytmu zamiany najmniej znaczących bitów (4).To pozwala wywnioskować, że opracowana metoda jest nie gorsza, niż istniejąca z punktu widzenia zniekształceń kontenera w rezultacie wbudowania wiadomości. W celu analizy odporności przed odczytywaniem wiadomości przez osoby obce także można używać znormalizowaną korelację wzajemną w postaci miary bliskości wbudowanej wiadomości sk z kontenerem rezultatem d + i,0 : NC = K 1 + ( sk dk,0 ) k= 0 K 1 k= 0 ( s ) Ponieważ w metodzie wbudowania wiadomości LSB (4) sk d + k,0 można zapisać: NC NC ( ) K + (,0 ) 1 K 1 ( s ) k 2 ( ) s d s = = = 1, k k k k = 0 k = 0 4 K 1 2 K 1 2 ( ) k k = 0 k = 0 K ( ) ( s ) ( s ) k 2 K ( ) sk dk,0 sk dk,0 k = 0 k = 0 = = 5 K 1 K 1 2 k k = 0 k = 0 s k. = oraz s { 0,1} Przy obliczeniu wartości znormalizowanej korelacji wzajemnej w algorytmie (5) z wykorzystaniem pakietu MatLab, okazało się, że wartość ta wynosi NC = 0,5 ± 0,1, co pozwala stwierdzić, że proponowana metoda jest bardziej odporna na próby odczytania wiadomości przez osoby nieupoważnione. Bardziej szczegółowe badania odporności na odczytanie k (8), to (9) (10)

115 Metoda steganograficzna na podstawie analizy LSB dwóch sąsiednich próbek 115 wiadomości z kontenera rezultatu odnosi się do dziedziny stegoanalizy i w ramach danej pracy nie rozpatruje się. Obserwacja próbek, w których nastąpiła zmiana kontenera, pozwala zauważyć pewne właściwości 3 : 1. Wbudowanie jedynki łączy się ze zmianą liczby nieparzystej D i na parzystą ( Di 1), wbudowanie zera łączy się ze zmianą liczby parzystej D i w nieparzystą ( D i + 1) ; przy tym w kontener wprowadza się zniekształcenieε = ± Próbka D i może się nie zmienić. 3. Zniekształcenie może zachodzić bez wbudowania w kontener stego wiadomości. 4. Minimalna konieczna długość kontenera oryginału, wystarczająca dla wbudowania stego wiadomości zależy od zawartości stego wiadomości oraz od zawartości kontenera oryginału. 5. Podsumowanie W artykule została opisana nowa metoda wbudowania wiadomości tekstowej w dane 1D na podstawie analizy najmniej znaczących bitów danych i częściowego ich zniekształcenia. W rezultacie przeprowadzonych eksperymentów pokazano, że wartość średniokwadratowa przy wykorzystaniu tej metody jest nie większa, niż przy wykorzystaniu wbudowywania stego wiadomości w kontener oryginał metodą zamiany pierwszych K próbek kontenera oryginału. Jednak metoda ta jest bardziej odporna przed odczytywaniem wiadomości przez osoby obce, niż istniejąca metoda wbudowania stego wiadomości w dane medialne (4), na co wskazują współczynniki znormalizowanej korelacji wzajemnej, które w opracowanej metodzie są dwa razy mniejsze, niż w metodzie (4). Przyczyną tego są zalety metody wymienione w artykule, w tym to, że nie wszystkie bity przy wbudowaniu wiadomości uległy zniekształceniu i nie da się wprost odczytać wbudowaną wiadomość z LSB kontenera rezultatu. Bibliografia [1] В.Г. Грибунин, И. Н. Оков, И.В. Туринцев. Цифровая стеганография. Москва. СОЛОН Пресс [2] Osborne C., Van Schyndel R., Tirkel A. A Digital Watermark. IEEE International Conference on Image Processing [3] Bender W., Gruhl B., Morimoto N., Lu A. Techniques for data hiding. IBM systems journal Vol [4] Petitcolas F., Anderson R., Kuhn M. Information Hiding A Survey. Proceedings IEEE, Special Issue on Identification and Protection of Multimedia Information Vol 87. No. 7. [5] Pfitzmann B., Information Hiding Terminology. In: Information Hidding. Springer Lecture Notes in Computer Science. V Wnioski te mogą wydawać się trywialne, ale wcale tak nie jest, więc na przykład, w najczęściej wykorzystywanej metodzie wbudowania wiadomości w LSB zniekształcenie kontenera nie może zachodzić bez wbudowania wiadomości, co jest główna przyczyną do łatwego odczytania wiadomości z kontenera-rezultatu. W zaproponowanej metodzie takiej wady nie istnieje. Ten fakt, że zniekształcenie może zachodzić bez wbudowania w kontener wiadomości tworzy dodatkowe utrudnienie w odczytaniu tej wiadomości przez osoby, które nie znają algorytmu wbudowania/odczytania.

116 116 Larisa Dobryakova, Evgeny Ochin [6] Konachowicz G.F., Puzyrienko A.Ju., Steganografia komputerowa. Teoria i praktyka, MK Press, Kijów, [7] Moskowitz I.S., Longdon G.E., Chang L. A new paradigm hidden in Steganography. Proceedings of Workshop New Security Paradigms. ACM Press [8] Kozieł G., Zmodyfikowane metody cyfrowego przetwarzania sygnałów dźwiękowych w steganografii komputerowej. Praca doktorska, Politechnika Lubielska, Lublin, 2010.

117 Drzewo czwórkowe w projektowaniu grafów dla uproszczonego algorytmu mrówkowego Mariusz Dramski, Marcin Mąka Akademia Morska w Szczecinie, Wydział Nawigacyjny Abstract: The article presents the problem of choosing a safe route of an object in a restricted area. The ant algorithm is implemented to solve the problem. The presented methodology involves graph design for this algorithm using quad trees. Based on the route planning method developed, a numerical experiment was made and its results are discussed in this paper. Keywords: simplified ant algorithm, quadtree, area discretization 1. Wprowadzenie Poszukiwanie optymalnej drogi dla poruszającego się obiektu, po obszarze na którym znajdują się przeszkody, jest przedmiotem badań od wielu lat. Do dnia dzisiejszego opracowano szereg różnych metod rozwiązujących ten problem jak np. algorytm Bellmana- Forda, Dijkstry czy A* oraz wiele innych. Pewną alternatywą są tu też algorytmy oparte na metodach sztucznej inteligencji. Przykładami takich metod są m.in. algorytmy ewolucyjne i mrówkowe. W [7] Śmierzchalski i Michalewicz zaproponowali zastosowanie algorytmów ewolucyjnych w nawigacji do poszukiwania bezpiecznej trasy dla statku w sytuacji kolizyjnej. W 1991 roku Marco Dorigo [3] zaproponował alternatywny rodzaj algorytmów do rozwiązywania zadań optymalizacyjnych algorytmy mrówkowe. Uwzględniając dynamikę poruszającego się obiektu (statku), w artykule zaproponowano metodę znajdowania suboptymalnej drogi, wykorzystującą uproszczony algorytm mrówkowy. Do analizy obszaru oraz budowy grafu przejść wykorzystano rekurencyjny algorytm dyskretyzujący, oparty na metodzie drzewa czwórkowego. Jednym z zastosowań proponowanej metody może być zadanie wyznaczania bezpiecznej trasy statku unikania kolizji. Jako suboptymalną drogę obiektu rozumiemy tu jedną z dopuszczalnych, bezpiecznych tras po jakich może poruszać się statek. W niniejszym artykule przedstawiono opis, prostej sytuacji nawigacyjnej na akwenie ograniczonym na którym znajdują się statyczne przeszkody. Dalsze badania prowadzone są w kierunku występowania przeszkód o charakterze dynamicznym. Ponadto należy uwzględnić również inne ograniczenia jak np. przepisy MPDM 1. 1 Międzynarodowe Prawo Drogi Morskiej Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

118 118 Mariusz Dramski, Marcin Mąka 2. Uproszczony algorytm mrówkowy Świat przyrody stanowi inspirację dla badaczy, którzy dzięki temu mogą poszukiwać nowych rozwiązań różnorodnych problemów. Ta wiedza przyczyniła się do powstania m.in. sztucznych sieci neuronowych czy algorytmów ewolucyjnych. Zainteresowanie badaczy skierowało się również na społeczne zachowania kolonii mrówek. Mrówki, jako owady żyjące w koloniach, pomimo prostoty i nieskomplikowania swoich pojedynczych osobników, cechują się wysokim stopniem organizacji zdolnej do rozwiązywania złożonych problemów. Przeprowadzono bardzo prosty eksperyment [2]. Wszystkie mrówki znajdowały się w mrowisku, a ich zadaniem było dotarcie do miejsca w którym znajduje się pożywienie. Do celu prowadziły dwie drogi krótsza i dłuższa. Na początku owady wybierały drogę z prawdopodobieństwem bliskim 0.5. Po pewnym czasie okazało się, że zdecydowana większość mrówek wybierała krótszą drogę. Stwierdzono, że mrówka poruszająca się po wybranej przez siebie trasie zostawia na niej chemiczny ślad zwany feromonem. Zatem im więcej mrówek idzie daną drogą, odkładana jest na niej coraz większa ilość feromonu. Ślad feromonowy jest znakiem dla pozostałych mrówek, którą trasę należy wybrać. Należy również uwzględnić fakt, że feromon jako substancja chemiczna ulega parowaniu. Im dłuższa droga, tym parowanie feromonu jest większe. W ten sposób po pewnym czasie więcej feromonu znajdzie się na krótszej drodze. Doszło do optymalizacji trasy i wszystkie mrówki zaczynają poruszać się krótszą drogą. Niniejszy eksperyment nosi nazwę eksperymentu z mostami do celu prowadzą dwa mosty o różnej długości. Wykazano zatem, że kolonie mrówek mają wbudowane pewne zdolności do optymalizacji. Przy wykorzystaniu reguł prawdopodobieństwa są one w stanie znaleźć najkrótszą ścieżkę pomiędzy dwoma punktami w ich środowisku. Na tej podstawie wysnuto wniosek, że możliwe jest zaprojektowanie sztucznych mrówek, które będą w stanie znaleźć suboptymalną drogę z jednego do drugiego punktu. Do zobrazowania tego zadania może być wykorzystany graf, którego węzły stanowią kolejne punkty drogi, a połączenia między nimi jej kolejne etapy. Jednym z proponowanych rozwiązań jest uproszczony algorytm mrówkowy SACO. Mrówki znajdują się w dwóch trybach: naprzód, powrót. W trybie naprzód mrówki poruszają się z mrowiska (źródła) do punktu w którym znajduje się pożywienie (cel). Kiedy mrówka osiąga swój cel jej tryb zmienia się na powrotny i tą samą drogą wraca ona do źródła. Mrówki w trybie naprzód wybierają losowo następny sąsiedni węzeł w grafie G=(n,A), gdzie: n zbiór wszystkich punktów w grafie, A zbiór wszystkich połączeń w grafie, pod warunkiem, że istnieje stosowne połączenie. Ten losowy wybór jest warunkowany ilością pozostawionego na ścieżce pomiędzy węzłami feromonu. W algorytmie SACO oprócz przebytej drogi pamięta się także jej długość. Dzięki temu można oszacować ile feromonu mrówka pozostawia na danej trasie. W ten sposób mrówki stosunkowo szybko zaczynają się poruszać po najkrótszej trasie. Należy stosować się do kilku zasad: Aktualizacja feromonu następuje jedynie w drodze powrotnej; Należy eliminować powstające pętle; Jakość rozwiązania analizowana jest na podstawie ilości pozostawionego feromonu.

119 Drzewo czwórkowe w projektowaniu grafów dla uproszczonego algorytmu mrówkowego. 119 Każde połączenie (i, j) w grafie G(n,A) powiązane jest ze zmienną: której wartość początkowa wynosi 1. =1,,, (1) Kiedy mrówka k znajdzie się w węźle i, wówczas za pomocą powyższej zmiennej można obliczyć prawdopodobieństwo wybrania drogi do węzła j: = 0 gdzie: sąsiedztwo mrówki k kiedy znajduje się w węźle i. Sąsiedztwo to zawiera wszystkie inne węzły mające bezpośrednie połączenie z i, za wyjątkiem węzła poprzednika (nie dotyczy to sytuacji w której węzeł i jest węzłem krańcowym nie ma z niego innej drogi niż droga powrotna takim węzłem jest np. węzeł 12 na rysunku 4. α parametr wyznaczony eksperymentalnie (wartość α = 2) [4]. sztuczny ślad feromonowy odczytywany i zapisywany przez mrówki. Aktualizację feromonu przeprowadzano według wzoru: +1= +Δ gdzie Δ =1 (3) W algorytmie SACO nie uwzględnia się zjawiska parowania feromonu. Dla działania algorytmu niezbędnym jest zdefiniowanie grafu wszystkich możliwych przejść dla mrówek. Zaproponowano wykorzystanie metody drzewa czwórkowego. W wyniku jej działania otrzymuje się sieć węzłów, które można następnie wykorzystać do budowy grafu. 3. Drzewo czwórkowe Drzewo czwórkowe (określane również mianem drzewa ćwiartek) jest ukorzenionym drzewem, w którym każdy wewnętrzny węzeł ma czworo potomków. Każdy węzeł w drzewie reprezentuje jeden kwadrat. Jeżeli dany węzeł drzewa w ma potomków, to odpowiadające im kwadraty stanowią cztery ćwiartki elementu reprezentowanego przez węzeł drzewa w [1]. (2) IV III I II I II III IV Rysunek 1. Podział obszaru i odpowiadające mu drzewo czwórkowe Potomkom każdego z węzłów drzewa nadawane są etykiety: I, II, III, IV według kolejności przedstawionej na rysunku 1. Symbole okręgów i kwadratów w grafie oznaczają odpowiednio: węzły wewnętrzne reprezentujące takie elementy siatki, które ulegają dalszemu

120 120 Mariusz Dramski, Marcin Mąka podziałowi oraz liście czyli węzły drzewa, który nie posiada potomków, reprezentujące elementy siatki nie ulegające dalszemu podziałowi. W analizowanym przypadku drzewo czwórkowe wykorzystywane będzie do przekształcenia zbioru wypukłego P stanowiącego prostokątny fragment płaszczyzny oraz zawartego w nim podzbioru wektorów definiującego kontury obiektów, do postaci odpowiedniej dla algorytmu mrówkowego. Dla zbioru punktów znajdujących się wewnątrz jednego elementu siatki s, stanowiących początki oraz końce wektorów zawartych w analizowanym zbiorze P: ':=)* +,*, -.)/ +,/, - (4) Jeżeli card * 9, -* 9+ 4' 5; następuje podział elementu siatki s na cztery kwadraty: s I, s II, s III, s IV o współrzędnych wierzchołków: ' I : * 9+,/ 9+,* ś>,/ 9+,* ś>,/ ś>,* 9+,/ ś> ' II : * ś>,/ 9+,* 9,,/ 9+,* 9,,/ ś>,* ś>,/ ś> ' III : * ś>,/ ś>,* 9,,/ ś>,* 9,,/ 9,,* ś>,/ 9, ' IV : * 9+,/ ś>,* ś>,/ ś>,* ś>,/ 9,,* 9+,/ 9, Podział będzie kontynuowany dopóki nie zostanie osiągnięta maksymalna, dozwolona liczba punktów w elemencie lub minimalny dozwolony rozmiar pojedynczego elementu: 567 * 9, -* 5;, (6) gdzie: P max maksymalna liczba punktów mapy znajdujących się wewnątrz jednego elementu siatki, s min minimalny, dozwolony rozmiar oczka. Kryteriami, według których dobierana jest gęstości siatki są (rysunek 2): 1. ograniczenia wynikające z ogólnych założeń dotyczących minimalnego i maksymalnego rozmiaru pojedynczego elementu siatki, 2. odległość od obiektów zawartych w zbiorze P, 3. ilości punktów wyznaczających kontury obiektów, znajdujących się w jednym oczku sieci. (5) Rysunek 2. Przykładowe rozmieszczenie węzłów siatki

121 Drzewo czwórkowe w projektowaniu grafów dla uproszczonego algorytmu mrówkowego. 121 Każdy utworzony element siatki analizowany jest pod kątem położenia w stosunku do obiektów zabronionych. W przypadku elektronicznej mapy nawigacyjnej będą to: lądy, rejony o zbyt małej głębokości itp. Elementy znajdujące się w całości w tych obiektach są oznaczane jako zabronione i eliminowane z dalszej analizy (rysunek 3). Elementy zawierające punkty i krawędzie obiektów należących do analizowanego zbioru podlegają dalszemu podziałowi do momentu, w którym: nie będą zawierały punktów i krawędzi lub obejmować będą ich maksymalną dozwoloną liczbę, albo osiągną zdefiniowany, minimalny rozmiar oczka sieci. W algorytmie określono także minimalną odległość od obiektów zabronionych w jakiej może przebiegać planowana trasa obiektu. Elementy siatki, które znajdują się w zbyt małej odległości są także oznaczane jako zabronione i eliminowane z dalszych obliczeń. Rezultatem działania algorytmu są dwie zmienne macierzowe: pierwsza o wymiarach 2 m zawierająca współrzędne kolejnych węzłów, druga o wymiarach 4 n zawierająca numery węzłów stanowiących narożniki kolejnych elementów siatki, gdzie m - liczba węzłów, n liczba elementów. Uzyskane ostatecznie zbiory węzłów i elementów stanowią bazę dla projektowania grafu w algorytmie mrówkowym. Rysunek 3. Przykładowa dyskretyzacja analizowanego fragmentu płaszczyzny, usunięte elementy zabronione: a) rozmieszczenie węzłów, b) siatka 4. Eksperyment Poszukiwanie suboptymalnej trajektorii będzie się składać z kilku, następujących kolejno etapów: 1. Dyskretyzacji analizowanego obszaru oraz wykrywania stref zabronionych z wykorzystaniem metody drzewa czwórkowego; 2. Zbudowania grafu dozwolonych przejść na podstawie otrzymanych węzłów siatki; 3. Znalezienia suboptymalnej trajektorii przy użyciu algorytmu SACO. Analizie poddano hipotetyczny obszar przedstawiony na rysunku 4. Procesy dyskretyzacji oraz wyodrębnienia rejonów zabronionych przeprowadzono przy założeniach: minimalna długość boku pojedynczego oczka siatki: s min = 2, maksymalna długość boku pojedynczego oczka siatki: s max =12, minimalna, dozwolona odległość od obszaru zabronionego: l min = 2. Na podstawie otrzymanych punktów siatki zbudowano graf wszystkich możliwych przejść pomiędzy węzłami. Zdefiniowano, że dozwolone są jedynie przejścia pomiędzy są-

122 122 Mariusz Dramski, Marcin Mąka siadującymi węzłami tworzącymi element siatki lub po przekątnej tego elementu. Przyjęto punkty początkowy i końcowy o współrzędnych, odpowiednio: [0, 0] oraz [100, 100]. W wyniku przeprowadzonych eksperymentów otrzymano kilka możliwych, suboptymalnych tras dla obiektu. Widoczne są one na rysunku 5 i 6. Rysunek 4. Analizowany fragment płaszczyzny i dozwolone węzły na podstawie drzewa czwórkowego Rysunek 5. Proponowana trasa dla statku otrzymane w wyniku działania algorytmu SACO przykład 1

123 Drzewo czwórkowe w projektowaniu grafów dla uproszczonego algorytmu mrówkowego. 123 Rysunek 6. Proponowana trasa dla statku otrzymane w wyniku działania algorytmu SACO przykład 2 5. Podsumowanie Otrzymane wyniki badań potwierdzają skuteczność przedstawionych w artykule algorytmów. Zaproponowana metodyka postępowania z zastosowaniem uproszczonego algorytmu mrówkowego dla którego budowano grafy przejść przy użyciu drzewa czwórkowego. umożliwiła realizację procesu tworzenia grafu w założonym reżimie czasowym. Jednakże zaproponowana metoda dyskretyzacji, ze względu na specyficzne reguły podziału elementu siatki - wyłącznie na cztery równe części - jest mało elastyczna i może stwarzać problemy podczas dyskretyzacji skomplikowanych obszarów. Zastosowanie uproszczonego algorytmu mrówkowego pozwala na realizację procesu poszukiwania oraz optymalizacji drogi. Problem ten wymaga uwzględnienia szeregu wcześniej wymienionych czynników, m.in. ruchu innych obiektów na analizowanym obszarze, jego ograniczeń czy dynamiki obiektu własnego. Ponadto musi on być rozwiązany w pożądanym reżimie czasowym. Jest on ustalany ze względu na klasę rozpatrywanych problemów. Z punktu widzenia nawigacji morskiej jest to czas potrzebny nawigatorowi na podjęcie decyzji o zmianie (bądź jej braku) kursu statku. Istotnym aspektem jest złożoność obliczeniowa proponowanego rozwiązania. Porównując proponowany algorytm np. z algorytmem A*, wynosi ona odpowiednio O(n 3 ) i O(n), co przemawia na korzyść algorytmu A*, który ponadto daje gwarancję optymalności [5]. Tym niemniej z uwagi na charakterystykę poruszającego się obiektu jakim jest statek morski, istnieje potrzeba prowadzenia badań także nad rozwiązaniami alternatywnymi. Zastosowanie uproszczonego algorytmu mrówkowego umożliwiło w większości przypadków znalezienie suboptymalnej, bezpiecznej trasy dla obiektu. Proponowana metodyka posiada jednak kilka ograniczeń. Zbyt duża liczba węzłów grafu może spowodować przekroczenie zakładanego, maksymalnego czasu realizacji algorytmu, co spowodowane jest probabilistycznym charakterem wykorzystywanej metody optymalizacji. Aby rozwiązać ten

124 124 Mariusz Dramski, Marcin Mąka problem można zaproponować również zastosowanie klasteryzacji zbioru węzłów, dzięki czemu obszar zostanie podzielony ma mniej części. Przedstawione analizy stanowią bazę do dalszych badań mających na celu m.in.: wprowadzenie dodatkowych kryteriów mających na celu zmniejszenie liczby węzłów, skrócenie czasu działania algorytmów: optymalizacji drogi oraz dyskretyzacji obszaru, usprawnienia procedur wykrywania obszarów zabronionych. Ponadto stanowią one punkt wyjścia do badań nad innymi algorytmami mrówkowymi. Bibliografia [1] de Berg M., van Kreveld M., Overmars M., Schwarzkopf O. Geometria obliczeniowa algorytmy i zastosowania. Wydawnictwa Naukowo-Techniczne, Warszawa 2007 [2] Deneubourg, J.-L., Aron, S., Goss, S., & Pasteels, J.-M. The self-organizing exploratory pattern of the Argentine ant. Journal of Insect Behavior, 3, , 1990 [3] Dorigo, M., Manizzzo, V., and Colomi, A. Ant system optimization by a colony of cooperating agents. IEEE Transaction on System, Man and Cybernetics- Part B: Cybernetics, Vol. 26, No. 1, pp (1991) [4] Dorigo M., Stutzle T. Ant Colony Optimization. MIT Press, 2004 [5] Hart, P. E.; Nilsson, N. J.; Raphael, B. (1972). "Correction to "A Formal Basis for the Heuristic Determination of Minimum Cost Paths"". SIGART Newsletter 37: [6] Mąka M. Rekurencyjny algorytm dyskretyzacji mapy elektronicznej z wykorzystaniem metody drzewa ćwiartek. XV Jubileuszowa Międzynarodowa Konferencja Naukowa Komputerowe Systemy Wspomagania Nauki, Przemysłu i Transportu TransComp 2011 (artykuł w druku) [7] Śmierzchalski, R., Michalewicz, Z. Modeling of ship trajectory in collision situations by an evolutionary algorithm. IEEE Transactions on Evolutionary Computation, Vol. 4, pp (2000)

125 Model obliczeniowego szacowania czasu wykonania programu Agnieszka Kamińska Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: Program execution time is one of the criteria taken into account during assessment of software quality. It is sometimes very difficult to precisely measure this time and carrying out necessary measurements requires running the program. However, there is very often no need to know this time precisely; it would be sufficient to estimate it with some error known in advance. The paper presents the proposal and assumptions of a model for estimating the time of execution of a program, based only on its source code. The paper introduces a sample statistical model which can be used for this purpose. It was created based on empirical data collected for the matrix multiplication problem. The paper also presents an analysis of possibilities of applying the above-mentioned statistical model to some other programs. Keywords: data locality, cache memory, statistical models 1. Wprowadzenie Czas wykonania programu jest ważnym kryterium przy ocenie szeroko rozumianej jakości oprogramowania. Zmierzenie tego czasu bywa bardzo trudne i z definicji wymaga uruchomienia programu. Jednakże, w wielu sytuacjach nie ma potrzeby dokładnego określenia tego czasu; wystarczyłoby go oszacować z pewnym, z góry znanym błędem. Ponieważ czas wykonania programu jest zależny od bardzo wielu czynników natury tak sprzętowej, jak i programowej, w celu efektywnego przeprowadzenia przedmiotowego oszacowania należy skupić się na arbitralnie wybranej, wąskiej grupie czynników, które w istotny sposób wpływają na czas wykonania programu. Celem niniejszego artykułu jest przedstawienie propozycji modelu obliczeniowego szacowania czasu wykonania programu w oparciu o samą postać jego kodu źródłowego i wynikające z niej wykorzystanie zasobów sprzętowych maszyny. 2. Założenia modelu Ze względu na występowanie znaczącej dysproporcji pomiędzy szybkością procesorów a czasem dostępu do podsystemu pamięci [1], to właśnie pamięć - a zwłaszcza szybko dostępna pamięć podręczna (ang. cache) procesora jest jednym z tych elementów środowiska sprzętowego, które determinują czas wykonania programu. Istotny jest tu zarówno rozmiar dostępnej pamięci podręcznej, jak i sposób jej wykorzystania. W idealnej sytuacji dane, które znajdują się w pamięci podręcznej, cechują się pełną lokalnością. Oznacza to, że wszystkie dane potrzebne procesorowi podczas wykonywania programu są dostępne w pamięci podręcznej natychmiast po zgłoszeniu na nie zapotrzebowania, a nie dopiero wówczas pobierane z pamięci głównej do pamięci podręcznej. Rozmieszczenie danych w pamięci podręcznej podczas wykonywania programu jest uzależnione od postaci jego kodu źródłowego. Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

126 126 Agnieszka Kamińska Do oceny lokalności danych w oparciu o postać kodu źródłowego można wykorzystać metodę szacowania lokalności danych zaproponowaną przez Wolfe a [2]. Metoda Wolfe a ma zastosowanie do pętli programowych czyli tych fragmentów kodu programu, w których realizowane jest przetwarzanie znacznych ilości danych i które w związku z tym determinują czas wykonania programu. Metoda ta pozwala wyznaczyć tzw. zbiorczy odcisk danych (ang. data footprint), który określa minimalną pojemność pamięci podręcznej niezbędną, aby pomieścić wszystkie dane przetwarzane w rozpatrywanej pętli. Innymi czynnikami, które istotnie wpływają na czas wykonania programu a zarazem wiążą postać jego kodu źródłowego ze środowiskiem wykonania są: typ i liczba operacji wykonywanych w programie oraz łączny rozmiar wszystkich danych przetwarzanych w programie. Ostatni czynnik należy rozpatrywać uwzględniając lokalność przetwarzanych danych. Formalizując powyższe rozważania, można zapisać, że czas wykonania programu Y (mierzony liczbą cykli procesora) jest zależny od: stosunku łącznego rozmiaru danych przetwarzanych w programie do zbiorczego odcisku danych wyliczonego zgodnie z metodą Wolfe a (X1), typu i liczby wykonywanych operacji arytmetycznych (X2), tzn.: Y = f(x1, X2) (1) Ze względu na to, że wykonanie różnego rodzaju operacji arytmetycznych pociąga za sobą różne zapotrzebowanie na czas procesora, wprowadzono następujące wagi dla operacji arytmetycznych, celem rozróżnienia ich typów: Dodawanie = 1 Odejmowanie = 1 Mnożenie = 2 Przypisanie, występujące jako samodzielna, pojedyncza instrukcja, otrzymało wagę 1. Przyjęte wagi opierają się na publikacji [3]. 3. Konstrukcja modelu w oparciu o dane empiryczne Wzór (1), charakteryzujący się bardzo dużą ogólnością, został uszczegółowiony w oparciu o dane empiryczne zebrane dla programu realizującego mnożenie macierzy z zastosowaniem blokowania (patrz Rysunek 1). float D[N][N], E[N][N], F[N][N]; for(it=0; it<n; it=it+block_size){ for(jt=0; jt<n; jt=jt+block_size){ for(kt=0; kt<n; kt=kt+block_size){ for(i=it; i<min(it+block_size,n); i++){ for(j=jt; j<min(jt+block_size,n); j++){ for(k=kt; k<min(kt+block_size,n); k++){ D[i][j] = D[i][j] + E[i][k] * F[k][j]; } //endfor k } //endfor j } //endfor i } //enfor kt } //endfor jt } //enfor it Rysunek 1. Mnożenie macierzy kod źródłowy

127 Model obliczeniowego szacowania czasu wykonania programu 127 Dla każdego rozmiaru bloku BLOCK_SIZE i dla każdego analizowanego rozmiaru macierzy, N (N = 100, 200, 300, 400, 500, 600), przeprowadzono po 5 niezależnych pomiarów czasu wykonania programu z blokowaniem, w środowisku testowym o parametrach przedstawionych w Tabeli 1. W ramach każdego z przeprowadzonych pomiarów, kod z blokowaniem był wykonywany p razy, przy czym wartość p była dobierana empirycznie tak, by łączny czas wykonania p powtórzeń wynosił około 1,5 do 2 minut (od p=8 000 dla N=100 do p=70 dla N=600). Dzięki temu podejściu, wartości uzyskane z pomiarów można uznać za prawdziwe wartości mierzonych wielkości. Tabela 1. Charakterystyka środowiska testowego Procesor Intel Core 2 Quad Q6600 Liczba rdzeni / wątków 4 / 4 Pamięć podręczna L1 Data 4 x 32 KB, 8-way set associative, 64-byte line size System operacyjny Linux Ubuntu Jaunty Jackalope Kompilator gcc (Ubuntu ubuntu4) Optymalizacja kompilacji Wyłączona (kompilacja z opcją O0) Otrzymane wyniki zostały uśrednione - obliczono średnią dla każdego rozmiaru macierzy i rozmiaru bloku, z 5 przeprowadzonych pomiarów. Dodatkowo, dokonano oszacowania odcisku danych, zgodnie z metodą Wolfe a. Z uwagi na brak ogólnie dostępnego oprogramowania do szacowania lokalności danych według metody Wolfe a, do wyznaczenia szacunkowego odcisku danych wykorzystano autorski moduł szacujący lokalność danych według metody Wolfe a [4]. Podsumowanie wyników pomiarów (średnia z 5 niezależnych pomiarów) przedstawia Tabela 2. Tabela 2 Wyniki pomiarów dla mnożenia macierzy Wymiar macierzy [1] BLOCK_ SIZE [2] Czas zmierzony [3] Odcisk danych [B] [4] Rozmiar danych [5] X1=[5]/[4] [6] , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,28402 X2 [7]

128 128 Agnieszka Kamińska Wymiar macierzy [1] BLOCK_ SIZE [2] Czas zmierzony [3] Odcisk danych [B] [4] Rozmiar danych [5] X1=[5]/[4] [6] , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,13609 X2 [7] Dla danych przedstawionych w Tabeli 2 przeprowadzono analizę regresji metodą najmniejszych kwadratów, przyjmując następującą postać funkcji aproksymującej: Y = a * X1 p1 * X2 p2 (2) Po uwzględnieniu danych z pomiarów, zebranych w Tabeli 2, model jest postaci (3): Y = 0, * X1 0, * X2 0, (3) Dla postaci zlinearyzowanej tego modelu uzyskano: r 2 = 0,998705, S e y = 0, ,co świadczy o bardzo dobrym dopasowaniu modelu do danych empirycznych. 4. Weryfikacja modelu Model (3) został zweryfikowany dla macierzy kontrolnej o rozmiarze N=( )/2 = 350, która nie była wykorzystana do wyznaczenia wartości parametrów modelu. Ponadto, model ten został sprawdzony pod kątem możliwości wykorzystania go do szacowania czasu wykonania programów innych niż mnożenie macierzy, tj.: Jacobi [5] (patrz Rysunek 2), Seidel [5] (patrz Rysunek 3), FT auxfnct [6] (patrz Rysunek 4), LU-HP I2normC [6] (patrz Rysunek 5), UA diffuse 3 [6] (patrz Rysunek 6), UA precond 4 [6] (patrz Rysunek 7), UA setup 16 [6] (patrz Rysunek 8), UA_precond_1 [6] (patrz Rysunek 9).

129 Model obliczeniowego szacowania czasu wykonania programu 129 float a[matrix_size][matrix_size]; for (tt=1; tt<matrix_size; tt=tt+block_size){ for (it=1; it<matrix_size-1; it=it+block_size){ for (t=tt; t<min(tt+block_size,matrix_size); t++){ for (i=it; i<min(it+block_size,matrix_size-1); i++){ a[t][i] = 0.33*(a[t-1][i] + a[t-1][i-1] + a[t-1][i+1]); } //endfor i } //endfor t } //endfor it } //endfor tt Rysunek 2. Jacobi kod źródłowy float a[matrix_size][matrix_size]; for (it=1; it<=matrix_size-2;it=it+block_size){ for (jt=1;jt<=matrix_size-2;jt=jt+block_size){ for (i=it; i<min(it+block_size,matrix_size-1); i++){ for (j=jt; j<min(jt+block_size,matrix_size-1); j++){ a[i][j] = (a[i-1][j-1] + a[i-1][j] + a[i-1][j+1] + a[i][j-1] + a[i][j] + a[i][j+1] + a[i+1][j-1] + a[i+1][j] + a[i+1][j+1])*0.11; } //endfor j }// endfor i } //endfor jt } //endfor it Rysunek 3. Seidel kod źródłowy float x[n1][n2][n3], y[n1][n2][n3], twiddle[n1][n2][n3]; for(i=0;i<n1;i++) { for(jt=0;jt<n2;jt=jt+block_size){ for(kt=0;kt<n3;kt=kt+block_size){ for(j=jt;j<min(jt+block_size,n2);j++) { for(k=kt;k<min(kt+block_size,n3);k++) { y[i][j][k] = y[i][j][k] * twiddle[i][j][k]; x[i][j][k]= y[i][j][k]; } //endfor k } //endfor j } // endfor kt } //endfor jt } //endfor i Rysunek 4. FT auxfnct kod źródłowy

130 130 Agnieszka Kamińska float sum[5], v[n1][n2][n3][5]; for(i=0;i<n1;i++) { for(jt=0;jt<n2;jt=jt+block_size) { for(kt=0;kt<n3;kt=kt+block_size){ for(j=jt;j<min(jt+block_size,n2);j++) { for(k=kt;k<min(kt+block_size,n3);k++) { for(m=0;m<5;m++) { sum[m] = sum[m] + v[i][j][k][m] * v[i][j][k][m]; } //endfor m } //endfor k } //endfor j } //endfor kt }//endfor jt } //endfor i Rysunek 5. LU-HP I2normC kod źródłowy float tm1[n1][n2][n3],wdtdr[n1][n4],u[n4][n2][n3]; for(i=0;i<n1;i++) { for(k=0;k<n4;k++) { for(jt=0;jt<n2;jt=jt+block_size) { for(izt=0;izt<n3;izt=izt+block_size) { for(j=jt;j<min(jt+block_size,n2);j++) { for(iz=izt;iz<min(izt+block_size,n3);iz++) { tm1[i][j][iz] = tm1[i][j][iz]+wdtdr[i][k]*u[k][j][iz]; }//endfor iz } //endfor j }//endfor izt } //endfor jt } //endfor k } //endfor i Rysunek 6. UA diffuse 3 kod źródłowy float tcpre[n3][n1], qbnew[1][n2][n3], tmp[n2][n1]; for(colt=0;colt<n1;colt=colt+block_size) { for(col=colt;col<min(colt+block_size,n1);col++) { tcpre[1][col] = tmp[1][col]; for(it=0;it<n2;it=it+block_size) { for(jt=1;jt<n3;jt=jt+block_size){ for(i=it;i<min(it+block_size,n2);i++) { for(j=jt;j<min(jt+block_size,n3);j++) { tcpre[j][col]=tcpre[j][col]+qbnew[1][i][j-1]*tmp[i][col]; } //endfor j } //endfor i } //endfor jt } //endfor it } //endfor col } //endfor colt Rysunek 7. UA precond 4 kod źródłowy

131 Model obliczeniowego szacowania czasu wykonania programu 131 float wdtdr[n1][n2], wxm1[n3], dxm1[n1][n3]; for(it=0;it<n1;it=it+block_size) { for(jt=0;jt<n2;jt=jt+block_size) { for(ipt=0;ipt<n3;ipt=ipt+block_size) { for(i=it;i<min(it+block_size,n1);i++) { for(j=jt;j<min(jt+block_size,n2);j++) { for(ip=ipt;ip<min(ipt+block_size,n3);ip++) { wdtdr[i][j]=wdtdr[i][j]+wxm1[ip]*dxm1[i][ip]*dxm1[j][ip]; } //endfor ip } //endfor j } //endfor i } //endfor ipt } //endfor jt } //endfor it Rysunek 8. UA setup 16 kod źródłowy Kod źródłowy [1] Rysunek 9. UA_precond_1 kod źródłowy Wyniki przeprowadzonej weryfikacji przedstawiono w Tabeli 3. mnożenie macierzy BLO CK_ SIZE [2] Czas zmierzony [3] Tabela 3. Wyniki weryfikacji modelu Odcisk danych [B] [4] , Rozmiar danych w programie [5] X1=[5]/[4] [6] 478,5156 X2 [7] Y [8] Błąd =([8]- [3])/[3]* 100% [9] ,16 3, , , ,76 3, , , ,66 2, , , ,22 2, , , ,44 1, , , ,22 1, , , ,34 1,35 Jacobi , UA_pr econd_ float dxtm1_2[n1][n2], dxtm1[n1][n2]; for(it=0; it<n1; it=it+block_size){ for(jt=0; jt<n2; jt=jt+block_size){ for(i=it; i<min(it+block_size,n1); i++) { for(j=jt; j<min(jt+block_size,n2); j++) { dxtm1_2[i][j] = dxtm1[i][j] * 2; } //endfor j } //endfor i } //endfor jt } //endfor it 3906, ,43 64, , , ,42 64, , , ,08 62, , , ,86 58, , , ,96 58, , , ,08 57, , , ,38 55, , , ,58 56,1948

132 132 Agnieszka Kamińska Kod źródłowy [1] BLO CK_ SIZE [2] Czas zmierzony [3] Odcisk danych [B] [4] Rozmiar danych w programie [5] X1=[5]/[4] [6] X2 [7] Y [8] Błąd =([8]- [3])/[3]* 100% [9] , , ,43 54,9059 FT auxfnct LU-HP I2norm C UA diffuse 3 UA precond 4 UA setup , , ,40 54, , , ,73 53, , , ,05 53, , , ,66 53, , , ,63 51, , , ,16 52, , , ,70 49, , , ,26-14, , , ,44-13, , , ,73-12, , , ,63-86, , , ,93-86, , , ,02-86, , , ,57 5, , , ,17 8, , , ,76 7, , , ,48-95, , , ,52-95, , , , , , , , ,43 Seidel , , ,61-93, , , ,46-93, , , ,49-93, , , ,74-93, , , ,16-94, , , ,21-94,0259 W przypadku próbki kontrolnej (mnożenie macierzy), model (3) pozwala oszacować czas wykonania programu z bardzo małym błędem (poniżej 4%). Bardzo niski błąd oszacowania uzyskano także dla następujących kodów źródłowych, innych niż mnożenie macierzy: UA diffuse 3 (patrz Rysunek 6) poniżej 9% FT auxfnct (patrz Rysunek 4) poniżej 15% Tak małe błędy oszacowania dla wyżej wymienionych kodów źródłowych są najprawdopodobniej konsekwencją podobieństw pomiędzy strukturą tych kodów źródłowych a strukturą kodu realizującego mnożenie macierzy. Bardziej szczegółową analizę tych podobieństw przedstawia Tabela 4.

133 Model obliczeniowego szacowania czasu wykonania programu 133 Tabela 4. Podobieństwa między wybranymi kodami źródłowymi a kodem mnożenia macierzy Kod UA diffuse 3 FT auxfnct Podobieństwa Identyczna struktura pętli zagnieżdżonej: wszelkie operacje są wykonywane w najbardziej zagłębionej pętli. Wykonywane są te same operacje arytmetyczne (1 dodawanie, 1 mnożenie), co w przypadku mnożenia macierzy. Identyczna liczba operacji dodawania i mnożenia w każdej iteracji. Brak zależności między iteracjami. Identyczna struktura pętli zagnieżdżonej: wszelkie operacje są wykonywane w najbardziej zagłębionej pętli. Wykonywane operacje (1 mnożenie, 1 przypisanie występujące jako samodzielna instrukcja) są równoważne operacjom wykonywanym w ramach mnożenia macierzy. Identyczna liczba operacji mnożenia i operacji równoważnych czasowo z dodawaniem w każdej iteracji. Brak zależności między iteracjami. Dla pozostałych badanych kodów źródłowych (patrz Tabela 5) błąd oszacowania kształtował się na poziomie około 50-90%. Ten dość spory błąd oszacowania w przypadku przedmiotowych kodów źródłowych wydaje się być spowodowany różnicami pomiędzy strukturą kodu źródłowego realizującego mnożenie macierzy, który był wykorzystany do oszacowania wartości parametrów funkcji aproksymującej (2), a rozpatrywanych kodów. Przypuszczalne przyczyny występowania wyższych wartości błędów oszacowania, wynikające z różnic między strukturą kodów, przedstawia Tabela 5. Tabela 5. Różnice między wybranymi kodami źródłowymi a kodem mnożenia macierzy Kod Różnice Średni błąd oszacowania [%] Jacobi Występują zależności pomiędzy iteracjami pętli. 61,1910 Liczba operacji dodawania większa niż liczba operacji mnożenia. UA_precond_1 Wykonywana jest tylko operacja mnożenia. Mnożenie jest przez skalar (2), który może być przechowywany w szybko dostępnym rejestrze. 53,6067 LU-HP I2normC UA precond 4 UA setup 16 Seidel Macierze na których są wykonywane operacje w pętli są niejednakowych rozmiarów. Duża dysproporcja między wymiarami wyżej wymienionych macierzy (1 vs. 4). Inna struktura pętli zagnieżdżonej: operacje są wykonywane zarówno w najbardziej zagłębionej pętli, jak i w pętlach o niższym stopniu zagłębienia. Występują zależności pomiędzy iteracjami pętli. Macierze na których są wykonywane operacje w pętli są niejednakowych rozmiarów. Liczba operacji mnożenia większa niż liczba operacji dodawania. Macierze na których są wykonywane operacje w pętli są niejednakowych rozmiarów. Liczba operacji dodawania większa niż liczba operacji mnożenia. Występują zależności pomiędzy iteracjami pętli. -86, , , ,9183

134 134 Agnieszka Kamińska W świetle różnic pomiędzy strukturą kodu źródłowego realizującego mnożenie macierzy, a kodów źródłowych zestawionych w Tabeli 5, fakt występowania błędu oszacowania na poziomie około 50-90% dla kodów źródłowych zestawionych w Tabeli 5 należy tłumaczyć ich przynależnością do innych, niż w przypadku mnożenia macierzy, klas postaci kodu źródłowego. W świetle wyników i analiz przedstawionych w tabelach 3 5, zmienne i postać funkcji aproksymującej przyjęte w modelu (2) wydają się obiecującym punktem wyjścia do dalszych prac. 5. Podsumowanie Uzyskane wyniki wskazują na możliwość i zasadność obliczeniowego szacowania czasu wykonania programu w oparciu o modele statystyczne. W niniejszym artykule przedstawiono model statystyczny utworzony w oparciu o dane empiryczne zebrane dla bardzo prostego przykładu mnożenia macierzy kwadratowych. Weryfikacja tego modelu pod kątem możliwości wykorzystania go do szacowania czasu wykonania programów innych niż mnożenie macierzy wypadła pozytywnie. W przypadku kodów źródłowych, których struktura wykazuje podobieństwa do struktury kodu realizującego mnożenie macierzy, średni błąd oszacowania czasu wykonania programu nie przekroczył 15%. W przypadku występowania różnic między strukturą badanych kodów źródłowych a strukturą kodu źródłowego realizującego mnożenie macierzy, średni błąd oszacowania czasu wykonania programu kształtował się na poziomie około 50-90%. Takie wyniki należy tłumaczyć przynależnością przedmiotowych kodów źródłowych do innych, niż w przypadku mnożenia macierzy, klas postaci kodu źródłowego. W przyszłych pracach planowane jest wyznaczenie pewnych charakterystycznych klas postaci kodu źródłowego, a następnie opracowanie dla nich bardziej uogólnionych modeli statystycznych do obliczeniowego szacowania czasu wykonania programu. Bibliografia [1] Stallings W. Organizacja i architektura systemu komputerowego. Projektowanie systemu a jego wydajność. Wydawnictwa Naukowo-Techniczne, 2004 [2] Wolfe M. High Performance Compilers for Parallel Computing. Addison Wesley, 1996 [3] Fog A. Instruction tables. Lists of instruction latencies, throughputs and microoperation breakdowns for Intel, AMD and VIA CPUs. Last updated [online] [dostęp: 2011] [4] Kraska K., Kamińska A. Koncepcja metody zwiększania lokalności danych na poziomie pamięci podręcznej oparta na transformacjach pętli programowych. Metody Informatyki Stosowanej, Nr 2/2010, Tom 23, s [5] Bondhugula U. Effective Automatic Parallelization and Locality Optimization Using the Polyhedral Model (dissertation) The Ohio State University, 2008 [online] [dostęp: 2011] [6] NPB NAS Parallel Benchmarks [online] https://www.nas.nasa.gov/cgi-bin/software/start [dostęp: 2011]

135 Stabilność i zbieżność modelu gradientowego w interaktywnej optymalizacji wizualnej w trybie bezpośrednim Krzysztof Makles Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: The article describes the stability and convergence criterion of linear gradient internal model used in on-line interactive optimization. This type of optimization, in fact of increasing computing power of modern computers, allows to solve incompletely determined optimization problems. Stability and convergence of the linear gradient model was discused for three cases: when searching point moving from the forbidden into the allowed area, when searching point moving in the allowed area, and whensearching point moving from the allowed into the forbidden area. Keywords: optimization, interactive optimization, on-line mode, regression analysis, gradient model, model stability, searching convergence 1. Wprowadzenie Metody optymalizacji ewoluują wraz z pojawianiem się nowych narzędzi komputerowych mogących pomóc w ich implementacji lub dostosowaniu ich do nowoczesnych środowisk obliczeniowych. Środowiska te pozwalają na integrację obliczeń z ich wizualizacją, co jest bardzo pomocne przy rozwiązywaniu zadań źle sparametryzowanych. Współczesne komputerowe środowiska obliczeniowe pozwalają na wprowadzanie w życie zaawansowanych numerycznych algorytmów optymalizacji [6]. Algorytmy te można podzielić na kilka grup. Grupę podstawową stanowią algorytmy adaptacyjne i predykcyjne, stosowane również w zadaniach sterowania i zarządzania procesami dynamicznymi [7, 8, 9, 10, 20] (np. uczenie się przy użyciu aproksymacji stochastycznej, dostrajanie parametru kroku dla procedury Robbinsa-Monroe [metoda deltadelta], uczenie się przez wzmacnianie w oparciu o Proces Decyzyjny Markowa, i inne). W przypadku zadań decyzyjnych, które charakteryzują się istotnym brakiem wiedzy o modelowanych procesach, stosować można modelowanie matematyczne tzw. miękkie [11]. Intensywnie rozwijaną grupą są algorytmy sztucznej inteligencji [12, 13, 20] (algorytmy ewolucyjne, logika rozmyta, sieci neuronowe, uczenie maszynowe), w tym korzystające z wiedzy zawartej w bazach danych [14], czy też systemów ekspertowych [15] (systemy te opierają się na wnioskowaniu elementarnym dokładnym, rozwiniętym dokładnym, elementarnym przybliżonym, rozwiniętym przybliżonym, wymagają utrzymania dynamicznej bazy danych). W algorytmach tego typu stosowane jest wnioskowanie rozmyte [16, 17, 18] (podejmowanie decyzji w otoczeniu rozmytym podejście Bellmana i Zadeha, czy też Kacprzyka i Staniewskiego z rozszerzeniami ze względu na typ czasu zakończenia, typ decyzji rozmytej) i niepewne [7]. Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

136 136 Krzysztof Makles Dodatkową grupę metod stanowią te, które pracując w trybie bezpośrednim, pozwalają na rozwiązywanie problemów niedookreślonych w poczatkowej fazie formułowania problemu i korektę procesu komputerowego rozwiązywania zadania optymalizacyjnego. We wcześniejszych pracach [2, 3] pokazano metodologię oraz przykłady dynamicznych modeli interaktywnych do rozwiązywania zadań identyfikacji systemów w trybie bezpośrednim. W pracy [4] pokazano koncepcję interaktywnej optymalizacji wizualnej w trybie bezpośrednim (on-line). Koncepcja ta opiera się na zastosowaniu analizy wrażliwości poprzez określenie gradientowych równań różniczkowych [1], pozwalających na określenie punktu poszukiwań rozwiązania problemu od wybranego punktu początkowego do punktu optymalnego. W artykule pokazano analizę reaktywności modeli standardowych rozwiązywania zadań optymalizacji, oraz modeli opartych o gradientowe równania różniczkowe. Wyniki tej analizy wskazują na sensowność proponowanej koncepcji. Proponowana koncepcja stanowi rozwinięcie i uzupełnienie wspomnianych wcześniej metod i algorytmów. W pracy [5] omówiono zagadnienie modeli zewnętrznych (opis matematyczny zadania) oraz modeli wewnętrznych (model gradientowy rozwiązywanego zadania), proponowanych do stosowania w optymalizacji interaktywnej. Pokazany został przykład budowy modelu wewnętrznego, oraz wskazany został ogólny schemat poszukiwania rozwiązania optymalnego dla interaktywnej optymalizacji w trybie bezpośrednim. W niniejszym artykule opisano warunki stabilności oraz zbieżności liniowego modelu gradientowego. Przedyskutowano stabilność oraz zbieżność liniowego modelu gradientowego dla trzech przypadków: gdy punkt poszukiwania rozwiązania optymalnego przemieszcza się z obszaru rozwiązań dopuszczalnych do obszaru rozwiązań niedopuszczalnych, gdy punkt poszukiwania rozwiązania znajduje się wewnątrz obszaru rozwiązań dopuszczalnych, oraz gdy punkt poszukiwania rozwiązania optymalnego przemieszcza się z obszaru rozwiązań dopuszczalnych do obszaru rozwiązań niedopuszczalnych. 2. Optymalizacja interaktywna Współczesne środowiska komputerowe pozwalają na zastosowanie komputera nie tylko jako środka obliczeniowego, ale także do sformułowania zadania optymalizacyjnego w sensie matematycznym. Środkiem pozwalającym osiągnąć ten cel jest wieloetapowe, interaktywne podejście do rozwiązania zadania optymalizacyjnego. W pierwszym etapie, problem optymalizacyjny zostaje określony w przybliżony sposób z uwzględnieniem niepewności dotyczących niektórych parametrów uwzględnionych w problemie. Następnie, w trybie interaktywnym, przeprowadzone zostają badania w środowisku komputerowym, mające na celu określenie struktury oraz numerycznych wartości nieznanych, nieprecyzyjnych parametrów, niedookreślonego we wcześniejszym etapie problemu optymalizacyjnego. Opcjonalnie, w etapie trzecim, zadanie programowania matematycznego, po całkowitym określeniu struktury oraz wartości parametrów w etapie poprzednim, może zostać rozwiązane w środowisku komputerowym, niekoniecznie w trybie interaktywnym. W związku z powyższym, interaktywną optymalizację można określić jako wieloetapowy proces oparty na interakcji pomiędzy użytkownikiem a modelem w środowisku komputerowym, oferujący nowe możliwości, takie jak: Połączenie metod matematycznego opisu problemu optymalizacyjnego z jego rozwiązaniem. Może zostać ono zrealizowane poprzez wprowadzanie szeregu korekt do modelu komputerowego w trakcie procesu rozwiązywania problemu optymalizacyjnego, oraz poprzez analizę odpowiedzi modelu komputerowego bez widocznych opóźnień (w trybie on-line).

137 Stabilność oraz zbieżność modelu gradientowego w interaktywnej optymalizacji wizualnej 137 Możliwość uzyskania zarówno rozwiązania numerycznego problemu optymalizacyjnego, jak i rozwiązania graficznego. Jednocześnie wskazuje to na możliwość uzupełniania rozwiązań numerycznych metodami graficznymi (obecnie stosowanymi, lub nowymi). Metody graficzne pozwalają na wstępne określenie struktury problemu i pozwalają wstępnie określić metodę rozwiązania problemu optymalizacyjnego. Ponadto, metody graficzne, z uwzględnieniem ich niedokładności, stosować można do wstępnej analizy problemu, np. do określenia obszaru poszukiwać bardziej dokładnego rozwiązania numerycznego. Dodatkowa informacja graficzna dostarcza użytkownikowi cennych informacji, pozwalających na zgłębienie rozwiązywanego problemu. Interaktywne modele optymalizacyjne możemy określić jako modele komputerowe, które: służą do rozwiązywania niekompletnie określonych zadań programowania matematycznego; działają zgodnie z dynamicznie realizowanymi procedurami optymalizacji wielokrokowej. Do grupy zadań programowania matematycznego, które rozwiązać można za pomocą interaktywnych modeli optymalizacyjnych, zaliczyć można: optymalizację wielokryterialną; optymalizację funkcjonałów; analizę wrażliwości w zadaniach programowania matematycznego; programowanie nieliniowe; programowanie całkowitoliczbowe oraz inne zadania optymalizacyjne. Specyficzną cechą problemów zdefiniowanych niekompletnie jest to, że numeryczne wartości parametrów problemu nie mogą zostać przypisane a priori (przed badaniami w środowisku komputerowym). W trybie interaktywnym przypisanie pominiętych danych początkowych jest dokonywane w trakcie komputerowego rozwiązywania problemu. Natura procesu określania pominiętych danych początkowych jest dynamiczna i stanowi procedurę optymalizacji wielokrokowej. W ramach tej procedury rozwiązanych zostaje szereg podstawowych problemów, i wraz z kolejnymi krokami zaktualizowane zostają wartości kolejnych, niedookreślonych wcześniej, parametrów. Użytkownik interaktywnego modelu optymalizacyjnego pełni następujące funkcje: określa ilość kroków optymalizacyjnych l=0, 1, 2,..., L oraz podstawową parametryzację problemu na każdym kroku; wykorzystuje do zmian parametrów modelu wstępnego informacje dostarczone przez interaktywny model optymalizacyjny pomiędzy kolejnymi krokami. Interaktywne modele optymalizacyjne mogą być wzbogacone o narzędzia do wizualizacji cech charakterystycznych poszukiwania rozwiązania (fazogramy, kryteriogramy). W chwili obecnej tego typu wsparcie opracowano dla zadań dwuwymiarowych, jednakże prace w tym kierunku nadal trwają. Pojęcie interaktywna optymalizacja wizualna odnosi się do środowiska, w którym odbywa się proces rozwiązania zadania optymalizacyjnego, oraz do możliwości graficznego wsparcia tego procesu. 3. Modele zewnętrzne i wewnętrzne Należy rozróżnić dwa typy modeli, które można wskazać w zadaniach optymalizacji interaktywnej: modele zewnętrzne oraz modele wewnętrzne.

138 138 Krzysztof Makles Model zewnętrzny jest opisem zadania optymalizacji w postaci formuł matematycznych. Model taki jest rdzeniem, wokół którego konstruujemy opis szerokiej klasy zadań optymalizacji. Najczęściej zadanie optymalizacji określonej klasy opisane jest na podstawie modelu zewnętrznego, który uzupełniony jest o pewne warunki dodatkowe. Warunki te są uzupełnieniem funkcji celu oraz ograniczeń, i pozwalają uwypuklić pewne cechy problemu, których nie można bezpośrednio zawrzeć w funkcji celu oraz ograniczeniach. Połączenie tych trzech elementów określa zewnętrzny model użytkownika dla niekompletnie określonego zadania optymalizacyjnego. Zadanie programowania liniowego dla wielu kryteriów, można określić jako minimalizację funkcji celu: n = i= 1 przy liniowych ograniczeniach: H j Fk aik xi, k = 1,2, K, L = n i= 1 ij i j (3.1) b x b0 0, j = 1,2, K, m (3.2) i nieujemnych zmiennych: x i 0, i = 1,2, K, n (3.3) Rozwiązanie dopuszczalne jest to wektor zmiennych optymalizowanych X = [ x, x, 1 2 K, x n ], dla których spełnione są wszystkie ograniczenia. Obszar dopuszczalny jest zbiorem wszystkich rozwiązań dopuszczalnych. Rozwiązanie optymalne jest wektorem X = x x,, x, dla którego funkcja celu (3.1) przybiera wartość mniejszą, niż dla opt [ ] 1, 2 K opt opt n opt jakiegokolwiek innego rozwiązania dopuszczalnego. W przypadku rozpatrywania rozwiązania graficznego zadania programowania liniowego, rozwiązanie optymalne nazywane jest punktem optymalnym. W sformułowaniu (3.1) (3.3) różne rozwiązania optymalne odpowiadają różnym funkcjom celu F k. Jeżeli zadanie programowania matematycznego posiada więcej niż jedno rozwiązanie optymalne, oznacza to, że posiada alternatywne rozwiązania optymalne. Jeżeli problem został sformułowany w sposób poprawny, nie występuje sytuacja nieskończonej liczby optimum, kiedy rozwiązaniu optymalnemu odpowiada nieskończenie wiele funkcji celu. Jeżeli jednak sytuacja taka wystąpi, oznacza to, że pominięto jedno lub więcej ograniczeń (3.2). Obszar dopuszczalny w zadaniach programowania liniowego zazwyczaj zawiera skończoną liczbę punktów (rozwiązań). Znalezienie rozwiązania optymalnego sprowadza się do sprawdzenia skończonej liczby wierzchołków obszaru dopuszczalnego. Model wewnętrzny należy rozumieć jako komputerowy model do rozwiązywania danej klasy zadań optymalizacyjnych, określonych poprzez model zewnętrzny. Komputerowe rozwiązanie tego samego zadania optymalizacyjnego może być wykonane na podstawie różnych modeli wewnętrznych. Dyskusję dotyczącą przejścia od modelu zewnętrznego do modelu wewnętrznego przeprowadzono w pracy [5]. Aby rozwiązać w trybie interaktywnym zadania optymalizacyjne, określono podstawowy model wewnętrzny, w postaci układu równań gradientowych: dx = ( R gradfk + Q gradκ )(3.4) dt gdzie: X = x, x, 2, to wektor optymalizowanych zmiennych; [ 1 K x n ] grad F to gradient aktywnej funkcji celu F F ( x, x, 2, x ) k k =, k = 1,2, K, L ; k 1 K n

139 Stabilność oraz zbieżność modelu gradientowego w interaktywnej optymalizacji wizualnej 139 grad Κ to gradient funkcji kary uwzględniającej ograniczenia H H x, x, 2 K, x, j = 1,2, K, m, x 0, i = 1,2, K, n ; ( ) 0 j = j 1 n R, Q są współczynnikami przyspieszenia (akceleratorami) odpowiednio dla funkcji celu oraz funkcji kary, spełniającymi zależność R > 0, Q > 0, R << Q. W przypadku ogólnym, układ równań (3.4) posiada rozwiązanie dla warunków początkowych X 0 = [( x1 ),( x2 ), K, ( x ) ] 0 0 n. W trakcie rozwiązywania uwzględnione zostaną interwencje interaktywne, dotyczące parametrów funkcji celu i (lub) ograniczeń, oraz dodania 0 dodatkowych ograniczeń w postaci funkcji. Jako funkcję kary K rozumiemy funkcję określoną równaniem n m Κ = 2 µ i xi + λ j H j (3.5) i= 1 j= 1 gdzie: 0 dla xi 0 µ i = ; 1dla xi < 0 0 dla H j 0 λ j =. 1dla H j > 0 Parametryzacja modelu wewnętrznego (3.4) polega na określeniu wartości parametrów R i Q w taki sposób, aby dostosować model zgodnie z parametrami aktywnej funkcji celu oraz ograniczeń. Wiąże się to ze stabilnością modelu wewnętrznego, zbieżnością procesu poszukiwania rozwiązania, i w konsekwencji dwóch poprzednich czynników, z możliwością rozwiązania zadania optymalizacyjnego. 4. Stabilność oraz zbieżność poszukiwania rozwiązania dla liniowego modelu gradientowego Rozwiązanie układu równań (3.4) określa w sposób bezpośredni iteracyjną procedurę poruszania się punktu poszukiwania rozwiązania, począwszy od punktu X 0, aż do punktu optimum X opt. Każda z iteracji jest rozwiązaniem układu równań różniczkowych w jednym kroku całkowania. Aby osiągnąć rozwiązanie optymalne X opt w oparciu o układ równań (3.4), konieczne jest, aby model był stabilny. Kryterium stabilności określono w sposób następujący: podstawowy model gradientowy (3.4) jest stabilny, jeżeli zmiany koordynat punktu poszukiwań, w granicach dowolnej iteracji, nie przekraczają skończonej wartości 0 określonej z góry poprzez moduł gradientu. Spełnienie kryterium stabilności nie zapewnia jednak osiągnięcia rozwiązania optymalnego X opt. Rozwiązanie to zostanie osiągnięte przy zapewnieniu zbieżności procesu poszukiwania rozwiązania. Zbieżność określa możliwość przemieszczenia się punktu poszukiwania rozwiązania w sąsiedztwo punktu rozwiązania optymalnego X opt. Rozmiary tego sąsiedztwa są określone poprzez założoną dokładność procesu rozwiązywania zadania optymalizacyjnego. Kryterium zbieżności określono w sposób następujący: proces poszukiwań optymalnego rozwiązania równania (3.4) jest zbieżny, jeżeli model jest stabilny, oraz zmiany wartości funkcji celu następują monotonicznie (bez gwałtownych zmian). W przypadku rozwiązywania liniowego zadania optymalizacyjnego, dla liniowej funkcji celu i liniowych funkcji ograniczeń, rozwiązanie optymalne (jeżeli istnieje i jest pojedyncze) znajduje się w jednym z wierzchołków granicy obszaru rozwiązań dopuszczalnych. i

140 140 Krzysztof Makles W ogólnym przypadku, ścieżka poszukiwania rozwiązania zadania wiedzie najpierw poprzez granicę tego obszaru, a następnie wzdłuż granicy aż do wierzchołka będącego rozwiązaniem optymalnym. Uwzględniając funkcję kary (3.5) ruch wzdłuż granicy obszaru rozwiązań dopuszczalnych odbywa się w taki sposób, że punkt poszukiwań porusza się po obu stronach granicy (zamiennie w obszarze rozwiązań dopuszczalnych, oraz obszarze rozwiązań niedopuszczalnych (zabronionych). W związku z tym należy rozpatrzyć trzy przypadki analizy stabilności oraz zbieżności modelu gradientowego: rozpoczęcie procesu poszukiwań rozwiązania optymalnego w obszarze zabronionym oraz przemieszczenie się do obszaru dopuszczalnego; poszukiwanie rozwiązania w obszarze dopuszczalnym z przemieszczeniem się do obszaru zabronionego; ponowne przemieszczenie się z obszaru zabronionego do obszaru dopuszczalnego Stabilność i zbieżność modelu dla przypadku rozpoczęcia procesu poszukiwania rozwiązania w obszarze zabronionym Przykład niestabilności modelu gradientowego pokazano na rysunku 1. Przykład ten należy traktować jako poglądowy i ogólny, nie związany z rozwiązywaniem określonego zadania optymalizacji. Punkt A, będący punktem rozpoczęcia poszukiwania rozwiązania zadania, znajduje się w obszarze zabronionym. Parametry modelu (akcelerator funkcji kary Q oraz krok dyskretyzacji równań różniczkowych τ) zostały tak dobrane, że można zaobserwować skoki punktu poszukiwania rozwiązania optymalnego wzdłuż ścieżki A-B-C-D, która przebiega daleko od obszaru dopuszczalnego. Tak określony model nie pozwoli na określenie rozwiązania optymalnego zadania, ponieważ nie są spełnione kryteria dotyczące stabilności i zbieżności modelu gradientowego. Punkt poszukiwania rozwiązania może także przemieszczać się przez obszar dozwolony również dla modelu, który jest stabilny, w przypadku gdy ruch koordynat punktu poszukiwań jest niezmienny co do modułu amplitudy. W tym przypadku, pomimo stabilności modelu, rozwiązanie może zostać osiągnięte tylko po zmianie parametrów modelu. X 2 Obszar zabroniony D B Obszar dopuszczalny A C D Obszar zabroniony Rysunek 1. Przykład niestabilnego modelu gradientowego X 1

141 Stabilność oraz zbieżność modelu gradientowego w interaktywnej optymalizacji wizualnej 141 Efekt przebiegania przez obszar dozwolony jest efektem niepożądanym z punktu widzenia zbieżności poszukiwania rozwiązania optymalnego. Określić można dwa warunki, przy spełnieniu których następuje efekt przebiegania przez obszar dopuszczalny: w każdej iteracji poszukiwania rozwiązania sąsiadującej z iteracją i oraz i+1 można wskazać co najmniej jeden parametr modelu, który jest nieprawidłowy. Wskazuje to na to, że dany punkt poszukiwania rozwiązania znajduje się w obszarze zabronionym; wszystkie parametry, które są nieprawidłowe w trakcie przebiegu iteracji i są nadal nieprawidłowe w trakcie przebiegu iteracji i+1. Wskazuje to na przebiegnięcie punktu poszukiwania rozwiązania przez obszar dozwolony. Przebieganie punktu poszukiwania rozwiązania można zaobserwować za pomocą wykresu fazowego Φ ( t) oraz wykresu funkcji celu F ( t). Wykres fazowy Φ ( t) będzie przyjmował wartości mniejsze od 0, a wykres funkcji celu będzie wykazywał gwałtowne zmiany tej funkcji. Aby odzyskać zbieżność procesu poszukiwania rozwiązania, należy powrócić z iteracji i do wcześniejszej iteracji i-1, zmniejszyć iteracyjnie wartość parametru Q zgodnie ze wzorem Q = K Q, gdzie 0 K < 1 jest współczynnikiem redukcji parametru Q, Q < Q i kontynuować poszukiwania rozwiązania. Proces iteracyjnego dobierania parametru Q kontynuujemy aż do momentu spełnienia jednego z dwóch, wyżej wymienionych, warunków. Innym sposobem poprawienia zbieżności procesu poszukiwania rozwiązania jest ograniczenie ruchu koordynat punktu poszukiwania rozwiązania w obszarze zabronionym, poprzez kontrolę parametru, co pozwoli na ograniczenie wzrostu δ optymalizowanych zmiennych x, i=1, 2,..., n, podczas procesu całkowania układu równań różniczkowych i * (3.4). Wówczas przyrost zmiennych optymalizowanych δ i, po ich ograniczeniu, określić można wzorem: * δ = sign ( ) i δ i Procedurę kontroli parametru można przeprowadzić w trybie interaktywnym Zapewnienie stabilności w trakcie poszukiwania rozwiązania w obszarze dopuszczalnym Jeżeli punkt poszukiwania rozwiązania optymalnego znajduje się w obszarze dopuszczalnym, ograniczenia nałożone na funkcję celu są spełnione, a funkcja kary przyjmuje wartość 0. Punkt poszukiwania rozwiązania porusza się wówczas po ścieżce najszybszego spadku aż do momentu osiągnięcia granicy obszaru dopuszczalnego. Ruchy wzdłuż każdej z koordynat w pojedynczym kroku iteracji τ określić można wzorem Fk δi = R τ = Raikτ (4.1) xi Fk gdzie R akcelerator poszukiwań, - pochodna cząstkowa k-tej funkcji celu po i-tej xi zmiennej x, τ - krok iteracji. Aby zapewnić stabilność poszukiwania rozwiązania punkt poszukiwań powinien poruszać się wzdłuż koordynat ze wzrostem δ i, i = 1,2, K, n (4.2) i

142 142 Krzysztof Makles lub uwzględniając (4.1) Stąd R a ik τ. R. τ a ik Aby zagwarantować spełnienie warunku (4.2) wybieramy R ατ gdzie α = max a jest maksymalną wartością dla modułu współczynników funkcji celu. 1 i n Przyjmując, że ik α = max a = 1, (4.3) ik 1 i n określamy maksymalną dopuszczalną wartość akceleratora R jako R = (4.4). τ Wartość taka zapewni stabilność modelu oraz największą szybkość poruszania się punktu poszukiwania rozwiązania w obszarze dopuszczalnym. Aby spełnić warunek (4.3), aktywna w danej chwili funkcja celu (w modelu zewnętrznym) F k = n i= 1 w modelu wewnętrznym. Wówczas a ik x i jest zastępowana znormalizowaną funkcją celu a * ik aik = max a ik 1 i n (4.5). F * k = n i= 1 a * ik x i Spełnienie dwóch warunków: wybór akceleratora R zgodnie ze wzorem (4.4); zastąpienie współczynników aktywnej funkcji celu zgodnie ze wzorem (4.5); pozwala na zapewnienie stabilności modelu oraz maksymalnej (dla wybranych parametrów τ, ) prędkości poszukiwania rozwiązania. Parametryzacja modelu zgodnie z powyższymi zasadami może się odbyć zarówno w drodze doboru manualnego, jak i automatycznego. Aby zapewnić zbieżność procesu poszukiwania rozwiązania w obszarze dopuszczalnym, parametry τ, powinny mieć niewielkie wartości. Generalnie, parametry te dobierać należy w taki sposób, aby R Stabilność i zbieżność modelu dla przypadku przejścia procesu poszukiwania rozwiązania z obszaru dopuszczalnego do obszaru zabronionego W sytuacji, gdy punkt poszukiwania rozwiązania optymalnego przechodzi z obszaru dopuszczalnego do obszaru zabronionego, co najmniej jedno z ograniczeń nałożonych na funkcję celu przestaje być spełnione. Wówczas funkcja kary nie jest równa 0, a dla Q>>R, zgodnie z (3.4), punkt poszukiwania rozwiązania przemieszcza się w kierunku obszaru dopuszczalnego. Ważnym jest, że tylko jedno ograniczenie liniowe H jest niespełnione. Wówczas ruch koordynat dla każdej optymalizowanej zmiennej w pojedynczym kroku całkowania τ jest równy j

143 Stabilność oraz zbieżność modelu gradientowego w interaktywnej optymalizacji wizualnej 143 H =, i = 1,2, K, n, j = 1,2, K, m. (4.6) γ i Q = QH jbijτ xi Aby spełnić wymagania dotyczące stabilności modelu, punkt poszukiwania rozwiązania przemieszcza się o wielkość γ, i = 1,2, K, n, (4.7) czyli Jeżeli i Q H j b ij τ. H ; b 1, (4.8) j ij wówczas warunek (4.7) będzie spełniony (w połączeniu z zapewnieniem maksymalnej szybkości poszukiwania rozwiązania dla przyjętego parametru τ ), jeżeli 1 Q =. (4.9) τ Jednakże, aby spełnić warunek (4.8) parametry b ij, b 0 j w ograniczeniach typu liniowego powinny zostać zamienione na bij b * * 0 j bij = n, b0 j = n. (4.10) b b i= 1 ij Wykazać można, że parametryzacja przeprowadzona zgodnie z równaniami (4.9), (4.10) pozwoli na zapewnienie stabilności modelu wewnętrznego (3.4), (3.5) w przypadku, gdy kilka funkcji ograniczeń liniowych oraz jedno lub kilka ograniczeń typu nieujemnego, były niespełnione. W przypadku, gdy parametry funkcji będących ograniczeniami typu liniowego często się zmieniają, parametryzację modelu należy przeprowadzać w trybie automatycznym. Zbieżność procesu poszukiwania rozwiązania na omawianym etapie zapewniona zostanie poprzez wybranie dostatecznie małej wartości kroku całkowania τ. i= 1 ij 5. Przykład określania stabilności i zbieżności modelu liniowego Rozważny przykładowe zadanie, dotyczące optymalizacji modelu liniowego. W zadaniu tym szukamy optymalnego zatrudnienia kontrolerów I i II stopnia w pewnym zakładzie produkcyjnym. Funkcja celu została określona w sposób następujący: F = 40x1 + 36x2 = min W zadaniu przewidziano następujące ograniczenia: liczba inspektorów I stopnia: 0 x 1 8 ; liczba inspektorów II stopnia: 0 x 2 10 ; ilość produktów podlegających kontroli w ciągu dnia: 5x 1 + 3x2 45. Rozwiązaniem tak postawionego zadania są wartości x 1 =8 i x 2 =1,6. Wówczas funkcja celu F przyjmuje wartość F=377,6. Chcąc rozwiązać postawione zadanie stosując model gradientowy, musimy je przekształcić do postaci standardowej [5]:

144 144 Krzysztof Makles Dla [ ] x 1, x 2 F = 40x H H H x = x 1 = x 2 = 5x 0, x x 8 0, 10 0, 2 1 3x = min, , X = model gradientowy (3.4) przyjmie wówczas postać: dx1 = [ 40R + Q( µ 1x1 + λ1h 1 5λ3H 3 )], dt dx2 = [ 36 + Q( µ 2 x2 + λ2h 2 3λ3H 3 )]. dt Przyjęto następujące wartości parametrów równań: krok całkowania dla metody Eulera τ = 0, 01; parametr ograniczający ruch wzdłuż koordynat = 0, 01; akcelerator dla funkcji celu R = 1; akcelerator dla funkcji kary Q = 100, początkowy punkt poszukiwania rozwiązania ( x ) 10, ( ) 5 1 = 0 x. 2 = 0 Parametry τ,, (x 1 ) 0, (x 2 ) 0 zostały dobrane heurystycznie, zaś akceleratory R i Q zgodnie ze wzorem (4.4) i (4.9). Obserwując ścieżkę poszukiwania rozwiązania zadania zaobserwowano, że rozwiązanie nigdy nie zostanie osiągnięte, ponieważ model nie jest stabilny. Wynika to z faktu, ze parametry funkcji celu nie zostały znormalizowane zgodnie z (4.5) i (4.10). Oryginalny problem optymalizacyjny należy przekształcić do postaci: F = x H H H ,9x 8 0, 10 0, = min, 0, x1 0, x2 0. Wówczas model gradientowy przyjmie postać: dx1 5 = [ R + Q( µ 1x1 + λ1h )] 8 λ H, dt dx2 3 = [ 0,9 + Q( µ 2x2 + λ2h ) 8 λ H ]. dt Wartości parametrów modelu gradientowego pozostawiono bez zmian. 1 = x 1 = x = x x

145 Stabilność oraz zbieżność modelu gradientowego w interaktywnej optymalizacji wizualnej 145 x 2 10 B 5 C A D Rysunek 2. Ścieżka poszukiwania rozwiązania dla przykładowego zadania optymalizacji liniowej Punkt A jest punktem początkowym poszukiwania rozwiązania optymalnego postawionego zadania. Ścieżka A-B prowadzi z obszaru zakazanego do obszaru dopuszczalnego, następnie z punktu B do punktu C prowadzi do granicy obszaru dopuszczalnego, i ostatecznie prowadzi wzdłuż granicy obszaru dopuszczalnego do punktu D, który jest punktem optymalnym. 6. Podsumowanie W artykule omówiono koncepcję interaktywnej optymalizacji wizualnej w trybie bezpośrednim, przedstawiono (w sposób ogólny) podział stosowanych modeli na zewnętrzne i wewnętrzne. Wskazano ogólne definicje kryterium stabilności i zbieżności dla liniowego modelu gradientowego. Przedyskutowano stabilność oraz zbieżność liniowego modelu gradientowego dla trzech przypadków: gdy punkt poszukiwania rozwiązania optymalnego przemieszcza się z obszaru rozwiązań dopuszczalnych do obszaru rozwiązań niedopuszczalnych (wraz z przypadkiem przebiegania przez obszar rozwiązań dopuszczalnych), gdy punkt poszukiwania rozwiązania znajduje się wewnątrz obszaru rozwiązań dopuszczalnych, oraz gdy punkt poszukiwania rozwiązania optymalnego przemieszcza się z obszaru rozwiązań dopuszczalnych do obszaru rozwiązań niedopuszczalnych. Praca ta otwiera drogę do dalszych poszukiwań naukowych oraz do sprecyzowania sposobu poszukiwania ścieżki prowadzącej do rozwiązania optymalnego. Ciekawą możliwością jest podjęcie próby zrównoleglenia obliczeń dla wybranych metod w ten sposób, aby wykorzystać nowoczesne, wielordzeniowe środowiska obliczeniowe. Proponowana koncepcja stanowi uzupełnienie stosowanych obecnie metod i algorytmów z zakresu optymalizacji adaptacyjnej i predykcyjnej, oraz metod sztucznej inteligencji. Bibliografia [1] Moiseev V. Interactive solution approach to multiple criteria optimization problems with high-performance computers. International Conference on Problems of High- Performance Computers, Szczecin, 1997, str [2] Moiseev V., Ciarciński A., Makles K., Modele graficzne do identyfikacji sygnałów w trybie on-line, 4 Sesja Naukowa Informatyki, Szczecin, 1999, str x 1

146 146 Krzysztof Makles [3] Makles K., Random Processes Visual Identification model building general principles, 9 th International Conference on Advanced Computer Systems, Szczecin, 2002, str [4] Makles K. Koncepcja interaktywnej optymalizacji wizualnej w trybie bezpośrednim, Metody Informatyki Stosowanej nr 4/2009 (21), Szczecin 2009, str [5] Makles K. Modele zewnętrzne i wewnętrzne w interaktywnej optymalizacji wizualnej w trybie bezpośrednim, Metody Informatyki Stosowanej nr 4/2010 (25), Szczecin 2010, str [6] Wilde D. J., Beightler C. S. Foundations of optimization. Prentice-Hall, Englewood Cliffs, N. J., 1968 [7] Bubnicki Z. Uncertain logics, variables and systems. Springer, Berlin, 2002 [8] Bellman R. E. Adaptacyjne procesy sterowania. PWN, Warszawa, 1965 [9] Tatjewski P. Sterowanie zaawansowane obiektów przemysłowych. Akademicka Oficyna Wydawnicza Exit, Warszawa, 2002 [10] Niederliński A., Mościński J., Ogonowski Z. Regulacja adaptacyjna. PWN, Warszawa, 1995 [11] Checkland P. B. Soft systems methodology in action., John Wiley & Sons, New York, 1990 [12] Rutkowska D., Piliński M., Rutkowski L. Inteligentne systemy obliczeniowe. Algorytmy genetyczne i sieci neuronowe w systemach rozmytych. PWN, Warszawa, 1999 [13] Stańczak J., Trojanowski K. Metody uczenia maszynowego w ocenie działania operatorów ewolucyjnych przy szukaniu optimum zadania niestacjonarnego. Badania operacyjne i systemowe 2006, Metody i techniki, pod red. Kacprzyk J., Budziński R., Akademicka Oficyna Wydawnicza Exit, Warszawa, 2006 [14] Sestiti S., Dillon T. Automated knowledge acquisition. Prentice Hall, Australia, 1994 [15] Niederliński A. Regułowo-modelowe systemy ekspertowe rmse. Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego, Gliwice, 2006 [16] Kacprzyk J. Wieloetapowe sterowanie rozmyte. WNT, Warszawa 2001 [17] Kacprzyk J. Zbiory rozmyte w analizie systemowej. PWN, Warszawa, 1986 [18] Piegat A. Modelowanie i sterowanie rozmyte. Akademicka Oficyna Wydawnicza Exit, Warszawa, 2003 [19] Gal T., Greenberg H. J., eds. Advances in sensitivity analysis and parametric programming. Kluwer Academic Publishers, Boston, 1997 [20] Wawrzyński P. Systemy adaptacyjne i uczące się. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, 2009 [21] Koronacki J, Ćwik J. Statystyczne systemy uczące się. Wydawnictwa Naukowo- Techniczne, Warszawa 2005

147 Proces i metody eksploracji danych tekstowych do przetwarzania raportów z akcji ratowniczo-gaśniczych Marcin Mirończuk 1, Tadeusz Maciak 2 1 Politechnika Białostocka, Wydział Elektryczny, 2 Politechnika Białostocka, Wydział Informatyki Abstract: This paper describes the process for processing reports from rescue and firefighting. To reports processing methods and techniques used in the field of textual data mining (text mining). This paper also presents the classification and analysis methods section of text which is considered a potential use in the proposed process. Keywords: text processing, text analysis, text mining, information extraction, sentence classification 1. Wstęp W Państwowej Straży Pożarnej PSP forma powstających raportów sporządzanych po każdej akcji ratowniczo-gaśniczej jest regulowana przez Rozporządzenia Ministra Spraw Wewnętrznych [1]. Forma raportów papierowych w postaci karty Informacji ze zdarzenia jest częściowo ustrukturyzowana. Częściowa strukturyzacja polega na tym, że istnieje możliwość wprowadzenia i sprawdzenia informacji o takich elementach akcji ratowniczo-gaśniczej jak np.: czas zdarzenia, czas działań ratowniczych, rodzaj prowadzonych działań i użytego sprzętu, miejsca prowadzonych działań, dane o budynku lub pomieszczeniu, w którym powstało zdarzenie etc. Większość tych elementów jest ograniczona do zamkniętej listy odpowiedzi, przy czym dla większości pytań są tylko dwie odpowiedzi i tylko w jednym punkcie (rodzaj prowadzonych działań) dostępnych możliwości jest ponad czterdzieści. Z pośród nich można dokonywać wyboru np. uwalnianie ludzi, ewakuacja ludzi, ewakuacja zwierząt etc. W przypadku czasu zdarzenia jest to data w postaci dzień-miesiąc-rok oraz godziny-minuty. Większość użytecznej informacji zawarta jest jednak w sekcji zatytułowanej Dane opisowe do informacji ze zdarzenia. Sekcja ta podzielona jest na sześć podpunktów: opis przebiegu działań ratowniczych (zagrożenia i utrudnienia, zużyty i uszkodzony sprzęt), opis jednostek przybyłych na miejsce zdarzenia, opis tego co uległo zniszczeniu lub spaleniu, warunki atmosferyczne, wnioski i uwagi wynikające z przebiegu działań ratowniczych oraz inne uwagi dotyczące danych wypełnianych w formularzu odnośnie zdarzenia. Ze względu na to, że zawartość poszczególnych podpunktów tej sekcji jest wyrażona za pomocą języka naturalnego w postaci zdań, na które składają się wyrażenia oraz frazy, została ona nazwana częścią półustrukturyzowaną. W sekcji tej ukryta jest większość informacji i wiedzy w postaci procesu, procedur i danych na temat tego jak np. skutecznie zwalczać powstałe zagrożenie lub na co należy uważać i zwrócić uwagę przy likwidacji danego rodzaju zagrożenia. W raportach pozostaje ukryta informacja (wiedza) o zdarzeniach zawarta w wykonywanych przez Kierujących Działaniami Ratowniczymi (KDR) opisach przebiegu akcji ratowniczo-gaśniczej nieuwzględniona przez ww. akt normatywny. Na bazie poszczególnych raportów w Komendach Wojewódzkich PSP wykonywane są wybrane analizy zdarzeń i składowane w postaci papierowej. W Komendzie Głównej PSP Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

148 148 Marcin Mirończuk, Tadeusz Maciak raporty są analizowane przez analityków pod kątem określonych strategicznych zapytań. Raporty przechowywane są również w wersji elektronicznej w informacyjnym systemie ewidencji zdarzeń EWID [2-4]. Mają one także częściowo ustrukturyzowany charakter ze względu na to, iż sekcje oraz pola z Karty informacji ze zdarzenia są mapowane i przedstawiane w postaci relacji i odpowiednich typów danych. Jednak w dalszym ciągu sekcja Dane opisowe do informacji ze zdarzenia jest reprezentowana za pomocą tekstu opisanego językiem naturalnym. Możliwości analizy tej części pogarsza fakt, że sześć wcześniej wymienionych podpunktów składających się na tą sekcję w wersji papierowej, w systemie informacyjnym ewidencji zdarzeń reprezentowanych jest jako pojedynczy rekord danych bez zachowania należytego podziału. Z tego względu ta cyfrowa sekcja stanowi część nieustrukturyzowaną. Ponadto w wyniku tego, że opisy zdarzeń wykonywane są przez różnych KDR powstaje problem semantyczny, każdy z KDR definiuje i opisuje zdarzenie według własnego postrzegania i słownictwa. Powoduje to iż do określenia tych samych zdarzeń stosowane są różne nazwy. Badania wykazują, że przy opisywaniu jednego zagadnienia jedynie 20% badanych posługuje się tym samym słownictwem [5]. Obserwacja ta nie zmienia się znacząco w zależności czy badanymi są eksperci w danej dziedzinie czy też mniej doświadczone osoby. Ewentualne pozyskanie ze zbioru takich rekordów informacji i przekształcenia ich zawartości do użytecznych przypadków zdarzeń systemu wnioskowania na podstawie zdarzeń (ang. case based reasoning CBR) [6], mogącego stanowić podstawę hybrydowego systemu wspomagania decyzji HSWD [7], wymaga więc zastosowania wielu zabiegów semantycznych. Dzięki uzyskanym użytecznym przypadkom zdarzeń, poprzez zabiegi semantyczne wyrażone za pomocą skonstruowanego procesu do przetwarzania sekcji Dane opisowe do informacji ze zdarzenia, HSWD będzie mógł generować wiedzę dla KDR w postaci np. wskazówek, opisu ewentualnych problemów zdarzających się podczas podobnej akcji, lokalizacji punktów czerpania wody (środka gaśniczego) etc. W oparciu o nią KDR będzie mógł następnie sprawnie pokierować akcją ratowniczo-gaśniczą. HSWD postrzegany jest jako element definiujący współdziałanie oraz wykorzystanie sił i środków poprzez KDR na podstawie uzyskanej wiedzy z systemu wiedzy. Do składowania, wydobywania, zaadaptowania i ponownego wykorzystania wiedzy przez KDR w HSWD ma służyć wcześniej wspomniany podsystem CBR. Realizuje on technikę rozwiązywania aktualnie pojawiających się problemów na podstawie doświadczenia i wiedzy z przeszłości opisanych za pomocą użytecznych przypadków zdarzeń, które stanowią wskazówki lub rozwiązania zagrożeń z zakresu np. pożarów lasów, zagrożeń miejscowych. W PSP brak jest standardowego, ujednoliconego, szerokiego słownika zawierającego pojęcia z zakresu ratownictwa, który także definiowałby zachodzące między nimi relacje oraz stanowiłby ontologie dla służb ratowniczych. Słownik taki posłużyłby do utworzenia precyzyjniejszej, homogenicznej komunikacji i wymiany wiedzy na temat zdarzeń z zakresu ratownictwa w obrębie PSP. Ponadto taka różnorodna interpretacja i opis podobnych wypadków powoduje iż pozyskiwanie informacji z tego typu dokumentów tj. sekcji opisowej systemu EWID i transformacja ich bezpośrednio do ustandaryzowanego opisu użytecznych przypadków zdarzeń systemu CBR nie jest do końca możliwa i wymaga zastosowania technik z zakresu komputerowej analizy tekstu. Proponowane rozwiązanie do przetwarzania sekcji Dane opisowe do informacji ze zdarzenia (część nieustrukturyzowana) bazuje na analizie części składowych tej sekcji, które stanowią zdania. Ze względu na to, że sekcja ta a więc i zdania są wyrażone za pomocą języka naturalnego, problem analizy można uogólnić na problem eksploracyjnej analizy dokumentów tekstowych. Tym samym można zastosować znane już metody i techniki z tego zakresu.

149 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 149 W punkcie 2 niniejszego artykułu przedstawiono zarys procesu eksploracji danych tekstowych do przetwarzania raportów z akcji ratowniczo-gaśniczej (nieustrukturyzowanej sekcji Dane opisowe do informacji ze zdarzenia). W punkcie 3 opracowania został opisany preferowany w badaniach model wektorowy reprezentacji dokumentów tekstowych. W punkcie tym przedstawiono także utworzoną taksonomię wybranych metod z zakresu eksploracyjnej analizy tekstu do przetwarzania raportów. Podsumowanie całości wraz z opisem kierunku rozwoju i badań zostało przedstawione w punkcie Szkielet eksploracyjnego procesu do przetwarzania raportów ze zdarzeń ratowniczo-gaśniczych W pracach [6, 8] zostało zasugerowane, że metody eksploracyjnej analizy tekstu mogą służyć do budowania użytecznych przypadków zdarzeń systemu CBR. W niniejszym punkcie autorzy zaprezentowali możliwości wykorzystania metod z zakresu eksploracji danych tekstowych, opisanych w punkcie 3, do rozwiązywania problemów związanych ze strukturalizowaniem sekcji Dane opisowe do informacji ze zdarzenia oraz budowaniem użytecznych przypadków zdarzeń a więc też z doborem odpowiedniego słownictwa w celu jednoznacznego opisu zdarzeń oraz związanych z nim elementów. Elementami tymi mogą być np. punkty czerpania wody (hydranty). Ideowy schemat proponowanego przez autorów procesu budowy użytecznych przypadków zdarzeń systemu CBR, będącego częścią składową HSWD, przedstawia rysunek 1. Rysunek 1. Proces strukturalizacji przypadków zdarzeń systemu CBR stanowiącego podsystem w HSWD. Źródło: [opracowanie własne] Rysunek 1 przedstawia proces strukturalizacji dostępnych raportów w celu przekształcenia ich w użyteczne przypadki zdarzeń systemu CBR stanowiącego podsystem w HSWD. Jak wspomniano na początku artykułu, sekcja Dane opisowe do informacji ze zdarzenia w wersji papierowej posiada użyteczne podpunkty, które mogą zostać wykorzystane we wnioskowaniu na temat procesu likwidacji powstałego zagrożenia lub budowania na ich podstawie nowych ustrukturalizowanych rejestrów np. punktów czerpania wody. Niestety podpunkty z tej sekcji przenoszone są do systemu informacyjnego EWID często bez zachowania kolejności oraz obowiązującej sześcio punkowej struktury. Kłopotliwe i nieużyteczne jest ich wykorzystanie np. trudno jest otrzymać, na podstawie opisu samego zdarzenia, oddzielnych informacje tylko i wyłącznie na temat np.: zagrożeń i utrudnień, podjętych dzia-

150 150 Marcin Mirończuk, Tadeusz Maciak łań, dostępnych punktów czerpania wody, użytego sprzętu, przyczyn zagrożenia czy też wskazówek. Aktualnie, w wyniku przeszukiwania cyfrowej sekcji Dane opisowe do informacji ze zdarzenia systemu EWID, KDR otrzymałby cały raport (w ogólności ich grupę), który musiałby przeanalizować a następnie wybrać z niego interesujące go treści. Taka sytuacja nie może mieć miejsca, ze względu na ograniczony czas, który decyduje o powodzeniu całej akcji ratowniczo-gaśniczej. Z tego też względu autorzy proponują nowe podejście do analizy i przetwarzania raportów z akcji ratowniczo-gaśniczych. Podejście to polega na badaniu oraz wykrywaniu znaczenia i funkcji zdania w sekcji Dane opisowe do informacji ze zdarzenia na podstawie występujących wyrażeń w zdaniu. Autorzy ten sposób analizy określają mianem odkrywania semantyki zdań. Analiza ta ma na celu częściowe odtworzenie struktury tej sekcji z wersji papierowej lub w ogólności odtworzenie zadanej struktury. W ten sposób mają zostać utworzone pół-ustrukturyzowane użyteczne przypadki zdarzeń, które likwidują aktualne, wyżej wymienione problemy z użytecznością. W dalszej kolejności pół-ustrukturyzowane użyteczne przypadki zdarzeń mogą być transformowane do ustrukturyzowanych użytecznych przypadków zdarzeń. Za ich pomocą będzie można dokładnie parametryzować zdarzenia lub ich elementy i opisywać je za pomocą wyselekcjonowanych atrybutów i klas a nie wyłącznie poprzez język naturalny (często mało precyzyjny i dwuznaczny). Schemat procesu eksploracji danych tekstowych do przetwarzania raportów z akcji ratowniczo-gaśniczej przedstawia rysunek 2. Proces przedstawiony na rysunku 2 składa się z trzech głównych etapów przetwarzania. Pierwszy etap przetwarzania raportów zakłada ich strukturalizację poprzez odkrywanie semantyki zdań (podpunkt 2.1). Drugi etap zakłada budowę modeli wybranych podpunktów wraz z ekstrakcją do nich danych (podpunkt 2.2). Trzeci etap aktualnie związany jest z wykorzystaniem pół-ustrukturyzowanych użytecznych przypadków zdarzeń do wyszukiwania opisów podobnych akcji ratowniczo-gaśniczych i sposobu neutralizacji powstałego zagrożenia (podpunkt 2.3) Odkrywanie semantyki zdań Rysunek 2 przedstawiający proponowany szkielet aplikacji jest znacznym rozszerzeniem szkieletu systemu do analizy biznesowej kierowanej tekstem (ang. text-driven business intelligence), którego idea został przedstawiona w pracy [9]. Autorzy niniejszego opracowania zaadaptowali i rozszerzyli tą strukturę na potrzeby analizy raportów z akcji ratowniczogaśniczych. Za pomocą analizy raportów w pierwszym kroku mają zostać otrzymane półustrukturyzowane użyteczne przypadki zdarzeń wyrażone za pomocą wektorowej reprezentacji podpunktów tekstu. W drugim kroku ma zostać utworzona reprezentacja obiektowa użytecznych przypadków zdarzeń wyrażona w postaci utworzonej hierarchii klas. Do otrzymania danych pół-ustrukturyzowanych proponowana jest metoda klasyfikacji. Raporty z dostępnego cyfrowego korpusu EWID dzielone są na dwie grupy. Pierwsza grupa zawiera raporty z oznaczonymi ręcznie a priori nazwami podpunktów, do których należą zdania z raportu. Nazwy podpunktów stanowią zarazem etykiety klas, do których wybrany klasyfikator będzie przydzielał zdania. Podczas badań i manualnej analizy dostępnych raportów wydzielono cztery takie klasy: operacje, sprzęt, szkody, meteo, ogólna. Druga grupa zawiera resztę nieoznakowanych (niezaetykietowanych) raportów, z których należy wydobyć podpunkty poprzez przydzielenie zdań do odpowiedniej zdefiniowanej powyżej klasy. Następnie zachodzi proces wstępnego przetwarzania i wydobywania wyrażeń z oznakowanego zbioru raportów, po którym następuje proces nauki i testowania klasyfikatora. Przed procesem klasyfikacji nieoznakowanych zdań z grupy raportów zawierających nieoznakowane podpunkty, należy także dokonać procesu wstępnego przetwarzania i wydobywania wyrażeń. W szczególności należy

151 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 151 wykryć koniec zdań w raporcie a następnie podzielić go na zdania. Dalszy proces wydobywania wyrażeń przebiega podobnie jak podczas nauki klasyfikatora, a więc wykonywany jest krok konstruowania cech i selekcji cech. Po tym etapie dokonywany jest proces klasyfikacji zdania do jednej z wyżej zdefiniowanych klas za pomocą zbudowanego klasyfikatora. Rysunek 2. Schemat procesu eksploracji danych tekstowych do przetwarzania raportów z akcji ratowniczo-gaśniczej. Źródło: [opracowanie własne na podstawie [9]]

152 152 Marcin Mirończuk, Tadeusz Maciak Dla zilustrowania działania etapu odkrywania semantyki zdania przy założeniu, że dostępny jest klasyfikator posłużono się następującym przykładem niech będzie dostępny nieustrukturyzowany raport w postaci: Nieustrukturyzowany raport 1 Po dojechaniu na miejsce zdarzenia stwierdzono pożar instalacji elektrycznej w skrzynce z bezpiecznikami na klatce schodowej. Działania psp polegały na oddymieniu i przewietrzeniu klatki schodowej na parterze. Na miejsce zdarzenia przybyło pogotowie energetyczne z ul. chrzanowskiego celem zabezpieczenia instalacji. Sprawny hydrant nr ul. Szaserów 99. Nieustrukturyzowany raport 1 poddany zostaje wstępnemu przetwarzaniu i wydobywaniu wyrażeń. Podzielony zostaje na cztery zdania z których usuwane są wyrażenia znajdujące się na stop liście. Tak przetworzone zdania poddaje się następnie procesowi lematyzacji oraz konstruowania i selekcji cech. Ostatni etap kończy się reprezentacją wektorową każdego z czterech zdań, które klasyfikowane są do utworzonych klas. W wyniku przeprowadzenia klasyfikacji otrzymywany jest pół-ustrukturyzowany użyteczny przypadek zdarzenia. Rezultat opisanych operacji prezentuje tabela 1. Tabela 1 Pół-ustrukturyzowany użyteczny przypadek zdarzenia. Źródło: [opracowanie własne] L.p. Zdanie oryginalne Reprezentacja wektorowa Klasa 1 Po dojechaniu na miejsce zdarzenia stwierdzono [dojechać, miejsce zdarzenia, stwierdzić, Opisowa pożar instalacji elektrycznej w skrzyn- ce z bezpiecznikami na klatce schodowej pożar, instalacja elektryczna, skrzynka, bezpieczniki, klatka schodowa] 2 Działania psp polegały na oddymieniu i przewietrzeniu klatki schodowej na parterze [działania psp, polegać, oddymienie, przewietrzyć, klatka schodowa, parter] Operacji 3 Na miejsce zdarzenia przybyło pogotowie energetyczne z ul. chrzanowskiego celem zabezpieczenia instalacji [miejsce zdarzenie, przybywać, pogotowie energetyczne, ul. chrzanowskiego, cel, zabezpieczać, instalacja] 4 Sprawny hydrant nr ul. Szaserów 99 [sprawny, hydrant, nr , ul. szaserów 99] Opisowa Sprzętu Tabela 1 prezentuje wynik opisanego procesu przetwarzania oraz klasyfikacji zdań z nieustrukturyzowanego meldunku 1, którego efektem jest pół-ustrukturyzowany użyteczny przypadek zdarzenia. Przypadek ten składa się z oryginalnych zdań, ich reprezentacji wektorowej oraz klasy, do której zostały przydzielone. Można zauważyć, że podczas etapu konstruowania i selekcji cech oprócz pojedynczych wyrażeń zostały utworzone złożone wyrażenia tzw. n-gramy składające się z dwóch lub większej ilości wyrażeń [10]. Związane jest to z tym, że niektóre formy wyrażeniowe występują częściej razem niż inne w meldunkach np. miejsce zdarzenia, działania psp etc. W opisach występują także bardziej złożone wyrażenia określające np. położenie ul. Szaserów 99. W omawianym przykładzie, w wyniku procesu klasyfikacji, zostały przywrócone cztery klasy semantyczne dla wyodrębnianych zdań, które określają ich kontekst a tym samym redukują niejednoznaczność, która może zajść podczas etapu wyszukiwania [11]. Podczas procesu wyszukiwania np. sprawnych hydrantów w celu uzupełnienia środka gaśniczego podczas akcji ratowniczo-gaśniczej znajdujących się przy ulicy Szaserów system może zwrócić nieoczekiwane rezultaty. W przypadku gdy brak jest ww. podziału na zdania, raporty analizowane są całościowo a więc rezultaty wyszukiwania mogą zawierać nie tylko hydranty znajdujące się przy tej ulicy ale też np. opisy inny działań, które tam się odbywały. Strukturalizacja raportów poprzez nadanie klas semantycznych dla poszczególnych składo-

153 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 153 wych w postaci zdań ogranicza kontekst wyszukiwania. Posiadając do dyspozycji klasę sprzęt i wyszukując w niej sprawnych hydrantów przy podanej ulicy, system wyszukiwania zwróci nam tylko i wyłącznie znajdujące się przy niej hydranty Budowa wybranych modeli i ekstrakcja informacji W przypadku gdy zostanie zbudowana baza pół-ustrukturyzowanych użytecznych przypadków, przy wykorzystaniu wyżej opisanego procesu, istnieje możliwość analizy zebranych tam informacji. Analiza ta prowadzi do dalszej ich strukturyzacji w kierunku opisu obiektowego, reprezentowanego za pomocą hierarchii klas. Autorzy do tego celu proponują dwie metody. Pierwsza metoda mniej formalna pod względem matematycznym opiera się o mapy myśli (ang. mind mapping) i transformacji ich do modelu obiektowego. Za pomocą tej metody autorzy dokonali modelowania wyrażeń znajdujących się w zdaniach zaklasyfikowanych do klasy sprzęt. Druga metoda opiera się o formalną analizę pojęć (ang. formal concept analysis FCA), która stanowi pewien rodzaj metody grupowania oraz kraty pojęć (ang. concept lattice). Druga metoda została wykorzystana do modelowania wyrażeń pochodzących z klasy opis i transformacji utworzonych diagramów liniowych do modelu obiektowego. W punkcie tym do analizy tekstu wykorzystano więc elementy z zakresu inżynierii wiedzy oraz oprogramowania Manualne tworzenie modeli Na podstawie przeprowadzonej manualnej analizy zdań pochodzących z wybranej klasy istnieje możliwość utworzenia mapy myśli [12]. Można je zaliczyć do technik wizualizacyjnych. Metodę tą autorzy wykorzystali do utworzenia mapy myśli związanej z pojęciem Hydrant w celu zbudowania modelu rejestru punktów czerpania wody. Następnie tak utworzoną mapę poddano transformacji do opisu obiektowego tj. wyrażono ją za pomocą hierarchii klas. W celu zamodelowania ww. rejestru analizowane były wyrażenia opisujące pojęcie Hydrant znajdujące się w zdaniach pochodzących z klasy sprzęt. Na podstawie tak przeprowadzonej analiz utworzona została mapa pojęć, którą prezentuje rysunek 3. Rysunek 3. Mapa pojęć związana z konceptem Hydrant pochodzącym ze zdań zaklasyfikowanych do sekcji sprzęt. Źródło: [opracowanie własne na podstawie [13]] Rysunek 3 przedstawia mapę pojęć związanych z głównym konceptem Hydrant. Z konceptem tym związane są wyrażenia występujące w zdaniach z klasy sprzęt. Informacje te można zaprezentować w bardziej ustrukturyzowany sposób przydatny do przetwarzania komputerowego np. za pomocą modelu obiektowego. Możliwą transformację mapy pojęć z zakresu inżynierii wiedzy do modelu obiektowego z inżynierii oprogramowania przedstawia rysunek 4.

154 154 Marcin Mirończuk, Tadeusz Maciak Rysunek 4. Hierarchia klas w notacji obiektowej. Źródło: [opracowanie własne] Rysunek 4 przedstawia jedną z wielu możliwych hierarchii klas z zakresu projektowania obiektowego, która stanowi realizację mapy pojęć. Podstawowy koncept Hydrant został zamodelowany za pomocą klasy głównej Hydrant, po której większość atrybutów jest dziedziczona przez dwie klasy potomne Naziemny oraz Podziemny. Dodatkowo wydzielono klasę Położenie agregowaną przez klasę Hydrant w celu możliwości jej wykorzystania do opisu położenia ewentualnych innych obiektów a nie tylko hydrantów. Instancje pochodzące z tak utworzonej hierarchii klas można utrwalać bezpośrednio w rejestrze (systemie) obiektowym [14] lub posługując się odpowiednimi narzędziami do mapowania w systemie katalogowym lub relacyjnych [11, 15, 16] Pół-automatyczne tworzenie modeli Formalna analiza pojęć wprowadzona została przez Rudolfa Willea w 1984 roku. Jej koncepcja zbudowana została na teorii sieci i częściowego porządku, które to zostały rozwinięte przez Birkhoff i innych w latach 30 XIX wieku [17-19]. FCA służy do matematyzacji określenia Pojęcie (określane także jako Koncept) oraz daje formalne narzędzie stosowane do analizy danych i reprezentacji wiedzy. Do wizualizacji zachodzących relacji pomiędzy wykrytymi pojęciami służy w FCA krata pojęć. Krata pojęć graficznie może być zaprezentowana za pomocą diagramu liniowego (ang. line diagram) nazywanego także diagramem Hassego (ang. Hasse diagram) [20, 21]. Diagram ten służy do konstruowania hierarchii pojęć. Składa się on z węzłów (wierzchołków) oraz krawędzi. Każdy wierzchołek reprezentuje pojęcie natomiast krawędzie służą do połączenia wierzchołków w określony sposób [20]. Aktualnie FCA stosowana jest w dziedzinach z zakresu m.in. [17]: psychologii, socjologii, antropologii, medycynie, biologii, lingwistyki, matematyki czy też informatyki. Formalna analiza pojęć jest jedną z wielu metod wykorzystywanych w inżynierii wiedzy do odkrywania i budowania ontologii specyficznej dla rozważanej dziedziny z danych tekstowych [22-24]. Autorzy zaproponowali wykorzystanie tej analizy do pół-automatycznego odkrywania i budowania ontologii ze zdań zaklasyfikowanych do wybranej klasy. Proponowana analiza jest procesem dwustopniowym. W pierwszej kolejności wydobywana jest krata pojęć. W drugim kroku analizy, utworzona krata pojęć transformowana jest do opisu obiektowego. W celu omówienia i zademonstrowania pół-automatycznego tworzenia modelu wybranego podpunktu założono, że do dyspozycji dane jest pięć raportów, z których wyodrębniono zdania z klasy opisów zdarzeń (ekstensje). Dotyczą one np. pożaru: lasu, domu jednopiętrowego, samochodu, łąk oraz domu wielopiętrowego. Przykładowo też wstępne przetwarzanie i wydobywanie wyrażeń mogło wykazać, że najlepiej opisującymi te przypadki są następujące wyrażenia (intensje): teren niezamieszkały, budynek, instalacja gazowa, winda. Związek pomiędzy poszczególnymi ekstensjami i intensjami prezentuje tabela 2. Tabela 1 opisuje jakie atrybuty posiada określony rodzaj pożaru. Jeśli pożar posiada dany atrybut wówczas ten fakt odnotowywany jest za pomocą symbolu X, w przeciwnym razie pole pozostaje puste. Na podstawie tak zdefiniowanych relacji można utworzyć kratę pojęć. Utworzona krata dla danych z tabeli 2 prezentuje rysunek 5.

155 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 155 Tabela 2. Tabela opisujące dane składające się na formalny kontekst Pożar. Źródło: [opracowanie własne] Pożar teren niezamieszkały budynek instalacja gazowa winda Lasu X Domu jednopiętrowego X X Samochodu X Łąk X Domu wielopiętrowego X X X Rysunek 5. Krata pojęć formalnego kontekstu Pożar. Źródło: [opracowanie własne na podstawie [25]] Krata pojęć zawiera węzły, linie oraz nazwy wszystkich obiektów wraz z atrybutami dla zdefiniowanego formalnego kontekstu (formalny kontekst stanowią Pożary). Węzły diagramu reprezentują koncepcje. Informacja o kontekście może być bezpośrednio odczytana z diagramu za pomocą prostej reguły: obiekt o posiada atrybut a tylko i tylko wtedy, kiedy istnieje ścieżka do góry np. dom wielopiętrowy posiada atrybut: winda, budynek oraz instalacja gazowa. Oznacza to, że dom wielopiętrowy stanowi rozszerzenie domu jednopiętrowego. Kontynuując te wnioskowanie dochodzi się do punktu, w którym dom wielopiętrowy jest także rozszerzeniem samochodu. Jest to wniosek w rzeczywistości błędny. W celu skorygowania tego należy dodać np. atrybut koła, który rozgraniczy samochody od domów. Jak widać na powyższym przykładzie dodatkowym atutem diagramów liniowych jest to, iż wiedza w łatwy sposób może zostać skorygowana i dodana przez eksperta z danej dziedziny np. kierującego akcją ratowniczą lub wyspecjalizowanego inżyniera wiedzy. W rozpatrywanym przykładzie aktualizacja wiedzy polegała na dodaniu rozgraniczającego atrybutu koła, który w rozważanej hipotetycznej sytuacji nie został odkryty podczas etapu selekcji cech. Od skonstruowanej i przedstawionej kraty pojęć blisko jest do hierarchii klas z notacji obiektowej. Wykorzystując wiedzę z zakresu inżynierii oprogramowania, inżynier na podstawie kraty pojęć może przekształcić go w diagram hierarchii klas obrazujący model analizowanej dziedziny w notacji obiektowej. Wynik takiego przekształcenia, przy dodatkowym założeniu, że inżynier wiedzy wprowadził dodatkowy atrybut rozdzielający koła, przedstawia rysunek 6. Rysunek 6 przedstawia przekształcenie, które nie jest jednoznaczne tzn. każdy inżynier w zależności od znajomości dziedziny, doświadczenia i wiedzy dotyczącej projektowania i inżynierii oprogramowania może utworzyć różne hierarchie klas. Niemniej takie podejście

156 156 Marcin Mirończuk, Tadeusz Maciak do analizy daje mu możliwość zaznajomieniem się ze słownictwem (terminologią, konceptami) oraz z podstawowymi obiektami i atrybutami występującymi w modelowanej dziedzinie, które może wyrazić za pomocą hierarchii klas. Rysunek 6. Przekształcanie kraty pojęć w hierarchię klas w notacji obiektowej. Źródło: [opracowanie własne] Ekstrakcja informacji Zgodnie z rysunkiem 2 przewidywana jest dwustopniowa ekstrakcja informacji. Pierwszy stopień związany jest z ekstrakcją segmentów i określaniem ich semantyki. Określanie semantyki zdań odbywa się poprzez ich przydział do wyznaczonych klas za pomocą metod klasyfikacji dostępnym w eksploracyjnej analizie tekstu. Stopień ten został omówiony w podpunkcie 2.1. Drugi poziom stanowi ekstrakcja informacji ze zdań o wydzielonym kontekście do utworzonego modelu. Ekstrakcja informacji na poziomie raportów polega na rozpoznaniu scenariusza i powiązaniu go z abstrakcyjnym modelem, który odzwierciedla złożoność zdarzeń w rzeczywistości. Odkryte klasy semantyczne zdań oraz kompleksowy pół-strukturalny użyteczny przypadek zdarzenia omówiony w podpunkcie 2.1, w kontekście ekstrakcji informacji nazywa się skryptem lub scenariuszem [26]. W przypadku analizowanej dziedziny abstrakcyjnym modelem jest utworzony rejestr punktów czerpania wody bądź ontologia Pożary wyrażona w notacji obiektowej. W jednym jak i drugim przypadku modelu zadanie ekstrakcji informacji będzie polegać na rozpoznawaniu nazw encji. Ze względu na to, że w obu przypadkach rozpoznawanie nazw encji przebiega podobnie, zademonstrowany zostanie przykład dla modelu punktów czerpania wody. Przyjmując, że dostępny jest wyżej wspomniany model utworzony w podpunkcie można do niego wyekstrahować dane ze zdań zaklasyfikowanych do klasy sprzęt. W tym celu należy przeprowadzić proces rozpoznawania nazw encji. Do zilustrowania tego można posłużyć się prostym przykładem. Niech będzie dostępne zdanie pochodzące z klasy sprzęt opisujące obiekt w postaci hydrantu w następującej postaci: Sprawny hydrant nr ul. Szaserów 99. Z wyżej przytoczonego zdania można wyekstrahować do rozpatrywanego modelu następujące dane (atrybut, wartość, opis): - atrybut używalność przyjmuje wartość prawdy logicznej (ang. true), wyrażenie sprawny w danym zdaniu sugeruje, że hydrant działa, - atrybut numer identyfikacyjny przyjmuje wartość 34922, które wystękuje w danym zdaniu,

157 Proces i metody eksploracji danych tekstowych do przetwarzania raportów atrybut położenie względne może przyjąć wartość strukturalną złożoną np. z dwóch dodatkowych atrybutów w postaci nazwy ulicy o wartości Szaserów i jej numeru 99. Obie wartości zostały także pozyskane z prezentowanego zdania. Jak zademonstrowano na przykładzie, ekstrakcja encji polega na rozpoznawaniu i klasyfikowaniu wykrytych wyrażeń z tekstu takich jak: nazwy ulic, identyfikatory, stan obiektów etc. do utworzonego modelu Przetwarzanie pół-ustrukturyzowanych użytecznych przypadków zdarzeń Dodatkowymi ostatnimi elementami, które prezentuje rysunek 2, są składniki które w szczególnym przypadku mogą służyć do rozpoznawania i translacji przypadków zdarzeń. Elementy te mogą zostać użyte w sytuacji działań transgranicznych np. symulacji działań ratowniczo-gaśniczych i kooperacji jednostek z różnych krajów. W takiej sytuacji system po rozpoznaniu tego, że opis zdarzenia nie jest sporządzony w aktualnie używanym języku, tłumaczy go, po czym przeszukuje bazę przypadków w celu odnalezienia najlepszego rozwiązania. Wyniki wyszukiwania, jeśli zachodzi potrzeba, tłumaczone są ponownie i zwracane odbiorcy. W sytuacji, gdy nie zachodzi potrzeba identyfikacji języka oraz translacji przypadku zdarzenia, aplikacja działa jako wyszukiwarka opisu podobnych zdarzeń. Wyszukiwanie w proponowanych modelach może być dwojakiego rodzaju. W przypadku poszukiwania rozwiązań wyszukiwanie może zostać oparte na zapytaniach pełno tekstowych do wydzielonych klas lub mogą zostać podane instancje klas zdefiniowane w ramach ontologii, z którymi związane są odpowiednie rozwiązania umieszczone w sekcji operacje. W przypadku odnajdywania punktów czerpania wody, wyszukiwanie powinno odbywać się w oparciu o zamodelowany rejestr i instancje klasy Hydrant. Wykorzystany element grupujący, znajdujący się na rysunku 2, związany jest z formalną analizą pojęć. Niemniej rozpatrzone mogą zostać inne algorytmy do grupowania półustrukturyzowanych przypadków zdarzeń. Ich przydatność może być badana pod kątem analizy jednorodności utworzonych klas, ewentualnie wyznaczania dodatkowych podklas. 3. Metody eksploracji danych tekstowych Dziedzina techniki zajmująca się przetwarzaniem komputerowym nieustrukturyzowanych danych w postaci dokumentów tekstowych i wyciągania z nich informacji wysokiej jakości nazywa się eksploracją tekstu (ang. text mining) [27, 28]. W obrębie tej dziedziny powstało wiele nie do końca usystematyzowanych metod, technik oraz pojęć, które dla celów podjętych badań w niniejszym artykule zostały odpowiednio pogrupowane i szczegółowo omówione. W ramach badań utworzono więc autorską taksonomię metod eksploracji danych tekstowych. Omówienie jej zaczęto od przedstawienia wykorzystywanej w badaniach reprezentacji dokumentów tekstowych (podpunkt 3.1). Następnie opisano wykorzystywane metody analizy tekstu (podpunkt 3.2) oraz techniki wizualizacji (podpunkt 3.3) Reprezentacja dokumentów tekstowych Aktualnie rozwinięte i wykorzystywane praktycznie są dwie reprezentacje dokumentów tekstowych: reprezentacja wektorowa oraz reprezentacja grafowa. Ze względu na to, że w badaniach oraz do reprezentacji pół-ustrukturyzowanych użytecznych przypadków zdarzeń wykorzystuje się reprezentację wektorową została ona dokładnie omówiona w podpunkcie Informacje na temat reprezentacji grafowej można znaleźć w publikacjach [29-32].

158 158 Marcin Mirończuk, Tadeusz Maciak Model wektorowy reprezentacji dokumentów tekstowych Model wektorowy reprezentacji dokumentów tekstowych polega na przedstawieniu ich w postaci przestrzenno-wektorowego opisu (modelu wektorowego, ang. vector space model VSM). Dokumenty i występujące w nich wyrażenia są reprezentowane w postaci macierzy. Powszechnie za wyrażenie w reprezentacji przestrzenno-wektorowej uważane jest jedno wyrażenie np. pożar lub para wyrażeń np. mocne zadymienie. Zazwyczaj nie są to wszystkie możliwe wyrażenia zwykle w etapie wstępnego przetwarzania (ang. preprocessing) dokonuje się ich selekcji (za pomocą metod opisanych w podpunkcie i ) oraz oceny ich istotności dla modelowanej dziedziny. Rysunek 7 przedstawia macierzową postać zapisu dokumentów i związanych z nimi wyrażeń. Dokumenty reprezentowane są poprzez wiersze (m), natomiast wyrażenia znajdują się w kolumnach (n) macierzy A zwanej macierzą dokumentów-wyrażeń (ang. termdocument matrix). Bardziej ogólnym pojęciem stosowanym w lingwistyce komputerowej jest korpus określający dużą kolekcję dokumentów, opisanych i sprowadzonych np. w szczególnym przypadku do opisywanej postaci macierzowej, którą przedstawia rysunek 7. w. A =.. wi Gdzie : i m 1 j n w1 j.., A R. w ij Rysunek 7. Struktura reprezentacji przestrzenno-wektorowej dokumentów [33]. Źródło: [opracowanie własne] W rozwiązaniach praktycznych ilość wierszy macierzy A jest znacznie większa od ilości wyrażeń (m >> n). Do poprawy przetwarzania, wydajniejszego składowania takiej struktury w systemach informatycznych i analizy stosuje się konwencję odwróconą tj. w wierszach zapisywane są wyrażenia natomiast w kolumnach dokumenty. Wówczas taki zapis nosi nazwę pliku odwróconego a jego sposób indeksowania wyrażony jest poprzez indeks odwrotny [34, 35]. Element macierzy w ij oznacza wagę, a tym samym znaczenie j-tego wyrażenia w i- tym dokumencie (rysunek 7 reprezentuje taki zapis). W zależności od sposobu kodowania informacji zawartej w elemencie w ij czyli w wadze wyrażenia lub bardziej precyzyjnie w wartościach składowych wektora wyrażeń, istnieje możliwość otrzymania różnych odmian reprezentacji przestrzenno-wektorowej tekstu. Do popularnych, stosowanych w praktyce odmian, zaliczamy m.in. reprezentacje boolowską (binarną), częstotliwościową występowania wyrażeń (ang. term frequency TF), odwrotną częstość dokumentu (ang. inversedocument-frequency IDF), mieszaną TF-IDF, logarytmiczną, ważoną logarytmiczną, okapi BM25 oraz probabilistyczną [10, 33, 36-38]. Reprezentacja: a) boolowska (binarna) występuje wówczas, kiedy zostanie odnotowany fakt zaistnienia j-tego wyrażenia w i-tym dokumencie, natomiast nie precyzuje ona liczby wystąpień. Element w ij macierzy A przyjmuje wartość 1 (j-te wyrażenie znajduje się w i-tym dokumencie) lub 0 (j-te wyrażenie nie znajduje się w i-tym dokumencie), b) częstotliwościowa występowania wyrażeń (ang. term frequency TF) występuje wówczas, kiedy oprócz odnotowania faktu zaistnienia j-tego wyrażenia w i-tym dokumencie zostanie określona także jego częstość, czyli liczba jego wystąpień w zadanym dokumencie, m n

159 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 159 c) odwrotnej częstości dokumentu (ang. inverse-document-frequency IDF) polegającą na tym, iż poszczególne wagi w ij wyrażone są za pomocą wyrażenia log(n/n j ), gdzie: N reprezentuje liczbę wszystkich dokumentów zaś n j liczbę dokumentów z j-tym wyrażeniem, d) mieszana TF-IDF występuje wówczas, gdy pomnożone zostaną przez siebie wagi w ij wyrażone za pomocą ww. schematu TF i IDF, czyli mieszana reprezentacja TF-IDF równa jest TF IDF, e) logarytmiczna występuje wówczas, gdy następuje zastąpienie wszystkich niezerowych elementów macierzy A wartościami w ij równymi 1+log(w ij ), f) ważona logarytmiczna występuje wówczas, gdy następuje zastąpienie wszystkich niezerowych elementów macierzy A wartościami w ij obliczonymi za pomocą następującej N formuły (1 + log( wij )) log( ) n j, g) okapi BM25 stosowana jest w przypadkach długich dokumentów tekstowych, gdzie prawdopodobieństwo, że dany wyraz pojawi się wiele razy jest wysokie. Powoduje to wzrost wartości wagi TF co w efekcie sprawia, że długie dokumenty są bardziej faworyzowane. BM25 to rodzina funkcji wykorzystywana do obliczenia wagi w ij z uwzględnieniem długości dokumentów. Mając dokument d (od angielskiego słowa document) i wyrażenie t (od angielskiego słowa term) można obliczyć wagę korzystając z zależności: f ( t, d) ( k1 + 1) bm25( d, t) = idf (1) d f ( t, d) + k1 (1 b + b avg( d) Gdzie: - f(t,d) liczba wystąpień wyrażenia t w dokumencie d - d długość dokumentu d - avg(d) średnia długość dokumentu w kolekcji - k 1 i b wartości stałe (przeważnie przyjmuje się k 1 = 1.2 i b = 0.75) - idf zmodyfikowany schemat IDF wyrażony w postaci formuły N n( t) idf ( t) = log, N oznacza liczbę wszystkich dokumentów, a n(t) liczbę dokumentów zawierających wyrażenie t. n( t) h) probabilistyczna występuje wówczas, gdy waga w ij wyrażenia t w dokumencie d zostanie oszacowana na podstawie zdarzenia losowego, polegającego na wystąpieniu danego wyrażenia t w dokumencie d pod warunkiem modelu M. Model M zawiera informacje na temat korpusu A tj. całkowitą ilość wyrażeń oraz częstotliwość występowania poszczególnych wyrażeń w korpusie A. Proste oszacowanie prawdopodobieństwa wystąpienia wyrażenia t można dokonać zgodnie z zasadą estymacji największej wiarygodności (ang. maximum likelihood estimation MLE) [36]: TFt, d wij = PML ( Yi = t d, M ) = (2) TF t d Wzór na wagę wyrażenia przedstawiony w postaci estymacji największej wiarygodności można interpretować następująco: P czestotliwosc wystepowania wyrazenia t w dokumencie d ML ( i = t d, M ) = suma wszystkich czestotliwosci wyrazen t w dokumencie d Y (3) Na podstawie macierzy A z odpowiednio skonstruowanymi wagami w ij możliwe jest więc wyznaczenie podobieństwa słów oraz dokumentów. Podobieństwo słów wyrażane jest poprzez określenie podobieństwa odpowiadających im kolumn tej macierzy, natomiast o podobieństwie dokumentów wnioskuje się na podstawie analizy podobieństwa wierszy tej t, d

160 160 Marcin Mirończuk, Tadeusz Maciak macierzy. Najczęściej wszystkie wagi w ij wektorów macierzy A w zastosowaniach praktycznych są normalizowane do 1. Wprowadzenie wektorowo-przestrzennego modelu dokumentów umożliwia matematyczną analizę zagadnienia np. wyszukiwania dokumentów tekstowych. Zagadnienie wyszukiwania zostało omówione w podpunkcie Budowanie reprezentacji tekstu na samych wyrażeniach jest jednak często mocno ograniczone. Do zasadniczych wad tego modelu należą: - utrata wszelkiej informacji na temat struktury dokumentów: tytuł, nagłówki etc., - pominięcie informacji na temat kolejności wyrażeń a więc i związków między nimi (występowanie wyrażeń jest niezależne od siebie), - istnieje konieczność wyboru wyrażeń, dla których zostanie stworzona macierz liczba wymiarów musi być z góry znana. Ze względu na ww. ograniczenia, proponowane są takie rozwiązania aby składowymi wektora reprezentującego dokument były automatycznie wydobyte cechy tekstu (jak język, styl, itp.) zamiast wyrażeń kluczowych oraz elementy wydobyte z semantycznego zbioru, a więc wyrażenia i powiązania między nimi skoncentrowane na stronie znaczeniowej tekstu [5]. Ograniczenia związane z reprezentacją przestrzenno-wektorową wymogły stosowanie drugiego sposobu reprezentacji dokumentów tekstowych, a mianowicie ich opis grafowy. Należy zaznaczyć, że reprezentacja przestrzenno-wektorowa mimo ograniczeń posiada też zalety. Sprawiają one, że jest ona dalej powszechnie stosowaną i badaną reprezentacją dokumentów tekstowych. Zaletą wyboru takiej reprezentacji dokumentów jest to, że jest zbieżna z reprezentacją stosowaną typowo w uczeniu maszynowym (obiekty opisane za pomocą atrybutów), dzięki czemu można do niej zastosować istniejące metody. Badania także dowodzą, że niektóre relacje semantyczne mogą zostać wydobyte z tekstu z dużą dokładnością z pominięciem kolejności słów [39], natomiast związek pomiędzy wyrażeniami może zostać ustalony za pomocą analizy współwystępowania wyrażeń [40]. Również wykonywanie operacji, takich jak: liczenie odległości, przeprowadzanych na wektorach, jest aplikacyjnie łatwiejsze w realizacji i bardziej efektywne obliczeniowo od konkurencyjnej reprezentacji, np. opartej na modelu grafowym Metody analizy tekstu Metody płytkiej analizy tekstu można podzielić ze względu na to czy do ich działania potrzebna jest sformalizowana reprezentacja dokumentu opisana w podpunkcie 3.1 czy też nie. Przykład sformalizowanej reprezentacji tekstu stanowi reprezentacja wektorowa opisana w podpunkcie oraz grafowa. Niesformalizowana reprezentacja natomiast nie wymaga żadnej z powyższych reprezentacji Metody analizy bezpośredniej na tekście Metodami, które nie wymagają sformalizowanej reprezentacji tekstu, są: wstępne przetwarzanie tekstu, ekstrakcja informacji, automatyczne rozpoznawanie języka, automatyczna translacja tekstów. Metody te zostały omówione w kolejnych sekcjach niniejszego podpunktu Techniki wstępnego przetwarzania dokumentów tekstowych W eksploracyjnej analizie tekstu dostępne są dwie metody przetwarzania tekstu: płytkie i głębokie. Pierwsza metoda dotycząca płytkiej analizy tekstu (ang. shallow text processing STP), określa grupę działań polegających na rozpoznawaniu struktur tekstów nierekurencyjnych lub o ograniczonym poziomie rekurencji, które mogą być rozpoznane z dużym

161 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 161 stopniem pewności. Struktury wymagające złożonej analizy wielu możliwych rozwiązań są pomijane lub analizowane częściowo. Analiza skierowana jest głównie na rozpoznawanie nazw własnych, wyrażeń rzeczownikowych, grup czasownikowych bez rozpoznawania ich wewnętrznej struktury i funkcji w zdaniu. Analiza dotyczy też głównie dużych zbiorów dokumentów tekstowych a nie pojedynczych dokumentów a także takich zagadnień jak m.in. klasyfikacja (kategoryzacja) dokumentów (ang. text document classification lub text document categorization) ich grupowania (ang. text dokument clustering) i wyszukiwania z nich informacji (ang. information retrieval IR) [5, 41, 42]. Celem tej analizy jest przyporządkowanie nieustrukturyzowanego tekstu wyrażonego za pomocą języka naturalnego do ustalonej reprezentacji (zazwyczaj składającej się ze zbioru obiektów). Przyporządkowanie to odbywa się na drodze procesu wykorzystującego specyficzne dla danej dziedziny algorytmy [42]. Druga metoda opiera się na tzw. głębokiej analizie tekstu (ang. deep text processing DTP) i jest procesem komputerowej analizy lingwistycznej wszystkich możliwych interpretacji i relacji gramatycznych występujących w tekście naturalnym. Zazwyczaj jest bardzo złożona i z reguły dotyczy pojedynczego dokumentu. Pomija się wszelkie zależności statystyczne i stosuje się rozwiązania polegające na przetwarzaniu danych w oparciu o predefiniowane wzorce lub gramatyki [10, 42]. Do technik wstępnego przetwarzania dokumentów tekstowych należą: ekstrakcja rdzeni wyrażeń (ang. stemming), tagowanie (ang. tagging), lematyzacja, stop lista oraz przycinanie (ang. pruning) [10, 41]. Operacje te podejmowane są zanim dokument lub grupa dokumentów tekstowych zostanie przesłana do głównego procesu analizy np. wyszukiwania pełnotekstowego (ang. full text serach) [43] czy też innych metod przetwarzania tekstu. Przedstawione terminy, związane ze wstępnym przetwarzaniem tekstu, można zdefiniować w następujący sposób [10, 41]: a) ekstrakcja rdzeni wyrażeń określa znajdowanie tematów słów lub tych ich fragmentów, które są niezmienne dla wszystkich form, b) tagowanie oznacza wybór opisu morfo-składniowego, który jest właściwy w konkretnym kontekście użycia danej formy, c) lematyzacja jest to analiza morfologiczna ograniczana do znalezienia podstawowej formy wyrazu (identyfikacja leksemu), d) usuwanie słów ze stop listy na stop liście umieszcza się wyrażenia, które występują zbyt często, by ich użycie jako kluczy wyszukiwania było celowe. Wyrażenia umieszczone na stop liście słów są odrzucane (filtrowane) podczas wczytywania dokumentu, e) przycinanie polega na usuwaniu niepotrzebnych słów, operacja ta ma na celu polepszenie skuteczności klasyfikacji. Można usuwać wyrażenia występujące najczęściej (ang. most frequent) i najrzadziej (ang. least frequent). Wszystkie wyżej wymienione zabiegi stosuje się w celu ulepszenia przeprowadzanej analizy dokumentów tekstowych oraz ich wydajniejszego indeksowania. Zabiegi te stosowane w kontekście analizy tekstu pozwalają na identyfikację początkowego zestawu cech, który może być później ograniczony (i zoptymalizowany) w procesie wydobywania wyrażeń (podpunkt ) Ekstrakcja informacji Ekstrakcja informacji (ang. information extraction IE) jest to identyfikacja, polegająca na odnajdywaniu właściwej informacji w nieustrukturyzowanych danych tekstowych wyrażonych za pomocą języka naturalnego. Proces ten jest zgodny z klasyfikacją polegającą na strukturyzowaniu poprzez nadawanie klas semantycznych dla wybranych elementów tekstu. Proces ten czyni informację zawartą w tekście bardziej właściwą i przydatną w realizowanych zdaniach [26]. Ekstrakcja informacji nazywana jest także ekstrakcją (rozpoznawaniem)

162 162 Marcin Mirończuk, Tadeusz Maciak encji i modelowania ich relacji (ang. concept/entity extraction, named entity recognition) [44], jednak jest to ograniczenie definicji ekstrakcji informacji tylko do jednego z podstawowych jej zadań. Wymienione zadanie polega na pozyskiwaniu z dokumentów tekstowych nazw obiektów np. osób oraz na wyznaczaniu związków i relacji pomiędzy wydobytymi obiektami. W ogólnym przypadku można pozyskiwać w ten sposób z tekstu nazwy miast, imiona i nazwiska osób, kody pocztowe, numery PESEL itp. W przypadku szczególnym, który stanowią analizy raportów z akcji ratowniczo-gaśniczych, można pozyskać informacje na temat: ilości akcji, w których brała udział dana osoba, ilości ofiar śmiertelnych zarejestrowanych w akcji ratunkowej. Przy pomocy tak wydobytych cech można sprawdzać czy analizowany obiekt np. osoba nie zmieniła rangi (nie awansowała na wyższy stopień), czy nie zaszły jakieś kluczowe zmiany na obiekcie np. niedziałające hydranty, czy też w przestrzeni mediów nie pojawiły się informacje o zdarzeniach określonego typu (katastrofy, wypadki, akty terrorystyczne). Do pozostałych podstawowych zadań z zakresu ekstrakcji informacji należą: rozróżnianie wyrażeń rzeczownikowych z relacją gramatyczną (ang. noun phrase coreference resolution), rozpoznawanie ról semantycznych (ang. semantic role recognition), rozpoznawanie relacji między encjami (ang. entity relation recognition) czy też rozpoznanie czasu oraz określanie linii czasu zachodzenia zdarzeń (ang. timex and time line recognition) [26]. Do typowych problemów, które muszą być rozwiązane przez system ekstrakcji informacji należą, następujące zagadnienia [10, 26]: a) rozpoznanie i utworzenie skryptów (scenariuszy) będących kompleksowym opisem zdarzeń, b) utworzenie modeli (wzorców) wynikających z tekstu, c) podział tekstu na ciągi zdań, d) podział zdań na wyrażenia z przypisanymi wartościami cech gramatycznych, e) rozpoznawanie skrótów, fraz rzeczownikowych, nazw bez wnikania w ich strukturę wewnętrzną i ich funkcje w zdaniu, f) budowanie przybliżonej struktury zdania (np. drzewa rozbioru) ze słów i wcześniej rozpoznanych elementów, g) wypełnienie przygotowanych modeli informacjami z tekstu. Zadania z punktów c) f) mają charakter ogólny i ich rozwiązania mogą być stosowane w wielu różnych systemach. Natomiast dwa pierwsze zadania z punktów a) b) oraz ostatnie zadanie z punktu g) jest ściśle związane z konkretnym zastosowaniem. Wzorce i reguły ich wypełniania zależą od tego, jakich informacji poszukujemy. Przytoczone wyżej pojęcia ekstrakcji informacji wiążą się najczęściej z normalizacją i identyfikacją w tekście wybranych typów danych oraz ich powiązań. Niemniej w skład tej metody można zaliczyć podejścia i zabiegi stosowane do wydobywania wyrażeń (cech) reprezentatywnych, od jakości których zależą np. wyniki wyszukiwania informacji dla dokumentu czy też ich grupy. W kontekście analizy tekstu i niniejszego opracowania cecha (ang. feature) znaczeniowo traktowana jest jako wyrażenie (ang. term). W dalszej kolejności, oprócz samego wydobywania wyrażeń, można też ekstrahować semantykę tych wyrażeń za pomocą np. analizy opartej o dane z korpusu lingwistycznego (reprezentacji przestrzennowektorowej dokumentów) [32]. Ogólnie do obu tych celów mogą służyć metody klasyfikujące lub grupujące opisane w podpunkcie 3.2.2, jeżeli zadanie klasyfikacji lub grupowania zostanie zdefiniowane na mniejszym poziomie ziarnistości niż dokument, a mianowicie na poziomie wyrażeń.

163 Proces i metody eksploracji danych tekstowych do przetwarzania raportów Automatyczne rozpoznawanie języka Automatyczne rozpoznawanie języka (ang. automatic language identification ALI) polega na identyfikacji wersji językowej dokumentu, w szczególności dokumentu tekstowego, który może zostać napisany w więcej niż jednym języku [45]. Do automatycznej identyfikacji wersji językowej wykorzystywane są głównie dwa rodzaje rozwiązań. Pierwsze rozwiązanie bazuje na statystycznym modelu języka i polega na oszacowaniu prawdopodobieństwa (ang. estimate the probability), że dana wejściowa próbka tekstu jest napisana w zadanym języku. Drugie rozwiązanie polega na porównaniu pomiędzy częstotliwością używanych wspólnych słów lub wyrażeń w próbce tekstowej z częstotliwością wydobytą ze statystycznej analizy dużego korpusu służącego jako odniesienie. Automatyczne rozpoznawanie języka wykorzystywane jest najczęściej w sieci internetowej do analizowania wersji językowych stron internetowych (ang. World Wide Web WWW), czy też korespondencji . Pewne jego elementy mogą też być wykorzystane we wstępnym procesie tekstowej eksploracji danych w celu polepszenia jakości analizy Automatyczna translacja tekstów Automatyczna translacja tekstów nazywana także tłumaczeniem maszynowym TM, polega na dokonywaniu przekładu z jednego języka na drugi. Pierwsze próby TM były podejmowane w latach 50-tych. W latach 70-tych dziedzina ta przeżyła swój rozkwit ze względu na gwałtowny rozwój sprzętu jak i oprogramowania komputerowego. Do automatycznego tłumaczenia tekstu podchodzi się dwojako tj. dokonuje się tłumaczenia zgrubnego, przeznaczonego do poprawiania przez człowieka (mamy tutaj do czynienia raczej ze wspomaganiem tłumaczenia, a nie z samym tłumaczeniem) oraz tłumaczenia ograniczonego do wąskiego podzbioru języka (np. prognozy pogody, raportów giełdowych) [10]. Największym problemem w tłumaczeniu i kluczem do jego sukcesu jest prawidłowe tłumaczenie słów a raczej ich znaczeń. Mimo pojawiających się problemów związanych z TM, w dalszym ciągu budzi ono wielkie zainteresowanie zarówno w środowisku naukowców jak i biznesowym [46-48] Metody analizy sformalizowanych reprezentacji tekstu W przypadku sformalizowanych reprezentacji tekstu do metod jego analizy zaliczane są: wydobywanie wyrażeń z tekstów, wyszukiwanie informacji w szczególności wyszukiwanie informacji w reprezentacji przestrzenno wektorowej oraz grafowej, klasyfikacja oraz grupowanie. Metody te zostały omówione w kolejnych sekcjach niniejszego podpunktu Wydobywanie wyrażeń Wydobywanie wyrażeń może następować poprzez ich ekstrakcje (ang. feature extraction). Ekstrakcja cech w literaturze określana jest także jako transformacja cech (ang. feature transform) czy też generowanie, uogólnianie cech (ang. feature generation). Proces ekstrakcji cech podzielony jest na dwa etapy: konstruowania cech (ang. feature construction) a następnie ich selekcji (ang. feature selection) [49, 50]. Selekcja cech w literaturze określana jest także jako: selekcja zmiennych (ang. variable selection), redukcja cech (ang. feature reduction), selekcja atrybutów (ang. attribute selection), lub selekcja podzbioru zmiennych (ang. variable subset selection). Metody selekcji cech można rozpatrywać w kontekście dziedziny nauki związanej z uczeniem maszynowym (ang. machine learning), wówczas otrzymany zostanie dodatkowy podział (ze względu na zastosowane kryterium oceny podzbioru cech), na który składają się podkategorie: filtry (ang. filters), opakowywacze (ang. wrapper) i metody wbudowane (ang. embedded methods).

164 164 Marcin Mirończuk, Tadeusz Maciak Metody ekstrakcji, nie tylko samych wyrażeń lecz i ich semantyki, są oparte na hipotezie dystrybucyjnej [51] i stanowią specyficzną odmianę metod ekstrakcji specjalnie stworzonych na potrzeby analizy tekstów. Metody wydobywania podobieństwa semantycznego wyrażeń z tekstów opierają się na uzyskaniu funkcji podobieństwa semantycznego. Przegląd takich metod, odwołania do nich i opisy można znaleźć w pracy [32]. Powyżej zostały opisane klasyfikacyjne statyczne aspekty ekstrakcji cech. Na proces ekstrakcji cech można spojrzeć w sposób dynamiczny, wyrażony w postaci algorytmu i automatu z określoną ilością sekwencji (stanów, etapów), którego działanie ma przynieść wydobycie interesujących składowych. Kluczowe etapy tego procesu przedstawia rysunek 8. Rysunek 8. Kluczowe etapy ekstrakcji cech. Źródło: [rozszerzone opracowanie na podstawie [52]] Rysunek 8 prezentuje kompleksowy proces ekstrakcji cech obiektów, który w przypadku analizy tekstu obejmuje: konstruowanie cech, generowanie ich podzbioru, ocenianie otrzymanych podzbiorów oraz zatwierdzanie rezultatów jeśli uprzednio zostało spełnione kryterium stopu. W niektórych zastosowaniach pierwszy etap konstruowania cech nazywany jest etapem wstępnego przetwarzania (ang. preprocessing). Konstruowanie cech w analizie tekstu zawiera takie działania, jak standaryzacja (ang. standadization), normalizacja (ang. normalization), wydobycie lokalnych cech (ang. extraction of local features) [53]. Dodatkowo, do działań tych można zaliczyć techniki wstępnego przetwarzania dokumentów tekstowych wymienione w podpunkcie Konstruowanie cech polega więc na wykorzystaniu całej dostępnej informacji w celu przejścia do nowej przestrzeni. Nowo uzyskana przestrzeń może być, w zależności od wykorzystanych metod, zredukowana, rozszerzona, pozostawiona bez zmian lub wewnętrznie zmieniana w różnych kierunkach. Redukcja wymiaru dotyczy zastosowania metod wbudowanych, które również powodują skonstruowanie nowych cech (pseudo wyrażeń) z cech wyjściowych (podstawowych, bazowych) [54-56]. Transformacja redukująca odbywa się na drodze przekształcenia liniowego bądź nieliniowego. Do liniowych przekształceń należą: analiza składowych głównych (ang. principal components analysis PCA) lub rozkład na wartości osobliwe (ang. singular value decomposition SVD) wykorzystywane w ukrytym indeksowaniu semantycznym (ang. latent semantic indexing LSI) [33, 57]. Natomiast do nieliniowych przekształceń można zaliczyć odwzorowanie Sammona oraz skalowanie wielowymiarowe (ang. multi dimensional scaling MDS) [55]. Rozszerzanie przestrzeni w przypadku analizy tekstu (ekstrakcji wyrażeń) nie znajduje zastosowania. Metodą, która działa i modyfikuje w różnych kierunkach zbiór cech, jest metoda wydobywania cech lokalnych. Przypadek, gdy przestrzeń cech (jej wymiaro-

165 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 165 wość) pozostaje bez zmian, świadczy o zastosowaniu metod z zakresu standaryzacji, normalizacji i zabiegów semantycznych omówionych w podpunkcie Etapem, który następuje po konstruowaniu cech obiektów, jest etap ich selekcji. Selekcja polega na wyborze możliwie małego podzbioru cech, który da jak największą możliwość rozróżnienia obiektów (dokumentów lub wyrażeń w korpusie lingwistycznym). Należy przy tym zaznaczyć, że może być wiele różnych kryteriów oceny, zależnych od specyficznego zastosowania (zwłaszcza w przypadku podejścia typu wrapper). Wybór cech polega więc na zachowaniu jedynie tych użytecznych, które niosą największą ilość informacji i wyeliminowaniu pozostałych [54]. Proces selekcji z oryginalnego zbioru cech dąży do otrzymania optymalnego ich podzbioru, który zazwyczaj jest niemożliwy do osiągnięcia. Podzbiór ten otrzymywany jest w wyniku procesu (rysunek 8) składającego się z kliku podetapów generowania podzbioru cech na drodze pomiaru i związanego z nim przyjętego kryterium oceny, oraz decyzji czy wygenerowany podzbiór cech jest odpowiedni po spełnieniu zadanego kryterium stopu [52, 53]. Po sparametryzowaniu i wykonaniu etapu generującego podzbiory dochodzi się do ich oceny. Posługując się kryterium oceny podzbiorów, można podzielić algorytmy selekcji cech na cztery kategorie: filtry, wrapper, metody wbudowane (ang. embedded methods) oraz hybrydy [53, 56, 58]. Przy użyciu wrappera oraz metod wbudowanych można otrzymać różne podzbiory cech z małymi peturbacjami w zbiorze danych. W celu zminimalizowania tego efektu wykorzystuje się zbiór różnych metod (ang. ensemble learning) [59]. Dodatkowo, oprócz ww. podziału na filtry, wrappery, metody wbudowane i hybrydy, wprowadzane są kryteria niezależne (ang. independent criteria) oraz zależne (ang. dependent criteria) [52]. Kryteria niezależne zazwyczaj związane są z modelem filtrów i do oceny podzbioru cech nie wykorzystują żadnego algorytmu eksploracji danych. Kryteria te posługują się pomiarem odległości (ang. distance measures), zawartości informacji (ang. information measures), zależności (ang. dependency measures) i spójności zmiennych (ang. consistency measures). Drugie kryterium zależne, odnosi się do modelu wrappera i wykorzystuje predefiniowane i wydajne algorytmy eksploracji danych w selekcji cech. Niezależnie od podziału, w przypadku wrapperów oraz rozwiązań hybrydowych, wybrane cechy są dobierane w taki sposób, aby zapewnić możliwe najlepsze wyniki działania docelowej metody (np. grupowanie, klasyfikacja), podczas gdy filtr jest niezależny od stosowanej później metody przetwarzania dokumentów. Wybór podzbiorów odpowiednich cech i ich ocenianie trwa dopóki nie zostanie spełniony warunek stopu. Rysunek 8 prezentuje ten warunek jako akcję decyzyjną pt. Kryterium stopu spełnione?. Warunek stopu jest spełniony gdy spełnione są następujące warunki: a) przeszukiwanie jest kompletne tj. zbadano całą przestrzeń za pomocą algorytmu przeszukiwania, b) osiągnięta została specyficzna granica np. ilości iteracji czy też ilości cech, c) dodawanie lub usuwanie cech nie polepsza i nie generuje ich podzbiorów o lepszych parametrach, d) określony błąd pomiaru spadł poniżej wyznaczonej granicy. Ostatnim etapem selekcji cech, choć nie koniecznie kończącym ten proces, jest faza zatwierdzania rezultatów. Bezpośrednio jakość wybranego podzbioru cech można ocenić a priori na podstawie jego porównania z cechami jakie się oczekuje. Zazwyczaj taka wiedza a priori nie jest dana, wówczas wykorzystywane są metody pośrednie polegające na badaniu jakości osiągów (zwiększanie, bądź zmniejszanie np. celności klasyfikacji) algorytmów eksploracyjnych do wyznaczonego zadania np. klasyfikacji.

166 166 Marcin Mirończuk, Tadeusz Maciak W ogólnym przypadku zastosowanie selekcji cech, czy też ogólniej ekstrakcji cech, ma dodatkowo za zadanie [53]: zredukować dane, zmniejszyć ilość potrzebnej pamięci i tym samym przyczynić się do przyśpieszenia algorytmów operujących na tych danych, zredukować zbiór cech, ulepszyć przetwarzanie (osiągi) związane z dokładnością przewidywania oraz doprowadzić do zrozumienia danych poprzez pozyskanie wiedzy o procesie, który generuje dane i dostarczyć możliwość ich wizualizowania. Koncepcję podziału selekcji cech wyrażoną w postaci trójwymiarowego szkieletu (ang. three-dimensional framework), oraz uogólnione, algorytmiczne modele filtrów zostały przedstawione w pracy [52] Wyszukiwanie informacji Termin wyszukiwanie informacji określa i odnosi się do procesów oraz metod i technik wykorzystywanych do wyszukiwania żądanej informacji w zbiorze dokumentów tekstowych) [10, 33, 60, 61]. Wyszukiwanie to odbywa się na podstawie zadanych zapytań składających się z wyrażeń t (ang. terms). Z dziedziny wyszukiwania informacji wywodzą się też koncepcje dotyczące m.in. budowy i reprezentacji dokumentów tekstowych, ich indeksowania oraz oceny zastosowanego rozwiązania. Koncepcje te stosowane są przy analizach dokumentów tekstowych opisanych w niniejszym opracowaniu Wyszukiwanie informacji reprezentacja przestrzenno-wektorowa Na podstawie macierzy A z odpowiednio skonstruowanymi wagami w ij możliwe jest wyznaczenie podobieństwa słów oraz dokumentów. Podobieństwo słów wyrażane jest poprzez określenie podobieństwa odpowiadających im kolumn tej macierzy, natomiast o podobieństwie dokumentów wnioskuje się na podstawie analizy podobieństwa wierszy tej macierzy. Najczęściej wszystkie wagi w ij wektorów macierzy A w zastosowaniach praktycznych są normalizowane do 1. W celu określenia miary podobieństwa (dokumentów jak i wyrażeń) stosuje się metryki jak np.: euklidesową, blokową (Manhattanowi), L, uogólnioną Minkowskiego L λ, cosinusową, Jaccarda czy też Dicea [10, 33, 36]. Podobieństwo dokumentów ustala się na podstawie pomiaru odległości. W wyszukiwaniu należy minimalizować odległość maksymalizując w ten sposób podobieństwo. Najpopularniejsze w zastosowaniach metryki, określające podobieństwo dokumentów wrażane są w następujący sposób: a) miara Euklidesowa, wyrażana jest w postaci wzoru: d 1 n 2 2 E ( i, j) = ( wk ( i) wk ( j)) k = 1 Gdzie: - i oraz j oznaczają i-ty i j-ty dokument między którymi wyznaczana jest odległość (odpowiednie wiersze macierzy A z reprezentacji, którą przedstawia rysunek 7) - n ilość składowych (wyrażeń) występujących w macierzy A - w k (i) i w k (j) kolejne k-te wagi (wartości obserwacji ) dla i-tego oraz j-tego dokumentu b) miara Manhattanu (L 1 ) nazywana także miarą miejską, wyrażana jest w postaci wzoru: d M n ( i, j) = ( w ( i) w ( j)) (5) k = 1 c) miara L, wyrażana w jest postaci wzoru: d ( i, j) = max ( w ( i) w ( j) d) miara uogólniona Minkowskiego L λ, wyrażana jest w postaci wzoru: k k k k k (4) (6)

167 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 167 n k = 1 1 λ λ dλ ( i, j) = ( ( wk ( i) wk ( j)) ) Gdzie: - λ 1 jeśli za λ przyjęte zostanie: λ = 2 uzyskana zostanie metryka Euklidesowa, λ = 1 to uzyskana zostanie metryka Manhattanu i λ to uzyskana zostanie metryka L e) miara odległości kosinusowa, wyrażana jest w postaci wzoru: d n w ( i) w ( j) k k k = 1 C ( i, j) = (8) n n 2 2 wk ( i) wk ( j) k = 1 k = 1 f) miara Jaccarda, wyrażana jest w postaci wzoru: n 2 w ( i) w ( j) d J ( i, j) (9) 2 w ( j) k k k = 1 = n n 2 wk ( i) + k k = 1 k = 1 g) miara współczynnika Dicea, wyrażany jest w postaci wzoru: 2 di d j dd( i, j) = (10) ( di + d j ) Wzór (współczynnik) Dicea można interpretować następująco: 2 liczba wspolnych wyrazen w dokumencie d i i d j d D ( i, j) = (11) liczba wyrazen w dokumencie d i + liczba wyrazen w dokumencie d j h) miara oszacowania pokrycia (ang. expected overlap measure) [36], wykorzystywana gdy wagi wyrażeń w ij zostały wyrażone probabilistycznie (równanie 2). Miara ta wyrażana jest w postaci wzoru: [ P( Yi = t di, M ) P( Y j = t d j, M ] d ( d, d, A) = ) (12) EO i j t D i D j W przestrzeni wektorowej wykorzystując ww. miary podobieństwa istnieje możliwość wyszukiwania dokumentów na podstawie zapytania Q. Wyszukiwanie to polega na wnioskowaniu opierającym się na zapytaniu Q, prowadzącym do odnalezienia najbardziej podobnych do niego obiektów. Obiekty te w opisywanym przypadku stanowią zbiór dokumentów tekstowych. Zapytanie Q może zostać wyrażone w postaci: a) Boolowskiej funkcji logicznej na zbiorze dostępnych wyrażeń np. pożar AND mocne zadymienie AND prąd gaśniczy AND NOT (prąd elektryczny), b) wektora wag Q = (q 1,,q j ), gdzie q j stanowi wagę wyrażenia w zapytaniu i q j є <0,1>. Jeżeli zapytanie Q będzie składało się z poszukiwanych wyrażeń i w przypadku zastosowania innej reprezentacji ich wag niż Boolowska, to otrzymany zostanie ranking poszukiwanych dokumentów. Zastosowanie zapytania Q w wektorowej wagowej postaci wyrażeń i zastosowanie jednolitego zapisu, tj. takiej samej wektorowej reprezentacji dla zbioru dokumentów i wyrażeń w postaci macierzy A oraz wektora Q, umożliwia stworzenie rankingu poszukiwanych dokumentów. Wyszukiwanie w tym przypadku opiera się na badaniu odległości, która jest określona za pomocą opisanych powyżej miar między wektorem zapytań Q składającym się z wybranych wyrażeń i ich wag a macierzą A (wierszami w przyjętej w opracowaniu reprezentacji). W przypadku zastosowania reprezentacji Boolowskiej zarówno dla A jak i Q przy wyszukiwaniu nie opartym na mierze lecz na dopasowaniu, istnieje szereg problemów m.in.: (7)

168 168 Marcin Mirończuk, Tadeusz Maciak a) brak jest naturalnego znaczenia pojęcia odległości między zapytaniem a dokumentem. W wyniku wyszukiwania uzyskiwany jest nieuporządkowany zbiór (względem miary) dokumentów, pasujących dokładnie do zapytania Q, b) brak jest możliwości wprowadzenia rankingu dokumentów, c) powstaje problem z konstruowaniem wyrażeń boolowskich, stąd pojawia się problem użyteczności (ang. usability) polegający na zrozumieniu przez użytkownika sposobu formułowania tych wyrażeń i ich stosowaniu. Mimo tych wad rozwiązanie oparte o reprezentacje Boolowską jest dalej popularne i szeroko stosowane ze względu na implementacyjną prostotę i efektywność. W celu przezwyciężenia ww. problemów stosuje się rozszerzone podejścia boolowskie do reprezentacji i wyszukiwania dokumentów, które pozwalają na uzyskanie rankingu (zakładają one częściowe dopasowanie dokumentów do zapytania). Wykorzystuje się również pozostałe wyżej wymienione odmiany reprezentacji dokumentów tekstowych tj.: częstotliwościową występowania wyrażeń, odwrotną częstość etc. Ich głównym atutem jest to iż umożliwiają tworzenie rankingu istotności zwracanych dokumentów na podstawie zadanego wzorca Q Klasyfikacja dokumentów tekstowych Klasyfikacja, nazywana także kategoryzacją, dokumentów tekstowych polega na określeniu do jakiej klasy dokumentów można zaliczyć wybrany tekst [41, 62-65] lub jego fragment [66, 67]. Klasyfikacja odbywa się za pomocą wyznaczonego w procesie uczenia klasyfikatora, który będzie dokonywał przyporządkowania dokumentów do jednej lub kilku uprzednio zdefiniowanych klas. Klasy te nie są definiowane wprost, lecz poprzez zbiór trenujący, który stanowi grupa dokumentów już odpowiednio zaklasyfikowana ręcznie np. przez ekspertów. W większości przypadków klasy nie są zagnieżdżane, natomiast przyjmuje się, iż jeden dokument może należeć do więcej niż jednej klasy. Do kategoryzacji dokumentów tekstowych używane są takie techniki, jak [68]: drzewa decyzyjne (ang. decission tree), reguły decyzyjne, algorytmy najbliższych sąsiadów i związane z nimi różnego rodzaju metryki (m.in. przedstawione w podpunkcie ), klasyfikator bayesowski, sieci neuronowe, metody regresyjne czy też techniki z zakresu maszyn wektorów wspierających (ang. suport vector machines SVM), oraz metody odnajdywania wspólnych podgrafów opartej na metodzie najbliższych sąsiadów ze specjalizowaną miarą odległości, w przypadku zastosowania modelu grafowego dokumentów [31] Grupowanie dokumentów tekstowych Grupowanie dokumentów tekstowych polega na wyznaczeniu grup podobnych dokumentów np. ze względu na ich tematykę, m.in. za pomocą analizy statystycznej słów występujących w tekście [5, 32, 41, 69-71]. Grupowanie dokumentów tekstowych jest zadaniem pokrewnym do klasyfikacji. W tym przypadku jednak system nie posiada wejściowej wiedzy w postaci już zakwalifikowanych dokumentów, czy też klas wyznaczonych przez ekspertów. Zadaniem tej metody jest takie pogrupowanie dokumentów, by dokumenty należące do jednej klasy były do siebie jak najbardziej podobne i jednocześnie różniły się znacząco od tych należących do innych klas. Do grupowania dokumentów tekstowych używane są takie techniki, jak: analiza skupień, klastrowanie (ang. clustering) [72], samoorganizujące się mapy (ang. self-organization map) [73], algorytmy aproksymacji wartości oczekiwanej (ang. expectation-maximization) [74] czy też zbiory przybliżone [75].

169 Proces i metody eksploracji danych tekstowych do przetwarzania raportów Wizualizacja Wizualizacja to metoda związana z końcową realizacją analizy tekstu i wykonywana jest w celu wizualizowania i lepszego zrozumienia otrzymanych wyników. Głównym celem wizualizacji jest zapewnienie inżynierowi wiedzy lub oprogramowania prostej metody interpretacji uzyskanych wyników. Najczęściej wizualizacji poddawane są związki zachodzące pomiędzy wyodrębnionymi faktami lub zależności zachodzące w strukturze rozpatrywanego zbioru dokumentów tekstowych [76]. Oprócz zaproponowanych metod wizualizacji danych tekstowych stosowanych podczas omawianego procesu przetwarzania raportów, istnieje szereg innych metod wizualizacyjnych. Związane są one zarówno z inżynierią wiedzy jak i eksploracyjną analizą tekstu. Do najbardziej znanych metod reprezentacji (wizualizacji) wyników (danych), należą: sieci semantyczne związane z ontologiami, kraty pojęć wykorzystywane w formalnej analizie pojęć, histogramy, wykresy słupkowe, kolumnowe, mapy znaczeń, wykresy gwiazdowe oraz macierze korelacji narysowane jako obrazy pikselowe wykorzystywane w wyszukiwaniu, klasyfikowaniu oraz grupowaniu dokumentów tekstowych [17, 33, 71, 77, 78]. 4. Podsumowanie Przedstawione metody analizy dokumentów tekstowych mogą służyć do przetwarzania raportów składowanych w systemie EWID PSP, sporządzanych z akacji ratowniczogaśniczych. Dalsze badania autorów będą dotyczyć procesu ekstrakcji wyrażeń, klasyfikacji oraz ekstrakcji informacji z dostępnych raportów. Aktualnie autorzy utworzyli korpus raportów składający się z oznakowanych zdań przydzielonych manualnie do wybranych klas, który jest gotowy do dalszego przetwarzania. Przewidywana jest ich reprezentacja w przestrzeni wektorowej, której wagi kolejnych wyrażeń będą zakodowane za pomocą jednego z opisywanych w artykule schematów wag wyrażeń. Aktualnie przewiduje się wykorzystanie wszystkich wymienionych w artykule reprezentacji, od boolowskiej do probabilistycznej, w celu znalezienia odpowiedniego kodowania do wyszukiwania rozwiązań w bazie półustrukturyzowanych użytecznych przypadków zdarzeń i klasyfikowania części raportów. Ekstrakcja wyrażeń będzie miała na celu wydobycie ze zdań raportów kluczowych wyrażeń charakterystycznych dla wyznaczonych klas. W następnym kroku zbudowany zostanie klasyfikator lub ich grupa w celu wyboru najlepszego rozwiązania oraz przeprowadzony zostanie proces klasyfikacji pozostałej, nieoznakowanej części raportów do utworzonych podpunktów (klas semantycznych). Za pomocą wybranych metod wizualizacyjnych oraz grupujących zostaną przeprowadzone numeryczne analizy zdań z wybranych klas. Działania te mają na celu utworzenie formalnego słownika pojęć (ontologii), w oparciu o który inżynierowie oprogramowania będą mogli przygotowywać częściową reprezentację danych wyrażoną np. w notacji obiektowej. Ontologie budowane na podstawie tych analiz mają stanowić język, który w przyszłości mógłby być zastosowany do przygotowywania meldunków. Na końcu przeprowadzony zostanie proces ekstrakcji informacji do utworzonych modeli. Autorzy dopuszczają możliwość uczenia przyrostowego i modyfikację utworzonych ontologii i modeli po zebraniu nowych danych w postaci nowo tworzonych raportów po interwencji sił i środków PSP. Ograniczenia i problemy w proponowanym procesie mogą wiązać się z elementem wykorzystywanym do translacji, ze względu na dwukierunkowe tłumaczenie. Niemniej rozwiązanie takie można zaproponować gdyż techniki te są cały czas rozwijane i doskonalone. Natomiast charakter zagrożeń jest międzynarodowy a ewentualne działania i kooperacje transgraniczne jednostek ratowniczych powoduje, że takie rozwiąza-

170 170 Marcin Mirończuk, Tadeusz Maciak nia powinny być brane pod uwagę. Problem ustandaryzowanego słownictwa opisującego zdarzenia w tworzonych meldunkach został rozwiązany za pomocą manualnie lub półautomatycznie tworzonych ontologii wraz z ich obiektową realizacją. Zastosowanie praktyczne w dziedzinie ratownictwa rezultatów badań, proponowanych rozwiązań, jest aktualnie niezależne od badaczy i w większym stopniu zależy od szczebli decyzyjnych w komendzie głównej PSP. Bibliografia [1] 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 pkt. 5 i 6. [2] Abakus: System EWID99. [on-line] [dostęp: 1 maja 2009] Dostępny w Internecie: [3] Abakus: System EWIDSTAT. [on-line] [dostęp: 1 maja 2009] Dostępny w Internecie: [4] Strona firmy abakus. [on-line] [dostęp: 1 marca 2009] Dostępny w Internecie: [5] Kozłowski J., Neuman Ł. Wspomaganie wyszukiwania dokumentów mapami samoorganizującymi. [Wrocław]: III Krajowa Konferencja MISSI 2002, września - Multimedialne i Sieciowe Systemy Informacyjne, [dostęp: 10 czerwca 2009] Dostępny w Internecie: [6] Krasuski A., Maciak T. Wykorzystanie rozproszonej bazy danych oraz wnioskowania na podstawie przypadków w procesach decyzyjnych Państwowej Straży Pożarnej. Zeszyty Naukowe SGSP, No 36, 2008, s [7] Mirończuk M., Maciak T. Problematyka projektowania modelu hybrydowego systemu wspomagania decyzji dla Państwowej Straży Pożarnej. Zeszyty Naukowe SGSP, No 39, [8] Kempa A. Zastosowanie rozszerzonej metodologii wnioskowania na podstawie przypadków - textual cbr w pracy z dokumentami tekstowymi. Katowice: Systemy Wspomagania Organizacji, [dostęp: 1 stycznia 2008] Dostępny w Internecie: [9] Zhou N., Cheng H., Chen H., Xiao S. The Framework of Text-Driven Business Intelligence. Wireless Communications, Networking and Mobile Computing, WiCom 2007 International Conference, [10] Mykowiecka A. Inżynieria lingwistyczna. Komputerowe przetwarzanie tekstów w języku naturalnym. Warszawa: PJWSTK, [11] Mirończuk M. Zmodyfikowana analiza FMEA z elementami SFTA w projektowaniu systemu wyszukiwania informacji na temat obiektów hydrotechnicznych w nierelacyjnym katalogowym rejestrze. Studia Informatica, No 2, [12] Paul F., Fearzana H., Enid H. The efficacy of the 'mind map' study technique. Medical Education, s [13] FreeMind - free mind mapping software. [dostęp: 12 lipca 2011] Dostępny w Internecie: [14] Mirończuk M. Systemy zarządzania bazą danych i architektura agentowa w służbach ratowniczych Państwowej Straży Pożarnej. CNBOP Bezpieczeństwo i Technika Pożarnicza, No 1, 2011.

171 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 171 [15] Doctrine MongoDB Object Document Mapper. [dostęp: 1 stycznia 2010] Dostępny w Internecie: [16] Hibernate. [dostęp: 10 marca 2011] Dostępny w Internecie: [17] Wolff K. E. A first course in formal concept analysis. [dostęp: 22 grudnia 2009] Dostępny w Internecie: home/wolff/publikationen /A_First_Course_in_Formal_Concept_Analysis.pdf. [18] Patil P. Applying Formal Concept Analysis to Object Oriented Design and Refactoring. Bombay: Department Of Computer Science and Engineering Indian Institute Of Technology, [19] Priss U. Formal concept analysis in information science. Annual review of information science and technology, No 40, 2006, s [20] Hwang S. H., Kim H. G., Yang H. S. A FCA-Based Ontology Construction for the Design of Class Hierarchy. In: Gervasi O., Gavrilova M., Kumar V., Laganà A., Lee H., Mun Y., et al., editors. Computational Science and Its Applications ICCSA 2005: Springer Berlin/Heidelberg, s [21] Carpineto C., Romano G. Using Concept Lattices for Text Retrieval and Mining. In: Ganter B., Stumme G., Wille R., editors. Formal Concept Analysis: Springer Berlin / Heidelberg, s [22] Maedche A., Staab S. Mining Ontologies from Text. Proceedings of the 12th European Workshop on Knowledge Acquisition, Modeling and Management, [23] Brewster C., Jupp S., Luciano J., Shotton D., Stevens R., Zhang Z. Issues in learning an ontology from text. BMC Bioinformatics, No 10, 2009, s [24] Jiang G., Ogasawara K., Endoh A., Sakurai T. Context-based ontology building support in clinical domains using formal concept analysis. International Journal of Medical Informatics, No 71, 2003, s [25] Radvansky M. Formal concept analyse. [dostęp: 1 maja 2011] Dostępny w Internecie: [26] Moens M. F. Information Extraction: Algorithms and Prospects in a Retrieval Context (The Information Retrieval Series). Springer, [27] Feldman R., Dagan I., Hirsh H. Mining Text Using Keyword Distributions. Journal of Intelligent Information Systems, No 10, [28] Witten I. H., Don K. J., Dewsnip M., Tablan V. Text mining in a digital library. International Journal on Digital Libraries, No 4, 2004, s [29] Maciołek P., Dobrowolski G. Propozycja metody klasyfikacji dokumentów w języku polskim. In: Grzech A., Juszczyszyn K., Kwaśnicka H., Nguyes N. T., editors. Inżynieria wiedzy i systemy ekspertowe. Warszawa: Akademicka oficyna wydawnicza EXIT, [30] Chow T. W. S., Haijun Z., Rahman M. K. M. A new document representation using term frequency and vectorized graph connectionists with application to document retrieval. Expert Systems with Applications, No 36, 2009, s [31] Schenker A., Kandel A., Bunke H., Last M. Graph-Theoretic Techniques for Web Content Mining. World Scientific Publishing Co, [32] Broda B. Mechanizmy grupowania dokumentów w automatycznej ekstrakcji sieci semantycznych dla języka polskiego. Wydział Informatyki i Zarządzania. Wrocław: Politechnika Wrocławska, [33] Hand D., Mannila H., Smith P. Eksploracja danych. Wydanie 1. Warszawa: Wydawnictwo Naukowo-Techniczne, [34] Morzy M., Królikowski Z. Metody indeksowania atrybutów zawierających zbiory. Pro Dialog, No 15, 2003, s

172 172 Marcin Mirończuk, Tadeusz Maciak [35] Dudczak A. Zastosowanie wybranych metod eksploracji danych do tworzenia streszczeń tekstów prasowych dla języka polskiego. Wydział Informatyki i Zarządzania Instytut Informatyki. Poznań: Politechnika Poznańska [36] Goldszmidt M., Sahami M. A Probabilistic Approach to Full-Text Document Clustering [37] Singhal A., Buckley C., Mitra M., Mitra A. Pivoted Document Length Normalization. ACM Press, 1996, s [38] Robertson S. E., Walker S., Jones S., Hancock-Beaulieu M. M., Gatford M. Okapi at TREC , s [39] Lin D. Using syntactic dependency as local context to resolve word sense ambiguity. [Madrid, Spain]: Annual Meeting of the ACL Proceedings of the 35th Annual Meeting of the Association for Computational Linguistics and Eighth Conference of the European Chapter of the Association for Computational Linguistics, [40] Matsuo Y., Ishizuka M. Keyword Extraction From A Single Document Using Word Co- Occurrence Statistical Information. International Journal on Artificial Intelligence Tools, No 13, 2004, s [41] Borycki Ł., Sołdacki P. Automatyczna klasyfikacja tekstów. [Wrocław]: III Krajowa Konferencja MISSI 2002, września - Multimedialne i Sieciowe Systemy Informacyjne, [dostęp: 10 czerwca 2009] Dostępny w Internecie: [42] Neumann G., Piskorski J. A Shallow Text Processing Core Engine. Computational Intelligence, No 18, 2002, s [43] Praca zbiorowa Wikipedia. Full text search. [dostęp: 10 czerwca 2009] Dostępny w Internecie: [44] Bikel D. M., Schwartz R., Weischedel R. M. An Algorithm that Learns What's in a Name. Machne Learning, 1999, s [45] McNamee P. Language identification: a solved problem suitable for undergraduate instruction. Journal of Computing Sciences in Colleges, No 20, 2005, s [46] He X., Yang M., Gao J., Nguyen P., Moore R. Improved Monolingual Hypothesis Alignment for Machine Translation System Combination. No 8, 2009, s [47] Feng Y., Liu Y., Mi H., Liu Q., Lü Y. Lattice-based system combination for statistical machine translation. [Singapore]: Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing, Volume 3, [48] He X., Toutanova K. Joint optimization for machine translation system combination. [Singapore]: Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing, Volume 3, [49] Dasgupta A., Drineas P., Harb B., Josifovski V., Mahoney M. W. Feature selection methods for text classification. [San Jose, California, USA]: Proceedings of the 13th ACM SIGKDD international conference on Knowledge discovery and data mining, [50] Li S., Xia R., Zong C., Huang C. R. A framework of feature selection methods for text categorization. [Suntec, Singapore]: Proceedings of the Joint Conference of the 47th Annual Meeting of the ACL and the 4th International Joint Conference on Natural Language Processing of the AFNLP, Volume 2, [51] Karlgren J., Sahlgren M. From Words to Understanding [dostęp: 10 stycznia 2010] Dostępny w Internecie: [52] Liu H., Yu L. Toward integrating feature selection algorithms for classification and clustering. Knowledge and Data Engineering, IEEE Transactions, No 17, 2005, s

173 Proces i metody eksploracji danych tekstowych do przetwarzania raportów 173 [53] Guyon I., Elisseeff A. Introduction to Feature Extraction. Studies in Fuzziness and Soft Computing. Berlin/Heidelberg: Springer [54] Torkkola K. Feature extraction by non parametric mutual information maximization. The Journal of Machine Learning Research, No 3, 2003, s [55] Pal S. K., Mitra P. Pattern Recognition Algorithms for Data Mining Scalability, Knowledge Discovery and Soft Granular Computing. London New York Washington, D.C.: Chapman & Hall, [56] Praca zbiorowa JMLR Special Issue on Variable and Feature Selection. [dostęp: 5 stycznia 2010] Dostępny w Internecie: [57] Deerwester S., Dumais S. T., Furnas G. W., Landauer T. K., Harshman R. Indexing by latent semantic analysis. Journal of the American Society for Information Science, No 41, 1990, s [58] Kozłowski M. Systemy uczące się - studium problemów. Warszawa: Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych. [dostęp: 12 stycznia 2010] Dostępny w Internecie: [59] Tuv E. Ensemble Learning. In: Guyon I., Gunn S., Nikravesh M., Zadeh L. A., editors. Feature Extraction: Foundations and Applications (Studies in Fuzziness and Soft Computing) (Hardcover): Springer, [60] Baeza-Yates R., Ribeiro-Neto B. Modern Information Retrieval. Boston: Addison- Wesley Longman Publishing, [61] Manning C. D., Raghavan P., Schtze H. Introduction to Information Retrieval. Cambridge University Press India, [62] Song F., Liu S., Yang J. A comparative study on text representation schemes in text categorization. Pattern Analysis & Applications, No 8, 2005, s [63] Weigend A. S., Wiener E. D., Pedersen J. O. Exploiting Hierarchy in Text Categorization. Information Retrieval, No 1, [64] Yang Y., Liu X. A re-examination of text categorization methods. [New York]: ACM SIGIR Conference of Research and Development in Information Retrieval, [65] Łażewski Ł., Pikuła M., Siemion A., Szklarzewski M. Klasyfikacja dokumentów tekstowych. Warszawa: PJWSTK Dostępny w Internecie: [66] Agarwal S., Yu H. Automatically classifying sentences in full-text biomedical articles into Introduction, Methods, Results and Discussion. Bioinformatics, No 25, 2009, s [67] Sebastiani F. Machine learning in automated text categorization. ACM Comput Surv, No 34, 2002, s [68] Aas K., Eikvil L. Text Categorisation: A Survey. Technical Report, Norwegian Computing Center, [69] Weiss S., White B., Apte C., Weiss S. M., White B. F., Apte V. Lightweight Document Clustering [70] Domeniconi C., Gunopulos D., Ma S., Papadopoulos D., Yan B. Locally adaptive metrics for clustering high dimensional data. Data Mining and Knowledge Discovery, No 1, 2006, s [71] Solka J. L. Text Data Mining: Theory and Methods. Statistic Survey. [72] Everitt B. S., Landau S., Leese M. Cluster Analysis [73] Kohonen T. Self-Organizing Maps. In: Sciences S.S.i.I., editor. Wydanie 3. Berlin: Springer, 2001.

174 174 Marcin Mirończuk, Tadeusz Maciak [74] Dempster A. P., Laird N. M., Rdin D. B. Maximum Likelihood from Incomplete Data via the EM Algorithm. Journal of the Royal Statistical Society, No 39, 1977, s [75] Rutkowski L. Metody i techniki sztucznej inteligencji. Wydawnictwo Naukowe PWN, [76] Lula P. Text mining jako narzędzie pozyskiwania informacji z dokumentów tekstowych. StatSoft, [77] Friedman V. Data Visualization: Modern Approaches. [dostęp: 29 grudnia 2009] Dostępny w Internecie: [78] Piwowar K. Wizualizacja danych a ich używalność czyli pokazać to tak, aby inni to zrozumieli. [dostęp: 29 grudnia 2009] Dostępny w Internecie: Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego w ramach Programu Operacyjnego Kapitał Ludzki Działanie 8.2 Transfer wiedzy, Poddziałanie Regionalne strategie innowacji, budżetu państwa oraz środków Samorządu Województwa Podlaskiego. Artykuł finansowany w ramach pracy statutowej S/WI/4/08

175 Charakter ruchu HTTP w lokalnych sieciach bezprzewodowych Remigiusz Olejnik Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: The article presents research on the nature of the traffic in wireless local area networks (WLAN). There are presented conditions for assuming the traffic as self-similar. Then undertaken experiments are shown for the traffic collected in five WLANs, three methods has been used: IDC (index of dispersion) and CV (coefficient of variation) indices, R/S method and method of variance time analysis. The article ends with final conclusions regarding observed dependence. Keywords: self-similarity, computer networks 1. Wprowadzenie Wieloletnie badania wykazały, iż ruch w sieciach komputerowych charakteryzuje się zależnościami długoterminowymi, tzn. w większej skali czasowej ruch generowany przez źródła wykazuje cechy samopodobieństwa. Zależności te obserwowane są na poziomie wielu warstw, jak też dla różnych topologii i technologii sieciowych [1], [2], [3], [4], [5]. Charakter ruchu ma znaczny wpływ na wydajność sieci komputerowych np. na długość kolejek w przełącznikach, co pociąga za sobą większe opóźnienia czy prawdopodobieństwo utraty pakietu z powodu przepełnienia buforów. Znajomość charakteru ruchu pozwala na projektowanie adekwatnych algorytmów zapewniania jakości usług (QoS Quality of Service). Zdecydowana większość dotychczasowych prac dotyczyła sieci przewodowych. Niniejsza praca podejmuje problematykę badania charakteru ruchu w lokalnych sieciach bezprzewodowych. Badanie charakteru ruchu w sieciach bezprzewodowych ograniczone zostało do jednego tylko protokołu warstwy aplikacyjnej, tj. HTTP (HyperText Transfer Protocol), a to dlatego, iż aktualnie jest to dominująca, najbardziej znacząca część całego ruchu w sieciach komputerowych. Dalsza część niniejszej pracy podzielona jest na dwie części: rozdział drugi zawiera podstawy teoretyczne stochastycznych procesów samopodobnych, natomiast rozdział trzeci prezentuje wyniki analizy natężenia ruchu w sieciach WLAN pod kątem samopodobieństwa. Rozdział czwarty podsumowuje pracę. 2. Metody oceny samopodobieństwa Za definicję samopodobieństwa procesu stochastycznego przyjęto następujące sformułowanie [1],[6]: Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

176 176 Remigiusz Olejnik Proces stochastyczny X t jest samopodobny z parametrem samopodobieństwa H, jeżeli dla dodatniego czynnika g przeskalowany proces g H X gt ma ten sam rozkład co oryginalny proces X t. Parametr H nazywany jest wykładnikiem Hursta. Proces stochastyczny dla którego H 0, 5 jest procesem, w którym występują zależności długoterminowe, a wartość H wskazuje na długość pamięci. Znanych jest wiele metod weryfikowania i oceny samopodobieństwa, a najbardziej popularne są oparte na doświadczeniach i analizach Hursta, pierwotnie dotyczących fluktuacji poziomu wody w Nilu [8]. Poniżej przedstawiono cztery metody najbardziej popularne w ocenie charakteru ruchu w sieciach komputerowych Metoda R/S Znormalizowaną bezwymiarową miarą charakteryzującej zmienność jest przeskalowany zakres R/S [7]. Dla zbioru obserwacji X = {X m, m Z + }, ze średnią X(m), wariancją S 2 (m) i zakresem R(m) statystyka R/S jest dana jako [8]: gdzie k = R(m) S(m) = max(0, 1, 2,..., m ) min(0, 1, 2,..., m ), (1) S(m) k X i kx dla k = 1, 2,..., m. i=1 Hurst zauważył także, że dla wielu zjawisk naturalnych, dla m oraz dla stałej c niezależnej od m prawdziwa jest zależność: [ ] R(n) E cm H. (2) S(n) Po dwustronnym zlogarytmowaniu, dla m otrzymujemy: [ ]} R(m) log 10 {E H log S(m) 10 (m) + log 10 (c). (3) [ R(m) S(m) Z zależności tej można oszacować wartość wykładnika ]} Hursta aby tego dokonać, należy wziąć pod uwagę charakterystykę log 10 {E w funkcji log 10 (m), po czym aproksymować ją prostą, której współczynnik kierunkowy daje szacunkową wartość H. Wartość H w zakresie 0, 5 H 0, 75 jest przesłanką występowania samopodobieństwa, a więc wykres powinien znaleźć się pomiędzy prostymi pomocniczymi danych wzorami: y 1 = x oraz y 2 = 1 2 x Metoda analizy czasu wariancji procesu zagregowanego Wariancja procesu zagregowanego X (m) k dana jest wzorem [1]: gdzie 0 < β < 1, a σ 2 jest wariancją procesu X (m) k wartością wykładnika Hursta H zależnością: V ar(x (m) k ) = σ 2 m β, (4) dla m = 1. Wartość β jest powiązana z H = 1 β 2, (5) V ar(x w której wartość β odpowiada nachyleniu wykresu log (m) k ) 10 do log σ 2 10 (m).

177 Charakter ruchu HTTP w lokalnych sieciach bezprzewodowych Metoda szacowania wskaźnika dyspersji IDC oraz współczynnika zmienności CV Metoda szacowania wskaźnika dyspersji IDC (ang. index of dispersion) oraz współczynnika zmienności CV (ang. coefficient of variation) dla procesu mx (m) k w czasie m oparta jest o analizę wartości IDC oraz CV [1]: Wskaźnik dyspersji IDC dany jest wzorem: IDC(m) = V ar(mx(m) k ) E(mX (m) k ), (6) gdzie: V ar(mx (m) k ) jest wariancją liczby pakietów przybyłych w oknie czasowym o długości m, E(mX (m) k ) jest średnią liczbą pakietów w czasie m. Dla procesów samopodobnych wartość IDC charakteryzuje się monotonicznym wzrostem [1]. Współczynnik zmienności CV dany jest wzorem: V ar(mx (m) k ) CV (m) =, (7) E(mX (m) k ) gdzie: V ar(mx (m) k ) jest odchyleniem standardowym liczby pakietów przybyłych w oknie czasowym o długości m, E(mX (m) k ) jest średnią liczbą pakietów w czasie m. Dla procesów samopodobnych wartość CV jest dużo większa od 1 dla małych odstępów czasu [1] Metoda graficzna W metodzie graficznej oceniane jest zachowanie zmienności wykresu w czasie (tutaj: liczby pakietów w oknie czasowym o długości m) przy zmianie skali czasu poszukiwana jest korelacja pomiędzy własnościami wykresu dla różnych skali czasu. Metoda ta nie jest uwzględniona w dalszej części niniejszej pracy. 3. Badania charakteru ruchu w bezprzewodowych sieciach lokalnych Jak już wspomniano wcześniej, problematyka oceny charakteru ruchu w sieciach komputerowych nie jest nowa. Podsumowanie prac prowadzonych nad sieciami przewodowymi znaleźć można w [1] Metodyka badań Badania przeprowadzono analizując ruch z pięciu bezprzewodowych sieci lokalnych. Konfiguracja stanowiska badawczego była następująca: komputer: Asus Eee PC 1005HA (M) Intel Atom N270, 1,6 GHz, 1 MB RAM, karta sieciowa: Atheros Communications Inc. AR9285 Wireless Network Adapter,

178 178 Remigiusz Olejnik system operacyjny: Linux Ubuntu 10.10, oprogramowanie: Wireshark Ruch był zbierany z sieci do pliku, a następnie poddawany obróbce tj. filtrowaniu z uwzględnieniem ruchu HTTP, po czym zapisywany w formacie CSV. Kolejno odfiltrowana została druga kolumna pliku CSV zawierająca czas odebrania pakietu danych stanowiąca źródło do analizy w systemie MATLAB R2010b. Wynikiem działania skryptu MATLABowego były wykresy oraz wartości H dla trzech omówionych wcześniej metod Wyniki badań Tabela 1 zawiera zebrane wyniki pomiarów: ilość odebranych pakietów, czas trwania nasłuchu oraz wartości wykładnika Hursta: H 1, H 2 i H 3 odpowiednio uzyskane metodą R/S, aggvar oraz IDC/CV. Rysunki 1 4 przedstawiają wykresy generowane przez konkretne metody przedstawiony został jedynie zestaw wykresów dla sieci nr 4, bowiem dla pozostałych zbiorów danych (tj. sieci w której ruch był zbierany) wykresy są zbieżne z przedstawionymi. Tabela 1. Wyniki pomiarów nr ilość czas H 1 H 2 H 3 sieci pakietów [s] R/S aggvar IDC/CV ,0177 0,9928 0, ,0058 1,0021 0, ,0092 1,0023 0, ,0120 0,9991 0, ,0250 1,0002 0,9026 Z tabeli 1 jednoznacznie wynika, iż wartości wykładnika Hursta otrzymane różnymi metodami znacznie różnią się pomiędzy sobą. Dla wszystkich sieci metoda IDC/CV wskazuje na występowanie zjawiska samopodobieństwa (0, 5 < H < 1 oraz wykresy na rysunku 3 i 4), natomiast nie jest to potwierdzone przez pozostałe dwie metody. Metoda analizy czasu wariancji procesu zagregowanego (aggvar) wskazuje na samopodobieństwo w sieci 1 oraz 4 Rysunek 1. Wykres log 10 {E [ ]} R(m) S(m) w funkcji log 10 (m) dla sieci nr 4

179 Charakter ruchu HTTP w lokalnych sieciach bezprzewodowych 179 Rysunek 2. Wykres log 10 V ar(x (m) k ) σ 2 w funkcji log 10 (m) dla sieci nr 4 Rysunek 3. Wykres IDC(m) = V ar(mx(m) k ) w funkcji m dla sieci nr 4 E(mX (m) k ) Rysunek 4. Wykres CV (m) = V ar(mx (m) k ) w funkcji m dla sieci nr 4 E(mX (m) k )

180 180 Remigiusz Olejnik (wykres na rysunku 2). Dla metody R/S wyniki H 1 > 1 oznaczają brak zależności długoterminowych dla wszystkich sieci (wykres na rysunku 1). Podsumowując można stwierdzić, iż dla żadnej z badanych sieci nie zaobserwowano występowania samopodobieństwa dla ruchu HTTP. Dalsze badania powinny zostać ukierunkowane na zweryfikowanie poprawności wyników dawanych przez opisane metody, jak też uwzględnić zbiory danych o znacznie większej wartości m, tzn. zawierające dane z dłuższych przedziałów czasowych. 4. Podsumowanie Przedstawione wyniki nie dowodzą jednoznacznie samopodobnego charakteru ruchu HTTP w lokalnych sieciach bezprzewodowych. Z racji dużych rozbieżności pomiędzy otrzymanymi wynikami, konieczne są dalsze badania, zwłaszcza takie, które pozwolą zweryfikować poprawność wyników uzyskiwanych dzięki opisanym w pracy metodom. Ponadto konieczne jest zweryfikowanie wpływu długości badanej próby długości okna czasowego m na uzyskiwane wyniki, przede wszystkim poddając analizie zbiory danych o znacznie większej wartości m. Kolejnym problemem jest, wynikająca ze specyfiki pracy węzłów sieci bezprzewodowych, niekompletność danych pomiarowych zjawisko węzła ukrytego nie pozwala często na zebranie danych przesyłanych od węzła sieci do punktu dostępowego, co również może wpływać na charakter ruchu widziany przez jedną ze stacji nasłuchującą w sieci. Bibliografia [1] Czachórski T., Domańska J., Sochan A. Samopodobny charakter natężenia ruchu w sieciach komputerowych Studia Informatica, vol. 22 no 1 (43), pp , [2] Leland W. E., Taqqu M. S., Willinger W., Wilson D. V. On the self-similar nature of Ethernet traffic (extended version) IEEE/ACM Transactions on Networking, vol. 2 no 1, pp. 1 15, [3] Crovella M. E., Bestavros A. Self-Similarity in World Wide Web traffic: evidence and possible causes IEEE/ACM Transactions on Networking, vol. 5 no 6, pp , [4] Feldmann A., Gilbert A. C., Willinger W., Kurtz T. G. The Changing Nature of Network Traffic: Scaling Phenomena ACM SIGCOMM Computer Communication Review, vol. 28 no 2, pp. 5 29, [5] Paxson V., Floyd S. Wide Area Traffic: The failure of Poisson modeling IEEE/ACM Transactions on Networking, vol. 3 no 3, pp , [6] Beran J. Statistics for Long-Memory Processes Chapman and Hall, [7] Grabowski F. Procesy 1/f w systemach rozproszonych Studia Informatica, vol. 23 no 2A (48), pp , [8] Bassingthwaighte J., Raymond G. Evaluating rescaled range analysis for time series Annals of Biomedical Engineering, vol. 22 no 4, pp , 1994.

181 Support, analysis and reporting system of the sport events Sławomir Wiak, Paweł Drzymała, Henryk Welfle Technical University of Lodz, Faculty of Electrical, Electronic, Computer and Control Engineering Abstract: The paper presents the assumptions and the introduction of the system related with maintenance, analysis and reporting events. Presented assumptions, design and performance of the system. Paper describes the different functionality of the system and their solutions. The paper presents the flow diagrams related to customer service. The approach serves as a type of workflow system stored in the application. Work applies to the operation football games. The event must be monitored and supervised for safety reasons since buying a ticket for entry to stadium. Keywords: Database Management System, reporting, support sporting events, workflow 1. Introduction The task of the present system is to store information about: employee management, fans taking part in events, events held in the sport buildings, sectors and locations, the prices of individual tickets and passes, the entrances to allow fans to enter the facility and the specific sector and location, sold tickets and passes to events, the fans wanted, and create reports. The application is intended primarily for sporting events. It may also cover entertainment events, where the number of places on the facility (i.e. stadium) is big. 2. Assumptions of the system architecture System of mass events is implemented in the development environment of Microsoft. NET using C# programming language included in Microsoft Visual Studio The database was constructed in an IBM DB2 database 9.7. The database structure can be made in other relational database systems such as Oracle 11g. The authors used the technology from IBM and Microsoft but can be successfully used other alternative technologies such as Java, PHP. The general principles of the system are as follows: - data security, - reliability, - streamlining of the distribution, - the possibility of online reporting, - flexibility, - intuitive operation, - expandable system. The system is made in the n-tier architecture. There are the following software layers: - layer of the database server, Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

182 182 Sławomir Wiak, Paweł Drzymała, Henryk Welfle - layer of the application server, - layer of the presentation (client). Users of the system: administrators, cashiers, security guards, etc. Ultimately, the authors plan to expand the existing web applications with modules for operations such as access to new users to register in order to purchase passes for the event. It should provide secure access to data using a secure SSL connection. An important element of such a system is the performance of the application server (i.e. the potential load from callers to the application server). 3. Database project The database system was designed according to the general rules. Tables perform the following functions related to data storage. Figure 1. The database schema of the system Descriptions of tables: - Users - stores information about users, - UserTypes - contains data about the types of users, - DocumentTypes - stores the names of the documents - Places - contains information about places in the stadium, - Events - details of the event, - Sectors - stores the positions of sectors and zones, - TicketPrices - data on ticket prices, - PointsSectors - contains data on the volume of the sectors and zones, - Carnets passes data, - CarnetPrices - data on ticket prices, - CarnetEvent - stores information about events in the booklet - CashierEvents - information about events, which supports the cashier, - CashierCarnets passes data that supports the cashier,

183 Support, analysis and reporting system of the sport events TicketsSold - detailed information on sold tickets, - CarnetsSold - detailed information on sold passes, - Messages - contains information about messages, - MessageList - list of user data messages, - SectorsListEntry - information about the sectors assigned to inputs, - SecurityListEntry - security guards assigned to the entry, - PersonsAdmitted - data about the fans admitted to the event, - StadiumEvents - information about the stadium events. Application business logic is contained in stored procedures, functions and triggers. 4. The functionality of the system The functionality of the system is shown in the diagrams use cases for administrators, cashiers and security. Logout Adding employees Editing employees Login Addingevents Change password Editingevents Report preview Administrator Removedevents Portal -settings management Addingsectors Sending messages Management of security personnel. Management cashiers Editingsectors Removed sectors Addingentries Editingpasses Removed entries Addingpasses Editingentries Figure 2. Use case diagram for administrator Ticketsales CheckingID Ticketpasses Ticketschecking Cashier Addingfans Sending messages Acceptanceof returns. Change password Security personnel Passeschecking Entering information aboutstopping Enteringevents Sending messages Change password Login Login Logout Figure 3. Use case diagram for cashier Logout Figure 4. Use case diagram for security guard.

184 184 Sławomir Wiak, Paweł Drzymała, Henryk Welfle 5. Application with a module dedicated to reporting The administrator can view the following reports: number of purchased tickets (or ticket), statistical analysis quantity of purchased tickets (i.e. depending on the sector), the percentage of occupied sectors of statistical analysis for a given event, monthly summary, analysis of the percentage of the list of persons banned by the system as a result of incidents that occurred with the participation of these people in the past. All these data are available in the form of reports and graphical representation (possible of the details of individual events), users, industries, etc. For this purpose, have been used for Reporting Services. Sample menu of reports is presented in Figure 5. Figure 5. Reporting of the system 6. Application modules for designed system The application has three modules designed to support the system, depending on their functions and role in the system (administrator, clerk, checker / bodyguard). Given roles in the system are an integral whole and their functions are complementary (i.e. there is no such possibility of selling the ticket, without the role of the administrator, that defines the schema of the stadium, sector, location, etc.) The role of the administrator The role of the administrator is available to the admin panel (Fig. 6). The role of the administrator allows, among others: - management of users, - event management, - management sectors, - management inputs, - management of the passes - managing cashiers, - management of security personnel, - messages to employees, - settings for the portal, - creation of reports and studies, - change your password.

185 Support, analysis and reporting system of the sport events 185 Figure 6. Admin Panel The admin panel is used to define the functionality and division of the stadium (i.e. division by sectors, rows in the sectors and seats in a row). Additionally, administrator can select the place reserved for the so-called. VIPs or those with permanent reservations. In the system as a first step should be performed: - enter to the system of photographs of the sports facility and the sectors plan (in the appropriate size and type) - enter to the system of type of employee ID and fan; - enter of information how many hours before the event, sports facility is open; - enter of information what are the criteria for selling half-price tickets (age persons, what documents should be show, the price of tickets) The above steps are necessary to obtain full functionality of the system The role of the cashier Figure 7. The window of sectors for the event In order to sell a ticket, enter the person's ID code uniquely assigned to fan card with a photo. Cashier has the option to inspect the history of fans. Then it selects the appropriate sector and position in the sector. All activities are suggested in the status bar. Cashier has the option to keep the preview occupied seats.

186 186 Sławomir Wiak, Paweł Drzymała, Henryk Welfle Figure 8. The window of the ticket sales The detailed process of buying a ticket by the fan has been proposed and presented to the flow diagram (workflow) for Figure 9 It is possible to transfer functional diagram presented in another engine such as Oracle Workflow OWF. The approach of using a workflow engine seems to be more flexible because of the possibility of mapping the dynamically changing reality The role of security personnel Figure 9. Ticket sales diagram After logging to this role, the functionality are available as in Figure 10.

187 Support, analysis and reporting system of the sport events 187 Figure 10. The window of the ticket sales Figure 11. Message for wanted person The panel contains basic information about the logged bodyguard, assigned entry to the sectors for fans. Thus, there is clear assignment of responsibilities to the employee. After reading the fan ID number, employee can receive a window indicating that the fan is wanted. Identification of individual fan is done using bar codes and images of the person shown on the card. Code bar scanned from ticket (or from passes) gives a information about what should be done with a person. Available options are: - no entry for that fan, - entry for fan, - refer fan to another sector, etc. The course was proposed to admit fan and presented to the flow diagram, Figure 12. Figure 12. Allowing access diagram

188 188 Sławomir Wiak, Paweł Drzymała, Henryk Welfle 7. Summary The paper presents support, analysis and reporting system of the sport events using databases. The system is designed for sports facilities such as a stadium, sports hall, which allow a mass event. A system can support three types of employees (administrators, cashiers, security guards) who have the own tasks. Users of the system are also fans who register on the system and can buy tickets for the sports event using the registration ID received. The system was created to improve the operation of sports facilities and the safety of persons. The system is complex and require detailed analysis of the project for its implementation. An important element was to define the business logic provided for the tasks. The correct operation of the system is connected with the correct database design. References [1] Chong R. F., Liu C., Qi S. F., Snow D. R. Understanding DB2: Learning Visually with Examples [2] Smarter Planet IBM, [3] Mendrala D., Szeliga M. Serwer SQL Usługi biznesowe. Analiza i eksploracja danych, Helion 2009, Gliwice. [4] IBM DB2 dla systemów Linux, UNIX i Windows - Centrum informacyjne, [5] Microsoft: SQL Server Analysis Services Tutorial, library/ms aspx,2008 [6] Larose D.T. Odkrywanie wiedzy z danych, Warszawa, 2006

189 Neuronowy system optymalizacji wyniku sportowego zawodników uprawiających chód sportowy Krzysztof Przednowek 1, Krzysztof Wiktorowicz 2 1 Uniwersytet Rzeszowski, Wydział Wychowania Fizycznego 2 Politechnika Rzeszowska, Wydział Elektrotechniki i Informatyki, Katedra Informatyki i Automatyki Abstract: In this paper a system constructed on the basis of data obtained from workout of race walking athletes has been presented. The system s main objective is to define the optimal level of workout load so that the athlete achieves the determined result over the distance of 5 km. The system has been built using artificial neural networks implemented in the Statistica 10 software. The networks perform two tasks, i.e. they generate workout scheme and predict the result. The system has an advisory nature and plays the role of a tool supporting coach s decision making. Keywords: Artificial neural networks, optimization, sport training, workout loads, race walking 1. Wprowadzenie Wykorzystanie sztucznych sieci neuronowych (SSN) w procesie szkolenia sportowego stwarza nowe możliwości zarówno dla zawodników, jak i trenerów. Niniejsza praca jest przykładem zastosowania SSN w dziedzinie sportu. Wykorzystanie SSN w modelowaniu treningu sportowego zostało przedstawione między innymi w pracach [13, 14]. Zaprezentowany tam model neuronowy miał na celu wygenerowanie optymalnych obciążeń treningowych (treningu) dla uzyskania jak najlepszego wyniku sprinterek. System został zbudowany w oparciu o dane 20 zawodniczek w wieku lat uprawiających lekkoatletyczne biegi na 100 m. Model charakteryzował się tym, że generował wyniki zbliżone do obserwowanych. Modelowanie treningu sportowego pływaków za pomocą inteligentnych metod obliczeniowych opisano w pracy [7]. Zawarto w niej przykład zastosowania sztucznych systemów immunologicznych do określenia rodzaju bodźca treningowego oraz wpływu treningu na odczucia pływaków w wodzie następnego dnia. Kolejne zastosowanie SSN przedstawiono w pracach [11, 12], w których opisano program komputerowy wykorzystujący sieć neuronową wraz z regułowym systemem ekspertowym. Program realizował predykcję rezultatu sportowego dla zadanego treningu. Skonstruowano go na bazie danych zawodników uprawiających chód sportowy. Użytkownik na wejście systemu podawał parametry zawodnika wraz z treningiem, otrzymując na wyjściu przewidywany rezultat na dystansach 5 i 10 km. Zastosowanie SSN do predykcji sportowej zostało zaprezentowane również w pracy [15]. Opisano w niej sieć neuronową, która na podstawie wielkości charakteryzujących kandydata prognozowała poziom jego przyszłego rozwoju. Dane pozyskane zostały w wyniku przeprowadzenia badań w pięciu grupach wiekowych piłkarek ręcznych. Do budowy modelu wykorzystano zbiór 26 badanych cech, z których w końcowej fazie wykorzystano jedynie 14. Jednakże model ten nie uwzględniał wpływu treningu sportowego na uzyskany poziom rozwoju. Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

190 190 Krzysztof Przednowek, Krzysztof Wiktorowicz Innym zastosowaniem SSN w sporcie jest wykorzystanie modeli neuronowych w selekcji sportowej. Propozycje takiego zastosowania pokazano w pracy [14]. Opisano w niej neuronowe metody selekcji kandydatów do szkolenia sportowego. Pierwsza metoda opiera się na stworzeniu modelu neuronowego reprezentującego zależność pomiędzy charakterystyką kandydata do szkolenia sportowego, a wielkościami określającymi późniejszy rozwój sportowy. Druga metoda wykorzystywała sieć Kohonena uczoną bez nauczyciela. W procesie uczenia sieci wykorzystywane były dane zawierające parametry sportowców w chwili rozpoczęcia szkolenia. Parametry wprowadzano na wejścia sieci, nauczona sieć wyznaczała dla danych wejściowych jeden neuron warstwy wyjściowej. Neurony wyjściowe reprezentowały wybraną klasę sportowców, do której przyporządkowane były uśrednione rezultaty szkoleniowe. Oprócz SSN w selekcji sportowej można także wykorzystać rozmyte systemy ekspertowe. Przykład takiego systemu zaprezentowano w pracy [9]. Zaprezentowany system wykorzystywał wiedzę ekspertów z dziedziny sportu, jak i dane uzyskane w wyniku przeprowadzenia wielu testów motorycznych. System na podstawie danych kandydata proponował najbardziej odpowiednią dyscyplinę sportową. Przedstawiony w niniejszej pracy system jest nową propozycją optymalizacji wyniku sportowego zawodników uprawiających chód sportowy. Wykorzystano w nim dwie funkcjonalności zrealizowane za pomocą SSN. Pierwsza to opisana wcześniej predykcja rezultatu sportowego, natomiast druga to zamodelowanie treningu. System ten różni się od dotychczasowych programów tym, że obie funkcjonalności zintegrowano, tak aby wspólnie przyczyniały się do właściwego ułożenia treningu sportowego. 2. Dane treningowe Do budowy systemu posłużyły dane pozyskane z dzienniczków treningowych (rysunek 1) zawodników uprawiających chód sportowy. Zawodnicy, którzy udostępnili dzienniczki charakteryzowali się wysokim poziomem wytrenowania (I i II klasa sportowa). Dane wchodzące w skład parametrów zawodnika to ciężar i wysokość ciała. Natomiast wyniki to rekord życiowy na dystansie 5 km oraz rezultat teraźniejszy na tym dystansie. Wśród zawodników na poziomie mistrzowskim bardzo ważną rolę odgrywa specjalne przygotowanie do tzw. docelowych startów danego sezonu. Ta charakterystyczna faza treningu jest nazywana bezpośrednim przygotowaniem startowym (BPS). Czynnikiem determinującym wielkość obciążenia treningowego w BPS jest okres realizacji pracy treningowej przed pierwszym prestiżowym startem [10]. Wszystkie dane treningowe dotyczyły wyłącznie okresu BPS trwającego 14 dni. Pod uwagę wzięto treningi dwutygodniowe poprzedzające pierwszy start w sezonie. Dane treningowe miały postać środków i obciążeń treningowych. Obciążenie treningowe to wielkość pracy o określonej intensywności jaką wykonał zawodnik w danym ćwiczeniu. Natomiast środek treningowy to typ wykonywanej pracy [16]. W niniejszym przypadku zawodnicy stosowali w okresie BPS trzy różne środki treningowe: ogólną wytrzymałość chodziarska w 1 zakresie intensywności (OWCH1), ogólną wytrzymałość w 2 zakresie intensywności (OWCH2) oraz wytrzymałość tempową (WT). Parametry te przyjmują wartości z następujących przedziałów: OWCH1 0,50 km, OWCH2 0,50 km, WT 0,30 km. Najprościej ujmując środek treningowy jest to rodzaj wykonywanego ćwiczenia. OWCH1 jest to chód ciągły wykonywany na poziomie 70 75% tętna maksymalnego. Natomiast OWCH2 jest to chód ciągły na poziomie 75 85% tętna maksymalnego. Wytrzymałość tempowa to ćwiczenia biegowe na krótkich odcinkach wykonywanych z intensywnością na poziomie % tętna maksymalnego [3].

191 Neuronowy system optymalizacji wyniku sportowego zawodników uprawiających 191 Rysunek 1. Fragment dzienniczka treningowego zawodnika chodu sportowego 3. Budowa i działanie systemu System optymalizacji wyniku sportowego zawodników uprawiających chód sportowy zbudowany jest z dwóch bloków, z których każdy realizuje następujące zadanie: generowanie treningów BPS dla zadanego rezultatu sportowego (blok GT), predykcja rezultatu sportowego dla zadanego treningu BPS (blok PR). Na rysunku 2 przedstawiono schemat blokowy systemu, w którym opisano sygnały wejściowe i wyjściowe poszczególnych bloków. Pierwszy blok generuje trzy treningi dla zadanego rezultatu i parametrów zawodnika, drugi blok realizuje predykcję rezultatu sportowego dla określonego treningu BPS wskazanego i zmodyfikowanego przez trenera. Trener korzystając z systemu wprowadza na wejście bloku GT parametry, wyniki zawodnika oraz rezultat oczekiwany. System generuje odpowiednio trzy treningi BPS, z których trener sam wybiera najbardziej odpowiedni. Jeżeli według trenera należałoby zmienić niektóre wartości obciążeń treningowych, to może on wprowadzić odpowiednie poprawki w wygenerowanym treningu. Zmodyfikowany trening w formie wartości obciążeń treningowych wraz z parametrami zawodnika trafia na wejście bloku PR, a następnie system generuje rezultat otrzymany przez zawodnika dla zmodyfikowanego treningu. Dzięki temu trener może zaobserwować, jakie zmiany wynikają z modyfikacji poszczególnych składowych treningu BPS. Zastosowanie obu funkcjonalności powoduje, iż trener wyposażony jest w narzędzie wspomagające dobór najlepszych składowych treningu dla oczekiwanego wyniku sportowego. Dzięki temu zawodnik zrealizuje optymalny trening dla własnych parametrów i zadanego rezultatu. Oba bloki mogą pracować oddzielnie w takim sensie, że można użyć blok GT tylko do wygenerowania treningu lub blok PR tylko do predykcji rezultatu. Do realizacji zadań wykorzystano sieci typu perceptron wielowarstwowy (MLP Multilayer Perceptron) oraz sieci o radialnych funkcjach bazowych (RBF Radial Basis Functions). Perceptron wielowarstwowy jest najpowszechniejszym typem sieci. Wymaga uczenia iteracyjnego, które bywa czasochłonne. Jednak otrzymane sieci są nieduże, szybkie i dają zadowalające wyniki [4, 19]. Uczenie sieci MLP zrealizowano przy pomocy algorytmu BFGS (Broyden-Fletcher-Goldfarb-Shanno lub Quasi-Newtona), który jest silnym algorytmem drugiego rzędu o szybkiej zbieżności, lecz wymaga dużej pamięci [18].

192 192 Krzysztof Przednowek, Krzysztof Wiktorowicz Rysunek 2. Schemat blokowy neuronowego systemu optymalizacji wyniku sportowego zawodników uprawiających chód sportowy Sieć RBF charakteryzuje się tym, że neuron ukryty realizuje funkcję, zwaną funkcją bazową, zmieniającą się radialnie wokół wybranego centrum. Radialna sieć neuronowa działa na zasadzie wielowymiarowej interpolacji, której zadaniem jest odwzorowanie wektorów wejściowych w zbiór liczb rzeczywistych [8]. Sieć RBF uczona jest w dwóch etapach. W pierwszym rozmieszcza się funkcje radialne używając jedynie zmiennych wejściowych z danych. W drugim etapie natomiast ustala się wagi łączące funkcje radialne z neuronami wyjściowymi [1, 18]. Wszystkie sieci zostały zaprogramowane w programie Statistica 10 z użyciem narzędzia Automatyczne sieci neuronowe (SANN Statistica Automatic Neural Networks) [18] Generowanie treningu (GT) Bardzo ważną rolę w procesie planowania treningu sportowego pełni odpowiedni dobór obciążeń treningowych. Ważne jest, aby zawodnik odbył trening o określonej objętości i intensywności. Trening nie może być zbyt lekki (o małej intensywności) jak i zbyt intensywny, co może prowadzić do tzw. przetrenowania. Dlatego też stworzenie sieci neuronowej, która generuje trening na podstawie parametrów zawodnika, jak i jego osiągnięć może w dużym stopniu wspomóc proces planowania obciążeń treningowych przez trenera. Zadanie generowania treningu realizuje blok składający się z trzech SSN. Na ich wejścia podawane są identyczne dane. Każda z sieci generuje inny trening, a trener decyduje, który jest najbardziej odpowiedni. Początkowo system zawierał jedynie jedną sieć i generował tylko jeden trening. Po konsultacji z trenerem okazało się, że lepszym rozwiązaniem będzie zastosowanie kilku sieci, tak aby użytkownik miał możliwość wyboru. Sieci składają się z 5 neuronów wejściowych odpowiadających za: ciężar ciała zawodnika [kg], wysokość ciała zawodnika [cm], rekord życiowy na dystansie 5 km [s], rezultat teraźniejszy na dystansie 5 km [s], rezultat oczekiwany na dystansie 5 km [s]. Autorzy planowali uwzględnić więcej parametrów określających zawodnika niestety dzienniczki nie zawierały tych danych. W warstwie wyjściowej znajdują się 42 neurony odpowiedzialne za wartości obciążeń treningowych. Każdy neuron reprezentuje wartość obciążenia treningowego odpowiedniego środka treningowego w danym dniu z dwutygodniowego okresu BPS. Na wyjściu pojawiają się wartości obciążeń w postaci liczby kilometrów do przejścia. Zbiór wszystkich wektorów składał się z 49 przypadków. Należy podkreślić fakt, iż zawodników trenujących chód sportowy jest niewielu. Ponadto trening BPS odbywa się raz w

193 Neuronowy system optymalizacji wyniku sportowego zawodników uprawiających 193 roku, dlatego też liczba wzorców jest mała. Każdy wektor to indywidualny, zrealizowany przez zawodnika trening, parametry zawodnika, rezultat przed treningiem i rezultat po treningu. Pary uczące zapisujemy w postaci zbioru =,, =1,2,,49, gdzie: wzorzec wejściowy, wzorzec wyjściowy, liczba wzorców, przy czym =,,, =,,!, gdzie: ciężar ciała [kg],! wysokość ciała [cm], " rekord życiowy na dystansie 5 km [s], rezultat teraźniejszy na dystansie 5 km [s], rezultat oczekiwany na dystansie 5 km [s],,,! składowe treningu BPS [km] (patrz tabela 1). Przykładowe wzorce uczące mają postać:! =65,176,1233,1390,1383,! =6,0,8,0,0,0,12,0,0,3,2,4,5,5,0,3,0,0,4,0,0,4,0,0,3,0,0,13,0,0,4,1,4,9,0,0,7,0,0,3,0,0. Wektor! przedstawia dane rzeczywistego zawodnika, który po zastosowaniu treningu BPS zawartego w wektorze! poprawił swój rezultat o 7 s. Tabela 1. Struktura wektorów uczących bloku GT Parametry zawodnika Wzorzec wejściowy Wyniki zawodnika Wzorzec wyjściowy Dzień 1 Dzień 2 Dzień 14 Ciężar ciała Wysokość ciała Rekord życiowy na dystansie 5 km Rezultat teraźniejszy na dystansie 5 km Rezultat oczekiwany na dystansie 5 km O W C H 1 O W C H 2 W T O W C H 1 O W C H 2 W T T O W C H 1 O W C H 2 W T Wszystkie modele zostały poddane ocenie za pomocą kroswalidacji zwanej także sprawdzianem krzyżowym lub walidacją krzyżową [5, 6]. Jest to metoda oceny jakości tworzonego modelu, w której dane dzielone są dwa podzbiory: uczący oraz testowy (walidacyjny). W artykule, ze względu na małą liczbę danych, wykorzystano kroswalidację LOOCV (leave-one-out cross-validation) czyli typu wyrzuć jeden element. Idea tej metody polega na wydzieleniu ze zbioru danych podzbiorów uczących, gdzie oznacza liczbę wszystkich par wzorcowych. Każdy podzbiór powstaje poprzez usunięcie ze zbioru danych tylko jednej pary, która staje się parą testującą. Następnie dla każdego powstałego podzbioru konstruuje się model, uzyskując w ten sposób jego wersji ocenianych przez wyznaczenie błędu dla pozostawionej pary testującej. Błąd kroswalidacji liczono ze wzorów: '() *+ = 1, --./ 1./!, 2.3/3 4'() *+ =5'() *+, gdzie:, =42 liczba neuronów w warstwie wyjściowej, =49 liczba wszystkich wzorców (par uczących) zbioru uczącego,./ wartość zakładana (rzeczywista), 1./ wartość wygenerowana przez model otrzymany w kroswalidacji LOOCV, '() *+ błąd średnio-

194 194 Krzysztof Przednowek, Krzysztof Wiktorowicz kwadratowy (Mean Squared Error), 4'() *+ pierwiastek błędu średniokwadratowego (Root Mean Squared Error). Oprócz błędu kroswalidacji wyznaczono również błąd uczenia ze wszystkich wzorców: '() = 1, --./ 1./!, 2.3/3 4'() =5'(), gdzie:, =42 liczba neuronów w warstwie wyjściowej, =49 liczba wszystkich wzorców zbioru uczącego,./ wartość zakładana (rzeczywista), 1./ wartość wygenerowana przez model nauczony ze wszystkich wzorców, '() błąd średniokwadratowy, 4'() pierwiastek błędu średniokwadratowego. W celu dobrania najlepszego modelu przeprowadzono kroswalidację LOOCV dla trzech typów sieci: MLP(tanh) z funkcjami aktywacji typu tangens hiperboliczny, MLP(exp) z funkcjami aktywacji typu wykładniczego oraz sieci radialnej RBF. W każdej z wybranych sieci poszukiwano odpowiedniej liczby neuronów w warstwie ukrytej. Zweryfikowano sieci zawierające 6 neuronów w warstwie ukrytej, których liczba zmieniała się w przedziale od 1 do 30. W konsekwencji stworzono 30 modeli dla każdego typu sieci i każdy model poddano kroswalidacji tworząc 49 modeli w każdym przypadku. Wyniki kroswalidacji oraz uczenia w postaci błędów 4'() zestawiono na rysunkach 3, 4 i 5 (w celu zwiększenia czytelności ograniczono skalę osi błędu 4'() do przedziału 0,18 km). Rysunek 3. Błędy kroswalidacj i 4'() *+ i błędy uczenia 4'() dla sieci MLP z funkcją aktywacji typu tangens hiperboliczny w bloku GT w zależności od liczby neuronów 6 w warstwie ukrytej Rysunek 4. Błędy kroswalidacji 4'() *+ i błędy uczenia 4'() dla sieci MLP z wykładniczą funkcją aktywacji w bloku GT w zależności od liczby neuronów 6 w warstwie ukrytej

195 Neuronowy system optymalizacji wyniku sportowego zawodników uprawiających 195 Rysunek 5. Błędy kroswalidacji 4'() *+ i błędy uczenia 4'() dla sieci RBF w bloku GT w zależności od liczby neuronów 6 w warstwie ukrytej Po przeanalizowaniu wyników otrzymanych z kroswalidacji zdecydowano się na wybór takiej liczby neuronów w warstwie ukrytej, dla której generowany błąd 4'() *+ był najmniejszy. Stąd do realizacji systemu wykorzystano następujące architektury sieci (rys. 6): SSN1: MLP(tanh) , SSN2: MLP(exp) oraz SSN3: RBF Rysunek 6. Architektury sieci neuronowych bloku GT Tabela 2. Błędy uczenia i kroswalidacji dla bloku GT MLP(tanh) MLP(exp) RBF '() *+ 4'() 4'() *+ 4'() 4'() *+ 4'() W tabeli 2 przedstawiono wartości błędów sieci wybranych do budowy bloku GT. Sieci generują błędy na podobnym poziomie. Najmniejszym błędem kroswalidacji charakteryzuje się sieć typu RBF z jednym neuronem w warstwie ukrytej, a największym sieć typu MLP(exp) z trzema neuronami w warstwie ukrytej Predykcja rezultatu (PR) Zadanie predykcji rezultatu z punktu widzenia trenera ma ogromne znaczenie w procesie szkolenia sportowego. Trener wykorzystując sieć neuronową może przewidzieć jak zadany trening wpłynie na rezultat sportowy. Zbiór wektorów uczących stanowiło 49 wzorców. Parę uczącą zapisujemy jako zbiór

196 196 Krzysztof Przednowek, Krzysztof Wiktorowicz 78 =78,78, =1,2,,49, gdzie: 78 wzorzec wejścia, 78 wzorzec wyjścia, liczba wzorców, przy czym 78 =,, 9, 78 =, gdzie: ciężar ciała [kg],! wysokość ciała [cm], " rekord życiowy na dystansie 5 km [s], rezultat teraźniejszy na dystansie 5 km [s],,, 9 składowe treningu BPS [km], przewidywany rezultat na dystansie 5 km [s] (patrz tabela 3). Przykładowe wzorce uczące są następujące: : 59,169,1192,1253,0,4,0,0,0,0,7,0,0,0,9,0,13,0,0,12, 78 = 7,0,9,0, 0,0,13,0,3,2,8,9,0,0,13,0,0,3,2,6,7,0,0,3,0,1, : 78 =1182. Wektory przedstawiają dane rzeczywistego zawodnika z odbytym treningiem, po którym poprawił swój rekord życiowy o 10 s. Tabela 3. Struktura wektorów uczących bloku PR Wzorzec wejściowy Wzorzec wyjściowy Parametry zawodnika Wyniki zawodnika Dzień 1 Dzień 2 Dzień 14 Ciężar ciała Wysokość ciała Rekord życiowy na dystansie 5 km Rezultat teraźniejszy na dystansie 5 km O W C H 1 O W C H 2 W T O W C H 1 O W C H 2 W T O W C H 1 O W C H 2 W T Rezultat uzyskany na dystansie 5 km W celu określenia najlepszego modelu wykorzystano metodę kroswalidacji LOOCV. Wśród przeszukiwanych modeli znajdowały się dwa typy sieci: MLP(tanh) z funkcją aktywacji typu tangens hiperboliczny oraz MLP(exp) z funkcją aktywacji typu wykładniczego. Przeprowadzono kroswalidację dla modeli zawierających od 1 do 30 neuronów w warstwie ukrytej. Dodatkowo policzono błędy generowane przez modele uczone ze wszystkich 49 wzorców. Błąd kroswalidacji i uczenia liczono w taki sam sposób jak w przypadku sieci bloku GT, przy czym we wzorach na błędy '() liczba neuronów w warstwie wyjściowej wynosi, =1. Wartości błędów zestawiono na rysunkach 7, 8. Modele SSN porównano z liniowym modelem regresji grzbietowej (ridge regression) Hoerla-Kennarda [2, 17]. W regresji tej dobiera się parametr λ, który decyduje o dodatkowej karze związanej z wielkością współczynników regresji. W przypadku gdy ; = 0, wówczas model grzbietowy upraszcza się do zwykłego modelu otrzymanego metodą najmniejszych kwadratów. W artykule wyznaczono zależność błędów uczenia i kroswalidacji od parametru λ zmieniającego się w zakresie od 0 do 0.9 z krokiem 0.1 (rys. 9). Na podstawie otrzymanych wyników wybrano najlepsze w sensie minimalizacji błędu kroswalidacji architektury modeli neuronowych, przyjmując 3 i 11 neuronów w warstwie ukrytej odpowiednio dla sieci MLP(tanh) i MLP(exp) oraz ;=0.6 dla regresji grzbietowej. Analizując błędy przedstawione na rysunkach 7 i 8 warto zauważyć, że modele sieci neuronowych odwzorowują dane zawarte w zbiorach uczących z zerowym błędem. Z kolei dla modelu regresyjnego błąd uczenia nie jest zerowy i dla ; =0.6 wynosi 35.3 s.

197 Neuronowy system optymalizacji wyniku sportowego zawodników uprawiających 197 Rysunek 7. Błędy kroswalidacji 4'() *+ i błędy uczenia 4'() dla sieci MLP z funkcją aktywacji typu tangens hiperboliczny w bloku PR w zależności od liczby neuronów 6 w warstwie ukrytej Rysunek 8. Błędy kroswalidacji 4'() *+ i błędy uczenia 4'() dla sieci MLP z wykładniczą funkcją aktywacji w bloku PR w zależności od liczby neuronów 6 w warstwie ukrytej Rysunek 9. Błędy kroswalidacji 4'() *+ i błędy uczenia 4'() dla regresji grzbietowej w bloku PR w zależności od parametru ;

198 198 Krzysztof Przednowek, Krzysztof Wiktorowicz Tabela 4. Błędy uczenia i kroswalidacji dla bloku PR MLP(tanh) MLP(exp) REG ; = 0.6 4'() *+ 4'() 4'() *+ 4'() 4'() *+ 4'() Rysunek 10. Architektura sieci neuronowej bloku PR Wartości błędów uczenia 4'() i kroswalidacji 4'() *+ zestawiono w tabeli 4. Widać że modelem generującym najmniejszy błąd kroswalidacji jest model MLP z funkcją aktywacji tangens hiperboliczny i z trzema neuronami w warstwie ukrytej. Sieć o tej architekturze została wybrana do realizacji bloku PR (rys. 10). Modelem generującym największe błędy był model regresji grzbietowej Wykorzystanie systemu przez trenera Działanie zaprojektowanego systemu zostało przedstawione trenerowi. Poproszono o analizę merytoryczną wyników generowanych przez bloki GT i PR. Poniżej przedstawiono analizy wykonane dla dwóch różnych przypadków. Przykład 1. Na wejście bloku GT wprowadzono wektor =70,183,1281,1310,1281. Zawiera on dane nowego zawodnika, dla którego trener chce otrzymać wskazówki odnośnie wielkości obciążeń treningowych w poszczególnych dniach treningu BPS. System wygenerował następujące treningi: ==> = 12,0,2,8,2,0,10,0,2,8,0,2,11,1,0,9,2,2,11,0,1, 8,1,2,8,1,2,9,2,1,6,0,3,10,0,0,8,0,0,4,0,1, ==>! = 9,1,4,5,1,0,8,1,1,8, 2,2,8,3,1,10, 1,3,10,2,0, 9, 2,4,8,1,2,14,1, 1,6,3,2,8,0,1,4,0,0,6,0,1, ==>" = 9,1,2,5,1,0,10,1,1,9,2,1,10,2,1,8,2,1,9,1,1, 8,1,2,7,1,3,10,1,1,8,2,1,8,0,1,7,0,0,6,0,0. Trener stwierdził, że trening zaproponowany przez sieć SSN1 spełnia wymagania merytoryczne, ponieważ jest treningiem o największej objętości. Uznał ponadto, że nie ma potrzeby używania bloku PR dla tego przypadku. Przykład 2. Na wejście bloku GT wprowadzono wektor =65,175,1301,1398,1310

199 Neuronowy system optymalizacji wyniku sportowego zawodników uprawiających 199 w celu otrzymania treningu, dzięki któremu nastąpi zwyżka formy. Blok GT wygenerował trzy treningi postaci: ==> = 8,1,2,4,1,0,10,1,1,9,2,1,10,2,1,8,2,1,9,1,1, 8,1,1,6,0,3,10,1,1,8,3,1,8,0,2,6,0,1,6,0,0, ==>! = 10,1,2,5,1,0,9,1,1,8,0,2,10,2,1,9,1,2,10,1,0, 8,0,2,7,1,2,11,1,0,6,3,2,8,0,1,5,0,0,5,0,1, ==>" = 9,1,2,5,1,0,10,1,1,9,2,1,10,2,1,8,2,1,9,1,1, 8,1,2,7,1,3,10,1,1,8,2,1,8,0,1,7,0,0,6,0,0. Analizując poszczególne wyniki trener wybrał trening wygenerowany przez sieć SSN1. Według niego był to najlepszy trening, jednakże należało wprowadzić kilka modyfikacji. Trener założył, że zawodnik nie będzie wykonywał treningu w dwóch ostatnich dniach okresu BPS. Aby zaobserwować jak zaproponowane zmiany wpływają na wynik końcowy, wprowadzono zmodyfikowany trening na wejście bloku PR. Wektor wejściowy po zmianach miał postać (elementy poprawione przez trenera pogrubiono): 78 = 65,175,1301,1398,8,1,2,4,1,0,10,1,1,9,2,1,10,2,1, 8,2,1,9,1,1,8,1,1,6,0,3,10,1,1,8,3,1,8,0,2,?,?,?,?,?,?. System dokonał predykcji następującego rezultatu po zastosowaniu treningu wygenerowanego przez sieć neuronową i zmodyfikowanego przez trenera: =1314. Przewidywany rezultat różni się od rezultatu założonego o 4 s (0.3%) i jest lepszy od rezultatu teraźniejszego o 84 s (6.4%). Trener założył, że odpoczynek w dwóch ostatnich dniach wpłynie pozytywnie na uzyskany rezultat. W celu weryfikacji wprowadzono na wejście bloku PR parametry tego samego zawodnika wraz z treningiem bez nanoszenia zasugerowanych modyfikacji: 78 = 65,175,1301,1398,8,1,2,4,1,0,10,1,1,9,2,1,10,2,1, Na wyjściu bloku PR otrzymano rezultat: =1335. Uzyskany wynik jest gorszy od wyniku dla zmodyfikowanego treningu. Jest to potwierdzenie, że zaprojektowany system może pełnić rolę doradczą a ostateczna decyzja odnośnie kształtu treningu należy do trenera. 4. Podsumowanie W artykule przedstawiono nowe rozwiązanie problemu doboru optymalnych obciążeń treningowych dla zawodników uprawiających chód sportowy. Stworzono system składający się z bloków generowania treningu oraz predykcji rezultatu, który kompleksowo wspomaga trenera w planowaniu treningu. System wykonano wykorzystując sztuczne sieci neuronowe na podstawie danych pozyskanych z dzienniczków treningowych zawodników. W trakcie budowy systemu konsultowano się z ekspertami z dziedziny teorii sportu i teorii treningu w celu zachowania teoretycznych i praktycznych założeń związanych z treningiem sportowym. Należy podkreślić fakt, że system został zbudowany z wykorzystaniem danych zawodników charakteryzujących się wysokim poziomem wytrenowania. Dlatego też będzie on generował dużo większe błędy dla zawodników na niższym poziomie wytrenowania.

200 200 Krzysztof Przednowek, Krzysztof Wiktorowicz Kolejnym etapem prac będzie budowa interfejsu dla użytkownika. Zgodnie z sugestiami trenera na poziomie interfejsu wartości ujemne obciążeń treningowych będą zastępowane zerami, a wartości większe od maksymalnych obciążeń będą ograniczane. Autorzy zamierzają ponadto opracować aplikację internetową, która zautomatyzuje proces pozyskiwania danych treningowych. Dzięki niej zawodnicy w prosty sposób będą mogli wprowadzać swoje treningi do bazy danych. Zgromadzone dane przyczynią się do rozbudowania opisanego systemu, tak aby można było analizować i optymalizować całoroczne okresy treningowe, a nie tylko bezpośrednie przygotowanie startowe. Bibliografia [1] Bishop C.: Neural Networks for Pattern Recognition. Oxford University Press, [2] Hoerl A. E., Kennard R. W.: Ridge regression: Biased estimation for nonorthogonal problems. Technometrics, vol. 12, no. 1, 55 67, [3] Kisiel K.: Chód sportowy. Biblioteka Trenera, Warszawa [4] Korbicz J., Obuchowicz A., Uciński D.: Sztuczne sieci neuronowe. Podstawy i zastosowania. Akademicka Oficyna Wydawnicza PLJ, Warszawa [5] Koronacki J., Ćwik J.: Statystyczne systemy uczące się. Wydawnictwo Naukowo- Techniczne, Warszawa [6] Maddala G. S.: Ekonometria. Wydawnictwo Naukowe PWN, Warszawa [7] Mężyk E.: Zastosowanie inteligentnych metod obliczeniowych w modelowaniu treningu sportowego. Politechnika Wrocławska, Wydział Elektroniki, Wrocław [8] Osowski S.: Sieci neuronowe w ujęciu algorytmicznym. Wydawnictwo Naukowo- Techniczne, Warszawa [9] Papić V., Rogulj N., Pleština V.: Identification of sport talents using a web-oriented expert system with a fuzzy module. Expert Systems with Applications, vol. 36, , [10] Prus G.: Trening sportowy. Katowice [11] Przednowek K., Cieszkowski S., Wiktorowicz K.: System ekspertowy w treningu sportowym. Sport Wyczynowy, nr 2, 27 32, [12] Przednowek K.: System ekspertowy wspomagający trening sportowca. Praca dyplomowa magisterska, Politechnika Rzeszowska, Wydział Elektrotechniki i Informatyki, Rzeszów [13] Ryguła I.: Artificial Neural Networks As a Tool of Modeling of Training Loads. Proceedings of the 2005 IEEE Engineering in Medicine and Biology 27 th Annual Conference, , Shanghai [14] Ryguła I.: Narzędzia analizy systemowej treningu sportowego. AWF Katowice [15] Ryguła I.: Neural models as tools of sport prediction. Journal of Human Kinetics, vol. 4, , [16] Sozański H. (red.): Podstawy teorii treningu sportowego. Biblioteka Trenera, Warszawa [17] Stanisz A.: Przystępny kurs statystyki z zastosowaniem Statistica PL na przykładach z medycyny. Tom 2. Modele liniowe i nieliniowe. StatSoft Polska, Kraków [18] StatSoft, Inc. (2011). STATISTICA (data analysis software system), version 10. [19] Tadeusiewicz R.: Sieci neuronowe. Akademicka Oficyna Wydawnicza, Warszawa 1993.

201 Metoda mapowania ryzyk powielarnych przedsięwzięć biznesowych dla systemu wspomagania decyzji menadżerskich Michał Twardochleb, Paweł Włoch Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki EPA Wind sp. z o.o. Abstract: In this article, a new method of risk mapping for duplicable enterprises (including business projects.) using Monte Carlo Simulation is presented. Proposed risk measure is concerning only financial dimension of risk, especially analyzing deviations from presumptive (ideal) model of an investments return. Main essence of the method is the definition of the project in form of a process including separate tasks combined into the process-chain, and possible deviations for each task. Input data was delivered basing on experts knowledge, who described real investment, in which they were involved, focusing on deviations they've observed for each task. Basing on input data stochastic algorithm has been used to generate a population of processes, which were the foundation for financial risk assessment of the process. This approach allowed to estimate financial attractiveness of the project basing on assumed parameters. By rejecting projects influence from its environment, knowledge about the source of deviation has been skipped, treated as irrelevant. This approach is similar to scoring systems used in banking industry within credit/loan decision making. Described method allows to perform objective and aggregated investment verification, which may significantly help within management decisions. Keywords: Risk management, Net Present Value, Monte Carlo simulation 1. Definicja ryzyka jako zmiennej na potrzeby decyzji menadżerskich Punktem wyjścia do rozróżnienia typu przedsięwzięć co do których podejmowane są decyzje menadżerskie jest prezentacja ryzyka jako wartości reprezentowanej przez dwie zmienne R=f(P,S) gdzie: R ryzyko, P prawdopodobieństwo wystąpienia ryzyka, S skutek / konsekwencja. W przypadku takiej definicji ryzyka, rozróżnienie przedsięwzięć polega na rozróżnieniu skutków, jakie są przypisane do zdefiniowanych ryzyk, np. skutek może stanowić wzrost nakładów finansowych, przez co znajduje on zastosowanie w analizie przedsięwzięć biznesowych. Może on również stanowić spadek rozrodu populacji, przez co oceniane może być przedsięwzięcie o charakterze przyrodniczym. Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

202 202 Michał Twardochleb, Paweł Włoch Bardzo ważną kwestią jest też wartościowanie zmiennej S, czyli zasada według której skutek odnosi się do wzorca. Zmienna S może być definiowana jako negacja wzorca (W). Może też być definiowana jako procentowe odstępstwo od wzorca, tzn. Przypadek 1: Definicja negacyjna S = ~ W gdzie: S skutek, W wzorzec. Przykład: Wzorzec oznacza świecenie się zielonego światła na przejściu dla pieszych. Skutek może oznaczać zapalenie się czerwonego światła, ze względu na pojawienie się pieszego i uruchomienie sygnalizacji. Przypadek 2: Definicja procentowego odstępstwa S = n * W gdzie: S skutek, n wskaźnik odstępstwa, wyrażany np. jako wartość %, W wzorzec. Przykład: Wzorzec oznacza przewidywany zbiór zboża z hektara upraw w przedsiębiorstwie rolnym. Wskaźnik odstępstwa pokazuje o jaki procent zmniejszyła się wysokość zbiorów. Prezentowane podejście nie uwzględnia genezy ryzyka, tylko sam jej skutek. Należy zwrócić uwagę na fakt pominięcia przyczyny zmniejszenia plonów z finansowego punktu widzenia, dla przedsiębiorstwa istotne są dane kwantytatywne o zbiorach, niezależnie od tego czy ich zmniejszenie wystąpiło wskutek wichury, powodzi czy też gradobicia W dalszej części artykułu opisane działania odnosić się będą do przedsięwzięć biznesowych, a ryzyka opisywane będą zgodnie z przypadkiem 2, czyli jako procentowe odchylenia od wzorca. 2. Mapowanie ryzyka poszczególnych czynności w procesach powielarnych Mapowanie ryzyka to graficzna metoda prezentacji wyników analizy ryzyka, oparta o rozkład prawdopodobieństwa, polegająca na wytyczeniu krzywej rozkładu prawdopodobieństwa zaistnienia ryzyka w zależności od jego skutków. Opisywana metoda możliwa jest do zastosowania w przypadku projektów powielarnych, czyli przedsięwzięć, które stojąc na pograniczu klasycznych podziałów na działalność powtarzalną i projektową, co obrazuje tabela 1. Przyjęto dla prezentowanych badań, że przedsięwzięcie powielarne to takie, które było przedmiotem realizacji więcej niż 30 razy, a jego wykonawstwo było prowadzone zgodnie z przyjętym harmonogramem wzorcowym. Można w nim wyodrębnić elementy działalności projektowej (np. dostosowanie każdorazowe do warunków prowadzenia inwestycji, indywidualny projekt budowlany) jak i powtarzalnej (np. stała struktura centrów odpowiedzialności, standardowe mierniki efektywności). W celu wykonania mapowania ryzyk dla przedsięwzięć powielarnych konieczne jest zdefiniowanie dwóch elementów analizy wzorca procesu i odchyleń. Są to dane wejściowe, które podlegają analizie. W opisywanej metodzie wzorzec jest definiowany w postaci

203 Metoda mapowania ryzyk powielarnych przedsięwzięć biznesowych dla systemu 203 diagramu Gantta, tzn. przedsięwzięcie zostaje podzielone na szereg czynności następujących po sobie. Ogólny algorytm mapowania ryzyk przedstawiono na rysunku 1. Tabela 1. Klasyczny podział na działalność powtarzalną i projektową Kryterium Działalność powtarzalna Działalność projektowa Zastosowanie poszczególnych instrumentów Okresowe i systematycznie powtarzalne Jednorazowe lub powtarzalne okresowo, ale wyłącznie w okresie (cyklu) realizacji projektu Struktura centrów odpowiedzialności Stała (jednostki wewnętrzne) Zmienna (projekty) Ocena efektywności działal- Prowadzona okresowo Wykonywana w różnych fazach pro- ności Stosowane mierniki efektywności Podstawowa miara rozmiarów działalności Podstawa informacyjna budżetowania Standardowo zwykle wpływ działalności na wynik i rentowność Wielkość sprzedaży lub produkcji Dane historyczne wielkości wartościowe z poprzednich okresów lub normy ilościowe jektu Dostosowane do specyfiki danego projektu Czas i wykonany w tym czasie postęp prac nad projektem (stopień realizacji harmonogramu Dane opracowane od podstaw w powiązaniu z harmonogramem projektu lub na zasadzie analogii do wcześniej realizowanych projektów Kontrola realizacji Okresowa analiza wyników Analiza postępów w wykonaniu projektu oraz analiza porównawcza Źródło: Łada M., Kozakiewicz A. Rysunek 1. Algorytm mapowania ryzyk powielarnych przedsięwzięć biznesowych Każda czynność wzorca jest definiowana za pomocą następujących zmiennych: K n koszt czynności n, T n czas czynności n, µ n = pop m suma ilości poprzedników, dla czynności n, pop 1,, pop m nr poprzedników, n nr czynności,

204 204 Michał Twardochleb, Paweł Włoch m liczba porządkowa poprzedników. Następnie dla każdej czynności tworzona jest baza odchyleń. Każde odchylenie jest definiowane następującymi zmiennymi: K no przyrost kosztu czynności n, T no przyrost czasu czynności n, Term no znacznik sukces/porażka, czynności n, n nr czynności, liczba porządkowa odchyleń. Definicja odchyleń na podstawie wyżej opisanych zmiennych jest możliwa do zaakceptowania w sytuacji gdy ich ilość jest nie mniejsza niż 30. Wynika to z wiedzy doświadczalnej na temat wielkości prób statystycznych, granicy pomiędzy rozkładem T-Studenta, a rozkładem normalnym. Próba powyżej 30 sztuk pozwala analizować próby w rozumieniu rozkładu normalnego. Jeżeli próba miałaby liczebność mniejszą niż 30 sztuk, konieczne byłoby dodanie dodatkowej zmiennej, która określała by wagę prawdopodobieństwo wystąpienia. Jednak analiza w oparciu o mniejsze próby nie były przedmiotem przeprowadzonych badań, stąd założenie liczebności powyżej 30 sztuk. Techniki definiowania odchyleń są różne. Może to być zautomatyzowany rejestr odchyleń na linii produkcyjnej, jak również ankieta przeprowadzona wśród grupy ekspertów realizujących takie same przedsięwzięcia. Oczywiście w chwili rejestrowania odchyleń, należy zadbać oto aby miały one poparcie w rzeczywistości, ponieważ łącznie będą stanowić reprezentatywną próbę odchyleń dla danej czynności. W takiej sytuacji, dobrze jest uwiarygodnić wartości zmiennych opisujących dane odchylenie ich pochodzeniem, jaka była przyczyna zaistnienia odchylenia. Nie mniej w dalszej części analizy, gdy realizowana jest symulacja metodą Monte Carlo, pochodzenie odchyleń jest już nie istotne, ponieważ nie wykorzystuje się informacji o pochodzeniu odchyleń na etapie interpretacji wyników symulacji. W oparciu o wyżej opisane elementy /wzorzec procesu i rejestry odchyleń/, konstruowany jest model, który będzie przedmiotem symulacji. Model stanowi wzorzec procesu, zapisanego w postaci diagramu Gantta, gdzie do każdej czynności przypisany jest rejestr odchyleń liczący nie mniej niż 30 przypadków. Taki model poddawany jest symulacji metodą Monte Carlo, w ramach której dla generowanych procesów, losowane jest dla każdej czynności każdego generowanego procesu jedno odchylenie z listy odchyleń. W ten sposób powstaje procesów o różnym przebiegu. W celu oceny wygenerowanych procesów względem zdefiniowanego wzorca, możliwe jest zastosowanie wskaźników analizy ekonomicznej. Wzorzec zapisany w postaci diagramu Gantta, posiada swoją reprezentację w postaci przepływu cash flow, dzięki czemu możliwe jest wyznaczenie wartości szeregu wskaźników wywodzących się z analizy ekonomicznej. Jednym z najbardziej powszechnych wskaźników jest NPV Net Present Value (bieżąca wartość netto), wyrażana wzorem: n CFt NPV = I t 0 + r gdzie: t= 1 1 ( ) NPV - wartość bieżąca netto, CF t - przepływy gotówkowe w okresie t, r - stopa dyskonta, I 0 - nakłady początkowe, t - kolejne okresy (najczęściej lata) eksploatacji inwestycji.

205 Metoda mapowania ryzyk powielarnych przedsięwzięć biznesowych dla systemu 205 Dzięki wyznaczeniu wartości NPV dla każdego wygenerowanego procesu, możliwe jest określenie zakresu odchylenia procesów od wzorca, oraz poprzez analizę liczebność populacji prawdopodobieństwa poszczególnych odchyleń (zob. [7], [10] ). 3. Weryfikacja skuteczności mapowania ryzyk w zarządzaniu procesami powielarnymi Dla weryfikacji wyżej opisanego podejścia przeprowadzono symulację dla założeń i parametrów odpowiadających rzeczywistemu procesowi inwestycyjnemu. W tym przypadku na podstawie opinii ekspertów (uczestnicy/wykonawcy rzeczywistych realizacji) zdefiniowano wzorzec procesu, oraz zdefiniowano rejestry odchyleń dla każdej czynności. Przedmiotem badań był proces sprzedaży usługi wybudowania masztu pomiarowego służącego do pomiaru parametrów wietrzności na danej lokalizacji. Poniżej przedstawiono diagram sieciowy procesu wzorca. Przedstawia on proces, w którym zdefiniowano 18 czynności. Każda czynność opisana jest następującymi parametrami: 1. Czas trwania czynności, 2. Koszt czynności, 3. Liczba poprzedników, 4. Nr poprzedników. Rysunek 2 przedstawia diagram Gantta zdefiniowanego wzorca. Przy założeniu stopy zwrotu r na poziomie 8 % wartość NPV dla wzorcowego procesu wynosi zł Rysunek 2. Diagram Gantta przedstawiający wzorzec procesu Następnie dla każdej czynności sporządzona została tabela pomiarowa, w której umieszczono wyniki pomiarów dla minimum 30 realizacji czynności. W każdej z 18 tabel pomiarowych zawarto minimum po 30 incydentów, zapisanych w postaci procentowego odchylenia czasu i kosztu od zdefiniowanego wzorca. Incydenty zapisane w tabelach pomiarowych zostały zgromadzone w drodze ankiety przeprowadzonej w grupie 10 ekspertów, którzy samodzielnie realizowali proces sprzedaży usługi wybudowania masztu pomiarowego służącego do pomiaru parametrów wietrzności. Na rysunkach 3-5 przedsta-

206 206 Michał Twardochleb, Paweł Włoch wiono 3 przykłady wykresów bąbelkowych wykonanych dla 3 wybranych czynności na podstawie zarejestrowanych incydentów. Na wykresach tych można zaobserwować zmienność incydentów jakie zostały zarejestrowane przy realizacji procesu. Dodatkowo na wykresach bąbelkowych ciemnym kolorem oznaczone zostały incydenty, które nie tylko stanowiły odchylenie od wzorca czynności, w zakresie zmiennej koszt i czas, ale również stanowiły zakończenie procesu porażką, tzn. proces nie mógł być dalej kontynuowany, zgodnie z diagramem sieciowym. Poniżej przedstawiono również charakterystyki odchyleń dla przykładowych 3 (spośród 18) czynności wchodzących w skład procesu. Na zaprezentowanych wykresach wielkość bąbla odpowiada częstości wystąpienia danego odchylenia. Należy zwrócić uwagę na fakt, że dla poszczególnych czynności można zaobserwować bardzo odmienne charakterystyki odchyleń od wzorca. Świadczy o tym zróżnicowany sposób rozmieszczenia poszczególnych bąbli dla różnych czynności. Dla niektórych czynności można zaobserwować skupiska, w innych przypadkach są one rozproszone równomiernie. Sytuacja taka powoduje, że utrudnione jest stosowanie narzędzi statystycznych dla określenia zagregowanej oceny procesu rozkłady odchyleń dla poszczególnych czynności są w różnym stopni niesymetryczne, nierównomierne i nieregularne. Wysokie zróżnicowanie charakterystyk występowania ryzyk dla poszczególnych czynności przestawione na rysunkach 3-5 wymusza zastosowanie symulacji stochastycznej w miejsce analiz statystycznych. Obserwowane rozkłady odchyleń nie są bowiem ani równomierne, ani regularne, ani nawet symetryczne. W tej sytuacji rozwiązaniem umożliwiającym dokonanie oszacowań i poznanie zagregowanych charakterystyk jest wykorzystanie metody Monte Carlo (zob. [2], [3]). Rysunek 3. Wykres bąbelkowy incydentów zarejestrowanych dla czynności nr 1

207 Metoda mapowania ryzyk powielarnych przedsięwzięć biznesowych dla systemu 207 Rysunek 4. Wykres bąbelkowy incydentów zarejestrowanych dla czynności nr 7 Rysunek 5. Wykres bąbelkowy incydentów zarejestrowanych dla czynności nr Analiza ryzyka zagregowanego z wykorzystaniem symulacji Monte Carlo Zgodnie z definicją [2], metoda prób statystycznych (inaczej zwana metodą Monte Carlo) polega na poszukiwaniu rozwiązania różnych zagadnień matematyki numerycznej poprzez konstrukcję dla każdego zadania procesu losowego z parametrami równymi szukanym wielkościom tego zadania. Przybliżone wartości tych wielkości otrzymuje się przez obserwacje procesu losowego i obliczenie jego charakterystyk statystycznych równych w przybliżeniu szukanym parametrom. Metoda jest możliwa do zastosowania niezależnie od charakterystyki problemu. W szczególności nadaje się do symulowania procesów biznesowych o nietypowych charakterystykach co zostało m. in. zaprezentowane w [10, 11]

208 208 Michał Twardochleb, Paweł Włoch Dla zgromadzonych danych przeprowadzono po 10 symulacji dla 200, 500, 1000 powtórzeń, co pozwoliło na uzyskanie szeregu parametrów realizowanej inwestycji. Na poniższych wykresach przedstawiono wartość NPV dla wygenerowanych populacji procesu uszeregowane według rosnących wartości. Rysunek 6. Wykres przedstawiający uszeregowane wyniki procesów w populacji 200 powtórzeń Rysunek 7. Wykres przedstawiający uszeregowane wyniki procesów w populacji 500 powtórzeń Rysunek 8. Wykres przedstawiający uszeregowane wyniki procesów w populacji 1000 powtórzeń

209 Metoda mapowania ryzyk powielarnych przedsięwzięć biznesowych dla systemu 209 Na zaprezentowanych wykresach można zaobserwować, że populacja procesów bardzo rzadko zgodna jest ze wzorcem, procesy są bardzo podatne na odchylenia. Jakkolwiek już dla symulacji 200 powtórzeń można zaobserwować istotne charakterystyki rozkładu NPV dla poszczególnych wystąpień, to zwiększenie liczby powtórzeń pozwala na poprawę dokładności oszacowania. W przeciwieństwie do wzorca, dla którego wartość NPV została obliczona na wartość ponad zł, większość procesów w populacji osiąga rezultaty znacząco gorsze. Przykładowo dla prób 1000 procesów: Mediana w populacji NPVMe = ,15 zł, dla najlepszego zaobserwowanego rezultatu NPV Max = ,87 zł, oznacza to, że w żadnym przypadku nie osiągnięto wzorca!, Dla najgorszego zaobserwowanego przypadku NPV Min = ,73 zł, przedsięwzięcie skończyło się bardzo wysoką stratą. Otrzymane rezultaty pozwalają uznać, że wzorzec obarczony jest dużą wrażliwością na zakłócenia zewnętrzne i nie może być uwzględniany bezkrytycznie. Wyniki wskazują, że średnia wartość NPV dla przeprowadzonych symulacji zawiera się w przedziale 5-7 tys. złotych, z uwagi na zidentyfikowanie możliwych realizacji projektów, które potencjalnie mogą przynieść wysokie straty (do -250 tys. zł). Przeprowadzenie mapowania ryzyka ponadto za pomocą zastosowanej symulacji pozwala na identyfikację takich skrajnie niekorzystnych przypadków (wystąpienie łączne kilku negatywnych czynników zbieg okoliczności o katastrofalnych skutkach ). Identyfikacja takich konfiguracji pozwoli na wdrożenie monitorowania newralgicznych punktów dla uniknięcia wystąpienia tego typu zdarzeń w realizacji rzeczywistych projektów. Dodatkowo dla zbadania poprawności wykonywanych symulacji, przeprowadzono badania cech statystycznych dla grup serii populacji procesów. Dla każdej liczebności populacji procesów (200, 500, 1000) wykonano po 10 symulacji, dla których wyliczono podstawowe parametry analizy statystycznej. Następnie zbadano standardowe odchylenie tych wielkości, aby określić zbieżność wyników. Stwierdzono, że w miarę zwiększania populacji procesów, zbieżność wyników generowanych serii jest coraz lepsza. W tabeli 2 przedstawiono wyniki badania zbieżności parametrów analizy statystycznej. Tabela 2. Wartości odchyleń statystycznych parametrów analizy statystycznej (zmienność parametrów NPV dla generownych prób) w zależności od wielkości serii Odchylenie standardowe obserwowanych parametrów Wielkość serii Ilość prób Średnie NPV Mediana NPV Odchylenie standardowe NPV ,11% 2,99% 0,83% ,97% 1,60% 1,02% ,86% 1,16% 0,72% 5. Wnioski Z przeprowadzonych badań, wynika że proponowany model mapowania ryzyka oferuje przystępną prezentację ryzyk, umożliwiającą prowadzenie dalszych analiz. Dzięki temu można go określić jako skuteczne narzędzie do monitorowania ryzyka i w konsekwencji jako system wspomagający procesy decyzyjne kadry menadżerskiej. Należy zwrócić uwagę na fakt dostarczania bardzo istotnych danych, niezbędnych w planowaniu działalności inwestycyjnej przedsiębiorstwa. Na ich podstawie można określić oczekiwaną wartość dla portfela wielu inwestycji przy uwzględnieniu zagrożeń wynikających z niestabilności, czy wręcz nieokreśloności parametrów otoczenia. Przeprowadzenie analizy uwzględniającej

210 210 Michał Twardochleb, Paweł Włoch możliwie maksymalną liczbę wariantów mogących wystąpić scenariuszy realizacji wymaga bezwzględnie dokładnego zamodelowania wzorca procesu i jego możliwych odchyleń na każdym etapie realizacji, co powoduje konieczność zastosowania dedykowanych narzędzi informatycznych. Należy przy tym jednak zauważyć, że prostota mechanizmu tworzenia symulacji Monte Carlo powoduje, że pomimo konieczności dostosowania parametrów symulacji do każdego unikalnego typu realizowanych projektów, proponowana koncepcja może mieć szerokie i stosunkowo proste zastosowanie w szczególności na średnich i wysokich szczeblach zarządzania przedsiębiorstwem, gdzie ogrom danych uniemożliwia ich bezpośrednią analizę. W najbliższym czasie planowane jest wykorzystanie przez jednego z autorów (będącym czynnym menadżerem) prezentowanej metody oceny ryzyka we wspomaganiu zarządzania przedsiębiorstwem, z uwagi na jej wysoką praktyczną użyteczność. Bibliografia: [1] Balcerek A., Kwaśnicki W.: Metody symulacyjne w badaniu organizacji i w dydaktyce menedżerskiej, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 2008, [2] Buslenko N. P., Goleni D.I Metoda Monte Carlo, PWN Warszawa 1967 [3] L'Ecuyer P., Lemieux C. Recent Advances in Randomized Quasi-Monte Carlo Method,s Kluwer Academic Publishers, Boston, 2002 [4] Halton J. H.: Sequential Monte Carlo Techniques for the Solution, Journal of Scientific Computing, 1994 [5] Koronacki J., Mielniczuk J.: Statystyka dla studentów kierunków technicznych i przyrodniczych, Wydawnictwo Naukowo-Techniczne Warszawa, 2001 [6] Jajuga K., Jajuga T.: Inwestycje, Instrumenty finansowe, ryzyko finansowe, inżynieria finansowa, Wydawnictwo Naukowe PWN Warszawa [7] Krysicki W., i in.: Rachunek prawdopodobieństwa i statystyka matematyczna w zadaniach 2, Wydawnictwo Naukowe PWN, Warszawa, 2006 [8] Łada M, Kozakiewicz A. Rachunkowość zarządcza i controlling projektów, Wydawnictwo C.H. Beck, Warszawa 2007 [9] Rogowski W.: Rachunek Efektywności inwestycji, Wolters Kluwer Polska, Warszawa 2008 [10] Sobczyk M.: Statystyka aspekty praktyczne i teoretyczne, Wydawnictwo UMCS, Lublin, 2006 [11] Twardochleb M. Metody modelowania statystycznego a optymalizacja funkcji wielu zmiennych z ograniczeniami // VII Naukowa Sesja Informatyki, Politechnika Szczecińska, 2002 [12] Twardochleb M. Włoch P. Wspomaganie procesu podejmowania decyzji dla modelu zagadnienia inwestycyjnego z wykorzystaniem symulacji Monte Carlo w: Technologia informacyjna. Wybrane problemy i zastosowania, Uniwersytet Szczeciński, Szczecin 2010 [13] Ministerstwo Skarbu Jej Królewskiej Mości Pomarańczowa Księga. Zarządzanie ryzykiem zasady i koncepcje (tłum. Z: The Orange Book, Management of Risk - Principles and Concepts HM Treasury), październik 2004

211 An examination of the influence of adaptive filter parameters on the objective scalar measures of image quality Mirosław Zając, Zbigniew Gmyrek Technical University of Lodz, Institute of Mechatronics and Information Systems Abstract: The paper deals with the problem of automatic image processing, which takes into account the specific purpose of improving image quality. This issue is particularly difficult in the case of improving the quality of images derived from medical equipment. The methods of processing and quality improvement applied in this case require the use of clear and objective measures of image quality. The improvement of image quality can be evaluated according to some objective criteria, like scalar measures. The authors present the partial results of work showing the influence of the adaptive filter parameters used, in relation to the class of medical images, on the objective scalar measures of image quality. Keywords: adaptive filtration, convolution, scalar objective measures 1. Introduction The evaluation of image quality is very difficult and is susceptible to the subjective rating of the viewer. An important element of the research is to analyze the quality of the original image, which in the case of the medical image class may not be subject to any lossy compression [1,2,3]. In the process of image processing, with a view to improving its quality, we can use the following methods [4,5]: - methods based on point operations (contrast enhancement, elimination of distortions) - methods based on histogram modeling (contrast enhancement by histogram modeling) - methods based on spatial operations (linear filtering, nonlinear filtering, edge detection, leveling the background brightness) - methods based on color utilization (giving false color) In these methods, it is possible to use image quality measures. There is not universal image quality measure by which we can improve the quality of any image. Among the various types of measures the following can be indicated: - objective measures (which may be the scalar or vector type. Determined by a specific calculation algorithm) - subjective measures (in the form of subjective viewer rating) - objective-subjective measures (optimized computational measures that use the expert experience) In an automated process to improve the quality of an image, the most anticipated is the group of objective measures, allowing for easy creation of comparative analysis. The most popular scalar measures, which could be used to describe monochrome images, are [6-7]: Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

212 212 Mirosław Zając, Zbigniew Gmyrek - contrast rating K - maximum difference MD sometimes also called PAE (peak absolute error) - mean square error MSE - peak signal to noise ratio PSNR - average difference AD - correlation quality CQ - image fidelity IF - chi-square measure χ 2 2. Mathematical basics of digital image processing The most useful tools for digital image processing are filters which during calculations of the current pixel value, use values describing neighboring pixels. In this case, we can use the convolution operation, which unfortunately is a time-consuming process. During the calculation a matrix acting as a filter should be used. This matrix is called the convolution matrix. An example of the application of the filter mask in the form of taking into account neighboring pixels is shown in Fig.1. The figure shows an example part of a monochrome image which is subjected to filtration using a convolution mask of 3x3 pixels. Figure 1. An example of a filter mask application on a part of digital image (the numbers represent a level of brightness of each image pixel). The mask, in the form of a convolution matrix, with its values, is shown in the middle of the Figure 1. The extreme left square, filled with numbers, represents the initial part of the image whereas the right square, filled with numbers, represents the final result of the executed calculations. The area under the transformation (filtering) was drawn in bold lines. The current pixel, for which calculations are carried out, is marked with a circle. Because the mask value for the current pixel is taken with a weight of 1, and the neighboring pixels with a weight of 0, after performing the calculations we obtain the same result as before commencement of the calculations. If we use the mask filter with weights different from zero (for the neighboring pixels), then the result of the calculations is quite different - see Fig.2. Figure 2. An example of a filter mask application on a part of digital image (the filter mask has a non-zero weights for the neighboring pixels).

213 An examination of the influence of adaptive filter parameters 213 Below it is shown an example process of calculating the value representing the current pixel, using the above mentioned mask. [-1*32]+[-1*2]+[-1*32]+[-1*32]+[20*8]+[-1*2]+[-1*2]+[-1*2]+[-1*5] The values are added up and the final result for the current pixel is 51. Using the appropriate tool it is possible to perform various operations on the image such as blurring, sharpening, etc. In the case of the analyzed class of images such simple filtering will not bring the expected results, so we need to reach for more complicated methods, hiding under the name of selective sharpening. The operation of such a filter involves subtracting the blurred image copies from the original image. A copy of the image formed in this way is compared with the original one. If fragments are found containing differences greater than a defined threshold, then the images are subtracted. In this type of filter a Gaussian curve is often used. The advantage of such a solution is the shape of the filter kernel, which in this case is a circle. Obviously, the shape of the filter kernel directly affects the resulting image blurring. The use of this filter type is discussed in the next chapter. 3. Analysis of the image quality using the scalar measure The paper presents the results of image analysis using, for this purpose, Gaussian filtering [8]. This image was obtained from CT. Filtering using the principles of statistics is not accidental. It turned out to be the best in comparison tests carried out during the study. During the study we used Gaussian filtering which is described by the equation (1). 2 2 ( u + v ) 1 G( u, v) = e (1) 2 2 2πσ 2σ where u is the horizontal distance between the pixel and the center of the kernel, v is the vertical distance between the pixel and the center of the kernel, r is the radius of the kernel r 2 =u 2 + v 2, σ is the standard deviation. The standard deviation σ may take any value. On the basis of the analysis of many images (in the analyzed image class), we accepted the threshold value as equal to 3. The Gaussian filtration process consists in execution of the convolution operation with image function F by the image mask G(u,v), which is a discrete approximation of the Gaussian function. This means that for a single input point, three adjoining points are taken into account and then the final result is placed in one output cell. It is a time-consuming process which sometimes is a problem if there is a large size image. Balances of the filter mask depend on a parameter called standard deviation σ. This parameter corresponds to a blur if it has a greater value, then we obtain better smoothing effect and the interference is more reduced. The filter uses three parameters for correction of its action: the level, the radius and the threshold. The level is the percentage value of the contrast to be added at the edges. The radius is responsible for the Gaussian blur, and affects the size of the edge sharpening. The threshold controls the size of the changes in the adjacent tonal values for which the filter is applied. The measures mentioned above and the use of reconfigurable processing suggests that in future the whole process of image quality improving will be continued fully automatically. This correction process will take the model of HVS (Human Visual System) into account [9]. A part of the system, allowing automation of image quality improving, is shown in Fig. 3.

214 214 Mirosław Zając, Zbigniew Gmyrek Figure 3. Data flow diagram of the High Dynamic Range Visible Difference Predictor [10] An important element of the system is the CSF block. It uses a specific function for the contrast correction, used for Fourier distribution components representing the information contained in the image [11]. This allows for change of eye sensitivity depending on e.g. the level of brightness, the local contrast or high frequency Fourier distribution components which represent information in the image. This part of the system will be used to determine the initial parameters of the filter, in order to improve the quality of images which belong to a specified class. The present work carried out by the authors focuses on the Psychometric Function and Probability Summation modules. These modules have a decisive influence on the outcome of the final imaging process. Sample results of image processing using an adaptive filter and the convolution operation (to manipulate the brightness and contrast) are shown in Figs.4-6. For further analysis of the selected image, hereinafter called the model image, having the following parameters of the filter: the level 70%, the radius 3, the threshold 3. This image is presented in Fig.6. The tested images belong to a group of monochrome images described by 256 levels of brightness. Figure 4. The processed image with the adaptive filter parameters: the level 70%, the radius 28, the threshold 106.

215 An examination of the influence of adaptive filter parameters 215 Figure 5. The processed image with the adaptive filter parameters: the level 70%, the radius 28, the threshold 22. Figure 6. The model image with the adaptive filter parameters: the level 70%, the radius 3, the threshold 3. To analyze the quality of the image, subjected to adaptive filter operation, the following scalar measures were used: - Mean Square Error 1 MSE = [ f ( m, n) f ( m, n)] MN m, n 2 (2)

216 216 Mirosław Zając, Zbigniew Gmyrek where f(m,n) is the brightness of a particular pixel located at point (m,n), M is the width of the image (in pixels), N is the height of the image (in pixels), f `(m,n) is the pixel brightness of the image processed. For analyzed images M=250, N=250 pixels. - Peak Signal to Noise Ratio 2 MN[max{ f ( m, n)}] PSNR = 10 log (3) 2 [ f ( m, n) f ( m, n)] m, n where max{f(m,n)} is the largest possible value of the luminosity function, adopted as 255 (for 8-bit representation) or (for 16-bit representation) - Average Difference - Correlation Quality 1 AD = f ( m, n) f ( m, n) MN m, n [ f ( m, n) f ( m, n)] m, n CQ = 2 [ f ( m, n)] m, n 2 (4) (5) - Image Fidelity IF 2 [ f ( m, n) f ( m, n)] m, n = 1 (6) 2 [ f ( m, n)] m, n - chi-square measure - Normalized Mean Square Error [ f ( m, n) f ( m, n)] χ = (7) MN m, n f ( m, n) [ f ( m, n) f ( m, n)] m, n NMSE = 2 [ f ( m, n)] m, n It should be stressed that the NMSE measure is closely related to the IF measure (which results from the mathematical description). This may be useful in further analysis. 4. Analysis of the calculation results Tables 1-3 summarize the results of calculations carried out for the example image which belongs to a medical image class. For this image the quality improvement was made by using the adaptive filter. It has been studied how the individual values of some scalar quality measures change with the change of filter parameters. As mentioned above, the filter parameters for the image adopted as a model are as follows: the level 70%, the radius 3, the threshold 3. In Table 1 the trends of changes in measures depending on the "level" filter parameter are presented. Other parameters like "radius" and "threshold" were constant 2 (8)

217 An examination of the influence of adaptive filter parameters 217 (both parameters had a value of 3). The "level" parameter varied from 40% to 300%. The higher value of this parameter means a more stringent criterion for the pixel selection which undergoes a change. Table 2 shows the results of measures calculated for the case when the parameter "radius" was changed, whereas the remaining two parameters, ie. the "threshold" and "level" remained constant. The parameter "level" took a value of 70% while the parameter "threshold" - has a value of 3. For the third group of calculations, addressing the impact of changes in the parameter "threshold" on the value of measures see Table 3. In this case, the value of parameter "threshold" changed, while the parameter "radius" adopted a value of 3, and the parameter "level" - a value of 70%. The goal of the performed study was also to verify whether this trend of the objective measure changes is aligned with the subjective measure. The symbol " " presented in tables represents an upward trend, whereas " " represents a downward trend both determined for filter parameters greater than parameters mentioned for the model image. Some measures represent the absolute values of differences in the brightness of pixels in the model and processed image (MSE and AD). Because they relate to the number of pixels, they can be regarded as average values. While the remaining measures represent the relative values (relative to the brightness of the current pixel or group of pixels) - among them there are the measures: PSNR, CQ, IF, NMSE and chisquare. During the analysis we have to remember these differences. Table 1. The measures calculated for the image considered as a model and an image obtained with the adaptive filter application. The parameter "level" is changed, the parameters "threshold"=3 and "radius"=3. Level MSE AD CQ IF X2 NMSE Trend

218 218 Mirosław Zając, Zbigniew Gmyrek Table 2. The measures calculated for the image considered as a model and an image obtained with the adaptive filter application. The parameter "radius" is changed, the parameters "threshold"=3 and "level"=70%. Radius MSE AD CQ IF X2 NMSE Trend

219 An examination of the influence of adaptive filter parameters 219 Table 3. The measures calculated for the image considered as a model and an image obtained with the adaptive filter application. The parameter "threshold" is changed, the parameters "radius"=3 and "level"=70%. Threshold MSE AD CQ IF X2 NMSE Trend

220 220 Mirosław Zając, Zbigniew Gmyrek measure [-] level [%]. - AD - CQ - NMSE - IF. - χ2 - MSE Figure 7. The measures vs. filter parameter called "level". The parameter "radius" has a value of 3 while the parameter "threshold" - has a value of measure [-] radius [-]. - AD - CQ - NMSE - IF. - χ2 - MSE Figure 8. The measures vs. filter parameter called "radius". The parameter "level" has a value of 70% while the parameter "threshold" - has a value of 3 On the basis of executed calculations it was found that for the selected class of medical images, adaptive filter parameter selection is a very important task. The waveforms representing the selected scalar measures (presented in Figures 7-9) clearly show that the wrong choice of adaptive filter parameters can significantly degrade the image quality. This remark is especially important when working in an automatic filter system of image quality improvement, where human intervention should be limited to an absolute minimum. As can be seen from the presented examples, the influence of filter parameters for scalar measurements can be quite different. For some measures, increasing the value of the selected filter parameter can lead to a reduction in the value of a scalar measure whereas, in the case of other measures, it has the opposite tendency (both cases lead to a deterioration in image quality). By changing the values of filter parameters, which has been demonstrated for the.

221 An examination of the influence of adaptive filter parameters 221 used class of test images, it is possible to reach the conclusion that one of the filter parameters (the threshold parameter) has little influence on the scalar measures. The other two parameters of the filter (the radius parameter and the level parameter), causing large changes in the value of the scalar measures, significantly affect image quality. Measures IF and MSE are very sensitive to the parameter "level" but not very sensitive to the parameter "threshold". Among all analyzed measures, the measure AD is the most sensitive to changes in the parameter threshold measure [-] threshold [-]. - AD - CQ - NMSE - IF. - χ2 - MSE Figure 9. The measures vs. filter parameter called "threshold". The parameter "level" has a value of 70% while the parameter "radius" - has a value of Summary The effect of the adaptive filter parameters for objective scalar measures, defining the image quality, was investigated. This allows us to conclude that the skillful selection of filtering parameters is crucial in the final objective assessment of image quality. According to the calculated objective scalar measures designated for the model image and the image during exposure of the adaptive filter (see Tables 1-3), it can be concluded that the image quality was improved by a change of adaptive filter parameters. This conclusion is confirmed by the calculated measures and subjective assessment. In the study we used six scalar measures, showing that some of them are more useful than others when assessing the quality of the image. Among them the AD, MSE, NMSE and chi-square measures proved to be the most useful. By supporting the subjective measures of image quality, the authors limited the scope of the changes of adaptive filter parameters, and in the suggested area selected the optimal filter parameters. The authors showed that for a specified class of images it is possible to select the filter parameters in such a way as to obtain good quality images. Those in the subjective assessment belong to the group of images of the highest quality. Therefore, it becomes possible to program an automated process that improves an image quality (without human intervention). By determining the acceptable range of variation of selected measures it becomes possible to select the range of filter parameters automatically. We should remember that in choosing a different class of images the relationships between measures may be quite different, but groups containing more or less useful measures will probably not change.

222 222 Mirosław Zając, Zbigniew Gmyrek Acknowledgment Mr Mirosław Zając is a scholarship holder of project entitled "Innovative education..." supported by European Social Fund. References [1] Boqiang L., Minghui Z., Zhenwang Z., Cong Y., Zhongguo L., Gu, J. Medical Image Conversion with DICOM. IEEE Trans. Electrical and Computer Engineering, 2007, CCECE 2007, Canadian Conference on IEEE 2007, pp [2] Pianykh, Oleg S. Digital Imaging and Communications in Medicine (DICOM) A Practical Introduction and Survival Guide. Springer 2008 [3] Cytowski J., Gielecki J., Gola A. Cyfrowe przetwarzanie obrazów medycznych. Algorytmy. Technologie. Zastosowania. Wydawnictwo Exit, [4] Pratt W.. Digital image processing. John Wiley & Sons, [5] Miyahara M., Kotani K., Algazi V. R. Objective picture quality scale (PQS) for image coding. IEEE Trans. Comm., 46(9), pp , 1998 [6] Bal A. Porównanie wybranych metod oceny kontrastu achromatycznych obrazów cyfrowych. Pomiary Automatyka Kontrola, nr 7, pp , [7] Guojin Ch., Miaofen Z., Liming G., Kesong H., Guohua X., Huli S. Study on Kontrast Evaluation Function of CMOS Digital Camera, Proc. of IEEE/ASME International Conference on Advanced Intelligent Mechatronics, Monterey, Kalifornia, USA, 2005, pp [8] Zając M. Obrazowanie medyczne na podstawie danych zawartych w formacie DICOM z zastosowaniem filtracji adaptacyjnej, ZN WSinf, vol.9, nr 2, 2010, str [9] Mantiuk R. Percepcja widzenia [online] cja.pdf [dostęp:2010] [10] Mantiuk R. High-fidelity imaging the computational models of the human visual system in high dynamic range video compression, visible difference prediction and image processing. Dissertation, Eingereicht AM, Saarbrucken 2006 [11] Campbell, F., Robson, J. Application of Fourier analysis to the visibility of gratings. Journal of Psychology 197, 1968, pp

223 Systolic computation for conflict elimination between parallel executed distributed transactions Mateusz Smoliński Technical University of Lodz, Institute of Information Technology Abstract: Serializable history defines execution order for every distributed transaction requested by enterprise information systems, that share many data source i.e. databases. However parallel execution of distributed transactions could cause a conflict. Many conflicts could have a negative effect as a deadlock between executed transactions and stop further processing in associated enterprise informational systems. Prepared rigorous history eliminates conflicts between distributed transactions. All required computations are processed ahead by dedicated hardware unit, a systolic array. Designed systolic algorithm base on simple condition enabling transaction conflict detection. Main features of systolic array are parallel and streaming processing. Designed systolic algorithm that supports transaction conflict detection is also flexible in usage for various distributed environment. Keywords: Transaction processing, distributed systems, rigorous history, systolic array 1. Introduction Many Enterprise Informational Systems (EIS) working in company only assure data processing and data storage is delegated to external data sources i.e. databases accessed by computer network. When data sources are accessed in common by many EIS, transaction processing problem could occur. No central synchronization point cause a possibility of distributed transactions deadlock. Successful solution of deadlock problem presented in literature is rollback on some of blocked transactions, but then every aborted transaction should be repeated immediately which cause performance overhead [1,5]. Single deadlock problem between many transactions could block data processing in any associated Informational System. The main deadlock reasons are conflicted operations belonging to parallel executed transactions. Operations are conflicted when: belong to different transactions, operate on the same data resource stored in common data source and one of them is write operation. Transactions that include conflicted operations in next part of this paper will be called conflicted. 2. Transaction conflict detection As a solution of transaction deadlock problem a scheduling system was introduced, which bases on independent global synchronization element, a Coordination Service (CS). The independence is provided by existence in distributed environment Coordinator elements, each one is assigned to single EIS (Fig. 1). Coordinator suspends requested by EIS Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

224 224 Mateusz Smoliński transactions and places it in internal FIFO (First In First Out) queue and is also responsible for communication with other elements introduced in distributed environment. Coordinator requests the oldest one suspended transaction to Naming Service (NS) and if it has a token received from CS also requests this transaction to Coordination Service (CS). Naming Service assures translation of data resource representation for single distributed transaction. In registration process to every resource (i.e. database table record) which is used in transaction boundaries (read or write operation), a binary unique representation is assigned. After this process finishes registered transaction has assigned two fixed length binary resource identifiers IRW and IR. First one include representation of all data resources read or written in transaction boundaries, the second represents data resources that are only read. A format of binary resource identifiers to represent transaction context simplify communication and transaction conflict detection. Using designed simple condition (1) with binary resource identifiers of two verified transactions, distributed transaction conflict could be detected before it occurs. Figure 1. Transactions processing in distributed environment with Coordination Service, Naming Service and Enterprise Information Systems Coordinators Each transaction requested to Coordination Service is classified to Active Transactions (AT) set or Conflicted Transactions (CT) set. If requested transaction has conflict with any other currently executed transaction from AT set, it belongs to CT set. Classification needs only verification of one criterion (2). i j i j ( IRW and IWR ) xor( IR and IW ) 0 (1)

225 Systolic computation for conflict elimination between parallel executed distributed 225 j j ( ARW and IWR ) xor( AR and IW ) 0 ARW = AR = i AT i AT IR IRW i i Conditions (1) and (2) are presented with proofs in [4]. Central scheduler localized in CS prepares history without transactions conflicts, in literature is known as rigorous history [1]. The scheduler creates current history extensions including AT set and using transactions from CT set. Any not empty subset from CT set it is a scenario and number of transactions in single scenario S it is a scenario level l(s). Scenario level can not be greater than a number of EIS in distributed environment because only one conflicted transaction from single EIS could be requested at the moment. Transaction from CT set could be executed only after all conflicted with it transactions from AT set has been finished. The order in which transactions finish is impossible to determine, because duration of each transaction from AT set is not known. j j ( ARW and IWR ) xor( AR and IW ) = 0 ARW AR k k = k = i AT k i i AT k i IR IRW i i Therefore the scheduler uses condition (3) to prepare the most numerous and rigorous extension S k for each history s k with binary resource representation ARW k and AR k, assuming future finish of k-th transaction from AT set. All condition (3) verifications need to be processed ahead, before one of actually executed transaction from AT set finishes. After k-th active transaction finish, all transactions in S k should be executed immediately, therefore Coordination Service sends tokens to proper Coordinators. After token receive begins execution of oldest one suspended by Coordinator transaction and registration of second one from FIFO queue in NS and then its resource binary identifiers are requested to CS Systolic conflict detection Distributed transaction conflicts detection in verified extended history has to be done fast, therefore all computation are processed on dedicated hardware unit, a systolic array. According to definition of systolic array, it is a synchronous processing unit, with regular and modular structure, build with simple processing units [2]. Architecture with tightly adjusted algorithm defines systolic array. A time-space processing is a main feature of systolic arrays [3,4]. Systolic processing is realized in steps (each one is called a pulsation), this assures time aspect in systolic array processing. It is worth to mention that in single pulsation not all processors have to process data. Data transfer between neighbor processors uses communications registers and it is a space aspect of systolic processing. Modern GPU (Graphical Processing Unit) also could be used to execute systolic algorithm, because its features include parallel and streaming processing of data flows. k (2) (3)

226 226 Mateusz Smoliński Figure 2. Systolic array processor definition Data processing with systolic array requires systolic algorithm design, which base on array processor definition (Fig. 2). Prepared systolic algorithm utilizes vertical and horizontal connections between processors. Horizontal connections are used to load scenario data into processor registers. In this process each processor load binary resource identifiers IRW and IR of only one transaction that belongs to scenario. Vertical connections are used to transfer data related with transaction conflict detection. To verify any scenario the vertical size could not be less then number of EIS in distributed environment. Therefore it is possible to fix the minimum size of systolic array for distribute environment. Designed systolic algorithm can be use in various architectures: linear and orthogonal systolic arrays. Also size of this array can be reduced, which was presented in publications [3,4]. Presented new design of array processors guarantees execution of all required operations to detect conflict between transaction in a verified extended histories, however each history is extended to include transactions that belong to loaded scenario Linear systolic array A design of linear systolic array after scenario data loading assures transaction conflict detection for many extended histories s k. Verified history extensions base on loaded scenario data. Figure 3. Loading data to registers of processor in linear systolic array

227 Systolic computation for conflict elimination between parallel executed distributed 227 At first scenario S data are loaded. In this process binary resource identifiers of all transactions from scenario S are loaded in linear array processors registers (Fig. 3). In one column of systolic array no two processors have the same transaction binary representation loaded. One column of systolic array can load only one verified scenario at the same time. After data loading systolic computation are executed to transaction conflict detection. According to systolic processor definition (Fig. 2), binary representation of verified extended history ARW in and AR in are loaded through vertical connections. The topmost processor of linear systolic array is loaded with binary representation ARW in =ARW k and AR in =AR k, which include resources of all transactions from AT set except k-th one. After processing following processor can load calculated results ARW out and AR out with CD out (Conflict Detection). To estimate CD out value left side of equation presented in (3) is used. For example systolic computations of four processors linear array to transaction conflict detection in one extended history s k is presented on figure 4. Number of verified histories depends on AT set cardinality, for simplicity presented example systolic computations are concerned with only one history. This systolic computations are calculated by four processors in four subsequent pulsations of linear systolic array. The upper index in representation of ARW out, AR out and CD out from processor definition is specified as identifiers list of loaded transactions from CT set, which belong to verified scenario (Fig. 4). Figure 4. Systolic computation with single history To verify all extended history any scenario transaction representations has to be earlier loaded to linear systolic array processors. L( S) = l( AT ) + l( S) 1 (4)

228 228 Mateusz Smoliński Number of pulsations L(S), when scenario S data are loaded, is determined by formula (4), where l(at) is the number of active transactions and l(s) is scenario level. In single systolic pulsation many extended histories could be verified using various scenario level. For example figure 5 presents subsequent pulsations of four processor linear systolic array for two verified histories. In assumption that l(at)=2, according to formula (4), systolic computations are realized in 5 pulsations. Figure 5. Subsequent pulsations in systolic processing with two histories Presented on figure 5 extended histories verifications includes only vertical data flow between processors where scenario S data are loaded into processors registers. Any value CD k that is returned as a result from last processor of linear systolic array is related to verified history s k. Upper index of CD k represents loaded transactions sequence order during conflict occurrence verifications. This sequence must be controlled by scheduler, which using returned CD k values to prepare rigorous history Transaction conflict detection analyses According to formula (3), if value CD out calculated by linear systolic array has zero value, then no transaction conflict exists in extended history s k. When k-th active transaction finishes all transactions from scenario S k loaded in linear array processors can be executed in parallel. If single value of CD out is not zero, then a value CD out /2 (integer division) has to be compared with zero. In case where compared value are not equal, then procedure must be repeated. In the general n-th case where n<l(s k ) value CD out /2 n have to be compared with zero. Only when compared value CD out /2 n is equal to zero a subset of S k scenario can be used as conflict less extension of history s k. Transactions from this subset can be easily iden-

229 Systolic computation for conflict elimination between parallel executed distributed 229 tified, because l(s k )-n linear array processors has loaded transaction binary resource identifiers, starting with the top one. Simple analyse of result CD out value presenting figure 3. To find most numerous rigorous extension S k for history s k all scenarios have to be loaded in linear systolic array and processed according to presented systolic algorithm. Number of scenarios that need to be verified depends on cardinality of CT set. Using orthogonal systolic array, built as a group of linear systolic array, reduces time of systolic computations. Choice of array size is included in [4]. In systolic processing of all scenarios some computation could be unnecessarily repeated. Presented in [4] size reduction of linear systolic array bases on limiting verified scenario level, which dispose of this drawback. Using reduced linear systolic array each verified scenario is processed in shorter time because maximum loaded scenario level is (l(ct)+1)/2. Reduced linear systolic array usage assures finding any existing conflict less scenario for history s k for any k-th transaction from AT set. 3. Summary Presented solution bases on central scheduler, which in distributed environment prepares rigorous histories for each case, assuming completion of single active transaction. Execution of distributed transactions in parallel according to rigorous history do not conflict each other. Therefore history without transactions conflict eliminates distributed transactions deadlock occurrence. If dedicated hardware as systolic array is used with presented processor design all required computations are efficiently processed and allows preparation of conflict less scenarios in advance. Any added transaction to AT or CT set require preparation of new rigorous histories. After each linear systolic array computation central scheduler needs to analyze only single value to detect transaction conflict in any verified extended histories. This is main difference to earlier solution from [4]. The size of linear systolic array depends on number of EIS in distributed environment. Using reduced linear array provides shorter systolic processing time, but verified scenarios have level limitation. Even reduced linear array provides results to central scheduler, that are used to prepare rigorous histories for each considered case. Also flexibility of systolic algorithm in reference to array size and binary representation length can simplify deploy process of presented solution in various distributed environment [4]. References [1] Bernstein P.A., Newcomer E. Principles of transaction processing. second edition, Morgann Kaufman Publishers, 2009 [2] Lipowska-Nadolska E. Morawski M. Tablice systoliczne. Problemy wybrane. Akadmicka Oficyna Wydawnicza PLJ, Seria informatyka, 1999 [3] Smoliński M. Rigorous history of distributed transaction execution with systolic array support. XXXI ISAT conference, Information Systems Architecture and Technology New Developments in Web-Age Information Systems, Oficyna Wydawcznicza PW, 2010, s [4] Smoliński M. Scheduling system excluding distributed transaction conflicts with systolic support. dissertation, 2010 [5] Vossen G, Weikum G. Transactional Information Systems. Accademic Press, 2002

230

231 GPU-based rendering and animation of water spreading on flat surfaces Dominik Szajerman Technical University of Łódź, Institute of Information Technology Abstract: In this paper there are methods for water rendering and animation with the help of shaders described. Physical-based, visual features of water are analysed and their representation as shader-based material is presented. The material is an extension of the Phong lighting model. It is extended by transparency, environment reflection and local normal vector modification. Furthermore the method and GPU-based implementation of animation of water spreading on flat surfaces is shown. Thanks to processing on the Graphics Processing Units all presented methods work in interactive, on-line mode (above 60 fps). Keywords: gpu, water spreading, rendering, image processing, gpgpu 1. Introduction Since the introduction of Graphics Processing Units on video graphics cards there have appeared new opportunities for the animation and rendering. Shaders the programs executed on GPU processors allow to implement parallel processing algorithms of both computer graphics, as well as other. The water visualisation is a popular topic of research[1-6]. However, it is usually based on volumetric or geometric modelling of the water. In this work the simpler method is proposed. It gives a very short times of processing and rendering which allow to use it in interactive or real-time applications. In this paper in the consecutive sections the programmable rendering pipeline and Shader Model 4.0 are described. Then a water-like material shader-based implementation issues are presented. Well-known computer graphics methods are utilised: the Phong lighting model[7] and normal mapping[8]. Then follows the method of animation of water spreading using shader texture processing (with the help of image processing filtering). Next there are some visual results of the method shown. The final section contains the conclusions and the directions of future work. The following Requirements were made in order to visualise a water spreading: 1) there is a stream of water directed to a surface, 2) visualised water is spreading on this flat surface, 3) the shape of the water stain depends on the shape of the water stream and physical features of the surface, 4) water spreading stops shortly after the disappearance of the stream. 2. Shaders In this work there are the shaders used. They are programs run on the Graphics Processing Units. Thus their compute capabilities are defined by the hardware. The capabilities of shader processing could be expressed by the Shader Model version. Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

232 232 Dominik Szajerman The implementation and the Requirements in this work impose the application of Shader Model 4.0. It defines a programmable rendering pipeline which allows the programming of three stages of rendering: vertex processing (VS), geometry processing (GS) and pixel processing (PS) which are shown in the figure 1. Figure 1. Shader Model 4.0 rendering pipeline [9] The implementation in this work uses two programmable stages of the SM4.0 rendering pipeline: 1) the Vertex Shader which mainly prepares the data for the rest of the pipeline, 2) the Pixel Shader which implements two main parts of this work: - the water material described in the section 3, - the animation of water with the help of image processing described in the section 4. Furthermore the GPU feature of texture sampling in Pixel Shader is intensively used: - to obtain the colours of surfaces, - to mask the textures, - to obtain the environment appearance of the objects (by cube texture sampling), - to introduce the variables which are changing in space, - to process the images (applying a blur filter). 3. A water-like material Considering the Requirement 2) about the visualisation on a flat surface it is possible to omit the geometric modelling of the water stain. Three Features of the visual appearance of the surface behind the water are taken into account (fig. 2):

233 GPU-based rendering and animation of water spreading on flat surfaces 233 Figure 2. The real appearance of a water stain 1) a colour of the wet surface appears darker than the colour of the dry one, 2) a surface of the water reflects the environment, 3) the stain is raised above the rest of the surface, it is a layer with a thickness. Every calculation related to the visualisation of the water stain are conducted on the GPU in a pixel shader program run for the underlying surface. It is assumed that the appearance of the underlying surface is modelled by Phong lighting model and the modulation of a diffuse texture (eq. 1, fig. 3a). I ) 1 n = ( ca + cd ( N L) tdiff + cs ( RL V (1) where: I 1 final fragment colour, c a ambient coefficient, c d diffuse coefficient, c s specular coefficient, N normal vector, L normalised light direction vector, R L normalised reflected L, V normalised view vector, t diff a diffuse texture value, n specular exponent (shininess). The position and shape of the water stain if given by a one-channel binary texture mask (fig. 3b). The value of 0 means dry surface and 1 indicates wet surface. Figure 3. a) the appearance of the dry surface according to the Phong lighting model; b) a mask - the position and the shape of the water stain (the black colour means 0, and the white one means 1) In the case of a general visualisation the shape of the mask could be painted or calculated with the help of any algorithm. The section 4: Animation of water spreading describes the details of the mask generation. The Requirement 2), about the flat surface, allows to simplify the calculations to twodimensional coordinates of the surface (x, y) related to the two-dimensional coordinates of

234 234 Dominik Szajerman the texture (s, t) mapped onto this surface. Thus the coordinate system of the texture corresponds to the local coordinate system of the surface object geometry Water transparency The Phong lighting model equation is modified in order to meet Feature 1 the darker colour of the wet surface. The final colour is raised to the power greater than 1 in places where the mask indicates wet surface (eq. 2). I 2 = 1 1+ α t ( I ) mask (2) where: I 2 final fragment colour, I 1 fragment colour calculated in equation (1), α colour change coefficient, t mask value sampled from the mask texture. In the other places where the surface is dry, the value of tmask is 0, the exponent equals 1 and the surface colour remains unchanged. Figure 4a) shows a rendered wet water stain. Figure 4. The change of colours of the original surface: a) rendering of wet water stain; b) reflected environment added 3.2. Water glossiness The underlying surface could be mat or glossy. The liquid water is always glossy. The effect of glossiness in the computer graphics could be achieved by the environment mapping. There is a cube texture used. Thus the Feature 2 reflection of the environment is modelled with the help of a cube texture addressed by reflected view vector R V (eq. 3). I 3 = I 2 + c t t (3) r env mask where: I 3 final fragment colour, I 2 fragment colour calculated in equation (2), c r reflection coefficient, t env value sampled from the environment texture in position pointed by the reflected view vector R V, t mask value sampled from the mask texture. Thanks to t mask value, the glossiness of the dry places remains unmodified. Figure 4b) presents a rendered wet and reflecting water stain Water stain thickness Thanks to Requirement 2, the water thickness does not need to be geometrically modelled. Instead of this the water layer is modelled by the local modification of normal vectors of the surface only on the edge of the stain (fig.5b). The normals lying on the other places remain unmodified.

235 GPU-based rendering and animation of water spreading on flat surfaces 235 Figure 5. Normal vectors: a) according to geometric features of a water stain; b) calculated from the mask on its edge In order to show the water stain as a convex, the normal vectors are modified according to equation 4. * left right up N = [ c ( t t ), c ( t t down ),1] (4) s mask mask mask mask mask mask where: N * modified normal, c s, c t coefficients of apparent thickness of the water layer, left right up down left t, t, t, t mask texture values from the neighbouring texels (e. g. t is the value of the texel lying on the left of the considered one (position s-1,t), and so on), circle ( ) r r V is the vector normalisation symbol: V =. V Figure 5 shows the modification N * of the normal vector N. Unmodified vectors remain perpendicular to the surface. The t mask values for texels not lying on the edge stain have equal values (0 on dry and 1 on wet parts of the surface). Thus they differences equal 0, and the normal vector N * is perpendicular. However for the texels lying on the edge stain, the t mask values are different and the normal vector N * is leaning outside the water stain. It is a simplification of the contact angle which is constant and equals 90. The modified normal vector N * is substituted into the equation (1) instead of N. The water layer which has a thickness is shown in the figure 6. t mask mask mask Figure 6. Impression of the water layer thickness given by the normal vector local modification 3.4. Water quantity The calculation of the water quantity spread across the surface is not necessary for visualising it. But it was found that it helps with the following task of the water spreading animation. The current stain shape is stored in the mask texture. It was easy adopted to store the water quantity in its textels. Values of the texture mask are no longer binary, but they are

236 236 Dominik Szajerman nonnegative float numbers. It is assumed a threshold number p 0. If the mask texel value is greater or equal than p, then this textel is wet. Therefore the equations (2), (3) and (4) should take into account the thresholding operation. In the shader language it is known step() funcion working according to equation (5): It is used to modify these equations Physical features of the surface 0, x < a, step ( a, x) = (5) 1, x a. In order to meet the Assumption 3 the physical features of the underlying surface there is a one more component introduced. It is a threshold map. Thanks to it, the threshold p is not constant, but may be different in each texel of the underlying surface. The threshold map (t p ) could be treated as a surface irregularity (the places that are lower are flooded faster) or amenability to wetting (fig. 7). Figure 7. Threshold texture (t p ); black colour indicates places that are lowest (easy to wet); white colour indicated places that are highest (hard to wet). Therefore the spreading stain of water has more irregular shape than the shape obtained with the help of a constant threshold value. The comparison between constant-threshold and mapped-threshold stains is shown in the figure Complete water material The complete material has all described Features (1-3) and fulfils the Requirement 2 and partially 3. The equation (4) after the threshold modifications is presented in the equation (6): [ c ( step( t, t ) step( t * up up down down N = c ( step( t, t ) step( t, t )), (6) t s left p p left right up down where: t p, t p, t p, t p values sampled form the threshold map. The lighting equation after modifications is presented in the equation (7): left mask mask 1] p right p, t right mask mask )),

237 GPU-based rendering and animation of water spreading on flat surfaces 237 Figure 8. Left: a water stain with constant threshold; right: a water stain with threshold represented by a threshold map t p ( ( c s a + c + c I = c ( R L r t d ( N V ) env * ) step( t L)) t n 1+α step ( t p, t p diff, t mask where all symbols were described above (equations 1, 2, 3 and 5). 4. Animation of water spreading The movement of water is the change and growing of water stain in time. In order to implement such animation the mask texture has not binary values, but floating point ones. Having the texture mask defined as a floating number texture map, the water spreading could be implemented as calculations on this map. The water spreading is an equivalent to increasing texel values above the threshold value (t p ). In order to enlarge the stain, the texels neighbouring to already wet should have their value increased. Simultaneously, the average value of all wet texels should be decreased. Otherwise the stain would rapidly occupy the whole surface. Additionally all texel values should decrease in time to simulate the water evaporation the drying of the surface. Such conditions are met by a blur filter. The filter used in this work is given by the mask f (eq. 8). mask ) + ) f = (8) Such mask was choosen because of its size ( 5 5 ) and consequent ability of optimisation of processing speed in the shader program. It is possible thanks to bilinear interpolation of the texture. The ones (1) in the filter f are arranged in ( 2 2 ) blocks. It is enough to sample the mask texture in the middle of these blocks in order to read the average values (textures are addressed with the floating point vectors). After reading of these average values there is their average calculated. Therefore it is enough to sample the mask texture only four times to process the whole filtration. (7)

238 238 Dominik Szajerman The excerpt from fragment shader program, which calculates the filter f is shown in the listing 1. // the mask texture size // (width=height): int inputmasksize; // the input mask texture resource: texture2d inputmask; // texture coordinates of the // processed texel: float2 texcoords; // (...) fragment_shader() { float s = 1.5f / inputmasksize; // sample the input texture // in the position of the top-left // (2x2) block of the f filter: mask = tex2d( inputmask, texcoords + float2( -s, -s ) ); // bottom-left: mask += tex2d( inputmask, texcoords + float2( -s, s ) ); // top-right: mask += tex2d( inputmask, texcoords + float2( s, -s ) ); // bottom-right: mask += tex2d( inputmask, texcoords + float2( s, s ) ); // average the averages: mask /= 4.0f; return mask; } Listing 1. The fragment shader program calculating the filter f It should be noted that on the edge of the mask texture the missing texels values are completed with zeroes. It causes the lowering of the average value of the texels in each cycle of processing. When none of the texels achieves the value of the threshold the water stain is evaporated the whole surface is visualised as dry. The spilling of water onto surface is realised as an increasing of the chosen texels values. It could be a stream or any other source of water modelled (e.g. the melting ice block releasing the liquid water under itself). In the figure 9 there are shown a few states of the texture mask after chosen cycles of animation. I could be seen that the water is spreading when the source of water is present. When the source is depleted, the water slowly evaporates. 5. Results Figure 10 shows the application of presented method in the visualisation of melting object. The object is a source of water which is then spread across an underlying surface. The application is interactive and the scene is rendered in the real-time with the processing times below 1 millisecond.

239 GPU-based rendering and animation of water spreading on flat surfaces 239 Figure 9. The mask texture after 100, 400, 700, 1000, 2000, 3000, 6000, of animation frames (black colour a shape of melting object being the source of water; gray colour the spreading and evaporation of a water stain; while a dry surface). 6. Conclusions and future work Presented method fulfils all Requirements: 1) there is a stream of water directed to a surface it is modelled by the area of increasing values of the mask texture texels, 2) visualised water is spreading on this flat surface it is utilised to construct the proposed water material, 3) the shape of the water stain depends on the shape of the water stream and physical features of the surface it is given by the threshold map texture, 4) water spreading stops shortly after the disappearance of the stream it is the consequence of applying the blur filter on the mask texture. It allowed to achieve a plausible visualisation not only of the water (with the three visual Features implemented), but also of its spreading and evaporation. The future work would consider the development of the method: 1) the contact angle could be calculated in more precise manner, 2) the water could leave the surface on its edges (flow below), 3) the gravitation could be taken into account as additional physical factor. References [1] Lagergren M., Limsäter F., Rydahl B. High-detailed fuid simulations on the GPU. SIG- GRAPH 2010 [2] Mullen, P., Crane, K., Pavlov, D., Tong, Y., Desbrun, M. Energy-Preserving Integrators for Fluid Animation. ACM Trans. Graph. 28, 3, Article 38, 2009 [3] Judice S. F., Coutinho B. B. S., Giraldi G. A. Lattice Methods for Fluid Animation in Games. ACM Computers in Entertainment, Vol. 7, No. 4, Article 56, 2009 [4] Müller M. Fast and Robust Tracking of Fluid Surfaces. Eurographics/ ACM SIG- GRAPH Symposium on Computer Animation, 2009 [5] Dong L., You-Quan L., Kai B., En-Hua W. Real-time shallow water simulation on terrain. VRCAI 2010 [6] Szajerman D., Wojciechowski A. Real-time methods of water surface simulation implementation issues. XII System Modelling and Control, 2007

240 240 Dominik Szajerman [7] Phong B. T. Illumination for computer generated pictures. Communications of ACM 18 (1975), no. 6, [8] Krishnamurthy V., Levoy M. Fitting Smooth Surfaces to Dense Polygon Meshes. SIG- GRAPH 1996 [9] Blythe D., The Direct3D 10 System, Microsoft Corporation, 2006 Figure 10. A melting object as a source of water which is spreading across an underlying surface and then evaporating (0, 800, 1600, 2500, 4000, 7000, 8000 and cycle of animation).

241 Badanie skuteczności autoasocjacyjnej sieci Hopfielda w zagadnieniu Ogólnej Analizy Kształtu Katarzyna Gościewska Zachodniopomorski Uniwersytet Technologiczny w Szczecinie, Wydział Informatyki Abstract: The paper presents experimental results of employing Hopfield network to the problem of General Shape Analysis (GSA). This problem is similar to traditional retrieval or recognition of shapes extracted from digital images. The main difference is that GSA s main goal is not to identify object s shape but to define its similarity to the one or few general templates. Templates are simple shapes, such as circle, square or triangle. This approach determines the most general information about a shape. The experiment was performed using 50 various shapes, among which 10 were general templates and the rest were test objects. The task was to indicate the most similar template for each of the test objects. Keywords: General Shape Analysis, Hopfield network 1. Wprowadzenie Rozpoznawanie i analiza obiektów wydobytych ze zdjęć cyfrowych mogą odbywać się w oparciu o jedną z najbardziej charakterystycznych cech jaką jest ich kształt. Wynika to z możliwości inwariantnej reprezentacji kształtu za pomocą deskryptorów kształtu. Pozwalają one na przedstawienie obiektu w sposób niezależny od jak największej liczby potencjalnych deformacji, np. szumu, skalowania, przesunięcia czy obrotu ([1]). Na podstawie oszacowanej cechy obiekty mogą zostać poddane dokładnej identyfikacji poprzez przyporządkowanie do wcześniej zdefiniowanych klas. Istnieje również możliwość przeanalizowania ich pod kątem podobieństwa do prostych kształtów, co realizowane jest w ramach zagadnienia Ogólnej Analizy Kształtu (ang. General Shape Analysis). W niniejszym artykule przedstawiony zostanie problem Ogólnej Analizy Kształtu i jego dotychczasowe rozwiązania. Pojęcie to zostało wprowadzone przez Frejlichowskiego w [1] i zbliżone jest do tradycyjnego wyszukiwania bądź rozpoznawania kształtów. W omawianym przypadku badany obiekt nie należy do żadnej z klas wzorcowych, a baza wzorców złożona jest z niewielkiej liczby ogólnych kształtów, takich jak kwadrat, koło czy trójkąt ([2]). Zadanie polega na przyporządkowaniu każdemu z obiektów testowych jednego lub kilku najbardziej podobnych obiektów wzorcowych. Pozwala to na wydzielenie ogólnych informacji, określających np. jak bardzo kwadratowy, okrągły czy trójkątny jest badany kształt ([1]). Problem zilustrowany został na rys. 1. W literaturze przedstawiono kilka praktycznych zastosowań Ogólnej Analizy Kształtu, wskazując na jej przydatność przy wstępnym przeszukiwaniu dużych baz danych czy wykorzystaniu komend głosowych w tego typu procesach ([2]). Omawiane zagadnienie znalazło także zastosowanie przy znajdywaniu sfałszowanych dokumentów na podstawie kształtu pieczątek w nich zawartych ([3]). Metody Informatyki Stosowanej, nr 4/2011 (29), s ISSN Polska Akademia Nauk Oddział w Gdańsku, Komisja Informatyki

242 242 Katarzyna Gościewska Rysunek 1. Ilustracja problemu Ogólnej Analizy Kształtu: który z ogólnych kształtów jest najbardziej podobny do badanego obiektu? Analiza literatury związanej z problematyką Ogólnej Analizy Kształtu ukazała, że algorytmy oparte na sieciach neuronowych nie zostały do tej pory w tym zagadnieniu przebadane. W dalszej części artykułu omówiona zostanie autoasocjacyjna sieć Hopfielda, a następnie przedstawione zostaną rezultaty dwóch eksperymentów przeprowadzonych z jej użyciem, sprawdzających jej skuteczność w przykładowym zadaniu Ogólnej Analizy Kształtu. W rozdziale ostatnim zawarte zostanie podsumowanie. 2. Analiza problemu Ogólnej Analizy Kształtu Ogólna Analiza Kształtu (OAK) jest pojęciem dość nowym, jednakże korzystającym z dotychczas opracowanych metod, służących m.in. do reprezentacji kształtu dwuwymiarowego czy szacowania podobieństwa między reprezentacjami. Omawiając to zagadnienie należy wyróżnić dwie grupy obiektów: obiekty wzorcowe, stanowiące niewielki zbiór prostych figur geometrycznych, oraz obiekty testowe, stanowiące zazwyczaj większą grupę obiektów o bardziej skomplikowanych kształtach. Ważne jest również to, że badany kształt nie znajduje się w zbiorze obiektów wzorcowych, a jednocześnie można mu przypisać podobieństwo do jednego bądź kilku wzorców ([2]). Ogólna Analiza Kształtu różni się od tradycyjnych zagadnień analizy i rozpoznawania kształtów tym, że badany obiekt nie zostaje dokładnie zidentyfikowany, ani nie zostaje rozpoznana jego klasa, a jedynie wskazywane są wzorce najlepiej uogólniające jego kształt ([1]). Proces poszukiwania wzorców najbardziej podobnych oparty jest zazwyczaj na podejściu template matching. Polega ono na przedstawieniu obiektów i wzorców w ten sam sposób, a następnie porównywaniu każdego obiektu ze wszystkimi wzorcami w celu znalezienia najbardziej podobnego. W [4] template matching definiuje się jako porównanie funkcji wzorca z obrazem wejściowym m.in. poprzez minimalizowanie odległości między nimi, co w rezultacie daje współczynnik dopasowania (ang. matching rate). W tym przypadku najmniejsza wartość miary, przekraczająca predefiniowany próg, wskazuje na obiekt najlepiej dopasowany do badanego ([4]). W kolejnych podpunktach zaprezentowano deskryptory kształtu stosowane dotychczas do rozwiązywania problemu Ogólnej Analizy Kształtu. Należą do nich m.in. deskryptory Fouriera ([1-3]), deskryptor PDH ([2], [3], [5]), proste deskryptory kształtu ([6]), deskryptor GFD ([7]), momenty inwariantne ([2], [3], [8]), momenty Zernike a ([8]), a także deskryptory UNL i UNL-F ([2], [3], [7]). Przedstawiono również inne podejście do analizowania kształtu obiektów, zaproponowane przez Paula L. Rosina, które umożliwia zbadanie poszczególnych własności ([9-11]). Ogólna Analiza Kształtu zakłada wykorzystanie jednego deskryptora do opisu wszystkich wzorców, zaś Rosin dzieli deskryptory ze względu na rodzaj badanej własności, np. prostokątności, czyli podobieństwa do prostokąta. Wśród nich pojawiają się także algorytmy, których skuteczność sprawdzano w zadaniach OAK. Mimo iż zastosowanie różnych miar dla każdego z obiektów wzorcowych mogłoby spowodować brak możliwości porównania wyników, to jednak zagadnienie to warte jest uwagi.

243 Badanie skuteczności autoasocjacyjnej sieci Hopfielda Algorytmy stosowane dotychczas w Ogólnej Analizie Kształtu Dwuwymiarowy deskryptor Fouriera Dwuwymiarowy deskryptor Fouriera (ang. 2D Fourier Descriptor) uzyskiwany jest poprzez zastosowanie transformaty Fouriera na binarnej reprezentacji obiektu, zapisanej we współrzędnych kartezjańskich. W [1] przedstawiono wykorzystanie rezultatu przekształcenia Fouriera jako deskryptora kształtu. Dotychczas deskryptor ten był z powodzeniem stosowany w zadaniach wyszukiwania oraz rozpoznawania obiektów różnego typu. Wynika to z użytecznych własności transformaty, m.in. zdolności do uogólniania reprezentowanego obiektu. W eksperymentach z użyciem deskryptora Fouriera wykorzystywane są jedynie fragmenty obliczonych widm. Z racji braku obiektywnej miary oceniającej skuteczność deskryptora autor uznał, iż najlepsze wyniki uzyskano przy porównywaniu fragmentów widm o rozmiarach 2x2, 25x25 oraz 50x50 pikseli ([1]) Proste deskryptory kształtu Proste deskryptory kształtu (ang. simple shape descriptors) nazywane są także miarami kształtu, szczególnymi cechami obiektów lub współczynnikami kształtu. Zwykle są w stanie odróżnić jedynie kształty bardzo odmienne. Z tego względu często stosowane są jako filtry lub łącznie z innymi deskryptorami kształtu ([12]). Tego typu algorytmy wydobywają najbardziej ogólną informację o kształcie, dlatego istnieje prawdopodobieństwo, że dobrze sprawdzą się w rozwiązaniu problemu Ogólnej Analizy Kształtu. W [6] przedstawiono wyniki eksperymentów z wykorzystaniem sześciu prostych deskryptorów kształtu, do których należą zwartość, stosunek długości boków oraz cztery podstawowe miary Fereta X Feret, Y Feret, X/Y Feret i Max Feret. Według oceny autora, mimo iż uzyskane wyniki nie były idealne, za najbardziej skuteczne deskryptory uznano zwartość i Max Feret. Początkowe założenia o przydatności prostych deskryptorów kształtu okazały się błędne wybrane deskryptory nie do końca podołały rozwiązaniu zadania Ogólnej Analizy Kształtu ([6]) Biegunowe deskryptory kształtu W [7] porównano skuteczność trzech biegunowych deskryptorów kształtu w przykładowym zadaniu Ogólnej Analizy Kształtu. Przebadano deskryptory PDH (Point Distance Histogram) i UNL-F, wykorzystujące przekształcenie konturu do układu biegunowego, oraz Generic Fourier Descriptor (GFD) oparty na obrazie kształtu wypełnionego, przekształconego do układu biegunowego. Największą zaletą konwersji współrzędnych kartezjańskich do biegunowych jest uzyskanie niezależności takich reprezentacji od przesunięcia i skalowania (przy zastosowaniu normalizacji wartości). Dzięki zastosowaniu histogramu w PDH oraz przekształcenia Fouriera w UNL-F i GFD uzyskuje się także niezależność wobec obrotu. W tym przypadku do oceny skuteczności wykorzystano wyniki ankiety, która również dotyczyła znalezienia kilku wzorców najbardziej podobnych dla każdego z badanych obiektów. Najlepszym spośród trzech deskryptorów biegunowych okazał się deskryptor PDH ([7]). Jest to metoda łącząca w sobie elementy histogramu i przekształcenia obrazu do przestrzeni współrzędnych biegunowych, zaproponowana w [5]. Największą zaletą tego rozwiązania jest możliwość analizowania kształtów na bardzo ogólnym poziomie. Deskryptor ten znalazł dotychczas zastosowanie m.in. przy rozpoznawaniu znaków firmowych i kształtów erytrocytów ([5]) Deskryptory kształtu oparte na momentach Artykuł [8] przedstawia porównanie działania trzech deskryptorów kształtu opartych na momentach, do których należą: momenty inwariantne (ang. invariant moments), Momenty

244 244 Katarzyna Gościewska Sekwencji Konturu (ang. Contour Sequence Moments) oraz momenty Zernike a (ang. Zernike moments). Analiza wyników eksperymentów, przeprowadzonych z użyciem wspomnianych deskryptorów pokazała, że najlepszym deskryptorem okazał się deskryptor momentów Zernike a, wykorzystujący reprezentację wypełnioną kształtu. Skuteczność tej metody dla pierwszego wyboru z trzech była dwukrotnie wyższa niż uzyskana dla momentów inwariantnych i ponad trzykrotnie lepsza od skuteczności Momentów Sekwencji Konturu ([8]) Algorytmy zaproponowane przez P. Rosina Odmienne podejście do analizy kształtu proponuje w swoich publikacjach Rosin. Jak wspomniano, deskryptory dzielone są pod względem skuteczności opisu poszczególnych własności. W [9] zaprezentowano globalne miary kształtu (ang. global shape measures), które mają postać pojedynczych wartości opisujących dany obszar. Pozwala to na łatwe porównywanie kształtów, jednakże obarczone jest wrażliwością na przesłanianie się obiektów. W [10] zaproponowano zestaw deskryptorów służących obliczaniu prostokątności, trójkątności i eliptyczności kształtu. Definiują one jednocześnie stopień podobieństwa do prostokąta, trójkąta i elipsy. Zaproponowany podział metod zawiera zarówno te stosowane już od dawna, jak i opracowane przez autora Miary prostokątności Do opisu prostokątności zaproponowano w [11] metodę zgodności (ang. agreement method), metodę momentów (ang. moment method) i metodę rozbieżności (ang. discrepancy method). Spośród istniejących deskryptorów wymieniono najmniejszy prostokąt opisany (ang. minimum bounding rectangle, MBR), który stanowi najmniejszy prostokątny obszar zawierający wszystkie punkty kształtu. Prostokątność określana jest jako stosunek pola powierzchni kształtu do pola powierzchni MBR. Wadą tej metody jest wrażliwość na wąskie elementy wystające z kształtu, które nadmiernie powiększają obszar MBR ([11]). Aby ten problem rozwiązać, w [10] przedstawiono odporny MBR (ang. robust MBR), który z założenia nie musi obejmować wszystkich punktów tworzących kształt, a jedynie ich większość. Wówczas staje się odporny na wspomniane zakłócenia konturów Miary trójkątności Stopień podobieństwa kształtu do trójkąta może zostać oszacowany przy pomocy momentów inwariantnych, które stosowano już w problematyce OAK. Wykorzystana może zostać również metoda podobna do MBR, określająca najmniejszy trójkąt opisany (ang. minimum bounding triangle). W [10] zaproponowano także wielomianową aproksymację trójkątów (ang. polygonal triangle approximation), polegającą na dopasowaniu geometrycznego modelu trójkąta do danych i zmierzeniu błędu pomiędzy nimi wykorzystując odległość euklidesową. Dąży się do minimalizacji błędu, czyli jak najlepszego dopasowania modelu do badanego obiektu Miary eliptyczności Oprócz momentów inwariantnych, do sprawdzania eliptyczności kształtu autor proponuje zastosować m.in. dopasowanie momentów oraz metodę DFT. Pierwsza z nich polega na dopasowywaniu podstawowych figur geometrycznych z użyciem metod momentowych. Zaś druga opiera się na dyskretnej transformacie Fouriera (ang. discrete Fourier transform, DFT). W metodzie tej elipsa dopasowywana jest do badanego kształtu w taki sposób, aby

245 Badanie skuteczności autoasocjacyjnej sieci Hopfielda 245 średni kwadrat odległości punktów konturu elipsy od centroidu był taki sam jak dla kształtu. Wówczas eliptyczność szacowana jest jako odległość między odpowiadającymi sobie punktami w konturach ([10]) Porównanie deskryptorów W artykułach, które przedstawiono w punkcie 2.1, zawarto wyniki eksperymentów przeprowadzonych z użyciem kilkunastu deskryptorów kształtu w przykładowym zadaniu Ogólnej Analizy Kształtu. Dzięki temu, że w wielu przypadkach zastosowano te same dane wejściowe i ten sam sposób oceny skuteczności, ułatwione zostało porównanie metod momentowych z [8], deskryptorów biegunowych z [7] oraz siedmiu różnych deskryptorów z [2]. Ostatecznie, najlepszym z dotychczas przetestowanych deskryptorów kształtu w problemie Ogólnej Analizy Kształtu okazały się momenty Zernike a. 3. Opis autoasocjacyjnej sieci Hopfielda Algorytmy bazujące na sieciach neuronowych znajdują szerokie zastosowanie w zagadnieniach związanych z rozpoznawaniem obiektów i ich klasyfikacją ([13-15]). Szacowanie podobieństwa między reprezentacjami kształtów, zarówno w podejściach tradycyjnych, jak i w przypadku sieci neuronowych, opierać się może bezpośrednio na pikselach tworzących kształt bądź na cechach kształtu wyekstrahowanych przy pomocy deskryptorów kształtu. Jak zaprezentowano w rozdziale poprzednim, w Ogólnej Analizie Kształtu wykorzystywano dotychczas deskryptor kształtu i odpowiadającą mu miarę szacowania podobieństwa. Ze względu na swoją charakterystykę, omawiana w artykule autoasocjacyjna sieć Hopfielda traktowana jest jako narzędzie całościowe. Sieć Hopfielda jest pamięcią asocjacyjną, należącą do grupy sieci rekurencyjnych. Jej zadaniem jest zapamiętanie zbioru wzorców wejściowych w taki sposób, aby w trybie odtworzeniowym po podaniu obiektu testującego można było uzyskać w odpowiedzi zapamiętany wzorzec, leżący najbliżej wzorca testującego. Do obliczania odległości pomiędzy obiektami wykorzystuje się odległość Hamminga, którą dla dwóch wektorów y=[y 1, y 2,, y n p] T i x=[x 1, x 2,, x n p] T o wartościach binarnych można uzyskać ze wzoru ([13]): d H = n i= 1 [ x (1 y ) + (1 x ) y ]. i W ogólnym przypadku układ sieci jest układem z bezpośrednim sprzężeniem zwrotnym (rys. 2). W takiej sieci sygnały wyjściowe neuronów są jednocześnie sygnałami wejściowymi, z wyjątkiem sprzężenia zwrotnego neuronu z własnym wyjściem. Wektory uczące podawane są tylko jeden raz przy zainicjowaniu działania sieci w trybie uczącym. Tryb uczenia sieci Hopfielda polega na doborze wag neuronów w taki sposób, aby sieć posiadała zdolność do odnalezienia w pamięci wektora uczącego najbardziej podobnego do wektora testowego. W trakcie uczenia się sieci powstają atraktory, czyli obszary przyciągania, ustalane przez wektory uczące. Proces doboru wag neuronów wykorzystuje regułę Hebba, która dla wielu wzorców uczących x (k) dla k=1,2,,p dobiera wagi W ij za pomocą wzoru ([13]): i i i W ij = p 1 ( k ) ( k ) N xi x j. k= 1

246 246 Katarzyna Gościewska Rysunek 2. Schemat sieci Hopfielda (Opracowanie własne na podstawie [13]) Tryb uczenia sieci kończy się wraz z dobraniem wag dla wszystkich wektorów uczących, po czym następuje przejście do fazy odtworzeniowej. W fazie tej na wejście sieci podawane są wektory testujące x i obliczana jest jej odpowiedź, którą zazwyczaj jest zapamiętany wzorzec, najbliższy w myśl odległości Hamminga. Pojawiają się jednak sytuacje, gdzie właściwy wzorzec nie zostaje wskazany. Wówczas sieć zwraca wzorzec fałszywy, będący liniową kombinacją nieparzystej liczby zapamiętanych wzorców uczących ([13]). 4. Rezultaty eksperymentów W eksperymentach wykorzystano bazę 50 kształtów, spośród których wybrano 10 ogólnych wzorców oraz 40 obiektów testowych (Rys. 3). W postaci pierwotnej kształty zapisano jako obrazy binarne o rozdzielczości 200x200 pikseli, gdzie piksele o wartości 1 stanowiły białe tło, zaś wartości 0 tworzyły czarny obszar kształtu. Skuteczność sieci Hopfielda szacowano porównując wyniki eksperymentów z wynikami ankiet przeprowadzonych wśród 257 osób w różnym wieku. Zadanie w ankiecie dotyczyło dopasowania pięciu ogólnych wzorców dla każdego z czterdziestu obiektów testowych, w kolejności od najbardziej do najmniej podobnego. Na potrzebny niniejszego eksperymentu wybrano po jednym wzorcu najczęściej występującym w odpowiedziach.

247 Badanie skuteczności autoasocjacyjnej sieci Hopfielda 247 Rysunek 3. Podział kształtów na 10 wzorcowych (pierwszy rząd) i 40 testowych (pozostałe) (Źródło: [7]) Ze względu na ograniczone możliwości sprzętowe i charakterystykę sieci obrazy wejściowe zmniejszono do rozmiaru 50x50 pikseli. Następnie przekształcono je do postaci wektorów zamieniając jednocześnie wartości pikseli czarnych na 1, a pikseli białych na -1. Na etapie uczenia sieci wprowadzono na wejściu 10 obiektów wzorcowych, które sieć zapamiętała. W fazie odtworzeniowej podawano na wejście sieci pojedynczo każdy z obiektów testowych, a w odpowiedzi uzyskiwano jeden wzorzec najbardziej podobny, charakteryzujący się najmniejszą odległością. Skuteczność pierwszego eksperymentu, którego wyniki przedstawiono w tabeli 1, wyniosła 35%. Jednakże w odpowiedzi uzyskano cztery wzorce fałszywe będące liniową kombinacją nieparzystej liczby wzorców uczących. Oznacza to, że sieć nie była w stanie odnaleźć w pamięci podobnego wzorca. Tabela 1. Wyniki pierwszego eksperymentu wykorzystującego sieć Hopfielda Obiekt testowy Wzorzec Obiekt testowy Wzorzec Obiekt testowy Wzorzec Fałszywy wzorzec Obiekt testowy 36 Wzorzec Fałszywy wzorzec Fałszywy wzorzec Fałszywy wzorzec

248 248 Katarzyna Gościewska W celu wyeliminowania wzorców fałszywych zmieniono sposób przygotowania danych do eksperymentu. Starano się maksymalnie zredukować obszar tła w taki sposób, aby sylwetka obiektu zajmowała jak największą powierzchnię obrazu. W celu zilustrowania różnic, na rys. 4 przedstawiono oryginalne obrazy wzorców, jak i te o zmniejszonym tle. Pozostałe przekształcenia danych wejściowych przebiegały identycznie jak w eksperymencie pierwszym. a) b) Rysunek 4. Obrazy wzorców: a) oryginalne, wykorzystane w eksperymencie pierwszym oraz b) o zredukowanym tle, wykorzystane w eksperymencie drugim Wyniki drugiego eksperymentu przedstawiono w tabeli 2. Próba usunięcia wzorców fałszywych z odpowiedzi zakończona została sukcesem, a skuteczność sieci Hopfielda wzrosła do 37,5%. Pomimo zmniejszonej rozdzielczości danych wejściowych uzyskane rezultaty były bardzo zadowalające. W obu eksperymentach większość odpowiedzi była zgodna. Najczęściej wskazywanym wzorcem był krzyżyk, zaś pozostałe wzorce pojawiały się z mniejszą częstotliwością. Tabela 2. Wyniki drugiego eksperymentu wykorzystującego sieć Hopfielda i wzorce o zredukowanym tle Obiekt testowy Wzorzec Obiekt testowy Wzorzec Obiekt testowy Wzorzec Obiekt testowy Wzorzec

Akademia Morska w Szczecinie. Wydział Mechaniczny

Akademia Morska w Szczecinie. Wydział Mechaniczny Akademia Morska w Szczecinie Wydział Mechaniczny ROZPRAWA DOKTORSKA mgr inż. Marcin Kołodziejski Analiza metody obsługiwania zarządzanego niezawodnością pędników azymutalnych platformy pływającej Promotor:

Bardziej szczegółowo

Cracow University of Economics Poland. Overview. Sources of Real GDP per Capita Growth: Polish Regional-Macroeconomic Dimensions 2000-2005

Cracow University of Economics Poland. Overview. Sources of Real GDP per Capita Growth: Polish Regional-Macroeconomic Dimensions 2000-2005 Cracow University of Economics Sources of Real GDP per Capita Growth: Polish Regional-Macroeconomic Dimensions 2000-2005 - Key Note Speech - Presented by: Dr. David Clowes The Growth Research Unit CE Europe

Bardziej szczegółowo

Cracow University of Economics Poland

Cracow University of Economics Poland Cracow University of Economics Poland Sources of Real GDP per Capita Growth: Polish Regional-Macroeconomic Dimensions 2000-2005 - Keynote Speech - Presented by: Dr. David Clowes The Growth Research Unit,

Bardziej szczegółowo

Fig 5 Spectrograms of the original signal (top) extracted shaft-related GAD components (middle) and

Fig 5 Spectrograms of the original signal (top) extracted shaft-related GAD components (middle) and Fig 4 Measured vibration signal (top). Blue original signal. Red component related to periodic excitation of resonances and noise. Green component related. Rotational speed profile used for experiment

Bardziej szczegółowo

ROZPRAWY NR 128. Stanis³aw Mroziñski

ROZPRAWY NR 128. Stanis³aw Mroziñski UNIWERSYTET TECHNOLOGICZNO-PRZYRODNICZY IM. JANA I JÊDRZEJA ŒNIADECKICH W BYDGOSZCZY ROZPRAWY NR 128 Stanis³aw Mroziñski STABILIZACJA W ASNOŒCI CYKLICZNYCH METALI I JEJ WP YW NA TRWA OŒÆ ZMÊCZENIOW BYDGOSZCZ

Bardziej szczegółowo

Zarządzanie sieciami telekomunikacyjnymi

Zarządzanie sieciami telekomunikacyjnymi SNMP Protocol The Simple Network Management Protocol (SNMP) is an application layer protocol that facilitates the exchange of management information between network devices. It is part of the Transmission

Bardziej szczegółowo

P R A C A D Y P L O M O W A

P R A C A D Y P L O M O W A POLITECHNIKA POZNAŃSKA Wydział Maszyn Roboczych i Transportu P R A C A D Y P L O M O W A Autor: inż. METODA Ε-CONSTRAINTS I PRZEGLĄDU FRONTU PARETO W ZASTOSOWANIU DO ROZWIĄZYWANIA PROBLEMU OPTYMALIZACJI

Bardziej szczegółowo

Krytyczne czynniki sukcesu w zarządzaniu projektami

Krytyczne czynniki sukcesu w zarządzaniu projektami Seweryn SPAŁEK Krytyczne czynniki sukcesu w zarządzaniu projektami MONOGRAFIA Wydawnictwo Politechniki Śląskiej Gliwice 2004 SPIS TREŚCI WPROWADZENIE 5 1. ZARZĄDZANIE PROJEKTAMI W ORGANIZACJI 13 1.1. Zarządzanie

Bardziej szczegółowo

Proposal of thesis topic for mgr in. (MSE) programme in Telecommunications and Computer Science

Proposal of thesis topic for mgr in. (MSE) programme in Telecommunications and Computer Science Proposal of thesis topic for mgr in (MSE) programme 1 Topic: Monte Carlo Method used for a prognosis of a selected technological process 2 Supervisor: Dr in Małgorzata Langer 3 Auxiliary supervisor: 4

Bardziej szczegółowo

STATYSTYKA OD PODSTAW Z SYSTEMEM SAS. wersja 9.2 i 9.3. Szkoła Główna Handlowa w Warszawie

STATYSTYKA OD PODSTAW Z SYSTEMEM SAS. wersja 9.2 i 9.3. Szkoła Główna Handlowa w Warszawie STATYSTYKA OD PODSTAW Z SYSTEMEM SAS wersja 9.2 i 9.3 Szkoła Główna Handlowa w Warszawie Spis treści Wprowadzenie... 6 1. Podstawowe informacje o systemie SAS... 9 1.1. Informacje ogólne... 9 1.2. Analityka...

Bardziej szczegółowo

Konsorcjum Śląskich Uczelni Publicznych

Konsorcjum Śląskich Uczelni Publicznych Konsorcjum Śląskich Uczelni Publicznych Dlaczego powstało? - świat przeżywa dziś rewolucję w obszarze edukacji, - naszym celem jest promocja śląskiego jako regionu opartego na wiedzy, i najnowszych technologiach,

Bardziej szczegółowo

POLITYKA PRYWATNOŚCI / PRIVACY POLICY

POLITYKA PRYWATNOŚCI / PRIVACY POLICY POLITYKA PRYWATNOŚCI / PRIVACY POLICY TeleTrade DJ International Consulting Ltd Sierpień 2013 2011-2014 TeleTrade-DJ International Consulting Ltd. 1 Polityka Prywatności Privacy Policy Niniejsza Polityka

Bardziej szczegółowo

Unit of Social Gerontology, Institute of Labour and Social Studies ageing and its consequences for society

Unit of Social Gerontology, Institute of Labour and Social Studies ageing and its consequences for society Prof. Piotr Bledowski, Ph.D. Institute of Social Economy, Warsaw School of Economics local policy, social security, labour market Unit of Social Gerontology, Institute of Labour and Social Studies ageing

Bardziej szczegółowo

Metodyki projektowania i modelowania systemów Cyganek & Kasperek & Rajda 2013 Katedra Elektroniki AGH

Metodyki projektowania i modelowania systemów Cyganek & Kasperek & Rajda 2013 Katedra Elektroniki AGH Kierunek Elektronika i Telekomunikacja, Studia II stopnia Specjalność: Systemy wbudowane Metodyki projektowania i modelowania systemów Cyganek & Kasperek & Rajda 2013 Katedra Elektroniki AGH Zagadnienia

Bardziej szczegółowo

Projekty Marie Curie Actions w praktyce: EGALITE (IAPP) i ArSInformatiCa (IOF)

Projekty Marie Curie Actions w praktyce: EGALITE (IAPP) i ArSInformatiCa (IOF) Gliwice, Poland, 28th February 2014 Projekty Marie Curie Actions w praktyce: EGALITE (IAPP) i ArSInformatiCa (IOF) Krzysztof A. Cyran The project has received Community research funding under the 7th Framework

Bardziej szczegółowo

TRANSPORT W RODZINNYCH GOSPODARSTWACH ROLNYCH

TRANSPORT W RODZINNYCH GOSPODARSTWACH ROLNYCH INŻYNIERIA W ROLNICTWIE. MONOGRAFIE 16 ENGINEERING IN AGRICULTURE. MONOGRAPHS 16 WIESŁAW GOLKA TRANSPORT W RODZINNYCH GOSPODARSTWACH ROLNYCH TRANSPORTATION IN RURAL FAMILY FARMS Falenty 2014 WYDAWNICTWO

Bardziej szczegółowo

LEARNING AGREEMENT FOR STUDIES

LEARNING AGREEMENT FOR STUDIES LEARNING AGREEMENT FOR STUDIES The Student First and last name(s) Nationality E-mail Academic year 2014/2015 Study period 1 st semester 2 nd semester Study cycle Bachelor Master Doctoral Subject area,

Bardziej szczegółowo

PROJECT. Syllabus for course Global Marketing. on the study program: Management

PROJECT. Syllabus for course Global Marketing. on the study program: Management Poznań, 2012, September 20th Doctor Anna Scheibe adiunct in the Department of Economic Sciences PROJECT Syllabus for course Global Marketing on the study program: Management I. General information 1. Name

Bardziej szczegółowo

ZESZYTY NAUKOWE NR 12 (84) AKADEMII MORSKIEJ Szczecin 2007

ZESZYTY NAUKOWE NR 12 (84) AKADEMII MORSKIEJ Szczecin 2007 ISSN 1733-8670 ZESZYTY NAUKOWE NR 12 (84) AKADEMII MORSKIEJ Szczecin 2007 WYDZIAŁ INŻYNIERYJNO-EKONOMICZNY TRANSPORTU Anna Białas Motyl Przewozy ładunków transportem śródlądowym i praca przewozowa w krajach

Bardziej szczegółowo

ERASMUS + : Trail of extinct and active volcanoes, earthquakes through Europe. SURVEY TO STUDENTS.

ERASMUS + : Trail of extinct and active volcanoes, earthquakes through Europe. SURVEY TO STUDENTS. ERASMUS + : Trail of extinct and active volcanoes, earthquakes through Europe. SURVEY TO STUDENTS. Strona 1 1. Please give one answer. I am: Students involved in project 69% 18 Student not involved in

Bardziej szczegółowo

18. Przydatne zwroty podczas egzaminu ustnego. 19. Mo liwe pytania egzaminatora i przyk³adowe odpowiedzi egzaminowanego

18. Przydatne zwroty podczas egzaminu ustnego. 19. Mo liwe pytania egzaminatora i przyk³adowe odpowiedzi egzaminowanego 18. Przydatne zwroty podczas egzaminu ustnego I m sorry, could you repeat that, please? - Przepraszam, czy mo na prosiæ o powtórzenie? I m sorry, I don t understand. - Przepraszam, nie rozumiem. Did you

Bardziej szczegółowo

Evaluation of the main goal and specific objectives of the Human Capital Operational Programme

Evaluation of the main goal and specific objectives of the Human Capital Operational Programme Pracownia Naukowo-Edukacyjna Evaluation of the main goal and specific objectives of the Human Capital Operational Programme and the contribution by ESF funds towards the results achieved within specific

Bardziej szczegółowo

2014-3-30. Urbanek J., Jabłoński A., Barszcz T ssswedfsdfurbanek J., Jabłoński A., Barszcz T., Wykonanie pomiarów

2014-3-30. Urbanek J., Jabłoński A., Barszcz T ssswedfsdfurbanek J., Jabłoński A., Barszcz T., Wykonanie pomiarów Wykonanie pomiarów sygnałów wibroakustycznych przy stałych oraz zmiennych warunkach eksploatacyjnych na stanowisku testowym. Część II: Analiza poprawności pomiarów. Autorzy: Urbanek J., Jabłoński A., Barszcz

Bardziej szczegółowo

Ankiety Nowe funkcje! Pomoc magda.szewczyk@slo-wroc.pl. magda.szewczyk@slo-wroc.pl. Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to students

Ankiety Nowe funkcje! Pomoc magda.szewczyk@slo-wroc.pl. magda.szewczyk@slo-wroc.pl. Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to students Ankiety Nowe funkcje! Pomoc magda.szewczyk@slo-wroc.pl Back Twoje konto Wyloguj magda.szewczyk@slo-wroc.pl BIODIVERSITY OF RIVERS: Survey to students Tworzenie ankiety Udostępnianie Analiza (55) Wyniki

Bardziej szczegółowo

EN/PL COUNCIL OF THE EUROPEAN UNION. Brussels, 29 August 2013. 13174/13 Interinstitutional File: 2013/0224 (COD)

EN/PL COUNCIL OF THE EUROPEAN UNION. Brussels, 29 August 2013. 13174/13 Interinstitutional File: 2013/0224 (COD) COUNCIL OF THE EUROPEAN UNION Brussels, 29 August 2013 13174/13 Interinstitutional File: 2013/0224 (COD) ENV 782 MAR 119 MI 708 ONU 86 CODEC 1921 INST 459 PARLNAT 214 COVER NOTE from: Polish Senate date

Bardziej szczegółowo

Financial support for start-uppres. Where to get money? - Equity. - Credit. - Local Labor Office - Six times the national average wage (22000 zł)

Financial support for start-uppres. Where to get money? - Equity. - Credit. - Local Labor Office - Six times the national average wage (22000 zł) Financial support for start-uppres Where to get money? - Equity - Credit - Local Labor Office - Six times the national average wage (22000 zł) - only for unymployed people - the company must operate minimum

Bardziej szczegółowo

Effective Governance of Education at the Local Level

Effective Governance of Education at the Local Level Effective Governance of Education at the Local Level Opening presentation at joint Polish Ministry OECD conference April 16, 2012, Warsaw Mirosław Sielatycki Ministry of National Education Doskonalenie

Bardziej szczegółowo

Extraclass. Football Men. Season 2009/10 - Autumn round

Extraclass. Football Men. Season 2009/10 - Autumn round Extraclass Football Men Season 2009/10 - Autumn round Invitation Dear All, On the date of 29th July starts the new season of Polish Extraclass. There will be live coverage form all the matches on Canal+

Bardziej szczegółowo

Health Resorts Pearls of Eastern Europe Innovative Cluster Health and Tourism

Health Resorts Pearls of Eastern Europe Innovative Cluster Health and Tourism Health Resorts Pearls of Eastern Europe Innovative Cluster Health and Tourism Projekt finansowany Fundusze Europejskie z budżetu państwa dla rozwoju oraz ze Polski środków Wschodniej Unii Europejskiej

Bardziej szczegółowo

Załącznik 1. Kwestionariusz rozesłany został również w języku angielskim do spółek zagranicznych.

Załącznik 1. Kwestionariusz rozesłany został również w języku angielskim do spółek zagranicznych. Załącznik 1. Poniżej znajduje się kwestionariusz, za pomocą którego Stowarzyszenie Emitentów Giełdowych zwróciło się do emitentów z prośbą o wyrażenie opinii na temat tzw. listy alertów. Spółki oceniały

Bardziej szczegółowo

Domy inaczej pomyślane A different type of housing CEZARY SANKOWSKI

Domy inaczej pomyślane A different type of housing CEZARY SANKOWSKI Domy inaczej pomyślane A different type of housing CEZARY SANKOWSKI O tym, dlaczego warto budować pasywnie, komu budownictwo pasywne się opłaca, a kto się go boi, z architektem, Cezarym Sankowskim, rozmawia

Bardziej szczegółowo

EGARA 2011. Adam Małyszko FORS. POLAND - KRAKÓW 2-3 12 2011r

EGARA 2011. Adam Małyszko FORS. POLAND - KRAKÓW 2-3 12 2011r EGARA 2011 Adam Małyszko FORS POLAND - KRAKÓW 2-3 12 2011r HISTORIA ELV / HISTORY ELV 1992r. 5 Program działań na rzecz ochrony środowiska / EAP (Environmental Action Plan) 1994r. Strategia dobrowolnego

Bardziej szczegółowo

Estimation and planing. Marek Majchrzak, Andrzej Bednarz Wroclaw, 06.07.2011

Estimation and planing. Marek Majchrzak, Andrzej Bednarz Wroclaw, 06.07.2011 Estimation and planing Marek Majchrzak, Andrzej Bednarz Wroclaw, 06.07.2011 Story points Story points C D B A E Story points C D 100 B A E Story points C D 2 x 100 100 B A E Story points C D 2 x 100 100

Bardziej szczegółowo

PLSH1 (JUN14PLSH101) General Certificate of Education Advanced Subsidiary Examination June 2014. Reading and Writing TOTAL

PLSH1 (JUN14PLSH101) General Certificate of Education Advanced Subsidiary Examination June 2014. Reading and Writing TOTAL Centre Number Surname Candidate Number For Examiner s Use Other Names Candidate Signature Examiner s Initials Section Mark Polish Unit 1 Reading and Writing General Certificate of Education Advanced Subsidiary

Bardziej szczegółowo

PROGRAM SEMINARIUM ZAKOPANE 2010. czwartek, 2 grudnia 2010 r. Sesja przedpołudniowa. Otwarcie seminarium Prof. dr hab. inż. Tadeusz Czachórski

PROGRAM SEMINARIUM ZAKOPANE 2010. czwartek, 2 grudnia 2010 r. Sesja przedpołudniowa. Otwarcie seminarium Prof. dr hab. inż. Tadeusz Czachórski czwartek, 2 grudnia 2010 r. Sesja przedpołudniowa 9.30 9.40: Otwarcie seminarium Prof. dr hab. inż. Tadeusz Czachórski 9.40 10.10: 10.10 10.40: 10.40 11.10: prof. dr hab. inż. Zbigniew Janusz Czech Zaawansowane

Bardziej szczegółowo

Working Tax Credit Child Tax Credit Jobseeker s Allowance

Working Tax Credit Child Tax Credit Jobseeker s Allowance Benefits Depending on your residency status (EU citizen or not) there are various benefits available to help you with costs of living. A8 nationals need to have been working for a year and be registered

Bardziej szczegółowo

Egzamin maturalny z języka angielskiego na poziomie dwujęzycznym Rozmowa wstępna (wyłącznie dla egzaminującego)

Egzamin maturalny z języka angielskiego na poziomie dwujęzycznym Rozmowa wstępna (wyłącznie dla egzaminującego) 112 Informator o egzaminie maturalnym z języka angielskiego od roku szkolnego 2014/2015 2.6.4. Część ustna. Przykładowe zestawy zadań Przykładowe pytania do rozmowy wstępnej Rozmowa wstępna (wyłącznie

Bardziej szczegółowo

PROBLEMATYKA WDROŻEŃ PROJEKTÓW INFORMATYCZNYCH W INSTYTUCJACH PUBLICZNYCH

PROBLEMATYKA WDROŻEŃ PROJEKTÓW INFORMATYCZNYCH W INSTYTUCJACH PUBLICZNYCH Zarządzanie Publiczne, vol. 1(14), pp. 63-73 Kraków 2012 Published online June 29, 2012 DOI 10.4467/20843968ZP.12.016.0483 PROBLEMATYKA WDROŻEŃ PROJEKTÓW INFORMATYCZNYCH W INSTYTUCJACH PUBLICZNYCH Beata

Bardziej szczegółowo

POLITECHNIKA ŚLĄSKA INSTYTUT AUTOMATYKI ZAKŁAD SYSTEMÓW POMIAROWYCH

POLITECHNIKA ŚLĄSKA INSTYTUT AUTOMATYKI ZAKŁAD SYSTEMÓW POMIAROWYCH POLITECHNIKA ŚLĄSKA INSTYTUT AUTOMATYKI ZAKŁAD SYSTEMÓW POMIAROWYCH Gliwice, wrzesień 2005 Pomiar napięcia przemiennego Cel ćwiczenia Celem ćwiczenia jest zbadanie dokładności woltomierza cyfrowego dla

Bardziej szczegółowo

Ocena skuteczności preparatów miejscowo znieczulających skórę w redukcji bólu w trakcie pobierania krwi u dzieci badanie z randomizacją

Ocena skuteczności preparatów miejscowo znieczulających skórę w redukcji bólu w trakcie pobierania krwi u dzieci badanie z randomizacją 234 Ocena skuteczności preparatów miejscowo znieczulających skórę w redukcji bólu w trakcie pobierania krwi u dzieci badanie z randomizacją The effectiveness of local anesthetics in the reduction of needle

Bardziej szczegółowo

METODA OGÓLNEJ OCENY STANU ŚRODO- WISKA OBSZARÓW WIEJSKICH NA PODSTAWIE INFORMACJI Z BANKU DANYCH REGIONALNYCH GUS I OSZACOWAŃ PROGRAMU EMEP

METODA OGÓLNEJ OCENY STANU ŚRODO- WISKA OBSZARÓW WIEJSKICH NA PODSTAWIE INFORMACJI Z BANKU DANYCH REGIONALNYCH GUS I OSZACOWAŃ PROGRAMU EMEP Ekonomia i Środowisko 2 (49) 2014 Jan Cetner Kazimierz Dyguś Marta Ogonowska Jerzy Wojtatowicz METODA OGÓLNEJ OCENY STANU ŚRODO- WISKA OBSZARÓW WIEJSKICH NA PODSTAWIE INFORMACJI Z BANKU DANYCH REGIONALNYCH

Bardziej szczegółowo

UMOWY WYPOŻYCZENIA KOMENTARZ

UMOWY WYPOŻYCZENIA KOMENTARZ UMOWY WYPOŻYCZENIA KOMENTARZ Zaproponowany dla krajów Unii Europejskiej oraz dla wszystkich zainteresowanych stron wzór Umowy wypożyczenia między muzeami i instytucjami kultury opracowany został przez

Bardziej szczegółowo

PRACA DYPLOMOWA Magisterska

PRACA DYPLOMOWA Magisterska POLITECHNIKA WARSZAWSKA Wydział Samochodów i Maszyn Roboczych PRACA DYPLOMOWA Magisterska Studia stacjonarne dzienne Semiaktywne tłumienie drgań w wymuszonych kinematycznie układach drgających z uwzględnieniem

Bardziej szczegółowo

SUPPLEMENTARY INFORMATION FOR THE LEASE LIMIT APPLICATION

SUPPLEMENTARY INFORMATION FOR THE LEASE LIMIT APPLICATION SUPPLEMENTARY INFORMATION FOR THE LEASE LIMIT APPLICATION 1. Applicant s data Company s name (address, phone) NIP (VAT) and REGON numbers Contact person 2. PPROPERTIES HELD Address Type of property Property

Bardziej szczegółowo

Planowanie zrównoważonego transportu miejskiego w Polsce. Sustainable Urban Mobility Planning Poland. Wprowadzenie. Introduction

Planowanie zrównoważonego transportu miejskiego w Polsce. Sustainable Urban Mobility Planning Poland. Wprowadzenie. Introduction Planowanie zrównoważonego transportu miejskiego w Polsce Sustainable Urban Mobility Planning Poland Wprowadzenie Introduction Wyzwania polityki UE w zakresie transportu miejskiego Zatłoczenie centrów miast

Bardziej szczegółowo

OCENA WYBRANYCH CECH JAKOŚCI MROŻONEK ZA POMOCĄ AKWIZYCJI OBRAZU

OCENA WYBRANYCH CECH JAKOŚCI MROŻONEK ZA POMOCĄ AKWIZYCJI OBRAZU Inżynieria Rolnicza 4(129)/2011 OCENA WYBRANYCH CECH JAKOŚCI MROŻONEK ZA POMOCĄ AKWIZYCJI OBRAZU Katarzyna Szwedziak, Dominika Matuszek Katedra Techniki Rolniczej i Leśnej, Politechnika Opolska Streszczenie:

Bardziej szczegółowo

DETECTION OF MATERIAL INTEGRATED CONDUCTORS FOR CONNECTIVE RIVETING OF FUNCTION-INTEGRATIVE TEXTILE-REINFORCED THERMOPLASTIC COMPOSITES

DETECTION OF MATERIAL INTEGRATED CONDUCTORS FOR CONNECTIVE RIVETING OF FUNCTION-INTEGRATIVE TEXTILE-REINFORCED THERMOPLASTIC COMPOSITES Kompozyty 11: 2 (2011) 152-156 Werner A. Hufenbach, Frank Adam, Maik Gude, Ivonne Körner, Thomas Heber*, Anja Winkler Technische Universität Dresden, Institute of Lightweight Engineering and Polymer Technology

Bardziej szczegółowo

First year of studies - Sculpture... 2. Second year of studies- Sculpture... 3. Third year of studies- Sculpture... 4

First year of studies - Sculpture... 2. Second year of studies- Sculpture... 3. Third year of studies- Sculpture... 4 Academic year 2014/2015 Academy of Fine Arts in Gdańsk Faculty of Sculpture and Intermedia Long-cycle Master s degree studies (5 years) The Faculty of Sculpture is divided into two fields of study: Sculpture

Bardziej szczegółowo

Ankiety Nowe funkcje! Pomoc magda.szewczyk@slo-wroc.pl. magda.szewczyk@slo-wroc.pl. Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to teachers

Ankiety Nowe funkcje! Pomoc magda.szewczyk@slo-wroc.pl. magda.szewczyk@slo-wroc.pl. Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to teachers 1 z 7 2015-05-14 18:32 Ankiety Nowe funkcje! Pomoc magda.szewczyk@slo-wroc.pl Back Twoje konto Wyloguj magda.szewczyk@slo-wroc.pl BIODIVERSITY OF RIVERS: Survey to teachers Tworzenie ankiety Udostępnianie

Bardziej szczegółowo

BULLETIN 2 II TRAINING CAMP POLISH OPEN MTBO CHAMPIONSHIPS 19-22.06.2014 MICHAŁOWO 23-29.06.2014 TRAINING CAMP WORLD MTB ORIENTEERING CHAMPIONSHIPS

BULLETIN 2 II TRAINING CAMP POLISH OPEN MTBO CHAMPIONSHIPS 19-22.06.2014 MICHAŁOWO 23-29.06.2014 TRAINING CAMP WORLD MTB ORIENTEERING CHAMPIONSHIPS BULLETIN 2 II TRAINING CAMP POLISH OPEN MTBO CHAMPIONSHIPS 19-22.06.2014 MICHAŁOWO 23-29.06.2014 TRAINING CAMP WORLD MTB ORIENTEERING CHAMPIONSHIPS MASTERS WORLD MTB ORIENTEERING CHAMPIONSHIPS MTB ORIENTEERING

Bardziej szczegółowo

Filozofia z elementami logiki Klasyfikacja wnioskowań I część 2

Filozofia z elementami logiki Klasyfikacja wnioskowań I część 2 Filozofia z elementami logiki Klasyfikacja wnioskowań I część 2 Mariusz Urbański Instytut Psychologii UAM Mariusz.Urbanski@amu.edu.pl Plan: definicja pojęcia wnioskowania wypowiedzi inferencyjne i wypowiedzi

Bardziej szczegółowo

OSTC GLOBAL TRADING CHALLENGE MANUAL

OSTC GLOBAL TRADING CHALLENGE MANUAL OSTC GLOBAL TRADING CHALLENGE MANUAL Wrzesień 2014 www.ostc.com/game Po zarejestrowaniu się w grze OSTC Global Trading Challenge, zaakceptowaniu oraz uzyskaniu dostępu to produktów, użytkownik gry będzie

Bardziej szczegółowo

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015 Politechnika Krakowska im. Tadeusza Kościuszki Karta przedmiotu Wydział Inżynierii Środowiska obowiązuje studentów rozpoczynających studia w roku akademickim 014/015 Kierunek studiów: Inżynieria Środowiska

Bardziej szczegółowo

Auschwitz and Birkenau Concentration Camp Records, 1940 1945 RG 15.191M

Auschwitz and Birkenau Concentration Camp Records, 1940 1945 RG 15.191M Auschwitz and Birkenau Concentration Camp Records, 1940 1945 RG 15.191M United States Holocaust Memorial Museum Archive 100 Raoul Wallenberg Place SW Washington, DC 20024 2126 Tel. (202) 479 9717 Email:

Bardziej szczegółowo

RACJONALIZACJA PROCESU EKSPLOATACYJNEGO SYSTEMÓW MONITORINGU WIZYJNEGO STOSOWANYCH NA PRZEJAZDACH KOLEJOWYCH

RACJONALIZACJA PROCESU EKSPLOATACYJNEGO SYSTEMÓW MONITORINGU WIZYJNEGO STOSOWANYCH NA PRZEJAZDACH KOLEJOWYCH RACE NAUKOWE OLITECHNIKI WARSZAWSKIEJ z. Transport 6 olitechnika Warszawska, RACJONALIZACJA ROCESU EKSLOATACYJNEGO SYSTEMÓW MONITORINGU WIZYJNEGO STOSOWANYCH NA RZEJAZDACH KOLEJOWYCH dostarczono: Streszczenie

Bardziej szczegółowo

Lista zwycięzców 30 zł na start z BZWBK24 mobile

Lista zwycięzców 30 zł na start z BZWBK24 mobile Lista zwycięzców 30 zł na start z BZWBK24 mobile KRYSTYNA S. KRYSTYNA C. EDWARD F. KAROLINA C. WOJCIECH T. JANINA F. FRANCISZKA G. HENRYK H. MIROSŁAW W. JULI BARBARA H. CELINA Ł. STANISŁAW K. HELENA S.

Bardziej szczegółowo

Ilona B. Miles website Terms of Use (ewentualnie: Service)

Ilona B. Miles website Terms of Use (ewentualnie: Service) Ilona B. Miles website Terms of Use (ewentualnie: Service) 1. The owner of the website Ilona B. Miles is Success Solutions LLC, Sonaty Street 6/1108, 02-744 Warsaw, Tax Identification Number: 5213689531,

Bardziej szczegółowo

ANALIZA ZDOLNOŚCI DO REALIZACJI WYDATKÓW INWESTYCYJNYCH GMINY WIŚNIOWA

ANALIZA ZDOLNOŚCI DO REALIZACJI WYDATKÓW INWESTYCYJNYCH GMINY WIŚNIOWA INFRASTRUKTURA I EKOLOGIA TERENÓW WIEJSKICH Nr 2/2005, POLSKA AKADEMIA NAUK, Oddział w Krakowie, s. 27 33 Komisja Technicznej Infrastruktury Wsi Marcin Hyski ANALIZA ZDOLNOŚCI DO REALIZACJI WYDATKÓW INWESTYCYJNYCH

Bardziej szczegółowo

The average number of people in a household receiving social benefits in relation to the average number of persons per household

The average number of people in a household receiving social benefits in relation to the average number of persons per household CENTRAL STATISTICAL OFFICE STATISTICAL OFFICE IN KATOWICE Sustainable Development Indicators. Regional module The average number of people in a household receiving social benefits in relation to the average

Bardziej szczegółowo

Realizacja systemów wbudowanych (embeded systems) w strukturach PSoC (Programmable System on Chip)

Realizacja systemów wbudowanych (embeded systems) w strukturach PSoC (Programmable System on Chip) Realizacja systemów wbudowanych (embeded systems) w strukturach PSoC (Programmable System on Chip) Embeded systems Architektura układów PSoC (Cypress) Możliwości bloków cyfrowych i analogowych Narzędzia

Bardziej szczegółowo

Najlepsze praktyki w optymalizacji kosztów operacyjnych transportu i dystrybucji

Najlepsze praktyki w optymalizacji kosztów operacyjnych transportu i dystrybucji Poznań, 14 wrzesień 2010 Najlepsze praktyki w optymalizacji kosztów operacyjnych transportu i dystrybucji Best practices for saving operational costs in transport and distribution Herman Wierenga Dyrektor

Bardziej szczegółowo

ROZPRAWA DOKTORSKA. Mateusz Romanowski

ROZPRAWA DOKTORSKA. Mateusz Romanowski Mateusz Romanowski Wpływ krioterapii ogólnoustrojowej na aktywność choroby i sprawność chorych na zesztywniające zapalenie stawów kręgosłupa ROZPRAWA DOKTORSKA Promotor: Dr hab., prof. AWF Anna Straburzyńska-Lupa

Bardziej szczegółowo

Język angielski. Poziom rozszerzony Próbna Matura z OPERONEM i Gazetą Wyborczą CZĘŚĆ I KRYTERIA OCENIANIA ODPOWIEDZI POZIOM ROZSZERZONY CZĘŚĆ I

Język angielski. Poziom rozszerzony Próbna Matura z OPERONEM i Gazetą Wyborczą CZĘŚĆ I KRYTERIA OCENIANIA ODPOWIEDZI POZIOM ROZSZERZONY CZĘŚĆ I Poziom rozszerzony Język angielski Język angielski. Poziom rozszerzony KRYTERIA OCENIANIA ODPOWIEDZI POZIOM ROZSZERZONY CZĘŚĆ I W schemacie oceniania zadań otwartych są prezentowane przykładowe odpowiedzi.

Bardziej szczegółowo

THEORETICAL STUDIES ON CHEMICAL SHIFTS OF 3,6 DIIODO 9 ETHYL 9H CARBAZOLE

THEORETICAL STUDIES ON CHEMICAL SHIFTS OF 3,6 DIIODO 9 ETHYL 9H CARBAZOLE THEORETICAL STUDIES ON CHEMICAL SHIFTS OF 3,6 DIIODO 9 ETHYL 9H CARBAZOLE Teobald Kupkaa, Klaudia Radula-Janika, Krzysztof Ejsmonta, Zdzisław Daszkiewicza, Stephan P. A. Sauerb a Faculty of Chemistry,

Bardziej szczegółowo

ZALEŻNOŚĆ MIĘDZY WYSOKOŚCIĄ I MASĄ CIAŁA RODZICÓW I DZIECI W DWÓCH RÓŻNYCH ŚRODOWISKACH

ZALEŻNOŚĆ MIĘDZY WYSOKOŚCIĄ I MASĄ CIAŁA RODZICÓW I DZIECI W DWÓCH RÓŻNYCH ŚRODOWISKACH S ł u p s k i e P r a c e B i o l o g i c z n e 1 2005 Władimir Bożiłow 1, Małgorzata Roślak 2, Henryk Stolarczyk 2 1 Akademia Medyczna, Bydgoszcz 2 Uniwersytet Łódzki, Łódź ZALEŻNOŚĆ MIĘDZY WYSOKOŚCIĄ

Bardziej szczegółowo

Magdalena Drabek (Politechnika Łódzka) Żaneta Mucha (ESN SGGW) Joanna Jóźwik (FRSE) Warszawa, 27 listopada 2015 r.

Magdalena Drabek (Politechnika Łódzka) Żaneta Mucha (ESN SGGW) Joanna Jóźwik (FRSE) Warszawa, 27 listopada 2015 r. Przygotowanie Porozumienia o programie studiów/praktyki rola studenta, uczelni wysyłającej (wydziałowego i uczelnianego koordynatora Erasmusa+) i uczelni przyjmującej. Magdalena Drabek (Politechnika Łódzka)

Bardziej szczegółowo

System optymalizacji produkcji energii

System optymalizacji produkcji energii System optymalizacji produkcji energii Produkcja energii jest skomplikowanym procesem na który wpływa wiele czynników, optymalizacja jest niezbędna, bieżąca informacja o kosztach i możliwościach wykorzystania

Bardziej szczegółowo

Goodman Kraków Airport Logistics Centre. 62,350 sqm available. Units from 1,750 sqm for immediate lease. space for growth+

Goodman Kraków Airport Logistics Centre. 62,350 sqm available. Units from 1,750 sqm for immediate lease. space for growth+ Goodman Kraków Airport Logistics Centre 62,350 sqm available. Units from 1,750 sqm for immediate lease. space for growth Goodman Kraków Airport Logistics Centre ul. Komandosów 1, 32-085 Modlniczka Goodman

Bardziej szczegółowo

1945 (96,1%) backlinks currently link back. 1505 (74,4%) links bear full SEO value. 0 links are set up using embedded object

1945 (96,1%) backlinks currently link back. 1505 (74,4%) links bear full SEO value. 0 links are set up using embedded object Website Backlinks Analysis Report 2023 backlinks from 224 domains Report created: Jan 3, 2015 Website: http://wpisz.stronę.odbiorcy Compared with: 7 day(s) old Domain Statistics The domain seo.zgred.pl

Bardziej szczegółowo

How much does SMARTech system cost?

How much does SMARTech system cost? 1. How much does an intelligent home system cost? With over six years of experience in construction of Intelligent Home Systems we have done a value analysis of systems and services usually purchased by

Bardziej szczegółowo

Zastosowanie sztucznej inteligencji w testowaniu oprogramowania

Zastosowanie sztucznej inteligencji w testowaniu oprogramowania Zastosowanie sztucznej inteligencji w testowaniu oprogramowania Problem NP Problem NP (niedeterministycznie wielomianowy, ang. nondeterministic polynomial) to problem decyzyjny, dla którego rozwiązanie

Bardziej szczegółowo

photo graphic Jan Witkowski Project for exhibition compositions typography colors : +48 506 780 943 : janwi@janwi.com

photo graphic Jan Witkowski Project for exhibition compositions typography colors : +48 506 780 943 : janwi@janwi.com Jan Witkowski : +48 506 780 943 : janwi@janwi.com Project for exhibition photo graphic compositions typography colors Berlin London Paris Barcelona Vienna Prague Krakow Zakopane Jan Witkowski ARTIST FROM

Bardziej szczegółowo

Jazz EB207S is a slim, compact and outstanding looking SATA to USB 2.0 HDD enclosure. The case is

Jazz EB207S is a slim, compact and outstanding looking SATA to USB 2.0 HDD enclosure. The case is 1. Introduction Jazz EB207S is a slim, compact and outstanding looking SATA to USB 2.0 HDD enclosure. The case is made of aluminum and steel mesh as one of the coolest enclosures available. It s also small

Bardziej szczegółowo

KOMUNIKAT 2. The 44 th International Biometrical Colloquium and IV Polish-Portuguese Workshop on Biometry. Conference information:

KOMUNIKAT 2. The 44 th International Biometrical Colloquium and IV Polish-Portuguese Workshop on Biometry. Conference information: AT 1 KOMUNIKAT 2 The 44 th International Biometrical Colloquium and IV Polish-Portuguese Workshop on Biometry Conference information: AT 1 PLACE OF CONFERENCE Address: ACH - DS "Krakowiak" 30-150 Kraków

Bardziej szczegółowo

ANKIETA ŚWIAT BAJEK MOJEGO DZIECKA

ANKIETA ŚWIAT BAJEK MOJEGO DZIECKA Przedszkole Nr 1 w Zabrzu ANKIETA ul. Reymonta 52 41-800 Zabrze tel./fax. 0048 32 271-27-34 p1zabrze@poczta.onet.pl http://jedyneczka.bnet.pl ŚWIAT BAJEK MOJEGO DZIECKA Drodzy Rodzice. W związku z realizacją

Bardziej szczegółowo

PROJECT. Syllabus for course Principles of Marketing. on the study program: Administration

PROJECT. Syllabus for course Principles of Marketing. on the study program: Administration Poznań, 2012, September 20th Doctor Anna Scheibe adiunct in the Department of Economic Sciences PROJECT Syllabus for course Principles of Marketing on the study program: Administration I. General information

Bardziej szczegółowo

Wpływ dyrektywy PSD II na korzystanie z instrumentów płatniczych. Warszawa, 15 stycznia 2015 r. Zbigniew Długosz

Wpływ dyrektywy PSD II na korzystanie z instrumentów płatniczych. Warszawa, 15 stycznia 2015 r. Zbigniew Długosz Wpływ dyrektywy PSD II na korzystanie z instrumentów płatniczych Warszawa, 15 stycznia 2015 r. Zbigniew Długosz 1 do czego można wykorzystywać bankowość elektroniczną? nowe usługi płatnicze a korzystanie

Bardziej szczegółowo

List of ECOWILL-certified Ecodriving trainers for short duration trainings

List of ECOWILL-certified Ecodriving trainers for short duration trainings List of ECOWILL-certified Ecodriving trainers for short duration trainings POLAND January 2013 The sole responsibility for the content of this report lies with the authors. It does not necessarily reflect

Bardziej szczegółowo

CENY OLEJU NAPĘDOWEGO I ENERGII ELEKTRYCZNEJ W WYBRANYCH KRAJACH 1

CENY OLEJU NAPĘDOWEGO I ENERGII ELEKTRYCZNEJ W WYBRANYCH KRAJACH 1 Problemy Inżynierii Rolniczej nr 1/2010 Jan Pawlak Instytut Technologiczno-Przyrodniczy w Falentach Oddział w Warszawie Uniwersytet Warmińsko-Mazurski w Olsztynie CENY OLEJU NAPĘDOWEGO I ENERGII ELEKTRYCZNEJ

Bardziej szczegółowo

THE ADMISSION APPLICATION TO PRIVATE PRIMARY SCHOOL. PART I. Personal information about a child and his/her parents (guardians) Child s name...

THE ADMISSION APPLICATION TO PRIVATE PRIMARY SCHOOL. PART I. Personal information about a child and his/her parents (guardians) Child s name... THE ADMISSION APPLICATION TO PRIVATE PRIMARY SCHOOL PART I. Personal information about a child and his/her parents (guardians) Child s name... Child s surname........ Date and place of birth..... Citizenship.....

Bardziej szczegółowo

ANALIZA ZDOLNOŚCI PROCESU O ZALEŻNYCH CHARAKTERYSTYKACH

ANALIZA ZDOLNOŚCI PROCESU O ZALEŻNYCH CHARAKTERYSTYKACH Małgorzata Szerszunowicz Uniwersytet Ekonomiczny w Katowicach ANALIZA ZDOLNOŚCI PROCESU O ZALEŻNYCH CHARAKTERYSTYKACH Wprowadzenie Statystyczna kontrola jakości ma na celu doskonalenie procesu produkcyjnego

Bardziej szczegółowo

PRODUCTION HALL OFFER

PRODUCTION HALL OFFER PRODUCTION HALL OFFER 1. Name of production hall / Nazwa hali produkcyjnej Bałtowska 2. Location / Lokalizacja PRODUCTION HALL DATA Town / Street Miasto / Ulica Ostrowiec Świętokrzyski/Bałtowska Street

Bardziej szczegółowo

I INTERNATIONAL SCIENTIFIC CONFERENCE

I INTERNATIONAL SCIENTIFIC CONFERENCE I INTERNATIONAL SCIENTIFIC CONFERENCE EU SECURITY AND CRISIS MANAGEMENT FLOOD-2010 ATENEUM UNIVERSITY IN GDANSK P FUNDATION PRO POMERANIA NOTICE NO. 1 I International Scientific Conference EU SECURITY

Bardziej szczegółowo

Modele inżynierii teleinformatyki 9 (Wybrane zastosowania)

Modele inżynierii teleinformatyki 9 (Wybrane zastosowania) POLITECHNIKA KOSZALIŃSKA Modele inżynierii teleinformatyki 9 (Wybrane zastosowania) Redakcja Krzysztof Bzdyra KOSZALIN 2014 ISSN 2353-6535 ISBN 978-83-7365-365-8 Przewodniczący Uczelnianej Rady Wydawniczej

Bardziej szczegółowo

Please fill in the questionnaire below. Each person who was involved in (parts of) the project can respond.

Please fill in the questionnaire below. Each person who was involved in (parts of) the project can respond. Project CARETRAINING PROJECT EVALUATION QUESTIONNAIRE Projekt CARETRAINING KWESTIONARIUSZ EWALUACJI PROJEKTU Please fill in the questionnaire below. Each person who was involved in (parts of) the project

Bardziej szczegółowo

PERSPEKTYWY ZRÓWNOWAŻONEGO ROZWOJU TRANSPORTU DROGOWEGO W POLSCE DO 2030 ROKU

PERSPEKTYWY ZRÓWNOWAŻONEGO ROZWOJU TRANSPORTU DROGOWEGO W POLSCE DO 2030 ROKU Ekonomia i Środowisko 2 (49) 2014 Tadeusz Pindór Mariusz Trela PERSPEKTYWY ZRÓWNOWAŻONEGO ROZWOJU TRANSPORTU DROGOWEGO W POLSCE DO 2030 ROKU Tadeusz Pindór, dr hab. inż. Akademia Górniczo-Hutnicza Mariusz

Bardziej szczegółowo

(duzo, przeczytac raz i zrozumiec powinno wystarczyc. To jest proste.)

(duzo, przeczytac raz i zrozumiec powinno wystarczyc. To jest proste.) 39. Typy indeksowania w hurtowniach danych. (duzo, przeczytac raz i zrozumiec powinno wystarczyc. To jest proste.) Po co inne niŝ B-Tree? Bo B-Tree w hurtowniach danych jest zbyt mało efektywny. Oprócz

Bardziej szczegółowo

Skonsolidowany oraz jednostkowy raport okresowy Consolidated and unitary quarterly report of AerFinance PLC

Skonsolidowany oraz jednostkowy raport okresowy Consolidated and unitary quarterly report of AerFinance PLC Skonsolidowany oraz jednostkowy raport okresowy Consolidated and unitary quarterly report of AerFinance PLC za okres 01.02.2013 do roku from 01.02.2013 to year Doncaster 17.06.2013 1. Wprowadzenie/ Introduction

Bardziej szczegółowo

The use of objective statistical processing for presenting the data in scientific publications

The use of objective statistical processing for presenting the data in scientific publications The use of objective statistical processing for presenting the data in scientific publications Zastosowanie obiektywnej analizy statystycznej w celu prezentacji danych w publikacjach naukowych Fedortsiv

Bardziej szczegółowo

OPEN ACCESS LIBRARY. Kształtowanie struktury i własności użytkowych umacnianej wydzieleniowo miedzi tytanowej. Jarosław Konieczny. Volume 4 (22) 2013

OPEN ACCESS LIBRARY. Kształtowanie struktury i własności użytkowych umacnianej wydzieleniowo miedzi tytanowej. Jarosław Konieczny. Volume 4 (22) 2013 OPEN ACCESS LIBRARY SOWA Scientific International Journal of the World Academy of Materials and Manufacturing Engineering publishing scientific monographs in Polish or in English only Published since 1998

Bardziej szczegółowo

1 Wartości własne oraz wektory własne macierzy

1 Wartości własne oraz wektory własne macierzy Szymon Toruńczyk Wartości własne oraz wektory własne macierzy Niech A będzie kwadratową macierzą n n Wówczas A wyznacza przekształcenie liniowe przestrzeni R n w siebie Niech v R n będzie pewnym niezerowym

Bardziej szczegółowo

EN/PL COUNCIL OF THE EUROPEAN UNION. Brussels, 25 March 2014. 8148/14 Interinstitutional File: 2014/0011 (COD)

EN/PL COUNCIL OF THE EUROPEAN UNION. Brussels, 25 March 2014. 8148/14 Interinstitutional File: 2014/0011 (COD) COUNCIL OF THE EUROPEAN UNION Brussels, 25 March 2014 8148/14 Interinstitutional File: 2014/0011 (COD) CLIMA 30 ENV 318 MI 307 IND 117 ENER 142 ECOFIN 305 TRANS 175 COMPET 191 CODEC 893 INST 173 PARLNAT

Bardziej szczegółowo

COMPUTERISED MAINTENANCE MANAGEMENT SYSTEMS

COMPUTERISED MAINTENANCE MANAGEMENT SYSTEMS COMPUTERISED MAINTENANCE MANAGEMENT SYSTEMS ROBERT KOSTEK University of Technology and Life Sciences Summary The paper presents programs dedicated to computerised maintenance management systems (CMMS).

Bardziej szczegółowo

DODATKOWE ĆWICZENIA EGZAMINACYJNE

DODATKOWE ĆWICZENIA EGZAMINACYJNE I.1. X Have a nice day! Y a) Good idea b) See you soon c) The same to you I.2. X: This is my new computer. Y: Wow! Can I have a look at the Internet? X: a) Thank you b) Go ahead c) Let me try I.3. X: What

Bardziej szczegółowo

Dwie oceny systemu bezpieczeństwa: ilościowa i jakościowa. Robert Kępczyński Senior Consultant

Dwie oceny systemu bezpieczeństwa: ilościowa i jakościowa. Robert Kępczyński Senior Consultant Dwie oceny systemu bezpieczeństwa: ilościowa i jakościowa Robert Kępczyński Senior Consultant Mechanizm bezpieczeństwa zawsze jest kompromisem " Akceptowalne ryzyko Skomplikowanie Dłuższy czas reakcji

Bardziej szczegółowo

Wyk lad 8: Leniwe metody klasyfikacji

Wyk lad 8: Leniwe metody klasyfikacji Wyk lad 8: Leniwe metody Wydzia l MIM, Uniwersytet Warszawski Outline 1 2 lazy vs. eager learning lazy vs. eager learning Kiedy stosować leniwe techniki? Eager learning: Buduje globalna hipoteze Zaleta:

Bardziej szczegółowo

ANALIZA ZALEŻNOŚCI MIĘDZY INDEKSAMI RYNKÓW AKCJI NA GIEŁDZIE POLSKIEJ I AMERYKAŃSKIEJ. Indeksy giełdowe

ANALIZA ZALEŻNOŚCI MIĘDZY INDEKSAMI RYNKÓW AKCJI NA GIEŁDZIE POLSKIEJ I AMERYKAŃSKIEJ. Indeksy giełdowe B A D A N I A O P E R A C Y J N E I D E C Y Z J E Nr 3 4 2007 Grzegorz PRZEKOTA* ANALIZA ZALEŻNOŚCI MIĘDZY INDEKSAMI RYNKÓW AKCJI NA GIEŁDZIE POLSKIEJ I AMERYKAŃSKIEJ W artykule skonstruowano dwa modele

Bardziej szczegółowo

No matter how much you have, it matters how much you need

No matter how much you have, it matters how much you need CSR STRATEGY KANCELARIA FINANSOWA TRITUM GROUP SP. Z O.O. No matter how much you have, it matters how much you need Kancelaria Finansowa Tritum Group Sp. z o.o. was established in 2007 we build trust among

Bardziej szczegółowo

B IURO B ADAWCZE DS. J AKOŚCI

B IURO B ADAWCZE DS. J AKOŚCI ISO 9001 Q Ref. Certif. No. PL 2 IEC SYSTEM FOR MUTUAL RECOGNITION OF TEST CERTIFICATES FOR ELECTRICAL EQUIPMENT (IECEE) CB SCHEME SYSTEME CEI D ACCEPTATION MUTUELLE DE CERTIFICATS D ESSAIS DES EQUIPEMENTS

Bardziej szczegółowo