![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 31.03.2008
Сообщений: 0
|
![]()
Нужно разработать программу. Не важно на каком языке и в каком пакете писать.
вот примерный алгоритм: Алгоритм: 1)Выбор из списка готовой функции (для нахождения минимума или максимума функции). - Выводится на экран график функции. 2) задание разрядности популяции (количество особей для записи в популяцию): восемь, шестнадцать, тридцать две, если не указывается, то по умолчанию выбирается шестнадцать. - Выбор работы программы либо в режиме тренажера(теста) , либо демонстрации (для учителя) 3)Порядок визуального представления работы метода 1 .Создаётся начальная популяция автоматически, либо числа вписываются вручную . -производится перевод чисел в двоичную систему. 2. Вычисляется приспособленность каждой особи (для минимума - чем меньше значение целевой функции, тем более приспособленной является особь, для максимума - чем больше значение целевой функции, тем более приспособленной является особь). 3. Начало цикла формирования нового поколения. - Скрещивание (представляет собой процесс случайного обмена значениями соответствующих элементов для произвольно сформированных пар. Для этого выбранные на этапе воспроизводства особи случайным образом группируются в пары. Далее каждая пара с заданной вероятностью подвергается скрещиванию. При скрещивании происходит случайный выбор позиции разделителя. Затем значения первых элементов первой строки записываются в соответствующие элементы второй, а значения первых элементов второй строки - в соответствующие элементы первой. В результате получаем две новых особи, каждая из которых является комбинацией частей двух родительских особей). Точка разделителя задаётся вручную, либо автоматически. -Мутация (представляет собой процесс случайного изменения значений элементов особи. Для этого особи, получившиеся на этапе скрещивания, просматриваются поэлементно, и каждый элемент с заданной вероятностью мутации может мутировать, т.е. изменить значение на любой случайно выбранный символ, допустимый для данной позиции. Операция мутации позволяет находить новые комбинации признаков, увеличивающих ценность особей популяции.). Процент мутации печатается вручную, либо задаётся автоматически в пределах: от 0,01 до 0,3. Так же можно самому изменять каждый элемент в особи. 4. Вычисляется приспособленность каждой новой особи (для минимума - чем меньше значение целевой функции, тем более приспособленной является особь, для максимума - чем больше значение целевой функции, тем более приспособленной является особь). 5. Формирование нового поколения. Выбираются наиболее приспособленные особи из старого поколения и новых особей автоматически, либо особи выбираются самостоятельно тестируемым и вписываются. 6. Проверяется выполнение условия останова генетического алгоритма. Выход из генетического алгоритма происходит либо тогда, когда новые поколения перестают существенно отличаться от предыдущих, т.е., как говорят, "алгоритм сходится", либо когда пройдено заданное количество поколений или заданное время работы алгоритма (чтобы не было "зацикливания" и динамического зависания в случае, когда решение не может быть найдено в заданное время ). Если ГА сошелся, то это означает, что решение найдено, т.е. получено поколение, идеально приспособленное к условиям данной фиксированной среды обитания. Иначе – переход на шаг 3. писать лучше на dmitrijjdudorov@rambler.ru |
![]() |
![]() |
![]() |
#2 |
Заблокирован
Регистрация: 12.05.2010
Сообщений: 0
|
![]()
номер ICQ: 565460353 или 480964456
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 05.05.2009
Сообщений: 6
|
![]()
стандартная задачка, сам даю студентам подобные.
прилагаю набросанный упрощенный пример реализации - полным прогоном смотрим как увеличивается функция полезности путем скрещивания и отбора лучших http://zalil.ru/29954198 полное задание выполню за 1 день, 1000р.
специализация - программирование и проектирование (icq: 419-319-475; e-mail: maxov-1@mail.ru)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа для работы с базой данных "Записная книжка" | ArtS | Помощь студентам | 6 | 27.07.2010 19:12 |
срочно нужна программа на Paradox Delphi для диплома по теме: "Автоматизация работы кафедры"!!! | olgatim | Фриланс | 7 | 19.01.2009 06:37 |
программа "Лабораторные работы по електротехнике" | Nighthawk | Общие вопросы Delphi | 3 | 15.09.2008 20:50 |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |