II Konferencja Naukowa KNWS'05 Informatyka- sztuka czy ...· 4.1.Wyznaczyć stopień incydencji dla

Embed Size (px)

Text of II Konferencja Naukowa KNWS'05 Informatyka- sztuka czy ...· 4.1.Wyznaczyć stopień incydencji dla

NOWOCZESNA IMPLEMENTACJA HEURYSTYCZNEGO ALGORYTMU KODOWANIA STRUKTURALNEGO STANW LOKALNYCH

W AUTOMATACH WSPBIENYCH

Piotr Bubacz, Bartosz Mstowski, Marian Adamski

Instytut Informatyki i Elektroniki, Uniwersytet Zielonogrski 65-246 Zielona Gra, ul. Podgrna 50

e-mail: {M.Adamski, P.Bubacz}@iie.uz.zgora.pl, B.Mstowski@adbglobal.com

STRESZCZENIE

W artykule zostaa przedstawiona nowoczesna implementacja heurystycznego algorytmu

kodowania strukturalnego stanw lokalnych w automatach wspbie nych. W ramach pracy

przedstawiono rodowisko .NET oraz mo liwo jego wykorzystania w implementacji

algorytmw analizy i kodowania sieci Petriego. Wynikiem pracy jest zintegrowane rodowisko

umo liwiaj ce projektowanie, analiz i kodowanie sieci Petriego Petri Net Workshop.

1. WPROWADZENIE

Nowoczesne technologie wspieraj prac inyniersk i naukow. Jednym z najwaniejszych

elementw nowoczesnego programowania jest wielokrotne wykorzystanie moduw oraz

atwo rozwijania aplikacji.

Moliwoci te daje programowanie zorientowane obiektowo, gdzie klasy s atwo

wykorzystywane w innych aplikacjach. Jednak dotychczas stosowane to byo tylko w jednym

jzyku programowania. Programici musieli zdecydowa si na jeden jzyk i najczciej na

jedno rodowisko programistyczne. Podejcie to zmienia firma Microsoft, prezentujc

technologi .NET. Pozwala ona nie tylko wykorzystanie tych samych klas w wielu

aplikacjach, ale rwnie czenie ze sob wielu jzykw programowania, tak, e kady

programista moe tworzy elementy w dowolnym jzyku i rodowisku. Szczeglnie jest to

wane w pracy naukowej. Kada z osb prowadzcych badania rozwija swoj cz projektu

w dowolnym jzyku, a dziki waciwociom rodowiska .NET umoliwia to ich wzajemne

wspdziaanie, skoordynowane w jednej aplikacji.

Wykorzystujc zoptymalizowane struktury danych oraz moliwoci platformy .NET

przeprowadzana jest atwa, a co najwaniejsze prosta do rozszerzania, implementacja

algorytmw projektowania, analizy i kodowania sieci Petriego.

87

II Konferencja Naukowa KNWS'05

"Informatyka- sztuka czy rzemios o"

15-18 czerwca 2005, Z otniki Luba skie

2. HEURYSTYCZNY ALGORYTMU KODOWANIA STRUKTURALNEGO STANW LOKALNYCHW AUTOMATACH WSPBIE NYCH

Heurystyczny algorytmu kodowania strukturalnego stanw lokalnych w automatach

wspbienych zosta zaproponowany w [1]. Jego zastosowanie i modyfikacje zostay

przedstawione w pracach [2,3,4,6].

Algorytm strukturalnego kodowania miejsc sieci skada si z dwch gwnych etapw.

W etapie pierwszym nastpuje kodowanie makromiejsc (makrostanw lokalnych),

w kolejnym etapie kodowane s miejsca wewntrz tych makromiejsc. Makromiejsce

nierwnolege stopniowo rozrnia si wprowadzajc zmienne kodujce, przyjmujce

wartoci 0 w makromiejscu, warto 1 w makromiejscach do niego przylegych i warto

w makromiejscach rwnolegych.

