voronov-nikita / genetic_algorithm

genetic algorithm in python with various examples of solving problems for the best solution.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Genetic_Algorithm

Что из себя представляет генетический алгорит?

Генетический алгоритм - это способ решения задачи оптимизации по нахождению наилучшего варианта из нескольких. Процесс реализации основан на "естественном отборе", где выживает сильнейшая особь, т.е наилучшее решение из представленных.

Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.

Шаги выполнения:

  1. Создать первичных особей.

Первичные особи или начальная популяция создается случайным образом. Нам не важно, способны они конкурировать или же нет, по крайней мере, пока.

  1. Начало отбора.

Начало отбора характеризует начало сравнивания их характеристик между собой. Обычно берут две особи для сравнения их качеств.

  1. Выбор "родителей".

Данный выбор может быть основан на нескольких факторах и принципах:

1. Панмиксия - оба родителя случайны;
2. Инбридинг - оба родителя наиболее похожи друг на друга;
3. Аутбриндинг - оба родителя макисмально различны.
  1. Скрещивание.

Размножение в разных алгоритмах определяется по-разному — оно, конечно, зависит от представления данных. Главное требование к размножению — чтобы потомок или потомки имели возможность унаследовать черты обоих родителей, «смешав» их каким-либо способом.

  1. *Мутации.

Данный параметр помогает усложнить алгоритм таким образом, чтобы произошло как можно больше сравнений, что приведт к наиболее точному результату.

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

12.03.2023

About

genetic algorithm in python with various examples of solving problems for the best solution.


Languages

Language:Python 100.0%