Black-box Complexity. Примеры нереалистичных оценок Black-box Complexity — различия между версиями
Строка 3: | Строка 3: | ||
Целью [[Теория_сложности|теории сложности]] является определение вычислительной трудности алгоритмов. Классическая теория сложности предполагает, что алгоритму полностью известна структура решаемой задачи. В случае [[Эволюционные_алгоритмы|эволюционных алгоритмов]], алгоритм обладает информацией только о качестве (значении ''fitness''-функции) получаемого им решения, по этой причине утверждения классической теории сложности здесь мало применимы. | Целью [[Теория_сложности|теории сложности]] является определение вычислительной трудности алгоритмов. Классическая теория сложности предполагает, что алгоритму полностью известна структура решаемой задачи. В случае [[Эволюционные_алгоритмы|эволюционных алгоритмов]], алгоритм обладает информацией только о качестве (значении ''fitness''-функции) получаемого им решения, по этой причине утверждения классической теории сложности здесь мало применимы. | ||
− | '''Black-box Complexity'''<ref name="bbox">[http://dl.acm.org/citation.cfm?doid=2001576.2001851 Doerr B., Kötzing T., Winzen C. Too fast unbiased black-box algorithms]</ref> — попытка построить теорию сложности для эволюционных алгоритмов. Вкратце, ''black-box'' сложность алгоритма — количество вычислений ''fitness''-функции, необходимое для получения решения. Такое определение позволяет получить не реалистично низкие оценки ''black-box'' сложности, например, полиномиальную сложность для [[Примеры_NP-полных_языков._Теорема_Кука|<tex>\mathrm{NP}</tex>-полной]] задачи поиска максимальной клики <ref>[http://en.wikipedia.org/wiki/Clique_problem Clique problem]</ref>. | + | '''Black-box Complexity''' <ref name="bbox">[http://dl.acm.org/citation.cfm?doid=2001576.2001851 Doerr B., Kötzing T., Winzen C. Too fast unbiased black-box algorithms]</ref> — попытка построить теорию сложности для эволюционных алгоритмов. Вкратце, ''black-box'' сложность алгоритма — количество вычислений ''fitness''-функции, необходимое для получения решения. Такое определение позволяет получить не реалистично низкие оценки ''black-box'' сложности, например, полиномиальную сложность для [[Примеры_NP-полных_языков._Теорема_Кука|<tex>\mathrm{NP}</tex>-полной]] задачи поиска максимальной клики <ref>[http://en.wikipedia.org/wiki/Clique_problem Clique problem]</ref>. |
По этой причине были введены ограничения на исследуемые алгоритмы. Требуется, чтобы для получения новых кандидатов на решение использовались только '''несмещенные''' (позиция элемента в битовой строке и его значение не влияют на выбор битов для изменения) '''вариативные операторы'''. Также было введено понятие '''арности''' — <tex>k</tex>-арный несмещенный ''black-box'' алгоритм использует только те операторы, которые принимают не более чем <tex>k</tex> аргументов. Для некоторых классов задач такой подход к опеределению ''black-box'' сложности позволяет получить более реалистичные оценки вычислительной трудности. Операторы с арностью <tex>1</tex> называют '''мутационными'''. В настоящей статье показано, что даже для алгоритмов, использующих только мутационные операторы, можно получить не реалистично маленькую оценку ''black-box'' сложности. | По этой причине были введены ограничения на исследуемые алгоритмы. Требуется, чтобы для получения новых кандидатов на решение использовались только '''несмещенные''' (позиция элемента в битовой строке и его значение не влияют на выбор битов для изменения) '''вариативные операторы'''. Также было введено понятие '''арности''' — <tex>k</tex>-арный несмещенный ''black-box'' алгоритм использует только те операторы, которые принимают не более чем <tex>k</tex> аргументов. Для некоторых классов задач такой подход к опеределению ''black-box'' сложности позволяет получить более реалистичные оценки вычислительной трудности. Операторы с арностью <tex>1</tex> называют '''мутационными'''. В настоящей статье показано, что даже для алгоритмов, использующих только мутационные операторы, можно получить не реалистично маленькую оценку ''black-box'' сложности. | ||
Строка 25: | Строка 25: | ||
=== Неограниченная Black-box модель === | === Неограниченная Black-box модель === | ||
− | Рассматривается класс алгоритмов оптимизации, которые получают информацию о решаемой задаче через вычисление ''fitness''-функции возможных решений. Заданная ''fitness''-функция вычисляется ''ораклом'', или дается как ''black-box''. Алгоритм может запросить у ''оракла'' значение функции для любого решения, однако | + | Рассматривается класс алгоритмов оптимизации, которые получают информацию о решаемой задаче через вычисление ''fitness''-функции возможных решений. Заданная ''fitness''-функция вычисляется ''ораклом'', или дается как ''black-box''. Алгоритм может запросить у ''оракла'' значение функции для любого решения, однако больше никакой информации о решении получить не может. |
В качестве ''fitness''-функции берется псевдо-булевая функция <tex>F:\{0,1\}^n \rightarrow \mathbb{R}</tex>. | В качестве ''fitness''-функции берется псевдо-булевая функция <tex>F:\{0,1\}^n \rightarrow \mathbb{R}</tex>. | ||
Строка 69: | Строка 69: | ||
{{Лемма | {{Лемма | ||
|id=remark2 | |id=remark2 | ||
− | |statement= | + | |statement=Пусть для задачи <tex>P</tex> существует ''black-box'' алгоритм <tex>A</tex>, который с константной вероятностью успеха решает <tex>P</tex> за <tex>s</tex> итераций. Тогда ''black-box'' сложность <tex>P</tex> не больше <tex>O(s)</tex>. |
|proof=Доказательство приведено в работе <ref name="bbox"/>. | |proof=Доказательство приведено в работе <ref name="bbox"/>. | ||
}} | }} | ||
Строка 82: | Строка 82: | ||
}} | }} | ||
− | + | Далее будет показано, что для любого константного <tex>k</tex> можно с высокой вероятностью решить проблему <tex>OneMax</tex> <ref>[http://tracer.lcc.uma.es/problems/onemax/onemax.html OneMax problem]</ref> за малое количество ''black-box'' обращений к <tex>Jump_k</tex>. С помощью этого утверждения можно показать, что для любой константы <tex>k</tex> несмещенная ''black-box'' сложность для функции <tex>Jump_k</tex> не реалистично мала. | |
{{Лемма | {{Лемма | ||
|id=lemma3 | |id=lemma3 | ||
− | |statement=<tex>\forall k,c</tex> существует унарная несмещенная | + | |statement=<tex>\forall k,c</tex> существует унарная несмещенная функция <tex>s</tex>, использующая <tex>c+1</tex> запросов к <tex>Jump_k</tex> такая, что для всех битовых строк <tex>x</tex>, <tex>s(x) = OneMax(x)</tex> с вероятностью <tex>1 - O(n^{-c})</tex>. |
− | |proof=Используется унарный несмещенный вариативный оператор <tex>flip_k</tex>, который равновероятно выбирает строку из <tex>k</tex>-окрестности для аргумента (битовую строку, которая отличается в <tex>k</tex> позициях). | + | |proof=Используется унарный несмещенный вариативный оператор <tex>flip_k</tex>, который равновероятно выбирает строку из <tex>k</tex>-окрестности для аргумента (битовую строку, которая отличается в <tex>k</tex> позициях). Ниже предлагается функция <tex>s</tex>, которая использует <tex>Jump_k</tex> для аппроксимации <tex>OneMax</tex>. Процедура выбирает <tex>c</tex> битовых строк в <tex>k</tex>-окрестности <tex>x</tex>. Если <tex>|x|_1 \geq n-k</tex>, то есть вероятность того, что хотя бы раз в <tex>x</tex> будут заменены только единицы, что приведет к тому, что <tex>Jump_k = |x|_1 - k</tex>. Так как больше никакая строка из выборки не будет иметь меньшее <tex>Jump_k</tex> значение, то добавление <tex>k</tex> к минимальному ненулевому значению <tex>Jump_k</tex> других строк из выборки приведет к нужному результату — функция вернет количество единиц в строке <tex>x</tex>. Случай, когда <tex>|x|_1 \leq k</tex>, аналогичен. |
− | Понятно, что | + | Понятно, что функция корректна при всех <tex>x</tex>, таких, что <tex>k < |x|_1 < n-k</tex>. Остальные два случая симметричны, поэтому пусть <tex>|x|_1 \geq n-k</tex>. Очевидно, что результат процедуры корректен тогда и только тогда, когда хотя бы в одной из <tex>c</tex> строк были заменены только единицы. Требуется вычислить вероятность <tex>p</tex> этого события. Итеративно выбираются <tex>k</tex> бит для замены, поэтому после <tex>i</tex> итераций имеется как минимум <tex>n-k-i</tex> позиций с единицей из <tex>n-i</tex> невыбранных позиций. Отсюда, с использованием неравенства Бернулли <ref>[http://en.wikipedia.org/wiki/Bernoulli%27s_inequality Bernoulli's inequality]</ref>, получается граница на вероятность выбора <tex>k</tex> единиц: |
− | :<tex>(\frac{n-k}{n})\cdot(\frac{n-k-1}{n-1})\cdots(\frac{n-k-(k-1)}{n-(k-1)}) = \Pi_{i=0}^{k-1}(1 - \frac{k}{n-i}) \geq (1 - \frac{k}{n-k})^k \geq (1 - \frac{k^2}{n-k}) | + | :<tex>(\frac{n-k}{n})\cdot(\frac{n-k-1}{n-1})\cdots(\frac{n-k-(k-1)}{n-(k-1)}) = \Pi_{i=0}^{k-1}(1 - \frac{k}{n-i}) \geq (1 - \frac{k}{n-k})^k \geq (1 - \frac{k^2}{n-k})</tex>. |
− | + | Таким образом: | |
:<tex>p \geq 1 - (\frac{k^2}{n-k})^c</tex>. | :<tex>p \geq 1 - (\frac{k^2}{n-k})^c</tex>. | ||
− | + | Функция <tex>s</tex>: | |
'''if''' <tex>Jump_k(x) \neq 0</tex> '''then output''' <tex>Jump_k(x)</tex>; | '''if''' <tex>Jump_k(x) \neq 0</tex> '''then output''' <tex>Jump_k(x)</tex>; | ||
Строка 119: | Строка 119: | ||
}} | }} | ||
− | + | Функции из [[#lemma3|предыдущей леммы]] для работы необходимо знать параметр <tex>k</tex>, но ее можно модифицировать таким образом, что она будет работать без этого знания. Как только функция впервые выберет случайную битовую строку с <tex>Jump_k=0</tex> она определит <tex>k</tex>, затем продолжит работу как было описано выше. Параметр <tex>k</tex> определяется с помощью выбора достаточно большого количества случайных строк в <tex>i</tex>-окрестности от строки с <tex>Jump_k=0</tex>, начиная с <tex>i=1</tex> и продолжая до тех пор, пока <tex>Jump_k</tex> не станет отличным от нуля. Найденная строка будет иметь максимальное значение <tex>Jump_k=n-k-1</tex>. Из этого значения и <tex>n</tex> функция может вычислить <tex>k</tex>. | |
== Задача о разбиении == | == Задача о разбиении == | ||
Строка 135: | Строка 135: | ||
}} | }} | ||
− | Далее <tex>Partition_{\neq}</tex> — подкласс задачи <tex>Partition</tex> с | + | Далее <tex>Partition_{\neq}</tex> — подкласс задачи <tex>Partition</tex> с заданными различными весами. |
− | + | Далее предлагаются две различные ''fitness''-функции и показывается, что в обоих случаях может быть достигнута полиномиальная несмещенная ''black-box'' сложность. Показывается, что унарная несмещенная ''black-box'' сложность для задачи <tex>Partition_{\neq}</tex> равна <tex>O(n \log(n))</tex>. | |
=== Знаковая ''fitness''-функция === | === Знаковая ''fitness''-функция === | ||
− | + | Пусть <tex>\mathcal{F}_{\mathcal{I}} := \{(\mathcal{I}_0, \mathcal{I}_1) \in 2^{\mathcal{I}} \times 2^{\mathcal{I}} | \mathcal{I}_0 \dot{\cup} \mathcal{I}_1 = \mathcal{I}\}</tex> — множество всех возможных решений для <tex>\mathcal{I}</tex>. Знаковую ''fitness''-функция определяется как: | |
:<tex>f_{\mathcal{I}}^{*}: \mathcal{F} \rightarrow \mathbb{Z}, (\mathcal{I}_0, \mathcal{I}_1) \mapsto \Sigma_{w \in \mathcal{I}_0} w - \Sigma_{w \in \mathcal{I}_1} w</tex>. | :<tex>f_{\mathcal{I}}^{*}: \mathcal{F} \rightarrow \mathbb{Z}, (\mathcal{I}_0, \mathcal{I}_1) \mapsto \Sigma_{w \in \mathcal{I}_0} w - \Sigma_{w \in \mathcal{I}_1} w</tex>. | ||
Строка 146: | Строка 146: | ||
Цель заключается в минимизации <tex>|f_{\mathcal{I}}^{*}|</tex>. | Цель заключается в минимизации <tex>|f_{\mathcal{I}}^{*}|</tex>. | ||
− | + | Необходимо ввести нумерацию элементов <tex>\mathcal{I}</tex>: <tex>\sigma: \mathcal{I} \rightarrow [n]</tex>. Для любой битовой строки <tex>x \in \{0,1\}^n</tex> определены <tex>\mathcal{I}_0(x) := \{w \in \mathcal{I} | x_{\sigma{w}} = 0\}</tex> и <tex>\mathcal{I}_1(x) := \{w \in \mathcal{I} | x_{\sigma{w}} = 1\}</tex>. Тогда ''fitness''-функция выглядит так: | |
:<tex>f_{\mathcal{I}}: \{0,1\}^n \rightarrow \mathbb{Z}, x \mapsto \Sigma_{i \in [n], x_i=0} \sigma^{-1}(i) - \Sigma_{i \in [n], x_i=1} \sigma^{-1}(i)</tex>. | :<tex>f_{\mathcal{I}}: \{0,1\}^n \rightarrow \mathbb{Z}, x \mapsto \Sigma_{i \in [n], x_i=0} \sigma^{-1}(i) - \Sigma_{i \in [n], x_i=1} \sigma^{-1}(i)</tex>. | ||
Строка 153: | Строка 153: | ||
|id=th6 | |id=th6 | ||
|statement=Унарная несмещенная ''black-box'' сложность задачи <tex>Partition_{\neq}</tex> относительно ''fitness''-функции <tex>f_{\mathcal{I}}</tex> равна <tex>O(n \log(n))</tex>, где <tex>n := |\mathcal{I}|</tex>. | |statement=Унарная несмещенная ''black-box'' сложность задачи <tex>Partition_{\neq}</tex> относительно ''fitness''-функции <tex>f_{\mathcal{I}}</tex> равна <tex>O(n \log(n))</tex>, где <tex>n := |\mathcal{I}|</tex>. | ||
− | |proof=Для доказательства | + | |proof=Для доказательства теоретмы строится алгоритм с применением двух вариативных операторов: |
:*<tex>uniform()</tex> — выбирает случайную битовую строку <tex>x \in \{0,1\}^n</tex>; | :*<tex>uniform()</tex> — выбирает случайную битовую строку <tex>x \in \{0,1\}^n</tex>; | ||
:*<tex>RLS(\cdot)</tex> — случайно меняет элемент в одной из позиций входной строки. | :*<tex>RLS(\cdot)</tex> — случайно меняет элемент в одной из позиций входной строки. | ||
− | Для краткости | + | Для краткости полагется <tex>f := f_{\mathcal{I}}</tex>. |
Следующий алгоритм служит доказательством теоремы: | Следующий алгоритм служит доказательством теоремы: | ||
Строка 173: | Строка 173: | ||
11 '''else''' <tex>\mathcal{I}_1' \leftarrow \mathcal{I}_1' \cup {|f(x^{(0)}) - f(x^{(t)})|/2}</tex>; | 11 '''else''' <tex>\mathcal{I}_1' \leftarrow \mathcal{I}_1' \cup {|f(x^{(0)}) - f(x^{(t)})|/2}</tex>; | ||
12 '''Оптимизация''' | 12 '''Оптимизация''' | ||
− | 13 В оффлайне | + | 13 В оффлайне вычисляется оптимальное решение <tex>(\mathcal{O}_0, \mathcal{O}_1)</tex> и множество <tex>\mathcal{M} \leftarrow \{w \in \mathcal{O}_0 | w \notin \mathcal{I}_0'\} \cup \{w \in \mathcal{O}_1 | w \notin \mathcal{I}_1'\}</tex> — множество элементов, которые необходимо переместить. |
14 <tex>z \leftarrow x^{(0)}</tex>; | 14 <tex>z \leftarrow x^{(0)}</tex>; | ||
15 '''while''' <tex>|\mathcal{M}| > 0</tex> '''do''' | 15 '''while''' <tex>|\mathcal{M}| > 0</tex> '''do''' | ||
Строка 180: | Строка 180: | ||
18 <tex>z \leftarrow y</tex>, <tex>\mathcal{M} \leftarrow \mathcal{M} \backslash \{w\}</tex>; | 18 <tex>z \leftarrow y</tex>, <tex>\mathcal{M} \leftarrow \mathcal{M} \backslash \{w\}</tex>; | ||
− | За <tex>(1+o(1))n \log(n)</tex> итераций | + | За <tex>(1+o(1))n \log(n)</tex> итераций определяются веса всех элементов <tex>\mathcal{I}</tex>. Зная веса элементов, в оффлайне перебором находится оптимальное решение задачи, после чего это решение необходимо восстановить с помощью вариативного <tex>1</tex>-арного оператора. Для этого построено множество <tex>\mathcal{M}</tex> — множество элементов, которые необходимо переместить для получения оптимального решения. В итоге, несмещенная ''black-box'' сложность задачи <tex>Partition_{\neq}</tex> относительно заданной ''fitness''-функции равна <tex>O(n \log(n))</tex>. Полное доказательство приведено в работе <ref name="bbox"/>. |
}} | }} | ||
=== Беззнаковая ''fitness''-функция === | === Беззнаковая ''fitness''-функция === | ||
− | + | Можно заметить, что при доказательстве [[#th6|предыдущей теоремы]] происходила минимизация не самой функции <tex>f_{\mathcal{I}}</tex>, а только ее абсолютной величины. Однако та же асимптотика достигается и для беззнаковой ''fitness''-функции. Сложность заключается в том, что в этом случае нельзя просто определить вес перемещенного элемента. Этот факт выражается в более сложной процедуре для определения весов элементов. | |
{{Теорема | {{Теорема | ||
|id=th8 | |id=th8 | ||
|statement=Унарная несмещенная ''black-box'' сложность задачи <tex>Partition_{\neq}</tex> относительно ''fitness''-функции <tex>|f_{\mathcal{I}}|</tex> равна <tex>O(n \log(n))</tex>. Где <tex>n := |\mathcal{I}|</tex>. | |statement=Унарная несмещенная ''black-box'' сложность задачи <tex>Partition_{\neq}</tex> относительно ''fitness''-функции <tex>|f_{\mathcal{I}}|</tex> равна <tex>O(n \log(n))</tex>. Где <tex>n := |\mathcal{I}|</tex>. | ||
− | |proof=Для краткости | + | |proof=Для краткости полагается: |
:*<tex>f := |f_{\mathcal{I}}|</tex>; | :*<tex>f := |f_{\mathcal{I}}|</tex>; | ||
:*<tex>S_0(x) = \Sigma_{w \in \mathcal{I}_0(x)} w</tex>; | :*<tex>S_0(x) = \Sigma_{w \in \mathcal{I}_0(x)} w</tex>; | ||
:*<tex>S_1(x) = \Sigma_{w \in \mathcal{I}_1(x)} w</tex>; | :*<tex>S_1(x) = \Sigma_{w \in \mathcal{I}_1(x)} w</tex>; | ||
− | :*<tex>\mathcal{I}_{max(x)}</tex> — множество элементов, принадлежащих корзине с большим весом. Например <tex>\mathcal{I}_{max(x)} = \mathcal{I}_0</tex> если <tex>S_0(x) \geq S_1(x)</tex>; | + | :*<tex>\mathcal{I}_{max(x)}</tex> — множество элементов, принадлежащих корзине с большим весом. Например, <tex>\mathcal{I}_{max(x)} = \mathcal{I}_0</tex> если <tex>S_0(x) \geq S_1(x)</tex>; |
:*<tex>w_{max} = \max \mathcal{I}</tex> — элемент с максимальным весом. | :*<tex>w_{max} = \max \mathcal{I}</tex> — элемент с максимальным весом. | ||
Общая идея алгоритма состоит в следующем: | Общая идея алгоритма состоит в следующем: | ||
− | :* | + | :*генерируется строка, такая, что все ее элементы находятся в одной корзине (с большой вероятностью это можно сделать за <tex>4n \log(n)</tex> запросов); |
− | :*за <tex>2n \log(n)</tex> шагов с помощью <tex>RLS(\cdot)</tex> | + | :*за <tex>2n \log(n)</tex> шагов с помощью <tex>RLS(\cdot)</tex> опеределяются веса всех элементов (с большой вероятностью); |
− | :*за <tex>3n \log(n)</tex> шагов | + | :*за <tex>3n \log(n)</tex> шагов восстанавливаетчся решение (с большой вероятностью). |
Следующий алгоритм является доказательством теоремы: | Следующий алгоритм является доказательством теоремы: | ||
Строка 218: | Строка 218: | ||
13 <tex>x^{(2,t)} \leftarrow RLS(x)</tex>. Запрос <tex>f(x^{(2,t)})</tex>; | 13 <tex>x^{(2,t)} \leftarrow RLS(x)</tex>. Запрос <tex>f(x^{(2,t)})</tex>; | ||
14 '''Оптимизация''' | 14 '''Оптимизация''' | ||
− | 15 | + | 15 Вычисление в оффлайне перебороим оптимального решения <tex>(\mathcal{O}_0, \mathcal{O}_1)</tex>, такого что <tex>w_{max} \in \mathcal{O}_1</tex>. <tex>\mathcal{M} \leftarrow \mathcal{O}_1</tex>; |
16 '''for''' <tex>t = 1</tex> '''to''' <tex>2n \log(n)</tex> '''do''' | 16 '''for''' <tex>t = 1</tex> '''to''' <tex>2n \log(n)</tex> '''do''' | ||
17 <tex>x^{(3,t)} \leftarrow RLS(x)</tex>. Запрос <tex>f(x^{(3,t)})</tex>; | 17 <tex>x^{(3,t)} \leftarrow RLS(x)</tex>. Запрос <tex>f(x^{(3,t)})</tex>; |
Версия 21:37, 18 июня 2012
Содержание
Введение в Black-box complexity
Целью теории сложности является определение вычислительной трудности алгоритмов. Классическая теория сложности предполагает, что алгоритму полностью известна структура решаемой задачи. В случае эволюционных алгоритмов, алгоритм обладает информацией только о качестве (значении fitness-функции) получаемого им решения, по этой причине утверждения классической теории сложности здесь мало применимы.
Black-box Complexity [1] — попытка построить теорию сложности для эволюционных алгоритмов. Вкратце, black-box сложность алгоритма — количество вычислений fitness-функции, необходимое для получения решения. Такое определение позволяет получить не реалистично низкие оценки black-box сложности, например, полиномиальную сложность для задачи поиска максимальной клики -полной[2].
По этой причине были введены ограничения на исследуемые алгоритмы. Требуется, чтобы для получения новых кандидатов на решение использовались только несмещенные (позиция элемента в битовой строке и его значение не влияют на выбор битов для изменения) вариативные операторы. Также было введено понятие арности —
-арный несмещенный black-box алгоритм использует только те операторы, которые принимают не более чем аргументов. Для некоторых классов задач такой подход к опеределению black-box сложности позволяет получить более реалистичные оценки вычислительной трудности. Операторы с арностью называют мутационными. В настоящей статье показано, что даже для алгоритмов, использующих только мутационные операторы, можно получить не реалистично маленькую оценку black-box сложности.Неограниченная и несмещенная Black-box модели
Обозначения
- — положительные целые числа;
- :
- ;
- ;
- для битовой строки :
- — побитовое дополнение строки ;
- — побитовое исключающее или;
- для любого множества :
- — множество всех подмножеств множества
- для :
- — множество всех перестановок ;
- для и :
- ;
- под понимается натуральный логарифм.
Неограниченная Black-box модель
Рассматривается класс алгоритмов оптимизации, которые получают информацию о решаемой задаче через вычисление fitness-функции возможных решений. Заданная fitness-функция вычисляется ораклом, или дается как black-box. Алгоритм может запросить у оракла значение функции для любого решения, однако больше никакой информации о решении получить не может.
В качестве fitness-функции берется псевдо-булевая функция
.Согласно концепции black-box, алгоритм может включать следующие действия:
- выбор вероятностного распределения над ;
- выбор кандидата cогласно выбранному распределению;
- запрос значения fitness-функции выбранного кандидата у оракла.
Схема неограниченного black-box алгоритма:
Инициализация: выбратьсогласно некоторому вероятностному распределению над . Запросить . Оптимизация: for until условие остановки do Исходя из , выбрать вероятностное распределение над . Выбрать согласно и запросить .
В качестве времени работы black-box алгоритма берется количество запросов к ораклу сделанное до первого запроса с оптимальным решением.
Пусть
— класс псевдо-булевых функций. Сложностью алгоритма над называется максимальное предположительное время работы на функции (в худшем случае). Сложностью относительно класса алгоритмов называется минимальная сложность среди всех над . Неограниченной black-box сложностью называется сложность относительно класса неограниченных black-box алгоритмов.Несмещенная Black-box модель
Класс неограниченных black-box алгоритмов слишком мощный. Например для любого функционального класса
неограниченная black-box сложность равна единице — алгоритм, который просто запрашивает оптимальное решение первым же шагом, удовлетворяет этому условию.Чтобы избежать этих недостатков была введена более строгая модель. В ней алгоритмы могут генерировать новые решения используя только несмещенные вариативные операторы.
Определение: |
| -арным несмещенным распределением называется семейство вероятностных распределений над таких, что для любых выполняются следующие условия:
Первое условие называется -инвариантностью, второе — перестановочной инвариантностью. Оператор, выбранный из -арного несмещенного распределения называется -арным несмещенным вариативным оператором.
Схема
-арного несмещенного black-box алгоритма:Инициализация: выбратьравновероятно из . Запросить . Оптимизация: for until условие остановки do Исходя из , выбрать индексов и -арное несмещенное распределение . Выбрать согласно и запросить .
Лемма: |
Пусть для задачи существует black-box алгоритм , который с константной вероятностью успеха решает за итераций. Тогда black-box сложность не больше . |
Доказательство: |
Доказательство приведено в работе [1]. |
Jump функции
Определение: |
Далее будет показано, что для любого константного можно с высокой вероятностью решить проблему [3] за малое количество black-box обращений к . С помощью этого утверждения можно показать, что для любой константы несмещенная black-box сложность для функции не реалистично мала.
Лемма: |
существует унарная несмещенная функция , использующая запросов к такая, что для всех битовых строк , с вероятностью . |
Доказательство: |
Используется унарный несмещенный вариативный оператор , который равновероятно выбирает строку из -окрестности для аргумента (битовую строку, которая отличается в позициях). Ниже предлагается функция , которая использует для аппроксимации . Процедура выбирает битовых строк в -окрестности . Если , то есть вероятность того, что хотя бы раз в будут заменены только единицы, что приведет к тому, что . Так как больше никакая строка из выборки не будет иметь меньшее значение, то добавление к минимальному ненулевому значению других строк из выборки приведет к нужному результату — функция вернет количество единиц в строке . Случай, когда , аналогичен.Понятно, что функция корректна при всех [4], получается граница на вероятность выбора единиц: , таких, что . Остальные два случая симметричны, поэтому пусть . Очевидно, что результат процедуры корректен тогда и только тогда, когда хотя бы в одной из строк были заменены только единицы. Требуется вычислить вероятность этого события. Итеративно выбираются бит для замены, поэтому после итераций имеется как минимум позиций с единицей из невыбранных позиций. Отсюда, с использованием неравенства Бернулли
Таким образом:
Функция :ifthen output ; ; if then ; else ; output ; |
Теперь, используя предыдущую лемму, можно найти несмещенную black-box сложность для функции при константном .
Теорема: |
Для константы несмещенная black-box сложность :
|
Доказательство: |
Доказательство приведено в работе [1]. |
Функции из предыдущей леммы для работы необходимо знать параметр , но ее можно модифицировать таким образом, что она будет работать без этого знания. Как только функция впервые выберет случайную битовую строку с она определит , затем продолжит работу как было описано выше. Параметр определяется с помощью выбора достаточно большого количества случайных строк в -окрестности от строки с , начиная с и продолжая до тех пор, пока не станет отличным от нуля. Найденная строка будет иметь максимальное значение . Из этого значения и функция может вычислить .
Задача о разбиении
Задача: |
Задача о разбиении[5] ( problem) ставится следующим образом. Дано мультимножество положительных целых чисел (весов). Возможно ли разбить его на два непересекающихся множества таким образом, что ? |
Оптимизационная версия задачи ставит вопрос о минимизации функции .
Задача
является -трудной. Предположительно и не существует полиномиального алгоритма решения этой задачи.Лемма: |
Задача остается -трудной, когда . |
Далее
— подкласс задачи с заданными различными весами.Далее предлагаются две различные fitness-функции и показывается, что в обоих случаях может быть достигнута полиномиальная несмещенная black-box сложность. Показывается, что унарная несмещенная black-box сложность для задачи
равна .Знаковая fitness-функция
Пусть
— множество всех возможных решений для . Знаковую fitness-функция определяется как:- .
Цель заключается в минимизации
.Необходимо ввести нумерацию элементов
: . Для любой битовой строки определены и . Тогда fitness-функция выглядит так:- .
Теорема: |
Унарная несмещенная black-box сложность задачи относительно fitness-функции равна , где . |
Доказательство: |
Для доказательства теоретмы строится алгоритм с применением двух вариативных операторов:
Для краткости полагется .Следующий алгоритм служит доказательством теоремы: 1 Инициализация 2За . Запрос ; 3 ; 4 Определение весов 5 while do 6 ; 7 . Запрос ; 8 ; 9 if then 10 ; 11 else ; 12 Оптимизация 13 В оффлайне вычисляется оптимальное решение и множество — множество элементов, которые необходимо переместить. 14 ; 15 while do 16 . Запрос ; 17 if then 18 , ; итераций определяются веса всех элементов . Зная веса элементов, в оффлайне перебором находится оптимальное решение задачи, после чего это решение необходимо восстановить с помощью вариативного -арного оператора. Для этого построено множество — множество элементов, которые необходимо переместить для получения оптимального решения. В итоге, несмещенная black-box сложность задачи относительно заданной fitness-функции равна . Полное доказательство приведено в работе [1]. |
Беззнаковая fitness-функция
Можно заметить, что при доказательстве предыдущей теоремы происходила минимизация не самой функции , а только ее абсолютной величины. Однако та же асимптотика достигается и для беззнаковой fitness-функции. Сложность заключается в том, что в этом случае нельзя просто определить вес перемещенного элемента. Этот факт выражается в более сложной процедуре для определения весов элементов.
Теорема: |
Унарная несмещенная black-box сложность задачи относительно fitness-функции равна . Где . |
Доказательство: |
Для краткости полагается:
Общая идея алгоритма состоит в следующем:
Следующий алгоритм является доказательством теоремы: 1 Инициализация 2Можно показать, что приведенный алгоритм с большой вероятностью за . Запрос ; 3 Перемещение всех элементов в одну корзину 4 for to do 5 . Запрос ; 6 Пусть ; 7 ; 8 for to do 9 . Запрос ; 10 if then ; 11 Определение весов всех элементов 12 for to do 13 . Запрос ; 14 Оптимизация 15 Вычисление в оффлайне перебороим оптимального решения , такого что . ; 16 for to do 17 . Запрос ; 18 if and then 19 вычислить ; 20 if and then 21 ; 22 for to do 23 . Запрос ; запросов находит оптимальное решение. Полное доказательство приведено в работе [1]. |