人工智能第三章_搜索策略-2

合集下载

《人工智能导论》第3章 图搜索与问题求解

《人工智能导论》第3章 图搜索与问题求解
(4)对其余子节点配上指向N的返回指针后放入OPEN表中 某处, 或对OPEN表进行重新排序, 转步2。
第 3 章 图搜索与问题求解 图 3-5 修改返回指针示例
第 3 章 图搜索与问题求解
说明:
(1) 这里的返回指针也就是父节点在CLOSED表中的编 号。
(2) 步6中修改返回指针的原因是, 因为这些节点又被第 二次生成, 所以它们返回初始节点的路径已有两条, 但这两 条路径的“长度”可能不同。 那么, 当新路短时自然要走 新路。
第 3 章 图搜索与问题求解
3.1.5 加权状态图搜索
1.加权状态图与代价树
例3.6 图3-9(a)是一个交通图,设A城是出发地,E城 是目的地, 边上的数字代表两城之间的交通费。试求 从A到E最小费用的旅行路线。
第 3 章 图搜索与问题求解 图 3-9 交通图及其代价树
第 3 章 图搜索与问题求解
第 3 章 图搜索与问题求解
3. 状态图表示
一个问题的状态图是一个三元组 (S, F, G)
其中S是问题的初始状态集合, F是问题的状态转换 规则集合, G是问题的目标状态集合。
一个问题的全体状态及其关系就构成一个空间, 称为状态空间。所以,状态图也称为状态空间图。
第 3 章 图搜索与问题求解
例 3.7 迷宫问题的状态图表示。
的返回指针和f(x)值, 修改原则是“抄f(x)
”。
(2)对其余子节点配上指向N的返回指针后放入OPEN表中, 并对OPEN表按f(x)值以升序排序, 转步2。
第 3 章 图搜索与问题求解
算法中节点x的估价函数f(x)的计算方法是 f(xj)=g(xj)+h(xj) =g(xi)+c(xi, xj)+h(xj) (xj是xi的子节点)

人工智能(三)搜索策略

人工智能(三)搜索策略

应用实例----四皇后问题

问题描述: 在一个4×4的国际象棋棋盘上,一次一 个地排布四枚皇后棋子,要求满足每行、 每列和对角线上只允许出现一枚棋子。 即棋子之间不允许相互俘获。
7
Q
Q Q Q SUCCESS Q Q Q Q Q Q
Q
Qቤተ መጻሕፍቲ ባይዱ
Q Q
Q
DEADEND
8

综合数据库
DATA=L(表)或集合 L的元素 {ij},其中1≤ i, j≤ 4 当表DATA非空时,其表中元素表示棋子所在的行和列,由于只有 四个棋子,故表DATA中最多有4个元素。 如:初始状态 DATA= (); 成功状态 DATA=(12 24 31 43) 或 DATA= (13 21 34 42)
启发式剪枝法(Heuristic-Pruning)
5
回溯策略 Backtracking Strategies
1) 2) 3) 4) 5) 6)
7)
8) 9) 10)
说明:取单个自变量DATA,表示综合数据库的当前状态。若算法成功, 则返回一张规则表作为输出,代表问题的求解步骤。若无解,则返回 FAIL,失败退出。 1. 递归过程 BACKTRACK (DATA) IF TERM (DATA), RETURN NIL; TERM取真即找到目标,过程返回NIL IF DEADEND (DATA), RETURN FAIL; 回溯点 RULES := APPLES (DATA); 计算DATA的可用规则集,依某种原则(任 意排列或按启发式准则)排列后赋给RULES LOOP: IF NULL (RULES), RETURN FAIL; 回溯点 R := FIRST (RULES); 取出RULES中的第一条规则 RULES := TAIL (RULES); 删去RULES中的头条规则,减少可用规则表的 长度 RDATA := GEN (R, DATA); 调用规则R作用于当前状态,产生新的状态, 赋予RDATA PATH := BACKTRACK (RDATA); 以新状态RDATA为参数递归调用 BACKTRACK过程 IF PATH = FAIL,GO LOOP; RETURN CONS (R, PATH); 过程返回解路径规则表(或局部解路径子表) 6

人工智能之搜索策略介绍课件

