
- •Министерство образования и науки Российской Федерации Московский государственный институт электронной техники (технический университет) Факультет мп и тк
- •«Программный комплекс многокритериальной оптимизации систем на основе мультихромосомных моделей и генетических алгоритмов»
- •Содержание
- •Перечень сокращений
- •Введение
- •1. Специальный раздел
- •1.1. Исследовательская часть
- •1.1.1. Обзор существующих программ для оптимизации
- •1.1.3. Информационные потребности пользователя
- •1.2. Конструкторская часть
- •1.2.1. Требования, предъявляемые к системе
- •1.2.2. Структура входных и выходных данных
- •1.2.3. Конфигурация технических средств
- •1.2.4. Модули комплекса
- •1.2.5. Общий алгоритм работы программы
- •1.2.6. Иерархия классов
- •1.2.7. Переменные в выражениях и их использование в программе
- •1.2.8. Основные алгоритмы и особенности программной реализации
- •1.2.9. Проверка отказоустойчивости программы
- •1.2.10. Проверка работы комплекса на контрольных примерах
- •1.3. Выводы
- •2. Технологический раздел
- •2.1. Использование стандартных библиотек
- •2.1.1. Библиотека stl
- •2.1.2. Библиотека mfc
- •2.1.3. Применение библиотек stl и mfc в программе
- •2.1.4. Средство ClassWizard
- •2.2.2. Встроенные средства языка для отладки программ
- •2.2.3. Отладка программного кода, содержащего stl и mfc
- •2.4. Приёмы объектно-ориентированного проектирования
- •2.4.1. Применение паттернов проектирования в программе
- •2.5. Выводы
- •3. Организационно-экономический раздел
- •3.1. Метод анализа иерархий
- •3.2. Метод парных сравнений.
- •3.2.1. Определение собственных векторов
- •3.3. Применение метода для выбора среды программировани
- •3.3.1. Характеристики сред программирования
- •3.3.2. Таблица сравнений важности критериев
- •3.3.3. Таблицы попарного сравнения сред разработки по каждому критерию
- •3.4. Результаты применения метода
- •3.5. Выводы
- •4. Производственная и экологическая безопасность
- •4.1. Опасные и вредные факторы, воздействующие на программиста
- •4.1.1. Микроклимат рабочей зоны программиста
- •4.1.2. Воздействие шума на программиста. Защита от шума
- •4.1.3. Уровень напряжённости электромагнитного поля
- •4.1.4. Электробезопасность. Статическое электричество
- •4.1.5. Освещенность рабочего места
- •4.2. Заключение
- •Заключение
- •Список литературы
- •Исходный текст программы
- •Результаты испытаний
- •Руководство оператора
- •Аннотация
- •2. Условия выполнения программы
- •2.1. Климатические условия эксплуатации
- •2.2. Состав аппаратных и программных средств
- •3. Требования к персоналу (пользователю)
- •4.2.2. Выполнение функции сохранения модели в файл
- •4.2.3. Выполнение функции ввода информации о системе
- •4.2.4. Выполнение функции задания различных параметров системы
- •4.2.5. Правила записи выражений
- •4.2.6. Выполнение функции задания параметров генетических алгоритмов
- •4.2.7. Выполнение функции поиска решения
- •5.3. Ошибки при проверке модели
- •5.4. Ошибки во время поиска решения
1.2.10. Проверка работы комплекса на контрольных примерах
После проведения тестирования и отладки отдельных модулей комплекса встала задача проверки его функционирования в целом, т.е. проверки правильности получаемых результатов на контрольных примерах. В качестве начального примера была взята простейшаю функция y=2-(x + 4.6)^2. Переменная x меняла своё значение на интервале [-5; 0]. Оптимизация проводилась по двум направлениям – максимум и минимум. Аналитически легко показать, что максимум функции достигается при значении x -4.6 и равен 2. Минимум на этом отрезке достигается в 0 и равен -19.16. Модель, построенная для этого примера, показана на рис. 1.21
Рис. 1.21 Вид модели и значение переменных для контрольного примера
Результат вычислений, сохранённый в файл, оказался совершенно точным, что и не удивительно для такого простого примера. Ниже преведены содержания файлов для поиска максимума на отрезке и минимума.
Для максимума:
Время поиска: начало – [06.03.2005 20:37], конец – [06.03.2005 20:37], затрачено – 0 минут. Найденное наилучшее значение целевой функции = 2.0000 аргумент функции ($x) = -4.6000 Вероятность мутации = 0.0001 Вероятность кроссовера = 0.4500 Число точек кроссовера = 1 Критерий останова: отношение значений функции приспособленности для лучших особей в двух соседних популяциях = 0.0010 или число поколений составит 500 Направление оптимизации: максимум Поиск решения завершён. Причина: Найдено решение Число поколений составило 8 |
Для минимума:
Время поиска: начало – [06.03.2005 20:42], конец – [06.03.2005 20:42], затрачено – 0 минут. Найденное наилучшее значение целевой функции = -19.1600 аргумент функции ($x) = 0.0000 Вероятность мутации = 0.0001 Вероятность кроссовера = 0.4500 Число точек кроссовера = 1 Критерий останова: отношение значений функции приспособленности для лучших особей в двух соседних популяциях = 0.0010 или число поколений составит 500 Направление оптимизации: максимум Поиск решения завершён. Причина: Найдено решение Число поколений составило 7 |
Затем работа комплекса была протестирована на этом же самом примере, только отрезок, на котором осуществлялся поиск решения, был изменён на [-3; 1]. Комплекс успешно отработал и с таким вариантом. Полученное решение также оказалось точным.
После проверки работоспособности на простых примерах было решено сразу опробовать работу комплекса на специальных задачах, т.е. на задачах, используемых для проверки работы генетических алгоритмов. В качестве такой тестовой задачи была выбрана функция Гривонка (Griewank) [13]. Данная функция зависит от двух переменных и имеет один глобальный и множество локальных экстремумов. Аналитическое выражение для этой функции имеет следующий вид:
|
(1.1) |
а значения переменных x1 и x2 принадлежат отрезку [-20; 20]
На рис. 1.22 представлен вид модели для данной функции
Рис 1.22 Вид модели и значение переменных для функции Griewank
Комплекс хорошо справился с задачей оптимизации данной системы (т.е. с задачей поиска значения глобального экстремума и значений аргументов функции, при которых этот экстремум достигается). Результаты оптимизации представлены ниже:
Время поиска: начало – [09.03.2005 18:06], конец – [09.03.2005 18:07], затрачено – 1 минут. Найденное наилучшее значение целевой функции = 0.9993 x 1 ($x1) = 0.0002 x 2 ($x2) = -0.0001 Вероятность мутации = 0.141 Вероятность кроссовера = 0.56 Число точек кроссовера = 1 Критерий останова: отношение значений функции приспособленности для лучших особей в двух соседних популяциях = 0.0003 или число поколений составит 300 Направление оптимизации: максимум Поиск решения завершён. Причина: Найдено решение Число поколений составило 37 |