pobierz plik referatu

Transkrypt

pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Rozdział 17
w
Procesor decyzyjno-obliczeniowy
dla rynkowego modelu danych M3
w
w
da
.b
Streszczenie. Na rynkach wielotowarowych ważnym celem z punktu widzenia funkcjonalności każdego modelu danych rynkowych jest możliwość
sformułowania, a także wykonania pewnego zadania kojarzenia ofert kupna
i sprzedaży tak, aby otrzymać wyniki w postaci przyjętych i odrzuconych
ofert oraz właściwych cen rynkowych dla poszczególnych towarów. Przedstawiono narzędzie decyzyjne, które spełnia to zadanie w najlepszy, z punktu
widzenia danego mechanizmu rynkowego, sposób. Decyzje te powinny być
podejmowane na podstawie danych zapisanych za pomocą notacji M3, wyniki procesu decyzyjnego także powinny być sformułowane w tej notacji. Opisany tu procesor decyzyjno-obliczeniowy stanowi uniwersalny szkielet narzędzia, pozwalający wykorzystać typowe pakiety optymalizacyjne w celu
wypracowania takich decyzji. Modelem danych rynkowych jest M3 (Multicommodity Market Model), który jest zbiorem formalnych modeli danych,
stworzonym jako podstawa opartego na XML systemu wymiany danych,
umożliwiającego łatwy przepływ informacji między różnymi segmentami
rynków. Pozwala on na formułowanie szerokiego spektrum danych rynkowych (np. ofert), które mogą być przesyłane między uczestnikami rynku
i przetwarzane przez aplikacje specyficzne dla danego segmentu rynku.
pl
s.
1 Wstęp
M3 (Multicommodity Market Model), którego cechy dokładniej zostały opisane w pracach
[5], [6], [7] jest modelem złożonych procesów rynkowych na rynkach wielotowarowych,
pozwalającym opisywać owe procesy w specjalnie stworzonym dialekcie XML.
Przemysław Kacprzak, Mariusz Kaleta, Piotr Pałka, Kamil Smolira, Eugeniusz
Toczyłowski, Tomasz Traczyk
Politechnika Warszawska, Instytut Automatyki i Informatyki Stosowanej, ul. Nowowiejska 15/19, 00665 Warszawa, Polska
email: {P.Kacprzak, M.Kaleta}@elka.pw.edu.pl, [email protected],
[email protected], {E.Toczylowski, T.Traczyk}@ia.pw.edu.pl
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
P. Kacprzak, M. Kaleta, P. Pałka, K. Smolira, E. Toczyłowski, T. Traczyk
w
Do działania rynku, oprócz ustandaryzowanych danych opisujących procesy rynkowe,
niezbędne jest także narzędzie bilansujące, służące do kojarzenia ofert kupna i sprzedaży,
uwzględniające ograniczenia charakterystyczne zarówno dla danego modelu obrotu
(np. ograniczenia narzucane przez sieć przesyłową/dystrybucyjną energii elektrycznej [11],
ograniczenia charakterystyczne dla infrastruktury sieci telekomunikacyjnej [2], czy specyficzne dla metod alokacji zasobów w sieciach kolejowych [1]), jak i ograniczenia indywidualne, właściwe dla danego podmiotu (np. ograniczenia właściwe dla elektrowni wodnej,
która ma możliwość magazynowania wody w zbiorniku, czy też ograniczenia specyficzne
dla kaskady elektrowni wodnych, wiążące ilość wody spuszczanej przez jedną elektrownię
z dopływem do drugiej elektrowni). Liczba różnych modeli obrotu, służących do rozwiązywania problemów zapisanych za pomocą modelu M3, może więc być znaczna. Zgodnie
z założeniami modelu M3, każdy proces bilansujący powinien zwracać wyniki bilansowania
w postaci zgodnych z modelem M3 dokumentów XML.
Konsekwencją potrzeby istnienia narzędzi bilansujących, dostosowanych do danych
wejściowych i wyjściowych w postaci określonej przez model M3, jest potrzeba sformułowania uniwersalnego schematu działania takiego narzędzia. W zależności od użytego w takim schemacie programu obliczeniowego (solwera), można w różny sposób wypracowywać decyzje kojarzące oferty: od prostych decyzji, które oferty uznać za przyjęte, a które za
odrzucone (np. wykorzystując mechanizm aukcji Vickreya [13]), do złożonych obliczeń,
które uwzględniając ograniczenia wyznaczą najlepsze (często optymalne) rozwiązanie danego problemu (np. mechanizm LMP [4],[10]).
By umożliwić takie działanie, podjęto pracę, której celem było opracowanie takiego sposobu nie tylko konstrukcji, ale także rozwiązywania zadań decyzyjnych dla danych, dotyczących różnorodnych segmentów rynkowych, opisanych za pomocą modelu M3, który
pozwoliłby użyć tego nowego sposobu modelowania w połączeniu ze znanymi
i sprawdzonymi narzędziami obliczeniowymi/optymalizacyjnymi (np. CPLEX, Matlab,
GAMS itp.), przy czym sama postać zapisu danych o rynku nie powinna narzucać ani ograniczać sposobu sformułowania problemu optymalizacyjnego ani wyboru narzędzia decyzyjnego. Takie właśnie zadanie spełnia procesor decyzyjno-obliczeniowy, którego szkielet
i przykładową implementację opisano w tej pracy.
da
.b
w
w
pl
s.
2 Model danych M3
Model danych M3, opisany dokładniej m.in. w [5], [6], [7] opisuje uogólniony rynek wielotowarowy [12]. Zawiera w szczególności opisy ofert elementarnych – jednotowarowych,
zintegrowanych – wielotowarowych, a także grupujących, które opisują bardziej złożone
relacje pomiędzy ofertami elementarnymi lub zintegrowanymi, ze wspólnymi warunkami
lub ograniczeniami zasobowymi [12]. Związanie wielu ofert jednego podmiotu za pomocą
oferty grupującej umożliwia bezpieczny wybór realizowanych ofert przy spełnieniu ograniczeń. Co więcej, wprowadzenie mechanizmu oferty grupującej ułatwia formułowanie nietrywialnych ograniczeń indywidualnych dla poszczególnych podmiotów rynkowych oraz
często ich wycenę.
W systemie obrotu wielotowarowego przedmiotem jednoczesnego obrotu jest wiele towarów (tzw. towarów elementarnych), które reprezentują pewne fizyczne lub abstrakcyjne
produkty i usługi. Uczestnicy obrotu mogą składać oferty kupna i sprzedaży dotyczące
wiązek towarów i usług [12]. Mówiąc inaczej, ofertami kupna i sprzedaży na rynku wielotowarowym mogą być pakiety towarów elementarnych, powiązanych w tzw. wiązki. Udział
towaru elementarnego w wiązce towarów określa tzw. współczynnik udziału. Przykładowo,
218
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Procesor decyzyjno-obliczeniowy dla rynkowego modelu danych M3
w
produkcja energii elektrycznej w elektrowni o określonych parametrach technicznych pozwala na dostarczenie do sieci przesyłowej energii oraz pewnych usług regulacyjnych, ponadto powoduje jednoczesną emisję określonej ilości zanieczyszczeń. W tym przypadku
wiązkę towarów może stanowić energia elektryczna i usługi systemowe o dodatnich współczynnikach udziału (sprzedaż) oraz pozwolenia na emisję zanieczyszczeń o ujemnym
współczynniku udziału (zakup).
Procesy rynkowe w danym segmencie rynku składają się z sekwencji procesów bilansowania rynku. Bilans chwilowy rynku jest zachowany, gdy aktualnie przyjęte oferty równoważą podaż i popyt na towary i usługi, przy czym muszą się również bilansować przepływy
finansowe wynikające z przyjętych ofert sprzedaży i kupna.
Proces bilansowania przetwarza bieżące dane o systemie, takie jak infrastruktura reprezentująca fizyczne możliwości transportu towarów (np. sieć przesyłowa energii elektrycznej, infrastruktura telekomunikacyjna, drogowa), towary podlegające obrotowi, zbiór podmiotów rynkowych biorących udział w bilansowaniu, złożone przez nie oferty, a także
wstępne programy, rozumiane jako indywidualne harmonogramy dostaw i odbiorów towarów, wynikające z dotychczas zawartych kontraktów. Na wyjściu procesu bilansowania
segmentu rynkowego otrzymujemy rynkowe ceny poszczególnych towarów, rozpływy towarów w sieci, przyjęte oferty wraz z ilościowymi danymi dla każdej z nich oraz programy
wyjściowe, które być może zostaną użyte do wyznaczenia programów wejściowych dla
kolejnego procesu bilansowania. Uczestnikami procesu bilansowania są jednostki biorące
aktywny udział w procesie poprzez składanie ofert, a także jednostka lub jednostki odpowiedzialne za nadzór i zarządzanie procesem (tzw. operator rynku, broker). Każda jednostka ma pewien obraz procesu bilansowania (lub szerzej segmentu rynku), postrzeganego
z jej punktu widzenia, oraz zazwyczaj dysponuje systemem wspomagania decyzji, bazującym m.in. na danych wejściowych i wyjściowych procesu bilansowania.
da
.b
w
w
3 Modele obrotu
pl
s.
Jak wspomniano wcześniej, konkretne systemy rynkowe wymagają różnych mechanizmów
bilansowania bądź podejmowania decyzji, aby osiągnąć rozwiązanie problemu zgodne
z założeniami. Weźmy na przykład aukcję Vickreya pojedynczego towaru [13]. Aby rozwiązać problem przydziału cen i wolumenów towarów optymalnego ze względu na rozpatrywany mechanizm rynkowy, należy przydzielić towar podmiotowi, który zgłosił najwyższą cenę zakupu, zaś jako cenę rynkową ustalić najwyższą cenę ofertową spośród ofert ze
zbioru będącego różnicą zbioru ofert i oferty wygrywającej.
Przytoczony mechanizm aukcji Vickreya jest bardzo prosty w implementacji, jednak istnieją mechanizmy rynkowe, w których obliczenia nie są trywialne. Przykładem jest mechanizm LMP (Locational Marginal Pricing) [4], [10], dotyczący handlu energią elektryczną
w sieci przesyłowej, gdzie oprócz ograniczeń typowych dla handlu występują także ograniczenia infrastrukturalne, związane z rzeczywistą siecią przesyłową, które zapewniają możliwość przesyłu zakupionej energii przez sieć bez jej uszkodzenia. Taki mechanizm wymaga obliczeń optymalizacyjnych, aby zapewnić optymalny przydział wolumenów i cen.
219
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
P. Kacprzak, M. Kaleta, P. Pałka, K. Smolira, E. Toczyłowski, T. Traczyk
3.1 Cele formułowania modeli obrotu
w
Aby otrzymać rozwiązanie bardziej złożonego mechanizmu rynkowego (np. LMP), należy
sformułować model obrotu. Najczęściej jest to model matematyczny, określający które
oferty przyjąć i jak wycenić poszczególne towary.
Dane dotyczące danego procesu rynkowego, które są sformułowane zgodnie z modelem
M3, są zapisane w postaci odpowiednich plików XML. Jednak postać ta nie może być bezpośrednio wykorzystana jako dane wejściowe do solwerów matematycznych, programów
obliczeniowych itp. Należy przetransformować dane zapisane w postaci XML do formatu
właściwego dla poszczególnych programów obliczeniowych. Naturalną metodą przekształcania danych XML do innego formatu jest transformacja XSLT [16]; można także użyć
języka zapytań XQuery [15]. Obie metody operują na wejściowych plikach XML
i zwracają wynik w postaci bądź to XML, bądź też innego formatu tekstowego.
Po przekształceniu danych z formatu M3 do formatu odpowiedniego dla danego solwera
(czyli programu obliczeniowego), następuje rozwiązanie zadania zapisanego w otrzymanym pliku.
w
w
3.2 Różnorodność modeli matematycznych i decyzyjnych
da
.b
Model M3 jest uniwersalnym narzędziem, które umożliwia zapisywanie różnorodnych danych dla szerokiej gamy modeli obrotu. Takich modeli obrotu istnieje dużo, a każdy z nich
opiera się na innym modelu decyzyjnym; model M3 pozwala na stosowanie różnych modeli
decyzyjnych. Istnieje zatem potrzeba formułowania wielu różnych transformacji
XSLT/XQuery, aby dane M3-XML przekształcać do postaci wymaganej dla rozwiązania
zadań optymalizacyjno-decyzyjnych właściwych dla różnych modelu obrotu.
Różnorodność modeli matematycznych i decyzyjnych powoduje jednak problemy. Samo
sformułowania modelu obrotu w postaci wymaganej dla danego solwera nie wystarcza.
Należy jeszcze uruchomić odpowiedni procesor obliczeniowy dla danego pliku wygenerowanego za pomocą transformacji XSLT/XQuery, a następnie pobrać otrzymane rozwiązanie i przekształcić je w wyjściowe pliki M3 – wyniki procesu ofertowego oraz tzw. programy wyjściowe. Pobranie rozwiązania z wyjścia procesora obliczeniowego stanowi duży
problem ze względu na trudności z analizą składniową różnorodnych danych wyjściowych
produkowanych przez różne solwery.
pl
s.
4 Procesor decyzyjno-obliczeniowy
Zaproponowane przez nas narzędzie służy do ujednolicenia procesów podejmowania decyzji na podstawie danych zapisanych za pomocą modelu M3. Umożliwia ono przekształcanie
wejściowych plików w formacie M3-XML za pomocą procesora XSLT/XQuery, uruchamianie na powstałych w ten sposób plikach danych odpowiedniego solwera optymalizacyjno-decyzyjnego i przetwarzanie danych zwróconych przez solwer do postaci plików wyjściowych M3.
Narzędzie to ma charakter rozwiązania uniwersalnego. Posiada możliwość generowania
danych dla różnorodnych modeli matematycznych bądź decyzyjnych za pomocą jednolicie
zbudowanego procesora.
220
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Procesor decyzyjno-obliczeniowy dla rynkowego modelu danych M3
4.1 Transformacja XSLT/XQuery
w
Jak zauważono wcześniej, naturalnym sposobem transformowania plików M3-XML do
wymaganego formatu jest wykorzystanie języków XSLT lub XQuery. Obydwie metody
pozwalają w łatwy sposób otrzymać na podstawie danych zawartych w dokumentach XML
pliki w postaci czysto tekstowej (bez znakowania).
W szczególności stosunkowo proste jest wykonanie przekształcenia formatu M3-XML
do modelu matematycznego programowania liniowego bądź całkowitoliczbowego, zapisanego w języku GNU MathProg Modelling Language [3]. Dane w dokumentach M3-XML
zapisywane są za pomocą specyficznych dla modelu elementów i atrybutów, z intensywnym wykorzystaniem generycznych parametrów m3:parametr (patrz [14]). Dzięki temu
można dość łatwo stworzyć generyczne szablony XSLT, ułatwiające przetwarzanie danych.
Poniżej przedstawiono przykładowy fragment takiego generycznego szablonu, który służy
do tworzenia zbiorów danych na podstawie bądź to nazwy atrybutu, bądź nazwy elementu,
lub też na podstawie nazwy parametru generycznego, znajdującej się w atrybucie dref
elementu m3:parameter:
w
w
da
.b
<xsl:template name="parameter_generic_set">
<xsl:param name="param_xpath"/>
<xsl:param name="param_set"/>
<xsl:choose>
<xsl:when test="$param_set = 'm3:arc'">
<xsl:for-each select="m3:networks/m3:Network/m3:arc">
<xsl:if test="count(.//@*[name() = $param_xpath] |
.//*[name() = $param_xpath] |
.//m3:parameter[@dref = $param_xpath]
)&gt; 0">
<xsl:apply-templates select="." mode="set"/>
<xsl:call-template name="tab"/>
<xsl:value-of select=".//@*[name() = $param_xpath] |
.//*[name() = $param_xpath] |
.//m3:parameter[@dref = $param_xpath]"/>
<xsl:call-template name="newline"/>
</xsl:if>
</xsl:for-each>
</xsl:when>
<!-- ... -->
</xsl:choose>
</xsl:template>
pl
s.
Przykładowy fragment pliku z danymi statycznymi zapisanymi w postaci M3-XML, jest
przedstawiony poniżej. Jest to fragment opisu sieci rozdzielczej energii elektrycznej, definiuje on pojedynczą linię przesyłową wraz z pewną liczbą generycznych parametrów:
<m3:arc dref="op:LVNetworkLine" id="op:lvline1">
<m3:name>LV Network line no 1</m3:name>
<m3:predecessor ref="op:pole1" />
<m3:successor ref="op:pole2" />
<m3:parameter dref="op:NumberOfCables">3</m3:parameter>
<m3:parameter dref="op:CableSurfaceArea">70</m3:parameter>
<m3:parameter dref="op:CableType">Al XLPE</m3:parameter>
<m3:parameter dref="op:CableLength">35</m3:parameter>
<m3:parameter dref="op:arcLongTermRating">115</m3:parameter>
<m3:parameter dref="op:arcReactance">125</m3:parameter>
<m3:parameter dref="op:linearLossCoefficent">0.0008</m3:parameter>
</m3:arc>
221
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
P. Kacprzak, M. Kaleta, P. Pałka, K. Smolira, E. Toczyłowski, T. Traczyk
W celu wygenerowania danych należy użyć wyżej zamieszczonego szablonu nazwanego
parameter_generic_set. Przykładowo, aby otrzymać zbiór danych określających wytrzymałość danej linii na przeciążenie dla poszczególnych linii sieci dystrybucyjnej, należy
użyć następującego fragmentu kodu:
w
param Q := <xsl:call-template name="newline"/>
<xsl:call-template name="parameter_generic_set">
<xsl:with-param name="param_xpath">op:arcLongTermRating
</xsl:with-param>
<xsl:with-param name="param_set">m3:arc</xsl:with-param>
</xsl:call-template>;
Otrzymamy następujący fragment danych dla solwera:
w
param Q :=
'op:fuseline1'
'op:lvline1'
'op:lvline2'
'op:lvline3'
100
115
115
115;
w
Stosowanie języka XSLT jest bardzo wygodnym rozwiązaniem, ze względu na łatwość
formułowania poszczególnych transformacji.
da
.b
4.2 Przepływ danych
Przepływ danych w procesorze decyzyjno-obliczeniowym (patrz rys. 1) został ujednolicony
do następujących faz:
1)
2)
3)
4)
5)
wczytanie parametrów wejściowych i danych w postaci M3-XML,
przekształcenie plików wejściowych do plików w postaci wymaganej przez solwer,
wykonanie obliczeń na otrzymanym pliku przez solwer,
odczytanie rozwiązania w postaci właściwej dla solwera,
zapisanie plików wyjściowych (ofert i programów) w postaci M3-XML.
pl
s.
Rys. 1. Przepływ danych w procesorze decyzyjno-obliczeniowym
W pierwszej fazie następuje wczytanie plików M3-XML z danymi potrzebnymi do rozwiązania danego problemu, wczytanie skryptu XSLT/XQuery odpowiedniego dla danego
problemu, wczytanie ewentualnych parametrów dla procesora XSLT lub XQuery oraz
222
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Procesor decyzyjno-obliczeniowy dla rynkowego modelu danych M3
w
wczytanie informacji o solwerze, który powinien być uruchomiony dla danego problemu
oraz jego parametrach.
W drugiej fazie odbywa się przekształcenie plików wejściowych przez wywołanie procesora XSLT lub XQuery na danych wejściowych. W wyniku działania tej fazy wykonania
powstaje plik lub zestaw plików, np. dane dla solwera optymalizacyjnego, skrypt wykonywany w środowisku Matlab itp.
W trzeciej fazie następuje wykonanie obliczeń dla uprzednio przygotowanych plików
danych w środowisku dla którego zostały przygotowane. Przez środowisko możemy rozumieć dowolną aplikację obliczeniową (solwer), która pobiera pliki wejściowe, przetwarza
je zgodnie z danym algorytmem, a następnie zwraca pliki wynikowe. Przykładowymi środowiskami obliczeniowymi, których zastosowanie zostało przewidziane, są pakiet programowania liniowego Glpsol i program Matlab.
W wyniku wykonania obliczeń otrzymujemy rozwiązanie danego problemu decyzyjnego/optymalizacyjnego. Otrzymane rozwiązanie jest jednak zapisane w postaci specyficznej dla danego narzędzia, najczęściej w postaci pliku tekstowego. Otrzymany plik wyjściowy należy przekształcić w celu otrzymania wyników, to jest cen zakupu i sprzedaży dla
poszczególnych towarów oraz przyjętych wolumenów dla każdej z ofert. Jest to zadanie
dość trudne, gdyż dla każdej aplikacji obliczeniowej powinien powstać specyficzny moduł,
służący do przekształcania plików wyjściowych z danej aplikacji.
Ostatnim etapem działania procesora decyzyjno-obliczeniowego jest zapisanie plików
wyjściowych w formacie M3-XML. Oferty wyjściowe zawierają ceny rynkowe oraz przyjęte wolumeny dla każdej z ofert. Tzw. programy wyjściowe opisują stan zawartych transakcji dla każdego podmiotu rynkowego, to znaczy zawierają wolumeny przyjętych ofert oraz
pieniężną wartość transakcji dla każdego towaru.
da
.b
w
w
4.3 Przykładowa implementacja rozwiązania
pl
s.
Założenia działania procesora decyzyjno-obliczeniowego, przedstawione wyżej, pozwalają
na jego zaimplementowanie w różnych technologiach. Sam model M3 zakłada, że wymiana
danych pomiędzy poszczególnymi modułami jest dokonywana za pomocą plików XML
w dialekcie M3, nie narzuca więc także żadnej konkretnej technologii wykonania poszczególnych modułów.
Jedną z możliwych technologii jest Java. Nasz procesor został zaimplementowany właśnie w tej technologii z wykorzystaniem biblioteki Xalan w wersji 2.7.1. Jako aplikację
obliczeniową (solwer) wykorzystano program Glpsol z pakietu Glpk w wersji 4.9 [3],
a dla plików wynikowych z tej aplikacji napisano specjalizowany parser w technologii
Java, który stanowi jeden z modułów procesora. Obecna implementacja procesora jest prototypem, co oznacza, iż zakres rozwiązywanych problemów jest ograniczony do rozwiązywania problemów decyzyjno/optymalizacyjnych jedynie przez aplikację Glpsol. Główną
trudność w implementacji narzędzia, powodującą dość znaczną pracochłonność dostosowania procesora do różnych solwerów, stanowi konieczność tworzenia modułu parsera
danych wynikowych dla każdej aplikacji obliczeniowej. Niemniej, jeśli wziąć pod uwagę
fakt, iż większość modeli rynkowych można zapisać w postaci zadania programowania
liniowego bądź całkowitoliczbowego, czyli zadań właściwych dla aplikacji Glpsol, należy
stwierdzić, że obecnie istniejący prototyp obejmuje znaczną część możliwych zastosowań
modelu M3.
223
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
P. Kacprzak, M. Kaleta, P. Pałka, K. Smolira, E. Toczyłowski, T. Traczyk
5 Przykład zastosowania
w
Zaprezentowany procesor decyzyjno-obliczeniowy jest z powodzeniem wykorzystywany
przez autorów w pracach badawczych nad metodami rozwiązywania złożonych problemów
rynkowych. Tu przedstawiony zostanie sposób rozwiązywania, za pomocą dwóch różnych
podejść, niewielkiego problemu dotyczącego łącznego handlu energią i rezerwami mocy
w sieci energetycznej.
Pierwsze z podejść (dalej oznaczane skrótem LMP) zakłada rozwiązanie problemu za
pomocą metody LMP. Dane wejściowe dla solwera transformuje się tu z modelu M3-XML
za pomocą transformacji XSLT do postaci GNU MathProg Modelling Language. Następnie
otrzymane zadanie rozwiązuje się za pomocą solwera z pakietu Glpk.
Drugie z podejść (dalej oznaczane skrótem MATPOWER) zakłada rozwiązanie problemu za pomocą metody kooptymalizacji energii bilansującej i operacyjnych rezerw mocy [9]. Opis zadania otrzymuje się za pomocą transformacji XSLT do postaci pliku wykonywalnego pakietu Matpower, działającego w środowisku Matlab, a następnie zadanie rozwiązuje się za pomocą tego programu.
Problem, który chcemy rozwiązać, dotyczy prostej sieci energetycznej, przedstawionej
na rys. 2, złożonej z dwóch węzłów. W każdym z węzłów W1 oraz W2 znajduje się jeden
wytwórca energii, oznaczony symbolem Sx, oraz jeden odbiorca energii, oznaczony symbolem Ox. Węzły są połączone linią przesyłową. Dla zilustrowania notacji M3-XML przedstawiono fragment danych dotyczący oferty złożonej przez wytwórcę S1:
da
.b
w
w
<m3:Offer id="ex:s1-offer" offeredPrice="37.00">
<m3:offeredBy ref="ex:s1"/>
<m3:volumeRange minValue="30" maxValue="60"/>
<m3:ElementaryOffer>
<m3:offeredCommodity shareFactor="1" ref="ex:energia"/>
</m3:ElementaryOffer>
</m3:Offer>
pl
s.
Rys. 2. Prosta sieć energetyczna rozpatrywana w przykładzie
Aby rozwiązać zadanie zapisane za pomocą notacji M3-XML, trzeba przetransformować
dane do formatu wymaganego przez solwer (pliku w formacie GNU MathProg Modelling
Language w przypadku metody LMP lub skryptu dla programu Matlab w przypadku metody MATPOWER). Sformułowanie transformacji XSLT jest stosunkowo proste.
Następnie dane z pliku otrzymanego za pomocą transformacji są przetwarzane za pomocą odpowiedniego oprogramowania – solwera. Wyniki otrzymane przy użyciu metod LMP
oraz MATPOWER (patrz tabela 1) są bardzo podobne. Różnice to inne wolumeny dla
sprzedawcy S1 oraz inna cena w węźle W2. Rozbieżności wynikają przede wszystkim
z faktu nieuwzględnienia strat przesyłowych w metodzie LMP.
224
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Procesor decyzyjno-obliczeniowy dla rynkowego modelu danych M3
Tabela 1. Zestawienie wyników otrzymanych za pomocą różnych metod rozwiązywania
LMP
MATPOWER
Cena węzłowa
W1
W2
37
37
37
36,54
S1
50
50,25
Wolumen przyjęty
S2
O1
60
90
60
90
O2
20
20
w
Otrzymane dane wynikowe należy następnie przekształcić do formatu M3-XML. Jest to
zadanie nietrywialnie, gdyż w przeciwieństwie do transformacji danych z notacji M3-XML
do formatu wymaganego dla konkretnego solwera, nie istnieje wygodne narzędzie (jak
XSLT) ułatwiające dokonanie takiej odwrotnej transformacji. Dla każdego narzędzia obliczeniowego należy zaprojektować osobny moduł (parser) służący do odczytywania danych
z plików wyjściowych danego narzędzia. Zadanie to jest o wiele trudniejsze, gdyż większość pakietów obliczeniowych nie zapisuje danych w wygodnym do przetwarzana formacie XML, lecz w plikach tekstowych o skomplikowanej strukturze. Po sparsowaniu plików
wynikowych należy zapisać wyniki zgodnie z notacją M3-XML. Jest to ostatni krok działania uniwersalnego procesora decyzyjno-obliczeniowego.
Zadanie powyższe stanowi typowy przykład wykorzystania mechanizmów handlu wielotowarowego. Obie metody rozwiązania operują na tych samych danych wejściowych
w postaci zestawu plików M3-XML, ale ponieważ sposób rozwiązywania zadania różni się,
metody te – korzystając z tych samych danych wejściowych – generują różne (ale w obu
przypadkach dopuszczalne) rozwiązania. Należy przy tym podkreślić, iż różnice w wynikach nie wynikają z błędów, lecz z właściwości poszczególnych metod służących do rozwiązywania zadania. Użycie uniwersalnego szkieletu procesora decyzyjno-obliczeniowego
pozwala na wygodne przeprowadzenie obliczeń kilkoma metodami, jednolity format danych wyjściowych ułatwia zaś porównywanie i analizę wyników.
Uniwersalny procesor decyzyjno-obliczeniowy ułatwia zatem nie tylko rozwiązywanie
złożonych problemów rynkowych, ale także porównywanie rozwiązań otrzymywanych za
pomocą różnych podejść, niekoniecznie związanych tą samą technologią. Upraszcza to
znacznie prowadzenie prac rozwojowych nad mechanizmami rynkowymi, gdyż bez takiego
narzędzia (oraz bez wspólnego modelu M3) byłby to proces bardzo żmudny, głównie ze
względu na konieczność stosowania pracochłonnych konwersji danych, zarówno wejściowych jak i wyjściowych, pomiędzy różnymi formatami.
da
.b
w
w
pl
s.
6 Ocena rozwiązania
Przyjęto następujące kryteria oceny: użyteczność, elastyczność, niezależność implementacji
od konkretnej technologii oraz bezpieczeństwo.
Rozwiązanie jest użyteczne, gdyż spełnia wymagania funkcjonalne, jakimi są: możliwość wczytania danych wejściowych z plików w formacie M3-XML, zastosowanie na nich
transformacji XSLT/XQuery, przeprowadzenie obliczeń na przetworzonych danych, odczytanie wyników bilansowania oraz zapisanie wyników do postaci wyjściowych dokumentów
zgodnych ze standardem M3. Jak zauważono wcześniej, najbardziej kłopotliwą częścią rozwiązania jest parser, którego zadaniem jest odczytanie danych wynikowych z plików wyjściowych. Na obecnym etapie implementacji jest to część najbardziej wrażliwa na błędy.
W przyszłości ta część rozwiązania powinna zostać udoskonalona.
Rozwiązanie jest elastyczne, gdyż ma możliwość dostosowania swego działania do różnych, większych systemów, w których skład ma wchodzić. Przez zastosowanie XML
225
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
P. Kacprzak, M. Kaleta, P. Pałka, K. Smolira, E. Toczyłowski, T. Traczyk
w
do komunikacji z innymi modułami systemu, zapewniamy łatwość wymiany informacji.
Procesor może także być wydzielony z systemu poprzez zastosowanie technologii Web
services. W takim przypadku z jednego modułu procesora może korzystać kilka systemów.
Wydzielenie modułu procesora na osobny komputer może być także pożądane ze względu
na potrzebę uzyskania odpowiedniej wydajności obliczeniowej (która powinna być duża
dla niektórych trudniejszych problemów rynkowych).
Zaletą projektu uniwersalnego procesora jest także możliwość jego implementacji
w wielu różnych technologiach, co umożliwia przedstawiony szkielet rozwiązania. Wynika
to z założeń samego modelu M3 – z jego otwartości oraz z faktu, iż wymiana danych z systemami współpracującymi ma odbywać się wyłącznie za pomocą dokumentów XML.
Przez bezpieczeństwo będziemy rozumieli niemożność dostępu do poufnych danych
(czyli do plików M3-XML) przez niepowołanych użytkowników. Problem występuje, gdy
dostęp do procesora odbywa się poprzez mechanizm Web services. Wówczas należy zapewnić co najmniej szyfrowaną transmisję danych, najlepiej w wirtualnej sieci prywatnej.
w
w
7 Podsumowanie
da
.b
Przedstawione w niniejszej pracy rozwiązanie, stanowi szkielet procesora obliczeniowodecyzyjnego. Fakt iż rozwiązanie zostało z łatwością zaimplementowane wskazuje, iż zaproponowany szkielet został opracowany w sposób poprawny i projekt może być rozwijany. Jak zostało wspomniane wcześniej, solwer umożliwiający rozwiązywanie zadań sformułowanych w notacji M3, jest istotnym elementem aplikacyjnym modelu M3, gdyż umożliwia rozwiązywanie problemów sformułowanych w postaci notacji M3-XML, za pomocą
wielu modeli obliczeniowych lub decyzyjnych.
7.1 Spodziewane korzyści
pl
s.
Uniwersalny procesor obliczeniowo-decyzyjny porządkuje pewne elementy procesu bilansowania, poprzez sformułowanie szkieletu modułowego narzędzia, które może być używane w wielu aplikacjach implementujących modele aukcyjne, mechanizmy rynkowe itp.
Aby zaimplementować proces bilansowania dla danego problemu, wystarczy skonstruować
arkusz transformacji XSLT bądź XQuery, który przekształci pliki M3-XML do wymaganego modelu obrotu oraz napisać parser (bądź skorzystać z gotowego), dostosowany
do formatu plików wynikowych używanego solwera obliczeniowego lub decyzyjnego. Co
więcej, jak pokazano wyżej, możliwe jest tworzenie generycznych szablonów, które mogą
być używane w różnych problemach.
Te same problemy, zapisane w postaci M3-XML, mogą być rozwiązywane za pomocą
wielu różnorodnych metod, korzystających z różnych matematycznych modeli problemu
optymalizacyjnego/decyzyjnego; dostosowanie do danego modelu nie wymaga innego zapisu problemu, a jedynie użycia właściwej transformacji XSLT/XQuery. Jest to więc rozwiązanie bardzo wygodne.
7.2 Możliwe zastosowania
Przedstawione rozwiązanie procesora decyzyjno-obliczeniowego stanowi element prac nad
modelem M3 i jego zastosowaniami. Procesor może być stosowany w rozwiązaniach bizne226
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Procesor decyzyjno-obliczeniowy dla rynkowego modelu danych M3
w
sowych jako moduł większego systemu. Wymiana informacji z innymi modułami systemu
za pomocą dokumentów w otwartym formacie M3-XML pozwala na stosowanie elastycznych rozwiązań – każdy moduł systemu może być wykonany w innej technologii. Założenia konstrukcji procesora decyzyjno-obliczeniowego, powodują, iż jest to rozwiązanie uniwersalne i można przenosić je pomiędzy różnymi systemami.
Oprócz zastosowań biznesowych, procesor może być używany jako autonomiczna aplikacja służąca do rozwiązywania problemów zapisanych w notacji M3. Narzędzie takie jest
potrzebne w środowiskach naukowych, na przykład w procesie badania właściwości nowych modeli matematycznych, umożliwiających ciągłą ewolucję rynków bądź
też w procesie porównywania rozwiązań otrzymanych za pomocą różnych narzędzi obliczeniowych.
w
7.3 Plany dalszych prac
Literatura
1.
da
.b
w
Przedstawione narzędzie nie rozwiązuje oczywiście wszystkich istniejących problemów
związanych z bilansowaniem i rozliczeniami na różnorodnych rynkach. Istnieją modele
rynków, które zakładają istnienie kilku faz rozliczenia, np. model dwuetapowego bilansowania rynku wielotowarowego, zakładający rozchylenie cen rynkowych [12]. Istnieją także
modele rynków, które po przeprowadzonym rozliczeniu wymagają jeszcze kilkukrotnego
rozwiązania zmodyfikowanego problemu, w celu wyceny pewnych ograniczeń (np. ograniczeń sieciowych), przykładem takiego mechanizmu jest model MASIT, opisany w pracy
[8]. Dalsze badania skupią się na metodach dostosowania szkieletu procesora decyzyjnoobliczeniowego do bardziej wyszukanych modeli obliczeniowych. Opracowany też powinien zostać uniwersalny – sterowany parametrami – moduł parsera przekształcającego wyniki działania solwerów do formatu M3-XML.
pl
s.
Borndörfer R., Grötschel M., Lukac S., Mitusch K., Schlechte T., Schultz S., Tanner A.: An
auctioning approach to railway slot allocation. Technical Report ZR-05-45, ZIB, Berlin 2005.
2. Courcoubetis C., Weber R.: Pricing Communication Networks: Economics, Technology and
Modelling. John Willey & Sons, Ltd, 2003.
3. GLPK (GNU Linear Programming Toolkit). http://www.gnu.org/software/glpk
4. Hogan W. W.: Contract networks for electricity power transmission. Journal of Regulatory Economics, 4(3):211–242, Nov. 1992.
5. Kacprzak P., Kaleta M., Pałka P., Smolira K., Toczyłowski E., Traczyk T.: Communication
Model for M3 – Open Multi-commodity Market Data Model. II Krajowa Konferencja Naukowa
Technologie Przetwarzania Danych, ss. 139-150. Poznań, wrzesień 2007.
6. Kacprzak P., Kaleta M., Pałka P., Smolira K., Toczyłowski E., Traczyk T.: M3 – model danych
dla otwartego systemu obrotu wielotowarowego. W książce: Bazy danych. Bezpieczeństwo, wybrane technologie i zastosowania. WNT, Warszawa, 2007, ss. 289-300.
7. Kacprzak P., Kaleta M., Pałka P., Smolira K., Toczyłowski E., Traczyk T.: M3: Open Multicommodity Market Data Model for Network Systems, materiały XVI Międzynarodowej Konferencji Systems Science, Wrocław, 2007, (przyjęte do druku).
8. Kaleta M.: Subsidize-Free Cost Allocation Method for Infrastructure Market Game, 13th
IEEE/IFAC International Conference on Methods and Models in Automation and Robotics,
Szczecin, 2007, ss. 1171-1175.
9. Korab R.: Łączna optymalizacja energii bilansującej i operacyjnych rezerw mocy na konkurencyjnym rynku energii elektrycznej, Przegląd Elektrotechniczny, 9:120-123, 2006.
10. Schwepe F.C.: Spot pricing of electricity. New Kluwer Academic Publishers, New York, 1988.
227
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
P. Kacprzak, M. Kaleta, P. Pałka, K. Smolira, E. Toczyłowski, T. Traczyk
11. Stoft S.: Power System Economics: Designing Markets for Electricity. Wiley-Interscience, 2002.
12. Toczyłowski E.: Optymalizacja procesów rynkowych przy ograniczeniach. Akademicka Oficyna
Wydawnicza EXIT, wydanie drugie rozszerzone, 2003.
13. Vickrey W.: Counterspeculation, auctions, and competitive sealed tenders. Journal of Finance,
16(1):8–37, 1961.
14. Witryna projektu M3. http://www.openm3.org/
15. XQuery – XML Query Language website: http://www.w3.org/TR/xquery/
16. XSL Transformations website: http://www.w3.org/TR/xslt
w
da
.b
w
w
pl
s.
228
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008