Black-box Complexity. Примеры нереалистичных оценок Black-box Complexity — различия между версиями
| Строка 3: | Строка 3: | ||
Целью теории сложности является определение вычислительной трудности алгоритмов. Классическая теория сложности предполагает, что алгоритму полностью известна структура решаемой задачи. В случае эволюционных алгоритмов, алгоритм обладает информацией только о качестве (значении ''fitness''-функции) получаемого им решения. По этой причине утверждения классической теории сложности мало применимы для эволюционных алгоритмов.  | Целью теории сложности является определение вычислительной трудности алгоритмов. Классическая теория сложности предполагает, что алгоритму полностью известна структура решаемой задачи. В случае эволюционных алгоритмов, алгоритм обладает информацией только о качестве (значении ''fitness''-функции) получаемого им решения. По этой причине утверждения классической теории сложности мало применимы для эволюционных алгоритмов.  | ||
| − | '''Black-box Complexity''' — попытка построить теорию сложности для эволюционных алгоритмов. Вкратце, ''black-box   | + | '''Black-box Complexity''' — попытка построить теорию сложности для эволюционных алгоритмов. Вкратце, ''black-box'' сложность алгоритма — количество вычислений ''fitness''-функции, необходимое для получения решения. Такое определение позволяет получить не реалистично низкие оценки ''black-box'' сложности, например, полиномиальную сложность для <tex>\mathrm{NP}</tex>-полной задачи поиска максимальной клики.  | 
| − | По этой причине были введены ограничения на исследуемые алгоритмы. Требуется, чтобы для получения новых кандидатов на решение использовались только '''несмещенные''' (позиция элемента в битовой строке и его значение не влияют на выбор битов для изменения) '''вариативные операторы'''. Так же введено понятие '''арности''' — <tex>k</tex>-арный несмещенный ''black-box'' алгоритм использует только те операторы, которые принимают не более чем <tex>k</tex> аргументов. Для некоторых классов задач такой подход к опеределению ''black-box   | + | По этой причине были введены ограничения на исследуемые алгоритмы. Требуется, чтобы для получения новых кандидатов на решение использовались только '''несмещенные''' (позиция элемента в битовой строке и его значение не влияют на выбор битов для изменения) '''вариативные операторы'''. Так же введено понятие '''арности''' — <tex>k</tex>-арный несмещенный ''black-box'' алгоритм использует только те операторы, которые принимают не более чем <tex>k</tex> аргументов. Для некоторых классов задач такой подход к опеределению ''black-box'' сложности позволяет получить более реалистичные оценки сложности. Операторы с арностью <tex>1</tex> называют '''мутационными'''. В данной статье показано, что даже для алгоритмов, использующих только мутационные операторы можно получить не реалистично маленькую оценку ''black-box'' сложности.  | 
== Неограниченная и несмещенная Black-box модели ==  | == Неограниченная и несмещенная Black-box модели ==  | ||
=== Обозначения ===  | === Обозначения ===  | ||
*<tex>\mathbb{N}</tex> — положительные целые числа;  | *<tex>\mathbb{N}</tex> — положительные целые числа;  | ||
| − | *<tex>\forall k \in \mathbb{N}</tex>  | + | *<tex>\forall k \in \mathbb{N}</tex>:  | 
:<tex>[k] := \{1, \ldots , k\}</tex>;  | :<tex>[k] := \{1, \ldots , k\}</tex>;  | ||
*<tex>[0..k] := [k] \cup \{0\}</tex>;  | *<tex>[0..k] := [k] \cup \{0\}</tex>;  | ||
| − | *для битовой строки <tex>x = x_1 \cdots x_n \in \{0, 1\}^n</tex>  | + | *для битовой строки <tex>x = x_1 \cdots x_n \in \{0, 1\}^n</tex>:  | 
:<tex>\overline{x}</tex> — побитовое дополнение строки <tex>x</tex>;  | :<tex>\overline{x}</tex> — побитовое дополнение строки <tex>x</tex>;  | ||
*<tex>\bigoplus</tex> — побитовое исключающее или;  | *<tex>\bigoplus</tex> — побитовое исключающее или;  | ||
| − | *для любого множества <tex>S</tex>  | + | *для любого множества <tex>S</tex>:  | 
:<tex>2^S</tex> — множество всех подмножеств множества <tex>S</tex>  | :<tex>2^S</tex> — множество всех подмножеств множества <tex>S</tex>  | ||
| − | *для <tex>n \in \mathbb{N}</tex>  | + | *для <tex>n \in \mathbb{N}</tex>:  | 
:<tex>S_n</tex> — множество всех перестановок <tex>[n]</tex>;  | :<tex>S_n</tex> — множество всех перестановок <tex>[n]</tex>;  | ||
| − | *для <tex>\sigma \in S_n</tex> и <tex>x \in \{0,1\}^n</tex>  | + | *для <tex>\sigma \in S_n</tex> и <tex>x \in \{0,1\}^n</tex>:  | 
:<tex>\sigma(x) := x_{\sigma(1)} \cdots x_{\sigma(n)}</tex>;  | :<tex>\sigma(x) := x_{\sigma(1)} \cdots x_{\sigma(n)}</tex>;  | ||
*под <tex>log</tex> понимается натуральный логарифм.  | *под <tex>log</tex> понимается натуральный логарифм.  | ||
| Строка 186: | Строка 186: | ||
=== Беззнаковая ''fitness''-функция ===  | === Беззнаковая ''fitness''-функция ===  | ||
| + | Кому-то может не понравиться, что при доказательстве [[#th6|предыдущей теоремы]] происходила минимизация не самой функции <tex>f_{\mathcal{I}}</tex>, а только ее абсолютной величины. Однако можно достичь той же асимптотики и для беззнаковой ''fitness''-функции. Сложность заключается в том, что теперь нельзя просто определить вес перемещенного элемента. Этот факт выражается в более сложной процедуре для определения весов элементов.  | ||
| + | |||
| + | {{Теорема  | ||
| + | |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>.  | ||
| + | |proof=Для краткости положим:  | ||
| + | :*<tex>f := |f_{\mathcal{I}}|</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>\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>4n \log(n)</tex> запросов);  | ||
| + | :*за <tex>2n \log(n)</tex> шагов с помощью <tex>RLS(\cdot)</tex> опеределить веса всех элементов (с большой вероятностью);  | ||
| + | :*за <tex>3n \log(n)</tex> шагов восстановить решение (с большой вероятностью).  | ||
| + | |||
| + | Следующий алгоритм является доказательством теоремы:  | ||
| + | |||
| + |   1 '''Инициализация'''  | ||
| + |   2 <tex>x^{(1,0)} \leftarrow uniform()</tex>. Запрос <tex>f(x^{(1,0)})</tex>;  | ||
| + |   3 '''Перемещение всех элементов в одну корзину'''  | ||
| + |   4 '''for''' <tex>t = 1</tex> '''to''' <tex>2n \log(n)</tex> '''do'''  | ||
| + |   5   <tex>x^{(1,t)} \leftarrow RLS(x^{(1,0)})</tex>. Запрос <tex>f(x^{(1,t)})</tex>;  | ||
| + |   6 Пусть <tex>l \in \arg \max_{0 \leq t \leq 2n \log(n)} f(x^{(1,t)})</tex>;  | ||
| + |   7 <tex>x \leftarrow x^{(1,l)}</tex>;  | ||
| + |   8 '''for''' <tex>t = 2n \log(n) + 1</tex> '''to''' <tex>4n \log(n)</tex> '''do'''  | ||
| + |   9   <tex>y \leftarrow RLS(x)</tex>. Запрос <tex>f(y)</tex>;  | ||
| + |  10   '''if''' <tex>f(y) > f(x)</tex> '''then''' <tex>x \leftarrow y</tex>;  | ||
| + |  11 '''Определение весов всех элементов'''  | ||
| + |  12 '''for''' <tex>t = 1</tex> '''to''' <tex>2n \log(n)</tex> '''do'''  | ||
| + |  13   <tex>x^{(2,t)} \leftarrow RLS(x)</tex>. Запрос <tex>f(x^{(2,t)})</tex>;  | ||
| + |  14 '''Оптимизация'''  | ||
| + |  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'''  | ||
| + |  17   <tex>x^{(3,t)} \leftarrow RLS(x)</tex>. Запрос <tex>f(x^{(3,t)})</tex>;  | ||
| + |  18   '''if''' <tex>f(x) > 2w_{max}</tex> '''and''' <tex>f(x^{(3,t)}) < f(x)</tex> '''then'''  | ||
| + |  19     вычислить <tex>w := (f(x) - f(x^{(3,t)})) / 2</tex>;  | ||
| + |  20     '''if''' <tex>w \neq w_{max}</tex> '''and''' <tex>w \in \mathcal{M}</tex> '''then'''  | ||
| + |  21       <tex>x \leftarrow x^{(3,t)}; \mathcal{M} \leftarrow \mathcal{M} \backslash w</tex>;  | ||
| + |  22 '''for''' <tex>t = 1</tex> '''to''' <tex>n \log(n)</tex> '''do'''  | ||
| + |  23   <tex>x^{(4,t)} \leftarrow RLS(x)</tex>. Запрос <tex>f(x^{(4,t)})</tex>;  | ||
| + | |||
| + | Можно показать, что приведенный алгоритм с большой вероятностью за <tex>O(n \log(n))</tex> запросов находит оптимальное решение.  | ||
| + | |||
| + | }}  | ||
| + | |||
| + | == Источники ==  | ||
| + | # [http://rain.ifmo.ru/~tsarev/teaching/ea-2012/seminars/p2043.pdf Doerr B., Kotzing T., Winzen C. Too Fast Unbiased Black-Box Algorithms]  | ||
Версия 01:21, 18 июня 2012
Содержание
Введение в Black-box complexity
Целью теории сложности является определение вычислительной трудности алгоритмов. Классическая теория сложности предполагает, что алгоритму полностью известна структура решаемой задачи. В случае эволюционных алгоритмов, алгоритм обладает информацией только о качестве (значении fitness-функции) получаемого им решения. По этой причине утверждения классической теории сложности мало применимы для эволюционных алгоритмов.
Black-box Complexity — попытка построить теорию сложности для эволюционных алгоритмов. Вкратце, black-box сложность алгоритма — количество вычислений fitness-функции, необходимое для получения решения. Такое определение позволяет получить не реалистично низкие оценки black-box сложности, например, полиномиальную сложность для -полной задачи поиска максимальной клики.
По этой причине были введены ограничения на исследуемые алгоритмы. Требуется, чтобы для получения новых кандидатов на решение использовались только несмещенные (позиция элемента в битовой строке и его значение не влияют на выбор битов для изменения) вариативные операторы. Так же введено понятие арности — -арный несмещенный 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 сложность  не больше .  | 
Jump функции
| Определение: | 
|  функция  определяется как
 | 
Будет показано, что для любого константного  можно с высокой вероятностью решить проблему  за малое количество black-box обращений к . С помощью этого можно показать, что для любого константного  несмещенная black-box сложность для функции  удивительно мала.
| Лемма: | 
 существует унарная несмещенная процедура , использующая  запросов к  такая, что для всех битовых строк ,  с вероятностью .  | 
| Доказательство: | 
| 
 Используется унарный несмещенный вариативный оператор , который равновероятно выбирает строку из -окрестности для аргумента (битовую строку, которая отличается в позициях). Затем будет использована процедура , которая использует для аппроксимации как показано ниже. Процедура выбирает битовых строк в -окрестности . Если , то правдоподобно, что хотя бы раз только единицы из будут заменены, что приведет к тому, что . Так как больше никакая строка из выборки не будет иметь более низкое значение, то добавление к минимальному ненулевому значению других строк из выборки приведет к нужному результату. Случай, когда , аналогичен. Понятно, что процедура верна при всех , таких, что . Остальные два случая симметричны, поэтому пусть . Очевидно, что результат процедуры корректен тогда и только тогда, когда хотя бы в одной из строк были заменены только единицы. Вычислим вероятность этого события. Мы выбираем бит для замены итеративно, поэтому после итераций имеется как минимум позиций с единицей из позиций, которые можно выбирать. Это приводит к границе на вероятность выбора единиц: используя неравенство Бернулли. Таким образом имеем: 
 Процедура : if then output ; ; if then ; else ; output ;  | 
Теперь, используя предыдущую лемму, можно найти несмещенную black-box сложность для функции при константном .
| Теорема: | 
Для константы  несмещенная black-box сложность :
 
  | 
Процедуре из леммы для работы необходимо знание параметра . Процедуру можно модифицировать таким образом, что она будет работать без этого знания. Как только процедура впервые выберет случайную битовую строку с она определит , затем продолжит работу как было описано раньше. Параметр определяется с помощью выбора достаточно большого количества случайных строк в -окрестности от строки с , начиная с и продолжая до тех пор, пока не станет отличным от нуля. Эта строка будет иметь максимальное значение . Из этого значения и процедура может вычислить .
Задача о разбиении
| Задача: | 
| Задача о разбиении ( 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-функции равна .  | 
Беззнаковая 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 . Запрос ;Можно показать, что приведенный алгоритм с большой вероятностью за запросов находит оптимальное решение.  |