Minimalizacja liczby zmiennych kodujcych zwizana jest z kolejnym wyborem

wierzchokw grafu wspbienoci o najwyszym stopniu incydencji. Zakoczenie

kodowania makromiejsc nastpuje, gdy wszystkie makromiejsca rozrniane s co najmniej

jedn zmienna kodujc. atwo stwierdzi, e superpozycja kodw rwnoczenie

oznakowanych makromiejsc tworzy wtedy unikalny kod wierzchoka grafu znakowa

osigalnych makrosieci. Naley zwrci uwag na fakt, e makromiejsce w proponowanym

sposobie kodowania reprezentuje dowolny fragment sieci otrzymanej na drodze jej

hierarchicznego skadania (agregacji) lub rozkadania (deagregacji).

Kodowanie miejsc w ramach makromiejsca odbywa si w sposb analogiczny do kodowania

makromiejsc, jeeli to makromiejsce reprezentuje podsie Petriego z rwnolegoci.

W przypadku makromiejsc typu automatowego wykorzystuje si znane metody kodowania

teorii automatw.

Algorytm kodowania globalnego makromiejsc:

1. Dokona dekompozycji sieci do postaci makrosieci reprezentujcej analizowan sie

Petriego.

2. Wyznaczy graf znakowa osigalnych makrosieci i na jego podstawie okreli relacje:

a) wspbienoci makromiejsc R,

b) niewspbienoci (nastpstw) makromiejsc N.

Relacje naley przedstawi w postaci grafw niezorientowanych lub odpowiadajcych im

list nastpstw wierzchokw. Graf N jest dopenieniem grafu R do grafu penego.

3. Przyj i=1 oraz Ni=N

4. Dopki graf Ni nie jest grafem pustym (macierz niewspbienoci nie zawiera samych

zer), wykona:

88

4.1.Wyznaczy stopie incydencji dla wszystkich wierzchokw grafu Ni. Wybra

wierzchoek o najwyszym stopniu incydencji. Wierzchoki reprezentujce

makromiejsca rwnolege, przylege do tych samych wierzchokw mona

potraktowa jako jedno makromiejsce o stopniu incydencji rwnej sumie stopni

poszczeglnych makromiejsc.

4.2.Wybra wierzchoek najwyszym stopniu incydencji.

4.3.Wybranemu makromiejscu mp przypisa kod Q(i)=0, dla kadego z pozostaych

miejsc wykona

4.3.1. Jeli makromiejsce jest wspbiene do danego i jednoczenie niewspbiene

do tego samego zbioru miejsc, co mp, przypisa kod Q(i) = 0. Wykreli ten

wierzchoek z grafu tzn. wyzerowa odpowiedni wiersz i kolumn w macierzy

N(i) i zaznaczy jako usunite.

4.3.2. W przeciwnym wypadku jeli makromiejsce jest niewspbiene z mp

przypisa Q(i) = 1.

4.3.3. Jeli makromiejsce zostao usunite z N(i) i jest niewspbiene z mp to

przypisa kod Q(i) = . Oznacza to, e zmienna moe by wykorzystana w

kodowaniu miejsc nalecych do makromiejsca.

4.3.4. W przeciwnym wypadku makromiejsce wspbiene z wybranym, ktre nie

zostao usunite otrzymuje kod Q(i) = *. Oznacza to, e zmienna ta nie moe

by ju wykorzystana do kodowania tego makromiejsca ani adnego z miejsc

do niego nalecych

4.3.5. Usun mp z macierzy N(i).

5. Dokona korekcji kodw czciowych. Dla kadego makromiejsca mp wykona:

5.1.Dla kadej zmiennej Q(i) kodu mp, jeli Q(i) = , wykona:

5.1.1. Znale makromiejsce mp wspbiene do mp.

5.1.2. Jeli zmienna Q(i) kodu mp jest rna od oraz rna od *, zmieni warto

zmiennej Q(i) kodu mp na *.

5.1.3. Powtrzy krok 5.1.1. a do sprawdzenia wszystkich makromiejsc

rwnolegych do mp.

6. Zakodowa miejsca w ramach poszczeglnych makromiejsc (kodowanie lokalne)

Szczegowy opis algorytmu i przykady kodowania mona znale w [1,6].

89

3. WPROWADZENIE DO RODOWISKA .NET

Technologia .NET jest nowatorsk technologi umoliwiajc tworzenie rozwiza

niezalenych od systemu operacyjnego i platformy sprztowej, m.in. dla komputerw

stacjonarnych (np. PC), mobilnych (np. Pocket PC), usug WWW (np. ASP.NET), usug

sieciowych, rozwiza bazodanowych (ADO.NET) oraz wielu innych. Platforma .NET

pozwala na tworzenie i uytkowanie bezpiecznych i stabilnych aplikacji - zarwno

skupionych jak i rozproszonych.

Sercem platformy .NET jest Common Language Runtime (w skrcie CLR), czyli wsplne dla

rnych jzykw rodowisko wykonywania programw. Kod programu w platformie .NET

nie jest kompilowany bezporednio do postaci kodu wykonywalnego, lecz do postaci jzyka

Microsoft Intermediate Language (w skrcie MSIL), czyli poredniego midzy kodem

programu a instrukcjami procesora. Do gwnych zada CLR nale: przydzielanie pamici

obiektom oraz zarzdzanie t pamici przy pomocy bardzo efektywnych technik garbage

collection, sprawdzanie poprawnoci typw oraz dbanie o bezpieczestwo.

Gwn cech, ktra wyrnia platform .NET wrd innych rodowisk programistycznych,

jest wsparcie wielu jzykw programowania. Umoliwia to grupom programistw o rnych

umiejtnociach tworzenie komponentw oprogramowania w wybranych jzykach, a

nastpnie poczenie opracowanych komponentw w dobrze wsppracujc cao.

Poczenie midzy jzykami realizowane jest nawet na poziomie klasy. Programici mog

dziedziczy po klasie zdefiniowanej w innym jzyku.

Wraz z wprowadzeniem CLR programici uzyskali moliwo wyboru spord szerokiej

palety jzykw, co pozwala im programowa w jzyku najbardziej odpowiadajcym ich

umiejtnociom i najlepiej nadajcym si do wykonania otrzymanego zadania. Wsppraca

fragmentw kodu napisanych w rnych jzykach moliwa jest ze wzgldu na to, e kady

jzyk zgodny z platform .NET Framework kompilowany jest do kodu MSIL, uruchamianego

nastpnie w rodowisku CLR.

Model programowania na platformie .NET jest bardzo zwarty i uproszczony. Wszelkie usugi

systemowe udostpniane s w postaci wsplnego modelu zorientowanego obiektowo. W ten

sposb ukrywane s szczegy i koncepcje uyte w bibliotekach systemu. Znajomo tych

interfejsw jest wymagana tylko wtedy, gdy programista wiadomie chce uy

funkcjonalnoci systemu nie zdefiniowanej w kodzie .NET.

Kolejn cech technologii .NET, ktra miaa wpyw na jej wybr jest przenoszalno

pomidzy platformami. Jak wspomniano wczeniej kompilacja kodu .NET do jzyka IL

pozwala w momencie uruchomienia przeoy ten kod na instrukcje niemale dowolnego

procesora 32 i 64-bitowego. Tym zadaniem zajmuje si specjalny Just-In-Time (JIT)

90

kompilator w CLR, ktry kompiluje kod poredni na instrukcje natywne danej platformy.

Kompilacja moe mie miejsce w trakcie wykonywania aplikacji lub przed jej

uruchomieniem. Dziki czemu programy napisane w .NET osigaj zblion wydajno do

programw napisanych w C++.

4. PROGRAM PETRI NET WORKSHOP

Petri Net Workshop jest zintegrowanym rodowiskiem pr