遗传算法开源库,具有所有功能,例如cellularGA 功能

发布于 2024-09-08 23:08:34 字数 787 浏览 1 评论 0原文

我想为 SGI UV 系统(核心=512,共享内存=4TB)实现一个基于 GA 的特征选择程序,其运行方式如下: (特征选择是找到原始特征的最小子集的过程,这使得输出类之间的区分比使用原始特征集更好 - 或者对于给定数据来说是相同的,例如数据包含:{大气压力,温度,myShoeSize}作为自变量,输出是降雨量,特征选择的可能结果将是{Atm.Pressure,温度})。

GA 保留一个父池,每个父池代表一个不同的特征子集。这些父级需要使用支持向量机或任何其他机器学习方法(神经网络等)进行评估,因此我希望将每个父级发送到下一个可用的 cpu 核心,使用任何程序进行评估,并将适应度发送回大会。因此,GA 将负责除每个父级的评估(适应度)之外的所有事务 - 相反,GA 会将父级发送到可用的核心并等待适应度结果。这就是该方法的分布式特征所在(所以我不希望各种 GA 在不同的核心上运行,而只是在一个核心上运行一个 GA 并在不同的核心中生成适应度评估器)。

为了利用我的硬件的分布式计算功能,我希望 GA 以异步模式运行,而有两组父母,一组已接受健康评估,另一组正在等待评估。当有空闲核心时,GA 从未评估的池​​中取出父级并将其发送到核心。 与此同时,遗传算法从已评估的池中取出父母,对它们进行变异等。交叉它们并将其孩子发送到未评估的池​​中,依此类推。

所以,我的想法是获得一个开源的遗传算法库,并对其评估函数进行一些修改。如果库提供这种“异步”模式,那就太好了。除了所有这些之外,我希望该库能够提供很多功能,例如cellularGA。 无论出现什么,也都将是开源的。

有人有什么建议吗? 顺便说一句,有谁知道有关这种“异步”模式的出版物的任何参考 - 或者您认为这种模式有什么缺点吗?

I would like to implement a GA-based feature selection program for an SGI UV system (cores=512, shared memory=4TB) which operates as thus:
(Feature selection is the process by which the smallest subset of original features is found which makes discrimination between the output classes better than using the original set of features-or just the same-for the given data, e.g. data consists of : {Atmospheric Pressure, Temperature, myShoeSize} as independent variables and output is Rainfall, a possible outcome of feature selection would be {Atm.Pressure, Temperature}).

The GA keeps a pool of parents each of which represents a different feature subset. These parents need to be evaluated using a Support Vector Machine or any other Machine Learning Method (Neural Network etc.), so I want each parent to be sent to the next available cpu-core, evaluated using any program and the fitness sent back to the GA. The GA will therefore be responsible for everything except the evaluation (fitness) of each parent - instead the GA will send the parent to an available core and wait for fitness result. This is where the distributed-features of the method will be (So i don't want various GAs running on different cores, just one GA running on one core and spawning fitness evaluators in different cores).

In order to take advantage of the distributed-computing features of my hardware, I would like the GA to operate in an asynchronous mode whereas there are two groups of parents, those who had their fitness evaluated and those who are waiting for it. When there is a free core, the GA takes a parent from the pool of un-evaluated and sends it to the core.
In the meantime the GA takes parents from the evaluated pool mutates them etc. crossover them and sends its children to the un-evaluated pool and so on.

So, my idea is to get an open source GA library and modify it a little bit as far as its evaluation function is concerned. If the library offers this 'asynchronous' mode then that will be good. In addition to all these, I would like the library to offer a lot of features e.g. cellularGA.
Whatever comes out, will be open source too.

Does anyone have any suggestions?
btw does anyone know of any references to publications about this 'asynchronous' mode - or do you see any disadvantages with that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小嗲 2024-09-15 23:08:34

尝试JGAP。它更多的是关于遗传编程,但是有GA支持,而且它是开源的,所以你可以修改它。并且它具有分布式计算支持。

Try JGAP. It is more about genetic programming, but has GA support, and it is opeensource, so you can modify it. And it has distributed computing support.

浅浅 2024-09-15 23:08:34

最近,各种编程语言的开源项目都允许这样做。 DEAP for python 是我熟悉的一个,但还有其他 Python 包和类似的 R 包可以完成此类工作。

More recently, there are open source projects for various programming languages that allow this. DEAP for python is one I am familiar with, but there are other Python packages, and similar packages for R that would be able to do this type of work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文