Comments (6)
我遇到的问题解空间太大,如果随机尝试解,不能找到符合约束条件的解,因此必须产生大量的随机的有效解,如何设置呢?
可以在执行脚本中的实例化算法模板对象之前添加一个“循环尝试初始化可行染色体”的一段代码,代码如下:
for i in range(100): tempPop = ea.Population(Encoding, Field, NIND) tempPop.initChrom(NIND) # 初始化种群染色体矩阵 problem.aimFunc(tempPop) # 计算种群的目标函数值 feasible = np.where(np.all(tempPop.CV <= 0, 1))[0] # 找到可行个体 if len(feasible) > 0: if i == 0: population = tempPop[feasible] else: population = population + tempPop[feasible] if population.sizes >= NIND: break if population.Chrom is not None: population = population[:NIND]
注:上述插入的代码通过不断的循环来尝试生成满足约束条件的个体染色体。如果第一遍循环还没生成足够的染色体,则继续循环生成。
from geatpy.
我遇到的问题解空间太大,如果随机尝试解,不能找到符合约束条件的解,因此必须产生大量的随机的有效解,如何设置呢?
可以在执行脚本中的实例化算法模板对象之前添加一个“循环尝试初始化可行染色体”的一段代码,代码如下:
for i in range(100): tempPop = ea.Population(Encoding, Field, NIND) tempPop.initChrom(NIND) # 初始化种群染色体矩阵 problem.aimFunc(tempPop) # 计算种群的目标函数值 feasible = np.where(np.all(tempPop.CV <= 0, 1))[0] # 找到可行个体 if len(feasible) > 0: if i == 0: population = tempPop[feasible] else: population = population + tempPop[feasible] if population.sizes >= NIND: break if population.Chrom is not None: population = population[:NIND]
注:上述插入的代码通过不断的循环来尝试生成满足约束条件的个体染色体。如果第一遍循环还没生成足够的染色体,则继续循环生成。
不好意思,我的说法有问题:
我的初始解已经通过其他程序计算得到,现在需要将计算得到的解作为初始种群。
from geatpy.
@HaoLiuwide
那更加简单呀,先根据已得到的解创建一条或若干条染色体(有1个已知解就创建对应的一条染色体,有2个就创建两条,以此类推),再利用numpy的tile()函数将刚刚创建好的染色体复制若干份,使得生成的染色体矩阵的行数与种群规模相等,这样就完成初始化种群染色体了(注意染色体矩阵的类型要符合Geatpy数据结构,即染色体矩阵是Numpy array类型,每一行代表一个个体的染色体)。如果要增加初始染色体的随机性,则对其进行轻微的高斯变异就好了。
from geatpy.
是的,我就是不知道把染色体矩阵赋给谁?是先把染色体赋给tempPop,然后population = tempPop吗?
@HaoLiuwide
那更加简单呀,先根据已得到的解创建一条或若干条染色体(有1个已知解就创建对应的一条染色体,有2个就创建两条,以此类推),再利用numpy的tile()函数将刚刚创建好的染色体复制若干份,使得生成的染色体矩阵的行数与种群规模相等,这样就完成初始化种群染色体了(注意染色体矩阵的类型要符合Geatpy数据结构,即染色体矩阵是Numpy array类型,每一行代表一个个体的染色体)。如果要增加初始染色体的随机性,则对其进行轻微的高斯变异就好了。
是的,我就是不知道把染色体矩阵赋给谁?是先把染色体赋给tempPop,然后population = tempPop吗?
from geatpy.
@HaoLiuwide 赋值给population的Chrom属性。(Population类的属性定义详见Population.py文件)
from geatpy.
@HaoLiuwide 赋值给population的Chrom属性。(Population类的属性定义详见Population.py文件)
谢谢,我试试
from geatpy.
Related Issues (20)
- 开发者你好,我想询问一下关于决策变量关系的问题 HOT 1
- 请问一下Geatpy什么时候支持Python 3.11呀? HOT 9
- 变量强制修改问题 HOT 1
- 【重大bug】call_back中,Population.save()与直接写成数据,完全对不上!!! HOT 11
- SEGA回调函数self.outFunc有问题,之前NSGA中并没有存在该问题 HOT 3
- 每代的结果输出
- python 12去除了 gil geatpy什么时候跟进呢
- 希望提供GPU加速功能 HOT 3
- 明显有可行解,但优化失败。 HOT 1
- 想在循环中调用geatpy,但每一次循环的目标函数参数不同,我应该如何将目标函数设置为除了决策变量之外还能传入其他参数的形式? HOT 1
- 开发者您好,我正在做一个多目标优化求解的问题,希望使用多进程提高效率 HOT 1
- 面积覆盖优化可以解决吗 HOT 1
- 开发者您好,请问是否有办法执行问题并行的求解? HOT 1
- 帕累托前沿只给出了一个解怎么解决 HOT 2
- 进不去网站 HOT 4
- Geatpy Website has been moved to Github. HOT 4
- 有没有多目标,且又是混合染色体的案例 HOT 1
- 文档缺失 HOT 1
- 似乎无法基于先验解继续寻优 HOT 3
- 请问如何输出各个决策变量的值 并和两个函数值对应 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geatpy.