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.