- •Министерство образования и науки Российской Федерации Московский государственный институт электронной техники (технический университет) Факультет мп и тк
- •«Программный комплекс многокритериальной оптимизации систем на основе мультихромосомных моделей и генетических алгоритмов»
- •Содержание
- •Перечень сокращений
- •Введение
- •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.1. Менялись только параметры элементов модели (например, формульные зависимости).
Рис П.2.1 Общий вид тестовой модели
1.1. Цикл в зависимостях переменных $c2, $c3, $c4
Входные данные:
, ,
Результат обработки:
Рис П.2.2
1.2. Использование имени переменной, находящейся за областью видимости
Входные данные:
Результат обработки:
Рис П.2.3
1.3. Использование переменных с одинаковыми именами
Входные данные:
В этом случае обе переменные #s1 и #s2 были переименованы в #c1
Результат обработки:
Рис П.2.4
1.4. Некорректное значение функции приспособленности системы
Входные данные:
Целевая функция системы имела значение #s1-#s2/-$c1+((%log(2.312))
Результат обработки:
Рис П.2.5
1.5. Зависимость от несуществующей переменной
Входные данные: #s2=$c5*$foo
Результат обработки:
Рис П.2.6
1.6. Исключение «лишних» переменных
Входные данные: #s1 = -$c2/$c4
Результат обработки:
Рис П.2.7
2. Недопустимые арифметические операции во время вычисления
2.1. Логическая ошибка непосредственно в записи выражения
Входные данные: $c5 = %log(-2.14)
Результат обработки:
Рис П.2.8
2.2. Ошибки, обнаруживаемые только при вычислении
Входные данные:
,
Результат обработки:
Рис П.2.9
3. Работа комплекса в режиме загрузки файлов
Т.к. файлы с описаниями модели являются бинарными, то для лёгкости восприятия я буду приводить вместо тестовых файлов соответствующие структуры на языке C++ и значения их полей.
3.1. Загрузка файла с размером меньше 316 байтов (размер структуры SFileHeader)
Входные данные: произвольный файл с размером меньше 316 байтов
Результат обработки:
Рис П.2.10
3.2. Файл с повреждённым заголовком
Входные данные: файл с сохранённой моделью, у которого а) SFileHeader::magic = 0x24 и б) SFileHeader::productName = “Тест”
Результат обработки: в обоих случаях
Рис П.2.11
3.3. Ошибки в заголовке
Входные данные: SFileHeader::systemInfoOffset = 400, SFileHeader:: subsystemCount = 3, SFileHeader::componentCount = 2
Результат обработки: во всех случаях выдаётся сообщение
Рис П.2.12
3.4. Ошибки во внутренней структуре файла
Входные данные: файл с моделью, у которого случайным образом замещены 4 байта, находящиеся в произвольных местах файла, начиная со смещения 316
Результат обработки:
Рис П.2.13
4. Проверка на контрольном примере
Входные данные: модель с функцией Гривонка (см. §1.2.10)
Результаты обработки:
-
Время поиска: начало – [13.05.2005 12:12], конец – [13.05.2005 12:13], затрачено – 1 минут.
Найденное наилучшее значение целевой функции = 0.9997
x 1 ($x1) = 0.0012
x 2 ($x2) = -0.0006
Вероятность мутации = 0.241 Вероятность кроссовера = 0.416 Число точек кроссовера = 1 Критерий останова: отношение значений функции приспособленности для лучших особей в двух соседних популяциях = 0.0003 или число поколений составит 500 Направление оптимизации: максимум Поиск решения завершён. Причина: Найдено решение Число поколений составило 36
ПРИЛОЖЕНИЕ 3