#2. Делаем генетический алгоритм для задачи OneMax | Генетические алгоритмы на Python

preview_player
Показать описание
Пример реализации генетического алгоритма на языке Python для решения задачи OneMax.

Рекомендации по теме
Комментарии
Автор

Огромное спасибо за то, что взялись осветить на простых и понятных примерах эту тему!
Это огромная мотивация, чтобы наконец-то понять принципы работы ГА!

ЮрийСурнин-шс
Автор

Это просто нереально) Все доходчиво и понятно, да ещё и код на github. Спасибо!

misterygame
Автор

Просто супер!. Четко. ясно. понятно. Спасибо.

АлександрВальвачев-яъ
Автор

Спасибо за видео! По вашему примеру попробовал написать генетический алгоритм для поиска минимального покрывающего множества и все получилось. Мне кажется, что на 6:30 отбор трех кандидатов из популяции можно сделать с помощью random.sample. Возможно, так было бы проще.

learningmeansdoing
Автор

за ролик спасибо, но на код без слез не взглянешь

sergka
Автор

Спасибо за ролик. Но зачем изобретать велосипед?
Разве deep_copy не сможет клонировать объект?

matthewgiovannini
Автор

Вы не могли бы пояснить, что означает запятая после return() в определении функции oneMaxFitness? Также для меня необычна нотация последней строки в определении функции mutFlipBit() - ее можно как-то другим (обычным) образом записать? Спасибо

ВасяИванов-щз
Автор

Можно попросить снять серию видео по работе с Ubuntu?)

СомалиЛеснойдух
Автор

Далее этого канала можно на ютуб не ходить

dfcf
Автор

Пожалуйста, соблюдайте PEP8: названия калассоа в Camel case, функции через _

tosick
Автор

В строчке 75 у вас есть :
mutant[indx] = If mutant[indx] == 1 else 1
Я бы заменил на обычный mutant[indx] = abs(mutant[indx]-1)
Так когда у нас 1 то будет | 1-1 |= 0
А когда у нас 0 то будет | 0 - 1 | = 1
Впринцепи тоже самое, просто красивее )

Armkeyter
Автор

Здравствуйте, спасибо за классные уроки! Я сам разработчик, недавно начал интересоваться нейросетями, посоветуйте пожалуйста литературу для начинающего, чтобы более-менее разобраться в фундаментальных основах. Книг нашел штук 100, но не охота все подряд покупать))

ДмитрийЛысов-хз
Автор

Здравствуйте, Сергей! Скорее всего, я уже надоел вам своими вопросами, но все же я хотел бы уточнить один момент:
если в функциях нет return, то как мы оттуда получаем измененные/новые значения?

PrimaLuceAstronaut
Автор

Небольшое дополнение (вдруг кому-то поможет).

При RANDOM_SEED = 42 у меня отбор завершается на 33-м поколении:

Поколение 33: Макс приспособ. = 100, Средняя приспособ. = 97.59

Результат как в финале видео получается если запустить исходную версию программы (до перезалива).

timursurkhaev
Автор

Почему при турнирном отборе популяция того же размера получается? Выходит все особи кандидаты в родители или дубликаты образуются чтобы сами с собой размножаться?

igor_quantumman
Автор

Можно добавить лекции на ту же тему, но не на Python, а на Common Lisp?

uchenoche
Автор

странно, у меня не получилось при помощи этого алгоритма достичь максимума и за 100 поколений, хотя на графике устойчивый рост приспособленности.

еще: на мой взгляд есть более интересный вариант турнирного отбора: дать КАЖДОМУ индивидууму поучаствовать в турнире с 2 случайными индивидуумами. У автора в турнире участвуют 3 СЛУЧАЙНЫХ индивидуума. В моей версии нет вероятности отбраковки боле приспособленных индивидуумов.

еще: в данном примере увеличение вероятности мутации приводит к ускорению приспособленности популяции

desu-desu
Автор

Как можно ваще на пайтон программировать, это же просто ущербно

higiro