1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
不断地将问题实例归纳为更小的相似的子问题,并期望做出的局部最优的选择产生个全局得最优解。
由于汽车是由始向终点方向开的,我们最大的麻烦就是不知道在哪个加油站加油可以使我们既可以到达终点又可以使我们加油次数最少。
提出问题是解决的开始。
为了着手解决遇到的困难,取得最优方案。
我们可以假设不到万不得已我们不加油,即除非我们油箱里的油不足以开到下个加油站,我们才加次油。
在局部找到个最优的解。
每加次油我们可以看作是个新的起点,用相同的递归方法进行下去。
最终将各个阶段的最优解合并为原问题的解得到我们原问题的求解。
贪心算法正确性证明贪心选择性质所谓贪心选择性质是指所求问题的整体最优解可以通过系列局部最优的选择,即贪心选择来达到。
对于个具体的问题,要确定它是否具有贪心性质,我们必须证明每步所作的贪心选择最终导致问题的个整体最优解。
该题设在加满油后可行驶的千米这段路程上任取两个加油站,且距离始点比距离始点近,则若在加油不能到达终点那么在加油定不能到达终点,因为,即在点加油可行驶的路程比在点加油可行驶的路程要长千米,所以只要终点不在之间且在的右边的话,根据贪心选择,为使加油次数最少就会选择距离加满油得点远些的加油站去加油,因此,加油次数最少满足贪心选择性质。
最优子结构性质当个问题大的最优解包含着它的子问题的最优解时,称该问题具有最优子结构性质。
由于是这段路程加油次数最少的个满足贪心选择性质的最优解,则易知若在第个加油站加油时则是从到这段路程上加油次数最少且这段路程上的加油站个数为的最优解,即每次汽车中剩下的油不能在行驶到下个加油站时我们才在这个加油站加次油,每个过程从加油开始行驶到再次加油满足贪心且每次加油后相当于与起点具有相同的条件,每个过程都是相同且独立,也就是说加油次数最少具有最优子结构性质。
贪心算法时间复杂度分析由于若想知道该在哪个加油站加油就必须遍历所有的加油站,且不需要重复遍历,所以时间复杂度为。
第章最优合并问题问题的提出给定个排好序的序列,用路合并算法将这个序列合并成个序列。
假设所采用的路合并算法合并个长度分别为和的序列需要次比较。
试设计个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。
为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次数最多。
原理分析这个程序比较适合用堆,最优用最小堆,最差用最大堆以最优合并为例使用各序列的长度建堆两个最小的元素出堆,计算这两序列合并需要的比较次数,该次数入堆重复,直到堆只剩下个元素最后剩下的元素即为题目的解。
算法时间复杂度分析复杂度为,排序后,最小的两个序列是前两个,计算最小的两个序列的合并次数后,该次数不定是新的最小的两个序列之,所以在下次合并前,必需使数组仍旧有序,让最小的两个序列在数组的最前面,为使数组重新有序,可以使用类似插入排序的插入过程,将新得到的数字直接插入到数组,这样不需要额外的储存空间,但总复杂度是,考虑到需要计算最优与最差,实际上也必须需要额外的的空间来保存排序后的结果,如果将排序后的数组按照顺序作成个链表,那么链表的最前的两节点就是最小的两序列,计算合并次数,删除该两节点,将新得到的次数插入到链表,注意到,后面需要插入的数字肯定比前面插入的数字大,所以从上次插入的位置之后查找新的插入位置,这样插入数字的总的时间复杂度是的,总的时间复杂度仍旧是,并使用了额外的的空间。
第章会场安排问题问题的提出假设要在足够多的会场里安排批活动,并希望使用尽可能少的会场。
设计个有效的贪心算法进行安排。
这个问题实际上是著名的图着色问题。
若将每个活动作为图的个顶点,不相容活动间用边相连。
使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。
数据输入由文件给出输入数据。
第行有个正整数,表示有个待安排的活动。
接下来的行中,每行有个正整数,分别表示个待安排的活动开始时间和结束时间。
时间以点开始的分钟计。
结果输出将编程计算出的最少会场数输出到文件。
输入文件示例输出文件示例编码分析根据会场安排问题的定义,首先将问题简化为找出两个活动,若和满足或,则称这两个活动相容,即问题转化为要求找出最多相容会场集合。
问题简化为对相容会场的寻找,下面用贪心方法分析过程,根据题意,选取种量度标准,然后按量度标准对个输入排序,按顺序次输入个量。
如果这个输入和当前已构成在这种量度意义下的部分最优解加在起不能产生个可行解,则不把此输入加到这部分解中,这种能够得到种量度意义下的最优解的分级处理方法就是贪心方法。
那么问题转化为对度量标准的寻找,判断各个数据是否可以包含在解向量中去,然后根据目标函数来选择最优解。
贪心算法将所有活动按结束时间排序,得到活动集合先将选入结果集合中,即依次扫描每个活动如果的开始时间晚于最后个选入的活动的结束时间,则将选入中,否则放弃。
最优解证明若,是按结束时间排序的活动集合,则具有最早的结束时间,设存在个最优安排不包含,并以开始,则易见∪也是最优的活动安排依此类推,即可推出上述活动都为中的不相容最优活动。
俗话所的好的纸上得来终觉浅,绝知此事要躬行,那么让我们举个例子来进步清晰化问题下面表格有个活动,并给出各个活动的开始时间与结束时间,那么请用上述贪心解法分析并求解最优会场数目。
如表所示。
表会场活动安排表活动开始时间结束时间根据贪心策略现将个活动的结束时间排序为解说方便上表格已经排好排序可用快速排序。
毋庸置疑将先分配入会场集合,然后按照顺序找出下个活动,使得其开始时间小于的结束时间即满足时间不冲突,如图易知为,再将分配给,以后每步骤都重复如的选择。
经过第轮的筛选可知会场集合中包含,。
此时已经没有活动在相容于会场中,那么再继续对进行同样的选取,同理,。
那么得出总的会场数目。
算法时间复杂度分析算法的时间复杂度为。
第章贪心算法的实现语言概述据统计,目前世界上支持面向对象程序设计的语言已近百种,除了大多数是供研究用的非商业软件外,具有强大竞争力语言也很多,其中类是以和语言为代表的新的面向对象语言。
它以其制定项目安全技术措施和分项安全方案负责安全技术交底解决施工中的不安全技术问题,排除事故源。
安全控制措施安全立法措施项目经理部在本项目工程施工中将严格执行国家行业地区安全法规标准及项目法人工程师有关安全的指令,并依此制订自己的安全管理制度。
具体内容和要求如下安全生产责任制度规定安全管理网络中各部门管理人员及其他相关人员的职责权利和义务。
安全生产例会制度项目部每月召开次安全例会,总结上月安全工作,布置下月安全工作,提出改进措施,并作好记录。
派员参加项目法人组织召开的安全例会。
安全生产教育制度所有施工人员在进入操作岗位前须经安全考试合格才能上岗特殊工种必须经特殊工种安全教育,进行理论与实际考试,合格者发上岗证,不合格者补考,仍不合格者取消特殊工种资格。
安全生产检查制度检查是否有安全生产制度是否进行了安全教育,是否有安全技术措施,发现问题填写安全整改通知书,并限期整改。
规定项目部每月进行次,班组每周进行次。
安全生产奖惩制度建立安全风险机制,实行安全风险抵压金制度,对安全施工无事故的,双倍奖励发生安全事故的,没收抵押金并加倍处罚。
安全组织措施建立施工项目安全组织系统项目安全生产委员会,项目经理任项目安全生产委员会主任。
建立与项目安全组织系统相配套的各专业部门生产岗位的安全责任系统。
规范作业人员安全纪律。
现场作业人员遵守安全纪律和操作规程是安全控制的关键,作业人员应遵守以下要求没有安全技术措施,不经安全交底不准作业没有有效的安全措施不准作业发现事故隐患未及时排除不准作业不按规定使用安全保护用品不准作业非特种作业人员不准从事特种作业新工人不经培训,或培训考试不合格不准上岗作业对机械设备工具的性能不熟悉不准使用机械电器设备安全防护装置不齐全不准作业加强班组建设和管理,班组实行安全日活动制度,每周每班不少于小时的安全学习和活动时间。
在班前班后对该班的安全作业情况进行检查和总结。
加强民工临时工的安全教育和管理工作,将民工临时工纳入本单位管理范围,组织民工临时工参加技术交底安全学习和考试,参加安全日活动。
成立消防治安领导小组,加强消防治安管理工作。
每月将工程安全管理情况向项目法人及监理部门汇报,每月递交安全报表份。
建立各种安全管理台帐,保存各种安全文件和资料,收集安全规范规定。
项目部及班组均建立安全台帐。
根据国家颁布的安全规程及我单位实际情况,编印通俗易懂的适合于本工程使用的安全防护袖珍手册,分发给全体职工。
安全技术措施根据本工程的特点,分析安全薄弱环节,拟将采取以下的安全技术措施,具体见表工程施工安全薄弱环节及安全技术措施。
工程施工安全薄弱环节及技术措施表序号施工安全薄弱环节安全施工技术措施个别职工安全意识差,存在习惯性违章教育职工,树立安全第的思想针对容易发生习惯性违章的工作悬挂警告牌彩旗标语或在施工牌中写上注意事项重奖重罚,按奖惩制度执行坚持三宝使用和四口的防护个别施工人员未认真听取技术交底,对图纸方案技术措施等未领会施工前编写完整的施工安全技术措施所有施工人员都必们个固定的递推式,而是在每个阶段都看上去是个最优的决策在定的标准下。
不断地将问题实例归纳为更小的相似的子问题,并期望做出的局部最优的选择产生个全局得最优解。
由于汽车是由始向终点方向开的,我们最大的麻烦就是不知道在哪个加油站加油可以使我们既可以到达终点又可以使我们加油次数最少。
提出问题是解决的开始。
为了着手解决遇到的困难,取得最优方案。
我们可以假设不到万不得已我们不加油,即除非我们油箱里的油不足以开到下个加油站,我们才加次油。
在局部找到个最优的解。
每加次油我们可以看作是个新的起点,用相同的递归方法进行下去。
最终将各个阶段的最优解合并为原问题的解得到我们原问题的求解。
贪心算法正确性证明贪心选择性质所谓贪心选择性质是指所求问题的整体最优解可以通过系列局部最优的选择,即贪心选择来达到。
对于个具体的问题,要确定它是否具有贪心性质,我们必须证明每步所作的贪心选择最终导致问题的个整体最优解。
该题设在加满油后可行驶的千米这段路程上任取两个加油站,且距离始点比距离始点近,则若在加油不能到达终点那么在加油定不能到达终点,因为,即在点加油可行驶的路程比在点加油可行驶的路程要长千米,所以只要终点不在之间且在的右边的话,根据贪心选择,为使加油次数最少就会选择距离加满油得点远些的加油站去加油,因此,加油次数最少满足贪心选择性质。
最优子结构性质当个问题大的最优解包含着它的子问题的最优解时,称该问题具有最优子结构性质。
由于是这段路程加油次数最少的个满足贪心选择性质的最优解,则易知若在第个加油站加油时则是从到这段路程上加油次数最少且这段路程上的加油站个数为的最优解,即每次汽车中剩下的油不能在行驶到下个加油站时我们才在这个加油站加次油,每个过程从加油开始行驶到再次加油满足贪心且每次加油后相当于与起点具有相同的条件,每个过程都是相同且独立,也就是说加油次数最少具有最优子结构性质。
贪心算法时间复杂度分析由于若想知道该在哪个加油站加油就必须遍历所有的加油站,且不需要重复遍历,所以时间复杂度为。
第章最优合并问题问题的提出给定个排好序的序列,用路合并算法将这个序列合并成个序列。
假设所采用的路合并算法合并个长度分别为和的序列需要次比较。
试设计个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。
为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次数最多。
原理分析这个程序比较适合用堆,最优用最小堆,最差用最大堆以最优合并为例使用各序列的长度建堆两个最小的元素出堆,计算这两序列合并需要的比较次数,该次数入堆重复,直到堆只剩下个元素最后剩下的元素即为题目的解。
算法时间复杂度分析复杂度为,排序后,最小的两个序列是前两个,计算最小的两个序列的合并次数后,该次数不定是新的最小的两个序列之,所以在下次合并前,必需使数组仍旧有序,让最小的两个序列在数组的最前面,为使数组重新有序,可以使用类似插入排序的插入过程,将新得到的数字直接插入到数组,这样不需要额外的储存空间,但总复杂度是,考虑到需要计算