人工智能之搜索策略介绍课件
基本概念:模拟生物进化过程, 通过选择、交叉、变异等操作,
实现搜索策略的优化
2
步骤:初始化种群、计算适应 度、选择、交叉、变异、迭代
3
优点:全局搜索能力强,能够 找到最优解
4
缺点:计算复杂度高,收敛速 度慢,容易陷入局部最优解
搜索策略的优化
优化目标
01 提高搜索效率:减少搜索 时间,提高搜索结果的准 确性
01
02
03
信息检索:搜索引擎、 路径规划:地图导航、 问题求解:数学问题、
学术论文检索等
物流配送等
逻辑问题等
04
05
06
游戏AI:棋类游戏、 电子游戏等
机器人控制:自主导 航、路径规划等
优化问题:生产调度、 资源分配等
搜索策略的实现
启发式搜索
概念:根据问题特点,选择 合适的搜索策略,提高搜索
效率
01
03
02
剪枝策略:提前 终止无效或低效 的搜索路径,提 高搜索效率
04
自适应搜索:根 据搜索过程中的 反馈信息,动态 调整搜索策略, 提高搜索效果
优化效果评估
准确率:衡量搜索 结果的准确性
召回率:衡量搜索 结果中相关结果的
比例
速度:衡量搜索算 法的执行效率
稳定性:衡量搜索 算法在不同数据集
上的表现一致性
演讲人
人工智能之搜索策略介 绍课件
目录
01. 搜索策略概述 02. 搜索策略的实现 03. 搜索策略的优化 04. 搜索策略的应用案例
搜索策略概述
搜索策略的定义
搜索策略是指在解
1 决一个问题时,如 何找到最优解或近 似最优解的方法。
搜索策略可以分
2 为两类:无信息 搜索和有信息搜 索。

人工智能 第三章 搜索策略

人工智能 第三章 搜索策略

动 作 b=0, c=c-1 b=0, m=m-1 b=0, m=m-1, c=c-1 b=0, c=c-2 b=0, m=m-2 b=1, c=c+1 b=1, m=m+1 b=1, m=m+1, c=c+1 b=1, c=c+2 13 b=1, m=m+2
3.1.2 状态空间问题求解方法
3. 状态空间的例子(11/14)
1
3.1.1 搜索的含义
概念: 依靠经验,利用已有知识,根据问题的实际情况,不断寻找可利用知识, 从而构造一条代价最小的推理路线,使问题得以解决的过程称为搜索 适用情况: 不良结构或非结构化问题;难以获得求解所需的全部信息;更没有现成的 算法可供求解使用。 搜索的类型 按是否使用启发式信息: 盲目搜索:按预定的控制策略进行搜索,在搜索过程中获得的中间信息并 不改变控制策略。 启发式搜索:在搜索中加入了与问题有关的启发性信息,用于指导搜索朝 着最有希望的方向前进,加速问题的求解过程并找到最优解。 按问题的表示方式: 状态空间搜索:用状态空间法来求解问题所进行的搜索 与或树搜索:用问题归约法来求解问题时所进行的搜索
3.1.2 状态空间问题求解方法
3. 状态空间的例子(5/14) 例3.2 修道士(Missionaries)和野人(Cannibals)问题(简称M-C问题)。 设在河的一岸有3个野人、3个修道士和1条船,修道士想用这条船把所有的 人运到河对岸,但受以下条件的约束: 第一,修道士和野人都会划船,但每次船上至多可载2个人; 第二,在河的任一岸,如果野人数目超过修道士数,修道士会被野人吃掉。 如果野人会服从任何一次过河安排,请规划一个确保修道士和野人都能过 河,且没有修道士被野人吃掉的安全过河计划。 解:先选取描述问题状态的方法。这里,需要考虑两岸的修道士人数和野 人数,还需要考虑船在左岸还是在右岸,故可用如下三元组来表示状态 S=(m, c, b) 其中,m表示左岸的修道士人数,c表示左岸的野人数,b表示左岸的船数。 而右岸的状态可由下式确定: 右岸修道士数 m'=3-m 右岸野人数 c'=3-c 右岸船数 b'=1-b 在这种表示方式下,m和c都可取0、1、2、3中之一,b可取0和1中之一。 9 因此,共有4×4×2=32种状态。

人工智能 第3章(确定性推理3-与或树搜索)

