我目前正在为棋盘游戏编写Alpha-Beta 修剪算法。现在我需要想出一个好的评价函数。这个游戏有点像蛇和梯子(你必须先完成比赛),所以对于一个可能的功能列表,我想出了以下内容:
- 字段索引应该很高
- 在较低的领域,我的燃料应该很高,到最后它应该很低(进入目标最多需要'10')
- 必须花费所有“能量提升”才能进入目标,因此优先考虑它们
- 如果有可能进入目标(合法移动),那就去做吧!
对于一些特殊情况,可能还有更多。
我在某处读到将它们组合成线性函数是最好的(也是最简单的),例如:
在哪里
- = 字段索引
- = 加电
- = 燃料
因为我不能问专家,而且我自己也不是专家,所以我没有人问这些参数是否好,我是否忘记了一些东西,或者我是否正确地组合了这些因素。
这些参数没什么大不了的,因为我可以使用遗传算法或其他方法来优化它们。
我的问题和问题是:我必须做什么才能找出如何以最佳方式组合我的功能(如何优化功能/参数安排本身)?