




已阅读5页,还剩77页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
动态规划 Dynamicprogramming 动态规划的基本思想 最短路径问题 资源分配问题 背包问题 生产计划问题 复合系统工作可靠性问题 动态规划是用来解决多阶段决策过程最优化的一种数量方法 其特点在于 它可以把一个n维决策问题变换为几个一维最优化问题 从而一个一个地去解决 需指出 动态规划是求解某类问题的一种方法 是考察问题的一种途径 而不是一种算法 必须对具体问题进行具体分析 运用动态规划的原理和方法 建立相应的模型 然后再用动态规划方法去求解 即在系统发展的不同时刻 或阶段 根据系统所处的状态 不断地做出决策 每个阶段都要进行决策 目的是使整个过程的决策达到最优效果 动态决策问题的特点 系统所处的状态和时刻是进行决策的重要因素 找到不同时刻的最优决策以及整个过程的最优策略 多阶段决策问题 在多阶段决策过程中 系统的动态过程可以按照时间进程分为状态相互联系而又相互区别的各个阶段 多阶段决策问题的典型例子 1 生产决策问题 企业在生产过程中 由于需求是随时间变化的 因此企业为了获得全年的最佳生产效益 就要在整个生产过程中逐月或逐季度地根据库存和需求决定生产计划 2 机器负荷分配问题 某种机器可以在高低两种不同的负荷下进行生产 在高负荷下进行生产时 产品的年产量g和投入生产的机器数量u1的关系为g g u1 1 2 n 状态 决策 状态 决策 状态 状态 决策 这时 机器的年完好率为a 即如果年初完好机器的数量为u 到年终完好的机器就为au 0 a 1 在低负荷下生产时 产品的年产量h和投入生产的机器数量u2的关系为h h u2 假定开始生产时完好的机器数量为s1 要求制定一个五年计划 在每年开始时 决定如何重新分配完好的机器在两种不同的负荷下生产的数量 使在五年内产品的总产量达到最高 相应的机器年完好率b 0 b 1 3 航天飞机飞行控制问题 由于航天飞机的运动的环境是不断变化的 因此就要根据航天飞机飞行在不同环境中的情况 不断地决定航天飞机的飞行方向和速度 状态 使之能最省燃料和实现目的 如软着落问题 4 不包含时间因素的线性规划 非线性规划等静态决策问题 本质上是一次决策问题 也可以适当地引入阶段的概念 作为多阶段的决策问题用动态规划方法来解决 5 最短路问题 给定一个交通网络图如下 其中两点之间的数字表示距离 或花费 试求从A点到G点的最短距离 总费用最小 1 2 3 4 5 6 A B1 B2 C1 C2 C3 C4 D1 D2 D3 E1 E2 E3 F1 F2 G 5 3 1 3 6 8 7 6 3 6 8 5 3 3 8 4 2 2 2 1 3 3 3 5 2 5 6 6 4 3 一 基本概念1 阶段 把一个问题的过程 恰当地分为若干个相互联系的阶段 以便于按一定的次序去求解 描述阶段的变量称为阶段变量 k k 1 2 3 n阶段的划分 一般是根据时间和空间的自然特征来进行的 但要便于问题转化为多阶段决策 2 状态 表示每个阶段开始所处的自然状况或客观条件 通常一个阶段有若干个状态 描述过程状态的变量称为状态变量sk 表示第k阶段的状态变量 一个数 一组数 一个向量 状态变量的取值有一定的允许集合或范围 此集合称为状态允许集合SK s1 s2 sk 一 动态规划的基本思想 3 决策 表示当过程处于某一阶段的某个状态时 可以作出不同的决定 从而确定下一阶段的状态 这种决定称为决策 描述决策的变量 称为决策变量 常用uk sk 表示第k阶段当状态为sk时的决策变量 决策变量是状态变量的函数 可用一个数 一组数或一向量 多维情形 来描述 在实际问题中决策变量的取值往往在某一范围之内 此范围称为允许决策集合 常用Dk sk 表示第k阶段从状态sk出发的允许决策集合 显然uk sk Dk sk 4 多阶段决策过程 可以在各个阶段进行决策 去控制过程发展的多段过程 其发展是通过一系列的状态转移来实现的 系统在某一阶段的状态转移不但与系统的当前的状态和决策有关 而且还与系统过去的历史状态和决策有关 图示如下 状态转移方程是确定过程由一个状态到另一个状态的演变过程 如果第k阶段状态变量sk的值 该阶段的决策变量一经确定 第k 1阶段状态变量sk 1的值也就确定 其状态转移方程如下 一般形式 能用动态规划方法求解的多阶段决策过程是一类特殊的多阶段决策过程 即具有无后效性的多阶段决策过程 如果状态变量不能满足无后效性的要求 应适当地改变状态的定义或规定方法 动态规划中能处理的状态转移方程的形式 状态具有无后效性的多阶段决策过程的状态转移方程如下 无后效性 马尔可夫性 如果某阶段状态给定后 则在这个阶段以后过程的发展不受这个阶段以前各段状态的影响 过程的过去历史只能通过当前的状态去影响它未来的发展 构造动态规划模型时 要充分注意是否满足无后效性的要求 状态变量要满足无后效性的要求 5 策略 相互连接的决策序列称为一个策略 从第k阶段开始到第n阶段结束称为一个子策略 Pk n 全策略P1 n 所有策略当中有最优值的策略称为最优策略 6 状态转移方程 是确定过程由一个状态到另一个状态的演变过程 描述了状态转移规律 7 指标函数和最优值函数 用来衡量所实现过程优劣的一种数量指标 为指标函数 阶段指标函数 Vk sk uk 表示第k阶段位于sk状态 决策为uk的指标值 策略指标函数 各决策序列指标值之和 个别情况为乘积 指标函数的最优值 称为最优值函数 在不同的问题中 指标函数的含义是不同的 它可能是距离 利润 成本 产量或资源消耗等 动态规划模型的指标函数 应具有可分离性 并满足递推关系 小结 指标函数形式 和 积 无后效性 可递推 解多阶段决策过程问题 求出 f1 s1 从k到终点最优策略子策略的最优目标函数值 1 动态规划方法的关键在于正确地写出基本的递推关系式和恰当的边界条件 简称基本方程 要做到这一点 就必须将问题的过程分成几个相互联系的阶段 恰当的选取状态变量和决策变量及定义最优值函数 从而把一个大问题转化成一组同类型的子问题 然后逐个求解 即从边界条件开始 逐段递推寻优 在每一个子问题的求解中 均利用了它前面的子问题的最优化结果 依次进行 最后一个子问题所得的最优解 就是整个问题的最优解 二 动态规划的基本思想 2 在多阶段决策过程中 动态规划方法是既把当前一段和未来一段分开 又把当前效益和未来效益结合起来考虑的一种最优化方法 因此 每段决策的选取是从全局来考虑的 与该段的最优选择答案一般是不同的 最优化原理 作为整个过程的最优策略具有这样的性质 无论过去的状态和决策如何 相对于前面的决策所形成的状态而言 余下的决策序列必然构成最优子策略 也就是说 一个最优策略的子策略也是最优的 3 在求整个问题的最优策略时 由于初始状态是已知的 而每段的决策都是该段状态的函数 故最优策略所经过的各段状态便可逐段变换得到 从而确定了最优路线 三 建立动态规划模型的步骤1 划分阶段k划分阶段是运用动态规划求解多阶段决策问题的第一步 在确定多阶段特性后 按时间或空间先后顺序 将过程划分为若干相互联系的阶段 对于静态问题要人为地赋予 时间 概念 以便划分阶段 2 正确选择状态变量sk选择变量既要能确切描述过程演变又要满足无后效性 而且各阶段状态变量的取值能够确定 一般地 状态变量的选择是从过程演变的特点中寻找 3 确定决策变量uk sk 及允许决策集合Dk sk 通常选择所求解问题的关键变量作为决策变量 同时要给出决策变量的取值范围 即确定允许决策集合 4 确定状态转移方程根据k阶段状态变量和决策变量 写出k 1阶段状态变量 状态转移方程应当具有递推关系 sk 1 Tk sk uk Tk 函数关系5 确定阶段指标函数和最优指标函数 建立动态规划基本方程阶段指标函数是指第k阶段的收益 最优指标函数是指从第k阶段状态出发到第n阶段末所获得收益的最优值 最后写出动态规划基本方程 fk sk Opt Vk sk uk fk 1 sk 1 fn 1 sn 1 0Opt最优化 max min 以上五步是建立动态规划数学模型的一般步骤 由于动态规划模型与线性规划模型不同 动态规划模型没有统一的模式 建模时必须根据具体问题具体分析 只有通过不断实践总结 才能较好掌握建模方法与技巧 f1 s1 是整个问题的最优策略 最优值 fk sk 表示从第k阶段 状态sk 到终点的最优指标值 距离 利润 成本等 例一 从A地到D地要铺设一条煤气管道 其中需经过两级中间站 两点之间的连线上的数字表示距离 如图所示 问应该选择什么路线 使总距离最短 A B1 B2 C1 C2 C3 D 2 4 3 3 3 3 2 1 1 1 4 二 最短路径问题 解 整个计算过程分三个阶段 从最后一个阶段开始 第三阶段 C D C有三条路线到终点D A B1 B2 C1 C2 C3 D 2 4 3 3 3 3 2 1 1 1 4 D C1 C2 C3 显然有f3 C1 1 f3 C2 3 f3 C3 4 d B1 C1 f3 C1 3 1f2 B1 mind B1 C2 f3 C2 min3 3d B1 C3 f3 C3 1 44 min6 45 第二阶段 B C B到C有六条路线 A B1 B2 C1 C2 C3 D 2 4 3 3 3 3 2 1 1 1 4 D C1 C2 C3 B1 B2 最短路线为B1 C1 D d B2 C1 f3 C1 2 1f2 B2 mind B2 C2 f3 C2 min3 3d B2 C3 f3 C3 1 43 min6 35 A B1 B2 C1 C2 C3 D 2 4 3 3 3 3 2 1 1 1 4 D C1 C2 C3 B1 B2 最短路线为B2 C1 D 第一阶段 A B A到B有二条路线 f1 A 1 d A B1 f2 B1 2 4 6f1 A 2 d A B2 f2 B2 4 3 7 f1 A min min 6 7 6 d A B1 f2 B1 d A B2 f2 B2 最短路线为A B1 C1 D A B1 B2 C1 C2 C3 D 2 4 3 3 3 3 2 1 1 1 4 D C1 C2 C3 B1 B2 A A B1 B2 C1 C2 C3 D 2 4 3 3 3 3 2 1 1 1 4 D C1 C2 C3 B1 B2 A 最短路线为A B1 C1 D路长为6 三 非线性规划问题 例7 4 用动态规划方法解下列非线性规划问题 解 解决这一类静态规划问题 需要人为地赋予时间概念 从而将该问题转化为多阶段决策过程 按问题的变量个数划分阶段 把它看作一个三阶段决策问题 k 1 2 3设状态变量为s1 s2 s3 s4并记s1 c取问题中的变量x1 x2 x3为决策变量 状态转移方程为 s3 x3s3 x2 s2s2 x1 s1 c允许决策集合为 x3 s30 x2 s20 x1 s1各阶段指标函数为 v1 x1 x1v2 x2 x22v3 x3 x3 各指标函数以乘积方式结合 最优指标函数fk sk 表示从第k阶段初始状态sk出发到第3阶段所得到的最大值 则动态规划基本方程为 用逆序解法由后向前依次求解 k 3时 x3 s3k 2时 令h2 s2 x2 x22 s2 x2 用经典解析法求极值点 解得 x2 0 舍 所以是极大值点 k 1时 令解得 x1 s1 舍 所以是极大值点 由于s1未知 所以对s1再求极值 显然s1 c时 f1 s1 取得最大值反向追踪得各阶段最优决策及最优值 s1 c所以最优解为 一般地 如果阶段指标函数vk sk uk 是线性函数或凸函数时 最优指标函数fk sk 的表达式比较容易得到 但是当vk sk uk 不具备上述特性时 最优指标函数fk sk 的表达式不易得到 就需要采用数值法 即对连续变量进行离散化处理 再分散求解 例如静态规划模型其动态规划基本方程为 状态转移方程为sk 1 sk xks1 a 状态变量sk及决策变量xk都是连续变量 对其进行离散化处理 具体做法是 1 对区间 0 a 进行分割 分割数m 其中 是分割后的小区间的长度 其大小可以根据所求解问题要求的精度及计算机运算能力而定 分割点为0 2 m a 2 规定状态变量sk及决策变量xk仅在离散点0 2 m 处取值 最优指标函数fk sk 也定义在这些离散点上 动态规划基本方程可以写为 其中sk q xk p 3 由后向前逐段递推 直至求出整个过程最优解 例7 5 解按变量个数将原问题分为三个阶段 阶段变量k 1 2 3 选择xk为决策变量 状态变量sk表示第k阶段至第3阶段决策变量之和 取小区间长度 1 小区间数目m 6 1 6 状态变量sk的取值点为 状态转移方程 sk 1 sk xk 允许决策集合 Dk sk xk 0 xk sk k 1 2 3xk sk均在分割点上取值 阶段指标函数分别为 g1 x1 x12g2 x2 x2g3 x3 x33 最优指标函数fk sk 表示从第k阶段状态sk出发到第3阶段所得到的最大值 动态规划的基本方程为 k 3时 s3及x3取值点较多 计算结果以表格形式给出 见表7 1所示 表7 1取值 k 2时 计算结果见表7 2 k 1时 其中s1 6 计算结果见表7 3所示 由表7 3知 x1 2 s1 6 则s2 s1 x1 6 2 4 查表7 2得 x2 1 则s3 s2 x2 4 1 3 查表7 1得 x3 3 所以最优解为 x1 2 x2 1 x3 3 f1 s1 108 本例也可用经典解析法求得各段的极值 读者可自行求解 二者结论完全相同 需要指出的是当连续变量离散化处理以后 由于状态变量和决策变量只在给定的离散点上取值 故有可能漏掉最优解 因此需要慎重选择参数m与 资源分配问题就是将一定数量的一种或若干种资源 原材料 资金 设备等 合理分配给若干使用者 使得资源分配后总结果最优 一种资源的分配问题称为一维资源分配问题 两种资源的分配问题称为二维资源分配问题 四 资源分配问题 假设有一种资源 数量为a 将其分配给n个使用者 分配给第i个使用者数量xi时 相应的收益为gi xi 问如何分配使得总收入最大 这就是一维资源分配问题 该问题的数学模型为 这是一个静态规划问题 应用动态规划方法求解时人为赋予时间概念 将其看作是一个多阶段决策问题 按变量个数划分阶段 k 1 2 n 设决策变量uk xk 表示分配给第k个使用者的资源数量 设状态变量为sk 表示分配给第k个至第n个使用者的总资源数量 状态转移方程 sk 1 sk xk 其中s1 a 允许决策集合 Dk sk xk 0 xk sk 阶段指标函数 vk sk uk gk xk 表示分配给第k个使用者数量xk时的收益 最优指标函数fk sk 表示以数量sk的资源分配给第k个至第n个使用者所得到的最大收益 则动态规划基本方程为 由后向前逐段递推 f1 a 即为所求问题的最大收益 例7 6 某公司打算在3个不同的地区设置4个销售点 根据市场部门估计 在不同地区设置不同数量的销售点每月可得到的利润如表7 4所示 试问在各地区如何设置销售点可使每月总利润最大 表7 4 解如前所述 建立动态规划数学模型 将问题分为3个阶段 k 1 2 3 决策变量xk表示分配给第k个地区的销售点数 状态变量为sk表示分配给第k个至第3个地区的销售点总数 状态转移方程 sk 1 sk xk 其中s1 4 允许决策集合 Dk sk xk 0 xk sk 阶段指标函数 gk xk 表示xk个销售点分配给第k个地区所获得的利润 最优指标函数fk sk 表示将数量为sk的销售点分配给第k个至第3个地区所得到的最大利润 动态规划基本方程为 k 3时 数值计算如下表7 5表7 5 k 2时 计算结果见下表7 6表7 6 k 1时 k 1时 只有s1 4的情况 计算结果如表7 7所示 所以最优解为 x1 2 x2 1 x3 1 f1 4 47 即在第1个地区设置2个销售点 第2个地区设置1个销售点 第3个地区设置1个销售点 每月可获利润47 表7 7 例7 7 机器负荷问题某工厂有100台机器 拟分四期使用 每一期都可在高 低两种不同负荷下进行生产 若把x台机器投入高负荷下进行生产 则在本期结束时将有1 3x台机器损坏报废 余下的机器全部投入低负荷下进行生产 则在期末有1 10的机器报废 如果高负荷下生产时每台机器可获利润为10 低负荷下生产时每台机器可获利润为7 问怎样分配机器使四期的总利润最大 解将问题按周期分为4个阶段 k 1 2 3 4 状态变量sk表示第k阶段初完好的机器数 s1 100 0 sk 100 决策变量xk表示第k阶段投入高负荷下生产的机器数 则sk xk表示第k阶段投入低负荷下生产的机器数 允许决策集合 Dk sk xk 0 xk sk 状态转移方程 sk 1 Tk sk xk 即第k 1阶段初拥有的完好机器数sk 1为 阶段指标函数 vk sk xk 10 xk 7 sk xk 表示第k阶段所获得的利润 最优指标函数fk sk 表示从第k阶段初完好机器数为sk至第四阶段的最大利润 动态规划基本方程为 k 4时 x4 s4k 3时 x3 s3 k 2时 x2 0k 1时 x1 0 因为s1 100 所以f1 100 2680 逆向追踪得 s1 100 x1 0 x2 0 x3 s3 81x4 s4 54即 第1 2期把全部完好机器投入低负荷下生产 第3 4期把全部完好机器投入高负荷下生产所得利润最大 五 生产计划问题 在企业生产经营活动中 经常会遇到如何合理安排生产 库存及销售计划 使总效益最高的问题 这一类问题统称为生产计划问题 例7 8 生产 库存问题 某工厂要对一种产品制定今后四个时期的生产计划 据估计在今后四个时期内 市场对该产品的需求量分别为2 3 2 4单位 假设每批产品固定成本为3千元 若不生产为0 每单位产品成本为1千元 每个时期最大生产能力不超过6个单位 每期期末未出售产品 每单位需付存贮费0 5千元 假定第1期初和第4期末库存量均为0 问该厂如何安排生产与库存 可在满足市场需求的前提下总成本最小 解以每个时期作为一个阶段 该问题分为4个阶段 k 1 2 3 4 决策变量xk表示第k阶段生产的产品数 状态变量sk表示第k阶段初的库存量 以dk表示第k阶段的需求 则状态转移方程 sk 1 sk xk dkk 4 3 2 1由于期初及期末库存为0 所以s1 0 s5 0 允许决策集合Dk sk 的确定 当sk dk时 xk可以为0 当sk dk时 至少应生产dk sk 故xk的下限为max 0 dk sk 每期最大生产能力为6 xk最大不超过6 由于期末库存为0 xk还应小于本期至4期需求之和减去本期的库存量 所以xk的上限为min 6 故有 Dk sk xk max 0 dk sk xk min 6 阶段指标函数rk sk xk 表示第k期的生产费用与存贮费用之和 最优指标函数fk sk 表示第k期库存为sk到第4期末的生产与存贮最低费用 动态规划基本方程为 先求出各状态允许状态集合及允许决策集合 如表7 8所示 表7 8 k 4时 计算结果见表7 9所示 表7 9 k 3时 计算结果如下表 k 2时 计算结果如下表 k 1时 计算结果见表7 12所示逆向追踪可得 x1 5 s2 3 x2 0 s3 0 x3 6 s4 4 x4 0 即第1时期生产5个单位 第3时期生产6个单位 第2 4时期不生产 可使总费用最小 最小费用为20 5千元 例7 9 库存 销售问题 设某公司计划在1至4月份从事某种商品经营 已知仓库最多可存储600件这种商品 已知1月初存货200件 根据预测知1至4月份各月的单位购货成本及销售价格如表7 13所示 每月只能销售本月初的库存 当月进货供以后各月销售 问如何安排进货量和销售量 使该公司四个月获得利润最大 假设四月底库存为零 表7 13 解按月份划分阶段 k 1 2 3 4 状态变量sk表示第k月初的库存量 s1 200 s5 0 决策变量xk表示第k月售出的货物数量 yk表示第k月购进的货物数量 状态转移方程 sk 1 sk yk xk 允许决策集合 0 xk sk 0 yk 600 sk xk 阶段指标函数为 pkxk ckyk表示k月份的利润 其中pk为第k月份的单位销售价格 ck为第k月份的单位购货成本 最优指标函数fk sk 表示第k月初库存为sk时从第k月至第4月末的最大利润 则动态规划基本方程为 k 4时 x4 s4y4 0k 3时 为求出使44s3 5x3 4y3最大的x3 y3 须求解线性规划问题 只有两个变量x3 y3 可用图解法也可用单纯形法求解 图解法求解示意图如图7 5所示 在A点处取得最优解 x3 0 y3 600 s3 f3 s3 40s3 2400 k 2时 类似地求得 x2 s2 y2 600 f2 s2 42s2 3600k 1时 类似地求得 x1 s1 y1 600 f1 s1 45s1 4800 13800 逆向追踪得各月最优购货量及销售量 x1 s1 200y1 600 x2 s2 s1 y1 x1 600y2 600 x3 0y3 600 s3 600 s2 y2 x2 0 x4 s4 s3 y3 x3 600y4 0即1月份销售200件 进货600件 2月份销售600件 进货600件 3月份销售量及进货量均为0 4月份销售600件 不进货 可获得最大总利润13800 六 背包问题 有人携带背包上山 其可携带物品的重量限度为a公斤 现有n种物品可供选择 设第i种物品的单件重量为ai公斤 其在上山过程中的价值是携带数量xi的函数ci xi 问应如何安排携带各种物品的数量 使总价值最大 这就是背包问题 类似的货物装载问题 下料问题都等同于背包问题 背包问题的数学模型为 下面用动态规划方法求解 按照装入物品的种类划分阶段 k 1 2 n 状态变量sk表示装入第k种至第n种物品的总重量 决策变量xk表示装入第k种物品的件数 状态转移方程为 sk 1 sk akxk允许决策集合为 其中表示不超过的最大整数 阶段指标函数ck xk 表示第k阶段装入第k种商品xk件时的价值 最优指标函数fk sk 表示第k阶段装入物品总重量为sk时的最大价值 动态规划基本方程为 例7 10 某工厂生产三种产品 各产品重量与利润关系如表7 14所示 现将此三种产品运往市场销售 运输能力总重量不超过6吨 问如何安排运输使总利润最大 表7 14 解设xi为装载第i种货物的件数 i 1 2 3 该问题数学模型为 按前述方法建立动态规划模型 k 3时 计算结果如表7 15所示 k 2时 计算结果如表7 16所示 表7 16 k 1时 计算结果如表7 17所示 表7 17 反向追踪得最优方案 x1 0 x2 2 x3 0 最优方案 x1 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论