Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом Voldem@r / Оно / ПЗ_release.doc
Скачиваний:
31
Добавлен:
16.04.2013
Размер:
1.6 Mб
Скачать

Перечень сокращений

ГА – генетические алгоритмы

ПО – программное обеспечение

ООП – объектно-ориентированное программирование

Введение

С оптимизацией человек сталкивается постоянно в своей жизни, порой даже не замечая этого. Мы выбираем, на каких станциях метро нам лучше пересесть в другой поезд, чтобы добраться до места назначения быстрее и с меньшим числом пересадок. Казалось бы, простая задача, с которой каждый из нас справляется с большим или меньшим успехом. Но даже это простой пример показывает, как неоднозначен выбор. Мы проводим оптимизацию по двум критериям – время и количество пересадок. А если таких критериев не 2, а, скажем, несколько десятков, причём один критерий зависит от определённого количества других? Тут уже не так просто справиться с задачей, найти лучшее сочетание значений этих критериев. Не помогает даже большой опыт человека в области, в которой решается задача оптимизации.

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

Поиск оптимального сочетания значений критериев является переборной задачей. Наиболее точный способ решения переборных задач – это полный перебор всех возможных решений. Однако, данная задача не всегда выполнима в разумный срок. Конечно, компьютерные технологии на сегодняшний день находятся на довольно высоком уровне, но зачастую не спасают и они. Да и далеко не всегда требуется найти точное решение, достаточно решения, близкого к оптимальному.

С задачей поиска такого решения хорошо справляются относительно недавно появившиеся эволюционные алгоритмы, в частности, генетические алгоритмы. В их основу положена теория эволюционного развития живых организмов [15] (если коротко – выживает особь, наиболее приспособленная к условиям окружающей среды). Один цикл работы генетических алгоритмов состоит в выборе продукционной группы родителей из текущей популяции и проведение с ней таких операций, как скрещивание и мутация, в результате чего формируется новое поколение особей. Процесс продолжается до тех пор, пока число поколений не достигнет заранее определённого или значение функции приспособленности системы для лучшей особи в двух соседних поколениях не будет отличаться на какую-то наперёд заданную малую величину. Эволюционные алгоритмы обладают одним замечательным свойством – с их помощью отыскивается именно глобальный максимум или минимум. Выход из точек, соответствующих локальным максимумам или минимумам, обеспечивается за счёт применения операции мутации. Генетические алгоритмы приспособлены к решению переборных непрерывных и дискретных задач и обладают хорошей скоростью сходимости, т.е. обеспечивают нахождение решения в приемлемые сроки.

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

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

Созданный программный комплекс призван автоматизировать процесс поиска оптимального сочетания критериев системы. Пользователю комплекса нужно произвести декомпозицию системы, описать её модель в специальном редакторе, задать некоторые параметры (например, критерий, по которому текущее решение считается достаточным для данной задачи (т.е. погрешность найденного решения)), задать так называемую «функцию приспособленности системы» (функцию, определяющую степень удовлетворённости значениями критериев) и направление оптимизации (т.е. минимизировать или максимизировать функцию приспособленности). При этом задаются возможные значения критериев системы. Это могут быть как наборы дискретных значений, интервалы изменения, так и зависимости от других критериев. Дальше запускается процесс поиска значений критериев, которые будут наиболее приемлемы для пользователя комплекса. В основе работы комплекса лежит применение генетических алгоритмов, поэтому решение находится достаточно быстро и с хорошей точностью.

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

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

Соседние файлы в папке Оно