Black-box Complexity. Примеры нереалистичных оценок Black-box Complexity — различия между версиями
Строка 1: | Строка 1: | ||
{{В разработке}} | {{В разработке}} | ||
== Введение в Black-box complexity == | == Введение в Black-box complexity == | ||
− | Целью теории сложности является определение вычислительной трудности алгоритмов. Классическая теория сложности предполагает, что алгоритму полностью известна структура решаемой задачи. В случае эволюционных алгоритмов, алгоритм обладает информацией только о качестве (значении ''fitness'' функции) получаемого им решения. По этой причине утверждения классической теории сложности мало применимы для эволюционных алгоритмов. | + | Целью теории сложности является определение вычислительной трудности алгоритмов. Классическая теория сложности предполагает, что алгоритму полностью известна структура решаемой задачи. В случае эволюционных алгоритмов, алгоритм обладает информацией только о качестве (значении ''fitness''-функции) получаемого им решения. По этой причине утверждения классической теории сложности мало применимы для эволюционных алгоритмов. |
− | '''Black-box Complexity''' — попытка построить теорию сложности для эволюционных алгоритмов. Вкратце, ''black-box complexity'' алгоритма — количество вычислений ''fitness'' функции, необходимое для получения решения. Такое определение позволяет получить не реалистично низкие оценки ''black-box complexity'', например, полиномиальную сложность для <tex>\mathrm{NP}</tex>-полной задачи поиска максимальной клики. | + | '''Black-box Complexity''' — попытка построить теорию сложности для эволюционных алгоритмов. Вкратце, ''black-box complexity'' алгоритма — количество вычислений ''fitness''-функции, необходимое для получения решения. Такое определение позволяет получить не реалистично низкие оценки ''black-box complexity'', например, полиномиальную сложность для <tex>\mathrm{NP}</tex>-полной задачи поиска максимальной клики. |
По этой причине были введены ограничения на исследуемые алгоритмы. Требуется, чтобы для получения новых кандидатов на решение использовались только '''несмещенные''' (позиция элемента в битовой строке и его значение не влияют на выбор битов для изменения) '''вариативные операторы'''. Так же введено понятие '''арности''' — <tex>k</tex>-арный несмещенный ''black-box'' алгоритм использует только те операторы, которые принимают не более чем <tex>k</tex> аргументов. Для некоторых классов задач такой подход к опеределению ''black-box complexity'' позволяет получить более реалистичные оценки сложности. Операторы с арностью <tex>1</tex> называют '''мутационными'''. В данной статье показано, что даже для алгоритмов, использующих только мутационные операторы можно получить не реалистично маленькую оценку ''black-box complexity''. | По этой причине были введены ограничения на исследуемые алгоритмы. Требуется, чтобы для получения новых кандидатов на решение использовались только '''несмещенные''' (позиция элемента в битовой строке и его значение не влияют на выбор битов для изменения) '''вариативные операторы'''. Так же введено понятие '''арности''' — <tex>k</tex>-арный несмещенный ''black-box'' алгоритм использует только те операторы, которые принимают не более чем <tex>k</tex> аргументов. Для некоторых классов задач такой подход к опеределению ''black-box complexity'' позволяет получить более реалистичные оценки сложности. Операторы с арностью <tex>1</tex> называют '''мутационными'''. В данной статье показано, что даже для алгоритмов, использующих только мутационные операторы можно получить не реалистично маленькую оценку ''black-box complexity''. | ||
Строка 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>. |
Согласно концепции ''black-box'', алгоритм может включать следующие действия: | Согласно концепции ''black-box'', алгоритм может включать следующие действия: | ||
*выбор вероятностного распределения над <tex>\{0,1\}^n</tex>; | *выбор вероятностного распределения над <tex>\{0,1\}^n</tex>; | ||
*выбор кандидата <tex>x \in \{0,1\}^n</tex> cогласно выбранному распределению; | *выбор кандидата <tex>x \in \{0,1\}^n</tex> cогласно выбранному распределению; | ||
− | *запрос значения ''fitness'' функции выбранного кандидата у ''оракла''. | + | *запрос значения ''fitness''-функции выбранного кандидата у ''оракла''. |
Схема неограниченного ''black-box'' алгоритма: | Схема неограниченного ''black-box'' алгоритма: | ||
Строка 122: | Строка 122: | ||
== Задача о разбиении == | == Задача о разбиении == | ||
+ | {{Задача | ||
+ | |definition=Задача о разбиении (<tex>Partition</tex> problem) ставится следующим образом. Дано мультимножество <tex>\mathcal{I}</tex> положительных целых чисел (весов). Возможно ли разбить его на два непересекающихся множества <tex>\mathcal{I}=\mathcal{I}_0 \cup \mathcal{I}_1</tex> таким образом, что <tex>\Sigma_{w \in \mathcal{I}_0} w = \Sigma_{w \in \mathcal{I}_1} w</tex>? | ||
+ | }} | ||
+ | |||
+ | Оптимизационная версия задачи ставит вопрос о минимизации функции <tex>|\Sigma_{w \in \mathcal{I}_0} w - \Sigma_{w \in \mathcal{I}_1} w|</tex>. | ||
+ | |||
+ | Задача <tex>Partition</tex> является <tex>\mathrm{NP}</tex>-трудной. Предположительно <tex>\mathrm{P} \neq \mathrm{NP}</tex> и не существует полиномиального алгоритма решения этой задачи. | ||
+ | |||
+ | {{Лемма | ||
+ | |id=lemma5 | ||
+ | |statement=Задача <tex>Partition</tex> остается <tex>\mathrm{NP}</tex>-трудной, когда <tex>\forall v, w \in \mathcal{I}: v \neq w</tex>. | ||
+ | |proof= | ||
+ | }} | ||
+ | |||
+ | Далее <tex>Partition_{\neq}</tex> — подкласс задачи <tex>Partition</tex> с взятыми различными весами. | ||
+ | |||
+ | Предлагаются две различные ''fitness''-функции и показывается, что в обоих случаях может быть достигнута полиномиальная несмещенная ''black-box'' сложность. Показывается, что унарная несмещенная ''black-box'' сложность для задачи <tex>Partition_{\neq}</tex> равна <tex>O(n \log(n))</tex>. | ||
+ | |||
+ | === Знаковая ''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}}^{*}|</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>. | ||
+ | |||
+ | {{Теорема | ||
+ | |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>. | ||
+ | |proof=Для доказательства будет построен алгоритм с применением двух вариативных операторов: | ||
+ | :*<tex>uniform()</tex> — выбирает случайную битовую строку <tex>x \in \{0,1\}^n</tex>; | ||
+ | :*<tex>RLS(\cdot)</tex> — случайно меняет элемент в одной из позиций входной строки. | ||
+ | |||
+ | Для краткости положим <tex>f := f_{\mathcal{I}}</tex>. | ||
+ | |||
+ | Следующий алгоритм служит доказательством теоремы: | ||
+ | |||
+ | 1 '''Инициализация''' | ||
+ | 2 <tex>x^{(0)} \leftarrow uniform()</tex>. Запрос <tex>f(x^{(0)})</tex>; | ||
+ | 3 <tex>t \leftarrow 0, \mathcal{I}_0', \mathcal{I}_1', \mathcal{W}_0 = \varnothing</tex>; | ||
+ | 4 '''Определение весов''' | ||
+ | 5 '''while''' <tex>|\mathcal{W}_t| < n</tex> '''do''' | ||
+ | 6 <tex>t \leftarrow t + 1</tex>; | ||
+ | 7 <tex>x^{(t)} \leftarrow RLS(x^{(0)})</tex>. Запрос <tex>f(x^{(t)})</tex>; | ||
+ | 8 <tex>\mathcal{W}_t \leftarrow \mathcal{W}_{t-1} \cup \{|f(x^{(0)}) - f(x^{(t)})|/2\}</tex>; | ||
+ | 9 '''if''' <tex>f(x^{(0)}) > f(x^{(t)})</tex> '''then''' | ||
+ | 10 <tex>\mathcal{I}_0' \leftarrow \mathcal{I}_0' \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 '''Оптимизация''' | ||
+ | 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>; | ||
+ | 15 '''while''' <tex>|\mathcal{M}| > 0</tex> '''do''' | ||
+ | 16 <tex>y \leftarrow RLS(z)</tex>. Запрос <tex>f(y)</tex>; | ||
+ | 17 '''if''' <tex>w := |f(y)-f(z)|/2 \in \mathcal{M}</tex> '''then''' | ||
+ | 18 <tex>z \leftarrow y</tex>, <tex>\mathcal{M} \leftarrow \mathcal{M} \backslash \{w\}</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>. | ||
+ | |||
+ | }} | ||
+ | |||
+ | === Беззнаковая ''fitness''-функция === |
Версия 00:17, 18 июня 2012
Содержание
Введение в Black-box complexity
Целью теории сложности является определение вычислительной трудности алгоритмов. Классическая теория сложности предполагает, что алгоритму полностью известна структура решаемой задачи. В случае эволюционных алгоритмов, алгоритм обладает информацией только о качестве (значении fitness-функции) получаемого им решения. По этой причине утверждения классической теории сложности мало применимы для эволюционных алгоритмов.
Black-box Complexity — попытка построить теорию сложности для эволюционных алгоритмов. Вкратце, black-box complexity алгоритма — количество вычислений fitness-функции, необходимое для получения решения. Такое определение позволяет получить не реалистично низкие оценки black-box complexity, например, полиномиальную сложность для
-полной задачи поиска максимальной клики.По этой причине были введены ограничения на исследуемые алгоритмы. Требуется, чтобы для получения новых кандидатов на решение использовались только несмещенные (позиция элемента в битовой строке и его значение не влияют на выбор битов для изменения) вариативные операторы. Так же введено понятие арности —
-арный несмещенный black-box алгоритм использует только те операторы, которые принимают не более чем аргументов. Для некоторых классов задач такой подход к опеределению black-box complexity позволяет получить более реалистичные оценки сложности. Операторы с арностью называют мутационными. В данной статье показано, что даже для алгоритмов, использующих только мутационные операторы можно получить не реалистично маленькую оценку black-box complexity.Неограниченная и несмещенная 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 сложность для функции удивительно мала.
Лемма: |
существует унарная несмещенная процедура , использующая запросов к такая, что для всех битовых строк , с вероятностью . |
Доказательство: |
Используется унарный несмещенный вариативный оператор , который равновероятно выбирает строку из -окрестности для аргумента (битовую строку, которая отличается в позициях). Затем будет использована процедура , которая использует для аппроксимации как показано ниже. Процедура выбирает битовых строк в -окрестности . Если , то правдоподобно, что хотя бы раз только единицы из будут заменены, что приведет к тому, что . Так как больше никакая строка из выборки не будет иметь более низкое значение, то добавление к минимальному ненулевому значению других строк из выборки приведет к нужному результату. Случай, когда , аналогичен.Понятно, что процедура верна при всех , таких, что . Остальные два случая симметричны, поэтому пусть . Очевидно, что результат процедуры корректен тогда и только тогда, когда хотя бы в одной из строк были заменены только единицы. Вычислим вероятность этого события. Мы выбираем бит для замены итеративно, поэтому после итераций имеется как минимум позиций с единицей из позиций, которые можно выбирать. Это приводит к границе на вероятность выбора единиц:используя неравенство Бернулли. Таким образом имеем:
Процедура :ifthen 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-функции равна . |