Metody modelowania statystycznego a optymalizacja funkcji wielu

Transkrypt

Metody modelowania statystycznego a optymalizacja funkcji wielu
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

Podobne dokumenty