Найти - Пользователи
Полная версия: Нужна помощь в реализации генетического алгоритма
Начало » Центр помощи » Нужна помощь в реализации генетического алгоритма
1
Fenicks88
Никак не могу реализовать алгоритм нахождения минимума функции с помощью генетического алгоритма.
Помогите всемогущие!!!
import matplotlib.pyplot as plt
import math
import numpy as np
from itertools import combinations
import copy
#coding: utf8
# pop_size - размер популяции
# mutprob - чем меньше, тем реже берем мутацию и чаще скрещивание
# elite - Доля особеq в популяции, считающихся хорошими решениями и переходящих в следующее поколение
# maxiter - Количество поколений

func = lambda x, y:8*x-16-12*(x+4)**(2/3)
class Genetic_op:
def genetic_optimize(domain, costf, pop_size=50, step=1, mutprob=0.2, elite=0.2, maxiter=100):

# Мутация
def mutate(vec):
i = math.random.randint(0, len(domain)-1)
if vec < domain:
return vec+[vec+step]+vec
else:
return vec+[vec-step]+vec

# Скрещивание
def crossover(r1, r2):
i = math.random.randint(1, len(domain)-2)
return r1+r2

# Создаем первую популяцию
pop =
for i in range(pop_size):
vec = [math.random.randint(0, domain) for i in range(len(domain))]
pop.append(vec)

# Сколько лучших оставляем из каждого поколения
topelite = int(elite*pop_size)

for i in range(maxiter):
scores =
scores.sort()
ranked =

# Сначала включаем только победителеи
pop = ranked

# Добавляем особей, полученных мутацией и скрещиванием победивших родителей
while len(pop) < pop_size:

if math.random.random() < mutprob:
# Мутация
c = math.random.randint(0, topelite)
pop.append(mutate(ranked))

else:
# Скрещивание
c1 = math.random.randint(0, topelite)
c2 = math.random.randint(0, topelite)
pop.append(crossover(ranked, ranked))


return scores, scores
JOHN_16
код оформляется в соответствующие теги, иначе теряется форматирование, а для питона оно важное
Fenicks88
Тут проблема в том как связать уравнение и код.
py.user.next
Fenicks88
Тут проблема в том как связать уравнение и код.
Ты просто перечитай свой код, там исчезли все квадратные скобки, потому что движок форума их удалил. Выложи правильно код, используя теги кода. Без этого никто не будет вчитываться и догадки строить, что там было.

реализации генетического алгоритма
Смешно выглядит “хочу бороздить просторы космоса, да только шнурки завязать не могу, чтобы до корабля дойти”.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB