Michał Twardochleb, Katedra Organizacji i Zarządzania, Wydział Informatyki PS METODY MODELOWANIA STATYSTYCZNEGO A OPTYMALIZACJA FUNKCJI WIELU ZMIENNYCH Z OGRANICZENIAMI Streszczenie W artykule opisano możliwość zastosowania metod losowych do poszukiwania rozwiązań złożonych problemów obliczeniowych, takich jak poszukiwanie optymalnej struktury portfela inwestycyjnego. Pierwszy rozdział zawiera podstawowe informacje o istocie metody Monte Carlo i jej powszechnych zastosowaniach. W drugim rozdziale podano przykłady algorytmów wysoce skutecznych generatorów liczb pseudolosowych, będących istotną częścią składowa opisywanej metody. Trzeci rozdział opisuje zastosowanie metody poszukiwań losowych do poszukiwania optymalnej wartości funkcji wielu zmiennych z ograniczeniami dziedziny postaci równania oraz nierówności. Badany problem polega na znalezieniu portfela charakteryzującego się jak najmniejszym ryzykiem, przy jednoczesnym spełnieniu założenia o niedopuszczalności krótkiej sprzedaży. 1. Podstawy metod losowych Metoda prób statystycznych (zwana inaczej metodą Monte Carlo) umożliwia znajdowanie rozwiązań złożonych problemów poprzez wielokrotne badanie próbek dobieranych losowo. Zamiast poszukiwać wyników metodą analityczną, można odpowiednio zaprojektować i skonstruować proces losowy przedstawiający różne stany badanego zjawiska. Obserwacja rezultatów uzyskanych z odpowiednio dużej ilości prób, pozwoli na osiągnięcie wyników zbliżonych do zadanych – jeśli poszukiwany jest wektor zmiennych wejściowych, dla których badane zagadnienie przyjmuje wartości optymalne, to wraz ze wzrostem liczby prób wzrasta prawdopodobieństwo wylosowania wektora, dającego wynik różniący się od rzeczywistego ekstremum o pewne niewielkie epsilon. Skala korzyści wynikających ze skrajnego uproszczenia procesu obliczeniowego pozwala na akceptacje wyników obarczonych nieznacznym błędem. Przykładem może być tu zadanie polegające na obliczeniu prawdopodobieństwa P tego, że suma wypadnięć „szóstki” podczas 100 rzutów kostką jest liczbą parzystą. Zakładając, że prawdopodobieństwo wypadnięcia „szóstki” podczas jednego rzutu wynosi p =1/6 szukane prawdopodobieństwo P będzie dane wzorem: 50 100 2k p (1 − p)100−2 k P = ∑ 2 k k =0 (1) Obliczenie tej wartości będzie wymagało wykonania dużej ilości obliczeń (51 wyrażeń typu {N po K} oraz 102 potęgowania). Alternatywnie można przeprowadzić test polegający na wykonaniu n prób po 100 rzutów kostką) i zliczyć liczbę m przypadków w których szóstka wypadła parzystą liczbę razy. Przy odpowiednio dużej liczbie prób wynik m/n z wystarczającą dokładnością wyznaczy szukaną wartość. Oczywiście przeprowadzenie wielu tysięcy rzutów kostką nie miałoby żadnego sensu – doskonale z tym zadaniem poradzi sobie komputer. Wystarczy w tym celu za pomocą generatora liczb pseudolosowych uzyskać odpowiednią ilość n liczb z przedziału <0,1), charakteryzujących się rozkładem równomiernym. Wyloso- PDF created with pdfFactory Pro trial version www.pdffactory.com wanie liczby zawierającej się w przedziale <0, 1/6) oznacza przypadek wypadnięcia na kostce „szóstki”. Przedstawiony przykład jest zadaniem bardzo prostym. W przypadku zadań o większej złożoności np. z użyciem kilku kostek, opisanie takiego procesu jest znacznie bardziej skomplikowane. W tej sytuacji znalezienie wyniku metodą analityczną jest już znacznie trudniejsze. O wiele prościej natomiast można uzyskać wynik stosując metodę prób statystycznych. Inną dziedziną, w której można z powodzeniem stosować metodę Monte Carlo jest poszukiwanie przybliżonych wartości całek. W tym przypadku problem sprowadza się do obliczenia pola ograniczonego krzywą całkowanej funkcji F, osią OX i granicami całkowania. W celu uproszczenia obliczeń można dodatkowo przeskalować funkcję tak, aby cały szukany obszar zawierał się w kwadracie 0 ≤ x ≤ 1, 0 ≤ y ≤ 1. Następnie należy utworzyć n punktów P(px,py) o współrzędnych uzyskanych generatorem liczb pseudolosowych o rozkładzie równomiernym. Jeśli wylosowany punkt będzie należał do badanego obszaru (pod krzywą), wówczas spełniony zostanie warunek: (2) F(px) ≥ py Jeżeli przez m zostanie określona liczbę punktów, dla których powyższy warunek jest spełniony spośród n wylosowanych, wówczas wielkość m/n określi przybliżoną wartość szukanego pola. Dokładność obliczenia całki przy pomocy tej metody zależy oczywiście od ilości prób n. Błąd metody Monte Carlo ε można wyrazić jako różnicę pomiędzy faktyczną wartością zaobserwowaną, a wartością wykazaną przez symulację. Błąd ten ma rząd równy 1 ε~ (3) n gdzie n – ilość przeprowadzonych prób Wynika z tego, że dla zwiększenia dokładności wyniku o jeden rząd należy stukrotnie zwiększyć ilość prób losowych. Biorąc jednak pod uwagę prostotę wykonywanych obliczeń można stwierdzić, że możliwości dzisiejszych komputerów pozwalają na otrzymanie wyników obarczonych akceptowalnie małym błędem. 2. Generatory liczb pseudolosowych W związku z tym, że metoda Monte Carlo opiera się na wielokrotnych próbach losowych jednym z najważniejszych problemem jest właściwy dobór generatora liczb losowych. W celu właściwego przybliżenia określonego procesu należy dysponować ciągiem liczb, które będą odpowiadać pewnemu rozkładowi. W celu uzyskania zbioru liczb losowych można na przykład wykorzystać generator bazujący na jakimś procesie fizycznym (np. rozpadzie promieniotwórczym), jednakże rozwiązanie takie obarczone jest pewnymi niedogodnościami. Problemem może być tu niestabilność danego procesu. Ponadto faktyczna losowość sprawia, że nie mamy możliwości powtórzenia przeprowadzonego doświadczenia. Znacznie lepszym sposobem wydaje się być zastosowanie algorytmu generowania liczb pseudolosowych, przy czym należy pamiętać o konieczności spełnienia konkretnych warunków dla generowanego ciągu: ü niezależność - wytworzone liczby powinny być w możliwie najmniejszym stopniu skorelowane ze sobą, ü równomierność - rozkład generowanych liczb powinien być stabilny i zbliżony do równomiernego. Jednym z najlepszych generatorów pseudolosowych jest generator L’Ecuyera. Jest to generator złożony, składający się z dwóch rekurencyjnych generatorów podrzędnych, którego algorytm przedstawia się następująco; PDF created with pdfFactory Pro trial version www.pdffactory.com zn=(xn-yn) mod m1 gdzie : xn=(a1 xn-1+a2 xn-2 +a3 xn-3) mod m1 yn=(b1 yn-1+b2 yn-2 +b3 yn-3) mod m2 przy założonych: a1= 0 a2= 63308 a3= -183326 b1= 86098 b2= 0 b3= 539608 m1= 2 31 –1 = 2147483647 m2= 2145483479. Okresowość tego generatora wynosi 2 205, czyli około 1061, co jest bez wątpienia okresowością wystarczającą dla większości badanych zjawisk. Stan generatora L’Ecuyera jest przechowywany przy użyciu sześciu słów 32-bitowych. Innym interesującym generatorem liczb pseudolosowych jest generator opisany przez Robert Ziffa. Tworzy on kolejne składniki na podstawie bitowego XOR-owania poprzednio wygenerowanych wartości. Schemat operacyjny tego generatora przedstawiono poniżej. rn=rn-A XOR rn-B XOR rn-C XOR rn-D gdzie A=471 B=1586 C=6988 D=9689 Według ocen autora okresowość tego generatora jest wręcz astronomiczna i wynosi ( 2 ) , gdzie K jest długością słowa. Zatem tego, w przypadku słów 32-bitowych jego okresowość może być szacowana na 10 93334. Podstawową wadą tego generatora jest konieczność przechowywania znacznej liczby stanów (9689 słów 32-bitowych), co może znacznie spowolnić proces modelowania statystycznego. Wydaje się więc, że do większości zastosowań wystarczającym będzie generator L’Ecuyera. W przyszłości, gdy granica możliwości obliczeniowych komputerów będzie szersza, do modelowania szczególnie złożonych procesów z całą pewnością wystarczy generator Ziffa. Opierając się na regule Rogera Moora (szybkość komputerów co ok. 18 miesięcy podwaja się ) możemy wnioskować że nastąpi to stosunkowo niedługo. (za 15 lat komputery będą około 1000 razy szybsze). K D 3. Optymalizacja funkcji wielu zmiennych z ograniczeniami. Metoda Monte Carlo z powodzeniem stosowana jest przy szukaniu zadanej wartości wynikającej z opisu badanego zjawiska. Można jednakże spróbować wykorzystać modelowanie statystyczne do innych nieco celów. Niech zadaniem będzie wyszukanie ekstremum pewnej funkcji wielu zmiennych przy ograniczonej dziedzinie. Zakładając, że ekstremum lokalne istnieje w badanym obszarze, PDF created with pdfFactory Pro trial version www.pdffactory.com można obszar ten pokryć gęstą siatką punktów generowanych w sposób losowy. Jeśli pokrycie hiperprzestrzeni punktami losowymi będzie wystarczająco gęste (tzn. przeprowadzimy odpowiednio dużą liczbę prób) występuje wysokie prawdopodobieństwo trafienia za którymś razem w punkt położony w bardzo dużej bliskości poszukiwanego ekstremum. Przykładem może być tutaj problem poszukiwania struktury optymalnego portfela inwestycyjnego. Niech definicja optymalnego portfela sprowadza się do określenia portfela charakteryzującego się najwyższą możliwą wartością jednego ze stosowanych wskaźników przydatności inwestycyjnej, np. wskaźnika Sharpe’a lub Jensena lub minimalnym ryzykiem określanym przez odchylenie standardowe (ocena odbywa się tu na podstawie danych historycznych). Zatem poszukiwany będzie wektor W={w1 , w2 ,..., wn} dla którego F(W) = MIN gdzie : F(W) = Sd – odchylenie standardowe portfela, które określa wzór: n Sd = V i =1 przy czym: n – liczba spółek w portfelu wi – zawartość i-tej spółki w portfelu si – odchylenie standardowe notowań i-tej spółki ρij – korelacja notowań i-tej i j-tej spółki o ograniczeniach: Σ wi =1, wi≥ 0, n −1 V = ∑ wi2 * s i2 + 2 * ∑ n ∑w i =1 j = i +1 i *w j * s i * s j * ρ ij suma udziałów akcji stanowi 100% portfela niedopuszczalność krótkiej sprzedaży Klasyczna metoda rozwiązania zadania minimalizacji odchylenia standardowego portfela, polega na wyznaczeniu wag poszczególnych składowych portfela przy pomocy mnożników Lagrange’a, a skład rzeczowy portfela jest określany heurystycznie, bądź przy wykorzystaniu klasycznych (statycznych bądź dynamicznych) procedur optymalizacyjnych. Niestety w większości przypadków w otrzymanym w ten sposób wektorze wag składowych portfela występują wartości ujemne, co oznacza konieczność dokonania tzw. krótkiej sprzedaży. Realny koszt takiego portfela może zatem okazać się dużo wyższy od założonego, lub jego realizacja jest w ogóle niemożliwa. Ograniczenie wymaganych nieujemnych wartości wszystkich wag portfela powoduje, że analityczne rozwiązanie problemu znacznie komplikuje się. Mamy bowiem do rozwiązania problem optymalizacji funkcji wielu zmiennych z ograniczeniami typu równania i typu nierówności. Z pomocą przyjść tu może właśnie modelowanie statystyczne. Rozwiązanie zbliżone do optymalnego możemy bowiem uzyskać poprzez wielokrotne losowanie struktury wektora wag portfela i każdorazowe poddawanie go ocenie pod kątem przyjętego kryterium. Przeprowadzając odpowiednio dużą liczbę prób losowych można otrzymać zestaw (lub kilka zestawów), który będzie charakteryzował się wskaźnikami znacznie przewyższającymi średnią statystyczną. Można przyjąć, że im więcej przeprowadzi się prób losowych, tym lepiej uzyskany wynik (najlepsza struktura) będzie zbliżony do poszukiwanego ekstremum funkcji. Portfel uzyskany tą metodą będzie przy tym spełniał warunek nieujemnej zawartości poszczególnych walorów. Ponadto proces poszukiwania optymalnego układu spółek można przerwać w każdym momencie zachowując najlepszy uzyskany wynik, oraz kontynuować PDF created with pdfFactory Pro trial version www.pdffactory.com poszukiwanie od ostatniej przeprowadzonej próby – wystarczy zapamiętać wartości stanu generatora pseudolosowego. Jeśli w wyniku kolejnych prób nie uda się osiągnąć wyniku lepszego od otrzymanego w pewnym momencie w przeszłości , dalsze zwiększenie dokładności można uzyskać poprzez zawężenie obszaru poszukiwań do otoczenia uprzednio znalezionego punktu. Musi być to jednak poprzedzone odpowiednio dużą liczbą prób, celem uniknięcia ograniczenia poszukiwań do otocznia lokalnego ekstremum badanej funkcji. 4. Podsumowanie Opisywana metoda wykazuje dużą przydatność do poszukiwania rozwiązań problemów trudnych do rozwiązania tradycyjnymi metodami analitycznymi. Oczywiście wraz ze wzrostem wymiarowości problemu otrzymanie dokładnych przybliżeń wartości poszukiwanych powoduje znaczny wzrost złożoności obliczeniowej. Prostota algorytmu poszukiwawczego i wyjątkowa łatwość jego implementacji jest jednak silnym argumentem przemawiającym za zastosowaniem metody Monte Carlo. O istotności tej rodziny metod we współczesnej nauce może również poświadczyć organizowana co dwa lata (ostatnia – 25-28 XI 2002, Singapur), prestiżowa międzynarodowa konferencja: Monte Carlo and Quasi-Monte Carlo Methods in Scientific Computing ( http://www.mcqmc2002.math.nus.edu.sg/ ). Literatura 1. 2. 3. 4. 5. 6. I. Białynicki-Birula: Modelowanie rzeczywistości. Warszawa 2002 N.P. Buslenko, D.I. Golenko: Metoda Monte Carlo. PWN, Warszawa 1967 W. Findeisen, J. Szymanowski: Teoria i metody obliczeniowe optymalizacji. PWN, Warszawa 1980 K. Jajuga, T. Jajuga: Jak inwestować w papiery wartościowe, PWN, Warszawa 1993 O. Popow: Metody numeryczne i optymalizacja. Instytut Informatyki Politechniki Szczecińskiej, Szczecin 1996. GNU Scientific Library Reference Manual - www.gnu.org/software/gsl/ PDF created with pdfFactory Pro trial version www.pdffactory.com