【发布时间】:2010-10-19 10:23:08
【问题描述】:
如何在 C# 中编写遗传算法?有图书馆吗?喜欢 C++:http://lancet.mit.edu/ga/
【问题讨论】:
-
可能是遗传算法。只是根据他的问题的标题猜测。
标签: c# .net genetic-algorithm
如何在 C# 中编写遗传算法?有图书馆吗?喜欢 C++:http://lancet.mit.edu/ga/
【问题讨论】:
标签: c# .net genetic-algorithm
您可以在CodeProject 上找到一些 C# 的遗传算法信息。
【讨论】:
我用 C# 开发了一个简单的 GA 展示项目。这是遗传算法的世界,我在一组接口上构建了示例,这些接口足够通用,可以用作开发遗传算法的模式。
您可以在the github page 上找到代码和文档(包括包含设计图的 Enterprise Architect 文档)。你也可以download这个可执行文件来查看它的运行情况。
希望对你有帮助。
【讨论】:
这听起来像是一个滑稽的答案,但您首先需要决定您希望遗传算法解决什么问题。如前所述,旅行销售人员问题是一个常见的问题,也是了解他们如何工作的相当好的方法。
我说这是 GA 中最重要的部分之一是适应度函数,没有任何框架会为您编写。
这个来自 2003 年的 codeproject article 确实涵盖了:
使用方便:
GA ga = new GA(crossover rate,
mutation rate,
population size,
number of generations,
number of parameters for the fitness function);
ga.FitnessFunction = new GAFunction(theActualFunction);
这可以升级到 .NET 3:
ga.FitnessFunction = delegate(double[] values)
{
return 1.2d;
};
正如您所看到的,适应度函数期望您的基因被表示为双值(而不是例如位字符串)。
但是(这并不是在否定这篇文章,这很好),只要您了解基本 GA 的工作原理,您就可以自己轻松编写这篇文章。
【讨论】:
有一个很好的框架“AForge.NET Genetics”,它提供的不仅仅是代码项目上的“hello world”示例。 见重复帖子Genetic Programming in C#
【讨论】: