
3.4. Проектирование пользовательского интерфейса.
Требования задания
Цель работы – изучение современной технологии разработки диалоговых комплексов оптимизации, ориентированной на применение языков программирования C++, либо C#; модификация программы, разработанной в лабораторной работе 3.
Модифицированная программа должна обеспечивать:
оптимизацию целевых функций с любым числом переменных;
задание критерия останова (максимальное количество итераций и вырождение популяции с заданной точностью ) в диалоговом режиме;
построение сводного графика зависимостей средней приспособленности по популяции и приспособленности лучшей особи от количества пройденных итераций.
Программа должна быть дружественной пользователю:
содержать необходимые заставки и сообщения, характеризующие программу, используемый метод, характер выводимой информации, допущенную ошибку при вводе данных и т. д.;
содержать блокировку ошибочных действий при вводе данных и обеспечивать простоту исправления ошибки;
обеспечивать в демонстрационном режиме возможность выбора одной из нескольких (трех-пяти) тестовых функций и запуск на поиск решения.
При составлении программы предусмотреть:
структурирование программы в соответствии с объектно-ориентированным подходом к разработке программного обеспечения;
использование класса битовой цепочки для представления в программе операций для работы с хромосомами;
возможность сравнения по качеству найденного решения двух способов кодирования хромосом – целочисленногои вещественного;
выбор по требованию пользователя способа кодирования хромосом, возможность смены типа скрещивания. Также предусмотреть возможность опционального отключения дополнительных операторов (популяционного всплеска и уплотнения сетки);
возможность задания величины разрыва поколений (процента элитных особей);
сохранение журналов с подробным описанием хода решения и значениями ведущих переменных в текстовый файл.
Контрольные вопросы
Каким образом было реализовано целочисленное кодирование в классе битовой цепочки? Привести диаграмму класса в UML-нотации1.
Привести общую диаграмму классов, предназначенных для функционирования генетического алгоритма, включая activity-диаграмму2.
Какие, по Вашему мнению, преимущества дает объектно-ориентированный подход при разработке генетического алгоритма?
Каким образом организовано хранение цепочек хромосом? Является ли выбранный вариант достаточно быстрым и эффективным? Обоснуйте свой выбор, опираясь на тесты памяти во время работы генетического алгоритма.
Содержание отчета
Цель работы и требования задания.
Спецификация программы, раскрывающая смысл входных и выходных данных, основных переменных, функций и классов. Диаграммы каждого класса должны быть приведены согласно UML-нотации. Одна use-case диаграмма для описания самого алгоритма.
Текст программы с детальными комментариями ведущих операторов программы.
Описание интерфейса пользователя программы.
Результаты сравнения двух способов кодирования – целочисленногои вещественного.
Сводные графики зависимостей средней приспособленности по популяции и приспособленности лучшей особи от количества пройденных итераций.
Результаты сравнения работы программы с результатами работы MathCAD или надстройки «Поиск решения» в MSExcel (на выбор).
Ответы на контрольные вопросы.
Выводы по работе.