У меня есть генетический алгоритм, который в настоящее время использует выбор колеса рулетки для создания новой популяции, и я хотел бы изменить его на стохастическую универсальную выборку.
У меня есть грубый план того, как все будет работать здесь:
pointerDistance = sumFitness/popSize
start = rand.uniform(0, pointerDistance)
for i in xrange(popSize):
pointers.append(start + i*pointerDistance)
cumulativeFit = 0
newIndiv = 0
for p in pointers:
while cumulativeFit <= p:
cumulativeFit += pop[newIndiv].fitness
newPop[newIndiv] = copy.deepcopy(pop[newIndiv])
newIndiv += 1
Но я борюсь с тем, как именно реализовать стохастическую универсальную выборку. Кто-нибудь знает хороший источник псевдокода или пример?
Краткое описание того, что такое стохастическая универсальная выборка на примере (но я не уверен, что это имеет смысл?):