问题标签 [deap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在 Python 中使用 DEAP 绘制多目标帕累托前沿
对于我正在从事的项目,我在基于 Python 的进化框架DEAP 中设置了 3 个不同的目标作为优化目标。
它可以使用类似NSGA-II 的算法来处理多目标问题。无论如何要生成帕累托前沿表面以可视化结果。
python - 如何使用 random.randint 找到概率不相等的随机 0 和 1
我在 Python 中使用DEAP工具箱进行遗传算法。
toolbox.register("attr_bool", random.randint, 0, 1)
是一个为 GA 中的总体随机选择 0 和 1 的函数。我想强制 GA 随机选择 0 和 1,但例如 80% 为 1,其余为 0。
我认为srng.binomial(X.shape, p=retain_prob)
是一种选择,但我想使用random.randint
功能。想知道我们如何做到这一点?
python - 如何在 DEAP Python 中为遗传算法设置种群中的特定染色体
我在 Python 中使用 DEAP 并在那里使用遗传算法。以下是大小为 的属性(染色体)的定义100
。
toolbox.register("attr_bool", random.randint, 0, 1)
下面的表达式创建了一个大小为 300 的群体,其中每一列都是染色体或解决方案。
pop = toolbox.population(n=300)
我的问题是,我怎样才能强制pop
拥有一个列(染色体或溶液) all 1
。我想确保存在一个向量为1
in 的解决方案。
python - 资源分配优化——多背包的变体
我有J个项目,运行超过T周,每个项目在第t周使用S量的资源(基于预定义的矩阵)。我必须将这些项目分配给I集群,其中集群容量C_i是已知的。此外,每个项目都属于某个子组G。
这似乎是一个 0-1 多重背包问题,对吧?但是,存在一些差异。所有项目都必须准确分配到 1 个集群,一旦分配,就无法从其中移动。这通常会导致背包(集群)的过度包装,违反了“背包不能超过容量”的约束,只会产生不可行的解决方案。因此,它对目标产生影响。
我的目标是,按优先顺序:
1) 尽量减少超过集群容量的资源请求的总发生率。通俗地说,就是尽量减少违反集群容量的次数。
2)资源请求最大程度地分布在集群中。
3)同一组中的项目最大程度地分布在集群中。
现在,对于我的问题:
我可以假设这是一个 0-1 多重背包问题吗?我也可以假设它是线性的吗?到目前为止,我在文献中找不到任何关于这个问题的确切变化的类似案例研究。
我已经实现了一些初学者级别的代码,这些代码为项目到集群分配生成随机解决方案,并创建了一个 Pareto-optimal front。下一步是实现一个简单的多目标优化算法。我什至不知道如何开始,因为我在我的文学作品中没有遇到过类似的东西。我是 Python 的初学者,所以即使阅读 PyGMO、DEAP 甚至 SciPy 的库文档对我来说也太复杂了。有什么建议么?
python - HyperVolume 函数在 Python 3 中不起作用
基于此处找到的 HyperVolume 函数(直接下载链接),我正在尝试为我的算法返回超容量指标。但是,甚至测试代码都不起作用:
我收到的错误似乎与我使用的是 Python 3 相关,而函数本身使用的是 Python 2。有没有办法解决这个问题?Python 3 中是否实现了类似的功能?
我也在deap 中看过这个,但似乎有同样的问题。
LE:有人问我具体的错误,所以我会在解决问题时记录下来
- 名称 xrange 未定义 - 通过替换为 range 来修复
- TypeError:不可排序的类型:Node() < Node()
python - 如何保留可变长度
我对在 Python 中使用 DEAP 应用遗传算法很感兴趣。可以在此处查看背包的示例实现。我正在尝试创建自己的交叉函数,并且我想保留父母的长度如下:
但是,函数开头的 ind1 和 in2 的长度与末尾的 ind1 和 ind2 的长度不同。ind1 和 ind2 开头的长度都应该等于 max_no。我希望有人能给我一个暗示为什么会这样。我很困惑。
谢谢,任何帮助将不胜感激。
编辑:这是我的突变功能。如您所见,我还试图在此处保留个人的可变长度
python - DEAP 遗传算法
我目前正在将 DEAP 用于 Python 中的遗传算法。我想创建一个具有长度的初始人口no_sensors
。不过我的问题是,由于random.choice(nodes)
函数的原因,一些节点最终是相同的,并且初始长度最终小于no_sensors
. 我想知道是否有办法解决这个问题:
基本上,我需要 list 中固定长度的唯一项目nodes
。我正在考虑使用random.sample(nodes, no_sensors)
,但我似乎无法将其合并到代码中而不会产生错误
您可以在此处查看其他示例。
python - 如何在 Python 中使用 DEAP 将 GP 转换为字符串并再次返回?
我正在做一个遗传编程项目,我需要能够将遗传程序(类 deap.creator.Individual)转换为字符串,更改一些内容(同时保持问题 100% 在语法上与 DEAP 一致),然后将其放回个体群体中以进行进一步进化。
但是,我只能使用 from_string 方法将字符串转换回 gp.PrimitiveTree 类。我看到的 creator.Individual 的唯一构造函数是盲目地生成整个种群或从现有的个体构造个体。没有任何方法可以仅从现有gp.PrimitiveTree 创建一个个体。
那么,有人知道我该怎么做吗?
注意:个人是自定义的,但在所有 DEAP 示例中都是标准的,并且是使用创建的
python-3.x - Python Deap GP 评估个体导致错误
每当我尝试使用 DEAP 的 GP 部分评估个人时,我目前都遇到了问题。
我收到以下错误:
如果有人对可能导致此问题的原因有任何想法,那么我将非常感谢一些建议。我当前的评估函数如下所示:
其中数据包含正在使用的数据(错误中列出的 8 个变量的值)以及指定从中获取这 8 个值的 x 和 y 坐标的点。谢谢你的建议!