ZASTOSOWANIE ALGORYTMU KOEWOLUCYJNEGO DO STEROWANIA PALNIKIEM ENERGETYCZNYM CONTROLLING POWER BURNER USING COEVOLUTIONARY ALGORITHM Waldemar Wójcik, Mariusz Kalita, Andrzej Smolarz Wydział Elektrotechniki i Informatyki, Politechnika Lubelska, 20-618 Lublin, ul. Nadbystrzycka 38A e-mail: m.kalita@pollub.pl ABSTRACT The paper below presents an attempt to implement coevolutionary algorithm that is a part of experimental power burner controller. In the article results of used method simulation are shown. Outcomes show what kind of influence do cooperative species have on algorithm operations key parameters. Key words: evolutionary algorithms, coevolutionary algorithms, power boiler controlling WSTĘP W przeszłości główną miarą pracy kotła była ilość wyprodukowanej pary o zadanych parametrach. Podejście takie powodowało duŝe zanieczyszczenie środowiska poprzez emisję szkodliwych substancji. Obecnie zwiększenie znaczenia ochrony środowiska oraz wzrost wymagań dotyczących emisji związków chemicznych i gazów do atmosfery spowodowało konieczność intensyfikacji prac modernizacyjnych mających na celu spełnienie, przez istniejące juŝ elektrownie i elektrociepłownie, stosunkowo ostrych norm emisyjnych. W niniejszej pracy przedstawione zostały wyniki badań nad zastosowaniem technik optymalizacji globalnej oraz sztucznej inteligencji w regulacji procesem spalania w kotle energetycznym. CZĘŚĆ DOŚWIADCZALNA Algorytmy ewolucyjne słuŝą do rozwiązywania problemów w sposób naśladujący pewne procesy zachodzące w przyrodzie, które są nazywane doborem naturalnym. Ewolucję moŝna sobie wyobrazić jako algorytm stale optymalizujący pewną funkcję (miarę przystosowania). Tak jak przyroda doprowadza do wytworzenia się organizmów najlepiej funkcjonujących w danym środowisku, tak programista, rozwiązując problem, stara się znaleźć jego moŝliwie optymalne rozwiązania. Pomimo tych dąŝeń natura nie tworzy organizmów doskonałych. Podobnie funkcjonują algorytmy genetyczne (AG), które słuŝą do poszukiwania wyników przybliŝonych. Tego typu metody są niezwykle skuteczne i przydatne w praktyce. Mając do rozwiązania trudny obliczeniowo problem, tzn. taki, dla którego nie jesteśmy w stanie skonstruować właściwego algorytmu, dającego dokładne rozwiązania w rozsądnym czasie działania, wystarczy rozwiązanie, o którym wiemy, Ŝe niewiele róŝni się od optymalnego. W pewnym uproszczeniu moŝemy załoŝyć, Ŝe algorytm genetyczny słuŝy do optymalizacji funkcji, określanej jako funkcja przystosowania. Pomimo tak prostego opisu naleŝy zauwaŝyć, Ŝe klasa zastosowań AG jest bardzo szeroka. MoŜemy je stosować w róŝnorakich problemach, dla których uda się odnaleźć funkcję oceniającą rozwiązania. W tym ujęciu wiele problemów moŝna przeformułować w taki sposób, aby stały się zadaniami optymalizacyjnymi. W podejściu koewolucyjnym tworzy się środowisko składające się z dwóch lub większej liczby gatunków, których ewolucja zaleŝy zarówno od zmian we własnym gatunku, jak teŝ od wzajemnych związków pomiędzy pozostałymi gatunkami. Podobnie jak w naturze, gatunki są genetycznie izolowane. W inŝynierii wyróŝnia się dwa typy algorytmów koewolucyjnych (CEA Coevolutionary Algorithms). Pierwszym nich są algorytmy konkurujące, gdzie prawdopodobieństwo przetrwania gatunku zaleŝy od innych gatunków. Przykładem moŝe być schemat drapieŝnik i ofiara lub Ŝywiciel i pasoŝyt. Drugim typem algorytmów koewolucyjnych są algorytmy współpracujące. W podejściu tym gatunki zachęcane są do współpracy poprzez nagradzanie za wspólne rozwiązywanie
259 problemów, natomiast karane są za samodzielność. Idea koewolucji po raz pierwszy została przedstawiona w pracy Hillis a, gdzie wykazano pozytywny wpływ jej zastosowania na efektywność algorytmu ewolucyjnego. Podejście to zostało rozwinięte przez Paredis a, który zastosował je najpierw do ewolucji klasyfikujących sieci neuronowych, a następnie do problemu spełnienia ograniczeń. W drugiej z wymienionych prac zaadaptował takŝe inspirowaną biologicznie, dodatkową technikę zwaną oceną przystosowania w toku Ŝycia. Programistyczną realizację algorytmów przedstawiają schematy na rys. 1 oraz rys. 2. Rys. 1. Schemat ogólny działania algorytmu genetycznego Rys. 2. Sposób oceniania osobników Przedstawiony na rys.1 algorytm jest typowym przykładem algorytmu ewolucyjnego. NajwaŜniejszym elementem jest sposób oceniania osobników. Przed dokonaniem oceny danego osobnika staje się on reprezentantem danej populacji wśród reprezentantów pozostałych gatunków. Następnie oblicza się funkcję celu, a jej wartość zostaje przypisana do danego osobnika dla którego była liczona (rys.2). Sposób w jaki dobiera się reprezentantów zaleŝy od dziedziny problemu. W opisywanym przypadku zastosowano koewolucyjny algorytm współpracujących populacji w ramach istniejących ograniczeń, w celu ciągłego obliczania parametrów sieci neuronowej w zmieniających się warunkach pracy kotła energetycznego. Sieć neuronowa wykorzystywana jest w modelu obserwatora palnika energetycznego jako estymator tlenków azotu (NOx) lub tlenku węgla (CO). Podejście takie pozwala uniknąć niewłaściwego obliczenia stęŝenia NOx. Estymacja wykonywana jest na podstawie informacji
260 otrzymanych ze światłowodowego systemu monitorowania płomienia. Rysunek (rys. 4) poniŝej przestawia ogólną koncepcję regulacji procesu spalania w kotle energetycznym. Algorytm koewolucyjny (pierwsza metoda Gwiazdy) Metoda Gwiazdy jest analogią do koewolucji obserwowanej w przyrodzie, lecz zrealizowana Rys. 4. Schemat obrazujący umiejscowienie CEA w ogólnej koncepcji regulatora została w sposób inny niŝ opisany przez Paredisa. W metodzie tej gatunki współpracują ze sobą wspierając swoim rozwojem rozwój populacji zawierającej właściwe rozwiązania. Schemat algorytmu przedstawia rys. 5. Standardowe elementy algorytmu zostały dobrane następująco: reprezentacja rozwiązania wektor rzeczywisty o długości równej liczbie zmiennych, generacja populacji początkowej generator losowy, krzyŝowanie jednopunktowe, prawdopodobieństwo krzyŝowania = 0,8, prawdopodobieństwo mutacji = 0,08, warunek zatrzymania algorytmu po 1000 iteracjach lub gdy wynik nie zmienia się po 100 następujących po sobie iteracjach. Standardowa funkcja przystosowania której wartość jest równa wartości funkcji celu pomniejszonej lub powiększonej (zaleŝnie od charakteru problemu) o współczynnik kary uzaleŝniony od stopnia odchylenia od narzuconych ograniczeń [8]. Dla problemu minimum mamy więc: gdzie: (1) funkcja przystosowania rozwiązania X, funkcja celu, współczynnik kary równy średniemu odchyleniu od ograniczeń. Natomiast funkcja dla problemu maksimum wygląda następująco: (2) Dodatkowo do metody selekcji wprowadzono ograniczenie na krotność wylosowania tego samego rozwiązania rodzicielskiego w postaci 10% liczności całej populacji. Wprowadzenie tego ograniczenia miało na celu utrzymania róŝnorodności populacji we wszystkich iteracjach algorytmu. WYNIKI BADAŃ I DYSKUSJA W niniejszej pracy wykorzystano implementację algorytmu koewolucyjnego (przedstawionego na rys. 5) w środowisku Matlab. Do symulacji wybrano schemat dwóch współpracujących populacji. Jednym z najistotniejszych ograniczeń był czas wypracowania rozwiązania. Ograniczenie to wynika z faktu, Ŝe dla prawidłowego reagowania na pojawiające się podczas pracy kotła energetycznego zakłócenia, czas wypracowania nastawy dla regulatora nie powinien przekroczyć dziesięciu sekund. Podczas symulacji stwierdzono, Ŝe o ile warunek czasu wypracowania nastawy jest
261 Rys. 5. Schemat algorytmu koewolucyjnego wg koncepcji Gwiazdy moŝliwy do spełnienia, to jakość pracy algorytmu jest wysoce niezadowalająca. Zatem konieczne staje się przeformułowanie metody obliczania funkcji przystosowania. W celu sprawdzenia narzuconego ograniczenia wykonano symulacje dla populacji o róŝnej liczności. Rys. 6. Wpływ liczności populacji w gatunkach na liczbę koniecznych iteracji do znalezienia rozwiązania. Rysunek 6 przedstawia liczbę koniecznych iteracji algorytmu do osiągnięcia punktu w którym kolejne iteracje nie powodują zmiany osiągniętego rozwiązania lub wcześniej zostało osiągnięte kryterium tysiąca iteracji. WNIOSKI Wykonane symulacje pozwalają stwierdzić, Ŝe moŝliwe jest zastosowanie algorytmów koewolucyjnych w procesie regulacji stęŝenia NOx w kotle energetycznym. NaleŜy jednak zwrócić uwagą na fakt, Ŝe zastosowany algorytm w większości przypadków kończył pracę mieszcząc się w ograniczeniu tysiąca iteracji, jednak czas potrzebny do przetworzenia wszystkich danych niebezpiecznie zbliŝał się do granicy kryterium czasu. MoŜliwym rozwiązaniem tego problemu jest zrównoleglenie obliczeń na więcej niŝ jedną jednostkę komputerów. Innym problemem, o którym juŝ wspomniano, jest odpowiednia modyfikacja uŝytej funkcji przystosowania, gdyŝ obecna, niezaleŝnie od zmiany liczności gatunków, nie daje satysfakcjonujących
262 rezultatów. Pomimo pojawiających się wątpliwości odnośnie zastosowania algorytmów koewolucyjnych wydaje się, Ŝe ich moŝliwości nie zostały jeszcze w pełni odkryte i z pewnością w przyszłości będą stanowiły skuteczną alternatywę dla znanych juŝ algorytmów ewolucyjnych. LITERATURA ARABAS J., 2001, WNT, Warszawa, Wykłady z algorytmów ewolucyjnych. GOLDBERG D. E., 2003, WNT, Warszawa, Algorytmy genetyczne i ich zastosowania. MICHALEWICZ Z., 1996, WNT, Warszawa, Algorytmy genetyczne + struktury danych = programy ewolucyjne. RUTKOWSKA D., PILIŃSKI M., RUTKOWSKI L., 1997, PWN, Warszawa- Łódź, Sieci neuronowe, algorytmy genetyczne i systemy rozmyte. SMOLARZ A., 2003, Politechnika Lubelska, Praca Doktorska, Lublin, Neuronowy regulator pracy wirowego palnika pyłowego. WÓJCIK W., KALITA M., SMOLARZ A., PILEK B.; 2004, Wilga, Controlling combustion process in power boiler by genetic algorithm and neural network. KORBICZ J., KOŚCIELNY J.M., KOWALCZUK Z., CHOLEWA W., 2002, PWN, Warszawa, Diagnostyka procesów. Modele, metody sztucznej inteligencji. Zastosowania. GWIAZDA T. D., 2005, Warszawa, Wirtualne BranŜowe Systemy Wspomagania Decyzji oparte o Algorytmy Ewolucyjne. MIIKKULAINEN R., STANLEY K.O., 2004, Competitive Coevolution through Evolutionary Complexification. WIEGAND R. P., 2003, An Analysis of Cooperative Coevolutionary Algorithms. FICICI S.G., 2004, Solution Concepts in Coevolutionary Algorithms. POTTER M.A., The Design and Analysis of a Computational Model of Cooperative Coevolution, 1997 HILLIS D., Co-evolving parasites improves simulated evolution as an optimization Procedure, 1990.