人工智能 第3章(确定性推理3-与或树搜索)
常用启发式函数
包括基于距离的启发式函数、基于成本的启发式函数、基于规则的启发式函数等。
节点排序和选择策略
节点排序的目的和意义
节点排序是为了在扩展节点时,按照一定的顺序选择下一个要扩展的节点,以优化搜索过程。
常用节点排序策略
包括最佳优先搜索、广度优先搜索、深度优先搜索等。最佳优先搜索根据启发式函数的值来选择最优节点; 广度优先搜索按照节点的层次顺序进行扩展;深度优先搜索则尽可能深地扩展节点。
盲目搜索方法比较与选择
• 宽度优先搜索、深度优先搜索和迭代加深搜索都是盲目搜索方法,它们在不同的场景下有不同的应用。 • 宽度优先搜索适用于问题空间较大、解存在于较浅层次的情况,因为它可以逐层遍历整个问题空间,找到最短
路径。 • 深度优先搜索适用于问题空间较小、解存在于较深层次的情况,因为它可以尽可能深地搜索树的分支,找到更
启发式信息获取途径
01
02
03
问题自身的特性
通过分析问题的性质、结 构、约束条件等,提取出 对搜索过程有指导意义的 启发式信息。
领域知识
利用领域内的经验、规则、 常识等,为搜索过程提供 有价值的启发式信息。
搜索过程中的信息
在搜索过程中,通过评估 当前状态、已搜索路径、 未搜索路径等,动态地获 取启发式信息。
04 与或树搜索优化技术
剪枝策略
01
剪枝的定义和目的
剪枝是在搜索过程中,通过某些评估标准,提前终止对某些无意义或低
效的节点的扩展,以减少搜索空间,提高搜索效率。
02 03
常用剪枝策略
包括限界剪枝、启发式剪枝、概率剪枝等。限界剪枝通过设置上下界来 限制搜索范围;启发式剪枝利用启发式函数来评估节点的重要性;概率 剪枝则根据节点的概率分布来进行剪枝。

人工智能第三版课件第3章搜索的基本策略

人工智能第三版课件第3章搜索的基本策略

人工智能第三版课件第3章搜索的基本策略搜索引擎是当今互联网时代不可或缺的工具,而人工智能技术在搜索引擎中起着举足轻重的作用。

本文将介绍《人工智能第三版课件》中第3章的内容,讨论搜索的基本策略。

基于这些策略,搜索引擎能够更加高效、准确地满足用户的信息需求。

1. 初始搜索空间在进行搜索之前,需要建立一个初始的搜索空间,即包含可能相关信息的一组文档或网页。

这个搜索空间的建立可以通过爬虫程序和抓取技术来收集网络上的信息,并将其存储在搜索引擎的数据库中。

2. 关键词匹配搜索引擎通过用户输入的关键词与搜索空间中的文档进行匹配,以找到与用户需求相关的内容。

关键词匹配可以使用词频、倒排索引等算法来实现。

其中,词频是指对于一个给定的关键词,在搜索空间中出现的频率;倒排索引则是一种将关键词与对应的文档进行关联的索引结构。

3. 分析用户意图搜索引擎还需要通过分析用户的搜索历史、点击行为等数据来了解用户的真实意图。

这可以通过机器学习算法来实现,例如基于用户行为的推荐系统。

通过了解用户的意图,搜索引擎可以更加准确地推荐相关内容。

4. 搜索结果排序搜索引擎会对匹配到的文档进行排序,以便将最相关的结果显示在前面。

排序算法通常通过计算文档与用户查询的相似度来实现。

相似度计算可以使用向量空间模型、BM25等算法。

5. 反馈与迭代搜索引擎不断根据用户的反馈进行迭代,以提供更好的搜索结果。

用户的反馈可以包括点击率、停留时间等指标,这些指标可以通过机器学习算法来进行分析和预测。

搜索引擎可以根据用户的反馈来调整排序算法,从而不断改进搜索结果的准确性和相关性。

综上所述,搜索引擎的基本策略包括建立初始搜索空间、关键词匹配、分析用户意图、搜索结果排序以及反馈与迭代。

这些策略通过人工智能技术的应用,使得搜索引擎能够更加智能化地满足用户的信息需求。

未来随着人工智能技术的不断发展,搜索引擎将会变得更加准确、个性化,并为用户提供更多智能化的服务。

人工智能第三版课件第 章搜索的基本策略

人工智能第三版课件第 章搜索的基本策略

人工智能第三版课件第章搜索的基本策略在人工智能的领域中,搜索是一种非常重要的技术。

搜索引擎如今已经成为人们获取信息的主要途径之一。

本文将介绍人工智能第三版课件第章中搜索的基本策略。

1. 确定搜索目标搜索的第一步是明确搜索目标。

在人工智能中,搜索目标指的是要找到的解答或解决方案。

这可以是一个问题的答案,也可以是一个最佳解、一个规则、一个模式等等。

2. 问题建模在进行搜索之前,需要将问题进行建模。

问题建模的目的是将问题表达为一种规范的形式,以便能够用搜索算法来解决。

常用的问题建模方法包括状态空间表示、图表示、约束满足问题表示等。

3. 搜索算法选择选择合适的搜索算法对于搜索的效率和准确性至关重要。

常见的搜索算法包括深度优先搜索、广度优先搜索、启发式搜索(如A*算法)等。

不同的搜索算法适用于不同类型的搜索问题。

4. 启发式函数设计启发式函数在启发式搜索过程中起着关键作用。

它用于估计一个状态距离目标状态的代价或优劣程度。

合理设计启发式函数可以加速搜索过程,并提高搜索的质量。

5. 剪枝策略搜索空间往往非常庞大,因此为了提高搜索效率,可以采用剪枝策略。

剪枝策略指的是在搜索过程中排除那些不可能达到解答或解决方案的状态,以减少搜索空间的规模。

6. 并行搜索对于大规模的搜索问题,采用并行搜索是一种有效的策略。

通过将搜索任务划分为多个子任务并行进行,可以极大地缩短搜索时间。

在并行搜索过程中,需要解决任务划分、任务调度以及结果合并等问题。

7. 维护搜索历史在搜索过程中,为了提高效率和避免重复搜索,可以维护搜索历史。

搜索历史可以记录已经搜索过的状态或路径,避免再次访问。

这可以通过哈希表、缓存等数据结构来实现。

8. 评估搜索结果最后一步是评估搜索结果。

评估搜索结果的目的是确定搜索是否达到了预期的目标。

评估搜索结果的方法可以根据具体的应用场景而定,可以是人工评估、专家评估或者自动评估等。

总结:搜索是人工智能中的重要技术之一,它在各个领域都有广泛的应用。

人工智能搜索策略

人工智能搜索策略
强化学习在搜索中的应用
通过强化学习技术,让搜索引擎在与用户互动中不断优化自身的搜 索策略,提升用户体验。
知识图谱驱动的搜索策略
借助知识图谱技术,理解实体之间的关系,为用户提供更精准的搜 索结果和推荐。
多智能体协同搜索技术探讨
多智能体系统架构
设计高效的多智能体系统架构,实现智能体之间的协同和信息共 享,提高搜索效率。
IDA*算法优化技巧
迭代加深
01
通过限制搜索深度,逐步增加深度限制,以实现迭代加深搜索,
提高搜索效率。
启发式函数优化
02
针对具体问题领域,设计更为有效的启发式函数,以提供更准
确的搜索指导。
剪枝策略
03
在搜索过程中,根据问题特性采用剪枝策略,如可行性剪枝、
最优性剪枝等,以减少无效搜索。
性能评估与对比分析
目的
搜索策略的主要目的是在给定的问题 空间内,通过智能地选择和探索可能 的解决方案,以最高效的方式找到问 题的最优解或近似最优解。
常见搜索策略类型
盲目搜索
包括深度优先搜索、广度优先搜 索等,这类策略在搜索过程中不 依赖任何问题特定的信息,而是 按照某种固定的模式进行搜索。
启发式搜索
如A*搜索、模拟退火算法等,这 类策略在搜索过程中会利用一些 与问题相关的启发式信息来指导 搜索方向,从而加速搜索过程并
04 遗传算法在搜索中应用
遗传算法基本原理介绍
遗传算法是一种模拟生物进化过 程的优化算法,通过模拟自然选 择和遗传学原理来搜索问题的最
优解。
遗传算法从一组随机生成的初始 解开始,通过不断迭代进化,逐
步逼近问题的最优解。
遗传算法采用适应度函数来评价 每个解的优劣,并根据适应度大 小进行选择、交叉和变异等操作,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2013-8-22
7
课堂练习:提高题
在应用递归回溯算法解决四皇后的问题中,若按行 的序号从小到大试探性放置各列的皇后,请画出搜 索图,并指出分别从算法第2步和第4步回溯的次数。
2013-8-22
8
定义L,为表示清晰起见,L表中只记载皇后所在列,皇 后所在行可由在L表中的先后位置指示,例如L=(1 3) 指示两个皇后位置分别为第1行第1列和第2行第3列。
1
2 (2,2,1)
梵塔问题——状态空间图
(1,1,1)(3,3,3)
(1,1,1)(2,2,1) (2,2,1)(2,2,3) (2,2,3)(3,3,3) (1,1,1)(3,1,1)
2013-8-22
(2,2,3)(1,2,3)
(3,2,1)(2,2,1) (1,3,3)(3,3,3)
2013-8-22
19
与或图
梵塔问题
问题描述: 初始状态下三个盘按A、B、C顺序堆放在1号柱子上; 目标状态下三个盘以同样次序顺序堆放在3号柱子上; 盘子的搬移规则: 每次只能搬一个盘子; 较大盘不能压放在较小盘之上;
1 B C
2013-8-22
2
3
1
2
3
A B C
A
初始状态
启发式搜索
启发式知识指导OPEN表排序的一般图搜索:
全局排序——对OPEN表中的所有节点排序, 使最有希望的节点排在表首。 A算法, A*算法(掌握!) 局部排序——仅对新扩展出来的子节点排序, 使这些新节点中最有希望者能优先取出考察 和扩展; 爬山法(了解,对深度优先法的改进);
搜索图(树)如右图所示:共回溯22次,其中算法第2步的回溯18 次,算法第4次的回溯4次。 2013-8-22 9
3.4 问题归约和与或图启发式搜索
问题归约是人求解问题常用的策略:
把复杂的问题变换为若干需要同时处理的较为 简单的子问题后再加以分别求解 只有子问题全部解决时,问题才算解决; 问题的解答由子问题的解答联合构成。
22
(3,1,1)(3,2,1)
(1,2,3)(1,3,3)
梵塔问题
子问题间有交互作用, 问题分解注意正确的顺序
(1,1,1)(3,3,3)
1 5 6
(1,1,1)(2,2,1) (2,2,1)(2,2,3) (2,2,3)(3,3,3)
2 7 4
(1,1,1)(3,1,1)
3
2013-8-22
2013-8-22
28Biblioteka 与或图搜索 1)与或图搜索的基本概念 3、解图的生成★
自根节点开始选K-连 接; 从该K-连接指向的每 个子节点出发,再选 一K-连接; 如此反复进行,直到 所有K-连接都指向终 节点为止.
2013-8-22 29
2013-8-22
30
与或图搜索
1)与或图搜索的基本概念 3、解图的生成★
(2,2,3)(1,2,3)
8
9
(3,2,1)(2,2,1)
(1,3,3)(3,3,3)
23
(3,1,1)(3,2,1)
(1,2,3)(1,3,3)
与或图搜索
问题归约求解问题的过程 表示为与或图搜索 与或图视为对一般图(或图)的扩展; ★
引入K-连接
父子节点间可以存在“与”关系 结果——解图。 解答路径往往不复存在,代之以广义的解路径—— 解图。
2013-8-22 5
回溯策略和爬山法
2)回溯策略
三种失败状态:
不合法状态(如传教士和野人问题中所述的那样) 旧状态重现(如八数码游戏中某一棋盘布局的重现,会导 致搜索算法死循环), 状态节点深度超过预定限度(例如八数码游戏中,指示解 答路径不超过6步)。
回溯条件
失败状态,由算法第(2)句指示; 搜索进入“死胡同”,由该算法的第(4)句定义。
2013-8-22
15
分子结构识别问题 如何区分分子式相同但分子结构不同的有机化合物成为 重要而又困难的问题。著名的专家系统 DENDRAL能用 于有效地识别分子结构,该系统建立了一套重写规则去 把分子式重写为原子数较少的分子式和原子间结合关系 的混合结构
2013-8-22
16
问题归约的实质: ★
* *
递归过程——实现回溯策略的有效方式 算法就取名为BACKTRACK(n),参数n为当前被扩展的节点, 初次调用时n即为初始状态节点s; 分二个部分: 判断当前节点n的状态, 作搜索工作——扩展节点n,递归调用该算法,处理返 回结果。
2013-8-22
4
令PATH、SNL、n、n' 为局部变量: ·PATH--节点列表,指示解答路径; ·SNL--当前节点扩展出的子节点列表; ·MOVE-FIRST(SNL)--把SNL表首的节点移出,作为下一次要加以扩展的 节点; ·n、n‘--分别指示当前考察和下一次考察的节点。
2013-8-22
26
一些关于与或图的术语
父节点 或节 点 弧线 与节 点 B 终节点
2013-8-22
A N M
子节 点
H
C D E F G
27
与或图搜索
1)与或图搜索的基本概念
3、解图的生成★ 解图纯粹是一种“与”图 解图中,节点或节点组间不存在 “或”关系; 所有叶节点都是终节点
逻辑“或”关系:

2013-8-22
①问题可以有多种分解方式; ②问题(子问题)可能激活多个状态变迁操作; 只要一种分解方式或状态变迁操作能导致最终的解答成功即可; 导致多个可能的解答。
18
与或图
用AND-OR图把问题归约为子问题替换集合。 如,假设问题A既可通过问题C1与C2,也可通过问题C3、C4和 C5,或者由单独求解问题C6来解决,如下图所示。图中各节 点表示要求解的问题或子问题。
S0是初始问题,即要求解的问题; P是本原问题集,其中的每一个问题是不用证 明的,自然成立的,如公理、已知事实等,或 已证明过的问题; O是操作算子集,它是一组变换规则,通过一 个操作算子把一个问题化成若干个子问题。
2013-8-22
12
问题归约表示方法就是由初始问题出发,运 用操作算子产生一些子问题,对子问题再运 用操作算子产生子问题的子问题,这样一直 进行到产生的问题均为本原问题,则问题得 解。
(1 1 1)
目标状态
(3 3 3)
20
1
2
3 A B C
梵塔问题——状态空间图
目标状态
(1,1,1)(3,3,3)
(3 3 3)
(1,1,1)(2,2,1) (2,2,1)(2,2,3) (2,2,3)(3,3,3)
A
C
2013-8-22
A B B 3 1 2 (2,2,3) C 3
21
2013-8-22 2
回溯策略和爬山法
2)回溯策略 可以有效地克服爬山 法面临的困难——保 存了每次扩展出的子 节点,并按h(n)值从 小到大排列。 相当于爬山的过程 中记住了途经的岔路 口——路径搜索失败 时回溯(后退),向 另一路径方向搜索
2013-8-22
3
回溯策略和爬山法
2)回溯策略
2013-8-22
24
与或图搜索
1)与或图搜索的基本概念 1、K-连接★ 从父节点到K个子节点的连接,子节点间有“与”关系; 以圆弧指示这些子节点间的“与”关系; 一个父节点可以有多个K-连接
K-连接间——”或”关系
当所有的K都等于1时,与或图蜕化为一般图(或图)。
2013-8-22
2013-8-22
13
看如下符号积分问题: 初始问题——∫f ( x ) dx 变换规则——积分规则 本原问题——可直接求原函数和积分,如 ∫sin ( x ) dx,∫cos ( x ) dx等。 所有问题归约的最终目的是产生本原问题。
2013-8-22
14
∫(sin3x + x4/(x2 + 1))dx =∫sin3xdx + ∫(x4/(x2 + 1))dx =∫-(1 - cos2x)dcosx + ∫(x2 - 1 + 1/(1 + x2))dx =(∫-dcosx + cos2xdcosx) + (∫x2dx - ∫dx + ∫(1/(1 + x2))dx) = -cosx + cos3x/3 + x3/3 - x + arctgx
2013-8-22
6
回溯策略和爬山法
2)回溯策略
解答路径的生成——从相应于目标状态节点的空表开始,递归返 回PATH。 影响回溯算法效率的关键因素——回溯次数。 回溯——搜索到失败状态时的一种弥补行为, 准确选择下一步搜索考察的节点——大幅度减少甚至避免回 溯。 设计好的启发式函数h(n)是至关重要的。
该递归过程的算法就取名为BACKTRACK(n),参数n为当前被扩展的节点,算法的初 次调用式是BACKTRACK(s),s即为初始状态节点。算法的步骤如下: (1) 若n是目标状态节点,则算法的本次调用成功结束,返回空表; (2) 若n是失败状态,则算法的本次调用失败结束,返回'FAIL'; (3) 扩展节点n,将生成的子节点置于列表SNL,并按评价函数f(k) = h(k)的 值从小到大排序(k指示子节点); (4) 若SNL为空,则算法的本次调用失败结束,返回'FAIL'; (5) n'= MOVE-FIRST(SNL); (6) PATH = BACKTRACK(n'); (7) 若PATH ='FAIL', 返回到语句(4); (8) 将n'加到PATH表首,算法的本次调用成功结束,返回PATH。
相关文档
最新文档