
Среда программирования: Java
Название работы: Генетические алгоритмы (ГА). Задача о рюкзаке: имеется рюкзак с ограниченной вместимостью по массе; также имеется набор вещей с определенным весом и ценностью. Необходимо подобрать такой набор вещей, чтобы он помещался в рюкзаке и имел максимальную ценность (стоимость).
Вид работы: Лабораторная работа
Тематика работы: Алгоритмы, Математика
Объем программы: 5 (по десятибалльной шкале)
Уровень сложности: 7 (по десятибалльной шкале)
Разработчик (автор):
Программист сайта kursovik.com
(письмо автору)
Данная работа написана ЧЕЛОВЕКОМ без использования ИИ
Ключевые слова: Генетический алгоритм, ГА, задача о рюкзаке, подобрать такой набор вещей, имел максимальную ценность, имел максимальную стоимость, общий вес не превосходит максимальную вместимость рюкзака, максимальная вместимость рюкзака, размер популяции, двухточечное скрещивание, участок генетического кода, точки скрещивания, оператор селекции, популяция потомков, childrenGenome, newPopulation, размер популяции, число поколений, максимальное количество поколений
Функции программы:
Генетические алгоритмы (ГА).
Задача о рюкзаке.
Разработать программу на Java для решения генетического алгоритма в соответствии с заданием:
Для выполнения данной лабораторной работы была выбрана задача о рюкзаке.
Формулировка задачи: имеется рюкзак с ограниченной вместимостью по массе; также имеется набор вещей с определенным весом и ценностью. Необходимо подобрать такой набор вещей, чтобы он помещался в рюкзаке и имел максимальную ценность (стоимость).
Решением-кандидатом будет список вещей, общая стоимость которых максимальна из всех возможных, а их общий вес не превосходит максимальную вместимость рюкзака.
За представление хромосомы будет отвечать массив с типом boolean.
Пример представления хромосомы: 0-1-1-1-0 (за определенную вещь отвечают высказывания true/false (т. е. цифры 1/0). Цифрой 0 будем обозначать вещь, которая не попала в рюкзак, а цифрой 1 - вещь, которая попала в рюкзак. Длина хромосомы = количество вещей.
Размер популяции - 800 особей.
Фитнес-функцией будет являться общая стоимость вещей поместившихся в рюкзак.
В качестве оператора скрещивания было выбрано двухточечное скрещивание, так как оно дает лучшие результаты, чем точечное. Суть одноточечного скрещивания заключается в том, что родительские хромосомы обмениваются участком генетического кода, который находится между двумя случайно выбранными точками скрещивания.
Вероятность мутации – 0.3. Мутация, в нашем случае, довольно проста — если мы пройдем проверку вероятности, мы мутируем, поменяв значение гена на противоположное (т. е. если значение гена было равно 1, то меняем его на 0 и наоборот). В противном случае мы просто возвращаем исходный геном.
Оператор селекции - отбор рулеткой.
Замена поколений будет осуществляться созданием новой популяцией потомков. Данный алгоритм заключается в следующем: изначально с помощью рулетки выбираем двух геномов-родителей, после их скрещивания мы получаем двух геномов-потомков и добавляем их в специальный список (childrenGenome) для дальнейшего формирования списка нового поколения (newPopulation); затем эти геномы подвергаем мутации и добавляем их в список (childrenGenome); геномы-родители, выбранные рулеткой, также добавляем в список (childrenGenome). Список получается довольно большой, поэтому продолжаем отбирать геномы для нового поколения. Для этого выбираем несколько геномов из списка childrenGenome с лучшей фитнес функцией, а остальные отбираем методом выбора рулеткой так, чтобы размер нового поколения (newPopulation) не превосходил изначально указанного размера популяции.
Условие останова - число поколений достигло максимального количества поколений.
Описание (отчет):
Есть
на 25 страниц, посмотреть оглавление
Пояснения к компиляции и запуску программы:
Для работы с программой следует использовать файлы с расширением java.

исходники
GeneticAlgor


description
encodings
misc
modules
project-template
uiDesigner
workspace
GeneticAlgor(2)
out
production
GeneticAlgor(2)
com
company
ChromosStructure
GeneticAlgor$1
GeneticAlgor
Main
src
com
company
ChromosStructure
GeneticAlgor
MainПеред покупкой готовой работы не забудьте проверить её оригинальность. Запросить у администратора проверку текущей оригинальности работы по версии системы Антиплагиат.РУ
Отчет к программе. СодержаниеЛистинг и скриншот работы программы.
Предварительный просмотр
Отчет к программе. СодержаниеЗадание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Описание реализованной программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Эксперименты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .