C# 遗传算法中的锦标赛评价
现在,每个遗传C#库(A.Forge,genetic Algorithm Framework,GeneticSharp)似乎只评估单个C# 遗传算法中的锦标赛评价,c#,genetic-algorithm,geneticsharp,C#,Genetic Algorithm,Geneticsharp,现在,每个遗传C#库(A.Forge,genetic Algorithm Framework,GeneticSharp)似乎只评估单个染色体,然后使用各种选择方法中的一种来创建新一代 因为我的问题涉及到两个人工智能之间的对抗,所以单独评估他们的健康状况有点困难。虽然游戏很简单,可以制造一些表面上的障碍(人工智能不直接交互,但障碍会发送给游戏中的其他人),让我获得一些抽象的适应度,但这不是“真正的”交易 这些库似乎也没有提供另一个接口,我可以实现这样的评估方法。是否有其他框架允许这一点,或者我需要
染色体
,然后使用各种选择方法中的一种来创建新一代
因为我的问题涉及到两个人工智能之间的对抗,所以单独评估他们的健康状况有点困难。虽然游戏很简单,可以制造一些表面上的障碍(人工智能不直接交互,但障碍会发送给游戏中的其他人),让我获得一些抽象的适应度,但这不是“真正的”交易
这些库似乎也没有提供另一个接口,我可以实现这样的评估方法。是否有其他框架允许这一点,或者我需要从头开始?每个遗传算法库都应该有一些方法来定义适应度函数,这才是您真正想要的。NET公开了该接口。GeneticSharp公开了界面。是的,你必须自己编写适应度函数——这是你的问题领域特有的部分。你可以让它变得简单或复杂 在每个染色体通过适应度函数并分配一个分数后,系统使用您喜欢的任何选择标准(锦标赛、轮盘赌等)来选择哪些染色体通过交叉和/或变异进入下一代 因此,与其说流程是这样的:
为你的染色体分配点数,以便在游戏中取得进一步进展,并为对手制造障碍奖励点数(如果这是游戏中与正常游戏不同的独特动作)。返回染色体的最终分数作为适应度函数输出。对于C#中的GA,我通常自己写。在任何情况下,适合度评估都是最难编写的部分。与其从头开始,为什么不放弃这些项目中的一个,帮助他们实现您需要的功能。您能展示一下您使用GeneticSharp迄今为止尝试过的代码吗?