4.2 Vícerozměrné nehladké funkce
Nehladkými funkcemi rozumíme funkce, u nichž neklademe žádné
požadavky na vlastnosti kriteriální funkce (její spojitost, spojitost
jejího gradientu, atd.). Metody pro minimalizaci takovýchto funkcí jsou
primárně založeny na srovnávání funkčních hodnot minimalizované
kriteriální funkce. Srovnávací metody vykazují velmi špatnou
efektivnost, a proto je většinou používáme pouze v těch případech, kdy
jiné metody selhávají.
4.2.1 Polytopní algoritmus
Algoritmus předpokládá, že v každém iteračním kroku máme k dispozici (n+1) funkčních hodnot kriteriální funkce. Navíc máme tyto funkční hodnoty seřazeny tak, aby platilo
![]() |
(4.5)
|
V každém iteračním kroku algoritmu vytváříme jeden nový bod takový,
aby nahradil nejhorší bod množiny [ x1, x2, ..., xn+1]. To znamená, že funkční
hodnota v novém bodě musí být menší než Fn+1.
V prvém kroku algoritmu vypočteme tzv. centroid z počtu n
nejlepších bodů jako
![]() |
(4.6)
|
V druhém kroku se pokusíme vytvořit nový bod jako odraz nejhoršího bodu
![]() |
(4.7)
|
Koeficient a > 0 nazýváme činitelem odrazu a Fr = F(xr). Za této situace mohou nastat
tři případy:
1. |
![]() |
Bod xr nahrazuje nejhorší bod xn+1. |
2. |
![]() |
Bod xr je nejlepším bodem. Směr odrazu je dobrým směrem, a proto se pokusíme odraz prodloužit Koeficient b > 1 nazýváme činitelem prodloužení. Platí-li Fe < Fr , je prodloužení úspěšné a nejhorší bod xn+1 je nahrazen bodem xe. V případě že Fe > Fr , jedná se o prodloužení neúspěšné a nejhorší bod xn+1 je nahrazen bodem xr . |
3. |
![]() |
Nový bod je horší než nejhorší bod původní množiny. Proto jej nemůžeme
použít a musíme hledat znovu ve směru opačném ke směru původního hledání Koeficient g nabývá hodnoty z intervalu (0, 1). Pokud platí Fc < min{ Fr, Fn+1}, potom bylo hledání v opačném směru úspěšné a původní nejhorší bod xn+1 je nahrazen bodem xc. Pokud bylo hledání v opačném směru neúspěšné, hledáme v opačném směru jiný bod. |
Pokud implementujeme popsaný algoritmus v MATLABu, vytvoříme velmi obecný optimalizační program, který však vykazuje velmi nízkou efektivnost hledání minima. Abychom zvýšili efektivnost algoritmu, musíme použít pokročité strategie pro generování nových bodů xr, xe nebo xc. Pokročilé strategie jsou většinou založeny na segmentaci prohledávaného stavového prostoru a na ovlivňování stupně náhodnosti této segmentace.