Python | Одноточечный кроссовер в генетическом алгоритме

Опубликовано: 23 Июля, 2021

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

Примеры:

P1: 000011110011 
P2: 101010101010

Балл: 4
После кроссовера:
C1: 000010101010
C2: 101011110011

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

Код: программа Python для одноточечного кроссовера в генетическом алгоритме




# library to generate a random number
random import
# function for implementing the single-point crossover
def crossover(l, q):
# converting the string to list for performing the crossover
l = list (l)
q = list (q)
# generating the random number to perform crossover
k = random.randint( 0 , 15 )
print ( "Crossover point :" , k)
# interchanging the genes
for i in range (k, len (s)):
l[i], q[i] = q[i], l[i]
l = ''.join(l)
q = ''.join(q)
print (l)
print (q, " " )
return l, q
# patent chromosomes:
s = '1100110110110011'
p = '1000110011011111'
print ( "Parents" )
print ( "P1 :" , s)
print ( "P2 :" , p, " " )
# function calling and storing the off springs for
# next generation crossover
for i in range ( 5 ):
print ( "Generation " , i + 1 , "Childrens :" )
s, p = crossover(s, p)
Выход:
Родители
P1: 1100110110110011
P2: 1000110011011111 

Дети поколения 1:
Точка кроссовера: 2
1100110011011111
1000110110110011 


Дети поколения 2:
Точка кроссовера: 7
1100110110110011
1000110011011111 


Дети поколения 3:
Точка кроссовера: 0
1000110011011111
1100110110110011 


Дети поколения 4:
Точка кроссовера: 7
1000110110110011
1100110011011111 


Дети поколения 5:
Точка кроссовера: 2
1000110011011111
1100110110110011

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.




Предыдущий
Кроссовер в генетическом алгоритме
Следующий
Генетический алгоритм обучения с подкреплением: реализация на Python
Рекомендуемые статьи
Страница :
Статья предоставлена:
АКШАЙРАДЖ4
@ AKSHAYRAJ4
Голосуйте за трудности
Текущая сложность: эксперт
Теги статьи:
  • Искусственный интеллект
  • Генетические алгоритмы
  • Машинное обучение
  • Python
Теги практики:
  • Машинное обучение
Сообщить о проблеме
Python Машинное обучение Искусственный интеллект

РЕКОМЕНДУЕМЫЕ СТАТЬИ