算法合集之《浅谈特殊穷举思想的应用》.ppt
《算法合集之《浅谈特殊穷举思想的应用》.ppt》由会员分享,可在线阅读,更多相关《算法合集之《浅谈特殊穷举思想的应用》.ppt(24页珍藏版)》请在三一办公上搜索。
1、浅谈特殊穷举思想的应用,河北唐山一中 鬲融,穷举的思想,穷举思想是信息学中最重要的思想之一,计算机的高速度使其具备了进行穷举的条件。然而,随着图论、数论、动态规划等方法的发展,以及搜索算法的不断改进,穷举似乎越来越不受重视,成为了低效的代名词。,让我们先来了解一下穷举。,穷举的思想,穷举,完全穷举,部分穷举,参变量法,准确理解题意,确定使用穷举思想,明确穷举对象,下面先来看一下完全穷举的例子,例一 聪明的打字员,题目描述(NOI2001),使用一个只有加减1(Up/Down),左右移动光标(Left/Right),与1,6交换(Swap0/Swap1)六个键的键盘,用最少的步数把一个6位数转化
2、成另外一个。例如,初始状态是123456,要求的状态是633451,那么最简单的转化方法是:,123456,623451,623451,633451,Swap1,Up,Right,思路1 搜索,思路很简单:通过广度优先搜索确定按键顺序和最小按键次数并输出,节点数:,6,000,000,过大,解决:HASH+A*或双向广度优先,缺点:实现复杂度太高,而且效率也不高,思路2 使用穷举思想,抓住问题的难点:Swap0/Swap1!,要是没有这两个键直接处理就可以,把这两个键先处理,不影响结果!,穷举这两个键的使用,只有6!=720种情况,思路2 使用穷举思想,这样我们通过完全穷举得到了一个算法:把按
3、键过程分为两步通过Swap0/1得到一个排列计算这个排列后剩余的步数一个问题:并不是所有的位置都可以改变解决方法:再次穷举哪些位置可以改变!时间复杂度:O(6!*10)=O(1),优秀的算法!,例二 逻辑岛,题目描述:在逻辑岛上有3种居民:永远说真话的神,永远说假话的恶魔和在白天说真话,在夜里说假话的人。一个社会学家访问了这个岛,但他无法通过外表区分这3种居民,所以他只能靠分析居民们说的话来判断他们的种类。岛上只有五个居民A,B,C,D,E。他们说的话只有3种1.I am not divine/evil/human/lying.2.X is not divine/evil/human/lyin
4、g.3.It is day/night.居民们说话的总数不超过50。你的任务就是通过居民们说的话来判断他们的种类以及现在是白天还是黑夜,让我们用人脑分析,A:B is human.B:A is evil.A:B is evil.,一个简单的例子:,A的话有矛盾,B是神!,A是恶魔,计算机怎样完成这种推理?,失败!,应用穷举思想,题目特点:,人数少,于是得到了完全穷举的算法:情况数:35*2=486对每句话进行判断时间复杂度:O(35*2*s)=O(s),小结,先来比较一下例一的两种算法,穷举或许具有很大的盲目性,但我们自身是灵活的!,部分穷举思想,有时候,问题离高效算法只有一步之遥。,参数K,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浅谈特殊穷举思想的应用 算法 浅谈 特殊 穷举 思想 应用
链接地址:https://www.31ppt.com/p-6012041.html