人工智能通识教程(理工版)教学课件第5章课件.pptxVIP

  • 1
  • 0
  • 约1.63万字
  • 约 55页
  • 2026-02-26 发布于广东
  • 举报

人工智能通识教程(理工版)教学课件第5章课件.pptx

人工智能通识(理工科)(仅用于个人学习,请勿上传网络,水平有限,难免有错,请不吝赐教,若因使用该课件造成不良后果,由使用人承担)

主要内容搜索算法的基本概念穷举搜索算法二分搜索算法广度优先搜索深度优先搜索

5.1搜索算法的基本概念搜索算法的定义:按照一定策略从问题求解空间中寻找问题解的算法面向线性数据结构的搜索:穷举搜索面向有序数据结构的搜索:二分搜索面向树形与图结构数据的搜索广度优先搜索深度优先搜索

5.2穷举搜索算法穷举法:也称枚举法,暴力求解方法,其运行效率低但简单有用。设有2n(n=6)个球队进行单循环比赛,计划在2n–1天内完成全部比赛,每个队每天进行一场比赛。设计一个比赛的安排,使在2n–1天内每个队都与不同的对手比赛。白帽子和红帽子问题。厅内有5个人,他们都戴着白帽子或者红帽子。已知戴白帽子的人说真话,戴红帽子的人说假话,请从他们各自提供的线索辨别谁戴白帽子,谁戴红帽子。甲:我看见一个戴白帽子的。乙:我没有看见戴红帽子的。丙:我看见一个戴白帽子的,但不是甲。丁:我没有看见戴白帽子的。戊:我的帽子和丙一样。

5.2穷举搜索算法穷举算法实现步骤(1)从问题解的表达形式出发,确定穷举对象。(2)逐一列举可能解,根据穷举的参数构造循环。(3)根据问题表达式逐一验证,满足条件采纳,否则抛弃。穷举算法的要点列举所有可能的解(不能遗漏,也不能重复)注意效率改进

5.2.1数学问题中的穷举【例5-1】输出所有的水仙花数。水仙花数是指一个3位数,每个位置上的数字的3次幂之和等于它本身,如153是一个水仙花数,因为13+53+33=153。传统算法:将一个整数的个、十、百位分解出来foriinrange(100,1000):a=i/100b=i/10%10c=i%10ifa**3+b**3+c**3==i:print(i)

5.2.1数学问题中的穷举【例5-1】输出所有的水仙花数。水仙花数是指一个3位数,每个位置上的数字的3次幂之和等于它本身,如153是一个水仙花数,因为13+53+33=153。方法二:枚举各位数字的方法foriinrange(1,10):forjinrange(0,10):forkinrange(0,10):ifi*100+j*10+k==i**3+j**3+k**3:print(i*100+j*10+k)

5.2.1数学问题中的穷举【例5-2】百钱百鸡问题:鸡翁一值钱5,鸡母一值钱3,鸡雏三值钱1。百钱买百鸡,问鸡翁、母、雏各几何?cock,hen,chick的取值范围:0cock20,?0hen33,0chick99(1)确定穷举对象公鸡、母鸡、小鸡(2)列举可能解,组织循环(3)验证表达式cock+hen+chick==1005*cock+3*hen+chick/3==100

5.2.1数学问题中的穷举【例5-2】百钱百鸡问题:鸡翁一值钱5,鸡母一值钱3,鸡雏三值钱1。百钱买百鸡,问鸡翁、母、雏各几何?forcockinrange(1,20):forheninrange(1,33):forchickinrange(3,99,3):ifcock+hen+chick==100and5*cock+3*hen+chick//3==100:print(cock=,cock,hen=,hen,chick=,chick)思考:共列举了多少组解?193232

5.2.1数学问题中的穷举forcockinrange(1,20):forheninrange(1,33):forchickinrange(3,99,3):ifcock+hen+chick==100and5*cock+3*hen+chick//3==100:print(cock=,cock,hen=,hen,chick=,chick)forcockinrange(1,20):forheninrange(1,33):chick=100-cock-henifchick%3==0and5*cock+3*hen+chick//3==100:print(cock=,cock,hen=,hen,chick=,chick)优化

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档