哪种机器学习算法来评估组的最佳组合?



这是问题的简化版本:

你有五个战士的小组。每个战士拥有 1 到 10 件物品,每人可以携带 1 件物品参加战斗。给定有关战斗的信息(地形类型、一天中的时间等),每个战士应该选择哪种武器来产生最强的群体?

物品可以是弓、盾、剑、弹射器、医疗箱、马等,地形类型可以是山区、平原、沼泽、雪地等。

请注意,规则不容易编纂,因为它们是基于物品和地形条件之间的协同作用:例如,"剑"是好武器,"弓"是好武器,但五个带剑的战士或五个带弓的战士比两个带弓的战士和三个带剑的战士更糟糕,因为五个带剑的战士很容易在没有掩护的情况下受到远程攻击, 五个拿着弓的战士被盾牌弄得毫无用处。还有复杂的地形条件,例如,如果地形很难穿越,或者如果你在山顶上,弓箭更好。一匹马在平坦的地形上会很棒,但如果一个人有一匹马而其他人没有武器,那么这匹马就没用了。

我的天真解决方案是(a)训练机器学习回归算法,将地形信息和一组5个项目组合作为输入并生成一个值,其中越高越好,然后(b)生成项目的所有组合输入,将每个输入输入到算法中,然后选择最高值。然而,随着组合数学的爆炸,这很快就会变得非常昂贵。

有没有更好的算法来表达"给定所有这些可能性,选择最佳组合"?如果它可以在亚马逊的机器学习堆栈上使用,则可以获得奖励积分。

这不是机器学习问题。这是一个搜索/优化问题,因此没有最佳的"机器学习"算法。 请参阅:https://en.wikipedia.org/wiki/Mathematical_optimization

鉴于您已经有一种廉价的方式来模拟给定地形和组合的战斗,您在天真方法中提到的问题是测试所有组合太昂贵了,只是不要!有许多搜索算法会尝试修剪您的搜索空间(请参阅 https://en.wikipedia.org/wiki/Beam_search)。一种非常适合您的情况的易于实现的技术(这正是典型的例子之一)是使用遗传算法,其中您的基因型是战士的组成。我敢打赌,您可以将其导入 AWS 中,从而为GA 提供大量库。

最新更新