2017-04-10 127 views
-3

这是问题的简化版本:哪种机器学习算法可以评估组的最佳组合?

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

项目可以是一张弓,盾,剑,弹射器,药箱,马等地形类型可以是山区,平原,沼泽,雪等

注意,规则不能轻易因为它们是基于物品和地形条件之间的协同作用而被编纂的:例如,“剑”是一种好武器,“弓”是一种好武器,但是五名带有剑或五把武器的战士比弓更糟两名弓箭手和三名剑士,因为五名带剑的战士很容易受到无遮挡的远程攻击,五名戴弓的战士被盾牌毫无用处。也有复杂的地形条件,例如,如果地形非常难以穿越,或者如果你在山顶,弓就更好。一匹马在平坦的地形上会很棒,但如果一个人有一匹马而其他人没有武器,那么这匹马就没用了。 (a)训练机器学习回归算法,将地形信息和一组5个项目组合作为输入,产生一个值,其中越高越好,然后(b)产生所有组合输入的项目,每个进入算法,并选择最高的价值。然而,随着组合学的爆炸,每当这种情况变得非常昂贵。

有没有更好的算法来说“给出所有这些可能性,挑选最佳组合”?奖励积分,如果它可以在亚马逊的机器学习堆栈上使用。

+1

欢迎来到StackOverflow。请阅读并遵守帮助文档中的发布准则。 [在主题](http://stackoverflow.com/help/on-topic)和[如何提问](http://stackoverflow.com/help/how-to-ask)适用于此处。 StackOverflow不是一个设计,编码,研究或教程服务。这个问题在“太宽泛”和“寻求非现场资源”之间摇摆不定。 – Prune

+0

@Prune - 关于非现场资源的观点,但是您能否帮助我理解这是多么广泛的问题,以及如何解决问题?我认为这个问题非常具体:给定这个特定的问题和输入,什么机器学习算法采用这个输入并产生我定义的输出。对我来说似乎是合适的。 –

+1

Stack Overflow针对特定的编程问题。这是一个设计问题,更适合于一些更通用的团队。交叉验证或统计可能是适当的选择。另外请注意,迄今为止,还没有人对您的问题发表过评论或投票,所以我们在谈论我的个人意见,而不是压倒性的任务。 :-) – Prune

回答

0

这不是一个机器学习问题。这是一个搜索/优化问题,因此没有最好的“机器学习”算法。 见:https://en.wikipedia.org/wiki/Mathematical_optimization

既然你已经有模拟给出的地形和组合的战斗一种廉价的方式,你在你的幼稚的做法提的问题是,测试的所有组合是太贵了,只是不!有许多搜索算法会尝试修剪您的搜索空间(请参阅https://en.wikipedia.org/wiki/Beam_search)。一个很容易实现的技术非常适合你的情况(这正是典型的例子之一)就是在你的基因型是战士组成的情况下使用遗传算法。 GA有很多库,我敢打赌你可以导入AWS。