Я пытаюсь понять, как работают генетические алгоритмы. Как и все, чему я научился, пытаясь написать что-то на моем, однако мои знания очень ограничены, и я не уверен, что я делаю это правильно.Что не так с моим генетическим алгоритмом
Цель этого алгоритма состоит в том, чтобы увидеть, сколько времени потребуется половине стада для заражения болезнью, если половина этой популяции уже заражена. Это всего лишь пример, который я придумал в своей голове, поэтому я не уверен, что это даже будет жизнеспособным примером.
Некоторые отзывы о том, как я могу улучшить свои знания, будут приятными.
Вот код:
import random
def disease():
herd = []
generations = 0
pos = 0
for x in range(100):
herd.append(random.choice('01'))
print herd
same = all(x == herd[0] for x in herd)
while same == False:
same = all(x == herd[0] for x in herd)
for animal in herd:
try:
if pos != 0:
after = herd[pos+1]
before = herd[pos-1]
if after == before and after == '1' and before == '1' and animal == '0':
print "infection at", pos
herd[pos] = '1'
#print herd
pos += 1
except IndexError:
pass
pos = 0
generations += 1
random.shuffle(herd)
#print herd
print "Took",generations,"generations to infect all members of herd."
if __name__ == "__main__":
disease()
Действительно, что * неправильно с вашим алгоритмом? Вы говорите нам. Вы получаете какие-либо ошибки? Получает ли он неожиданный результат? – Volatility
Нет ошибок, я имею в виду логику моего кода. Я не уверен, что он на 100% точным. Трудно отлаживать логику. – Max00355
Это может быть лучше подходит для http://codereview.stackexchange.com/ – tacaswell