问题标签 [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 投票
1 回答
1034 浏览

python - 如何在 DEAP Python 中创建个人城市列表?

我从 Python 中的 DEAP 开始,我假装实现一个 GA 来解决TSP 问题

我想知道是否可以创建一个城市名称(字符串)作为个人的列表。例如,一个人可以是:["Madrid","Paris","London","Rome"]

此时,我用整数表示城市:

0 投票
1 回答
805 浏览

python-2.7 - DEAP 工具箱:考虑突变和交叉算子中不同类型和范围的基因

我正在研究遗传算法的实现,并且正在使用 DEAP 工具箱。我编写了一个代码来初始化染色体,其中它们的第一个基因是 [0.01, 2048] 范围内的浮点数,它们的第二个基因再次在 [0.0001, 10] 范围内浮点数并且它们的最后三个基因是布尔值。这是我的代码:

有一个创建人口的样本:

现在,我想通过考虑基因类型和范围的差异来对我的染色体进行突变和交叉。目前我有一个错误,因为在应用交叉和变异算子后,染色体的第一个基因产生了 0 值,这与我的评估函数错误。任何人都可以帮助我使用 DEAP 工具箱在最初定义的范围内产生新种群的代码选择、变异和交叉吗?

0 投票
1 回答
174 浏览

python - Python 对象作为字典列表的列表

我正在尝试开发一个充当列表列表的类。我需要它在deap框架中将它作为个人的类型传递。目前,我正在使用 numpy 对象数组。这是代码。

但是当我尝试将值传递给 的对象时MyArray

我得到一个错误,

欢迎任何建议。您还可以向我展示一种不同的方式,而无需使用有助于类型创建的 numpy。

可以在这里找到类似的问题

0 投票
1 回答
3651 浏览

spyder - ModuleNotFoundError:Spyder3 中没有名为“deap”的模块

我在 Windows 10 和 Raspbian 上都遇到了同样的错误。我在这里检查过,但对我没有帮助。“pip install deap”下载正常,但是当我执行 DEAP 示例代码时,我收到 Module Not Found 错误。

0 投票
1 回答
1647 浏览

python - 使用 DEAP 的遗传算法进行多目标优化

我正在尝试解决物流配送路线问题。例如,有 x 辆卡车需要将 y 产品从各自的起点配送到各自的目的地。

要解决的问题:

  1. 哪种产品由哪辆卡车运送;
  2. 产品以什么顺序被拾取和丢弃。

要达到的目标:(使用不同的权重)

  • 一种产品被提货的最短等待时间;
  • 每个产品的最短交货时间。

在阅读了 DEAP 文档及其示例之后,我仍然不确定什么是实现这一点的好方法。因为对于上面的问题 1 和 2,我有不同的选择、交叉和变异函数,但似乎在 DEAP 中您只能在工具箱中为每个函数注册一个函数?

其次,我如何在这里实现评估功能? 我定义的个体是一个类实例,由卡车类实例的字典、产品类实例的字典、卡车 ID 列表、产品 ID 列表和产品-卡车组合选项字典组成。个人和评估值之间的联系并不是那么简单,只有一个评估函数有点难(至少对我这个新手来说)。谢谢!

0 投票
0 回答
233 浏览

python - python Deap可以处理个体有两种变量,float和int吗?

我有一个具有多变量和多目标的问题,但我不知道如何处理它。目标就像

我将个人和人口定义为

但这似乎行不通,有什么想法吗?

0 投票
1 回答
540 浏览

python - 使用 Python 包 deap 自定义人口表示

我正在使用 Python 包。我的问题是从数据集中获取我的人口,或者从基因生成它。例如:我有 [[1,2,0,0,...],[1,3,4,0,...],...] 作为数据集,我想从中选择随机 n 个元素这个数据集是我的人口。这是使随机二进制数的填充为 0 或 1 的代码,向量在 len 中为 100:

请注意,我可以简单地使用 random.sample(Data_set, Num_of_ind) 来制作我的人口,但这不适用于 deap 包。我需要一个使用 Deap 包的解决方案。

0 投票
1 回答
360 浏览

python - 在 pySpark 上运行的 Python DEAP 无法调用创建者函数

问题

我正在尝试在带有 pySpark 的 Jupyter 笔记本中运行 Python DEAP 遗传算法以进行并行化。通过一些研究,我了解到本质是使用工具箱注册基于火花的地图功能,以允许火花进行适应度评估(下面的代码)。

我的问题是,如何公开 SparkContext 的创建者函数?与 SCOOP 和多处理相比,Spark 是否需要任何特殊处理?


代码

我正在运行的代码的本质如下,已经创建了 SparContext (sc):


但是,这会导致错误指出:

AttributeError:无法从“/gpfs/fs01/user/s093-7b1ca9741d3405-545a66b5b986/.local/lib/python3.5/site-packages/deap/creator.py”获取模块“deap.creator”上的属性“个人” '

我的理解是,对于 SCOOP 和 Python 并行等其他并行化设置,deap.creator 方法必须是全局范围的一部分。由于我在 JUpyter 笔记本中工作,因此下面的代码应该是这种情况。"%who" 还表明,除许多其他外,这些都列在全局范围内:

创建者 ea sparkMap 工具箱


错误信息

完整的错误信息:

0 投票
1 回答
1598 浏览

python - 在 Python 的 DEAP 中,我怎样才能拥有一个具有多个基因的个体,例如“基因型”?

TLDR:

我如何使用DEAP来进化Genotypes而不仅仅是Genes,例如(Gene1, Gene2, ...){'gene1':..., 'gene2':...}

一个最小的示例是创建 DEAP 的OneMax示例的进化,使用 的基因型(np.ndarray(10), np.ndarray(42)),其中Genotype[0]只有与Genotype[0]...[1]...[1]的配对和整个基因型可用于评估适应度。


在 Python 的DEAP中,常见的用例是拥有一个“基因”,例如一个可以配对、变异和评估适合度的列表。

我的一般问题是,我想使用基因的异构列表/元组/字典,每个都有自己的类型,而诸如交配之类的功能仅按类型定义。

具体来说,我有一个我想代表的“神经网络”

  1. 一种神经元参数基因

  2. 和一个网络结构+参数的基因。

类型(借用类型语言的语法)可能是

这些数组是结构化的 numpy 数组,具有各种键,例如:np.dtype([('a', int), ('b', float), ...]),因此在 中的每个索引处NeuronGene,我都有一个带有键的字典式参数{'a':..., 'b':..., ...}。如果这使问题过于复杂,我仍然很想看看如何拥有 genericnp.ndarray的基因型。

“基因型”可能是Individual :: (NeuronGene, NetworkGene), 和

一个适当的mate函数可能被定义为:

作为一个最小的例子,我试图复制 DEAP 的OneMax问题,但使用 2 个基因的基因型。所以 2 个不同大小np.ndarray的 s,每个都试图单独最大化它们的总和。即使通读DEAP 的文档代码库,我的代码也不值得发布。

对于像这个最小示例这样的简单问题,当然可以使用一个长度为 的基因n + m,但在我的实际情况中,我有一个为 的基因(1D array, 2D array),而突变/交配对于该基因型中的每个单独基因来说意味着不同的东西。

我应该提一下,我的eval函数只是解析为一个单一的适应度函数,尽管我认为一个适当的通用答案可以针对多个进行优化。

0 投票
0 回答
665 浏览

python - Spark + Deap 示例不起作用

目标

我试图让 DEAP 跨火花集群并行化。我已经看到其他用户引用了这一点,因为它允许通过 yarn 轻松地与现有服务器架构紧密集成。我遵循了参考文献中引用的几个在线教程。我有 deap 的工作代码,然后是我试图转换为使用 spark 的代码。同样的错误“无法在模块 deap.creator 上获取属性个人”是通常发生的错误。

工作代码

冉:

输出

不工作的代码

冉:

输出

全文(粘贴)

强调:

参考: