Member 13318292 Ответов: 0

Генетический алгоритм в Python: мутация: переверните немного


У меня есть список случайно сгенерированных 0 и 1. Мне нужно выбрать один бит и перевернуть его на противоположную сторону: либо ноль к единице, либо один к нулю. Это часть проблемы генетического алгоритма в Python.

Что я уже пробовал:

import random as randint

pop_size = int(input('Enter a population size:'))
length = int(input('Enter an organism length:'))

orgs = []
for i in range(pop_size):
    org = []
    for a in range(length):
        org.append(randint.randint(0,1))
    orgs.append(org) 
    
orgs.sort(reverse=True)
print orgs 

new_orgs = []
new_org = orgs[0:(pop_size/2):1] 
#look at user input for 50 or 25, etc
new_orgs.append(new_org) 
print new_orgs

import random as randint  
x = randint.choice(new_orgs)
j = randint.randrange(len(x))
x[j] = int(not x[j])
print x


Приведенный выше код возвращает:
Enter a population size: 4
Enter an organism length: 3
[[1, 1, 1], [1, 0, 1], [1, 0, 0], [0, 1, 1]] #sorted list by sum
[[[1, 1, 1], [1, 0, 1]]] # half of list which has 'higher' fitness
[[1, 1, 1], 0] #output




Мне нужно получить что-то вроде этого:
[[1, 0, 1], [1,1,1,]] #что касается выхода

Patrice T

В чем вопрос ? или проблема ?

Member 13318292

У меня есть список случайно сгенерированных 0 и 1. Как выбрать один бит и перевернуть его на противоположную сторону: либо ноль к единице, либо единица к нулю?

Patrice T

Это не вопрос.

0 Ответов