时间:2022-10-28 01:48:53
序论:写作是一种深度的自我表达。它要求我们深入探索自己的思想和情感,挖掘那些隐藏在内心深处的真相,好投稿为您带来了七篇动态规划范文,愿它们成为您写作过程中的灵感催化剂,助力您的创作。
【关键词】动态规划;矩阵连乘问题;最优子结构;递归算法;重叠子问题
1.动态规划
动态规划[1]是运筹学的一个分支,是求解决策过程最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法――动态规划。动态规划问世以来,在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用,例如库存管理、资源分配、设备更新、排序、装载等问题。
动态规划是一种将复杂的问题分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。
1.1 基本思想
动态规划算法的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。适合于用动态规划法求解的问题,经分解得到的子问题往往不是相互独立的,可以用一个表来记录所有已解决的子问题的答案,不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,从而得到多项式时间算法。[2]
1.2 求解问题特征
动态规划算法的有效性依赖于问题本身所具有的两个重要性质:最优子结构性质和子问题重叠性质。
1.2.1 最优子结构
原问题的最优解包含着其子问题的最优解,这种性质称为最优子结构性质。在分析问题的最优子结构性质时,所用的方法具有普遍性:首先假设由问题的最优解导出的子问题的解不是最优的,然后再设法说明在这个假设下可构造出比原问题最优解更好的解,从而导致矛盾。利用问题的最优子结构性质,以自底向上的方式递归地从子问题的最优解逐步构造出整个问题的最优解。最优子结构是问题能用动态规划算法求解的前提。
1.2.2 子问题重叠
递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次,这种性质称为子问题的重叠性质。动态规划算法,对每一个子问题只解一次,而后将其解保存在一个表格中,当再次需要解此子问题时,只是简单地用常数时间查看一下结果。通常不同的子问题个数随问题的大小呈多项式增长。因此用动态规划算法只需要多项式时间,从而获得较高的解题效率。
1.3 设计步骤
3.总结
动态规划方法中每步所作的选择往往依赖于相关子问题的解,因而只有在解出相关子问题后才能做出选择所以动态规划,算法通常是以自底向上的方式解各子问题的解进而求出原问题的解。动态规划是一种很灵活的算法设计方法,在动态规划算法的设计中,类似的技巧还有很多。要掌握动态规划的技巧,有两条途径:一是要深刻理解动态规划的本质,这也是为什么一开始就探讨它的本质的原因;二是要多实践,不但要多应用,还要学会从应用中探寻规律,总结技巧。运用动态规划算法解决的还有很多现实问题,如背包问题、最长公共子序列问题、凸多边形最优三角剖分问题、电路布线等问题,在本文中没有介绍。动态规划算法虽然复杂,但只要掌握它的本质特征并多加练习,就可以灵活运用,并加以扩展,来提高程序的时效性。
参考文献
[1]百度百科.http://
[2]王晓东.计算机算法设计与分析(第四版)[M].北京:电子工业出版社,2012.
关键词:动态规划;装载问题;JAVA语言
中图分类号:TP31 文献标识码:A 文章编号:1009-3044(2014)10-2401-03
Abstract: How to load goods to get maximum economic benefits by manufacturers is a sub-problem divided from logistics distribution.In this paper,the sub-problem is abstracted a 0-1 knapsack problem.We create a mathematical model based on dynamic programming algorithm,and analyze the advantages of the algorithm.Then we use JAVA language to solve the problem.After setting some test datum, the final results show that the dynamic programming method has efficiency,and can be applied widely.
Key words: Dynamic programming; Loading problems; JAVA language
随着经济的不断发展,各厂商在满足客户需求的条件下,利用物流技术,从备货、装箱、配送、存储等物流配载技术网中寻求省时省力的方法,使得资源使用效率得到提高,同时降低了厂商的成本[1]。
问题提出:某厂商每周向校园超市运输一次商品,在小型货车容量不变且不能超载的约束下,如何装载商品,使产生的经济效益最大化?该问题是厂家所关心的,也是本文的关注点。运用动态规划方法解决此问题,能够较好地控制企业的人力资源成本和运输成本,从而提高商业的竞争力。
1 动态规划算法简介
动态规划(dynamic programming)[2]产生于20世纪50年代,由美国数学家R.E.Bellman等人提出。动态规划的思想是把一个问题划分为具有相关性的若干子问题来解决,并将各个子问题求解答案和求解方法进行保存。如果在之后的处理过程中还需要用到已解决的子问题,则直接调用答案,从而避免重复的计算,节省了时间。
在解决实际问题中,我们需要动态规划出适当的约束条件和递推关系,并在各单阶段中寻找互相联系的因素,依次将每一阶段所得的最优结果进行存储。这种阶段划分、自下向上的求解方式需要建立表或数组才能有效实施。如图1所示:
基于动态规划法解决的问题需要满足一定的条件,例如:(1)满足无后效性,即子问题的下一状态只与现在状态有关;(2)满足最优性子结构,得出子问题的最优解;(3)原问题可以划分出多个拥有关联的子问题[3]。
2 模型的建立
厂商向校园超市运输商品的问题:已知厂商共有N件商品,每件商品拥有固定的Id号,Id=i的商品重量为Wi,产生的经济效益为Vi,货车的最大载重量为N。现假设一个n维向量Xi=(X1,X2,...Xn)∈{0,1}n,当Xi=1时表明相应Id的商品装入车中;当Xi=0时表明商品未装入车中。最终得出的结果为[maxi=1nViXi],即最大效益值,约束条件为[maxi=1nWiXi]≤N。货车的载重量是有限的,在这个上限内尽可能装下商品使经济效益越高越好。通过以上分析,此问题恰好可以抽象为一个重量集合、经济效益集合与货车载重量分别是Wi={W1,W2,...Wn},Vi={V1,V2,...Vn}和N的0-1KP问题。
在0-1背包问题中,物品价值与体积不随背包容量的变化而变化[4]。举例说明:假设有N=3个物品,总容量为10,体积V[i]={2,4,6}分别对应价值P[i]={3,7,4},设数组B[i][j],表示在背包容量为j的条件下,放入第i个物品后的最大价值。如下表1所示:
动态规划算法易于编程的实现,虽然需要一定的空间存储其产生的结果,但是它的高效性能在测试中体现出来。
4 测试数据
假设厂商货车载重量为上述的1534,他们所建Commodity表中总共有50件商品,其Id、weight、value的数据分别如下所示:
最终得出经济效益最大值为1904,如图3所示。
5 结束语
本文从实际出发,给出厂商向校园超市运输商品时的装载问题,结合一个有效的算法――动态规划算法,利用JAVA语言得以实现。动态规划法有较好的效率和速度,不仅能用于解决装箱问题,而且能够运用于物流配载中的路径规划、资源分配等实际问题,优化了企业资源管理,提高经济效益,降低资源成本,能够应用于更多的科学领域中。
参考文献:
[1] 谢天保,雷西玲,席文玲.物流配送中心配载车辆调度问题研究[J].计算机工程与应用,2010,36:237-240.
[2] 陈大伟,孙瑞志,向勇,史银雪.基于流程模式的工作流静态规划方法[J].计算机工程与设计,2011(1):129-132,137.
【关键词】数学模型 动态规划 多阶段投资决策
一. 引言
多阶段决策问题是投资者在连续的几个投资阶段中每个阶段里都进行投资, 其目的是使得到最后一个投资阶段结束时, 投资者进行多次投资的收益总和尽可能大, 这些投资阶段之间是相互关联的, 面对众多的投资项目, 如何合理的安排资金成为决策部门关心的焦点, 而动态规划方法的关键在于正确写出基本递推关系式, 首先将问题的过程分成几个相互联系的阶段, 恰当的选取状态变量和决策变量及定义最优值函数, 从而把一个大问题化成一族同类型的子问题, 然后逐个求解, 即从边界条件开始, 逐阶段递推求优, 在每个子问题求解过程中均利用了它前面的子问题的最优结果, 依次进行, 最后一个子问题所得到的最优解就是整个问题的最优解.
二. 动态规划在多阶段投资组合中的应用
1.案列介绍
假设某公司决定将60万元投资4个工厂, 该公司希望通过合理分配资金确定最优组合,使所获得的投资收益最大, 经调查各个工厂所获得收益和投资额如图所示.
投资额与收益额 (单位: 万元)
2.建立动态规划模型
由于动态规划问题的特殊性, 我们将它看作一个多阶段决策问题, 分阶段来解决, 为此, 我引入以下各参数:
(1)s――投资总额
(2)n――投资组合中的项目数
(3)uk――决策变量,分配给第K个项目的资金
(4)sk――状态变量,分配给前k个工厂的资金
(5)sk-1=sk-uk――分配给前k-1个工厂的资金
(6)gk(uk)――阶段目标函数,对第 个项目投资 所获得的收益
(7)fk(s)――目标函数,以数量为 的资金分配给前 个工厂所得到的最大利润值
当k=1时,
当1
3. 利用动态规划模型求解
第一阶段: 求f1(s) , 则
第二阶段: 求 ,
最优策略为(40,20), 此时最大利润值f2(60)=120万元.
同理可得其他f2(u2)及最优策略
第三阶段: 求f3(u3),
同理可求得其他f3(u3)的值
第四阶段: 求f4(60), 即问题最优策略
所以最优策略为(20,0,30,10), 最大利润为160万元.
4.模型的意义分析
本文针对多阶段资产投资问题, 以最终的总收益尽可能大为决策目标的资产投资组合问题的一个多阶段动态规划决策模型, 利用动态规划的顺序法求得多阶段投资的整休最优投资组合.
参考文献:
[1]胡元木,白峰. 动态规划模型在股票投资组合中的应用, 山东社会科学, 2009;09(39).
【关键词】配电网;动态规划技术;恢复供电
当前,智能电网的发展在一定程度上带动了电网技术的发展,并且成为了电网技术发展的重要方向。实际上,智能电网的重要组成部分在于智能配电网,智能配电网的主要特征为拥有完备的自愈能力,同时还能够最大程度的减少电网故障给用户带来的影响。而配电网故障的恢复是智能配电网自愈功能实现的重要过程,配电网故障恢复问题主要指配电网发生故障以后,在故障定位与故障隔离的基础之上,应用一定的故障恢复策略对其进行操作,从而确保供电的平稳与正常。
一、对最佳路径的分析
配电网故障区域恢复供电的最佳路径事实上是在故障情况下的配电网络重构。主要的目的在于,能够快速的将非故障区域供电恢复,与此同时,还能够有效的满足线路负载容量的要求以及线损最小等各个方面的条件。现阶段,在配网自动化领域中研究最多的在于怎样能够快速的实现故障隔离以及快速的恢复费故障区域的供电技术方法,因此,在恢复路径的最优化选择方面出现了较多的研究。
一般而言,配电网故障区域恢复供电的路径为多目标最佳路径问题,现阶段在最佳路径问题的研究上较多的便是城市交通网络中的最短路径问题的研究。由于问题解决的思路存在着极大的不同点,因此最短路径问题能够被分为单元最短路径算法与基于启发式搜索最短路径算法[1]。这与邓群,孙才新,周驳仍凇恫捎枚态规划技术实现配电网恢复供电》一文中的观点极为相似。其中,单元最短路径算法主要体现在几个方面,即:
第一,在GIS空间查询语言方面的最短路径。该职工路径的研究方法在当前还停留在理论研究方面,例如在MAX中定义了一套空间查询语言,该套语言对其完备性给予了相关证明,同时通过举证的方式,对范围查询与时态查询等进行了应用分析。
虽然,对于GIS空间发展研究GeoSQL为一种有效的处理最短路径的手段,但是GIS受到数据库技术发展的制约与影响,导致实际的应用领域和背景的不同,使其和商用之间还有很长的一段距离。
第二,在功能模块思想路径方面,需要按照不同的分类方法实施,而单元最短路径问题的算法能够被分为很多种,例如神经网络法与基于人工智能的启发式搜索算法等,对于不同的背景应用需求和具体软件应用的环境,各种算法在空间的复杂程度与时间的复杂程度等都有明显的体现[2],这与李振坤,周伟杰,钱啸等在《有源配电网孤岛恢复供电及黑启动策略研究》一文中有着相似的观点。并且各种算法在故障恢复方法中各具特色。
另外,启发式搜索最短路径算法也是一种有效的手段。基于启发式方向策略最短路径算法,其中包括空间有效方向的可控参数法,该方法能够有效的调节相关系数,在有效方向上路径无效的时候,能够确保得到有效的路径。
二、最佳路径的选择方法分析
事实上,配电网故障区域恢复供电的最佳路径并不是简单的路径问题,而是多目标最佳路径问题。为此,在研究配电网非故障区域恢复供电的最佳路径过程中,需要对其展开综合的分析。
首先,在多目标分析方面,通常在选择配电网非故障区域恢复供电最佳路径的时候,最为重视的目标为:
第一,在恢复供电路径的过程中,馈线负荷不能过载,同时,还需要确保恢复区域的电压质量能够与实际规定的标准要求相吻合。当供电质量可靠性最高的时候,那么恢复的时间将会很短[3];这与邓昆英,汪凤娇,饶杰等在《智能配电网有功自治互动建模研究》一文中的观点极为相似。另外,供电过程中,线损最低,证明开关拉合的次数最少,同时现场的操作点也会最少。
第二,在动态规划技术恢复供电的最短路径方面需要明确,动态规划主要是运筹学的一个分支,它是求解决策过程的最优的数学方式。早在很久以前,就已经有研究人员对多阶段过程转化问题转化为一系列的单阶段问题,并且逐一进行求解,这标志着解决这类过程优化问题的新方法的创立,即动态规划技术。
本文主要将一典型的复杂配电网络作为研究例子,该连通系包括10个电源点,8个分支点,同时联络开关有16个。将其加入到配网潮流方向和典型的运动方式中,将联络开关和电源点作为定点,那么可以将其分为26个定点。尽管从数量上顶点比较多,但是由于存在着较为复杂的网络关系,使得该问题成为一个极为简单的最短路径问题[4]。这与杨建在《配电网无功补偿系统的关键技术研究》一文中的观点有着相似之处。加之恢复路径主要指费故障区域相关的联络开关与相应路由,为此我们可以将其理解为从不同电源点出发到各个联络开关的最短路径问题,这样一来,故障恢复工作的实施便简单的多。
总结
本文主要从两个方面左手,共同分析了采用动态规划技术实现配电网恢复供电的方法与效果,一方面着手于最佳路径的分析,另一方面着手于最佳路径的选择方法。从这两个方面可以看出,利用动态规划技术去实现配电网恢复供电是一种可行的方法。但是,受到历史原因的影响,我国城市配电网络还缺少标准的规范要求,导致配电网常常出现一些事故。因此,恢复配电网供电已经成为当务之急。随着科技的发展,智能配电网已经被广泛的应用在供电方面,这为平稳供电提供了一定的保障,同时也为恢复配电网故障供电创建了良好的环境与条件等。
参考文献
[1]邓群,孙才新,周驳.采用动态规划技术实现配电网恢复供电[J].重庆大学学报(自然科学版),2006,29(3):40-44.
[2]李振坤,周伟杰,钱啸等.有源配电网孤岛恢复供电及黑启动策略研究[J].电工技术学报,2015,30(21):67-75.
[3]邓昆英,汪凤娇,饶杰等.智能配电网有功自治互动建模研究[J].机电工程技术,2014,(2):4-7.
[4]杨建.配电网无功补偿系统的关键技术研究[D].中南大学,2002,(12):56-78.
关键词:最短路径;动态规划;C 语言编程
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)09-2191-03
1 概述
数学源于生活,又服务于生活.它是一门研究现实世界中的数量关系与空间形式的学科.当今社会,随着物质水平的不断提高,生活需求的不断扩大,自然资源的不断开发利用.像天然气管道铺设问题,厂区布局问题,旅行费用最小问题等都已成为我们平时经济生活中的普遍问题.它们其实都可以化归为最短路线问题,而最短路问题实质上是一个组合优化问题[1]。
动态规划方法主要是研究与解决多阶段决策过程的最优化问题,它将求解分成多阶段进行,不但求出了全过程的解,还能求出后部子过程的一组解,在求解一些生活实际问题时,更显其优越性。为了快速、简单的计算最短路径,节约运输时间与成本,该文利用动态规划的思想编写了C语言程序,解决物流运输过程中多地点的最短路径的选择问题。
2 最短路径问题
2.1 最短路径问题算法的基本思想
在求解网络图上节点间最短路径的方法中,目前国内外一致公认的较好算法有迪杰斯特拉(Dijkstra)及弗罗伊德(Floyd)算法。这两种算法中,网络被抽象为一个图论中定义的有向或无向图,并利用图的节点邻接矩阵记录点间的关联信息。在进行图的遍历以搜索最短路径时,以该矩阵为基础不断进行目标值的最小性判别,直到获得最后的优化路径[2]。
Dijkstra算法是图论中确定最短路的基本方法,也是其它算法的基础。为了求出赋权图中任意两结点之间的最短路径,通常采用两种方法。一种方法是每次以一个结点为源点,重复执行Dijkstra算法n次。另一种方法是由Floyd于1962年提出的Floyd算法,其时间复杂度为[On3],虽然与重复执行Dijkstra算法n次的时间复杂度相同,但其形式上略为简单,且实际运算效果要好于前者。
2.2 最短路径问题算法的基本步骤[3]
这样经过有限次迭代则可以求出[v1]到[vn]的最短路线。
(2)Floyd算法的基本步骤
(3)动态规划算法基本步骤
我们将具有明显的阶段划分和状态转移方程的规划称为动态规划[1]。在解决多个阶段决策问题时采用动态规划法是一个很有效的措施,同时易于实现。
根据动态规划的基本概念,可以得到动态规划的基本步骤:1)确定问题的决策对象。2)对决策过程划分阶段。3)对各阶段确定状态变量。4)根据状态变量确定费用函数和目标函数。5)建立各阶段状态变量的转移过程,确定状态转移方程。
根据动态规划的基本模型,确定用动态规划方法解题的基本思路,是将一个[n]阶段决策问题转化为一次求解[n]个具有递推关系的单阶段的决策问题,以此来简化计算过程.其一般步骤如下:
用于衡量所选决策优劣的函数称为指标函数.指标函数有有阶段的指标函数和过程的指标函数之分.阶段的指标函数是对应某一阶段状态和从该状态出发的一个阶段的某种效益度量,用[vkxk,uk]表示。在本文里用[dkxk,uk]来表示某一阶段的决策的最短路径。过程的指标函数是指从状态[xn(k=1,2,...,n)]出发至过程最终,当采取某种子策略时,按预定的标准得到的效益值。这个值既与[xk]本身的状态值有关,又与[xk]以后所选取的策略有关,它是两者的函数值,记作[dk,nxk,uk,xk+1,uk+1,…xn,un]。过程的指标函数又是它所包含的各阶段指标函数的函数。本文研究的过程的的指标函数是其各阶段指标函数的和的形式.当[xk]的值确定后,指标函数的值就只同k阶段起的子策略有关。对应于从状态[xk]出发的最优子策略的效益值记作[fkxk],于是在最短路问题中,有[fkxk=mindk,n]。动态规划求解最短路径程序流程图如图2所示。
3 最短路径态规划实际应用举例
设某物流配送网络图由12个配送点组成,点1为配送中心起点,12为终点,试求自终点到图中任何配送点的最短距离。图中相邻两点的连线上标有两点间的距离[4]。
首先用动态规划法来讨论图3的最短路径,由图可知:
1)集合[ξ4]中有点9、10、11,它们在一步之内可到达点12;
2)集合[ξ3]中有点6,7,8,它们不超过两步就可达到点12;
3)集合[ξ2]中包括点 2、3、4、5,不超过三步就可到达点12;
4)集合[ξ1]中包括点1,不超过四步可到达点12;
按照动态规划法类推,得到最优路径长为16,径路通过点为1,2,7,10,12和1,3,6,10,12。
根据动态规划算法编写C语言计算程序[5] [6],计算得到实验结果如下图4所示:
由图4可以看出程序得到的结果与本文推出的结果一样。证明了本文编写的C语言程序是正确的。
4 结束语
综上所述,用动态规划解决多阶段决策问题效率高,而且思路清晰简便,同时易于实现.我们可以看到,动态规划方法的应用很广泛,已成功解决了许多实际问题,具有一定的实用性。此种算法我们用动态规划思想来编程,并解决相应的问题,其在 VC 环境下实现,能方便快速的计算出到达目的地的最短距离及路径,节省更多的运输时间与成本。不过,该文只考虑了动态规划算法在生活中的简单运用,在实际生活中可能存在多个目的地或者更复杂的情况.因此我们可以考虑将其进行改进或者结合启发式算法,使之更好的运用在实际生活中,这有待于以后的继续研究。
参考文献:
[1] 杜彦娟.利用动态规划数学模型求解最短路径[J].煤炭技术,2005(1):94-95.
关键词: 虚拟机; 动态规划; 分配; 定价
中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2016)21?0159?05
A virtual machine allocation method based on dynamic planning
WANG Yan1, SUN Maosheng2, ZHU Junwu2, 3
(1. Center of Informatization, Xuzhou University of Technology, Xuzhou 221018, China;
2. School of Information Engineering, Yangzhou University, Yangzhou 225009, China;
3. Department of Computer Science and Technology, University of Guelph, Guelph NIG2K8, Canada)
Abstract: The dynamic allocation mechanism based on combination auction makes the cloud auctioneer allocate the cloud resource efficiently according to the market requirement, and brings high benefit for the auctioneer. The existing method uses the greed method to allocate the virtual machine resource, and allocates the resource for the high tender?density users optimally. Ho?wever this local optimal selection can′t bring the global optimal solution. A DP?VMPA (dynamic planning based virtual machine provision allocation) method is proposed, which takes the maximal social welfare as target function, uses CA?DP allocation algorithm to find out the obtained users set of resource. The VCG mechanism is used to price for the users. An application example shows that the DP?VMPA method can allocate the virtue machine resources efficiently, and bring a high benefit for the auctioneer.
Keywords: virtue machine; dynamic planning; allocation; pricing
0 引 言
当下云拍卖商们大都使用基于固定价格机制的方法分配和卖出云资源,例如Windows Azure[1]和Amazon EC2[2]。显然这种分配和定价体制有不少缺点,首先它不能保证资源的有效分配,那些对资源估价高的用户并不总能如愿获得请求资源,其次云拍卖商的利润偏低[3?4]。基于拍卖的机制可以有效地解决如上问题,它权衡用户请求的资源量及对资源的估价,决定对用户的分配及定价。
拍卖机制分静态拍卖和动态拍卖,静态机制需要拍卖商提前供应虚拟机资源并且不能改变资源量,动态拍卖下,拍卖商可以使用虚拟化技术,根据用户需求量动态配置各类虚拟资源,并将它们按单位虚拟机实例卖出,保证资源的高效利用。现有的方法大都使用贪婪算法[3?5]决定用户的分配。它对用户的投标价值密度由高到低排序,在资源容量内依次选择价值密度高的投标,将资源分配给用户,这种启发式的策略并不总能获得最优解。
通常WDP问题是个NP完全问题,可以对虚拟机供应与分配问题VMPA进行客观描述,给出目标函数,然后使用基于组合拍卖的动态规划算法(CA?DP Allocation Algorithm)求出分配最优解。DP算法是先把问题分成多个子问题(一般地,每个子问题是互相关联和影响的),再依次研究逐个问题的决策。动态规划方法设计算法的主要思路使用最优性原理找出递推关系, 再找最优决策序列。定价方案上采用基于最优分配的VCG(Vickrey?Clarke?Groves)机制,即用分配给该用户的资源对其余用户的社会损失给其定价。
本文根据虚拟机分配问题的目标函数,提出DP?VMPA Mechanism (Dynamic Programming Mechanism that solves VMPA problem),采用CA?DP allocation algorithm解决分配问题,同时使用VCG定价机制决定用户的支付。这个机制能保证资源的有效利用,并为提供商带来更高的利润。
1 相关工作
Zaman等人首先详细介绍了基于固定价格的分配机制[3],然后提出两种基于拍卖的静态虚拟机分配机制CA?GREEDY机制和CA?LP机制,并将它们与Fixed?Price机制比较,相比于固定价格机制,基于拍卖的机制能更有效地分配虚拟机资源,提高拍卖商利益。CA?LP机制在分配资源和增大收益方面表现突出,CA?GREEDY机制因其快速有效的分配性能被广泛认可。文献[4]中,拍卖商结合虚拟化技术对资源实现动态配置,使用CA?PROVISION机制分配虚拟机资源。本文尝试将此机制与静态分配下的CA?GREEDY机制比较,实验表明,动态分配下,拍卖商根据市场需求动态供应资源,可以保证资源的高效利用,增大拍卖商的利润。它还通过设置保留价格进一步提升拍卖商的收益。文献[6]提出一种有效投标策略,帮助云计算用户生成最佳投标(请求的虚拟机资源组合和对这组资源的估价)。这种投标策略能够帮助用户高效地完成云计算任务,提高执行效用。资源的有效利用也使得拍卖商收益增加。Nejad在文献[5]中提出动态虚拟机资源的启发式贪婪分配算法,它详细描述了用户对多类虚拟机资源CPU、内存和容量的请求数量,然后根据各类资源稀缺性参数重新定义价值密度,按贪婪算法进行资源分配。文献[3?5]均采用贪婪法分配资源,贪婪法一步步的构造局部最优解,使得最终分配解保持可行性且能产生较大效益。
Garfinkel提出了集分割算法解决组合拍卖下的分配问题[7];Nisan将Winner集决定问题表示成一个标准的混合整数规划问题[8],提出使用商用软件和一些简单算法求解该问题。Sandholm在文献[9]提出使用软件CPLEX可以高效地解决WDP问题,使资源充分利用。Fujisima推荐CASS软件来处理更大规模的WDP[10]。将组合拍卖下的分配借助各类软件的整数规划实现,这是完全可行的,不过这些软件无法用算法描述,另外它们只能给出最优分配集合,对用户的定价问题却无法解决。文献[11]在众包分配与定价问题中介绍了4种可行的机制:OPT,GREEDY,VCG和TruTeam,并通过实验比较各个机制,得出结论VCG机制和TruTeam机制均能高效利用资源,同时证明其满足个体理性和真实性。
2 动态虚拟机供应与分配问题
通过虚拟化技术的应用,云计算提供商可以将计算资源动态配置成任意类型的虚拟机组合。一个云拍卖商向用户提供[m]类虚拟机实例资源,[VM1,VM2,…,][VMm。]虚拟机类型[VMi]的计算能力表示为[wi,]其中[w1]=1,[w1
考虑有[n]个用户[u1,u2,…,un]向云提供商请求虚拟机。用户[uj]向拍卖商提交一组投标[Bj=(rj1,…,rmj,vj),]其中[rij]是请求的虚拟机[VMi]的数量,[vj]是单位时间内用户[j]得到虚拟机愿意最大支付的金额。拍卖商阶段性的组织拍卖分配虚拟机,一单位时间即这轮拍卖的拍卖商的分配与定价决策到下轮拍卖的决策之间的时间间隔。为了定义云提供商获得的利益,定义[P={p1,p2,…,pn},]其中用[pj]表示用户[j]获得请求的资源时需要支付的金额,通常小于[vj];将分配问题的解定义为[x=(x1,x2,…,xn)],分配向量中的元素[xj∈{0,1},][xj=1]表示用户[j]得到虚拟机组合,反之[xj=0]表示用户未得到;集合[W=uj1≤j≤n,xj=1]作为投标胜利用户集。[sj=][i=1mwirij]表示用户[uj]请求的单位计算资源的数量,其中单位资源也就是一个[VM1]类型的虚拟机实例。
定义1:动态虚拟机供应与分配问题可以形式化描述为:
[maxj=1nxjpj]
[s.t. j=1nxjsj≤Mxj∈0,10≤pj≤vj]
式中:约束条件(1) 表明成功投标的用户请求的虚拟机资源总量不得超过拍卖商所拥有的资源量;式(2)表示规定分配向量[xj]的取值范围;式(3)表示此不等式保证用户的支付金额不超过用户对其请求资源的最大估价,也就是确保用户的效用[Uj=vj-pj]不为负。组合拍卖的最优方案应该是最大化云拍卖商的利益,但很难找出一个客观函数描述它,通常寻找最大化社会总福利(成功获得虚拟机资源的用户投标总价值)作为解决组合拍卖问题的方案。这种分配方案决定了拍卖商对每类虚拟机的配置,计算[ki=j=1nxjrij,]即[VMi]类虚拟机需要供应的数量为[ki]。
定义2:真实的(Truthful, Incentive Compatible)假定任意用户[j]其在真实报价情形下获得的效用为[u1,]任意虚假报价下获得的效用为[u2,]若给定机制中[u1-u2≥0,]则称该机制是Truthful的。即用户只有通过向机制提交真实的估价,他才能获得最大效用。真实性使得用户在投标决策时不需考虑复杂的投标策略,更不需考虑其他用户的投标方案。
定义3:个体理性(Individual Rationality),即在一机制中,对每个用户[j],用户的效用[Uj=vj-pj]大于等于0,则称用户[j]是个体理性的。
3 基于组合拍卖的动态虚拟机供应与分配机制
本文提出的DP?VMPA Mechanism决定了获得虚拟机的Winner用户集和这个集合中每个用户的定价。这种组合拍卖机制能有效分配虚拟机资源,为拍卖商带来更高的收益(Efficient)。
Algorithm 1:DP?VMPA Mechanism
Input:[M;m;wi:1,…,m;]
Output:[W;P;ki:1,…,m;]
1.{phase: Collect [Bids]}
a.Initialize [BNΦ]
b.For [j]=[1,2,…,n,]
Collect bid [Bj=(rj1,…,rjm,vj)] from user [uj]
c.[BNBN?{Bj}]
2.{phase 2: Winner Determination and Provision}
([W,][BestValue]) = CA?DP([BN,][M]) //Algorithm 3
For [i=1,…,m,]
[kij:uj∈Wrij]
3.{phase 3:[Payment]}
For all [j∈W]
([W,][BestValue]) = CA?DP([BN-{uj},][M]) //Algorithm 3
[pjBestValue-(BestValue-vj)]
For all [j?W,]
[pj0]
Return ([W;P;ki:1,…,m])
动态规划求解虚拟机供应与分配机制(DP?VMPA)如上,机制被云提供商阶段性的调用,运行该机制需要提供三个输入参数:虚拟机资源总量[M,]虚拟机的类型数量[m]和相应的虚拟机权重[wi,]输出三个参数:成功获得虚拟机资源的用户集合[W,]用户支付向量[P]以及提供商对每类虚拟机的供应数量[ki]。
动态规划机制也分为三个阶段。第一阶段,拍卖商收集用户的投标,所有用户的投标构成集合[BN。]第二阶段使用动态规划分配算法(算法3给出CA?DP分配算法)决定获得资源的Winner集合,求出该集合下产生的最大社会总价值[BestValue],同时决定出拍卖商的虚拟机供应方案。第三阶段,使用VCG机制求出Winner集合每个用户应当支付的金额,即用户[j]不参与拍卖所能得到的最大价值总和减去用户[j]参与拍卖并获得资源时其他用户的价值量总和,未获得虚拟机的用户支付量为0。
Algorithm 2: CA?DP allocation algorithm
Input:[BN,M]
Output:[W,BestValue]
1.Initialize [BNΦ,nsize(BN),] [bestValues[n+1][M+1]]
2.For [j=0,1,…,n,]
[sji=1mwirij]
For [h=0,1,…,M,]
If [h=0j=0] then [bestValues[i][j]0]
Else
If [sj>h]then [bestValues[j][h]bestValues[j-1][h]]
Else[bestValues[j][h]][max{bestValues[j-1][h],bestValues[j-1]]
[[h-sj]+vj}]
3.[hM]
4.For [j]=[n,…,1]
If [bestValues[j][h]>bestValues[j-1][h]]
then [WW?{uj},][hh-sj]
5.[BestValuebestValues[n][M]]
Return ([W,][BestValue])
基于组合拍卖的动态规划分配算法如上所述,该算法需要提供两个参数,即所有参与投标的用户集合[BN]和虚拟机资源总量[M。]运行算法可以得到两个值,即最优分配下的投标成功用户集合[W]和对应的最大估价之和BestValue。
组合拍卖问题的最优解结构:可以将组合拍卖分配问题的求解过程看作是进行一系列的决策过程,即决定哪些用户应该获得虚拟机资源,哪些用户不该获得请求资源。如果一个问题的最优解包含了用户[n],即[xn=1,]那么其余[(x1,x2,…,xn-1)]一定构成子问题1,2,[…],[n-1]在云提供商拥有虚拟机资源为[M-sj]时的最优解。如果这个最优解不包含物品[n],即[xn=0,]那么其余[(x1,x2,…,xn-1)]一定构成子问题1,2,[…],[n-1]在资源量为[M]时的最优解。
那么根据上述分析的最优解的结构性质,递归地定义问题最优解。[bestValues[j][h]]表示虚拟机资源量为[h]时,前[j]个用户导致的最优解的总价值,那么总有:
[bestValues[j][h]=bestValues[j-1][h],sj>hmaxbestValues[j-1][h], bestValues[j-1][h-sj]+vj,sj≤h]
当用户[j]请求的资源量大于[h]时,[bestValues[j][h]]由虚拟机资源量为[h]时,前[j-1]个用户最优解的总价值决定;当用户[j]请求的资源量不大于[h]时,通过比较不允许[j]获得资源的总价值[bestValues[j-1][h]]和允许[j]获得请求的资源产生的总价值[bestValues[j-1][h-sj]+vj],总价值高的作为[bestValues[j][h]]的最优解价值。显然最终要求的是[bestValues[j][h]]。
求出最优解下的总价值后,可以通过回溯找出所有成功获得虚拟机资源的用户,即通过比较虚拟机资源量为[h]时,前[j-1]个用户最优解的总价值[bestValues[j-1][h]]和虚拟机资源量为[h]时,前[j]个用户最优解的总价值[bestValues[j][h]],来得出用户[j]能否获得请求资源。回溯需要从[j=n],[h=M]处开始,直至[j=1],[h=0,]并将结果保存在集合[W]中。
命题1 DP?VMPA机制的时间复杂度为[O(nnM)]
证明:CA?DP分配算法中递归求最优解,使用两个for循环对[j=0,1,…,n]和[h=0,1,…,M]下每种状态求出最优解,时间复杂度为[O(nM),]回溯法求投标成功用户集合[W]只需遍历一个for循环,其时间复杂度为[O(n),]总共时间复杂度为[O(nM)]。使用VCG机制对Winner集中每个用户求支付金额,对每个用户需要调用CA?DP分配算法,最坏时间复杂度为[O(nnM)]。
命题2 DP?VMAP机制是Truthful的
证明:证明真实性(Truthful),首先证明其分配单调性(Monotone),即用户可以通过增大对请求的虚拟机组合的估价[vj],或者减少请求的虚拟机资源总量[sj]来增加获得请求资源的几率,所以说机制是单调性的。
其次证明支付金额为临界价格(Critical Value),动态规划机制求出分配最优解的前提下,使用VCG机制对投标成功的用户定价,用户[j]不参与拍卖所能得到的最大价值总和减去用户[j]参与拍卖时其他用户的价值量总和,求出的支付金额[pj]是临界价值。
命题3 DP?VMAP机制满足个体理性
证明:对获得资源的每个用户[pj=BestValue-][(BestValue-vj),]因为动态规划基于最优分配,所以公式中[bestValue≤bestValue,]即证[Uj=vj-pj=bestValue-][bestValue≥0]。未获得虚拟机的用户[Uj=0,]所以综上机制满足个体理性。
4 应用案例及分析
假定[n=4,][M=8,]4个用户的请求虚拟机数量和报价:(3,3),(2,4),(4,1),(1,2),[bestValue[j][c]]取值如表1所示([j=]0或[c=0,][bestValue[j][c]]=0)。
时间复杂度:基于组合拍卖的动态规划分配算法中,根据最优解结构性质,对[j∈[0,n]]和[c∈[0,M]]每种状态下使用递归式求出最优解,使用两个for循环,其时间复杂度为[O(nM)]。回溯法求投标成功用户集合[W]只需遍历一个for循环,其时间复杂度为[O(n),]总共时间复杂度为[O(nM)]。
空间复杂度:动态规划求最优解需要构造(n+1)×([M+1])的二维数组,用于存储[(j,c)]下的最大价值[bestValue[j][c],]空间复杂度为[O(nM)]。
5 结 论
为了解决虚拟机动态分配问题,提出一种基于动态规划的虚拟机分配机制。这种机制以最大社会福利为目标函数,递归求解最优分配下的用户集,并使用VCG机制对用户资源定价。DP?VMPA机制能够使更多的用户完成应用,高效利用虚拟机资源,明显增大了拍卖商的收益。这个机制时间复杂度较高,不建议对大规模用户参与的虚拟机分配问题使用该机制,后续工作将围绕对CA?DP分配函数进行优化处理,并对VCG机制进行改进,使得定价机制更加简易高效。
参考文献
[1] Microsoft. Windows azure platform [EB/OL]. [2015?09?11]. http:///windowsazure/.
[2] Amazon. Amazon elastic compute cloud (Amazon EC2) [EB/OL]. [2016?01?17]. http:///ec2/.
[3] ZAMAN S, GROSU D. Combinatorial auction?based allocation of virtual machine instances in clouds [J]. Journal of parallel and distributed computing, 2013, 73(4): 495?508.
[4] ZAMAN S, GROSU D. Combinatorial auction?based dynamic VM provisioning and allocation in clouds [C]// Proceedings of 2011 Third IEEE International Conference on Cloud Computing Technology and Science. [S.l.]: IEEE, 2011: 107?114.
[5] NEJAD M M, MASHAYEKHY L, GROSU D. Truthful greedy mechanisms for dynamic virtual machine provisioning and allocation in clouds [J]. IEEE transactions on parallel & distribu?ted systems, 2014, 26(2): 594?603.
[6] ZAMAN S, GROSU D. Efficient bidding for virtual machine instances in clouds [C]// Proceedings of 2011 IEEE International Conference on Cloud Computing. [S.l.]: IEEE, 2011: 41?48.
[7] GARFINKEL R S, NEMHAUSER G L. The set partitioning problem: set covering with equality constraints [J]. Operations research, 1969, 17(5): S40?S47.
[8] NISAN N. Bidding and allocation in combinatorial auctions [C]// Proceedings of 2000 2nd ACM Conference on Electronic Commerce. New York: ACM, 2001: 1?12.
[9] SANDHOLM T. Algorithm for optimal winner determination in combinatorial auctions [J]. Artificial intelligence, 2002, 135(1/2): 1?54.
Abstract: In this paper, cascade reservoirs flood control scheduling optimization model is constructed, M method is used to simulate the water flow state of cascade reservoirs. This model is an aftereffect dynamic programming model. This paper discusses the corresponding method, points out a kind of multi-dimensional dynamic programming recursive solution. And the instance analysis shows that the model has certain scientific nature, the results of it are representative, the calculation method by the discussion is quick, and the maneuverability is strong. It is a kind of high efficient calculation model and calculation method.
关键词:梯级水库;优化调度;动态模型;规划;求解
Key words: cascade reservoir;optimal operation;dynamic model;programme;solve
中图分类号:TV622 文献标识码:A 文章编号:1006-4311(2016)01-0219-03
0 引言
当前,中国已经建有各种水库8.6万个,大规模水库482个,中规模水库3000个。中国的大部分水库并不是独立的个体,而是融入梯级水库群里,可谓联系紧密。在梯级开发的流域内修筑一个新的建筑抑或采取一类防洪举措,都能对梯级水库群带去一定的改变。梯级水库构建完成以后,河流洪水的特征以及区域构成都将产生改变,特别是在上游拥有调水功能的水库,洪水的时间、空间分布将产生颠覆性的改变。在工程的防洪设计的同时,假如工程上游拥有调水以及蓄水能力较强的业已修建完成抑或近段时间就要修建完成的梯级水库抑或梯级水库群,就要权衡到水库调节洪水的功用与对下游设计断面的作用。假如设计规划针对的是洪水调节功能健全的水库建筑,而且要担负下游防洪的职责;那必须研讨该建筑对下游防洪的效益。
1 水库防洪任务和目标
通常情况下,水库在汛期遇到洪水的时候防洪要分成三种:一种是工程自身的防洪需要,通常用坝前水位显示;一种是库区防洪需求,通常是由于库区淹水抑或库尾回水而引发,淹水范畴和水库坝前水位、入库流量相关,在库区防洪标准既定的情况下(相应的入库规划洪水给定),库区防洪也由坝前水位显示;一种是担负下游防洪区的防洪工作,一般是以河道安全泄洪量标识,抑或依照堤防安全高程和水位流量的相关数据,核算出河道安全流量。
并且,水库自身的防洪功能在全部水库中都能够体现,在上述三种防洪需求中,下游防洪工作应让水库尽可能频繁削峰,阻拦或储蓄洪水;库区以及大坝防洪需求,需要水库尽可能下泄,让坝前水位下降,保护水库库区淹水导致的财物耗损;并且腾出防洪库容,用来调蓄后续洪水。所以,两者有着一定的矛盾;另外,防洪级别不一而足,下游以及库区的防洪准则比大坝防洪准则要宽松,然而下游以及库区防洪标准孰高孰低,要根据实际状况确定。进而为明确防洪需求孰先孰后、调整防洪需求以及防洪和发电功能的发挥奠定了基础。
2 水库防洪调度现状分析
2.1 传统水库防洪调度策略
常规调度方法是一种半经验和半理论的方法,借助水库的防洪能力图、防洪调度图等经验性图表进行调度。具体来讲,目前主要有以下调度策略:
①最大削峰标准。
就是说:洪峰流量要尽可能缩减。
②最小灾害肆虐时间标准。
就是说:防洪管控截面流量越过允许范畴内的安全流量的时间尽可能缩短。
③最强防洪安全标准。
就是说:在迎合下游防洪管控截面安全泄量的前提下,尽量下泄,以保存防洪库容,预防以后更大规模洪水的侵袭。
①与②把下游防洪需求放在非关键位置,所以使用在大规模洪峰过境的情况;③则应用在小型洪水的排泄中。
2.2 存在的问题
传统调度策略主要是将线性规划、非线性规划、动态规划等应用于水库防洪调度中。这些防洪调度技术为水库防洪调度提供了一种解决办法,但是难以适应实时防洪形势的变化,并且难以模拟调度人员的经验知识。并且传统调度方法未能彻底解决以下几个矛盾:
①设计与实际运用不相适应的矛盾。
运行阶段由于水文资料的积累,特别是发生了几次特大洪水以后,人们对本流域水文规律认识加深。将运行后的资料加入原设计所依据的水文系列,导致洪水统计参数有了明显变化,因而设计洪水也有变化。如按原设计确定的汛限水位进行洪水调节计算,最高库水位超过了原设计最高洪水位,则说明原设计标准偏低。
②水库本身安全与下游防洪安全的矛盾。
这是水库汛期控制运用的主要任务。当水库上、下流域普降大暴雨,水库本身防洪安全与下游防洪安全的矛盾非常突出,具体表现为从下游防洪出发,要求水库多蓄水、少泄水,而从水库安全出发则要求水库水、多泄水。解决这一问题的关键在于:分析矛盾,掌握规律,研究预报,确定出水库何时开闸,泄流量多大,何时关闸等一套合理的蓄泄原则。在汛期按照预定的泄流方式调度水库时应达到如下要求:如果某次洪水与下游防洪标准相当,则应保证下游河道的泄流量在允许安全泄量以下或相等;如果某次洪水与原设计或校核洪水相当,则水库调洪最高水位以不超过设计或校核洪水位为原则;如果某次洪水为可能最大洪水,亦应采取有效措施确保大坝安全。
③防洪与兴利的矛盾。
我国北方年降水大部分集中在汛期,而汛期内降水又集中于几场暴雨。为了水库防洪安全,整个汛期库水位降的较低,不敢蓄水,导致许多水库,尤其是北方以灌溉、供水、发电为主的大型多年调节水库,汛后无水可蓄。解决防洪与兴利矛盾的关键是对未来水文规律的了解和预测, 如果对未来的来水情况能够准确预测,水库的调度运用就变得简单,防洪与兴利的矛盾就会迎刃而解。但是目前中长期水文预报还不可靠,未达到可利用的程度,防洪与兴利的矛盾将长期存在,伴随着整个防洪调度过程。
3 梯级水库防洪优化调度模型
权衡到如图1中的梯级水库防洪调度疑问。
水库1与水库2不但要满足施工自身的防洪需求,还要权衡到库区铁道防洪需求以及下游县级市的防洪需求。如果上游水库1入库洪水流程能够测出,两个水库间的洪水流程也能够预先知道,在迎合下游县级市防洪需求的基础上,以两水库联手调节和储蓄一段洪水时的调洪库容最小化为优化标准,找到洪水在体积水库的最合适时段以及空间调配方法,就是说订立两水库的最优防洪调度模式。
假定3小时为单位时限,将洪水流程分成T个时段(t=1,2,…,T),I1t以及ILt分别显示上游水库入库洪水流程以及区间洪水流程;O1t以及O2t则分开显示水库出库流量;V1.t+1以及V2.t+1则是第t时间段末库容,构建下面的数学模型。
3.1 目标函数
梯级水库调用的总调洪水库容极小值是:
通过这样的处置以后,能够看到:动态规划顺序递推法求解梯级水库防洪调度模型,这类换算办法笔者将其叫做简易化二维动态规划算法;换算的难度稍微增长,然而换算量没有显著提升。
5 案例分析
5.1 案例概述
以汉江流域某个梯级水库防洪调度情况为例子,这两个梯级水库一个是季调节能力水库,一个是不完全年调节能力水库,核定洪水位下的防洪库容不大,对100年才遭遇一次抑或之下的洪水,这个梯级水库洪区区域构成是上游、区间、全流域型三种,以第三类为防洪重点。
5.2 水库防洪优化调度过程
针对50年一遇的洪水,在汛期来临前运用上述优化调度模型对该梯级水库进行全流域优化调度后,对洪峰及洪水流量进行了有效的调节,图2即为洪水来临时洪水和调节后的出库流量流程。
从图2看出,第一时段的洪水来临的时候应适度增大泄量预泄,腾出一些库容,本时段重点是看洪水入库的时候水库的起调水位;第二时段应管控水库泄量,该时段重点是水库应管控泄流量多寡,其呈现出了蓄水以及防水的冲突抑或库区防洪和下游防洪需求的冲突,是一类高层级协调课题;第三时段――水库水位消落,其重点是水库泄流量多寡,它对水库水位的消落速率有极大影响。而且,以上游水库出库流量多寡最为关键――当产生区间抑或全流域型洪水的时候,要由上游水库拦挡洪水再腾出库容。
5.3 优化调度效果
总的来说,未调节前,该汛期出现了2个洪峰,出库水量巨大,使得下游面临非常大的防空压力。对汛期洪水进行优化调度后,在库区只出现了1个洪峰,并且出库水量始终在可控范围内,大大减轻了下游的防洪压力。
6 结束语
综上,利用上面列出的算式,能够对梯级水库防洪优化调度的动态规划给出有建设性的意见;而通过两库联手调节洪水的模式,能够极有成效地管控洪峰,并且能够优化梯级水库布局,保护沿河流域的居民生命财产安全。
参考文献:
[1]原文林,吴泽宁,黄强,等.梯级水库短期发电优化调度的协进化粒子群算法应用研究[J].系统工程理论与实践,2012,32(5):1136-1142.
[2]杨侃,郑姣,郝永怀,等.三角函数选择算子的遗传算法在梯级水库优化调度中的应用[J].天津大学学报,2012,45(2):167-172.
[3]周兴波,陈祖煜,黄跃飞,等.特高坝及梯级水库群设计安全标准研究Ⅲ:梯级土石坝连溃风险分析[J].水利学报,2015(7):765-772.
[4]周建平,王浩,陈祖煜,等.特高坝及其梯级水库群设计安全标准研究Ⅰ:理论基础和等级标准[J].水利学报,2015(5):505-514.