RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 РАЗРАБОТКА И ИССЛЕДОВАНИЕ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ДЛЯ РЕШЕНИЯ УСЛОВНЫХ ЗАДАЧ ОПТИМИЗАЦИИ С ЛИНЕЙНОЙ ИЛИ НЕЛИНЕЙНОЙ ЦЕЛЕВОЙ ФУНКЦИЕЙ И ЛИНЕЙНЫМИ ОГРАНИЧЕНИЯМИ Сергей Дробышев Институт транспорта и связи ул. Ломоносова, 1, Рига, LV-1019, Латвия Тел. (+371) 28861316. E-mail: s.v.drobyshev@gmail.com В работе представлен генетический алгоритм для решения условных задач оптимизации с линейными ограничениями. Предложен подход к решению линейных условных задач в форме порождающей задачи, для которой известно оптимальное значение целевой функции. Алгоритм использует 4 оператора мутации, 4 оператора скрещивания, 2 оператора селекции. Проведены 163 серии экспериментов по 200 запусков алгоритма в каждой серии, в ходе которых были определены квазиоптимальные значения параметров алгоритма на примере линейной задачи в порождающей форме, для которой было получено достоверное решение. Решение тестовых нелинейных задач при квазиоптимальных значениях параметров алгоритма также показало весьма обнадеживающие результаты. Исследуется влияние выбора оператора селекции и стратегии, вероятностей и вида операторов мутации и скрещивания. Эксперименты показали, что для селекции по принципу рулетки уместны общепринятые значения вероятности мутации и скрещивания. Однако ранговая селекция дает более достоверные результаты при вероятности мутации не менее 0.24, и чем она больше, тем достовернее результат и тем менее заметна зависимость от вероятности скрещивания. Выяснилось, что для получения достоверного результата необходимо использование граничной мутации совместно с еще одним/двумя операторами мутации. Ключевые слова: генетический алгоритм, условная оптимизация, линейные ограничения, граничная мутация Введение Целесообразность использования генетических алгоритмов для решения линейных условных задач оптимизации отсутствует, поскольку задачи такого класса решаются классическими методами без каких-либо особых затруднений. Однако применительно к классу нелинейных условных задач оптимизации имеет смысл начинать разработку и исследование генетического алгоритма для решения линейных условных задач оптимизации. Применение же генетического алгоритма для решения нелинейных задач оптимизации оправдано во многих случаях: при решении таких задач классическими методами на функции накладываются дополнительные условия, например, выпуклость, непрерывность, дифференцируемость. Однако существует бесчисленное множество задач, в которых данные и другие аналогичные условия могут не выполняться. Разработанный алгоритм использует некоторые идеи, лежащие в основе алгоритма GENOCOP [1, 2, 3], поскольку данные идеи являются основополагающими для решения условных задач оптимизации генетическими алгоритмами. Дело в том, что генетический алгоритм в своем классическом виде непригоден для решения условных задач оптимизации. Для успешного применения генетических алгоритмов к таким задачам используются следующие идеи: 1. Как при генерации начальной популяции, так и при выполнении операций скрещивания и мутации особи должны удовлетворять ограничениям задачи. 2. Поскольку решение линейной условной задачи оптимизации достигается в граничных точках множества допустимых решений [4], необходимо использование так называемой граничной мутации, при которой хотя бы один из генов особи «лежит» на границе множества допустимых решений. Целью настоящего исследования является определение квазиоптимальных параметров разработанного алгоритма путем выявления влияния на решение выбора оператора и стратегии селекции, соотношения между вероятностями мутации и скрещивания, конкретных операторов мутации и скрещивания и сравнения различных сценариев работы алгоритма. 27 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 1. Описание задачи оптимизации с линейной и нелинейной целевой функцией 1. Задача линейного программирования (ЛП) в общей форме имеет следующий вид: w( x) = ∑ n c j x j → min, j =1 X def X ≡ x ∈ n : ∑ n aij x j ≥ bi , i ∈ I1 ; ∑ n aij x j = bi , i ∈ I 2 ; x j ≥ 0, j ∈ J1 , j =1 j =1 { где } I1 , I 2 ⊂ I = {1, 2, ..., m} , I1 ∪ I 2 = I , I1 ∪ I 2 = ∅; J1 ⊂ J = {1, 2, ..., n} ; aij , bi , c j являются заданными числами, x j есть искомые неизвестные. 2. Задача с нелинейной целевой функцией и линейными ограничениями: w( x) → min, X def X ≡ { x ∈ D : G1 ( x ) = 0, G2 ( x ) ≥ 0} , где D ⊂ , w : D → , G1 : D → 1 , G2 : D → 2 . n m 1 m Одна из проблем, с которой мы сталкиваемся, – как убедиться в том, что полученное генетическим алгоритмом решение действительно является решением исходной задачи. Составим двойственную задачу по отношению к задаче ЛП в стандартной форме: b, y → max, Y m T Y = y ∈ : A y ≤ c, y ≥ 0 , c, x → min, X n X = x ∈ : Ax ≥ b, x ≥ 0 , { } { } (1) Первая теорема двойственности [4]. Прямая и двойственная к ней задачи (1) либо одновременно разрешимы, либо одновременно неразрешимы. Когда обе задачи разрешимы, то оптимальные значения целевых функций этих задач совпадают c, x = b, y . Иначе, по крайней мере, одна задача неразрешима в силу несовместности существенных ограничений. Отсюда следует, что необходимо решать не только прямую задачу, но и двойственную. Если оптимальные значения целевых функций прямой и двойственной задачи совпадают, то полученное решение является решением исходной задачи. Можно предложить следующий подход, основанный на решении одной так называемой порождающей задачи: c, x − b, y → min, Z n m T Z = ( x, y ) , x ∈ , y ∈ : Ax ≥ b, A y ≤ c, x ≥ 0, y ≥ 0 . { } (2) В этой задаче целевой функцией является разность целевых функций прямой и двойственной задачи, а ограничения есть совокупность ограничений прямой и двойственной задачи. ( * * Теорема [4]. Вектор x , y ) является оптимальным решением задачи (2) тогда и только тогда, когда x * и y* являются оптимальными решениями соответственно прямой и двойственной задачи. Достоинства подхода состоят в том, что решения обеих задач получаются одновременно, и более того, оптимальное значение целевой функции порождающей задачи известно и равно нулю. Недостаток – увеличение размерности задачи. Условимся, что всегда будем решать задачу максимизации целевой функции, причем будем решать задачу в стандартной форме, в которой отсутствуют ограничения равенства. В этом случае в качестве фитнес-функции мы сможем использовать целевую функцию задачи. Одним из требований, предъявляемым к фитнес-функциям, является то, что значение фитнес-функции должно возрастать с возрастанием пригодности решения. Таким образом, преобразование исходной задачи заключается в следующем: если исходная задача является задачей минимизации, она преобразуется к задаче максимизации; если в задаче присутствуют ограничения равенства – производится их исключение. 28 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 2. Генетический алгоритм 2.1. Представление хромосом и фитнес-функция Хромосома есть вектор вещественных чисел, каждый компонент вектора представляет собой переменную задачи . Бинарное представление подходит скорее для дискретных переменных и для многомерных задач неэффективно из-за неизбежных преобразований между бинарной и вещественной формами кодирования. Кроме того, вещественное кодирование позволяет производить вычисления с бо̀льшей точностью. Поскольку мы условились всегда решать задачу максимизации целевой функции, фитнес- функция F совпадает с целевой функцией, причем в случае порождающей задачи F ∈ ( −∞, 0]. 2.2. Генерация начальной популяции Исходя из указанных пользователем нижних и верхних границ значений переменных, генерируется вектор случайных чисел, который проверяется на соответствие ограничениям задачи. Если он не удовлетворяет ограничениям задачи, производится указанное пользователем количество попыток сгенерировать начальную популяцию. Если по исчерпанию максимального количества попыток было сгенерировано количество уникальных особей меньшее, чем заданный размер популяции, оставшаяся часть популяции заполняется случайно выбранными особями из уже сгенерированных особей. Таким образом, в начальной популяции могут присутствовать идентичные особи. Но как показали эксперименты, это не является проблемой, и более того, для решения задачи может быть достаточным наличие малого количества уникальных особей. У данного подхода есть два недостатка. Первый – с увеличением количества ограничений задачи увеличивается требуемое количество попыток для генерации начальной популяции. Второй недостаток состоит в том, что если в ограничениях задачи есть хотя бы одно ограничениеравенство, то генерация начальной популяции становится практически невозможной: случайным образом найти вектор, удовлетворяющий ограничению-равенству и остальным ограничениямнеравенствам, достаточно сложно. На помощь приходит исключение ограничений равенств задачи. Из каждого равенства выражается одна из переменных, и полученное выражение для переменной подставляется в остальные ограничения и целевую функцию. Тем самым: • вместо ограничения равенства мы получаем ограничение-неравенство и избавляемся от указанной проблемы при генерации начальной популяции; • получаем дополнительное преимущество – уменьшаем размерность решаемой задачи. 2.3. Операторы скрещивания, мутации, селекции Пусть ( ) ( p1 = p11 , p12 , ..., p1n , p 2 = p12 , p22 , ..., pn2 ) есть i выбранные для операции скрещивания, где p j есть значение родительские хромосомы, j -го гена i -й хромосомы, p = ( p1 , p2 , ..., pn ) есть хромосома, выбранная для операции мутации. Обозначим через ( ) ( ) c1 = c11 , c12 , ..., c1n , c2 = c12 , c22 , ..., cn2 , c = ( c1 , c2 , ..., cn ) соответствующих потомков операций скрещивания и мутации. 1. Простой арифметический кроссовер [1, 2, 3, 5, 6]. Гены двух потомков, начиная с k -й случайной позиции хромосомы, получаются по следующей формуле: c1j = p1j ⋅ m m m m + p 2j ⋅ 1 − , c 2j = p 2j ⋅ + p1j ⋅ 1 − , ∀ j = k , n, C C C C где m ∈ [1, C ] . Данный оператор может создавать потомков, которые могут не удовлетворять ограничениям задачи, поэтому при его проведении требуется соответствующая проверка. Смысл параметра C – это количество попыток применения данного оператора. Производится цикл, в котором m последовательно увеличивается от 1 до C , на каждой итерации которого потомок проверяется на соответствие ограничениям задачи. После С попыток оба потомка в любом случае удовлетворяют ограничениям задачи, поскольку они совпадают с родителями. 29 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 2. Полный арифметический кроссовер [1, 2, 3, 5, 6, 7]. Два потомка (которые удовлетворяют линейным ограничениям задачи ввиду выпуклости множества допустимых решений) представляют собой линейную комбинацию своих родителей: c1j = p1j ⋅ a + p 2j ⋅ (1 − a ) , c 2j = p 2j ⋅ a + p1j ⋅ (1 − a ) , ∀ j = 1, n, где a ∈ ( 0, 1) есть случайное равномерно распределенное число. 3. Эвристический кроссовер [1, 2, 3, 5, 6, 7] на основе двух родителей генерирует одного ( ) потомка, у которого изменяется значение j -го случайно выбранного гена c j = a ⋅ p j − p j + p j , 2 1 2 где a ∈ [ 0, 1] есть случайное равномерно распределенное число и родитель p 2 не хуже родителя ( ) ( ) p1 , то есть F p 2 ≥ F p1 для задачи максимизации. Достоинством данного оператора является то, что он использует значение целевой функции для определения направления поиска. 4. BLX кроссовер [6, 7]. Для двух выбранных родителей p1 , p 2 значения каждого гена каждого из двух потомков выбирается как случайное равномерно распределенное число из интервала d= p1j − p 2j [cmin − α ⋅ d , cmax + α ⋅ d ], { } { } где cmin = min p j , p j , cmax = max p j , p j , 1 2 1 2 , α – есть параметр, задаваемый пользователем. 5. Равномерная мутация [1, 2, 3, 5]. Случайно выбранному j -му гену хромосомы присваивается равномерно распределенное случайное значение в диапазоне между допустимыми границами для данной переменной, так что потомок удовлетворяет ограничениям задачи. 6. Граничная мутация [1, 2, 3, 5]. Случайно выбранному j -му гену хромосомы присваивается значение, равное одной из границ для соответствующей переменной, так что потомок удовлетворяет ограничениям задачи. 7. Неравномерная мутация [1, 2, 3, 5, 8]. Значение случайно выбранного j -го гена хромосомы либо уменьшается, либо увеличивается на некоторое значение ∆, которое зависит от номера текущего поколения, так что потомок удовлетворяет ограничениям задачи: ( ( ) p j + ∆ t , right ( j ) − p j , если b = 0, cj = p j − ∆ t , p j − left ( j ) , если b = 1, ) где b есть случайное бинарное число; t есть номер текущего поколения; right ( j ) , left ( j ) есть допустимые правая и левая границы j -й переменной, и B t 1− ∆ ( t , y ) ≡ y ⋅ r ⋅ 1 − r T def , где r ∈[ 0, 1] есть равномерно распределенное случайное число; T есть количество поколений; параметр B отражает степень зависимости от номера поколения. Функция ∆ ( t , y ) возвращает значение в диапазоне [ 0, y ] , которое стремится к нулю с увеличением номера текущего поколения. Таким образом, действие данного оператора мутации наиболее сильное в начальных поколениях и уменьшается с увеличением номера поколения. 8. Полная неравномерная мутация [1, 2, 3, 5]. Данный оператор есть применение оператора неравномерной мутации к каждому гену хромосомы. 9. Ранговая селекция [1, 5, 9, 10]. Популяция сортируется по значению фитнес-функции особей в порядке от лучшей особи к худшей. Каждой особи назначается вероятность p j = c ⋅ (1 − c ) j −1 ее выбора в соответствии с ее рангом j – ее положением в отсортированной популяции, c есть задаваемая пользователем вероятность выбора лучшей особи. 30 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 10. Селекция по принципу рулетки [1, 9]. Родители выбираются в соответствии со значением фитнес-функции: лучшие особи имеют больше шансов быть выбранными. Для каждой особи откладываются интервалы пропорционально относительному значению ее фитнеса. Выбирается та особь, интервалу которой принадлежит разыгранное случайное число. Кроме того, в алгоритме используются панмиксия и элитарная стратегия. При элитарной стратегии в следующую популяцию переходит копия лучшей особи, что гарантирует неубывание последовательности значений фитнес-функции для лучших особей. Панмиксия – механизм, при котором одна и та же особь может участвовать в формировании потомков несколько раз. 2.4. Условия останова алгоритма Предусмотрены следующие два условия останова алгоритма: останов по достижению заданного пользователем количества поколений и останов по достижению заданного расстояния от нуля значения фитнес-функции в случае решения линейной задачи в порождающей форме (для такой задачи оптимальное решение достигается при значении фитнес-функции, равному нулю). 2.5. Сводка параметров алгоритма Итак, предусмотрена возможность настройки следующих параметров (указаны принятые значения по умолчанию): 1) количество поколений – 1000, размер популяции – 100; 2) расстояние от нуля значения фитнес-функции (для порождающей линейной задачи) – 0.01; 3) вероятность выбора лучшей хромосомы при ранговой селекции – 0.2; 4) количество лучших особей для элитарной стратегии – 5; 5) количество попыток при генерации начальной популяции – 5000; 6) параметр для неравномерной мутации – 5; 7) количество попыток генерации допустимых потомков для операторов кроссовера – 20; 8) параметр α для BLX кроссовера – 0.4; 9) количество пар родителей для каждого оператора кроссовера – 10 и родителей для каждого оператора мутации – 4; 10) ранговая селекция, селекция по принципу рулетки. 3. Описание разработанного программного продукта Были определены следующие основные требования к программному продукту: 1. Интуитивно понятный интерфейс, который позволяет пользователю составить целостное представление о решаемой задаче и самостоятельно работать с программой. 2. Функциональные требования: - ввод исходных данных вручную и из файла; - сохранение исходных данных задачи в файл; - сохранение в файл отчета о процессе вычислений и окончательных результатов; - валидация исходных данных, как вводимых вручную, так и читаемых из файла; - редактирование введенных исходных данных без повторной загрузки задачи; - задание нелинейной целевой функции произвольного вида; - автоматическое преобразование задачи к задаче на максимум и исключение ограничений-равенств; - автоматическое построение порождающей формы линейной задачи; - серия запусков алгоритма, указанное пользователем количество раз и создание файла с результатами по каждому запуску для импорта в статистический пакет для анализа; - построение графиков зависимости лучшего, среднего и худшего значения фитнесфункции от номера поколения в режиме реального времени; - отображение начальной и лучшей популяций; - отслеживание времени работы алгоритма; - подробная справочная информация. 3. Так как для решения задач может потребоваться длительная обработка, необходимы средства предотвращения зависания интерфейса пользователя. Программный продукт был разработан с использованием среды разработки Microsoft Visual Studio 2008 и языка программирования C# и представляет собой двухпоточное приложение. При разработке использовались два дополнительных компонента: 31 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 • muParser.dll – парсер математических выражений [11]; • ZedGraph.dll – визуальный компонент для построения графиков [12]. Работа программного обеспечения была проверена на ряде линейных и нелинейных тестовых задач. Тестирование базового генератора псевдослучайных чисел выявило его соответствие требованиям к качественным генераторам псевдослучайных чисел. 4. Проведение экспериментов 4.1. План экспериментов Цель экспериментов – определение квазиоптимальных значений параметров алгоритма и сравнение различных сценариев его работы. План экспериментов включает исследование влияния: • оператора и стратегии селекции при параметрах по умолчанию; • соотношения между вероятностями мутации и скрещивания; • различных операторов мутации; • различных операторов скрещивания. Для каждой задачи проводилась серия из 200 запусков алгоритма. В результате создавался файл с данными, которые импортировались в пакет Statistica для анализа. Для каждой серии запусков алгоритма строилась гистограмма для значений целевой функции, описательная статистика для значений целевой функции, всех переменных и времени выполнения. Построенные доверительные интервалы накрывают с наперед заданной степенью достоверности оцениваемые значения, а по значению стандартного отклонения можно судить об устойчивости решения. 4.2. Влияние оператора селекции и элитарной стратегии при параметрах по умолчанию Проведены эксперименты для 500 поколений на примере порождающей задачи для следующей тестовой задачи при параметрах алгоритма по умолчанию: w ( x ) = 2 x1 − 2 x2 + 4 x3 → max, 2 x1 + x2 + x3 ≤ 5, 2 x1 − 3x2 + 2 x3 ≤ 2, − x + 5 x − 9 x ≤ 6, 2 3 1 x1 , x2 , x3 ≥ 0. (3) Приведем графики зависимости лучшего, среднего и худшего значения фитнес-функции для ранговой селекции (рис. 1) и селекции по принципу рулетки (рис. 2) без использования элитарной стратегии. Рис. 1. Ранговая селекция (без элитарной стратегии) 32 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 Рис. 2. Селекция по принципу рулетки (без элитарной стратегии) В отличие от селекции по принципу рулетки, для ранговой селекции средний фитнес начиная с самых первых поколений достаточно близок к лучшему фитнесу. При анализе состава лучших популяций выяснилось, что при ранговой селекции лишь несколько особей значительно отличаются от остальных – почти все особи идентичны, а при селекции по принципу рулетки вырождение популяции не наблюдается. Рис. 3. Ранговая селекция (10 элитарных особей) Рис. 4. Селекция по принципу рулетки (10 элитарных особей) 33 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 Далее, при использовании элитарной стратегии с пятью лучшими особями из 100, переходящими в следующее поколение, различие между обоими операторами селекции стало минимальным. Для ранговой селекции влияние элитарной стратегии не так значимо, как для селекции по принципу рулетки, при этом появилась возможность полноценного сравнения худших представителей лучшей популяции с такими же представителями при ранговой селекции. При дальнейшем увеличении количества элитарных особей до 10 оба оператора селекции показали практически идентичные результаты, причем в обоих случаях лучшие популяции вырождаются полностью. При сравнении графиков (рис. 3 и 4) видно, что при использовании ранговой селекции уже на 50-м поколении лучший фитнес достаточно близок к нулю, в то время как при селекции по принципу рулетки требуется примерно 200 поколений. 4.3. Влияние вероятности мутации и скрещивания Для той же задачи (3) в порождающей форме были проведены серии по 200 запусков алгоритма при 500 поколениях при следующих всевозможных сочетаниях вероятностей: • мутации: 0.0, 0.08, 0.16, 0.24, 0.32, 0.40, 0.48, 0.56, 0.64, 0.72, 0.80, 0.88; • скрещивания: 0.0, 0.16, 0.32, 0.48, 0.64, 0.80, 0.96. Полученные зависимости значений фитнес-функции от вероятностей скрещивания и мутации приведены на рис. 5. ROULETTE WHEEL SELECTION 11 10 10 9 9 8 Mutation Probability 0.08 0.16 0.24 0.32 0.40 0.48 0.56 0.64 0.72 7 6 5 4 0 Fitness Mean Value Fitness Mean Value RANK SELECTION 11 0.1 0.2 0.3 0.4 0.5 0.6 Crossover Probability 0.7 0.8 8 Mutation Probability 0.08 0.16 0.24 0.32 0.40 0.48 0.56 0.64 0.72 7 6 5 0.9 4 1 0 0.1 0.2 0.3 0.4 0.5 0.6 Crossover Probability 0.7 0.8 0.9 1 Рис. 5. Зависимость значений фитнес-функции от вероятностей скрещивания и мутации Отсюда видно, что при использовании селекции по принципу рулетки необходимо использовать малые или средние значения вероятности мутации и большие значения вероятности скрещивания. Для ранговой селекции, наоборот, чем выше вероятность мутации, тем достовернее решение и тем менее заметна зависимость от вероятности скрещивания. Таблица 1. Лучшие полученные результаты Истинное решение задачи x1 = 0.0 Селекция по принципу рулетки Вероятность мутации 0.56, скрещивания 0.80 Mean Std. Dev 95% Conf. Int. 10.1969 0.1565 (10.1751, 10.2187) 0.0244 0.0363 (0.0193, 0.0294) x2 = 1.6 1.5747 0.0303 (1.5704, 1.5789) 1.5999 0.0000 (1.5999, 1.6000) x3 = 3.4 3.3243 0.3325 0.0639 0.0056 (3.3154, 3.3332) 3.9999 0.2999 0.0000 0.0075 (3.3999, 3.9999) w = 10.4 время, сек1 1 Ранговая селекция Вероятность мутации 0.72, скрещивания 0.48 Mean 10.3999 0.0000 Std. Dev 0.0000 0.0000 95% Conf. Int. (10.3999, 10.4000) (0.0000, 0.0000) Все эксперименты проводились на машине с четырехъядерным процессором Intel Core i7-2600K, 3.4 ГГц. 34 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 Лучшие полученные результаты для тестовой задачи (3) в порождающей форме приведены в таблице 1. Как видно, при использовании ранговой селекции было получено достоверное решение задачи (3). Однако при использовании селекции по принципу рулетки полученное решение далеко от истинного, скорее всего, выбранное количество поколений (500) является недостаточным. 4.4. Влияние различных операторов мутации Теперь будем варьировать значения вероятности различных операторов мутации при лучших полученных результатах (для ранговой селекции) из предыдущего эксперимента. Проведены три серии экспериментов с использованием трех операторов мутации в различных сочетаниях (табл. 2), двух операторов мутации в различных сочетаниях (табл. 3) и только одного оператора мутации (табл. 4). Таблица 2. Использование трех операторов мутации Вероятность мутации Равномерная 0.24, граничная 0.24, неравномерная 0.24 Равномерная 0.24, граничная 0.24, полная неравномерная 0.24 Граничная 0.24, неравномерная 0.24, полная неравномерная 0.24 Mean Std. Dev. 95% Conf. Int. 10.4000 0.0000 (10.4000, 10.4000) 10.4000 0.0000 (10.4000, 10.4000) 10.3992 0.0018 (10.3989, 10.3995) Таблица 3. Использование двух операторов мутации Вероятность мутации Равномерная 0.36, граничная 0.36 Равномерная 0.36, неравномерная 0.36 Равномерная 0.36, полная неравномерная 0.36 Граничная 0.36, неравномерная 0.36 Граничная 0.36, полная неравномерная 0.36 Неравномерная 0.36, полная неравномерная 0.36 Mean 10.4000 10.1292 Таблица 4. Использование одного оператора мутации Std. Dev. 95% Conf. Int. (10.4000, 0.0000 10.4000) (10.1079, 0.1529 10.1505) 10.2587 0.1229 (10.2416, 10.2759) 10.3955 0.0079 (10.3944, 10.3966) 10.3998 0.0002 (10.3998, 10.3999) 10.2448 0.2118 (10.2153, 10.2744) Вероятность мутации Mean Равномерная 0.72 Граничная 0.72 Неравномерная 0.72 Std. Dev. 10.2588 0.0869 9.9882 0.5911 9.1364 1.0231 Полная неравномерная 10.3216 0.1010 0.72 95% Conf. Int. (10.2466, 10.2709) (9.9058, 10.0707) (8.9938, 9.2791) (10.3075, 10.3357) Как видно, использование одного оператора мутации не позволяет получить достоверное решение задачи. Однако во всех случаях, когда использовалась граничная мутация совместно с еще одним/двумя операторами мутации, достоверное решение задачи (3) было получено. 4.5. Влияние различных операторов скрещивания Были проведены аналогичные эксперименты при одном, двух и трех операторах скрещивания при наилучшем полученном сочетании операторов мутации: равномерная – 0.36, граничная – 0.36, неравномерная и полная неравномерная – 0.0. Во всех случаях получено одно и то же решение, совпадающее с истинным решением задачи (3). Таким образом, для рассматриваемой задачи можно ограничиться использованием лишь одного оператора скрещивания. 4.6. Квазиоптимальные параметры алгоритма Итак, в ходе проведенных экспериментов были определены следующие квазиоптимальные параметры разработанного генетического алгоритма: • ранговая селекция; • вероятность равномерной 0.36; граничной – 0.36; неравномерной и полной неравномерной мутации – 0.0; • любой из используемых четырех операторов скрещивания с вероятностью 0.48. 35 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 Все остальные параметры имеют значения по умолчанию. При этом для тестовой задачи (3) было получено решение, совпадающее с истинным решением задачи в пределах шести знаков после запятой (табл. 5). Таблица 5. Решение задачи (3) при квазиоптимальных значениях параметров алгоритма Истинное решение x1 = 0.0 Mean 10.40000 0.000000 Std. Dev. 0.000000 0.000000 95% Conf. Int. (10.40000, 10.40000) (0.000000, 0.000000) x2 = 1.6 1.600000 0.000000 (1.600000, 1.600000) x3 = 3.4 3.400000 0.292955 0.000000 0.005644 (3.400000, 3.400000) w = 10.4 время, сек. Далее приведем решения двух тестовых нелинейных условных задач оптимизации при полученных квазиоптимальных значениях параметров алгоритма. В таблице 6 приведено решение задачи о равновесии химической реакции [3, 13]: 10 xj w( x) = ∑ x j ⋅ c j + ln → min, x1 + ... + x10 j =1 x + 2 x + 2 x + x + x = 2, 1 2 3 6 10 x4 + 2 x5 + x6 + x7 = 1, x3 + x7 + x8 + 2 x9 + x10 = 1, −6 x j ≥ 1 ⋅ 10 , j = 1,10, (4) где c1 = −6.089, c2 = −17.164, c3 = −34.054, c4 = −5.914, c5 = −24.721, c6 = −14.986, c7 = −24.1, c8 = −10.708, c9 = −26.662, c10 = −22.179. Был проведен эксперимент из 200 запусков алгоритма при 5000 поколениях. Во втором столбце таблицы 6 приведено наилучшее известное решение из книги Hock & Schittkowski (1981) [13], в третьем столбце – решение, полученное генетическим алгоритмом GENOCOP, в четвертом столбце – решение, полученное Mathcad квазиньютоновским методом при начальном приближении, в котором все переменные равны 0.1. Наконец в последних трех столбцах приведено решение, полученное с помощью разработанного алгоритма. Таблица 6. Решение задачи (4) при квазиоптимальных значениях параметров алгоритма –47.760196 Mean –47.7604 5000 поколений Std. Dev. Conf. Int. 0.003886 (–47.7610, –47.7599) 0.038802 0.040486 0.005891 (0.039656, 0.041316) 0.15386976 0.140244 0.148517 0.00148 (0.148308, 0.148725) 0.8825646 0.77497089 0.788844 0.782612 0.003424 (0.78213, 0.783095) x4 0.0007233256 0.00167479 0.00139315 0.00153 0.000445 (0.001467, 0.001593) x5 0.4907851 0.48468539 0.485931 0.484268 0.000759 (0.484161, 0.484375) x6 0.0004335469 0.00068965 0.001323175 0.000738 0.000118 (0.000721, 0.000754) x7 0.01727298 0.02826479 0.025423 0.029196 0.001468 (0.028989, 0.029403) x8 0.007765639 0.01849179 0.01707 0.017847 0.000485 (0.017779, 0.017916) x9 0.01984929 0.03849563 0.033483 0.036913 0.00116 (0.036749, 0.037076) x10 0.05269826 0.10128126 0.101698 0.096519 0.002369 (0.096185, 0.096852) 4.846995 0.05458 Hock & Schittkowski GENOCOP Mathcad w x1 –47.707579 –47.760765 0.01773548 0.04034785 x2 0.08200180 x3 время, сек 36 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 При решении следующей задачи [3] в каждом из 200 запусков алгоритма при 500 поколениях были получены идентичные решения (стандартное отклонение во всех случаях равно 0), * совпадающие с истинным решением задачи: w( x ) = −15, x = (1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1) . * T w( x) = 5 x1 + 5 x2 + 5 x3 + 5 x4 − 5 ⋅ ∑ 4 xi2 − ∑ 9 yi → min, i =1 i =1 2 x1 + 2 x2 + y6 + y7 ≤ 10, 2 x1 + 2 x3 + y6 + y8 ≤ 10, 2 x + 2 x + y + y ≤ 10, 3 7 8 2 −8 x1 + y6 ≤ 0, −8 x2 + y7 ≤ 0, −8 x3 + y8 ≤ 0, −2 x4 − y1 + y6 ≤ 0, −2 y2 − y3 + y7 ≤ 0, −2 y − y + y ≤ 0, 4 5 8 xi ≥ 0, i = 1, 4; yi ≥ 0, i = 1,9. Заключение Работа посвящена разработке и исследованию генетического алгоритма для решения условных задач оптимизации с линейными ограничениями. В отличие от наиболее распространенного способа учета ограничений, метода штрафных функций, используемый подход лишен его главного недостатка – увеличения количества параметров алгоритма. Кроме того, был предложен подход к решению линейных условных задач в форме порождающей задачи, для которой наперед известно оптимальное значение целевой функции, что гарантирует при выполнении соответствующих условий то, что полученное генетическим алгоритмом решение является решением исходной задачи. Получено экспериментальное подтверждение преимуществ ранговой селекции перед селекцией по принципу рулетки. Однако при использовании элитарной стратегии различие между обоими методами селекции минимально, в обоих случаях лучшие популяции вырождаются полностью, но ранговая селекция требует меньшего количества поколений для получения решения. Для ранговой селекции влияние элитарной стратегии незначительно, однако для селекции по принципу рулетки ее влияние оказалось весьма значимым. Эксперименты показали, что для селекции по принципу рулетки уместно общепринятое соотношение вероятностей мутации и скрещивания, однако для ранговой селекции вероятность мутации должна быть больше, чем вероятность скрещивания. Также выяснилось, что для линейных условных задач оптимизации использование только одного вида мутации не позволяет получить достоверное решение. Во всех случаях, когда использовалась граничная мутация совместно с еще одним/двумя видами мутации, были получены достоверные решения тестовых задач. При этом влияние вида оператора скрещивания не оказывало значимого влияния. Таким образом, в ходе проведенных экспериментов были определены квазиоптимальные условия применения разработанного генетического алгоритма. По результатам решения тестовых задач можно утверждать, что алгоритм успешно справляется с решением условных линейных задач оптимизации. Полученные обнадеживающие результаты при решении нелинейных условных задач оптимизации говорят об уместности дальнейшей модификации и исследования алгоритма и его развития в направлении нелинейных условных задач оптимизации. „The article is written with the financial assistance of European Social Fund. Project Nr. 2011/0037/1DP/1.1.2.1.1/11/IPIA/VIAA/007. The Support in Realisation of the Master Programme “Master of Natural Sciences in Computer Science” of the Transport and Telecommunication Institute”. 37 RESEARCH and TECHNOLOGY – STEP into the FUTURE 2012, vol. 7, no. 3 Литература 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Michalevicz, Z. (1996). Genetic Algorithms + Data Structures = Evolution Programs. 3rd ed. Springer-Verlag, Berlin – Heidelberg – New York, 388 p. Michalewicz, Z., Janikow, C. Z. (1996). GENOCOP: a genetic algorithm for numerical optimization problems with linear constraints, Communications of the ACM, vol. 39, no. 175. Michalevicz, Z. (1994). Evolutionary Computation Techniques for Nonlinear Programming Problems, International Transactions in Operational Research, vol. 1, no. 2. Васильев, Ф. П., Иваницкий, А. Ю. Линейное программирование. Москва: Факториал, 1998. 176 с. Sakawa, M. (2002). Genetic Algorithms and Fuzzy Multiobjective Optimization. Massachusetts: Kluwer Academic Publishers, 288 p. Орехов, Ю. В., Орехов, Э. Ю., Заминова, А. Р. Исследование эффективности операторов генетического алгоритма при поиске экстремальных решений в бинарных и вещественных пространствах, Информационные технологии, № 9, 2008. Паклин, Н. Непрерывные генетические алгоритмы – математический аппарат, BaseGroup Labs, from http://www.basegroup.ru/library/optimization/real_coded_ga/ Панченко, Т. В. Генетические алгоритмы: Астраханский университет, 2007. 87 с. Obitko, M. (1998). Introduction to Genetic Algorithms from http://www.obitko.com/tutorials/ genetic-algorithms/dna-pictures.php Еремеев, А. В. Генетические алгоритмы и оптимизация: Учебное пособие. Омск: Издательство Омского государственного университета, 2008, 36 с. Ingo Berg muParser – a fast math parser library (2005) from http://muparser.sourceforge.net/ Champion, John. ZedGraph (2005) from http://zedgraph.sourceforge.net/samples.html Hock, W., Schittkowski, К. (1981). Test Examples for Nonlinear Programming Codes. SpringerVerlag, New York, 141 p. 38