Algorithm 解决规划问题
我是AI/算法领域的新手,目前正在尝试解决一个问题,到目前为止,我只在2d网格阵列上实现了a*路径查找 问题是这样的: 假设一个班级有40名学生(20f,20m),身高不同,有自己的座位偏好(行、列或两者),教室有50个座位,每个学生必须占据一个座位,座位布置如下:Algorithm 解决规划问题,algorithm,artificial-intelligence,Algorithm,Artificial Intelligence,我是AI/算法领域的新手,目前正在尝试解决一个问题,到目前为止,我只在2d网格阵列上实现了a*路径查找 问题是这样的: 假设一个班级有40名学生(20f,20m),身高不同,有自己的座位偏好(行、列或两者),教室有50个座位,每个学生必须占据一个座位,座位布置如下: [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ WHITE BOARD ]
为了给他们提供理想的座位,我们选择了一个评分图:
2.我在解决这个问题的正确道路上吗?约束6看起来似乎意味着这个问题可能是NP完全问题或NP难问题。这意味着:A*算法在这方面不起作用,因为不可能(除非P=NP)创建一个好的可接受的启发式函数。容许性意味着启发式函数应该总是低估或等于最优解的分数,它永远不会高估。 如果您需要包含约束6,我建议使用禁忌搜索、模拟退火或延迟接受等算法,这些算法在类似的用例(如和)中运行良好 如果没有约束6,我认为像算法这样简单的东西可以被设计成最优:
虽然如此,约束2可能仍然不是最优的。。。您可能仍然需要对其应用禁忌搜索或延迟接受。算法是否知道学生的身高和性别分布?A*可能不是一个好方法。至少我不知道启发式是什么样子的。对于这个问题,A*看起来像是一个圆孔里的方钉。A*是关于最小化成本,同时你试图最大化收益,它不允许负成本。我不认为有什么好方法可以将此转化为最小化机会成本的问题,也不认为有什么好方法可以解决分数上下波动的问题。@user2357112通常直接否定地陈述所有约束条件。例如:与“直接坐在前面的学生座位至少短2厘米:+4”不同,应说明“直接坐在前面的学生座位至少短2厘米:-4”。@GeoffreyDeSmet:再次查看评分标准,我不确定我的担忧。我认为将这样的翻译应用到这个问题上会导致成本结构,在这个结构中,所有的移动都有大致相等的高成本,由所有你没有得到的奖金主导,导致搜索倾向于退化为广度优先。在对评分标准进行二读时,奖金似乎并不是这样起作用的。你在优化问题上比我有更多的经验,所以你可能对事情的运作有更好的了解。约束6如何使它成为NP完全的?状态的数量不是有限的吗?所有的NP完全问题都有有限数量的状态(还有许多NP难问题)。但它们的状态数呈指数增长,没有已知的多项式时间方法来遍历它们以找到最优状态。至于约束6使其NP完全,这是我有根据的猜测。对约束的形式化描述和对NP完全问题的形式化放松可以证明/反驳这一点。