如何分析最大流算法求解匹配求解不相交问题算法的复杂性

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
(计算机软件与理论专业论文)求解等圆packing问题的高性能近似算法
下载积分:800
内容提示:(计算机软件与理论专业论文)求解等圆packing问题的高性能近似算法
文档格式:PDF|
浏览次数:0|
上传日期: 06:26:57|
文档星级:
该用户还上传了这些文档
(计算机软件与理论专业论文)求解等圆packing问题的高性
官方公共微信计算几何――算法设计与分析(第4版)(周培德)_数据结构与算法书籍_希赛网图书
客服热线:400-777-1218
当前位置: >
> 计算几何――算法设计与分析(第4版)
计算几何――算法设计与分析(第4版)
价  格:82.00&元
所属类别:
作  者:周培德
出版时间:
所属学科:
页  数:608
出 &版 社:清华大学出版社
面对棘手的构造性几何问题,怎么办?  
从本书中可以找到有效方法,帮助你排忧解难。
《计算几何――算法设计与分析(第4版)》系统地介绍了计算几何中的基本概念、求解诸多问题的算法及复杂性分析,概括了求解几何问题所特有的许多思想方法、几何结构与数据结构。全书共分10章,包括:预备知识,几何查找(检索),多边形,凸壳及其应用,voronoi图、三角剖分及其应用,交与并及其应用,多边形的获取及相关问题,几何体的划分与等分,路径与回路,几何拓扑网络设计等。
《计算几何――算法设计与分析(第4版)》可作为高等院校计算机、自动化等专业研究生或本科高年级学生的教材或教学参考书,也可供软件开发人员、相关专业科技工作者参考。
《计算几何――算法设计与分析(第4版)》书籍目录
《计算几何――算法设计与分析(第4版)》第0章预备知识0.1算法与数据结构0.1.1算法0.1.2数据结构o.2相关的几何知识0.2.1基本定义0.2.2线性变换群下的不变量0.2.3几何对偶性0.3计算模型第1章几何查找(检索)1.1点定位问题1.1.1点q是否在多边形户内1.1.2确定点q在平面剖分中的位置1.1.3z1-3算法(判定点q在哪个三角形的算法)1.2判定点集是否在多边形内1.3平面网络的处理与点q的定位1.4平面上链的处理与点q的定位1.5平面上线段的处理与点q的定位1.6判定点是否在多边形内部的新算法.第2章多边形2.1凸多边形2.2简单多边形2.3多边形的三角剖分2.4多边形的凸划分2.5对多边形链的监视2.6线段划分多边形2.7 凸多边形的内接最大三角形及外切最小三角形第3章凸壳及其应用3.1凸壳的基本概念3.2计算平面点集凸壳的算法3.3计算平面多边形顶点凸壳的算法3.4计算平面多边形链顶点凸壳的算法3.4.1概念、算法思想与描述3.4.2解释与时间复杂性3.5计算平面线段集凸壳的算法3.6计算三维空间点集凸壳的算法3.6.1基本概念3.6.2z3-8算法(三维凸壳)3.7时间复杂性低于下界o(nlogn)的凸壳算法3.8凸壳的应用3.8.1确定任意多边形的凸、凹顶点3.8.2利用凸壳求解货郎扭问题3.8.3凸多边形直径3.8.4连接两个多边形成一条回路第4章voronoi图、三角剖分及其应用4.1voronoi图的基本概念4.2构造voronoi图的算法4.2.1z4-1算法(计算平面点集的voronoi图)4.2.2构造最远点意义下voronoi图的算法4.3平面点集的三角剖分4.3.1delaunay三角剖分与多边形内部点集的三角剖分4.3.2平面点集三角剖分的算法4.4平面线段集的三角剖分4.5平面点线集的三角剖分4.6平面点集的伪三角剖分4.7伪三角形的产生4.8三角剖分的表示4.9推广及应用4.9.1最近邻近4.9.2最大化最小角的三角剖分4.9.3最大空圆4.9.4最小生成树4.9.5货郎担问题4.9.6中轴4.9.7voronoi图与凸壳的关系4.9.8voronoi图的推广4.9.9有约束的voronoi图4.9.10线段集的voronoi图4.9.11关联于多边形的voronoi图4.9.12点线集的voronoi图4.9.13点、水平、垂直正交线段集的voronoi图4.9.14几何数据压缩4.9.15车辆定位导航系统的新定位算法4.9.16调色4.9.17点集增(删)点之后的三角剖分第5章交与并及其应用5.1线段交的算法5.2多边形的交5.2.1凸多边形交的算法5.2.2星形多边形交的算法5.2.3任意简单多边形交的算法5.3半平面的交及其应用5.3.1半平面的交5.3.2两个变量的线性规划5.4多边形的并5.5凸多面体的交5.6应用5.6.1地图匹配5.6.2地图数据的处理5.6.3线段与凸多面体面的交5.6.4与线段集中线段均相交的直线及其存在区域5.6.5特定射线询问第6章多边形的获取及相关问题6.1连接不相交线段成简单多边形(链)6.2红外图像边缘提取6.3提取可见光图像的边缘6.4图像边界点行排列转换为顺序排列6.5数字图像中目标边界的多边形表示6.6包含密集点、线集多边形的获取6.7满足特定条件的多边形划分6。8多边形与多边形链6.9圆弧、直线段组成的多边形顶点凸、凹性的确定6.10多边形放大、缩小及移动6.11带状多边形的处理6.12下料问题(1)6.13下料问题(2)6.14下料问题(3)6.15线锯问题6.16多边形(链)的匹配(1)6.17多边形(链)的匹配(2)6.18构造凸多边形6.19具有属性点集的控制区域6.20多边形内区域的划分及多边形(点集)中心点的确定6.21满足一定条件的多边形划分6.22特定条件下凸多边形的缩小与放大第7章几何体的划分与等分7.1平面上不同类型点集的划分7.2多边形内不同类型点集的等分7.3平面上不同类型线段集的划分7.4.平面上不同类型线段集的等分7.5平面上不同类型点线集的划分与等分7.6链、多边形的划分与等分第8章路径与回路8.1最短路径8.1.1可视图及其构造8.1.2z8-1算法(寻求网络中任意两点间最短路径的算法:8.1.3多面体面上任意两点之间的最短路径8.1.4货运汽车调度及行驶路径问题8.2最短路径问题的变型8.3满足一定条件的运动规划8.4多边形内点之间的可视图8.5多边形内任意两点之间的最短路径8.6自主车自动定位及确定行车方向8.7迷宫问题8.8棋盘上的路径与回路8.9选择道路及判定道路的通过能力8.10多边形内中心区域的确定第9章几何拓扑网络设计9.1g(s)问题9.1.1最大间隙问题(maxg)9.1.2点集中最大空凸多边形问题及最大空矩形问题9.1.3线段集中最大空凸多边形问题9.1.4点线集中最大空凸多边形问题9.1.5最小覆盖问题(minc)9.1.6包含平面点集的最小正方形9.1.7子点集包含问题9.1.82-中心问题9.1.9k-中心问题9.1.10最近对问题(cpp)9.1.1l所有最近邻近问题(annp)9.1.12邮局问题(pofp)9.1.13寻找具有属性点集的最近点对或点团9.2g(e)问题9.2.1emst问题9.2.2线段集、点线集的最小生成树9.2.3直线最小生成树及其相关问题9.2.4欧几里得tsp 9.2.5欧几里得最大生成树问题(emxt)9.2.6最小生成网络9.3g(s,e)问题9.3.1欧几里得steiner最小树问题(esmt)9.3.2直线steiner最小树问题(rsmt)9.3.3求解esmt问题的算法9.4g(ω)问题9.4.1有障碍物的最大空隙问题(maxg(/3))9.4.2多边形集中最大空隙问题9.4.3具有障碍物的欧几里得最短路径问题(espo)9.4.4求解k3中espo问题的算法9.4.5具有障碍物的steiner最小树问题(esmto) 待解决的问题算法一览参考文献名词索引
本图书名称:
本图书地址:君,已阅读到文档的结尾了呢~~
算法复杂性分析
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
算法复杂性分析
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
算法分析与计算复杂性理论
下载积分:300
内容提示:算法分析与计算复杂性理论
文档格式:PPT|
浏览次数:30|
上传日期: 15:04:27|
文档星级:
该用户还上传了这些文档
算法分析与计算复杂性理论
官方公共微信本章讲解解此类问题的简单算法—贪心算法
时间: 2:59:50
第5章贪心法章&&&&&&&&信工计算机系2008信工计算机系&&&&&&&&&&&&本章学习内容&&&&贪心法设计方法及基本要素贪心法举例:背包问题,货郎担问题最优装载,活动安排,多机调度等&&&&&&&&&&&&5.1贪心法设计方法及基本要素&&&&例5.1货币兑付问题&&&&假定出纳员手中有n张面值为pi(1≤i≤n)的货币,用集合P={p1,p2,...,pn}表示这些货币.如果出纳员需支付的现金为A,要求出纳员用最少的货币张数支付现金.&&&&&&&&&&&&5.1贪心法设计方法及基本要素&&&&解:假设最后的支付集合为S,定义xi为:&&&&pi∈S1xi=piS0问题转换为:&&&&min&&&&目标函数&&&&&&&&∑x&&&&i=1&&&&&&&&n&&&&&&&&i&&&&&&&&且&&&&&&&&∑&&&&i=1&&&&&&&&n&&&&&&&&约束条件pixi=A&&&&&&&&&&&&这类最优问题,是在问题的解空间中,搜索满足约束条件且使目标函数达到极值的解向量.其中满足约束条件的解称为问题的可行解,使目标函数取极值的可行解,称为最优解.例5.1中,问题的解空间:&&&&&&&&{x1,x2,...,&&&&&&&&xn}&&&&&&&&xi=1,0&&&&&&&&共2n个不同的向量,可用穷举法求解.本章讲解解此类问题的简单算法—贪心算法.&&&&&&&&&&&&贪心法设计方法&&&&贪心法通常用来解决具有最大值或最小值的优化问题.通常从某一个初始状态出发,根据当前局部而非全局的最优决策,以满足约束方程为条件,以使得目标函数的值增加最快或最慢为准则,选择一个最快地达到要求的输入元素,以便尽快地构成问题的可行解.&&&&&&&&&&&&其设计方法描述如下:&&&&greedy(A,n){solution=φ;for(i=1;i=n;i++){x=select(A);&&&&&&&&选择准则&&&&&&&&if(feasible(solution,x))solution=union(solution,x);}return}&&&&&&&&&&&&贪心法设计举例&&&&例5.2用贪心法求解货币兑付问题.设支付现金用贪心法求解货币兑付问题.&&&&A=25.9元支付集合P={10,A=25.9元,支付集合P={10,5,1,0.5,0.2,0.1元各10张元各100.5,0.2,0.1元各10张}解:最少货币张数—贪心选择货币面值大者.贪心选择货币面值大者.&&&&ssss=ф={10}={10,10}={10,10,5,0.5,0.2,0.2}15.95.90&&&&&&&&&&&&贪心法基本要素&&&&贪心法通过一系列选择得到问题的解.其所做出的贪心法通过一系列选择得到问题的解.每一个选择都是当前状态下的局部最好选择,每一个选择都是当前状态下的局部最好选择,即贪心选择.心选择.贪心法并不总能得到问题的最优解用贪心法求解的问题一般具有两个重要性质:用贪心法求解的问题一般具有两个重要性质:&&&&&&&&贪心选择性质&&&&&&&&最优子结构性质&&&&&&&&&&&&贪心法基本要素—贪心法基本要素—贪心选择性质&&&&是指所求问题的整体最优解可以通过一系列局部最优的选择(仅依赖于以往所做过的选择,最优的选择(仅依赖于以往所做过的选择,不依赖于将来所做的选择),即贪心选择来达到.),即贪心选择来达到于将来所做的选择),即贪心选择来达到.每做出一次贪心选择将所求问题简化为规模更小的子问题.一次贪心选择将所求问题简化为规模更小的子问题.&&&&&&&&&&&&贪心法基本要素—贪心法基本要素—最优子结构性质&&&&当一个问题的最优解包含其子问题的最优解时,称当一个问题的最优解包含其子问题的最优解时,此问题具有最优子结构性质.此问题具有最优子结构性质.&&&&&&&&&&&&5.2贪心法例—背包问题&&&&问题原型&&&&给定一个载重量为M的背包,及n个重量为ωi,价值为pi1的物体,≤i≤n,要求把物体装满背包,且使背包内的物体价值最大.&&&&&&&&有两类背包问题:物体可分割—本节研究物体不可分割—0/1背包问题,后续章节研究&&&&&&&&&&&&背包问题的数学描述&&&&假设:xi是物体i被装入背包的部分,0≤x1≤1.根据问题要求,背包问题的数学描述为:max&&&&n&&&&&&&&∑px&&&&i=1ii&&&&&&&&n&&&&&&&&ii&&&&&&&&∑ωx&&&&i=1&&&&&&&&=M&&&&&&&&即求X=(x1,x2,…,xn),满足上述优化方程.&&&&&&&&&&&&贪心法解背包问题解法1贪心法解背包问题解法1&&&&1.价值最大—贪心选择价值大者&&&&例:背包重量10物体1:重量9价值5物体2:重量4价值4物体3:重量3价值2①选物体1,x1=1;剩余可装重量1,价值5②选物体2,x2=0.25;剩余0,价值6但若令X=(1/3,1,1);则背包价值为7.667但若令X=(1/3,1,1);则背包价值为7.667X=(1/3,1,1);则背包价值为因此此贪心选择不一定达到最大价值.因此此贪心选择不一定达到最大价值.&&&&&&&&&&&&贪心法解背包问题解法2贪心法解背包问题解法2&&&&&&&&√&&&&&&&&贪心选择价值重量大者价值/2.价值最大—贪心选择价值/重量大者例:背包重量10背包重量物体1:重量9物体:重量物体2:重量4物体:重量物体3:重量3物体:重量价值5价值价值4价值价值2价值&&&&&&&&&&&&①初始:背包剩余重量m=M=10&&&&&&&&背包当前价值p=0&&&&&&&&②对物体按价值/重量的降序排序,得231③贪心选择物体2w2≤m,故x2=1;m=m-w2=6p=p+p2=4④贪心选择物体3w3≤m,故x3=1;m=m-w3=3p=p+p3=6⑤贪心选择物体1w1m,故x1=m/w1=1/3p=p+p1*x1=7.667最优解为:X=(1/3,1,1).贪心算法的重点是找到正确的贪心选择标准&&&&&&&&&&&&贪心法解背包问题算法分析&&&&时间复杂性分析:时间复杂性分析:排序O(nlogn),贪心选择O(n),故时间复杂性为O(nlogn).最优解分析:最优解分析:&&&&设物体1,物体2,…,物体n已按价值重量比的降序排序.贪心选择性质:贪心选择性质:设X={x1,x2,…,xn}是背包问题的一个最优解.令k=min{i|xi0,1≤i≤n},若k=1,则X是以贪心算法开始的最优解.&&&&&&&&&&&&若k1,令Z中zk=0,z1=wkxk/w1,zi=xi(1≤i≤n,ik,i1)&&&&则有:&&&&&&&&∑&&&&i=1&&&&&&&&n&&&&&&&&wxzipi=kkp1+xipi≥w1i=k+1&&&&&&&&∑&&&&&&&&n&&&&&&&&∑xp&&&&ii=k&&&&&&&&n&&&&&&&&i&&&&&&&&=P&&&&&&&&(1)若等式成立,则Z也为最优解,继续同样过程,可使z1=1,或≠0,Z是以贪心算法开始的最优解.(2)若大于成立,与X为最优解矛盾,不成立.故总存在以贪心算法开始的最优解.&&&&&&&&说明:证明贪心选择性质的一般方法是:首先假设问题的一个整体最优解,并证明可修改这个最优解,使其以贪心算法开始.&&&&&&&&&&&&最优子结构性质:最优子结构性质:贪心选择物体1之后,问题转化为背包重量为m-w1*x1,物体集为{物体2,物体3,…,物体n}的背包问题.且该问题的最优解包含在初始问题的最优解中.&&&&&&&&&&&&5.3贪心法例—货郎担问题&&&&问题原型某售货员要到若干个城市销售货物,已知各城市之间的距离,要求售货员选择出发的城市及旅行路线,使每个城市经过一次,最后回到原出发城市,而总路程最短.&&&&&&&&&&&&货郎担问题数学描述&&&&假设n个城市,分别用~n的数字编号.货郎担问题是在1有向网G=V,E,V={1,...,n},E={eij,1≤i,j≤n(eij上2,}权表示城市i到城市j的距离)中寻找一条路径最短的哈密尔顿回路(经过每个顶点一次)问题.&&&&&&&&&&&&贪心法解货郎担问题&&&&求距离最短的哈密尔顿回路,需求从各城市出发的最短回路,再对n条回路求极小值.&&&&&&&&回路最短—贪心选择距离短的路线&&&&&&&&&&&&例:假设5个城市的费用矩阵为:&&&&11∞∞∞&&&&&&&&从城市1出发:1-4-3-5-2-1,总距离14从城市2出发:2-5-4-1-3-2,总距离17其它城市同理,再在5条回路中选择最小距离.&&&&&&&&&&&&贪心法解货郎担问题算法分析&&&&时间复杂性分析:从一个城市出发的最短回路计算为&&&&O(n2),共n个城市,故时间复杂度为O(n3),远小于穷举法的n!.&&&&&&&&最优解分析:&&&&从城市1出发最优路线:1-2-5-4-3-1,距离13贪心法求解货郎担问题不具有贪心选择性质和最优子结构性质.只能得到近似解,不能得到最优解.&&&&&&&&&&&&5.4贪心法例—最优装载问题&&&&问题原型假设有n个集装箱,其中集装箱i的重量为wi,最优装载问题要求在装载体积不受限制的情况下,将尽可能多的集装箱装上载重量为c的轮船.&&&&&&&&&&&&最优装载问题数学描述&&&&最优装载问题可描述为:max&&&&n&&&&&&&&∑x&&&&i=1ii&&&&&&&&n&&&&&&&&i&&&&&&&&∑wx&&&&i=1&&&&&&&&≤c&&&&&&&&xi∈{0,1},1≤i≤n&&&&&&&&其中xi=1表示装入集装箱i,xi=0表示不装入集装箱i.&&&&&&&&&&&&贪心法解最优装载问题&&&&目标是装入集装箱个数最多—贪心选择重量轻者优先&&&&例:c=100吨w1=10吨w2=30吨w3=20吨w4=40吨①初始剩余载重g=100装入个数k=0②贪心选择w1w1g故x1=1g=g-w1=90k=1③贪心选择w2w2g故x2=1g=g-w2=60k=2同理,继续.得X={1,1,1,1}&&&&&&&&&&&&贪心法解最优装载问题算法分析&&&&时间复杂性分析:排序O(nlogn),贪心选择O(n),故时间复杂性为O(nlogn)最优解分析:具有贪心选择性质和最优子结构性质,能得到问题的最优解.&&&&&&&&&&&&5.5贪心法例—活动安排问题&&&&问题原型&&&&设有n个活动的集合E={1,...,n},其中每个活动都要求使用同2,一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且sifi.如果选择了活动i,则它在半开时间区间[si,fi)内占用资源.若区间[si,fi)与区间[sj,fj)不相交,则称活动i与活动j是相容的.活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合.&&&&&&&&&&&&贪心法解活动安排问题&&&&按fi非减序对活动排序相容活动子集合最大—贪心选择与已选活动相容,且fi小者.&&&&&&&&&&&&例:设待安排的11个活动的开始时间和结束时间按结束时间的非减序排列如下:&&&&isifi11214&&&&&&&&用贪心法求其最大相容活动子集.解为:1,4,8,11&&&&&&&&&&&&贪心法解活动安排问题算法分析&&&&时间复杂性分析:排序的时间复杂度O(nlogn),贪心选&&&&择的时间复杂度O(n),故时间复杂度为O(nlogn).&&&&&&&&最优解分析:&&&&该贪心算法具有贪心选择性质和最优子结构性质,能得到问题的最优解.&&&&&&&&&&&&5.6贪心法例—多机调度问题&&&&问题原型&&&&设有n个独立的不可拆分作业{1,...,n},由m台相同的机2,器进行加工处理.作业i所需的处理时间为ti.约定,每个作业均可在任何一台机器上加工处理,但在完工前不可中断处理.多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成.&&&&&&&&&&&&贪心法解多机调度问题&&&&调度时间最短—贪心选择作业执行时间大者,将其调度到可最早开始加工它的机器上.&&&&&&&&&&&&贪心法解多机调度问题&&&&例:设7个作业的执行时间如下表,将在3机器上加工处理.请给出它们的调度安排.&&&&iti73&&&&&&&&&&&&解:设分别用T[3]表示3台机器的最早开始时间.&&&&初始:T[0]=T[1]=T[2]=0作业排序得:6143257&&&&&&&&1.选作业6,调度至机器0,T[0]=82.选作业1,调度至机器1,T[1]=73.选作业4,调度至机器2,T[2]=54.选作业3,调度至机器2,T[2]=95.选作业2,调度至机器1,T[1]=106.选作业5,调度至机器0,T[0]=117.选作业7,调度至机器2,T[2]=12&&&&&&&&&&&&调度示意图如下所示:P0P1P2&&&&6(8)1(7)4(5)5(3)2(3)3(4)7(3)&&&&&&&&&&&&贪心法解多机调度问题算法分析&&&&时间复杂性分析:O(nlogn+nlogm)多机问题不一定得到最优解:不具有贪心选择性质和&&&&最优子结构.多机调度是NP完全问题,贪心算法得到其近似解.上例的一种最优调度示意图如下所示:P0P1P24(5)6(8)1(7)2(3)5(3)3(4)7(3)&&&&&&&&&&&&5.7数据结构中的贪心法&&&&单源点最短路径最小生成树—prim和KruskalHuffman编码&&&&&&&&&&&&

我要回帖

更多关于 算法复杂性 的文章

 

随机推荐