Уведомления

Группа в Telegram: @pythonsu

#1 Июль 2, 2017 18:53:16

Fenicks88
Зарегистрирован: 2017-07-02
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь в реализации генетического алгоритма

Никак не могу реализовать алгоритм нахождения минимума функции с помощью генетического алгоритма.
Помогите всемогущие!!!
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

Офлайн

#2 Июль 2, 2017 23:00:39

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Нужна помощь в реализации генетического алгоритма

код оформляется в соответствующие теги, иначе теряется форматирование, а для питона оно важное



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Июль 2, 2017 23:16:56

Fenicks88
Зарегистрирован: 2017-07-02
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь в реализации генетического алгоритма

Тут проблема в том как связать уравнение и код.

Офлайн

#4 Июль 5, 2017 23:21:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Нужна помощь в реализации генетического алгоритма

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

реализации генетического алгоритма
Смешно выглядит “хочу бороздить просторы космоса, да только шнурки завязать не могу, чтобы до корабля дойти”.



Отредактировано py.user.next (Июль 5, 2017 23:26:41)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version