
- •Содержание
- •Введение
- •Титул спецчасти
- •Порядок контроля и приёмки
- •Эскизный проект
- •Постановка задачи
- •Предварительные нир
- •Обзор средств автоматизации туристского бизнеса.
- •Программный комплекс «Мастер-Тур»
- •1С.Предприятие
- •Потребности пользователя
- •Технический проект
- •Общий алгоритм работы программы
- •Выбор платформы для проектирования и его обоснование.
- •Выбор метода решения задачи и обоснование
- •Уточнение общего алгоритма
- •Описание генетических алгоритмов
- •История появления эволюционных алгоритмов
- •Основы генетических алгоритмов
- •Возможности применения генетических алгоритмов
- •Математическая формулировка экстремальной задачи однокритериального выбора
- •Понятие “оптимальное решение”
- •Влияние параметров генетического алгоритма на эффективность поиска
- •Операторы кроссовера и мутации
- •Выбор родительской пары
- •Механизм отбора
- •Формат данных
- •Разработка алгоритма генерации критерия
- •Разработка алгоритма оптимизации
- •Разработка структуры классов
- •Разработка базы данных системы
- •Конфигурация технических средств
- •Рабочий проект
- •Разработка программы
- •Алгоритмы работы программы
- •Методика испытаний
- •Разработка программной документации
- •Установка информационной системы
- •Титул технологи Технологический раздел
- •Введение
- •Объектно-ориентированное программирование
- •Объектно-ориентированное проектирование
- •Работа с базами данных вDelphi
- •Использование компонентовAdo
- •Методика отладки и тестирования программы
- •Особенности тестирования программного обеспечения
- •Встроенные средства отладки и тестирования среды разработки
- •Основные факторы надёжности системы
- •Метод «силовой отладки»
- •Методы тестирования
- •Алгоритмическое тестирование
- •Функциональное или аналитическое тестирование
- •Содержательное тестирование
- •Виды тестов
- •Анализ рынка туруслуг
- •Постановка задачи
- •Методы сегментирования
- •Расчёт сегментации
- •Титул пэб Раздел по технике безопасности
- •Введение.
- •Рабочее место турагента
- •Источники опасности и вредностей
- •Излучения экрана монитора
- •Микроклимат помещения
- •Психофизиологические факторы
- •Нерациональное освещение.
- •Заключение
- •Список литературы
- •Приложения
Какую работу нужно написать?
Разработка алгоритма оптимизации
Рассмотрим схему функционирования генетического алгоритма в его классическом варианте.
Инициировать начальный момент времени t=0. Случайным образом сформировать начальную популяцию, состоящую из k особей. B0 = {A1,A2,…,Ak)
Вычислить приспособленность каждой особи FAi = fit(Ai) , i=1…k и популяции в целом Ft = fit(Bt) (также иногда называемую термином фиттнес). Значение этой функции определяет насколько хорошо подходит особь, описанная данной хромосомой, для решения задачи.
Выбрать особь Ac из популяции. Ac = Get(Bt)
С определенной вероятностью (вероятностью кроссовера Pc) выбрать вторую особь из популяции Аc1 = Get(Bt) и произвести оператор кроссовера Ac = Crossing(Ac,Ac1).
С определенной вероятностью (вероятностью мутации Pm) выполнить оператор мутации. Ac = mutation(Ac).
С определенной вероятностью (вероятностью инверсии Pi) выполнить оператор инверсии Ac = inversion(Ac).
Поместить полученную хромосому в новую популяцию insert(Bt+1,Ac).
Выполнить операции, начиная с пункта 3, k раз.
Увеличить номер текущей эпохи t=t+1.
Если выполнилось условие останова, то завершить работу, иначе переход на шаг 2.
Теперь рассмотрим подробнее отдельные этапы алгоритма.
Наибольшую роль в успешном функционировании алгоритма играет этап отбора родительских хромосом на шагах 3 и 4. При этом возможны различные варианты. Наиболее часто используется метод отбора, называемый рулеткой. При использовании такого метода вероятность выбора хромосомы определяется ее приспособленностью, то есть PGet(Ai) ~ Fit(Ai)/Fit(Bt). Использование этого метода приводит к тому, что вероятность передачи признаков более приспособленными особями потомкам возрастает. Другой часто используемый метод – турнирный отбор. Он заключается в том, что случайно выбирается несколько особей из популяции (обычно 2) и победителем выбирается особь с наибольшей приспособленностью. Кроме того, в некоторых реализациях алгоритма применяется так называемая стратегия элитизма, которая заключается в том, что особи с наибольшей приспособленностью гарантировано переходят в новую популяцию. Использование элитизма обычно позволяет ускорить сходимость генетического алгоритма. Недостаток использования стратегии элитизма в том, что повышается вероятность попадания алгоритма в локальный минимум.
Другой важный момент – определение критериев останова. Обычно в качестве них применяются или ограничение на максимальное число эпох функционирования алгоритма, или определение его сходимости, обычно путем сравнивания приспособленности популяции на нескольких эпохах и остановки при стабилизации этого параметра.
Разработка структуры классов
Для
реализации модели были разработаны
следующие классы, представленные на
диаграмме классов.
Рис.3 Диаграмма классов
Класс TGeneпредставляет собой описатель гена, в котором свойствоBegPosозначает положение гена в хромосоме, а свойствоDegree– длину гена. Как я уже упоминал, в этой конкретной системе длина гена постоянна и равна 32 битам.
Порождённый от TBitsклассTChromosomeсодержит битовую строку, в которой хранится вся информация, а также ряд методов для работы с генами. Наиболее важными из них являются функции установки значений генов. Немаловажную роль играет свойствоSuitability, в котором хранится текущая приспособленность хромосомы (или значение фитнесс-функции). Этот класс агрегирует описания всех генов.
Класс TGeneticAlgorithmописывает непосредственно алгоритм оптимизации и содержит в разделеprivateмножество параметров, которые определяют работу алгоритма. Функциями этого класса реализуются генетические операторы, а также механизмы функционирования алгоритма в целом. В этом классе агрегированы объекты классаTChromosomeв количестве, определяемом параметромChromosomeCountкласса.
Также существует несколько процедур, не относящихся к классам, т.е. свободных. Среди них фитнесс-функция, которую формирует программа. Ссылка на эту функцию есть в классе TGeneticAlgorithm. Вынесение этой функции за пределы классов позволяет легко менять критерий оптимизации с целью улучшения алгоритма или применения в других областях.
Объединяет эти классы в единое целое класс, порождённый от TForm. В системе есть ещё несколько объектов классов, порождённых отTForm, но они не включены в диаграмму классов и не описываются подробно в связи с тем, что не несут особой функциональной нагрузки и служат только для более удобного сбора информации от пользователя.
Действие класса TChromosomeпокажу на диаграмме состояний.
Рис. 4 Диаграмма состояний – TChromosome.
Класс предназначен исключительно для хранения информации и не представляет особой сложности. На следующей диаграмме – класс TGeneticAlgorithm.
Рис.5 Диаграмма состояний – TGeneticAlgorithm