geatpy icon indicating copy to clipboard operation
geatpy copied to clipboard

Evolutionary algorithm toolbox and framework with high performance for Python

Results 145 geatpy issues
Sort by recently updated
recently updated
newest added

我要做一个决策变量很多的模型。所有决策变量取值为0、1。但是有28*69*11这么多个决策变量。 我定义了Dim=28*69*11 我想知道经过了 Vars = pop.Phen 转换成了决策变量矩阵,我想对变量矩阵进行控制 我想问,这个变量矩阵Vars是多少维的矩阵?

您好,我这边目前在构建CV矩阵时,由于目标函数是未来24小时的能耗,因此采用了循环来处理每一小时相同的代码(对于CV,在每个小时我都有两个约束,即对于24小时,共有2*24=48个约束,由于太麻烦,因此在定义aimFunc时我采用了循环形式,主要代码如下),不知道我这样写CV矩阵出错在哪里? ``` pop.CV = np.array([]) for i in range(24): # 共24小时 # 省略处理步骤 pop.CV = np.append(pop.CV, self.SOC - 1) #约束1 pop.CV = np.append(pop.CV, - self.SOC) #约束2 pop.CV = hstack(pop.CV) ```

写了一个循环多次调用,但第二次的时候就会卡住了,终止之后出现如下情况: File "/Users/bytedance/PycharmProjects/pythonProject/optimizeVar.py", line 46, in [population, obj_trace, var_trace] = myAlgorithm.run(prophetPop) # 执行算法模板,插入先知种群 File "/Users/bytedance/.local/lib/python3.5/site-packages/geatpy/templates/soeas/DE/DE_currentToBest_1_bin/soea_DE_currentToBest_1_bin_templet.py", line 65, in run return self.finishing(population) # 调用finishing完成后续工作并返回结果 File "/Users/bytedance/.local/lib/python3.5/site-packages/geatpy/Algorithm.py", line 319, in finishing ea.trcplot(self.obj_trace,...

您好, 1. 我自己写了一个 Problem类,里面有 处理约束的问题,看了文档,发现咱们现在目前只是,用pop.cv 标注 违反的 粒子,并没有修复的接口是吧。 2. ![7AD9C4EF604D2A723CF08CBEEF3644EE](https://user-images.githubusercontent.com/110315882/191495133-0d7d8b5a-49c7-4d60-a7d5-5ca7f1a80210.jpg) 似乎 对于约束的修复就是在aimFunc 里面 自己来修复就可以了是吧 3. 在Problem的类中,有 lb和ub 作为上下限制。如果优化的问题,是某一个值要求约束在一个多边形区域内,lb和ub怎么设置。如果不设置或者为None,在继承类中,自己定义新的边界,可以吗? 谢谢!

涉及到的代码demo如下(均是文档中的代码): `# -*- coding: utf-8 -*- """MyProblem.py""" import numpy as np import geatpy as ea class MyProblem(ea.Problem): # 继承Problem父类 def __init__(self): name = 'BNH' # 初始化name(函数名称,可以随意设置) M = 2 #...

【已解决】原文往下翻 geatpy官方文档演示并行优化时,是单目标,并且没有约束的,所以有些地方我理解错了。 [**官方文档**](https://github.com/geatpy-dev/geatpy/tree/master/demo/soea_demo/soea_demo6) 后来重新理解了一遍,发现并行的原理其实就是,先**把种群**(比如NIND=200,就是200个决策变量)**全部输进subAimFunc里计算一遍,算出所有种群对应的目标函数值和约束值**(我们只能手动调节让这部分实现并行),然后在evalVars函数里,以numpy数组的形式返回所有目标函数值和约束值。 所以我把subAimFunc的代码改成了这样: ``` def subAimFunc(x): a, b, c = operation(x) ObjV_CV = np.hstack([a, b, c - 0.1]) return ObjV_CV # 目标函数值和约束值作为一个numpy数组一起返回 ``` 即:把目标函数和约束的值都放进一个numpy数组里,等后面在evalVars再把两部分拆开。 evalVars部分的代码如下: ``` def evalVars(Vars):...

请问能否结合pytorch来加速进化过程?

**Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd...

**Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd...