【问题标题】:Is there a way to use the deap library in grasshopper有没有办法在蚂蚱中使用deap库
【发布时间】:2018-07-17 22:58:49
【问题描述】:
有没有办法可以在蚱蜢的 Python 节点中使用 deap 库
我想运行一个遗传算法,但适应度函数是由蚱蜢计算的(只有适应度函数,所有其他的东西都由python节点内的deap处理)
可以吗?
我遇到了问题
在grasshopper的Python接口中导入deap库(我想我可以通过从Python路径手动复制文件来解决)
-
(主要问题)grashopper 不允许闭环,所以我似乎无法找到一种方法将适应度反馈到主要代码的 Python 节点中
【问题讨论】:
标签:
python-3.x
python-2.7
rhino
deap
grasshopper
【解决方案1】:
无法正常工作,只好用蚱蜢插件解决
问题是你只能为蚂蚱安装 Iron python 库
【解决方案2】:
这是“开箱即用”蚱蜢的两个众所周知的问题,但有几个插件可以帮助解决这些问题。
问题一
基本的 GHPython 组件使用 Iron Python,并且可以限制哪些库兼容和能够使用。为了绕过这个限制,有一个名为“GH_CPython”的插件。它允许您为代码设置本地安装的 python 解释器,然后可以访问该本地解释器可用的任何库。因此,如果您在本地安装 deap Libary,那么它将在 Grasshopper GH_Cpython 编辑器中可用。这是下载和安装 GH_CPython 的链接:https://www.food4rhino.com/en/app/ghcpython
问题二
如您所述,Grasshopper 是程序性的,对递归例程的支持有限。为了解决这个问题,有几个插件支持递归,并且可能有助于您的实现。如果没有对您的目标进行更深入的描述,很难说哪个插件最适合您的情况。这里有几个选项,每个选项都提供递归功能,允许“闭环”,其中脚本的结果可以作为输入反馈。
-
Hoopsnake - 非常基本,并且已经使用了最长的时间
-
Anemone - 更灵活一点,并使用多个组件进行循环开始和结束,以获得更清晰的脚本。它还具有“记录历史”功能。
-
Octopus - 有一个类似于 Hoopsnake 的“循环”组件。它还具有“记录历史”功能。