C#中的遗传算法?

时间:2009-04-14 18:58:29

标签: c# .net genetic-algorithm

如何在C#中编写遗传算法?有图书馆吗?像C ++:http://lancet.mit.edu/ga/

4 个答案:

答案 0 :(得分:4)

这可能听起来像一个滑稽的答案,但您首先要确定您希望遗传算法解决的问题。如上所述,旅行销售人员问题是一个常见问题,也是学习它们如何运作的一种相当好的方式。

我说这是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;
};

正如您所看到的,适用于此的适应度函数需要将基因表示为双精度值(而不是例如位串)。

然而(这并不是解读文章,这很好),你可以很容易地自己写这篇文章,让你知道基本的GAs是如何工作的。

答案 1 :(得分:1)

有一个很好的框架“AForge.NET Genetics”,它不仅可以提供您在codeproject上找到的“hello world”示例。 查看重复的帖子Genetic Programming in C#

答案 2 :(得分:0)

您可以在CodeProject上找到C#的一些遗传算法信息。

答案 3 :(得分:0)

我在C#中开发了一个简单的GA展示项目。这是遗传算法的世界,我在一组接口上构建了这个例子,这些接口通常足以用作开发遗传算法的模式。

您可以在the github page上找到代码和文档(包括Enterprise Architect文档,包括设计图)。您还可以download可执行文件以查看其实际效果。

希望它有所帮助。