Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2010, 18:14   #1
maximp
Новичок
Джуниор
 
Регистрация: 31.03.2008
Сообщений: 0
По умолчанию программа для лабораторной работы "Генетические алгоритмы"

Нужно разработать программу. Не важно на каком языке и в каком пакете писать.
вот примерный алгоритм:
Алгоритм:
1)Выбор из списка готовой функции (для нахождения минимума или максимума функции).
- Выводится на экран график функции.

2) задание разрядности популяции (количество особей для записи в популяцию):
восемь, шестнадцать, тридцать две, если не указывается, то по умолчанию выбирается шестнадцать.
- Выбор работы программы либо в режиме тренажера(теста) , либо демонстрации (для учителя)

3)Порядок визуального представления работы метода

1 .Создаётся начальная популяция автоматически, либо числа вписываются вручную .
-производится перевод чисел в двоичную систему.

2. Вычисляется приспособленность каждой особи (для минимума - чем меньше
значение целевой функции, тем более приспособленной является особь, для максимума - чем больше значение целевой функции, тем более приспособленной является особь).

3. Начало цикла формирования нового поколения.
- Скрещивание (представляет собой процесс случайного обмена значениями соответствующих элементов для произвольно сформированных пар. Для этого выбранные на этапе воспроизводства особи случайным образом группируются в пары. Далее каждая пара с заданной вероятностью подвергается скрещиванию. При скрещивании происходит случайный выбор позиции разделителя. Затем значения первых элементов первой строки записываются в соответствующие элементы второй, а значения первых элементов второй строки - в соответствующие элементы первой. В результате получаем две новых особи, каждая из которых является комбинацией частей двух родительских особей). Точка разделителя задаётся вручную, либо автоматически.
-Мутация (представляет собой процесс случайного изменения значений элементов особи. Для этого особи, получившиеся на этапе скрещивания, просматриваются поэлементно, и каждый элемент с заданной вероятностью мутации может мутировать, т.е. изменить значение на любой случайно выбранный символ, допустимый для данной позиции. Операция мутации позволяет находить новые комбинации признаков, увеличивающих ценность особей популяции.). Процент мутации печатается вручную, либо задаётся автоматически в пределах: от 0,01 до 0,3. Так же можно самому изменять каждый элемент в особи.




4. Вычисляется приспособленность каждой новой особи (для минимума - чем меньше
значение целевой функции, тем более приспособленной является особь, для максимума - чем больше значение целевой функции, тем более приспособленной является особь).

5. Формирование нового поколения.
Выбираются наиболее приспособленные особи из старого поколения и новых особей автоматически, либо особи выбираются самостоятельно тестируемым и вписываются.

6. Проверяется выполнение условия останова генетического алгоритма.
Выход из генетического алгоритма происходит либо тогда, когда новые поколения перестают существенно отличаться от предыдущих, т.е., как говорят, "алгоритм сходится", либо когда пройдено заданное количество поколений или заданное время работы алгоритма (чтобы не было "зацикливания" и динамического зависания в случае, когда решение не может быть найдено в заданное время ). Если ГА сошелся, то это означает, что решение найдено, т.е. получено поколение, идеально приспособленное к условиям данной фиксированной среды обитания. Иначе – переход на шаг 3.

писать лучше на
dmitrijjdudorov@rambler.ru
maximp вне форума Ответить с цитированием
Старый 11.11.2010, 09:10   #2
mikefreel
Заблокирован
 
Регистрация: 12.05.2010
Сообщений: 0
По умолчанию

номер ICQ: 565460353 или 480964456
mikefreel вне форума Ответить с цитированием
Старый 11.11.2010, 20:14   #3
генерал
 
Аватар для генерал
 
Регистрация: 05.05.2009
Сообщений: 6
Сообщение

стандартная задачка, сам даю студентам подобные.
прилагаю набросанный упрощенный пример реализации - полным прогоном смотрим как увеличивается функция полезности путем скрещивания и отбора лучших
http://zalil.ru/29954198
полное задание выполню за 1 день, 1000р.
специализация - программирование и проектирование (icq: 419-319-475; e-mail: maxov-1@mail.ru)
генерал вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для работы с базой данных "Записная книжка" 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