Решение задач целочисленного программирования на основе генетических алгоритмов

УДК 681.5

РЕШЕНИЕ ЗАДАЧ ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ НА ОСНОВЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ

© 2005 г. М.В. Савельев, И.А. Енгибарян

In discrete optimization the approach based on use of evolutionary modeling intensively develops. Within the framework of the given approach genetic algorithms, evolutionary strategy, methods of genetic programming and other algorithms based on a principle of modeling of process of biological evolution are developed.

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

На этом подходе основаны методы отсечения, декомпозиции, ветвей и границ, алгоритмы перебора Z-классов и др. Для исследования свойств задач целочисленного программирования (ЦП) и анализа алгоритмов их решения традиционно используется метод регулярных разбиений [1]; введены и исследованы новые классы отсечений, построены оценки числа итераций ряда известных алгоритмов решения задач ЦП, разработаны новые алгоритмы. Особенно перспективна разработка гибридных алгоритмов, в которых этот подход сочетается с другими методами, в частности, с методами эволюционного моделирования [2].

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

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

В задаче целочисленного линейного программирования (ЦЛП) рассматриваются два её частных случая: задач о наименьшем покрытии множества (ЗНП) и о вершинном покрытии графа (ЗВП).

Пусть Z - множество целых чисел. Рассматривается задача ЦЛП в следующей постановке: найти

F

при условиях Ах < b, х > 0, х е Zn.

Здесь А - (m х n) - матрица; с = (с1, ..., cn)T; b = (b1, ..., Ьт)т; х = (x1, ..., xn)T ЛП-релаксацией задачи ЦЛП будем считать задачу линейного программирования (1). Далее предполагается, что все исходные данные задачи

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

Кроме того, приложения ЗНП имеют место при поиске оптимального размещения пунктов обслуживания, составлении расписаний на железной дороге; ЗВП - в проектировании систем контроля и наблюдения, в разработке помехоустойчивых методов передачи информации.

В описании генетических алгоритмов (ГА) процесс работы представляет собой последовательную смену популяций, состоящих из фиксированного числа особей, соответствующих пробным точкам пространства решений. Особи, отвечающие решениям с большим качеством (более пригодные), получают преимущество в порождении потомков в следующей популяции [3].

Пусть задача состоит в максимизации функционала f на множестве допустимых решений D в пространстве решений X. Каждая особь в популяции рассматривается как пара, состоящая из генотипа g и фенотипа х(д), которая соответствует пробной точке х(д) из X. Генотип д - строка фиксированной длины, состоящая из I генов д2, ..., где £ е Д - символы некоторых алфавитов Д, Д, ..., Д (чаще всего используется алфавит {0, 1}). Далее пространство генотипов Д х Д х ... х Д обозначается через Т. Функция х = х(д) отображает генотип д в Х и определяет представление решений в ГА. Процесс поиска идет с учетом значений функции пригодности Ф(д), которая определяет степень «приспособленности» особей и при х(д) € D имеет вид Ф(д) = ф(/(х(д))), где ф : Я ^ Я - некоторая монотонная функция, используемая для повышения эффективности поиска; Я - множество вещественных чисел. Если х(д) ф D, то Ф(д) может действовать как функция штрафа. В наиболее простом случае, когда D = X, в качестве функции пригодности может использоваться Дх(д)).

Перенумеровав особи популяции на шаге ее можно представить вектором генотипов популяции П = д2((), ... , где N - число особей популяции. Генотипы популяции П(0) генерируются случайным образом.

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

К генотипам выбранных особей применяется оператор кроссинговера, заменяющий часть генов одного генотипа генами другого. Полученный генотип подвергается мутации, при которой часть его генов изменяется случайным образом. Действие оператора мутации можно рассматривать как случайную величину МиК^) € Тс распределением, зависящим от д. Чаще всего используется оператор, заменяющий с вероятностью рт значения генов на случайные символы.

В качестве критерия остановки ГА используют ограничение по числу итераций ?тах или достижение оптимума, когда это можно установить. Результатом работы ГА является лучшее построенное решение.

Предлагается ГА использовать для решения задачи ЦЛП с ограниченным полиэдром ЛП-релаксации О. Множество О погружается в «-мерный параллелепипед О', и всякая точка г € О' Г\ Zn кодируется генотипом, представляющим собой последовательную запись двоичных представлений координат г. Нарушение ограничений задачи ЦЛП проявляется в снижении значений функции пригодности, в которой кроме _Дг) учитывается также функция штрафа.

