【问题标题】:Genetic algorithms in C#? [closed]C#中的遗传算法? [关闭]
【发布时间】:2010-10-19 10:23:08
【问题描述】:

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

【问题讨论】:

  • 可能是遗传算法。只是根据他的问题的标题猜测。

标签: c# .net genetic-algorithm


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    您可以在the github page 上找到代码和文档(包括包含设计图的 Enterprise Architect 文档)。你也可以download这个可执行文件来查看它的运行情况。

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      这听起来像是一个滑稽的答案,但您首先需要决定您希望遗传算法解决什么问题。如前所述,旅行销售人员问题是一个常见的问题,也是了解他们如何工作的相当好的方法。

      我说这是 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基因套件解决了旅行商问题,并且包含了源码。
      • 这里有一个关于使用 GA 解决旅行商问题的精彩讨论:lalena.com/AI/Tsp
      【解决方案4】:

      有一个很好的框架“AForge.NET Genetics”,它提供的不仅仅是代码项目上的“hello world”示例。 见重复帖子Genetic Programming in C#

      【讨论】:

        猜你喜欢
        • 2012-07-04
        • 2013-05-29
        • 2011-04-16
        • 2012-03-16
        • 2010-09-06
        • 2011-05-24
        • 2014-10-02
        • 2018-07-20
        • 2010-10-03
        相关资源
        最近更新 更多