Идентификация свойств псевдобулевых функций
Антамошкин А.Н. (пи suvpt@wave.krs.ru), Масич И.С.
НИИ систем управления, волновых процессов и технологий
Введение
Поисковые методы оптимизации, т.е. методы оптимизации, не требующие явного задания целевых функций и ограничений (в виде алгебраических выражений), развиваются в двух основных направлениях. Первое - разработка и совершенствование так называемых адаптивных поисковых методов, включающих в себя эволюционные и генетические алгоритмы, поиск табу, алгоритм имитации отжига и т.д. Эти алгоритмы не учитывают свойств входящих в постановку задачи функций и поэтому пригодны для решения произвольных задач оптимизации. Второе направление - построение и исследование поисковых алгоритмов для конкретных классов задач. Такие алгоритмы должны в наибольшей степени учитывать свойства выделенных классов задач, это могут быть как точные, так и приближенные алгоритмы, как регулярные, так и стохастические.
Так, в [1] была проведена классификация псевдобулевых функций и построены точные алгоритмы решения произвольных классов задач безусловной псевдобулевой оптимизации, в том числе и неулучшаемые. В [2] разработан и обоснован существенно не улучшаемый алгоритм условной псевдобулевой оптимизации. Построены полиномиальные приближенные алгоритмы решения различных классов задач условной псевдобулевой оптимизации [3].
При решении практических задач с алгоритмически заданными функциями в отдельных частных случаях свойства функций можно идентифицировать исходя из некоторых априорных сведений. Но во многих встречающихся на практике задачах принадлежность функции к какому-либо классу вовсе не очевидна, поэтому необходимо проводить идентификацию свойств функций посредством осуществления пробных шагов. Только после этого возможно применение соответствующего поискового алгоритма.
1 Классификация псевдобулевых функций
Рассмотрим следующую задачу условной псевдобулевой оптимизации С(X) ^ max
< Х"Б" _ (1)
Л] (X) < И], ] = 1, т,
где С (X) и Лj (X) - псевдобулевые функции, заданные алгоритмически (все либо часть из них).
Множество всех точек пространства булевых переменных ВП можно представить в виде последовательности уровней Ок (X) (множество точек, отличающихся от точки X значением к координат), к = 0, п, какой-либо точки Xe В'П . Уровень Ок (X) состоит из Скп точек. Бо-
лее подробное описание свойств пространства булевых переменных можно найти в работе [1].
Из множества псевдобулевых функций выделяют, в частности, классы унимодальных и монотонных функций.
Унимодальная на В2П функция - псевдобулевая функция / имеющая только один локальный минимум - точку X* е В2П , для которой /(X *) < /(X), УХ е 01 (X *).
Унимодальная функция / называется монотонной на ВП, если VXk е 0к (X*), к = 1, п : /(Xk-1) < /(Xk), VXkе 0к_1(X*) о 01(Xk), и строго монотонной, если это условие выполняется со знаком строгого неравенства.
Унимодальная псевдобулевая функция / называется (строго) структурно монотонной, если для VX е 01 (X *), УУ е 0т (X *) , I < т , выполняется / (X) < / (У) ( / (X) < / (У) ).
Всевозможным сочетанием классов целевых функций и классов функций ограничений получаются соответствующие классы задач условной псевдобулевой оптимизации. Свойства целевых функций и функций ограничений, принадлежащих перечисленным выше классам, исследованы в [2].
2 Применение регулярного алгоритма оптимизации для идентификации свойств
Один из подходов к идентификации свойств псевдобулевых функций задачи (1) основан на применении регулярного алгоритма оптимизации строго монотонных псевдобулевых функций.
Этот алгоритм заключается в следующем [1]. Произвольным образом выбирается точка Xе ВП, вычисляется значение функции в выбранной точке и во всех соседних к ней точках, т.е. отличающихся от X значением одной координаты. На основании полученных данных однозначно определяется точка оптимума. Таким образом, алгоритм требует вычисления значений функции (трудоемкость) в п+1 точке и является не улучшаемым по трудоемкости. Этот алгоритм является точным при оптимизации строго монотонных псевдобулевых функций, но результат его применения к немонотонной функции может быть сколь угодно плохим. В практических задачах для удостоверения, является ли найденная точка действительно точкой оптимума, требуется "просмотреть" еще п+1 точку. Различные модификации этого алгоритма описаны в [4].
Подход заключается в многократном применении регулярного алгоритма из различных стартовых точек. Если во всех случаях алгоритм выдаст одну и ту же точку, являющуюся точкой оптимума, то более вероятно, что проверяемая функция является унимодальной и строго монотонной. Очевидно, при увеличении числа прогона алгоритма из различных стартовых точек вероятность этого растет. Если алгоритм выдаст две разные точки, то функция не является унимодальной строго монотонной.
К сожалению, данный подход позволяет лишь проверить гипотезу о том, что функция является строго монотонной. Точный алгоритм оптимизации монотонных псевдобулевых функций имеет экспоненциальную оценку трудоемкости сверху [1], поэтому проверка гипотезы о монотонности функции (имеющей множества постоянства) подобным образом является чрезмерно трудоемкой процедурой.
3 Идентификация свойств посредством квадратичной аппроксимации
В [5] показано, что любая псевдобулевая функция Д(х1,..., хп) может быть единственным образом представлена как мультилинейный полином вида
т _
/ (xl,•••, хп) = с+Еск П х, (2)
к=1 1^Ак
где с0,с1,...,ст - вещественные коэффициенты, А1,А2,...,Ат - непустые подмножества множества N = {1,2,...,п} .
Таким образом, любую псевдобулевую функцию теоретически можно записать в виде алгебраического выражения. Так, например, произвольную линейную псевдобулевую функцию п переменных можно записать в явном виде
п
/ (xl,•••, хп ) = с0 + Е Сгхг
1 =1
(т.е. определить коэффициенты с^, 1 = 0,п), вычислив ее значения в п+1 точке пространства
вп. Однако при нелинейности (ск 0 при |Ак| > 1 в выражении (2)) запись функции в явном
виде может потребовать вычисления функции в точках, количество которых экспоненциально растет с ростом размерности п.
Предлагается следующий подход для идентификации свойств псевдобулевых функций. Неявно заданная функция ДХ) аппроксимируется функцией g(X), заданной алгебраическим выражением. Затем по виду функции g(X) определяется ее принадлежность к одному из классов.
Линейная аппроксимация даст не больший результат, чем подход, описанный в предыдущем разделе, т.к. линейный полином с ненулевыми коэффициентами является всегда унимодальной строго монотонной функцией. Возможности линейной аппроксимации для оптимизации ограничены точным нахождением оптимума строго монотонной псевдобулевой функции. Легко показать, что точка оптимума линейной функции g(X), аппроксимирующей строго монотонную функцию ДХ), совпадает с точкой оптимума функции ДX).
Рассмотрим квадратичную псевдобулевую функцию
п п-1 п
g(Х) = С0 + Е С'Х + Е ЕС11ХгХ1 • (3)
1=1 1=1 ]=1+1
Функция (3) в общем случае является полимодальной псевдобулевой функцией, т.е. может иметь несколько локальных максимумов (минимумов). Анализ значений коэффициентов квадратичной функции позволяет установить ее принадлежность как к выделенным выше классам функций, так и к более узким классам субмодулярных и супермодулярных функций, которым некоторые авторы уделяют особое внимание (например, в [5]).
3.1 Способы квадратичной аппроксимации псевдобулевых функций
Один из простейших в вычислительном отношении способов квадратичной аппроксимации алгоритмически заданной псевдобулевой функции / (X) функцией (3) заключается в следующем.
1. Вычисляется значение /(X) в точке X0 = (0,...,0), с0 = /(X0).
2. Вычисляется значение /(X) в точках Xi е 01(X0) (полученных из X0 путем присвоения координате xi значения 1), ci = /(Xi) - с0, i = 1, п.
3. Вычисляется значение /(X) в точках Xij е 02(X0) (полученных из X0 путем присвоения координатам xi и х. значения 1), с.. = /(X..) - /(Xi) - /(Xj) - с0,
i = 1, п -1, ] = i +1, п .
Таким образом, для данной операции необходимо вычислить значение /(X) в 1 + п + С2 = п(п +1)/2 +1 точке В2п.
Недостаток такого подхода очевиден. Аппроксимация проводится только на малой части В2п, по близко расположенным друг к другу точкам, вследствие чего значение функции g(X) в точках Xk е 0к(X0), где к близко к п, может значительно отличаться от /(Xk) по двум причинам: либо в силу нарастания погрешности, либо из-за того, что / (X) неадекватно описывается квадратичной функцией.
Поэтому предлагается второй способ. Случайным образом выбираются п(п +1)/2 +1
различных точек В2,, в которых вычисляется значение /(X) . Затем составляется система линейных уравнений, из которой находятся значения коэффициентов квадратичной функции. Произвольной точке X е В2п соответствует уравнение
п п-1 п
с, ^
+ 1 с + ££су = / (X).
0
i=\ i=1 ] =г'+1
X: =1 х; =1 х; =1
3.2 Определение свойств квадратичной функции
В [5] были введены понятия 1-ой производной
Л *(X) = 1т(X) = ?(X\,..., хг-1,1, Х+1х„) - /(X\,..., х,.х+1х„)
ох,
псевдобулевой функции /(X) и ¡-го остатка 0 г (X) = / ( X) - х, Л г (X).
В соответствие с этим псевдобулевая функция является монотонной, если для любого
п либо Лг (X) < 0 для всех X е В2п
i = 1, п выполняется: Лi (X) > 0 для всех X е В2! либо Лi (X) < 0 для всех X е В2!.
Обозначим
А1"ах = max А г (X),
X
А™ = min Аi (X).
' X
Псевдобулевая функция является монотонной, если Amm • А1"ах > 0 (4)
для любого i = 1, n, и строго монотонной, если это условие выполняется со знаком строгого неравенства.
Для квадратичной функции (3) имеем
n С, i < J,
Аi(X) = сг + £cjx] , где cj = \ 1 . .
1=1 {Clг, i > J-1 *i
Значения А1"ax и А1"1" определяем следующим образом
. . (1, C'J > 0 _ .
А11ах = Аг (X.max), где xJmax = < 0, J = 1, n, J * i, x.max - произвольное;
■ ■■ ■■ (1, Cj < 0 _ ..
А™п = Аг (X.min ), где xJmin = 10 j > 0, J = 1, n, j * i, x.min - произвольное. Иначе
А!^ = C + ¿с' , А™ = c + ¿Cj . (5)
J=1, J*i J=1, J*i
Cj >0 С <0
Для проверки свойства монотонности (строгой монотонности) квадратичной функции (3) необходимо вычислить А^ и А1™ для i = 1, n по выражениям (5) и подставить полученные значения в условие (4). Если это условие выполняется для всех i = 1, n, то функция является монотонной (строго монотонной) с точкой минимума Xmin, определяемой следующим образом
{1, Атп < 0, x Г = \ 1 1 {0, А7Х > 0.
Предположим, что условие (4) нарушилось для коэффициентов il,i2,...,i . В таком случае 2p точек, получаемых варьированием коэффициентов i1,i2,...,i , являются подозритель-
ными на минимум. Для определения количества локальных минимумов необходимо сравнить эти точки между собой.
Выводы
Подход к идентификации свойств путем проверки их выполнения при многократном применении регулярных поисковых алгоритмов практически приемлем лишь для проверки свойства строгой монотонности унимодальных псевдобулевых функций. Для более детальной идентификации свойств построена процедура, основанная на аппроксимации алгоритмически заданных функций алгебраическими полиномами. Свойства полиномов определяются исходя из значений их коэффициентов. Полинома второй степени достаточно для описания рассматриваемых свойств. После того, как все функции идентифицированы, задачу можно решать соответствующим алгоритмом [1-3]. С помощью квадратичной аппроксимации возможно также определение других свойств псевдобулевых функций, таких как субмодулярность, супермодулярность, полярность, унимодулярность и т. д., не рассмотренных в этой работе.
Литература
1. Антамошкин А.Н. Регулярная оптимизация псевдобулевых функций. - Красноярск: Изд-во Красноярского ун-та, 1989, 284 с.
2. Антамошкин А.Н., Масич И.С. Не улучшаемый алгоритм условной оптимизации монотонных псевдобулевых функций. Электронный журнал "Исследовано в России", 64, стр. 703-708, 2004 г. http://zhurnal.ape.relarn.ru/articles/2004/064.pdf
3. Антамошкин А.Н., Масич И.С. Гриди алгоритмы и локальный поиск для условной псевдобулевой оптимизации. Электронный журнал "Исследовано в России", 177, стр. 21432149, 2003 г. http://zhurnal.ape.relarn.ru/articles/2003/177.pdf
4. Семенкин Е.С., Семенкина О.Э., Коробейников С.П. Оптимизация технических систем. -Красноярск: СИБУП, 1996, 358 с.
5. Boros E., Hammer P.L. Pseudo-Boolean Optimization. Discrete Applied Mathematics 123(1-3), 2002, pp. 155-225.