【发布时间】:2021-02-12 04:54:25
【问题描述】:
我试图证明一致的启发式意味着可接受的条件
提到了我阅读的一个证明here:
-
设 h(n) 为节点 n 的启发式值,c(n,n+1) 为节点 n 到节点 n+1 的成本。
-
我们假设 h(ng)=0;其中 ng 是目标节点。
-
通俗地说,我们想从目标节点回溯,表明如果我们从 h(ng)=0 的可接受节点开始,其父节点将通过一致性规则被接受,并且模式继续。
-
考虑某个节点 n 并假设 n 处的启发式值是可接受的。
-
我们希望它的父节点,比如 n-1,也将被一致性定义所接受。
-
通过一致性,我们得到:
h(n-1)-h(n)
-
c(n-1,n) 是从 n-1 到 n 的实际路径成本。
-
由于我们知道 h(n) 是可接受的,我们知道 h(n) 必须小于或等于从 n 到 ng 的路径成本。
-
因此,h(n-1)
-
由于 h(n) 小于或等于从 (n 到 ng) 的路径成本,因此 h(n-1)
我的问题是:在第 7 步中:c(n-1,n) 是从 n-1 到 n 的实际路径成本 他们如何满足 c(n-1,n ) 是实际路径吗?因为根据这个假设,他们的实际路径是指成本最低的路径?
在同一个参考文献中,他们也给出了正式的证明:
-
假设我们有一些一致的启发式 h。还假设 h(ng)=0,其中 ng 是目标节点。
-
根据一致性的定义,对于图中的所有节点 n,h(n)
-
我们想证明对于所有 n,h(n)
-
基本情况:我们开始考虑 ng-1 是任何路径中的节点,其中 ng 表示目标状态:
h(ng-1)
-
因为 ng 是最佳目标状态,所以假设 h(ng)=h*(ng)
-
因此我们可以将上面的内容重写为:
h(ng-1)
-
鉴于此
c(ng-1,ng)+h*(ng)=h*(ng-1) 我们可以看到 h(ng-1)
-
归纳假设:假设对于某个任意节点(位于目标路径上)ng-k 比 h(ng-k)
-
归纳步骤:看看是否总是这样,我们考虑 ng-k-1th:
h(ng-k-1)<=c(ng-k-1,ng-k)+h(ng-k)
- 根据我们的基本情况,我们知道:
h(ng-k-1)<=c(ng-k-1,ng-k)+h(ng-k)<= c(ng-k-1,ng-k)+h*(ng-k)
h(ng-k-1)<=c(ng-k-1,ng-k)+h*(ng-k)
- 我们再次知道:
h(ng-k-1,ng-k)+h*(ng-k)=h*(ng-k-1)
so we can see :
h(ng-k-1)<=h*(ng-k-1)
第 8 步和第 12 步同样的问题,我们为什么要考虑:c(the node, next node) + h*( the next node) = h*(the node)?
【问题讨论】:
-
可能会在 cs.stackexchange.com 上获得更多答案