Генетический алгоритм в 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
Это не вопрос.