首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >博弈AI遗传算法中的适应度函数估计

博弈AI遗传算法中的适应度函数估计
EN

Software Engineering用户
提问于 2017-11-28 15:15:09
回答 1查看 277关注 0票数 3

我已经创建了一个Gomoku(连续5) AI使用阿尔法-贝塔剪枝。它在一个不那么愚蠢的水平上移动。首先,让我描述α-Beta算法的分级函数.当它收到一个板作为输入,它首先发现所有重复的石头,并给它一个分数取决于它的有用性作为一个威胁。它将返回所有重复分数的总和。

但是,问题是我明确地决定了分数(总共4分),而且他们似乎不是最好的选择。所以我决定用遗传算法来生成这些分数。每一个基因都将是4个分数中的一个。例如,硬编码分数的染色体应该是:5,400,000,000,50000。

然而,由于我使用遗传算法来创建评分函数的分数,我不知道该如何实现遗传适应度函数。因此,我想到了以下几点:

而不是使用适应度函数,我只是将选择过程合并在一起,如果我有2条染色体,A和B,并且需要选择一条,我将模拟一个游戏,在每个AI中同时使用A和B染色体,然后选择获胜的染色体。

1.这是否是替代健身功能的可行办法?

2.由于Alpha-Beta算法的特点,我需要给出获胜条件的最大得分,在大多数情况下,该条件被设置为无穷大。然而,由于我不能使用无限,我只是使用了一个荒谬的大数字。我还需要把这个分数加到染色体上吗?或者因为它是微不足道的,不改变评分函数的值,把它作为一个常量?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2017-11-28 16:42:07

免责声明:我对遗传算法没有实际经验,只是有点兴趣.

所以你的策略是让个人配对,让他们互相竞争。消灭失败者,培育剩下的?从理论上讲,这是一种合理的方法。我只是有一些保留/建议:

  • 单一的消除可能不会给你一个人的力量的好印象。如果处理能力允许,您可以使用瑞士配对运行多轮比赛。瑞士配对制度的优点是,你可以越来越准确地对候选人进行排名,而不必让每个人都与每个人对齐。
  • 在我看来,只使用4条具有如此大范围的染色体,可能需要一个庞大的起始群体,或者导致相对较少的潜在价值。出于本能,我期望一种使用从多个简单染色体计算出的分数的算法会更好。例如: 4*24条染色体,每组24条染色体是一个分数的二进制表示。或者你可以做4×6染色体,每组6个染色体是一个数字的二进制表示,分数计算为2^number。在种群规模、基因复杂性和分数分辨率之间可能存在一个甜蜜的点。

关于瑞士锦标赛系统的更多信息

  • 每一轮配对的参赛者都要经过几场比赛。这个号码由你决定。三个中最好的是常见的。
  • 每一场比赛都能得到一个胜利者(3分)或平局(双方都得到1分)。
  • 在连续几轮的瑞士回合中,每一名参赛者都与他们从未打过的对手进行比赛,并尽可能接近他们自己的得分。

这样,如果你得到一些平局,就不会有多大影响了。如果你得到的只是平局,你就有麻烦了.

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/361430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档