algorithm - 寻找启发式传教士和食人者
问题描述
我正在尝试构建 aa* 算法来解决传教士和食人族问题。我不确定我应该使用的启发式方法以及我应该寻找什么来尝试并最终解决这个问题。
这是您可以移动的要求和方式。
四名传教士和四名食人者在河的西岸 (W),还有一艘最多可容纳三个人的船:0 < 船容量 ≤ 3。想办法让每个人都到达东岸 (E)把一群传教士留在一个地方,那个地方的食人族人数超过了那个地方。这个问题在人工智能中很有名,因为它是第一篇从分析的角度研究问题表述的论文的主题(Amerel,1968)。
解决方案
这个特定的状态空间足够小,您可以使用广度优先搜索来探索它。
然而,一般来说,启发式方法的一个富有成效的来源是放弃一个或多个使问题变得困难的约束,从而“放松”问题(这是一个技术术语)。不幸的是,弄清楚哪些是一门艺术。对于这个特定的问题,您可以放弃食人族人数不超过传教士的限制,从而使启发式值成为船在哪里以及河两岸有多少人的简单函数。
推荐阅读
- adobe-indesign - 在其他用户的计算机上打开 Adobe Indesign 将对象分组
- javascript - 无法在 firebase fireStore 中添加集合
- c++ - 两个范围的嵌套和一个范围的嵌套有什么区别
- python - PyQt5 TabWidget tabBarClicked TypeError: native Qt signal is not callable
- docker - 使用 docker 部署带有 RDMA 的 ceph 集群
- python - 有条件的 Dash 注册输出 - 根据成功状态重定向与显示 div
- node.js - 我的反应脚本没有运行。它说找不到所需的文件。我尝试使用整个地址。该怎么办?
- mongodb - Mongodb:如何将`string`类型转换为`binData`类型?
- sharepoint - Spfx 将应用程序添加到共享点站点 -- 问题
- angular - 我想删除资源但无法匹配任何路由。URL 段:'remove-visitor'