3
правки
Изменения
Нет описания правки
== Постановка задачи однокритериальной оптимизации==
Пусть <tex>S</tex> {{---}} дискретное пространство решений, а
<tex>f : S \rightarrow \mathbb{R}</tex> {{---}} оценочная функция.
Тогда задача однокритериальной оптимизации заключается в том, чтобы найти такое <tex>s \in S</tex> - пространство решений , что <tex> f(дискретноs)</tex> максимально. При этом рассматривается black-box scenario,что означает, что получить информацию об <tex>f</tex> можно только путем ее вычисления.В случае эволюционных алгоритмов время их работы измеряется в количестве вычислений оценочной функции.
x <tex>\leftarrow</tex> random
while(true)
x' <tex>\leftarrow</tex> neiborneighbour(x)
f(x') <tex>\geq</tex> f(x) <tex> \Rightarrow </tex> x = x'
Итерации выполняются, пока не будет удовлетворен критерий останова. Возможны два варианта HC:
1) '''first ascent''' {{--- }} в качестве <tex>x'</tex> выбирается первый из соседей, для которого <tex>f(x') \geq f(x)</tex>;
2) '''steepest ascent''' {{--- }} осуществляется перебор всех соседей, и в качестве <tex>x'</tex> выбирается тот, для которого <tex>f(x')-f(x)</tex> максимально.
==='''RMHC''' (Random Mutation Hill Climbing)===
==='''ES''' (Evolution Strategies)===
Это широкий класс алгоритмов поиска, основанных на идеях приспособления и эволюции<ref>Droste S., Jansen T., Wegener I.: [http://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CEcQFjAA&url=http%3A%2F%2Fwww.mpi-inf.mpg.de%2F~tfried%2Fteaching%2FSS08%2Fseminar%2Fpaper%2F7-DorsteJansenWegener.pdf&ei=92DfT6vnDMX6mAWz1fmtDA&usg=AFQjCNErEUu9L8x4PWFPofp3Y80hjE2_Ow&sig2=G9rsT_PDarYfL7LL4tLPvg On the analysis of the (1 + 1) evolutionary algorithm.] Theoretical Computer Science 276, 51–81 (2002) </ref>. Существуют различные вариации ES:
1) <tex>(1+1)-ES {{---}} на каждой итерации существует одно исходное решение <tex> x</tex> --- после и одно промежуточное решение <tex>x'</tex>. После внесения случайного изменения в каждый из компонентов <tex> x</tex>, <tex>x'</tex> может оказаться любым элементом <tex>S</tex>, но, чем он ближе к <tex>x</tex>, тем выше вероятность его выбора.
2) (1+<tex>(1+\lambda)-ES</tex> )-ES {{--- }} на каждой итерации генерируется <tex>\lambda</tex> промежуточных решений, среди них выбирается лучшее.
3) (<tex>\mu</tex>(1+<tex>\lambda)-ES</tex> )-ES {{--- }} на каждой итерации генерируется <tex>\lambda</tex> промежуточных решений, среди них выбирается <tex>\mu</tex> лучших.
== Примеры задач ==
===OneMax===
<tex>f(x_1, x_2, \dots , x_n) = OneMax(x_1, x_2, \dots , x_n) = x_1 + x_2, + \dots + x_n </tex>
===MST (Minimum spanning tree)===
== Оценка времени работы для OneMax ==
{{Утверждение|id=proposal1|about=1|statement=<tex> (\frac {1} {1 + - \frac{1}{n}})^{n = (\frac {-1} {\geq \frac{n + 1}{ne}})^n </tex>|proof= (\frac Из курса математического анализа известно, что <tex> lim_{n} {n+1})^n \stackrel{ _{m = n + 1to \infty}}{=}(1 - + \frac{1}{mn}) ^ {m-1}n = e </tex>.
Чтобы перейти от предела к неравенству, докажем, что <tex> (1 + \frac{1}{n^k}{k)^k} n \leq C_n^k (1)e</tex> .
Известно, что <tex> 1 + x C_n\leq e^k x</tex>. Пусть <tex>x = \leq frac{1}{n}</tex>, тогда <tex>1 + \frac{1}{n} \leq e^k{\frac{1}{k!n} (2)}</tex>. Возведем обе части в степень <tex>n</tex> и получим требуемое неравенство.
2) Известно, что для <tex> a,b > 1 </tex> справедливо <tex> (b \leq a \Rightarrow \frac{1a}{nb})^k (1 - \leq \frac{a - 1}{n})^{n b - k} \geq \frac{1}{e n</tex>Отсюда, вновь воспользовавшись определением <tex> C_n^k} </tex>, получаем <tex>(1) </tex>.}}
{{Утверждение
|id=proposal4
|about=4
|statement=<tex> C_n^k (\frac{1}{n})^k(1 - \frac{1}{n})^{n - k} \geq \frac{1}{e k^k} </tex>.
|proof=
<tex> C_n^k (\frac{1}{n})^k(1 - \frac{1}{n})^{n - k}
\geq \frac{n^k}{k^k} \frac{1}{e n^k} = \frac{1}{e k^k}</tex> по Утверждениям 1 [[#proposal2|утверждению(2)]] и 4. '''Утверждение 5 [[#proposal3|утверждению(Лемма об ожидании3):''']]. Если вероятность наступления события <tex>A</tex> на каждом шаге равна <tex>p</tex>, то матожидание наступления этого события<tex>E(t_A) = \frac{1}{p}</tex>. '''Доказательство:'''
{{Утверждение|id=proposal5|about=Лемма об ожидании|statement=Если вероятность наступления события <tex>A</tex> на каждом шаге равна <tex>p</tex>, то матожидание времени наступления этого события <tex>E(t_A) = 1 \cdot p + 2 (1-p) p + 3 (1 - p)^2 p + \dots + k (1 - p)^k p + \dots = \sum_{i=1}^\infty i p (1 - p) ^frac{i - 1} = p\sum_{i=1}^\infty i (1 - p) ^{i - 1}</tex>.|proof=По определению математического ожидания:
<tex> E(t_A) = 1 \cdot p + 2 (1-p) p + 3 (1 - p)^2 p + \dots + k (1 - p)^k p + \fracdots = \sum_{i=1}^\infty i p (1 - p) ^{i - 1 - x} = p\sum_{i=01}^\infty xi (1 - p) ^{i - 1}</tex> .
<tex> (\frac{p1}{ (1 - x})' = \frac{1}{(1 - p)x) ^ 2} = p \sum_{i=10}^\infty i (1 - p)x^{i-1} = \frac{1}{p} </tex>.
Отсюда видно, что: <tex> \frac{p}{ (1 - (1 - p)) ^ 2} = p \sum_{i=1}^\infty i (1 - p)^{i-1} = \frac{1}{p} </tex>.
}}
=== Алгоритм RMHC ===
Оценим время работы алгоритма для данной задачи.
Вероятность окончания фазы {{---}} это вероятность того, что будет выбран один из оставшихся <tex>n - k</tex> нулевых битов: <tex> \frac{n - k}{n} </tex>. Тогда по Утверждению 5 [[#proposal5|лемме об ожидании]] <tex> E(t) = \frac{n}{n-k} </tex> для конкретной фазы.
Отсюда ожидаемая продолжительность всех фазравна:
<tex> \sum_{k=0}^{n-1} \frac{n}{n-k} = n \sum_{i=1}^{n} \frac{1}{i} = O(n \log n) </tex>
=== Алгоритм (1+1)-ES ===
Оценим время работы алгоритма для данной задачи.
Отсюда ожидаемая продолжительность всех фаз меньше либо равна:
<tex> \sum_{k=0}^{n-1} \frac{e n}{n-k} = e n \sum_{i=1}^{n} \frac{1}{i} = O(n \log n) </tex>
==Оценка времени работы алгоритмов с использованием Drift Analysis==
[[Теорема о дрифте | Теорема о дрифте]] с успехом применяется для оценки времени работы эволюционных алгоритмов в различных ситуациях. Примеры можно найти в работе<ref>Doerr B.: [http://dl.acm.org/citation.cfm?id===2002138 Tutorial: Drift theorem===Пусть <tex>X_0, X_1Analysis.] GECCO '11 Proceedings of the 13th annual conference companion on Genetic and evolutionary computation, \dots</tex> -1311-- неотрицательные целочисленные случайные величины и существует <tex>\delta > 01320 (2011)</texref> такое что:.
===RMHC для OneMax===Пусть <tex>\forall t \in \mathbbX_t</tex> {{N---}, x \in \mathbb{N}_0 число нулевых бит после итерации <tex>i</tex>: E(<tex>X_t | X_= f_{topt} -1} = x) \leq f(1 - \deltaX_t) x</tex>.
<tex>E(TX_t | X_{t-1} = k) = (k-1) \leq frac{k}{n} + k \frac{n-k}{n} = k (1 - \frac{1}{n})</tex>, то есть <tex> \delta}(= \ln(X_0) + frac{1)}{n}</tex>.
===(1+1)-ES для OneMax===Пусть <tex>X_t</tex>\forall t \in \mathbb{N{---}, x \in \mathbb{N}_0 число нулевых бит после итерации <tex>i</tex>: E(<tex>X_t | X_= f_{topt} -1} = x) \leq f(1 - \deltaX_t) x</tex>.
Пусть <tex>X_{t-1} = k</tex>. Тогда вероятность перевернуть один нулевых битов равна <tex>T = k \minfrac{1}{n} ( 1 - \frac{1}{n})^{t n-1} \in geq \mathbbfrac{Nk}_0 | X_t = 0\{e n}</tex> удовлетворяет. Отсюда:
<tex>E(TX_t | X_{t-1} = k) \leq (k-1)\frac{k}{e n} + k (1- \frac{k}{\deltae n}) = k (1 - \ln(X_0frac{1}{e n}) + </tex>, то есть <tex> \delta = \frac{1)}{e n}</tex>.
Применяем [[Теорема о дрифте|теорему о дрифте]], с учетом того, что <tex>X_0 \forall c leq n </tex> 0, Prи получаем: <tex> E(T > ) \frac{1}{\delta}leq e n(\ln(X_0) {n} + c)1) \leq e ^ {-c}</tex>.
===RMHC (1+1)-ES для OneMaxMST ===Пусть <tex>X_t</tex> --- число нулевых бит после итерации <tex>i</tex>: <tex>X_t = f_{opt} - f(X_t)</tex>
На каждой итерации независимо для каждого бита инвертируем его с вероятностью <tex>E(X_t | X_{t-1} = k) = (k-1)\frac{k}{n} + k \frac{n-1}{n} = k (1 - \frac{1}{n})</tex>, то есть <tex> \delta = \frac{1}{nm}</tex>.
{{Теорема |author=Neumann, Wegener (2004)|statement==Ожидаемое время работы (1+1)-ES для OneMax===Пусть задачи MST равно <tex>X_t</tex> --- число нулевых бит после итерации <tex>iO(m^2 \log(m w_{max}))</tex>: , где <tex>X_t = f_w_{optmax} - f(X_t)</tex>{{---}} максимальный вес ребра.
Пусть <tex> X_t </tex> для <tex>T</tex>{{---}} это разница между весом текущего дерева и оптимального: <tex> X_t = w(T) - w_{opt} </tex> для <tex>T</tex> после итерации <tex>t</tex>.
Если <tex>X_{t-1} = D > 0</tex>, то существуют наборы ребер <tex>e_1, \dots, e_k</tex> из <tex>T</tex> и <tex>e'_1, \dots, e'_k</tex> из <tex>E \setminus T</tex> такие, что
<tex>T' = T - \{e_1, \dots , e_k\} + \{e'_1, \dots , e'_k\}</tex> {{--- }} это MST,минимальное остовное дерево.
<tex>T_i = T - e_i + e'_i</tex> {{--- }} остовное дерево с весом <tex>w(T_i) < w(T)</tex>.
С верояностью <tex>\geq 1/e m^2</tex>, одна итерация обменяет в точности ребра <tex>e_i</tex> и <tex>e'_i</tex>.Тогда:
<tex>E(X_t| X_{t-1} = D) \leq D - \sum_{i} (1/e m^2) (w(e_i) - w(e'_i))= (1 - 1/e m^2) D </tex>
Используем [[Теорема о дрифте|теорему о дрифте]], учитывая, что
<tex>X_0 \leq \sum_{e \in E} w(e) \leq m w_{max}</tex>, и получаем требуемый результат.
}}
==Источники==
<references />