问题标签 [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.

0 投票
2 回答
5985 浏览

python - 如何在 Python 中使用 DEAP 绘制多目标帕累托前沿

对于我正在从事的项目,我在基于 Python 的进化框架DEAP 中设置了 3 个不同的目标作为优化目标。

它可以使用类似NSGA-II 的算法来处理多目标问题。无论如何要生成帕累托前沿表面以可视化结果。

0 投票
2 回答
2840 浏览

python - Python CMA-ES 算法解决用户定义的函数和约束

我正在努力在 python 中创建一个CMA-ES优化算法的简单示例。使用 CMA-ES 算法优化功能x**2 + 2*y**2 -4*x*y - 0.5*y的最简化方法是什么-2<x<2-1<2*(x**2)*y<1

我查看了 DEAP 库,但无法进行有凝聚力的尝试。我发现他们的文档不够直观。我还查看了cma包,但我不清楚如何实现约束。

0 投票
3 回答
1234 浏览

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功能。想知道我们如何做到这一点?

0 投票
1 回答
344 浏览

python - 如何在 DEAP Python 中为遗传算法设置种群中的特定染色体

我在 Python 中使用 DEAP 并在那里使用遗传算法。以下是大小为 的属性(染色体)的定义100

toolbox.register("attr_bool", random.randint, 0, 1)

下面的表达式创建了一个大小为 300 的群体,其中每一列都是染色体或解决方案。

pop = toolbox.population(n=300)

我的问题是,我怎样才能强制pop拥有一个列(染色体或溶液) all 1。我想确保存在一个向量为1in 的解决方案。

0 投票
0 回答
868 浏览

python - 资源分配优化——多背包的变体

我有J个项目,运行超过T周,每个项目在第t周使用S量的资源(基于预定义的矩阵)。我必须将这些项目分配给I集群,其中集群容量C_i是已知的。此外,每个项目都属于某个子组G

这似乎是一个 0-1 多重背包问题,对吧?但是,存在一些差异。所有项目都必须准确分配到 1 个集群,一旦分配,就无法从其中移动。这通常会导致背包(集群)的过度包装,违反了“背包不能超过容量”的约束,只会产生不可行的解决方案。因此,它对目标产生影响。

我的目标是,按优先顺序:

1) 尽量减少超过集群容量的资源请求的总发生率。通俗地说,就是尽量减少违反集群容量的次数。

目标 1

2)资源请求最大程度地分布在集群中。

目标 2

3)同一组中的项目最大程度地分布在集群中。

目标 3

现在,对于我的问题:

我可以假设这是一个 0-1 多重背包问题吗?我也可以假设它是线性的吗?到目前为止,我在文献中找不到任何关于这个问题的确切变化的类似案例研究。

我已经实现了一些初学者级别的代码,这些代码为项目到集群分配生成随机解决方案,并创建了一个 Pareto-optimal front。下一步是实现一个简单的多目标优化算法。我什至不知道如何开始,因为我在我的文学作品中没有遇到过类似的东西。我是 Python 的初学者,所以即使阅读 PyGMO、DEAP 甚至 SciPy 的库文档对我来说也太复杂了。有什么建议么?

0 投票
2 回答
1667 浏览

python - HyperVolume 函数在 Python 3 中不起作用

基于此处找到的 HyperVolume 函数(直接下载链接),我正在尝试为我的算法返回超容量指标。但是,甚至测试代码都不起作用:

我收到的错误似乎与我使用的是 Python 3 相关,而函数本身使用的是 Python 2。有没有办法解决这个问题?Python 3 中是否实现了类似的功能?

我也在deap 中看过这个,但似乎有同样的问题。

LE:有人问我具体的错误,所以我会在解决问题时记录下来

  1. 名称 xrange 未定义 - 通过替换为 range 来修复
  2. TypeError:不可排序的类型:Node() < Node()
0 投票
1 回答
96 浏览

python - 如何保留可变长度

我对在 Python 中使用 DEAP 应用遗传算法很感兴趣。可以在此处查看背包的示例实现。我正在尝试创建自己的交叉函数,并且我想保留父母的长度如下:

但是,函数开头的 ind1 和 in2 的长度与末尾的 ind1 和 ind2 的长度不同。ind1 和 ind2 开头的长度都应该等于 max_no。我希望有人能给我一个暗示为什么会这样。我很困惑。

谢谢,任何帮助将不胜感激。

编辑:这是我的突变功能。如您所见,我还试图在此处保留个人的可变长度

0 投票
2 回答
1028 浏览

python - DEAP 遗传算法

我目前正在将 DEAP 用于 Python 中的遗传算法。我想创建一个具有长度的初始人口no_sensors。不过我的问题是,由于random.choice(nodes)函数的原因,一些节点最终是相同的,并且初始长度最终小于no_sensors. 我想知道是否有办法解决这个问题:

基本上,我需要 list 中固定长度的唯一项目nodes。我正在考虑使用random.sample(nodes, no_sensors),但我似乎无法将其合并到代码中而不会产生错误

您可以在此处查看其他示例。

0 投票
2 回答
745 浏览

python - 如何在 Python 中使用 DEAP 将 GP 转换为字符串并再次返回?

我正在做一个遗传编程项目,我需要能够将遗传程序(类 deap.creator.Individual)转换为字符串,更改一些内容(同时保持问题 100% 在语法上与 DEAP 一致),然后将其放回个体群体中以进行进一步进化。

但是,我只能使用 from_string 方法将字符串转换回 gp.PrimitiveTree 类。我看到的 creator.Individual 的唯一构造函数是盲目地生成整个种群或从现有的个体构造个体。没有任何方法可以仅从现有gp.PrimitiveTree 创建一个个体。

那么,有人知道我该怎么做吗?

注意:个人是自定义的,但在所有 DEAP 示例中都是标准的,并且是使用创建的

0 投票
0 回答
289 浏览

python-3.x - Python Deap GP 评估个体导致错误

每当我尝试使用 DEAP 的 GP 部分评估个人时,我目前都遇到了问题。

我收到以下错误:

如果有人对可能导致此问题的原因有任何想法,那么我将非常感谢一些建议。我当前的评估函数如下所示:

其中数据包含正在使用的数据(错误中列出的 8 个变量的值)以及指定从中获取这 8 个值的 x 和 y 坐标的点。谢谢你的建议!