我正在建立一个程序,发挥跳棋尽可能好。它已经打得很好了,但目标是改进它更多。
这可以通过添加新的方法来评估某个董事会状态的“好”程度来实现。我已经实现了这些方法,但是每个方法都有一个可以乘以的参数。
我已经实现了这样一个事实:我可以让程序对着自己玩,如果玩家赢了(或者打一场平局并有优势),那么游戏的结果就是一个正数;如果玩家输了(或者打一张平局并有优势),则为负数;如果他们平局并且棋子相等,则为0。
我有3个参数,可以从0到1。我需要找到这3个参数的组合,这些参数需要在逗号之后尽可能多的出现,并且需要尽可能快地计算。
如果第一组参数有优势(正数越大,优势越大),我可以让两组不同的参数相互竞争,结果是肯定的;如果第二组参数有优势,则为负值;如果它们都有相同的优势,则为0。
例如:(0.232,1,0.62)对(0.12345,0.71,0)可以输出1.32987,这意味着第一组参数具有优势。考虑到大约需要2分钟才能得到2组对决的结果!
我想知道一个算法/文献/关键字/解释,我如何能找到一个尽可能精确的数字集合,赢得所有其他的数字?
我已经运行了一些测试,并发现可能(不确定)对每个参数的效果将是,结果会变得更好,直到他们到达一个峰值,比他们将再次下降。
发布于 2017-11-23 11:53:40
发布于 2017-11-24 05:20:05
SMAC是基于顺序模型的算法配置,是解决这一问题的一种较新的方法.这很可能是过火了。它的目标是评估特定配置非常昂贵的场景。许多传统的参数优化方法都假设评估某一特定参数的选择并不昂贵。有一个Python的实现。
SMAC的高层思想是为各种配置参数(这是“基于模型”的部分)建立算法性能的预测模型,并在评估新实例时更新和改进该模型(这是“顺序”部分)。预测模型允许指导选择下一步要尝试的配置,以便能够以最少的评估量获得最多的信息。当然,正是这些细节造就了麦迪。
弗兰克·哈特的其他作品,SMAC的领头羊之一,也是相关的和有趣的。他之前就做过一些相关的工作,比如ParamILS。基于性别的遗传算法 (GGA)也是与之密切相关的,但并不是but的工作。
如果您对使用这类工具非常感兴趣,您可能会发现算法配置中的陷阱与最佳实践很有趣。
https://softwareengineering.stackexchange.com/questions/361150
复制相似问题