欢迎来到天天文库
浏览记录
ID:38953415
大小:114.50 KB
页数:28页
时间:2019-06-22
《中国数学建模-编程交流-贪婪算法new》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、中国数学建模-编程交流-贪婪算法.txt“我羡慕内些老人羡慕他们手牵手一直走到最后。━交话费的时候,才发现自己的话那么值钱。中国数学建模-编程交流-贪婪算法第1章贪婪算法虽然设计一个好的求解算法更像是一门艺术,而不像是技术,但仍然存在一些行之有效的能够用于解决许多问题的算法设计方法,你可以使用这些方法来设计算法,并观察这些算法是如何工作的。一般情况下,为了获得较好的性能,必须对算法进行细致的调整。但是在某些情况下,算法经过调整之后性能仍无法达到要求,这时就必须寻求另外的方法来求解该问题。本章首先引入最优化的概念,然后介绍一种直观
2、的问题求解方法:贪婪算法。最后,应用该算法给出货箱装船问题、背包问题、拓扑排序问题、二分覆盖问题、最短路径问题、最小代价生成树等问题的求解方案。1.1最优化问题本章及后续章节中的许多例子都是最优化问题(optimizationproblem),每个最优化问题都包含一组限制条件(constraint)和一个优化函数(optimizationfunction),符合限制条件的问题求解方案称为可行解(feasiblesolution),使优化函数取得最佳值的可行解称为最优解(optimalsolution)。例1-1[渴婴问题]有一个
3、非常渴的、聪明的小婴儿,她可能得到的东西包括一杯水、一桶牛奶、多罐不同种类的果汁、许多不同的装在瓶子或罐子中的苏打水,即婴儿可得到n种不同的饮料。根据以前关于这n种饮料的不同体验,此婴儿知道这其中某些饮料更合自己的胃口,因此,婴儿采取如下方法为每一种饮料赋予一个满意度值:饮用1盎司第i种饮料,对它作出相对评价,将一个数值si作为满意度赋予第i种饮料。通常,这个婴儿都会尽量饮用具有最大满意度值的饮料来最大限度地满足她解渴的需要,但是不幸的是:具有最大满意度值的饮料有时并没有足够的量来满足此婴儿解渴的需要。设ai是第i种饮料的总量(
4、以盎司为单位),而此婴儿需要t盎司的饮料来解渴,那么,需要饮用n种不同的饮料各多少量才能满足婴儿解渴的需求呢?设各种饮料的满意度已知。令xi为婴儿将要饮用的第i种饮料的量,则需要解决的问题是:找到一组实数xi(1≤i≤n),使nåi=1sixi最大,并满足:nåi=1xi=t及0≤xi≤ai。需要指出的是:如果nåi=1ai5、式的描述:输入:n,t,si,ai(其中1≤i≤n,n为整数,t、si、ai为正实数)。输出:实数xi(1≤i≤n),使nåi=1sixi最大且nåi=1xi=t(0≤xi≤ai)。如果nåi=1ai6、物。所有待装货物都装在货箱中且所有货箱的大小都一样,但货箱的重量都各不相同。设第i个货箱的重量为wi(1≤i≤n),而货船的最大载重量为c,我们的目的是在货船上装入最多的货物。这个问题可以作为最优化问题进行描述:设存在一组变量xi,其可能取值为0或1。如xi为0,则货箱i将不被装上船;如xi为1,则货箱i将被装上船。我们的目的是找到一组xi,使它满足限制条件nåi=1wixi≤c且xiÎ{0,1},1≤i≤n。相应的优化函数是nåi=1xi。满足限制条件的每一组xi都是一个可行解,能使n&ar7、ing;i=1xi取得最大值的方案是最优解。例1-3[最小代价通讯网络]城市及城市之间所有可能的通信连接可被视作一个无向图,图的每条边都被赋予一个权值,权值表示建成由这条边所表示的通信连接所要付出的代价。包含图中所有顶点(城市)的连通子图都是一个可行解。设所有的权值都非负,则所有可能的可行解都可表示成无向图的一组生成树,而最优解是其中具有最小代价的生成树。在这个问题中,需要选择一个无向图中的边集合的子集,这个子集必须满足如下限制条件:所有的边构成一个生成树。而优化函数是子集中所有边的权值之和。------------------8、----------------------------plot(100+t+15*cos(3.05*t),t=0..200,coords=polar,axes=none,scaling=constrained);1.2算法思想在贪婪算法(greedymetho
5、式的描述:输入:n,t,si,ai(其中1≤i≤n,n为整数,t、si、ai为正实数)。输出:实数xi(1≤i≤n),使nåi=1sixi最大且nåi=1xi=t(0≤xi≤ai)。如果nåi=1ai6、物。所有待装货物都装在货箱中且所有货箱的大小都一样,但货箱的重量都各不相同。设第i个货箱的重量为wi(1≤i≤n),而货船的最大载重量为c,我们的目的是在货船上装入最多的货物。这个问题可以作为最优化问题进行描述:设存在一组变量xi,其可能取值为0或1。如xi为0,则货箱i将不被装上船;如xi为1,则货箱i将被装上船。我们的目的是找到一组xi,使它满足限制条件nåi=1wixi≤c且xiÎ{0,1},1≤i≤n。相应的优化函数是nåi=1xi。满足限制条件的每一组xi都是一个可行解,能使n&ar7、ing;i=1xi取得最大值的方案是最优解。例1-3[最小代价通讯网络]城市及城市之间所有可能的通信连接可被视作一个无向图,图的每条边都被赋予一个权值,权值表示建成由这条边所表示的通信连接所要付出的代价。包含图中所有顶点(城市)的连通子图都是一个可行解。设所有的权值都非负,则所有可能的可行解都可表示成无向图的一组生成树,而最优解是其中具有最小代价的生成树。在这个问题中,需要选择一个无向图中的边集合的子集,这个子集必须满足如下限制条件:所有的边构成一个生成树。而优化函数是子集中所有边的权值之和。------------------8、----------------------------plot(100+t+15*cos(3.05*t),t=0..200,coords=polar,axes=none,scaling=constrained);1.2算法思想在贪婪算法(greedymetho
6、物。所有待装货物都装在货箱中且所有货箱的大小都一样,但货箱的重量都各不相同。设第i个货箱的重量为wi(1≤i≤n),而货船的最大载重量为c,我们的目的是在货船上装入最多的货物。这个问题可以作为最优化问题进行描述:设存在一组变量xi,其可能取值为0或1。如xi为0,则货箱i将不被装上船;如xi为1,则货箱i将被装上船。我们的目的是找到一组xi,使它满足限制条件nåi=1wixi≤c且xiÎ{0,1},1≤i≤n。相应的优化函数是nåi=1xi。满足限制条件的每一组xi都是一个可行解,能使n&ar
7、ing;i=1xi取得最大值的方案是最优解。例1-3[最小代价通讯网络]城市及城市之间所有可能的通信连接可被视作一个无向图,图的每条边都被赋予一个权值,权值表示建成由这条边所表示的通信连接所要付出的代价。包含图中所有顶点(城市)的连通子图都是一个可行解。设所有的权值都非负,则所有可能的可行解都可表示成无向图的一组生成树,而最优解是其中具有最小代价的生成树。在这个问题中,需要选择一个无向图中的边集合的子集,这个子集必须满足如下限制条件:所有的边构成一个生成树。而优化函数是子集中所有边的权值之和。------------------
8、----------------------------plot(100+t+15*cos(3.05*t),t=0..200,coords=polar,axes=none,scaling=constrained);1.2算法思想在贪婪算法(greedymetho
此文档下载收益归作者所有