Гибридный генетический алгоритм глобального поиска оптимистических решений в задачах двухуровневой оптимизации

УДК 519.853.4

© А.В. Орлов

ГИБРИДНЫЙ ГЕНЕТИЧЕСКИЙ АЛГОРИТМ ГЛОБАЛЬНОГО ПОИСКА

ОПТИМИСТИЧЕСКИХ РЕШЕНИЙ В ЗАДАЧАХ ДВУХУРОВНЕВОЙ ОПТИМИЗАЦИИ1

Рассматривается разработка гибридного подхода к решению квадратично-линейных задач двухуровневой оптимизации в оптимистической постановке. Эффективность предложенного подхода демонстрируется вычислительным экспериментом.

Ключевые слова: двухуровневая оптимизация, оптимистическое решение, теория глобального поиска, локальный поиск, построение аппроксимации поверхности уровня, генетический алгоритм.

© A.V. Orlov

HYBRID GENETIC ALGORITHM OF GLOBAL SEARCH FOR OPTIMISTIC SOLUTIONS IN

BILEVEL OPTIMIZATION PROBLEMS

The article is devoted to elaboration of a hybrid approach to solving quadratic-linear bilevel optimization problems in optimistic formulation. The computational experiment shows the efficiency of the proposed approach.

Keywords: bilevel optimization, optimistic solution, global search theory, local search, constructing of the level surface approximation, genetic algorithm.

Введение

Как известно, разработка эффективных методов поиска решений в задачах с иерархической структурой представляет собой актуальную задачу современной математической оптимизации [1, 2], что обусловлено в первую очередь широким полем приложений иерархических задач. Аппарат двухуровневой оптимизации весьма удобен при моделировании конфликтов с неравноправным положением сторон, возникающих в практических задачах управления, экономики, транспорта и других областей [3, 4].

Например, при исследовании транспортно-логистических систем с помощью двухуровневой оптимизации моделируются задача назначения тарифов (Toll Setting Problem) [5] и задача развития транспортной сети (Highway Network Design Problem) [6]. На железнодорожном транспорте двухуровневой структурой обладает задача формирования поездов с целью перевозки грузов (Train Set Organization) [7] и ряд других.

Отметим, что практические приложения зачастую требуют решения задач достаточно высокой размерности. Ранее в нашей группе были разработаны методы локального и глобального поиска оптимистических решений в линейных [8, 9] и квадратично-линейных [8, 10, 11] задачах двухуровневой оптимизации, базирующиеся на теории глобального поиска в невыпуклых задачах с (d.c.) функциями А.Д. Александрова (т.е. представимыми в виде разности двух выпуклых функций) [12, 13]. Численное тестирование разработанных методов на большом спектре тестовых задач различной сложности и размерности продемонстрировало эффективность предлагаемого подхода по решению линейных задач с суммарной размерностью переменных на обоих уровнях до 1000 [9] и по решению квадратично-линейных задач - с размерностью до 300 [8, 11].

Тем не менее проблема разработки новых алгоритмов двухуровневой оптимизации, позволяющих оперировать с задачами еще большей размерности, в настоящее время остается актуальной. В данной работе с этой целью на примере квадратично-линейной двухуровневой задачи предлагается гибридный подход к построению метода глобального поиска, который, с одной стороны, базируется на теории глобального поиска [12], а с другой стороны - для реализации одного из этапов глобального поиска использует блоки генетических алгоритмов, такие как кроссовер и мутация [14].

1 Работа выполнена при финансовой поддержке РФФИ, проекты 11-01-00270-а, 12-07-33045-мол_а_вед, 12-07-13116-офи_м_РЖД.

При этом разрабатываемый гибридный алгоритм включает в себя специальные методы локального поиска, использующие билинейную структуру исследуемой задачи [13].

1. Элементы теории глобального поиска

