- 4
- 0
- 约6.35千字
- 约 47页
- 2018-02-13 发布于浙江
- 举报
[互联网]ACM 搜索篇
搜索算法是利用计算机的高性能来有目的的穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。
搜索算法被称为“通用解题法”在算法和人工智能中占有重要地位
很多算法其实是搜索算法的拓展(如图论中的某些算法、动态规划、贪心等,只是他们找到了某些规律来进行变相剪枝而已)。;;状态和状态转移:状态(state)是对一个问题在某一时刻进展情况的数学描述,状态转移(state-transition)就是问题从一种状态到另一种(或几种)状态的操作
状态空间state space:搜索的过程其实是在遍历一个隐式图(请回忆数据结构中图的概念)它的结点是所有的状态,有向边对应状态转移,而搜索的一个可行解就是一条从起始结点出发到目标状态集中任一结点的路径!!;题目描述:某人要带一条狗、一只鸡、一箩米过河,但小船除需要人划外,最多只能载一物过河,而当人不在场时,狗要咬鸡、鸡要吃米。问此人应如何过河?
思考:如何建立状态及状态转移方程??;状态:建立四元空间(人,狗,鸡,米)。用0表示在左岸,1表示在右岸。
起始状态(0,0,0,0),终止状态(1,1,1,1)
状态转移规则:
(a,b,c,d) →(1-a,1-b,c,d)(当a=b)
→(1-a,b,1-c,d)(当a=c)
→(1-a,b,c,1-d)(当a=d)
→(1-a,b,c,d)
约束:(a,b,c,d)中,当a≠b时b≠c;当a≠c时c≠d;盲目搜索:
深度优先搜索depth first search(DFS)
广度优先搜索breadth first search(BFS)
纯随机搜索、重复式搜索、迭代加深搜索、
迭代加宽搜索、柱型搜索
启发式搜索:
A*算法
IDA*算法
主要介绍前两种
;算法描述:按照深度优先的顺序遍历状态空间,通常用递归或者栈来实现。
说白了就是往深里搜,当某个结点的所有子节点都搜索过了就返回父结点继续进行。
就像走迷宫,你没有办法用分身术来站在每个走过的位置。不撞南山不回头。;算法框架:
Procedure DFS(State:Statetype;depth:integer)
Begin
for operand:=1 to operandcount(state) do
begin
NewState:=DoOperand(State,Operand);
if answer then print
else if depthmaxdepth then
DFS(Newstate,depth+1);
end;
End.;问题描述:输入正整数t、n,然后是n个正整数(单调非递增)。若n个数中某几个数的和是t,输出这些加法表达式(表达式不重复输出) ;无解输出“NONE”
;状态:计算中间值r
转移规则:
r →r-ai(取第i个数ai)
→r (不取第i个数)
起始状态:所输入的t
中止状态:0
;有一个字母序列,对它每个元素进行入栈、出栈操作。判断是否能得到指定输出序列,如果可以,输出相应的栈操作。;n个数排一圆环,要求相邻两个数和为素数。;练习:
八皇后问题
思考如何剪枝;因为大量的搜索状态空间可以看成一个树形结构,我们的任务就是探测每个叶子节点来获取信息,如果我们能在某个结点就将其所有子结点的可能性都排除我们就能减少搜索量!;算法描述:按照广度优先的顺序遍历状态空间,优先搜索当前结点的所有子结点,一般采用队列实现
就像你的眼镜掉在地上以后,你趴在地板上找。你总是先摸最接近你的地方,如果没有,再摸远一点的地方……;从某个顶点出发开始访问,被访问的顶点作相应的标记,并输出访问顶点号;
从被访问的顶点出发,依次搜索与该顶点有边的关联的所有未被访问的邻接点,并作相应的标记。
再依次根据上一步中所有被访问的邻接点,访问与这些邻接点相关的所有未被访问的邻接点,直到所有顶点被访问为止。;算法框架:
Procedure BFS(initialstate:statetype);
Begin
enqueue(initialstate);
while not emptyqueue do
begin
dequeue(state);
for operand:=1 to operandcount(state) do
您可能关注的文档
- [二年级数学]ODD结构及原理介绍.ppt
- [二年级其它课程]第三章复习.ppt
- [二年级数学]二上数全册教案.doc
- [二年级数学]二下数学导学案.doc
- [二年级数学]人教版二年级下册《找规律》课件.ppt
- [二年级数学]二年级上册《分香蕉》.ppt
- [二年级数学]北师大版二年级下册数学教案.doc
- [二年级数学]小学数学应用题综合训练题及答案.doc
- [二年级数学]找规律.ppt
- [二年级数学]数学二上教案.doc
- 《小学一年级下册语文园地五(第一课时)》课件.pptx
- 湖北省宜城一中等五校联考2025_2026学年高二英语下学期期中试题.doc
- (49格)舒尔特方格练习题 儿童专注力训练(每日一练, 共21份).docx
- 2026年化妆品行业消费趋势分析及品牌营销战略规划.docx
- 2026年甘肃省张掖市高职单招职业技能考试题库有答案详解.docx
- 2025-2026学年度第一学期水龙民族小学六年级数学知识竞赛测试卷及答案.docx
- 公司蔬菜栽培工应急处置安全规程.docx
- 公司钎焊材料冶炼成型工职业健康操作规程.docx
- 中班班本课程《番茄大作战》PPT课件.pptx
- (49格)舒尔特方格练习题 儿童专注力训练(每日一练, 共22份).docx
最近下载
- 环水保施工方案.docx VIP
- 苏州园林苏教省公开课一等奖新名师比赛一等奖课件.pptx VIP
- 学堂在线 雨课堂 学堂云 中国建筑史——元明清与民居 章节测试答案.docx VIP
- 《苏州园林》教学-全省一等奖-完整版课件.ppt VIP
- 学堂在线 雨课堂 学堂云 大唐兴衰 章节测试答案.docx VIP
- 学堂在线 雨课堂 学堂云 实用绳结技术 期末考试答案.docx VIP
- 学堂在线 雨课堂 学堂云 海上求生与救生 章节测试答案.docx VIP
- 学堂在线 雨课堂 学堂云 医学科研设计 章节测试答案.docx VIP
- 学堂在线 雨课堂 学堂云 《资治通鉴》导读 章节测试答案.docx VIP
- 心力衰竭(共43张PPT).pptx VIP
原创力文档

文档评论(0)