当前位置: 首页 > 知识库问答 >
问题:

如何定义水壶的启发式函数?

茹正祥
2023-03-14

我不知道如何把它放到一个启发式函数中,而且我对状态的数目有疑问。如果我承认这些动作(从水龙头灌满一个,把一个倒到下水道,从一个倒到另一个,直到接收罐满了或倒罐空了),有15种可能的状态,但如果我考虑关于加仑数量的所有可能性,有24种可能性。那是正确的吗?

(0,0)

(3,0)(0,5)

h(x,y) = (x * 5) + (y * 3)

但是我也为一个问题找到了这个答案(水壶的启发式函数),现在我很困惑。谁能给我解释一下吗?

最大(estimate_from_parent-action_cost,estimate_from_this_node)

共有1个答案

赵朝
2023-03-14

状态数目和可达性:

关于状态的理论数量,你是正确的(假设桶只能有整数加仑-否则它是无限的)。因为桶X可以容纳6个加仑,桶Y可以容纳4个加仑,所以状态的总数是6*4=24。

从技术上讲,(3,1)也是可达的,在你找到解之后,所以有16种可能的状态。

 类似资料:
  • null 从这些状态,它可以生成其他状态,直到结束状态(X,D)或(D,Y)。 那么,我能估计这个问题的启发式函数吗?如何知道哪个州比其他州好? 谢谢大家。

  • 本文向大家介绍如何对水壶进行测试相关面试题,主要包含被问及如何对水壶进行测试时的应答技巧和注意事项,需要的朋友参考一下 参考回答: (同快手对水杯的测试) 功能 (1)水倒水壶容量的一半 (2)水倒规定的安全线 (4)水壶容量刻度与其他水壶一致 (5)盖子拧紧水倒不出来 (6)烫手验证 性能 (1)使用最大次数或时间 (2)掉地上不易损坏 (3)盖子拧到什么程度水倒不出来 (4)保温时间长 (5)

  • 为我的人工智能类编写一段代码,它旨在列出所有可能的状态,给出三个水壶的水壶问题(你可以装满任何一个水壶,或者把一个水壶倒入另一个水壶,或者清空任何一个水壶,你想要多少次就多少次,以任何顺序),从空水壶开始。 出于某种原因,在记录了88个看似不同的状态后,第89个状态与第一个状态相同,我最终用完了空间,因为它在循环。 我想这与我如何检查状态是不同的有关,但我不能弄清楚。任何帮助都将不胜感激。 }

  • 我正在构建一个 Spring 启动独立应用程序,该应用程序需要使用来自远程服务器的消息并将其写入 。我正在使用Flume嵌入式代理来可靠地记录消息。但是我收到以下错误。 引起:org.apache.flume.Flume异常:组件类型的com.security.flume.sink.Sy 根据文档仅支持。这是否意味着我们甚至不能编写自定义水槽? 我对Flume相当陌生。我真的很感谢你在这个问题上的

  • 我试图用一个自定义的启发式算法计算两个节点之间的最短路径长度。启发式方法测量两个节点之间的加权最短路径长度加上最短路径内的节点数。考虑一个交通问题,我需要在城市网络中找到两个城市之间的最短路径。最短路径是具有最小总距离(以天为单位)和城市中最小公交次数(以天为单位)的路径。 我试图使用networkxa_star_path_length功能。以下是我已经尝试过的: 假设具有六个节点的图中每条边的权

  • 有没有一种方法可以将自定义移动放入构建启发式中?我正在从事一个项目,该项目接近optaplanner中的护士名册问题,但除了将员工分配到轮班任务之外,我还需要将员工分配到轮班中所需的小任务。所以当我将员工安排在轮班中时,我需要将员工安排在所有他可以完成的小任务中(有技能)。我不希望这是第二个计划实体,员工是计划变量,我只是希望当我将员工分配到一个班次时,循环处理该班次内的所有小任务(在班次的开始和