Алгоритм перебора Ь-классов для решения задачи ЦЛП предложен на основе метода регулярных разбиений. В этом алгоритме используется Ь-разбиение пространства Яп, которое является одним из наиболее изученных регулярных разбиений. По определению точки х, у € Яп (х > у) принадлежат одному классу Ь-разбиения, если не существует такого целочисленного вектора г, что х > г > у. Здесь >, > - символы лексикографического порядка. Каждая точка г € Zn представляет собой отдельный класс разбиения; другие классы, содержащие лишь нецелочисленные точки, называются дробными. Обозначим через О/Ь фактор-множество, задаваемое Ь-разбиением. Элементы О/Ь называются Ь-классами.

В процессе перебора Ь-классов посредством решения вспомогательных подзадач линейного программирования строится последовательность текущих точек, представляющих различные Ь-классы. При этом рассматривается разбиение лишь той части множества О, которая сохраняется при отсечении по рекорду целевой функции. Процесс перебора Ь-классов можно начинать с произвольной точки из О. В случае, если оптимум существует и начальная точка есть 1ехтах О, лучшее из найденных алгоритмом целочисленных решений оптимально. За конечное число шагов алгоритм находит оптимум или устанавливает неразрешимость задачи. При использовании достаточно большого значения рекорда число итераций может быть существенно уменьшено.

Для задачи ЦЛП предлагается гибридный алгоритм, представляющий собой комбинацию ГА и метода перебора Ь-классов с отсечениями Гомо-ри. ГА здесь используется для поиска приближенных решений, улучшающих рекорд. На первом этапе выполняется заданное число итераций ГА, после чего некоторые особи популяции становятся текущими точками нескольких параллельных процессов перебора Ь-классов. Продвижение процессов перебора позволяет популяции избежать преждевременной сходимости к решениям с низким значением целевой функции. Разработанный алгоритм является точным. Особенно перспективным представляется использование гибридной схемы на многопроцессорной ЭВМ.

Эксперименты на задачах Хальди и других сериях тестовых примеров показали обнадеживающие результаты. Во всех задачах гибридным алгоритмом найден оптимум. Для наиболее трудоемких задач отмечено суще-

ственное сокращение времени счета по сравнению с базовым алгоритмом перебора ¿-классов.

Разработка и исследование генетического и гибридного алгоритмов решения ЗНП имеет следующую постановку. Пусть даны множество М = = {1, ..., т} и набор его подмножеств Мj < М, где } € и = {1, ..., п}. Подмножество 3 < и называется покрытием и, если и М. = М.

Каждому Мj приписан вес с > 0. Требуется найти покрытие минимального суммарного веса. ЗНП NP-трудна, кроме того, существование алгоритма полиномиальной трудоемкости, который гарантированно находит решение, не более чем в константу раз превышающее оптимум, влечет Р = ^.

Для ЗНП предлагается новый вариант ГА (СА№) с недвоичным представлением решений и оператором кроссинговера, основанным на поиске оптимальной комбинации генотипов родителей. Для решения этой и других оптимизационных подзадач используются методы линейного программирования и эвристики «жадного» типа.

Гибридный алгоритм для решения ЗНП представляет собой комбинацию метода перебора ¿-классов, вАКР и других эвристик, в частности, лагранжевой релаксации. В разработанной схеме ГА используется для нахождения начального решения, а с помощью метода лагранжевой релаксации строятся нижние и верхние оценки целевой функции на начальном этапе и на подзадачах, возникающих в процессе перебора ¿-классов.

Выполненные эксперименты с предложенными алгоритмами на тестовых задачах библиотеки ОЯ-ЫЬгагу вАЫР показали результаты, не уступающие полученным ранее. Для всех 50 тестовых задач со случайными данными и известным оптимумом при числе переменных от 1000 до 5000 и от 200 до 500 ограничений данным ГА найдены оптимальные решения. Кроме того, с помощью вАКР улучшены известные из литературы оценки оптимума для задачи на тройках Штейнера 81еш.243 (найдено решение из 198 элементов) и для задач СЬЯ.12 и СЬЯ.13, связанных с одним вопросом Эрдеша (найдены решения из 23 элементов). Гибридный алгоритм тестировался на задачах со случайными данными и показал существенно меньшее время счета по сравнению с алгоритмом перебора ¿-классов. Работа выполнена в рамках проекта РФФИ № 03-01-00332.

Литература

1. Стрейвер А. Теория линейного и целочисленного программирования: Пер. с англ. В 2 т. М., 1991.

2. КурейчикВ.М. Методы генетического поиска: Уч. пособие. Таганрог, 1998.

3. Курейчик В.В. Эволюционные методы решения оптимизационных задач. Таганрог, 1999.

Южно-Российский государственный технологический университет экономики и сервиса

15 июня 2005 г.