При решении невыпуклых задач математической оптимизации (математического программирования) с помощью подхода, основанного на теории глобального поиска [12], одним из ключевых этапов является построение аппроксимации поверхности уровня выпуклой функции, задающей базовую невыпуклость в исследуемой задаче [13]. Успешное построение аппроксимации позволяет «выскочить» из стационарной (критической) точки, полученной с помощью локального поиска, что, как известно, является одной из главных целей глобального поиска.

Напомним кратко этапы глобального поиска в задаче с!.с. минимизации [12]:

Ф

где g(^), /(•) - выпуклые функции, О - выпуклое множество.

Пусть известна некоторая приближенно критическая (стационарная) в задаче (ОС) точка г со значением целевой функции ^к\=Ф(гк), построенная с помощью какого-либо метода локального поиска. Тогда производится следующая цепочка операций:

1) выбирается число / е [у_,у+\, где ;/_ := ;/_ := эирС#, 1)) и строится некоторая конечная

аппроксимация

Ак={у\...У\/{у') = Г-Ск,г=\,...,Щ

поверхности уровня и(£к ) = {у | /(у) = у - Ск! выпуклой функции /(•);

2) для всех точек аппроксимации Ак проверяется неравенство g(v,)<y, / = 1.2.....Л'. следующее из условий глобальной оптимальности для задачи (ОС) [12];

3) исходя из точек у', выбранных на втором этапе, осуществляется локальный поиск,

л/

доставляющий приближенно критические точки х , /е{1,...,^У} в задаче (ОС);

4) значение целевой функции в каждой точке х сравнивается со значением целевой функции в

текущей критической точке г. Если какая-то из точек х оказывается лучше текущей, происходит обновление последней, и весь процесс повторяется до исчерпания аппроксимации поверхности уровня.

Отметим, что построенная на этапе 1 аппроксимация должна быть достаточно репрезентативной, чтобы можно было судить о том, является ли текущая критическая точка гк глобальным решением [12].

В настоящее время не разработано методов построения репрезентативной аппроксимации для задачи (ОС) в общем виде. При решении конкретных невыпуклых задач эта проблема решается на основе накопленного опыта построения аппроксимаций [8, 9, 11-13]. Только для нескольких простейших невыпуклых задач (например, для задачи максимизации нормы на параллелепипеде) удалось построить аппроксимации, которые гарантируют достижение глобального решения [12], поэтому разработка новых подходов к решению этой проблемы является актуальной задачей невыпуклой оптимизации.

В данной работе эту задачу предлагается решать с использованием элементов генетического алгоритма.

2. Основные этапы генетического алгоритма

Напомним далее основные этапы генетического алгоритма [14], представив их для простоты на примере самой общей задачи оптимизации следующего вида:

/

Сначала каким-либо образом, например, случайно, задается набор допустимых в задаче (Р0) точек, называемый популяцией:

Рор = {х' |х'еД

Затем выбирается функция пригодности, с помощью которой можно оценить эти точки (чаще всего для этого используется целевая функция задачи /'(•)).

Далее, с помощью двух случайно выбранных точек (особей) из популяции, которые называются родителями, определенным образом строятся две новые особи (потомки):

х^х”2 <=Рор =^> У еД у2 <еБ. Эта процедура носит название кроссовер (кроссинговер, скрещивание). Существующие варианты осуществления кроссовера весьма разнообразны. Наиболее популярными являются одноточечный, двухточечный и однородный кроссовер [14]. Главной сложностью здесь является необходимость сохранения допустимости в исходной задаче построенных потомков.

Следующий этап - случайная мутация некоторых компонент построенных потомков, осуществляемая с определенной вероятностью: у1 => V е П, V’2 => и’2 е 1) . Здесь также необходимо следить за допустимостью получающихся особей [14].

После этого две получившиеся особи сравниваются друг с другом, и если лучшая из них с точки зрения функции пригодности оказывается лучше худшей особи из популяции, производится обновление последней: w\= argYcлn{F(wl),F(w2)} , /: 1,(х/) > 1''(х1) Ух' е Рор : если Р(м?)<Р(х3), то х3 := w .

Процесс обычно заканчивается, когда произведено определенное заранее заданное количество итераций (поколений) описанной процедуры [14].

Разумеется, здесь описан только один из многих вариантов генетических алгоритмов. Количество публикаций по этой теме для различного сорта задач очень и очень велико (см., например, литературу в [14]). При этом неизменным остается главная идея подобного сорта подходов -аналогия с эволюцией живых организмов в ходе естественного отбора.

Далее, на примере квадратично-линейной двухуровневой задачи представим один из способов «встраивания» схемы генетического алгоритма в процедуру глобального поиска, описанную в первом разделе статьи.

3. Базовый алгоритм глобального поиска в квадратично-линейной двухуровневой задаче

Рассмотрим следующую квадратично-линейную задачу двухуровневой оптимизации в оптимистической постановке (на верхнем уровне производится минимизация по переменным обоих уровней):

Р(х,у)=^{х,Сх) + <с,х) + ^{у,сху) + {сх,у) I шт,

(х,7)ё!={(х,7)ёГхй" | Ах + Ву <а,х>0}, у е 7„(х)=А^тт{<£/, ,у>| у еУ(х)},

Y(x)={yeRn\A1x + B1y<b,y>0}, где А е Rpxm, BeRpxn, Ay е Rqxm , Bx&Rqyn, CzRmxm, Q еГ" , ceRm , c^d&R”, aeRp, b^Rq кроме того, С = CT > О, Q = Cf > 0 .

Отметим, что целевая функция верхнего уровня F

для всех х е Рг(Х)={х g Rm | Зу: (х,у) е X} , так что

inf inf {{d, у) | у e Y (x), x e Pr(X)} > -oo .

X у

Обозначим через h(x,y,v):={d,y) — (Alx — b,v) невязку двойственности для задачи нижнего

уровня, где у е R4 - вектор множителей Лагранжа в задаче нижнего уровня. В [8, 10] была осуществлена редукция задачи (ВР ) к следующему // -параметрическому семейству задач:

Ф(х, y,v) = F(x,y) + juh(x,y,v) I min,

x,y,v

(x, y,v) g D = {(x, y,v) | Ax + By < a, Axx + Bxy < b, d + v5j > 0, x > 0, y>0, v > 0},

№))

