人智导(二):启发式搜索

本文介绍了启发式搜索算法,包括Best-First搜索、贪心搜索、A*搜索和IDA*搜索。重点阐述了A*搜索的完备性和最优性,以及如何构建合适的启发式函数,如通过松弛原则和线性回归来估计代价。最后总结了搜索算法的性能评价指标和策略。
摘要由CSDN通过智能技术生成

人智导(二):启发式搜索

概述:Best-First搜索

在这里插入图片描述
启发式搜索算法本质上都是Best-First搜索,当然,无信息搜索也是一种Best-First搜索,只不过衡量Best的标准不同。启发式搜索算法中,衡量Best的标准是基于评价函数(启发式函数)的。
基本思路:

  • 后继状态中,具有"best"期望值的状态首先选择并继续扩展
  • best这里指的是期望代价度量,而非实际代价度量。精确与否取决于启发函数的质量
    算法:
Function Best-First-Search(problem, EVAL-FN) returns a solution sequence
input: problem: a problem EVAL-FN: an evalution function
	Queuing-FN <--- a function that orders nodes by EVAL-FN
	return General-Search(problem, Queueing-FN)

贪心搜索(Greedy Search)

  • 一种最简单的best-first搜索策略(最小化到达目标状态的期望代价)
  • 预估离目标状态最接近的节点总是被先扩展
  • 启发式函数 h h h: h ( n ) = h(n)= h(n)=从状态 n n n到目标状态的最少路径的期望代价
  • 搜索过程中,到达目标状态的路径代价是预估的,而不是真实而准确的
    算法:
Function Greedy-Search(problem) returns a solution or failure
return Best-First-Search(problem, h)
  • n n n为目标状态, h ( n ) = 0 h(n)=0 h(n)=0
  • 一般来说, h h h可以为任何形式的函数
  • 启发式函数依赖于问题相关的背景知识

举例:

在这里插入图片描述
特点:

  • 与深度优先算法类似
  • 不完备,不最优
  • 时间与空间复杂度:最坏情况下 O ( b m ) O(b^m) O(bm),但好的启发式可以大幅度改善性能

A*搜索

在这里插入图片描述
思路:
避免扩展已经是最高代价的路径
原理:
组合两种函数:
f ( n ) = g ( n ) + h ( n ) f(n) = g(n) + h(n) f(n)=g(n)+h(n)
其中:

  • h ( n ) h(n) h(n):从状态n到目标状态的预估(期望)代价(由贪心搜索得到)
  • g ( n ) g(n) g(n):从初始状态到当前状态n的实际路径代价(由最少路径代价搜索给出)
  • f ( n ) f(n) f(n):通过状态n节点的整体路径代价

寻找最佳的解,最小化 g ( n ) + h ( n ) g(n)+h(n) g(n)+h(n)是合理的
A*搜索是完备的和最优的前提:”可接受的“启发式(admissible heuristic)
h ( n ) ≤ h ∗ ( n ) h(n)\le h^*(n) h(n)h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值