Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Диплом Voldem@r / Оно / речь_SE

.doc
Скачиваний:
18
Добавлен:
16.04.2013
Размер:
42.5 Кб
Скачать

ДОКЛАД

Программный комплекс многокритериальной оптимизации

систем на основе мультихромосомных моделей и алгоритмов

Разработка программного комплекса осуществлялась под руководством профессора кафедры ИПОВС Олега Ивановича Лисова.

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

При разработке комплекса нужно было решить ряд задач, среди которых:

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

  • реализовать генетические алгоритмы с возможностью изменения характерных для алгоритмов параметров;

  • реализовать модуль разбора выражений и вычисления их значений на конкретном наборе значений параметров;

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

Разработанный программный комплекс может использоваться во многих предметных областях, в которых требуется оптимизация. На слайде 2 представлены некоторые из возможных областей применения. Под оптимизацией в данном случае понимается такое сочетание значений ограниченного числа входных параметров, которое обеспечивает максимальную отдачу от системы. Причём функция системы является величиной субъективной, т.к. одну и ту же систему можно оптимизировать, например, на минимальное время работы или на максимальную производительность.

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

Комплекс имеет модульную структуру, представленную на слайде 4, и содержит 8 модулей, среди которых: графический интерфейс, отвечающий за взаимодействие с пользователем комплекса; модуль файлового ввода/вывода, который служит для организации операций чтения/записи файлов; модуль прорисовки модели, отображающий на экране графическое представление модели; хранилище элементов модели, содержащее в себе все сведения о текущей модели; модуль проверки корректности модели; модуль обработки математических выражений, реализующий функции проверки выражений и вычисления их значений; модуль генетических алгоритмов, реализующий функции по поиску решения; и генератор отчётов, формирующий отчёты на основании результатов работы модуля ГА. Через интерфейс пользователя осуществляется редактирование модели, передача команд на загрузку или сохранение модели, а также команды на поиск решения. При редактировании модели происходит обмен данными между интерфейсом пользователя и модулем прорисовки модели. Модуль файлового ввода/вывода обменивается данными с хранилищем модели (при загрузке или сохранении модели). Хранилище модели, в свою очередь, передаёт модулю прорисовки данные об элементах модели и получает сведения об изменении в модели. От хранилища модели данные поступают модулю проверки корректности модели, который пользуется услугами модуля обработки математических выражений при проверке выражений. Модуль ГА обращается к модулю обработки математических выражений при вычислении функции приспособленности системы, а к хранилищу данных для организации мультихромосомной структуры при вычислении. По завершении работы модуль ГА передаёт все необходимые сведения генератору отчётов, который формирует отчёт и выводит его на экран.

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

На слайде 6 представлен один из важных алгоритмов работы компекса – алгоритм проверки корректности модели. Работа алгоритма заключается в проверке всех зависимостей в модели и проверке уникальности имён переменных. Данный алгоритм проходит дерево модели по списку всех подсистем (система, или корень дерева, является частным случаем подсистемы). Результатом работы алгоритма является код первой обнаруженной ошибки в модели, либо код успешного завершения в случае, если модель не содержит ошибок.

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

На слайде 8 представлены методы отладки и тестирования комплекса. Первоначальное тестирование состояло в создании моделей, содержащих ошибки различного рода. Второй этап тестирования состоял в проверке работы модуля загрузки и сохранения моделей. Отладка обнаруженных ошибок осуществлялась с помощью инструментальных средств среды разработки Microsoft Visual Studio C++ 6.0, а также при помощи отладочных макросов. После устранения всех обнаруженных ошибок комплекс тестировался на контрольных примерах. Требовалось проверить, в какой степени найденное решение соответствует действительному. С этой целью были созданы различные модели, наиболее интересна из которых – модель функции Гривонка. Данная функция содержит один глобальный экстремум и множество локальных. Эта функция давно используется для проверки работы генетических алгоритмов. Решение, полученное комплексом, сравнивалось с известным. Результаты показали состоятельность разработанной программы.

В качестве экономической части дипломного проекта стояла задача выбора среды программирования с использованием метода анализа иерархий. Данный метод обеспечивает поддержку принятия решения выбора одной альтернативы из нескольких возможных. Для альтернатив выбираются критерии, на основании которых производится сравнение. Первоначально составляется матрица относительной важности критериев. Затем происходит сравнение альтернатив по каждому из критериев. Особенность метода в том, что он позволяет установить степень доверия к полученным результатам по величине, которая называется «отношение согласованности». По матрице относительной важности критериев и векторам приоритетов критериев производится выбор альтернативы. В результате примненения данного метода в качестве среды разработки была выбрана среда Microsoft Visual Studio C++ 6.0.

В процессе дипломного проектирования были решены все поставленные задачи. Разработанный программный комплекс состоит из 37 заголовочных файлов и 32 файлов с исходными текстами общим объёмом около 160 Кб. Программный комплекс показал свою пригодность для оптимизации систем разного рода и может применяться, например, в области малого и среднего бизнеса.

В заключении хочу поблагодарить Олега Ивановича Лисова за предоставленную интересную тему дипломного проекта и консультации по спорным вопросам.

Доклад окончен, благодарю за внимание.

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