где f.i > 0 - штрафной множитель.

Заметим, что ограничения в задаче (P(ju)) накладываются на пару (х,у) и на переменную v раздельно. Основываясь на этом факте, для осуществления локального поиска в задаче (Р(/л)) в [8, 10] были предложены две процедуры (XY-процедура и F-процедура), доставляющие точки, которые являются частично глобальными решениями исходной задачи по несвязанным группам переменных (критические точки). Эти процедуры заключаются в последовательном решении вспомогательных задач выпуклого квадратичного и линейного программирования (ЛП).

Для построения процедуры глобального поиска, согласно методологии из [12], прежде всего необходимо получить явное d.c. разложение целевой функции задачи. Нетрудно видеть, что целевая функция Ф(х, y,v) задачи (P(jli)) может быть представлена в виде разности двух выпуклых функций, например, следующим образом:

ф

где

g (х, У,v) = ^ <х, Сх) + (с, х) + ^ < у, Сх у) + <Cj, у) + //«v, b ) + ^ Р v - Агх Р"),

/(x,y,v) = //(-^-Pv + AtxР2 ~(y,d)) - выпуклые функции.

Представим далее алгоритм глобального поиска в задаче (Р(р)), использующий d.c. разложение (1). Пусть дана некоторая точка (х(). v(J. v’(J) с . числовые последовательности {гk},{Sk},

zk,Sk>^k = Q,\,...,TklQ,SkiQ(k —> да), множество направлений

Dir = {(аг,6г,сг) g Rm+n+q | (аг,йг,сг) ф 0, / = 0,1,...,7V}, числа у_ := inf (g,D) и y_ := sup (g,D) и параметры алгоритма M и v .

Базовый алгоритм глобального поиска ~к ~к ~к

Шаг 0. Положить к := 0, (х ,у ,v ) := (х0,y0,v0), / := 1, /:=/_, А/ := (у+ -/_)/М.

—к —к —к

Шаг 1. Начиная с точки (х , у , v ), с помощью XY- или F-процедуры локального поиска построить тк - критическую точку (х* . ук . Vk ) G 1) В задаче ( P(jLl) ).

Положить £к := Ф(х .ук. vk).

Шаг 2. По точке (a1 ,bl,cl)eDir построить точку (zl,ul,wl) из аппроксимации Ак поверхности уровня функции /(•) :

Ak={(zl,ul,wl) | f(zl,ul,wl) = y-£k}.

Шаг 3. Если g(V,ul,wl)> у + vy, то положить / := / +1 и перейти на шаг 2.

Шаг 4. Начиная с точки (z1.11 . w1). с помощью процедуры локального поиска построить 5к — критическую точку (х1, у1, v‘) g D в задаче (P(ju)).

Шаг 5. Если Ф(х/. у1. v1) < Ф(хк. ук. vk). то положить

/— — —Л+1 /л/л/л/ч 7 7 7

(х ,у ,v ):=(x,j,v), k:=k +1, /:=1, у := и перейти на шаг 1.

Шаг 6. Если Ф(хг,_уг,уг) > Ф(хА,_уА:, vA), / < TV , то положить / := / +1 и вернуться на шаг 2.

Шаг 7. Если Ф(х‘,у‘,у‘)>Ф(хк ,ук ,vk), l = N и у<у+, то положить у:=у + Ау, 1=1 и вернуться на шаг 2.

Шаг 8. Если l = N, Ф(хг,_рг,уг) > Ф(хА, V/е [f_,7+] (т.е. одномерный поиск по / на

отрезке [у_,у+\ закончен), то стоп; (хк.ук. vk) - полученное решение задачи.

Шаги 1-8 представляют собой алгоритмизованную запись этапов глобального поиска, приведенных в разделе 1, которая осуществлена в терминах задачи (Р(/л)). При этом отметим, что на шаге 3 алгоритма производится проверка точки на пригодность к дальнейшим исследованиям с помощью неравенства, вытекающего из условий оптимальности для задач d.c. минимизации [12]. При численной реализации необходимо использовать параметр v, варьированием которого можно изменять точность выполнения этого неравенства (с целью уменьшить влияние машинных ошибок округления [8, 11, 13]). Различные же значения параметра М отвечают за разбиение отрезка [у_,у+\ на соответствующее количество частей для реализации пассивного одномерного поиска по у .

Обратим также внимание на шаг 2, где аппроксимация поверхности уровня функции f , которая задает базовую невыпуклость в исследуемой задаче, строится с помощью заданного множества направлений Dir. Это множество было выбрано экспериментально для задач с билинейной структурой (к которым относится и задача (Р{/л))) [8, 11, 13] и включает в себя стандартные векторы евклидового базиса и компоненты текущей критической точки. Недостатком такого подхода к построению аппроксимации является, в частности, то, что оно не меняется от итерации к итерации алгоритма и содержит достаточно большое количество точек (в некоторых случаях порядка (m + n)q). Последний факт в значительной степени влияет на эффективность работы алгоритма глобального поиска при повышении размерности задачи.

Гибридный алгоритм глобального поиска, описанию которого посвящен следующий раздел, лишен указанных недостатков.

4. Гибридный алгоритм глобального поиска и его тестирование

Прежде всего опишем выбранные способы реализации генетических блоков для гибридного алгоритма решения задачи (Р(р) ).

В качестве популяции на каждой итерации глобального поиска выбираются точки, составляющие текущую аппроксимацию поверхности уровня:

Popk={(r\z\ws) I (r\z\ws)zAk, s = \,...,N}.

Функция пригодности Loc(-), оценивающая точки аппроксимации, представляет собой значение целевой функции в критической точке, построенной исходя из соответствующей точки

'5 -^.S’ ^.S’

аппроксимации: Loc(rs,zs,ws):= Ф(х , у ,v ). Здесь отметим, что поскольку точки аппроксимации могут быть недопустимыми, важным представляется свойство используемых процедур локального поиска, сохраняющих работоспособность при старте с недопустимой точки [8, 10].

Для осуществления скрещивания была реализована процедура так называемого однородного

кроссовера [14]: выберем два произвольных индекса sl,s2 е {1,..JV} Ф s2) и положим

l := Random[0,l].

Далее \/j = \,...,m + n + q, если/< 0.5 , то (r,z,w) := (г"1 ,z'?1, w*1) (r,z,w) := (r*2 ,z°2 ,м>°2)у, иначе

(r,z,w)j:=(rs'L,zs,ws‘)/, (r,z, w)j:=(rS2,z"2,wS2 )j . Таким образом, каждая компонента одного из

векторов-потомков с вероятностью L / 2 представляет собой компоненту одного из родителей.

В качестве процедуры мутации была выбрана следующая: пусть р := 0.0L , K = const. Положим

/j .= Random[0,1]. Если 1г <Рт, то (r,z,w) := Random[-K,K\ V/ = \+ п + с/. Положим

l2 := Random[0,L]. Если l2< Рт, то (г.z.н )( := Random]-К.К\ X/j = l,...,m + n + q . Подобного сорта

процедура называется равномерной мутацией [14].

В результате был построен следующий гибридный алгоритм глобального поиска, сочетающий этапы базового алгоритма и блоки генетического алгоритма.

Пусть даны точка (x(j.i’u. v’u ) g 1). множество направлений

Dir = {{a1 ,bl ,bN ,cN) g pm+n+q | (as ,bs ,cs) Ф 0, s = \,...,N}, числа y_\='m£(g,D) и

y+ := sup(g,D) , вероятность мутации Pm и количество поколений Gmax.

Гибридный алгоритм глобального поиска

Шаг 0. Положить к := 0, (xk,yk,vk):=(x°,y°,v0), s := 1, у:=у_, A y = (y+-y_)/N.

Шаг 1. Начиная с точки (х0,y0,v0) е D с помощью XY- или F-процедуры локального поиска найти

~0 ~0 ~0 ~0 ~0 ~0 приближенно критическую точку (х , у ,v )gD в задаче (P(jU)). Положить £х := Ф(х ,у ,v ).

Шаг 2. По точкам (as ,bs ,cs) g Dir построить точки (rs ,zs ,ws) аппроксимации поверхности уровня функции /, s = \,...,N, такие что f {rs ,zs ,ws) = у + А.у* {s — 1) — £s, т.е. построить популяцию точек поверхности уровня Popk. Для каждой точки популяции вычислить значение функции пригодности: ^ := Loc(rs,zs,ws), s = \,...,N .

Шаг 3. s := Random{L,...,N}, s2 := Random{L,...,N} . С помощью процедуры кроссовера по точкам (г*1, zs , w*1) и (r*2, z*2, w*2) построить точки (r, z, w) и (r, z, w) .

Шаг 4. C вероятностью Pm реализовать процедуру мутации для точек (r, z., w) и (r, z, w) .

Шаг 5. Вычислить ^ := Ф(r,z,w), £:=0(r,z,w), y:=g(r,z,w), y:=g(r,z,w) и построить две новые точки лежащие на поверхностях уровня: /(г*1 ,z^ ,w^) = у — С, и f{rS2,zS2,wS2) = y — ^.

Шаг 6. Вычислить значения Loc(rSL,z*1,w*1) и Loc(rS2,zS2,w*2). Пусть

(7s,~zs,ws) := argmm{Loc(TSL,z*L,w*L), Loc(г*2,z*2,w*2)} .

Шаг 7. Вычислить номер j :Loc(rJ ,zJ ,wJ)>Loc(rs,zs,ws) \/(rs,zs,ws)ePopk; если Loc(7s,zs,ws) <Loc(rJ,zJ,wJ), to (rJ,zj,wj) := (7s,zs,ws) .

Шаг 8. Если к <-Gmax, т0 к'.— к + l и перейти на шаг 3, иначе стоп.

(х*,У ,v*) := argmin{Zoc(r*,zs,ws) \ (rs,zs,ws) g Popk, s = 1,jV} - полученное решение задачи.

Отметим, что процедуру построения точек, лежащих на поверхности уровня, на шаге 5 алгоритма можно реализовать для любой точки пространства (кроме 0), так что проблем с обеспечением допустимости точек, полученных в результате применения блоков генетического алгоритма, здесь не возникает.

Для сравнения эффективности базового и гибридного алгоритмов глобального поиска использовались тестовые задачи, сгенерированные с помощью специального метода, предложенного в [15], который основан на построении задач произвольной размерности с известными локальными и глобальными решениями из задач-ядер небольшой размерности (см. также [8-11, 13]). При этом для простоты полагаем C = 0 и Q =0 .

Результаты сравнения приведены в таблице со следующими обозначениями: Name - имя тестового примера в формате п + m_N, где п - число переменных на верхнем уровне, т - число

переменных на нижнем уровне, N - номер примера данной размерности; LPb и LPg - количество вспомогательных задач ЛП, которое потребовалось решить для достижения глобального решения базовым и гибридным алгоритмами соответственно; T и T - время решения примера в формате

мин:сек.доли с помощью базового и гибридного алгоритма соответственно; Pop и MaxG -

параметры гибридного алгоритма, обозначающие размер популяции и количество поколений соответственно.

Таблица

Сравнение базового и гибридного алгоритмов глобального поиска

Кате щ Ть Рор МахО РР

1 + 11 118 0:00.02 3 5 56 0:00.00

3 + 31 118 0:00.02 3 5 55 0:00.00

5+5 1 18 0:00.02 3 5 60 0:00.02

5 + 5_2 512 0:00.09 3 5 62 0:00.02

10 + 101 854 0:00.72 3 5 62 0:00.05

15 + 151 1210 0:02.92 3 10 104 0:00.26

20 + 20 1 1610 0:08.67 3 20 193 0:01.09

25 + 25 1 2010 0:20.33 3 20 200 0:02.26

30 + 30 1 2410 0:39.27 5 20 208 0:04.00

35 + 35 1 2810 1:10.64 5 20 208 0:06.36

35 + 35_2 2810 1:11.12 5 20 208 0:06.38

40 + 40 1 3728 2:21.38 5 50 470 0:21.03

40 + 40_2 3210 2:02.36 5 50 469 0:21.00

50 + 50 1 4650 5:39.44 10 50 492 0:42.03

50 + 50_2 4010 4:53.03 10 50 492 0:43.44

75 + 75_1 6970 32:14.69 10 50 497 2:53.38

75 + 75_2 6982 32:42.48 10 50 497 2:54.31

100 +100 1 9290 102:09.97 10 50 519 7:21.72

По результатам, представленным в таблице, можно видеть, что во всех случаях, кроме одного (для примера 5 + 51, который отмечен в таблице жирным шрифтом), удалось подобрать такой размер популяции и количество поколений, что гибридный алгоритм оказался существенно эффективнее и по времени, и по количеству вспомогательных задач ЛП, которые потребовалось решить для достижения глобального решения. Последнюю величину можно считать некоторой мерой сложности решаемой задачи для используемого алгоритма. В некоторых случаях превосходство гибридного алгоритма над базовым составило 10-15 раз.

Заключение

В работе предложен новый гибридный подход к разработке алгоритмов поиска оптимистических решений в квадратично-линейных двухуровневых задачах оптимизации, сочетающий использование теории глобального поиска [12] и элементы генетических алгоритмов [14].

На основании проведенного вычислительного эксперимента по сравнению базового и гибридного алгоритмов глобального поиска можно сделать вывод о том, что использование для одного из самых сложных этапов глобального поиска - построения аппроксимации поверхности уровня - блоков генетического алгоритма оказалось оправданным. Имеющийся численный и алгоритмический опыт по решению различного сорта задач исследования операций с билинейной структурой [8-11, 13] позволяет также утверждать, что предложенный гибридный подход будет эффективен и при решении более сложных двухуровневых задач, в том числе, возникающих на автомобильном и железнодорожном транспорте [5-7].

Литература

1. Pang J.-S. Three modelling paradigms in mathematical programming // Mathematical programming, Ser.B. 2010. V. 125, No. 2. P. 297-323.

2. Dempe S. Foundations of Bilevel Programming. - Dordrecht: Kluwer Academic Publishers, 2002.

3. Bard J.F. Practical Bilevel Optimization. - Dordrecht: Kluwer Academic Publishers, 1998.

4. Colson B., Marcotte P., Savard G. An overview of bilevel optimization // Annals of operations research. 2007. V. 153. P. 235-256.

5. Brotcorne L., Labbe M., Marcotte P., Savard G. A Bilevel Model for Toll Optimization on a Multicommodity Transportation Network // Transportation Science. 2001. V. 35, No. 4. P. 345-358.

6. Ben-Ayed O., Blair C.E., Boyce D.E., LeBlanc L.J. Construction of a real-world bilevel linear programming model of the highway network design problem // Annals of Operations Research. 1992. V. 34, No. 1-4. P. 219-254.

7. Gao Y., Lu J., Zhang G., Gao S. A Bilevel Model for Railway Train Set Organizing Optimization // Proceedings of the International Conference on Intelligent Systems and Knowledge Engineering (ISKE 2007) (October 15-16, 2007, Chengdu, China). Atlantis Press, 2007, doi:10.2991/iske.2007.239.

8. Strekalovsky A.S., Orlov A.V., Malyshev A.V. On computational search for optimistic solution in bilevel problems // Journal of Global Optimization. 2010. V. 48, No. 1. P. 159-172.

9. Груздева Т.В., Петрова Е.Г. Численное решение линейной двухуровневой задачи // Журнал вычислительной математики и математической физики. 2010. Т. 50, № 10. С. 1715-1726.

10. Стрекаловский А.С., Орлов А.В., Малышев А.В. Локальный поиск в квадратично-линейной задаче двухуровневого программирования // Сиб. журн. вычисл. математики. 2010. Т. 13, № 1. С. 7588.

11. Стрекаловский А.С., Орлов А.В., Малышев А.В. Численное решение одного класса задач двухуровневого программирования // Сиб. журн. вычисл. математики. 2010. Т. 13, № 2. С. 201-212.

12. Стрекаловский А.С. Элементы невыпуклой оптимизации. Новосибирск: Наука, 2003.

13. Стрекаловский А.С., Орлов А.В. Биматричные игры и билинейное программирование. М.: ФИЗМАТЛИТ, 2007.

14. Michalewicz Z. Genetic Algorithms + Data Structures = Evolution Programs. New York: Springer-Verlag, 1994.

15. Calamai P., Vicente L. Generating Linear and Linear-Quadratic Bilevel Programming Problems // SIAM Journal on Scientific Computing. 1993. V. 14, No. 4. P. 770-782.

Орлов Андрей Васильевич, кандидат физико-математических наук, доцент, старший научный сотрудник Федерального государственного бюджетного учреждения науки Институт динамики систем и теории управления Сибирского отделения Российской академии наук, 664033, Иркутск, ул. Лермонтова, 134, тел. +7(3952) 45-30-63, e-mail: anor@icc.ru.

Orlov Andrey Vasilievich, candidate of physical and mathematical sciences, associate professor, senior researcher, Institute for System Dynamics and Control Theory SB RAS, 664033, Irkutsk, Lermontov str., 134, ph. +7(3952) 45-30-63, e-mail: anor@icc.ru.