Автор работы: Пользователь скрыл имя, 10 Ноября 2011 в 11:33, дипломная работа
С оптимизацией человек сталкивается постоянно в своей жизни, порой даже не замечая этого. Он выбирает, на каких станциях метро нам лучше пересесть в другой поезд, чтобы добраться до места назначения быстрее и с меньшим числом пересадок. Казалось бы, простая задача, с которой каждый справляется с большим или меньшим успехом. Но даже это простой пример показывает, как неоднозначен выбор. Приходиться проводить оптимизацию по двум критериям – время и количество пересадок. А если таких критериев не 2, а несколько десятков, причём один критерий зависит от определённого количества других, то тут уже не так просто справиться с задачей, найти лучшее сочетание значений этих критериев. Не помогает даже большой опыт человека в области, в которой решается задача оптимизации.
ВВЕДЕНИЕ 3
1. ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ 7
1.1. История появления эволюционных алгоритмов 7
1.2. Общие сведения о ГА 9
1.3. Модели генетических алгоритмов 13
1.4. Другие пути решения задач оптимизации 17
1.5. Применение генетических алгоритмов 21
1.6. Постановка задачи 24
2. ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ДЛЯ ЗАДАЧ СОСТАВЛЕНИЯ УЧЕБНЫХ ПЛАНОВ 25
2.1. Учебные планы нового поколения. Общие сведения 25
2.2. Формирование рабочих учебных планов 27
2.3. Формирование учебных планов на основе генетических алгоритмов 31
2.4. Соответствие терминов биологии и предметной области 34
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ДЛЯ ГЕНЕРАЦИИ УЧЕБНЫХ ПЛАНОВ 36
3.1. Выбор языка программирования. Pascal ABC 36
3.2. Функциональная схема работы программы 38
3.3. Описание fitness-функции 42
3.4. Генерация вариативных наборов 44
3.5. Описание констант и переменных программы 46
3.6. Описание функций программы 47
3.7. Результат работы программы 49
ЗАКЛЮЧЕНИЕ 51
Список используемой литературы 52
Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на школьников и студентов.
Эта
система призвана осуществить плавный
переход от простейших программ к
модульному, объектно-ориентированному,
событийному и компонентному
программированию. Многие концепции
в Pascal ABC сознательно упрощены, что
позволяет использовать их на более
ранних этапах обучения. Модуль графики
обходится без объектов, хотя его
возможности практически
Простейшие событийные программы можно писать, пользуясь лишь процедурными переменными. В консольных программах можно создавать таймеры и звуки, которые реализованы без использования объектов. Модули устроены так же, как и основная программа: отсутствует разделение на секцию интерфейса и секцию реализации. Тела методов можно определять непосредственно внутри классов, что позволяет создавать классы практически сразу после изучения записей, процедур и функций. Имеется модуль контейнерных классов (динамические массивы, стеки, очереди, множества), а также библиотека визуальных компонентов.
Компилятор Pascal ABC не генерирует
исполняемый код в виде .exe-файла,
а создает в результате
В систему Pascal ABC интегрирован
электронный задачник Programming Taskbook (автор
М.Э.Абрамян), содержащий 1000 задач разного
уровня сложности и
Язык программирования Pascal ABC был выбран в качестве инструментального средства, так как он позволяет снять ограничение на размер сегмента данных объёмом 64 кБ, как это имеет место в системах программирования под MS DOS.
По предварительным оценкам объём данных ГА будет значительно превышать указанные 64кБ, поскольку один УП (хромосома) будет представлять собой совокупность примерно 15 дисциплин (генов), где каждая дисциплина занимает порядка 120 байт.
Число хромосом в популяции будет равно примерно 200 различных вариантов, различающихся количеством часов лекций, лабораторных и практик, а так же содержанием либо отсутствием зачета, экзамена, реферата, курсовых работ и проектов. Т.о. один ген может иметь от 120 до 240 различных вариаций.
Схема
генерации дисциплины представлена
в п. 3.4
Общая схема работы ГА представлена на рисунке 7. Случайным образом создаётся множество генотипов начальной популяции. Они оцениваются с использованием «функции приспособленности», в результате чего с каждым генотипом ассоциируется определённое значение («приспособленность»), которое определяет насколько хорошо фенотип, им описываемый, решает поставленную задачу.
Из полученного множества решений («поколения») с учётом значения «приспособленности» выбираются решения (обычно лучшие особи имеют большую вероятность быть выбранными), к которым применяются «генетические операторы» (в большинстве случаев «скрещивание» — crossover и «мутация» — mutation), результатом чего является получение новых решений. Для них также вычисляется значение приспособленности, и затем производится отбор («селекция») лучших решений в следующее поколение.
Этот набор действий повторяется итеративно, так моделируется «эволюционный процесс», продолжающийся несколько жизненных циклов (поколений), пока не будет выполнен критерий остановки алгоритма. Таким критерием может быть:
- нахождение глобального, либо оптимального решения;
- исчерпание числа поколений, отпущенных на эволюцию;
- исчерпание времени, отпущенного на эволюцию.
Генетические алгоритмы служат, главным образом, для поиска решений в многомерных пространствах поиска.
Таким образом, можно выделить следующие этапы генетического алгоритма:
Рисунок 7 – Общая схема работы ГА
Перед
первым шагом нужно случайным
образом создать начальную
Размножение в генетических алгоритмах обычно половое – чтобы произвести потомка, нужны несколько родителей, обычно два.
Размножение в разных алгоритмах определяется по-разному – оно, конечно, зависит от представления данных. Главное требование к размножению – чтобы потомок или потомки имели возможность унаследовать черты обоих родителей, «смешав» их каким-либо способом.
Главной
проблемой многих генетических алгоритмов
– недостаток разнообразия (diversity) в особях.
Достаточно быстро выделяется один-единственный
генотип, который представляет собой локальный
максимум, а затем все элементы популяции
проигрывают ему отбор, и вся популяция
«забивается» копиями этой особи. Есть
разные способы борьбы с таким нежелательным
эффектом; один из них – выбор для размножения
не самых приспособленных, но вообще всех
особей.
К
мутациям относится все то же самое,
что и к размножению: есть некоторая
доля мутантов m, являющаяся параметром
генетического алгоритма, и на шаге
мутаций нужно выбрать mN особей,
а затем изменить их в соответствии
с заранее определенными
На
этапе отбора нужно из всей популяции
выбрать определенную ее долю, которая
останется «в живых» на этом этапе
эволюции. Есть разные способы проводить
отбор. Вероятность выживания особи
h должна зависеть от значения функции
приспособленности Fitness(h). Сама доля выживших
s обычно является параметром генетического
алгоритма, и ее просто задают заранее.
По итогам отбора из N особей популяции
H должны остаться sN особей, которые
войдут в итоговую популяцию H'. Остальные
особи погибают.
Главной
функцией в реализации генетического
алгоритма выступает fitness-
- общее количество часов учебного плана;
- число зачетов в семестре и в целом за период обучения;
- число экзаменов в семестре и в целом за период обучения;
- число контрольных работ в семестре и в целом за период обучения;
- число курсовых проектов в семестре и в целом за период обучения;
- соотношение аудиторной и
- число аудиторных часов в неделю
- и т.д.
Эти
показатели определены в Федеральном
государственный
Кроме того, в fitness-функции осуществляется проверка на наличие повторяющихся дисциплин.
По этим характеристикам оценивается качество хромосомы. В результате этих проверок каждая хромосома либо получает, либо лишается определённого числа баллов, общая сумма которых и представляет собой её приспособленность (fitness) – число, которое оказывается сравнительно маленьким для плохих хромосом и сравнительно большим для хороших хромосом.
Рисунок
9 – Схема алгоритма
fitness-функции
Успешность работы ГА определяется большим разнообразием «генетического материала». Под генетическим материалом в нашем случае будем понимать наличие различных вариантов представления одной и той же дисциплины (гена).
Входными данными для создания разнообразных генов является текстовый файл с содержанием имени дисциплины, количества часов, наличия зачетов, экзаменов, контрольных работ, рефератов и т.д., которое определено экспертным советом кафедры. Экспертный совет кафедры определяет ограниченный набор дисциплин учебного плана, каждая дисциплина которого будет служить источником разнообразных вариантов.
Процедура генерации вариантов базовой дисциплины предполагает дискретное изменение количественных и контрольных характеристик дисциплины. К количественным характеристикам относятся число часов лекций, практических и лабораторных работ, самостоятельная работа студентов, контрольные характеристики подразумевают наличие или отсутствие экзаменов, зачетов, рефератов, курсовых и т. п. Так, в данном варианте формирования генотипа дисциплины, генерирование вначале ведется по зачету, экзамену, либо наличию их обоих. Далее каждая из полученных дисциплин генерируется по количеству часов 18, 36 или 54. Причем в программе допускается варьирование: 18 либо 36 часов, затем 36, 18 или 54 часа и 54 либо 36 часов. Затем получившиеся новые дисциплины делятся по наличию лекций, лабораторных и практических занятий, а каждая из них уже по реферату, домашнему заданию, курсовой работе или курсовому проекту. Таким образом, из ограниченного базового набора можно получить широкий спектр исходного материала для работы генетического алгоритма.
Вид формирования одной дисциплины
представлен на рисунке 8.
Рисунок 8 – Сема формирования вариативного набора одной дисциплины
Информация о работе Составление учебных планов на основе генетических алгоритмов