Теоретическая оценка времени работы алгоритмов RMHC и (1+1)-ES для задач OneMax и MST — различия между версиями
Agapova (обсуждение | вклад) м (→ES (Evolution Strategies)) |
Agapova (обсуждение | вклад) |
||
Строка 43: | Строка 43: | ||
== Оценка времени работы для OneMax == | == Оценка времени работы для OneMax == | ||
− | |||
− | <tex> ( 1 - \frac{1}{n} ) ^ {n-1} \geq \frac{1}{e}</tex> | + | {{Утверждение |
− | + | |id=proposal1 | |
− | + | |about=1 | |
− | + | |statement=<tex> ( 1 - \frac{1}{n} ) ^ {n-1} \geq \frac{1}{e}</tex> | |
− | <tex> lim_{n \to \infty}(1 + \frac{1}{n})^n = e </tex> | + | |proof=<tex> lim_{n \to \infty}(1 + \frac{1}{n})^n = e </tex> |
<tex> (\frac {1} {1 + \frac{1}{n}})^n = (\frac {1} {\frac{n + 1}{n}})^n = (\frac {n} {n+1})^n \stackrel{ _{m = n + 1}}{=} | <tex> (\frac {1} {1 + \frac{1}{n}})^n = (\frac {1} {\frac{n + 1}{n}})^n = (\frac {n} {n+1})^n \stackrel{ _{m = n + 1}}{=} | ||
− | (1 - \frac{1}{m}) ^ {m-1}</tex> | + | (1 - \frac{1}{m}) ^ {m-1}</tex>}} |
− | + | {{Утверждение | |
− | + | |id=proposal2 | |
− | <tex> \frac{n^k}{k^k} \leq C_n^k (1)</tex> | + | |about=2 |
+ | |statement= | ||
+ | <tex> \frac{n^k}{k^k} \leq C_n^k (1)</tex> <br> | ||
<tex> C_n^k \leq \frac{n^k}{k!} (2)</tex> | <tex> C_n^k \leq \frac{n^k}{k!} (2)</tex> | ||
− | + | |proof= | |
− | |||
1) <tex> C_n^k = \frac{n!}{k!(n-k)!} \leq \frac{n^k}{k!}</tex> | 1) <tex> C_n^k = \frac{n!}{k!(n-k)!} \leq \frac{n^k}{k!}</tex> | ||
2) <tex>b \leq a \Rightarrow \frac{a}{b} \leq \frac{a - 1} {b - 1}, a,b > 1 \Rightarrow (1) </tex> | 2) <tex>b \leq a \Rightarrow \frac{a}{b} \leq \frac{a - 1} {b - 1}, a,b > 1 \Rightarrow (1) </tex> | ||
+ | }} | ||
− | + | {{Утверждение | |
− | + | |id=proposal3 | |
− | <tex> (\frac{1}{n})^k (1 - \frac{1}{n})^{n - k} \geq \frac{1}{e n^k} </tex> | + | |about=3 |
− | + | |statement=<tex> (\frac{1}{n})^k (1 - \frac{1}{n})^{n - k} \geq \frac{1}{e n^k} </tex>. | |
− | + | |proof= | |
− | + | <tex> (1 - \frac{1}{n})^{n - k} \geq \frac{1}{e} </tex> по [[#proposal1|утверждению(1)]], отсюда следует требуемый результат. | |
− | <tex> (1 - \frac{1}{n})^{n - k} \geq \frac{1}{e} </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} | <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> по | + | \geq \frac{n^k}{k^k} \frac{1}{e n^k} = \frac{1}{e k^k}</tex> по [[#proposal2|утверждению(2)]] и [[#proposal3|утверждению(3)]]. |
− | + | }} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <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) ^{i - 1} = p\sum_{i=1}^\infty i (1 - p) ^{i - 1}</tex> | + | {{Утверждение |
+ | |id=proposal5 | ||
+ | |about=Лемма об ожидании | ||
+ | |statement=Если вероятность наступления события <tex>A</tex> на каждом шаге равна <tex>p</tex>, то матожидание наступления этого события <tex>E(t_A) = \frac{1}{p}</tex>. | ||
+ | |proof=<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) ^{i - 1} = p\sum_{i=1}^\infty i (1 - p) ^{i - 1}</tex> | ||
<tex> \frac{1}{1 - x} = \sum_{i=0}^\infty x^i </tex> | <tex> \frac{1}{1 - x} = \sum_{i=0}^\infty x^i </tex> | ||
− | + | Продифференцировав, получаем: | |
<tex> \frac{1}{1 - x}' = \frac{1}{(1 - x) ^ 2} = \sum_{i=0}^\infty i x^{i - 1} </tex> | <tex> \frac{1}{1 - x}' = \frac{1}{(1 - x) ^ 2} = \sum_{i=0}^\infty i x^{i - 1} </tex> | ||
− | <tex> \frac{p}{ (1 - (1 - p)) ^ 2} = p \sum_{i=1}^\infty i (1 - p)^{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 === | === Алгоритм RMHC === | ||
Строка 106: | Строка 104: | ||
Оценим время работы алгоритма для данной задачи. | Оценим время работы алгоритма для данной задачи. | ||
− | Вероятность окончания фазы <tex> \frac{n - k}{n} </tex>. Тогда по | + | Вероятность окончания фазы <tex> \frac{n - k}{n} </tex>. Тогда по [[#proposal5|лемме об ожидании]] <tex> E(t) = \frac{n}{n-k} </tex> для конкретной фазы. |
Отсюда ожидаемая продолжительность всех фаз: | Отсюда ожидаемая продолжительность всех фаз: | ||
Строка 117: | Строка 115: | ||
Оценим время работы алгоритма для данной задачи. | Оценим время работы алгоритма для данной задачи. | ||
− | Вероятность окончания фазы <tex> (n - k)\frac{1}{n}(1 - \frac{1}{n}) ^ {n-1} \geq \frac{n - k}{e n}</tex> по утверждению 3. Тогда по | + | Вероятность окончания фазы <tex> (n - k)\frac{1}{n}(1 - \frac{1}{n}) ^ {n-1} \geq \frac{n - k}{e n}</tex> по [[#proposal3|утверждению(3)]]. Тогда по [[#proposal5|лемме об ожидании]] <tex> E(t) \leq \frac{e n}{n-k} </tex> для конкретной фазы. |
Отсюда ожидаемая продолжительность всех фаз меньше либо равна: | Отсюда ожидаемая продолжительность всех фаз меньше либо равна: | ||
<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> | <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== |
− | = | + | {{Теорема |
− | Пусть <tex>X_0, X_1, \dots</tex> --- неотрицательные целочисленные случайные величины и существует <tex>\delta > 0</tex> такое что: | + | |id=theorem1 |
+ | |about=Drift theorem | ||
+ | |statement= Пусть <tex>X_0, X_1, \dots</tex> --- неотрицательные целочисленные случайные величины и существует <tex>\delta > 0</tex> такое что: | ||
<tex>\forall t \in \mathbb{N}, x \in \mathbb{N}_0 : E(X_t | X_{t-1} = x) \leq (1 - \delta) x</tex>. | <tex>\forall t \in \mathbb{N}, x \in \mathbb{N}_0 : E(X_t | X_{t-1} = x) \leq (1 - \delta) x</tex>. | ||
− | Тогда <tex>T = \min\{t \in \mathbb{N}_0 | X_t = 0\}</tex> удовлетворяет | + | Тогда <tex>T = \min\{t \in \mathbb{N}_0 | X_t = 0\}</tex> удовлетворяет: |
− | |||
<tex>E(T) \leq \frac{1}{\delta}(\ln(X_0) + 1)</tex> | <tex>E(T) \leq \frac{1}{\delta}(\ln(X_0) + 1)</tex> | ||
+ | }} | ||
− | + | {{Теорема | |
− | Пусть <tex>X_0, X_1, \dots</tex> --- случайные величины из <tex>\{0\} \cup [1, \infty)</tex> и существует <tex>\delta > 0</tex> такое что: | + | |about=An Improved Drift theorem |
+ | |statement= Пусть <tex>X_0, X_1, \dots</tex> --- случайные величины из <tex>\{0\} \cup [1, \infty)</tex> и существует <tex>\delta > 0</tex> такое что: | ||
<tex>\forall t \in \mathbb{N}, x \in \mathbb{N}_0 : E(X_t | X_{t-1} = x) \leq (1 - \delta) x</tex>. | <tex>\forall t \in \mathbb{N}, x \in \mathbb{N}_0 : E(X_t | X_{t-1} = x) \leq (1 - \delta) x</tex>. | ||
− | Тогда <tex>T = \min\{t \in \mathbb{N}_0 | X_t = 0\}</tex> удовлетворяет | + | Тогда <tex>T = \min\{t \in \mathbb{N}_0 | X_t = 0\}</tex> удовлетворяет: |
<tex>E(T) \leq \frac{1}{\delta}(\ln(X_0) + 1)</tex> | <tex>E(T) \leq \frac{1}{\delta}(\ln(X_0) + 1)</tex> | ||
<tex>\forall c > 0, Pr(T > \frac{1}{\delta}(\ln(X_0) + c)) \leq e ^ {-c}</tex> | <tex>\forall c > 0, Pr(T > \frac{1}{\delta}(\ln(X_0) + c)) \leq e ^ {-c}</tex> | ||
+ | }} | ||
===RMHC для OneMax=== | ===RMHC для OneMax=== | ||
Строка 151: | Строка 153: | ||
<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}{n}</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}{n}</tex>. | ||
− | Отсюда по теореме о дрифте, с учетом того, что <tex> X_0 \leq n </tex> получаем: <tex> E(T) \leq n(\ln{n} + 1)</tex>. | + | Отсюда по [[#theorem1|теореме о дрифте]], с учетом того, что <tex> X_0 \leq n </tex> получаем: <tex> E(T) \leq n(\ln{n} + 1)</tex>. |
===(1+1)-ES для OneMax=== | ===(1+1)-ES для OneMax=== | ||
Строка 160: | Строка 162: | ||
<tex>E(X_t | X_{t-1} = k) \leq (k-1)\frac{k}{e n} + k (1 - \frac{k}{e n}) = k (1 - \frac{1}{e n})</tex>, то есть <tex> \delta = \frac{1}{e n}</tex>. | <tex>E(X_t | X_{t-1} = k) \leq (k-1)\frac{k}{e n} + k (1 - \frac{k}{e n}) = k (1 - \frac{1}{e n})</tex>, то есть <tex> \delta = \frac{1}{e n}</tex>. | ||
− | Отсюда | + | Отсюда [[#theorem1|теореме о дрифте]], с учетом того, что <tex> X_0 \leq n </tex> получаем: <tex> E(T) \leq e n(\ln{n} + 1)</tex>. |
=== (1+1)-ES для MST === | === (1+1)-ES для MST === | ||
Строка 170: | Строка 172: | ||
Фитнес-функция: <tex>w(T) + c_{penalty} ({\#comp} - 1) </tex>, где <tex>\#comp</tex> --- число компонент связности в текущем <tex> T </tex>. | Фитнес-функция: <tex>w(T) + c_{penalty} ({\#comp} - 1) </tex>, где <tex>\#comp</tex> --- число компонент связности в текущем <tex> T </tex>. | ||
− | + | {{Теорема | |
− | + | |statement= Ожидаемое время работы (1+1)-ES для задачи MST равно <tex>O(m^2 \log(m w_{max}))</tex>, где <tex>w_{max}</tex> --- максимальный вес ребра. | |
− | Ожидаемое время работы (1+1)- | ||
− | + | |proof= | |
1) Пусть после <tex>O(m \log m)</tex> итераций <tex>T</tex> связно: | 1) Пусть после <tex>O(m \log m)</tex> итераций <tex>T</tex> связно: | ||
Строка 183: | Строка 184: | ||
<tex>E(X_t) \leq (1 - \frac{1}{e m})k</tex> | <tex>E(X_t) \leq (1 - \frac{1}{e m})k</tex> | ||
− | Применяя теорему о дрифте, получаем требуемый результат. | + | Применяя [[#theorem1|теорему о дрифте]], получаем требуемый результат. |
2) Пусть <tex>T</tex> уже связно. Тогда оно остается связным и на дальнейших итерациях. | 2) Пусть <tex>T</tex> уже связно. Тогда оно остается связным и на дальнейших итерациях. | ||
Строка 201: | Строка 202: | ||
<tex>E(X_t) \leq D - \sum_{i} (1/e m^2) (w(e_i) - w(e'_i))= (1 - 1/e m^2) D </tex> | <tex>E(X_t) \leq D - \sum_{i} (1/e m^2) (w(e_i) - w(e'_i))= (1 - 1/e m^2) D </tex> | ||
− | Используем теорему о дрифте, учитывая, что | + | Используем [[#theorem1|теорему о дрифте]], учитывая, что |
<tex>X_0 \leq \sum_{e \in E} w(e) \leq m w_{max}</tex>, и получаем требуемый результат. | <tex>X_0 \leq \sum_{e \in E} w(e) \leq m w_{max}</tex>, и получаем требуемый результат. | ||
+ | }} | ||
+ | |||
+ | ==Источники== | ||
+ | *Droste S., Jansen T., Wegener I. [http://rain.ifmo.ru/~tsarev/teaching/ea-2012/lectures/7-DorsteJansenWegener.pdf| On the analysis of the (1 + 1) evolutionary algorithm] | ||
+ | *Doerr B. Tutorial: [http://rain.ifmo.ru/~tsarev/teaching/ea-2012/lectures/p1311.pdf|Drift Analysis] | ||
+ | *Witt C. [http://rain.ifmo.ru/~tsarev/teaching/ea-2012/lectures/slides-02283-20102.pdf|Randomized Search Heuristics] |
Версия 15:47, 17 июня 2012
Содержание
Постановка задачи однокритериальной оптимизации
- пространство решений (дискретно),
- оценочная функция.
Задача: найти
. При этом рассматривается black-box scenario, что означает, что получить информацию об можно только путем ее вычисления.Методы решения
HC(Hill Climbing)
xrandom while(true) x' neibor(x) f(x') f(x) x = x'
Итерации выполняются, пока не будет удовлетворен критерий останова. Возможны два варианта HC:
1) first ascent --- в качестве
выбирается первый из соседей, для которого2) steepest ascent --- осуществляется перебор всех соседей, и в качестве
выбирается тот, для которого максимальноRMHC (Random Mutation Hill Climbing)
Та же схема, что и для HC, но
получают путем случайного изменения одного из компонентов решения .ES (Evolution Strategies)
1)
--- после внесения случайного изменения в каждый из компонентов , может оказаться любым элементом , но, чем он ближе к , тем выше вероятность его выбора.2)
--- генерируется промежуточных решений, среди них выбирается лучшее.3)
--- генерируется промежуточных решений, среди них выбирается лучших.Примеры задач
OneMax
Найти битовую строку длины
, состоящую из одних единиц. Оценочная функция:
MST (Minimum spanning tree)
Дан связный неориентированный граф
, с ребрами веса . Требуется найти минимальное остовное дерево минимального веса .Оценка времени работы для OneMax
Утверждение (1): |
|
Утверждение (2): |
1) 2) |
Утверждение (3): |
. |
утверждению(1), отсюда следует требуемый результат. | по
Утверждение (4): |
. |
утверждению(2) и утверждению(3). | по
Утверждение (Лемма об ожидании): |
Если вероятность наступления события на каждом шаге равна , то матожидание наступления этого события . |
Продифференцировав, получаем: . |
Алгоритм RMHC
На каждом шаге равномерно выбираем и инвертируем один бит из
. Пусть --- значение в начале фазы. При фаза заканчивается.Оценим время работы алгоритма для данной задачи.
Вероятность окончания фазы лемме об ожидании для конкретной фазы.
. Тогда поОтсюда ожидаемая продолжительность всех фаз:
Алгоритм (1+1)-ES
Независимо для каждого бита инвертируем его с вероятностью
. Пусть --- значение в начале фазы. При фаза заканчивается.Оценим время работы алгоритма для данной задачи.
Вероятность окончания фазы утверждению(3). Тогда по лемме об ожидании для конкретной фазы.
поОтсюда ожидаемая продолжительность всех фаз меньше либо равна:
Оценка времени работы с использованием Drift Analysis
Теорема (Drift theorem): |
Пусть --- неотрицательные целочисленные случайные величины и существует такое что:
. Тогда удовлетворяет: |
Теорема (An Improved Drift theorem): |
Пусть --- случайные величины из и существует такое что:
. Тогда удовлетворяет:
|
RMHC для OneMax
Пусть
--- число нулевых бит после итерации :Пусть
. Тогда, то есть .
Отсюда по теореме о дрифте, с учетом того, что получаем: .
(1+1)-ES для OneMax
Пусть
--- число нулевых бит после итерации :Пусть
. Тогда вероятность перевернуть один нулевых битов равна . Отсюда, то есть .
Отсюда теореме о дрифте, с учетом того, что получаем: .
(1+1)-ES для MST
Решение представляет собой битовую строку
длины , где , если , и в обратном случае.Мутация: независимо для каждого бита инвертируем его с вероятностью
.Фитнес-функция:
, где --- число компонент связности в текущем .Теорема: |
Ожидаемое время работы (1+1)-ES для задачи MST равно , где --- максимальный вес ребра. |
Доказательство: |
1) Пусть после итераций связно: после итерации .Если , то существует как минимум ребер, которые не входят в и добавление которых уменьшает :
Применяя теорему о дрифте, получаем требуемый результат. 2) Пусть уже связно. Тогда оно остается связным и на дальнейших итерациях.Пусть для после итерации .Если , то существуют из и из такие, что--- это MST, следовательно , и для всех--- остовное дерево с . С верояностью , одна итерация обменяет в точности ребра и .
Используем теорему о дрифте, учитывая, что , и получаем требуемый результат. |
Источники
- Droste S., Jansen T., Wegener I. On the analysis of the (1 + 1) evolutionary algorithm
- Doerr B. Tutorial: Analysis
- Witt C. Search Heuristics