В таблице приведены числа всех изоморфных вложений анализируемого фрагмента во все исследуемые графы.
Примечание: Н, СР, В - низкий, средний и высокий уровни сложности графа соответственно.
Экспериментальные исследования показали, что алгоритмы 3 и УЕ2 существенно эффективнее решают задачу, чем алгоритм ¥Е в классе регулярных графов степени 3.
На основе объемных вычислительных экспериментов с использованием программ-генераторов различных видов графов (более 21 000 000 графов и орграфов) с числом вершин до 64 000 получены экспериментальные оценки вычислительной сложности решения базовых задач структурной информатики, среди которых распознавание изоморфизма графов, изоморфного вложения,
определение максимального изоморфного пересечения, определение характеристик групп автоморфизмов графов, прорисовка диаграмм, определение гамильтоновых циклов, разборка графов на неизоморфные фрагменты и др.
Таким образом, создано программное средство, позволяющее быстро подключать программные реализации алгоритмов решения задач структурного анализа и синтеза систем, представленных графовыми моделями, реализованные в виде £Х£-модулей или DLL-библиотек, и проводить тестирование с определением экспериментальных оценок вычислительной сложности алгоритмов на широком многообразии классов графов с учетом трех уровней сложности графов.
Литература
1. Кохов В.А., Незнанов А.А., Ткаченко С.В. Структурная информатика - новый актуальный раздел информатики для изучения в школе и университете // 1-е Всеросс. совещ. НМС по информатике: Актуальные проблемы информатики в современном российском образовании. М.: МАКС-ПРЕСС, 2004. С. 250-276.
2. Кохов В.А., Ткаченко С.В. Решатель базовых задач структурной информатики. М.: Изд-во МЭИ, 2006. 192 с.
3. Кохов В.А. Концептуальные и математические модели сложности графов. М.: Изд-во МЭИ, 2002. 160 с.
4. Cordella L.P., Foggia P., Sansone C., Vento M. An Improved Algorithm for Matching Large Graphs, Proc. of the 3rd IAPR-TC-15 International Workshop on Graph-based Representation, Italy, 2001.
5. Алгоритмы и программы решения задач на графах и сетях / М.И. Нечепуренко [и др.]. Новосибирск: Наука, 1990.
Число вершин графа Число изоморфных вложений
Н СР В
60 840 1200 59400
100 1640 1960 82320
140 2440 2760 115920
180 3240 3560 149520
220 4040 4360 183120
260 4840 5160 216720
300 5640 5960 250320
340 6440 6760 283920
380 7240 7560 317520
420 8040 8360 351120
УДК 519.85:519.676
коэволюционный алгоритм для задач условной и многокритериальной оптимизации
(Работа выполнена при финансовой поддержке АВЦП «Развитие научного потенциала высшей школы», НИР 2.1.1/2710, и ФЦП «Научные и научно-педагогические кадры инновационной России», НИР НК-136П/3)
Е.С. Семенкин, д.т.н.; Р.Б. Сергиенко
(Сибирский государственный аэрокосмический университет им. академика М.Ф. Решетнева,
г. Красноярск,, [email protected])
В работе рассматривается адаптация коэволюционного алгоритма к задачам условной и многокритериальной оптимизации и исследуется его эффективность. Показано, что коэволюционный алгоритм обеспечивает не меньшую эффективность, чем лучший индивидуальный алгоритм, на задачах условной однокритериальной оптимизации и не худшую, чем средний алгоритм, на задачах многокритериальной оптимизации.
Ключевые слова: условная оптимизация, многокритериальная оптимизация, генетический алгоритм, коэволю-ционный алгоритм.
Среди методов решения сложных задач оптимизации широкое распространение получили эволюционные алгоритмы [1]. Однако нерешенной проблемой при использовании этих алгоритмов остаются высокая сложность и трудоемкость их настройки на решаемую задачу из-за большого числа возможных комбинаций параметров алгоритма (селекции, мутации, скрещивания и некото-
рых других). Эффективность одной и той же настройки на разных задачах и различных настроек на одной и той же задаче может изменяться в очень широком диапазоне. Поэтому выбор настроек наугад неприемлем, так как многие комбинации параметров алгоритма оказываются неработоспособными, а тщательная настройка под новую задачу чрезмерно трудоемка из-за временных,
трудовых и материальных затрат. Использование опыта решения аналогичных задач также не дает повода для оптимизма.
Для решения указанной проблемы предлагались различные подходы, одним из которых являются конкурирующие подпопуляции [2]. Этот подход получил дальнейшее развитие в коэволю-ционном алгоритме [3], в котором параллельно работают, при этом взаимодействуя между собой, индивидуальные генетические алгоритмы с различными настройками (подпопуляции). Конкуренция и кооперация индивидуальных алгоритмов (в отличие от [2]) обеспечивают самонастройку эволюционного поиска на решаемую задачу в ходе ее однократного решения и снимают проблему ручного выбора наилучшего алгоритма. Стандартный коэволюционный алгоритм состоит из следующих этапов:
- выбор индивидуальных алгоритмов;
- задание параметров коэволюционного алгоритма (размер общего ресурса, величина интервала адаптации, размер штрафа проигравшего алгоритма, размер социальной карты);
- независимая работа выбранных алгоритмов в течение интервала адаптации (обычно около 5 поколений);
- оценка алгоритмов;
- перераспределение ресурсов;
- миграция лучших индивидов во все подпо-пуляции.
Ключевыми этапами работы коэволюционного алгоритма являются перераспределение ресурсов и миграция, обеспечивающие конкуренцию и кооперацию между индивидуальными генетическими алгоритмами соответственно.
Ранее были разработаны и исследованы ко-эволюционные алгоритмы для решения задач безусловной однокритериальной оптимизации. На основе этих исследований сделан общий вывод, что коэволюционный алгоритм обеспечивает более высокую эффективность в сравнении со средним генетическим алгоритмом, однако в большинстве случаев уступает по эффективности наилучшему индивидуальному алгоритму [3]. Наилучший и средний по эффективности индивидуальные алгоритмы определяются исчерпывающим перебором всех возможных комбинаций настроек с многократным прогоном на каждой задаче и статистическим оцениванием показателей эффективности.
Целью настоящей работы являются разработка коэволюционного алгоритма для решения задач условной и многокритериальной оптимизации и исследование эффективности алгоритма на тестовых и практических задачах оптимизации.
Тестовыми задачами условной однокритери-альной оптимизации стали восемь задач с ограничениями-неравенствами и две задачи с ограничениями-равенствами, реализующие максимальные
сложности для работы алгоритма. В виде тестовых задач многокритериальной оптимизации выступают три задачи безусловной оптимизации и четыре задачи условной оптимизации, также создающие наибольшие проблемы при решении.
В качестве практических взяты задача формирования оптимального инвестиционного портфеля предприятия и задача формирования кредитного портфеля банка. Задача формирования оптимального инвестиционного портфеля предприятия заключается в составлении такого портфеля инвестиционных проектов, который приносит инвестору наибольшую прибыль. При этом должны выполняться ограничения по выделяемым средствам, норме прибыли и общей рискованности портфеля. Задача формирования кредитного портфеля банка состоит в формировании оптимального кредитного портфеля при наличии жестких ограничений по суммам имеющихся в наличии свободных кредитных ресурсов, их стоимости, процентным ставкам на выдаваемые кредиты, срокам привлечения ресурсов, максимальному размеру кредита на одного заемщика. Формально обе задачи являются задачами оптимизации большой размерности с бинарными переменными и предусматривают как однокритериальную, так и многокритериальную постановку.
Адаптация коэволюционного алгоритма к классу задач условной оптимизации связана с добавлением к числу настраиваемых параметров алгоритмов метода учета ограничений, что влечет за собой модификацию одного из ключевых этапов коэволюции - миграцию индивидов между индивидуальными алгоритмами. Дело в том, что миграция основана на группировании индивидов из всех подпопуляций, сортировке их по пригодности и раздаче всем алгоритмам наилучших индивидов. Использование же различных методов учета ограничений перестает делать пригодность единым критерием оценивания индивидов из различных подпопуляций. По результатам проведенных исследований наилучшей схемой миграции для коэволюционного алгоритма условной оптимизации признана так называемая пропорционально-групповая [4]. Суть ее заключается в объединении подпопуляций с одинаковым методом учета ограничений в группы, сортировке индивидов внутри групп и миграции лучших индивидов из каждой группы во все алгоритмы пропорционально доле группы в общем размере популяции.
При решении задач многокритериальной оптимизации использовался единственный метод решения таких задач эволюционными алгоритмами БРЕЛ 2, который в настоящее время признан наиболее эффективным [5]. Адаптация коэволю-ционного алгоритма к классу задач многокритериальной оптимизации сопряжена с существенными изменениями. Алгоритм БРЕЛ 2 направлен на поиск наиболее репрезентативной аппроксимации
множества Парето, поэтому на каждом поколении осуществляется поиск недоминируемых точек, при этом наиболее удаленных друг от друга в пространстве критериев. Наличие в стандартном ко-эволюционном алгоритме изолированных друг от друга подпопуляций в течение интервала адаптации приводит, во-первых, к высокой вероятности появления повторяющихся или близких друг к другу индивидов и, во-вторых, к появлению значительного числа индивидов, доминируемых индивидами из других подпопуляций. Решением проблем является использование единой популяции для всех индивидуальных алгоритмов. При этом закрепленная за каждым идивидуальным алгоритмом часть потомков генерируется согласно его настройкам. Формирование новой популяции из родителей и потомков на каждом поколении осуществляется на основе результатов работы всех алгоритмов.
В данной работе рассматривается возможность выбора для индивидуальных генетических алгоритмов трех типов селекции (пропорциональная, турнирная с турниром 2, ранговая), трех типов скрещивания (одноточечное, двухточечное, равномерное) и трех методов учета ограничений («смертельные» штрафы + «лечение», динамические штрафы, адаптивные штрафы). Используется адаптивная мутация, не требующая настройки.
Исследование эффективности коэволюцион-ного алгоритма на задачах условной однокритери-альной оптимизации состоит в сравнении с эффективностью индивидуальных генетических алгоритмов. Общее число комбинаций параметров алгоритма для задач условной однокритериальной оптимизации составляет 27. Определяются надежность - отношение числа запусков, в которых с заданной точностью найден (известный) оптимум, к общему числу запусков, а также скорость -средний номер поколения, на котором впервые в (успешном) запуске найден оптимум. Значения усредняются по многократным прогонам, проводится статистическое сравнение эффективности алгоритмов по ранговому критерию Вилкоксона. В банковской задаче ввиду отсутствия известного оптимального значения приводятся значения средней и наилучшей прибыли банка. Затем аналогичным образом тестируется коэволюционный алгоритм с автоматической настройкой всех трех параметров - селекции, скрещивания, метода учета ограничений.
При тестировании задач многокритериальной оптимизации не используются различные типы селекции, так как авторами алгоритма БРЕЛ 2 предусмотрено использование только турнирной селекции [5]. Таким образом, число индивидуальных алгоритмов (равное числу алгоритмов в коэволюции) для задач безусловной многокритериальной оптимизации составляет 3 (3 типа скрещивания), а для задач условной многокритериальной
оптимизации - 9 (3 типа скрещивания, 3 типа метода учета ограничений). Критерием эффективности работы алгоритма для многокритериальной оптимизации является процент паретовских решений в множестве недоминируемых решений, генерируемых алгоритмом. В случае статистической неразличимости этого параметра сравнивается средний разброс в пространстве критериев (показатель репрезентативности аппроксимации множества Парето).
Результаты исследований приведены в таблицах 1-4. Жирным шрифтом выделены наилучшие показатели.
Таблица 1
Результаты исследований на тестовых задачах условной однокритериальной оптимизации
Номер задачи Параметр Алгоритм
средний лучший коэволюция
1 Надежность 24,91 % 73,6 % 99,0 %
Скорость 64,08 70,8 57,8
2 Надежность 66,13 % 100,0 % 100,0 %
Скорость 63,49 55,2 23,0
3 Надежность 73,54 % 100,0 % 100,0 %
Скорость 59,64 62,6 27,0
4 Надежность 67,93 % 100,0 % 100,0 %
Скорость 62,14 60,6 31,4
5 Надежность 8,01 % 32,0 % 99,6 %
Скорость 70,49 71,0 50,2
6 Надежность 6,62 % 29,2 % 99,0 %
Скорость 73,24 73,4 48,0
7 Надежность 54,99 % 100,0 % 98,2 %
Скорость 61,51 68,0 39,4
8 Надежность 41,96 % 74,8 % 100,0 %
Скорость 78,79 70,0 44,8
9 Надежность 29,37 % 56,8 % 80,2 %
Скорость 51,39 71,8 54,0
10 Надежность 17,21 % 37,2 % 34,0 %
Скорость 50,76 75,4 59,0
Таблица 2
Результаты исследований на практических задачах условной однокритериальной оптимизации
Задача Параметр Алгоритм
средний лучший коэволюция
Инвести- Надежность 55,29 % 97,0 % 98,2 %
ционная Скорость 18,07 16,6 18,2
Банков- Лучшая 199760935,7 199843184 199869360
ская прибыль
Средняя 199606449,8 199617408 199638544
прибыль
Скорость 60,37 65 76
Таблица 3
Результаты исследований на задачах безусловной многокритериальной оптимизации
(процент паретовских решений)
Номер задачи Алгоритм
средний лучший коэволюция
1 24,62 % 28,40 % 24,20 %
2 61,14 % 64,42 % 62,00 %
3 80,69 % 82,26 % 80,97 %
Таблица 4 Результаты исследований на задачах условной многокритериальной оптимизации
Коэволюционный алгоритм работает эффективнее самого лучшего индивидуального алгоритма на восьми (из десяти тестовых) задачах условной однокритериальной оптимизации, а также на обеих практических задачах. Таким образом, на задачах условной однокритериальной оптимизации имеет место значительный положительный эффект взаимодействия алгоритмов между собой, что не наблюдается в такой степени на задачах безусловной однокритериальной оптимизации.
На всех тестовых задачах многокритериальной оптимизации коэволюционный алгоритм показывает эффективность на уровне среднего индивидуального и уступает наилучшему. Следует отметить, что метод БРЕЛ 2 оказывается устой-
чивым к различным настройкам генетического алгоритма: на всех задачах разброс между эффективностью наихудшего и наилучшего алгоритмов не является значительным. Следовательно, для многокритериальной оптимизации настройка параметров генетического алгоритма не настолько существенна, как для однокритериальной оптимизации.
Таким образом, проведена адаптация коэво-люционного алгоритма к задачам условной и многокритериальной оптимизации, исследована эффективность алгоритма, показывающая целесообразность его использования при решении практических задач.
Литература
1. Eiben A.E., Smith J.E. Introduction to evolutionary computing. Berlin: Springer-Verlag, 2003.
2. Schlierkamp-Voosen D., Mühlenbein H. Strategy Adaptation by Competing Subpopulations // Parallel Problem Solving from Nature III. Lecture Notes in Computer Science 866. SpringerVerlag, 1994.
3. Жукова М.Н. Коэволюционный алгоритм решения сложных задач оптимизации: дисс. ... канд. техн. наук. Красноярск: СибГАУ, 2004. 126 с.
4. Сергиенко Р.Б. Коэволюционный алгоритм условной оптимизации: разработка и приложения // Интеллектуальные системы (AIS'08): Интеллектуальные САПР (CAD-2008): тр. Междунар. науч.-технич. конф. М.: Физматлит, 2008. Т. 1. С. 33-40.
5. Zitzler E. Laumanns M., Thiele L. SPEA2: Improving the Strength Pareto Evolutionary Algorithm. Zurich, Switzerland: Swiss Federal Institute of Technology, 2001. 19 p.
Номер задачи Параметр Алгоритм
средний лучший коэволюция
1 Процент паретовских решений 56,74 % 61,29 % 57,32 %
2 Процент паретовских решений 97,66 % 98,01 % 97,21 %
3 Средний разброс 3,301 3,425 3,317
4 Процент паретовских решений 82,47 % 85,42 % 83,01 %
УДК 519.688
реализация моделей рыночной конкуренции в программном обеспечении
Л.В. Степанов, к.т.н.
(Институт менеджмента, маркетинга и финансов, г. Воронеж, [email protected])
В статье рассмотрены структура, функциональные возможности и инструментальные средства разработанного автором программного комплекса «Конкуренция». Дана характеристика задач, решаемых отдельными модулями программного продукта.
Ключевые слова: конкуренция, математическое моделирование, программное обеспечение.
Рынок, являясь совокупностью регулируемых взаимодействующих решений потребителей, производителей и государства по распределению (перераспределению) каких-либо ресурсов, представляет собой большую, сложно организованную систему [1, 2]. В этих условиях конкуренция как соперничество между всеми участниками рыночного процесса в сфере производства товаров за материальные или иные выгоды и преимущества посредством завоевания интереса потребителей к
производимым товарам наиболее сложна. В ходе исследований, проведенных автором, были предложены математические модели, реализующие основные принципы конкурентного взаимодействия в условиях рыночной экономики [3]. На сегодняшний день установлено, что даже заметные успехи в сфере организационного управления не способны на высокую отдачу без поддержки со стороны информационных технологий и их инструментальных средств - ПО.