第七章 动态规划方法建模

合集下载

最优控制-第七章-动态规划法

最优控制-第七章-动态规划法

当∆t很小时,有

t t
t
Lx, u, t d t Lx, u, t t
J x, t min
*
min
uU

uU

tf
t0
Lx, u, t d t Φ xt f
tf t t

t t
t
Lx, u, t d t
Lx, u, t d t Φ xt f
P1 11
7
P2 4 2
P3 4 4
12 A 4 8 Q1
4 3 2 2 Q3 B
5 Q2
第一段:P1、Q1的前站是始发站A。显见从
A到B的最优值为12,故得最优路线为AQ1P2Q3B。
综上可见,动态规划法的特点是: 1) 与穷举算法相比,可使计算量大大减少。如
上述最优路线问题,用动态规划法只须做10次
J x, t min Lx, u, t t J xt t , t t
* * uU


(8)
* J x , t J x, t * * J x x, t t J x, t t (12) x t x * T
A城出发到B城的行车时间最短。
P1 3 A 4 Q1 1
7
P2
2
P3 4
4
6 8 2 Q2
3 3 3
2 Q3 4
2
B
现将A到B分成四段,每一段都要作一最优决 策,使总过程时间为最短。所以这是一个多段最 优决策问题。 由图2可知,所有可能的行车路线共有8条。 如果将各条路线所需的时间都一一计算出来,并 作一比较,便可求得最优路线是AQ1P2Q3B,历时 12。这种一一计算的方法称为穷举算法。这种方 法计算量大,如本例就要做3×23=24次加法和7次 比较。如果决策一个n段过程,则共需(n-1)2n-1次 加法和(2n-1-1)次比较。可见随着段数的增多,计 算量将急剧增加。

数学建模-(动态规划)

数学建模-(动态规划)

1.某公司打算向它的三个营业区增设6个销售店,每个营业区至少增设1个。

各营业区每年增加的利润与增设的销售店个数有关,具体关系如表1所示。

试规划各营业区应增设销售店的个数,以使公司总利润增加额最大。

:个销售店,C 区增设1个销售店.最大利润为490万元。

贝尔曼(Bellman )最优化原理:在最优策略的任意一阶段上,无论过去的状态和决策如何,对过去决策所形成的当前状态而言,余下的诸决策必须构成最优子策略。

2.某公司拟将500万元的资本投入所属的甲、乙、丙三个工厂进行技术改造,各工厂获得投资后年利润将有相应的增长,增长额如表所示。

试确定500万元资解:将问题按工厂分为三个阶段3,2,1=k ,设状态变量k (3,2,1=k )代表从第k 个工厂到第3个工厂的投资额,决策变量k x 代表第k 个工厂的投资额。

于是有状态转移率k k k x S S -=+1、允许决策集合}0|{)(k k k k k S x x S D ≤≤=和递推关系式:)}()({max )(10k k k k k S x k k x S f x g S f k k -+=+≤≤ )1,2,3(=k0)(44=S f当3=k 时:)}({max }0)({max )(330330333333x g x g S f S x S x ≤≤≤≤=+=于是有表2-1,表中*3x 表示第三个阶段的最优决策。

当2=k 时:)}()({max )(2232202222x S f x g S f S x -+=≤≤于是有表7-3。

当1=k 时:)}()({max )(1121101111x S f x g S f S x -+=≤≤于是有表2-3。

然后按计算表格的顺序反推算,可知最优分配方案有两个:(1)甲工厂投资200万元,乙工厂投资200万元,丙工厂投资100万元;(2)甲工厂没有投资,乙工厂投资200万元,丙工厂投资300万元。

按最优分配方案分配投资(资源),年利润将增长210万元。

数学建模中的动态规划与贪心算法

数学建模中的动态规划与贪心算法

在现代数学建模中,动态规划和贪心算法是两种常用的方法。

它们具有重要的理论和实际意义,可以在很多实际问题中得到应用。

动态规划是一种通过将问题分解为子问题,并反复求解子问题来求解整个问题的方法。

它的核心思想是将原问题分解为若干个规模较小的子问题,并将子问题的最优解合并得到原问题的最优解。

动态规划的求解过程通常包括问题的建模、状态的定义、状态转移方程的确定、初始条件的设置和最优解的确定等步骤。

通过动态规划方法,可以大大减少问题的求解时间,提高求解效率。

举个例子,假设我们有一组物品,每个物品有重量和价值两个属性。

我们希望从中选出一些物品放入背包中,使得在背包容量限定的条件下,背包中的物品的总价值最大化。

这个问题可以使用动态规划来解决。

首先,我们定义一个状态变量,表示当前的背包容量和可选择的物品。

然后,我们根据背包容量和可选择的物品进行状态转移,将问题分解为子问题,求解子问题的最优解。

最后,根据最优解的状态,确定原问题的最优解。

与动态规划相比,贪心算法更加简单直接。

贪心算法是一种通过每一步的局部最优选择来达到全局最优解的方法。

贪心算法的核心思想是每一步都做出当前看来最好的选择,并在此基础上构造整个问题的最优解。

贪心算法一般包括问题的建模、贪心策略的确定和解的构造等步骤。

尽管贪心算法不能保证在所有情况下得到最优解,但在一些特定情况下,它可以得到最优解。

举个例子,假设我们要找零钱,现有的零钱包括若干2元、5元和10元的硬币。

我们希望找出一种最少的方案来凑出某个金额。

这个问题可以使用贪心算法来解决。

首先,我们确定贪心策略,即每次选择最大面额的硬币。

然后,我们根据贪心策略进行解的构造,直到凑够目标金额。

动态规划和贪心算法在数学建模中的应用广泛,在实际问题中也有很多的成功应用。

例如,动态规划可以用于求解最短路径、最小生成树等问题;贪心算法可以用于求解调度、路径规划等问题。

同时,动态规划和贪心算法也相互补充和影响。

有一些问题既可以使用动态规划求解,也可以使用贪心算法求解。

建立动态规划数学模型的步骤

建立动态规划数学模型的步骤

例2(带回收的资源分配问题)某厂新购某种机床125台。据估计,这种设备5年后将被其它设备所代替。此机床如在高负荷状态下工作,年损坏率为1/2,年利润为10万元;如在低负荷状态下工作,年损坏率为1/5,年利润为6万元。问应如何安排这些机床的生产负荷,才能使5年内获得的利润最大?
解:以年为阶段,k=1,2,3,4,5 取k年初完好的机床数为状态变量xk 以k年初投入高负荷运行的机床数为决策变量uk,则低负荷运行机床数是xk-uk,于是状态转移方程为: xk+1=1/2uk+4/5(xk-uk)=0.8xk-0.3uk 以利润为目标函数,则k年利润为: 10uk+6(xk-uk)=4uk+6xk 记fk(xk)为k年至5年末最大总利润,则动态规划基本方程为: fk(xk)= max{ 4uk+6xk+fk+1(0.8xk-0.3uk)} 0≤uk≤xk f6(x6)=0 k=5,4,3,2,1
动态规划基本方程为: fk(xk)= max{ 4uk+6xk+fk+1(0.8xk-0.3uk)}
当k=2时 f2(x2)= max{ 4u2+6x2+f3(0.8x2-0.3u2)} 0≤u2≤x2 = max{ 4u2+6x2+18(0.8x2-0.3u2)} 0≤u2≤x2 = max{-1.4u2+20.4x2}=20.4x2 u2=0 0≤u2≤x2 当k=1时 f1(x1)= max{ 4u1+6x1+f2(0.8x1-0.3u1)} 0≤u1≤x1 = max{ 4u1+6x1+20.4(0.8x1-0.3u1)} 0≤u1≤x1 = max{ -2.12u1+22.32x1}=22.32x1 u1=0 0≤u1≤x1 =22.32×125=2790(万元)

数学建模动态规划

数学建模动态规划

u5*(E2)F.
4
6
D2 2
F
3
1
D3
3
E2 u4 *(D 1)E1.
f4(D2)5 u4 *(D 2)E2.
f 3 ( C 2 ) m d 3 ( C 2 , D 1 i ) f 4 n ( D 1 ) d 3 ( { C , 2 , D 2 ) f 4 ( D 2 )}
m 4 i7 ,5 n 5 } { 1 . 0
一、基本概念
阶段:是指问题需要做出决策的步数。阶段总数常记为n,相 应的是n个阶段的决策问题。阶段的序号常记为k,称为阶段 变量,k=1,2, …,n. k即可以是顺序编号也可以是逆序编号, 常用顺序编号。 状态:各阶段开始时的客观条件,第k阶段的状态常用状态
变量 s k 表示,状态变量取值的集合成为状态集合,用 S k
4
A
5
2
B1 3
6
8 7
B2
7
C1
5
8
4
C2 5
3
C3 4
8
C4 4
D1
3
5 6
D2 2
1
D3
3
u5*(E1)F,
E1
4
3
E2
u5*(E2)F.
F
f 4 ( D 1 ) m d 4 ( D 1 , E 1 i ) f n 5 ( E 1 ) d 4 ( { D , 1 , E 2 ) f 5 ( E 2 )}
到过程终止时的最佳效益。记为
其中 opt 可根据具体情况取max 或min。 基本方程:此为逐段递推求和的依据,一般为:
式中opt 可根据题意取 max 或 min. 例如,案例1的基本方程为:

数学建模中的动态规划问题

数学建模中的动态规划问题

数学建模中的动态规划问题动态规划是一种常见且重要的数学建模技术,它在解决许多实际问题中发挥着关键作用。

本文将介绍动态规划问题的基本概念和解题方法,并通过几个实例来说明其在数学建模中的应用。

一、动态规划的基本概念动态规划是解决多阶段决策问题的一种方法。

一般来说,动态规划问题可以分为以下几个步骤:1. 确定阶段:将问题划分为若干个阶段,每个阶段对应一个决策。

2. 确定状态:将每个阶段的可能状态列出,并定义对应的决策集合。

3. 确定状态转移方程:根据当前阶段的状态和上一个阶段的决策,确定状态的转移关系。

4. 确定初始条件:确定问题的初始状态。

5. 确定决策的评价标准:根据问题的具体要求,确定决策的评价标准。

6. 使用递推或递归公式求解:根据状态转移方程,使用递推或递归公式求解问题。

二、动态规划问题的解题方法在解决动态规划问题时,一般可以使用自顶向下和自底向上两种方法。

自顶向下的方法,也称为记忆化搜索,是指从问题的最优解出发,逐步向下求解子问题的最优解。

该方法通常使用递归来实现,并通过记忆化技术来避免重复计算。

自底向上的方法,也称为动态规划的迭代求解法,是指从问题的初始状态出发,逐步向上求解各个阶段的最优解。

该方法通常使用迭代循环来实现,并通过存储中间结果来避免重复计算。

三、动态规划在数学建模中的应用1. 01背包问题:给定一组物品和一个背包,每个物品有对应的价值和重量,要求选择一些物品放入背包中,使得背包中物品的总价值最大,而且总重量不超过背包的容量。

这是一个经典的动态规划问题,在数学建模中经常遇到。

2. 最短路径问题:在给定的有向图中,求解从一个顶点到另一个顶点的最短路径。

该问题可以使用动态规划的思想对其进行求解,其中每个阶段表示到达某个顶点的最短路径。

3. 最长公共子序列问题:给定两个序列,求解它们最长的公共子序列的长度。

该问题可以使用动态规划的方法解决,其中每个阶段表示两个序列的某个子序列。

四、实例分析以01背包问题为例进行具体分析。

动态规划模型的建立与求解步骤

定最优出最优策略(最优决策变
量值系列)和最优状态变化路线。
• 状态变量应当满足无后效性要求。 • 明确指标函数,给出最优函数递推方程,
递推方程的形式应当与递推顺序一致。
运筹学
二、动态规划的求解步骤
• 正确划分阶段。 • 确定状态变量和决策变量,并给出状态变
量和决策变量的可行集合。 • 确定求解的递推顺序,给出状态转移方程。 • 确定阶段、子过程(子策略)的指标函数,确
运筹学
§3.2 动态规划建模与求解步骤
• 建立动态规划模型的基本要求 • 动态规划的求解步骤
运筹学
一、建立动态规划模型的基本要求
• 将问题划分成若干阶段。有的问题的阶 段性很明显,有的则不明显,需要分析 后人为假设。
• 确定各阶段的状态变量,并给出状态转 移方程,状态转移方程的形式应当与递 推顺序一致。

动态规划模型及求解方法


dh2 dx2
2x2 s2 3x22
0
解得:
2 x2 3 s2
x2=0(舍)
d 2h2 dx22
2s2
6x2
d 2h2 dx22
x2
2 3
s2
是极大值点。
x2
2 3
s2
2s2
0
f2
(s2
)
(2 3
s2
)2 (s2
2 3
s2 )
4 27
s
3 2
x2*
2 3
s2
k=1时,
f1 (s1 )
max
k=3时,
f3 (s3 )
max
x3D3 (s3
)[v3
(
x3
)
f4 (s4 )]
max(
x3 s3
x3
)
s3
k=2时,
x3*=s3
f2 (s2 )
max
x2D2 (s2
)[v2
(
x2
)
f3 (s3 )]
max
0x2 s2
(
x22
s3 )
max [
0x2 s2
x22
(s2
x2 )]
令h2(s2,x2)=x22(s2-x2)
运筹学
动态规划模型及求解方法
一、动态规划的数学模型
1. 动态规划的基本方程
设第k阶段处于状态sk,决策是uk(sk),状态转移方程为 sk+1=Tk(sk,uk),k阶段和k+1阶段的递推关系式可写为:
fk
(sk
)
opt [vk
uk Dk ( sk )
(sk
,uk

建立动态规划数学模型的步骤

建立动态规划数学模型的步骤动态规划是一种解决多阶段决策问题的优化方法,它将问题分为若干阶段,每个阶段采取一个最优决策,通过递推的方式得到问题的最优解。

建立动态规划数学模型的步骤主要包括以下几个方面。

第一步,明确问题:首先要明确要解决的问题是什么,分析问题的特点和要求,明确决策的目标和约束条件。

例如,我们可以考虑求解一个最优化问题,使一些目标函数取得最大(或最小)值。

第二步,定义状态:将问题的解表示为一个或多个状态变量。

状态是问题的一个关键特征,它描述了问题在每个阶段的情况,通常用一个或多个变量表示。

状态可以是离散的,也可以是连续的。

例如,假设我们要解决一个装箱问题,可以将状态定义为装箱剩余空间的大小。

第三步,确定决策变量:决策变量是问题中可以通过决策调整的变量,其取值将影响问题的解。

决策变量通常与状态有关,帮助我们在每个阶段做出最优决策。

继续以装箱问题为例,决策变量可以是选择放入的物品或物品的数量。

第四步,建立状态转移方程:通过分析问题的特点和约束条件,建立各个阶段之间的状态转移方程。

状态转移方程描述了问题中不同状态之间的关系,即通过做出一些决策后,当前状态如何转移到下一个状态。

状态转移方程通常由决策变量和前一阶段的状态变量表示。

在装箱问题中,状态转移方程可以描述为剩余空间等于前一阶段的剩余空间减去当前决策变量所占空间。

第五步,确定边界条件:边界条件是求解动态规划问题的关键,它们表示问题的起始状态和结束状态。

通常,起始状态是已知的,而结束状态需要根据问题的要求进行分析确定。

例如,装箱问题的起始状态可以是剩余空间等于货柜的总容量,结束状态可以是没有物品剩余可以放入货柜。

第六步,确定目标函数:目标函数是求解最优化问题时需要优化的目标。

在动态规划中,目标函数通常与状态有关,它表示在每个阶段的状态下所要最大(或最小)化的目标量。

例如,在装箱问题中,目标函数可以是放入货柜的物品总价值。

第七步,建立递推关系:根据状态转移方程和边界条件,可以利用递推的方法从起始状态逐步计算到结束状态。

动态规划模型的建立与求解步骤

动态规划模型的建立与求解步骤动态规划(Dynamic Programming)是一种通过分解复杂问题为简单的子问题,并将其结果保存起来以便重复使用的方法。

其基本思想是从问题的边界条件开始,通过递推式逐步求解更大规模的子问题,直到最终解决整个问题。

动态规划常见的应用包括路径规划、背包问题、字符串匹配等。

下面将介绍动态规划模型的建立与求解步骤,以了解如何使用动态规划解决实际问题。

一、确定状态:在使用动态规划解决问题之前,首先需要确定问题的状态。

状态就是问题需要求解的子问题的集合,每个状态都对应一个解。

二、确定初始条件:初始条件是指在递推关系中最小的、无需依赖于其他状态的子问题的解。

它们可以给出问题的边界,为递推过程提供起点。

三、确定状态转移方程:状态转移方程是把大问题分解为小问题的规律。

通过观察和思考,可以找出问题的递推关系,即大问题如何由小问题组成。

四、确定计算顺序:确定计算顺序是指确定问题的求解顺序,通常是按照自底向上或自顶向下的顺序进行计算。

自底向上是从初始条件开始,逐步计算直到求解整个问题;自顶向下是从大问题开始逐步分解为小问题,直到达到初始条件。

五、实现状态转移方程:通过编程实现状态转移方程,并根据计算顺序逐步求解子问题。

可以使用递归或循环的方法进行实现。

六、求解最优解:根据问题的定义和要求,确定如何从求解的子问题中得到最优解。

通常最优解是基于一些目标函数或约束条件来定义的。

七、分析复杂度:分析算法的时间复杂度和空间复杂度,以确定算法的效率和可行性。

综上所述,建立和求解动态规划模型的步骤可以概括为以下几个阶段:确定状态、确定初始条件、确定状态转移方程、确定计算顺序、实现状态转移方程、求解最优解和分析复杂度。

根据具体问题的特点和要求,可以灵活选择和调整这些步骤,以得到最优的解决方案。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章动态规划方法建模动态规划是由理查德·贝尔曼(Richard Bellman)所建立的,它是解最优化问题的一个特殊“技术”.我们这里用“技术”,是因为动态规划不是一个或一种特殊算法.7.1动态规划的基本概念在生产和科学实验中,有一类活动的过程,由于它的特殊性,可将过程分为若干个互相联系的阶段,在它的每一个阶段都需要作出决策,从而使整个过程达到最好的活动效果.因此,各个阶段决策的选取不是任意确定的,它依赖于当前面临的状态,又影响以后的发展.当各个阶段决策确定后,就组成了一个决策序列,因此也就决定了整个过程的一条活动路线.这种把一个问题可看作是一个前后关联具有链状结构的多阶段过程(如图7.1)就称为多阶段决策过程,也称序贯决策过程.这种问题就称为多阶段决策问题.在多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前的状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义.因此,把处理它的方法称为动态规划方法.但是,一些与时间没有关系的静态规划(如线性规划、非线性规划等)问题,只要人为地引进“时间”因素,也可把它视为多阶段决策问题,用动态规划方法来处理.涉及到动态规划,总会有下面几个概念:7.1.1动态规划的基本概念(1)阶段把所给问题的过程,恰当地分为若干个相互联系的阶段,以便能按一定的次序求解.描述阶段的变量称为阶段变量,常用k表示.阶段的划分,一般是根据时间和空间的自然特征来划分,但要便于把问题的过程能转化成为多阶段决策的过程.(2)状态状态表示每个阶段开始所处的自然状况或客观条件,它描述了研究问题的状况,又称不可控因素.在最短路问题中,状态就是某阶段的出发位置.它既是该阶段某支路的起点,又是前一阶段某支路的终点.通常一个阶段有若干个状态(一般第一个阶段只有一个状态,它构成动态规划的递推方程的出口),每一个阶段的所有状态构成一个集合,叫做状态集合.用一个变量i S 来描述在第i 个阶段的状态集合上的取值,此变量i S 称为状态变量(如7.2节中最短路问题中的i S ,以及后面要介绍的背包问题、分割问题及设备更新问题中的参数λ).这里所说的状态是具体的属于某阶段的,它应具备下面的性质:如果某阶段状态给定后,则在这阶段以后过程的发展不受这阶段以前各阶段状态的影响.换句话说,过程的过去历史只能通过当前的状态去影响它未来的发展,当前的状态是以往历史的总结.这个性质称为无后效性,也称马尔可夫(Markov )性.如果状态仅仅描述过程的具体特征,则并不是任何实际过程都能满足无后效性的要求.所以,在构造决策过程的动态规划模型时,不能仅由描述过程的具体特征这点着眼去规定状态变量,而要充分注意到是否满足无后效性的要求.如果状态的某种规定方式可能导致不满足无后效性,则应适当地改变状态的规定方法,达到能使它满足无后效性的要求.(3)决策决策表示当过程处于某一阶段的某一状态时,可以作出不同的决定(或选择),从而确定下一阶段的状态,这种决定称为决策.在最优控制中也称为控制(只有它才是我们能够控制的).描述决策的变量称为决策变量.它可以用一个数、一组数或一个向量来描述.常用)(k k s u 表示第k 阶段当状态处于k s 时的决策变量,它是状态或状态变量的函数(可能是向量值函数或多值函数).在实际问题中,决策变量的取值往往限制在某一范围之内,此范围称为允许决策集合.常用)(k k s D 表示第k 阶段当状态处于k s 出发的允许决策集合,显然有)()(k k k k s D s u ∈.例如,在最短路问题中,{}98726252,)()()(v v v D v D v D ===.(4)策略策略是一个按顺序排列的决策组成的集合.由过程的第k 阶段开始到终止状态为止的过程,称为问题的后部子过程.由每段的决策按顺序排列组成的决策函数序列称为子策略,记为{})(,),(),()(11,n n k k k k k n k s u s u s u s p ++=当1=k 时,此决策函数序列即为一个策略.{})(,),(),()(2211,1n n k n s u s u s u s p =在实际问题中,可供选择的策略有一定的范围,此范围称为允许策略集合.从允许策略集合中找到达到最优效果的策略称为最优策略.(5)状态转移方程状态转移方程式确定过程有一个状态到另一个状态的演变过程.若给定第k 阶段状态k s 和该阶段的决策变量)(k k s u ,则第1+k 阶段的状态1+k s 也就完全确定.即1+k s 的值随ks 和)(k k s u 的值变化而变化.这种确定的对应关系,记为))(,(1k k k k k s u s T s =+,它描述了由第k 阶段到第1+k 阶段的状态转移规律,称为状态转移方程.k T 称为状态转移函数.例如,在最短路问题中,状态转移方程为)(1k k k s u s =+.(6)指标函数和最优值函数用来衡量所实现过程优劣的数量指标,称为指标函数.它是定义在全过程和所有后部子过程上确定的函数.对于要构成动态规划模型的指标函数,应具有可分性,并满足递推关系(详见文献[5]),在实际问题中,很多指标函数都满足此性质.指标函数的最优值,称为最优值函数.根据问题,取min 或max 之一.在动态规划模型中,总会出现一个或一组递推关系,我们把它称为动态规划的基本方程. 7.1.2 动态规划方法的基本思想现将动态规划方法的基本思想归纳如下:一、动态规划方法的关键在于正确写出基本的递推关系式和恰当的边界条件(基本方程).要做到这一点,必须先将问题的整个过程分成几个相互联系的阶段,恰当地选取状态变量和决策变量及定义最优值函数,从而把一个大问题化成一族同类型的子问题,然后逐个求解.即从边界条件开始,逐段递推寻优,在每一个子问题的求解中,均利用了它前面的子问题的最优化结果,依次进行,最后一个子问题所得的最优解,就是整个问题的最优解.二、在多阶段决策过程中,动态规划方法是既把当前一段和未来各段分开,又把当前效益和未来效益结合起来考虑的一种最优化方法.因此,每段决策的选取是从全局来考虑的,与该段的最优选择答案一般是不同的.三、在求整个问题的最优策略时,由于初始状态是已知的,而每段的决策都是该段状态的函数,故最优策略所经过的各段状态便可逐次变换得到,从而确定了最优策略.动态规划的理论基础叫做动态规划的最优化原理,它是这样描述的:作为整个过程的最优策略具有这样的性质:即无论过去的状态和决策如何,对前面决策所形成的状态而言,余下的诸决策必须构成最优策略.简言之,一个最优策略的子策略总是最优的.动态规划的优劣: 优点:(1)易于确定全局最优解.因为它求解的全是一维问题,所以容易确定. (2)能得到一族(全部的)最优解,有利于分析结果. (3)能利用经验,提高求解效率. 缺点:(1)到目前为止,没有一个统一的标准模型可供应用.由于问题的不同,有时要将问题转化成满足条件(无后效性、目标函数的可分性)的多阶段决策过程是非常困难的,需要丰富的想象力和灵活的技巧.(2)应用的局限性.“无后效性”条件的限制,降低了动态规划的通用性.(3)在数值计算时,存在所谓的“维数灾难”.当阶段数目较多且每一阶段的允许状态也较多时,计算成本变得非常昂贵,有时使得计算不可能进行下去.在二维或三维动态规划中,问题显得更加突出.7.2最短路问题问题:某人想进行一次旅行.他住在城市1,而希望到达城市10,见图7.2.这是一次长途的旅行,而且他还必须进行三次中间停留.对他旅行中的三个中间停留站的每一站,都有两到三个不同的城市可供他选择.选择不同的中间站,旅行的花费是不同的.两城市之间的花费以及连接示于图7.2中.由于他希望为这次旅行付出的总花费达到最小,他将确定哪些城市作为他的中间站,显然,它可以用枚举法来解决此问题,总的可能的路线有18条(3×3×2=18).但问题肯定有更好的解法,下面我们用更好的方法来解决此问题.我们从终点(城市10)逆序来分析这个问题.第一步:若我们处在第3站,可通过城市8或城市9到达城市10.可用表7.2.1(1)说明:表7.2.1(1)第二步:现在假设在第2站,并问哪一条是到达城市10且花费最小的路径.若在城市5,最小花费是510,即(210+380,230+280)中的最小值,将选用路径5-9-10.同理,若在城市6,最小花费是660,即(350+380,380+280)中的最小值,将选择路径6-9-10.此结果列于表7.2.1(2)中.表7.2.1(2)第三步:假定处在第1站.用类似于第2站的分析方法进行分析,例如,由城市2到达城市10的最小花费是830=min (320+510,350+660,400+670)[括号中和式的第一项是由城市2到城市5、6、7的花费,第二项是城市5、6、7到城市10的最小花费,它可由表3-1(2)查到],最小花费路径是2-5-9-10.第1站的所有计算结果有表7.2.1(3)给出.表7.2.1(3)第四步:假设处在城市1,这是起点.必须由城市1到城市2、3、4中的一个.最小花费的路径是那一条呢?应用表7.2.1(3)的结果和由城市1到城市2、3、4的花费,则可计算出全旅程的最小花费为:min (300+830,200+860,350+810)=min (1130,1060,1160)=1060 最小花费路径是:1-3-5-9-10.上面的解决非常简单.它是基于这样的思考:不论现在处于那一个城市,从最后一个城市开始,将总是选择最优(最小花费)的路径.若在城市10(第4站),就留在那里.若在城市5(第3站),则从城市8或9到达城市10.如此继续下去,直到发现自己在城市1(第0站),并且顺序地找到了最小花费的解,以及实现最小花费的路径.应当注意,即使没有达到第0站,最优解将是什么样,也是清楚的.我们注意到,在第1站,最小费用将是由城市3到城市10的最小费用加上200.另外,如果他改变了他的愿望,并决定从任何其它城市起始,我们也知道最优解是什么.上面的解法虽然简单,但它却富有启发性.一方面,在计算过程中,我们使用了已经计算出的数据,这大大的节约了计算成本;另一方面,我们得到了比我们预期多得多的信息,我们不仅仅解得了从城市1(起点)到城市10的最小费用路径,而且还得到了其它任何一个城市到达城市10的最小费用路径.显然,如果在原问题的旅行图前又增添了一些新的城市,我们已经计算出的数据仍然可以利用,并且进一步的计算不会比上面的计算更复杂.下面我们将上面的解法步骤用符号表示,以期望得到更一般的形式.用符号i v (10,,2,1 =i )表示10个城市.),(j i v v d 表示城市i v 到城市j v 的距离.如果城市i v 到城市j v 必须经过其它城市,则+∞=),(j i v v d .于是所有数据),(j i v v d 构成一个矩阵,即为⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞=0280380280040038023038002903502104002900200410400380350025028035023021003003503202002503000350410280350020040035032003203502003200)),((j i v v d 用i S 表示第i 站所有城市构成的集合.即{}10v S =,{}4321,,v v v S =,{}7652,,v v v S =,{}983,v v S =,{}104v S =.用)(i k v f 表示从第k 站的城市i v 到目的地10v 的最小费用值.于是上面的解题过程可由下面的递推公式完成:{}⎪⎩⎪⎨⎧=+==∈-1,2,3,4,),()(min )(0)(1104k v v d v f v f v f i j j k S v i k k j (7.2.1) 当然,在每步极小化时,应记住极小值点i v ,这样才能确定最小费用路径.显然,根据对称性,你还可以使用“顺推法”.与之对应,上面的过程称为“逆推法”.7.3 背包问题问题:有人在某地旅游结束后,决定购买一些“特产”,打算带回家,再卖给他的一些同事,指望得到一笔诚实无欺的利润.他知道在他的行李中最多只能带20㎏,才不会超重.他可以购买四种不同类型的特产,其特征如见表7.3.1.表7.3.1由于这些项目不可能分割包装,这就限制了只能取其整数倍.根据第六章,此问题可以用整数线性规划来描述.设1x ,2x ,3x ,4x 表示准备带回家的各种特产的数量,则问题变为求解4321210260160110max x x x x P +++= (7.3.1)⎩⎨⎧=≥≤+++)4,3,2,1(0204532..4321i x x x x x t s i 为整数 (7.3.2) 下面我们将用动态规划技术来解此问题.假设已知432,,x x x 的最优值,记为*4*3*2,,x x x .若是这种情况,我们只需要解一个单变量问题,将*4*3*2,,x x x 代入式(7.3.1)~(7.3.2)中,可得 )]210260160(110max[*4*3*21x x x x +++ (7.3.3)约束为32021-≤x *4*3*245x x x -- (7.3.4) ,01≥x 为整数 (7.3.5)由于*4*3*2210260160x x x ++是一个常数(若已知*4*3*2,,x x x 的值),则目标函数式(7.3.3)仅仅是10110max 1x x ≥ (7.3.6)自然,*4*3*2,,x x x 是未知的.但是,我们知道*4*3*2,,x x x 必须满足 20-3*4*3*245x x x -- (7.3.7) 否则的话,问题式(7.3.3)-(7.3.5)是无解的.若我们规定一个新的变量λ,通常称为状态变量,则可将式(7.3.4)写成为λ≤12x (7.3.8)其中,λ可为0,1,…,20中任何一个值,因为在这里实际上 *4*3*2,,x x x 是未知的. 现在来解由式(7.3.6)和式(7.3.8)给出的一维问题,即10110max 1x x ≥ (7.3.9)约束为)20,,1,0(21 =≤λλx (7.3.10)对于每一个λ值,此问题是易于求解的.例如: 02,110max 11≤x x 得出0)0(*1=x 42,110max 11≤x x 得出220)4(*1=x若定义101110max )(1x g x ≥≡λ (7.3.11)则)(1λg 给出1110x 的最大值,并且)(*1λx 是给出极大值的1x 的值.)(1λg 和)(*1λx 二者为λ的函数,因此极大化将限制在λ的某些特定值上.若对全部的λ求解(7.3.9),可得表7.3.2(1):表7.3.2(1)考虑到,现在已经知道满足原问题(7.3.1)-(7.3.2)的约束的最优值)(*1λx 是怎样地取决于λ,以及怎样地取决于原问题的任一可能的限制.现在来考虑下述问题:}160]110max {[max )(210212x x g x x +≡≥≥λ (7.3.12)约束为2132x x -≤λ (7.3.13)为什么要考虑式(7.3.12)和(7.3.13)形式的最优化问题呢?首先我们注意到,这个问题的所有可行解,也是原问题的可行解.其次,若λ固定于某些值上,则问题是单变量问题,这可从下面的一些论述看出.利用定义式(7.3.11)可看出,10110max 1x x ≥在式(7.3.12)中是)3(21x g -λ.所以,式(7.3.12)可写为}160)3({max )(221022x x g g x +-≡≥λλ (7.3.14)注意,对于固定的λ,式(7.3.14)是一个单变量最优化问题.然而,式(7.3.14)不是完全的.由式(7.3.13)和4321,,,x x x x 的非负性,可看出032≥-x λ,所以有⎥⎦⎤⎢⎣⎡≤≤302λx (7.3.15)其中,[]的最大的整数小于等于a a ≡.于是可将式(7.3.14)写为}160)3({max )(221]3/[022x x g g x +-≡≤≤λλλ (7.3.16)其中20,,2,1,0 =λ.式(7.3.16)是相当重要的.首先,它是一个单变量最优化问题,易于求解;而且对于全部可能的)(1λg 值,在表7.3.1(1)中已经给出,求)3(21x g -λ只需查表7.3.1(1)就行.这样,利用式(7.3.16)和表7.3.1(1)可计算出)(2λg 的值.结果见表7.3.2(2)中.表7.3.2(2)同理,下面我们来考虑问题}260]160)110max [(max {max )(32103123x x x g x x x ++≡≥≥≥λ (7.3.17)约束为321532x x x -≤+λ (7.3.18) 此外,若用式(7.3.12)给出的)(2λg ,式(7.3.17)可写为}260)5({max )(332023x x g g x +-≡≥λλ (7.3.19)并且,由于053≥-x λ,可获得类似于式(7.3.16)的形式,即}260)5({max )(332]5/[033x x g g x +-=≤≤λλλ (7.3.20)其中20,,2,1,0 =λ.现在可以用式(7.3.20)和表7.3.2(2)可求出)(3λg 的值.见表7.3.2(3):表7.3.2(3)最后,我们来考察如下问题:}210)4({max )(443044x x g g x +-≡≥λλ (7.3.21)其中极大化是从0到4λ之间的整数4x 上考虑的. 回到原问题,因为λ意味着允许携带物品的总重量,故此时只须求20=λ时的值,即}210)420({max )20(4435044x x g g x +-≡≤≤利用表7.3.2(2)的值,可知道}210)420({max )20(4435044x x g g x +-≡≤≤1100105010601070108010901100max 1050)0(840)4(630)8(420)12(210)16()20(max 5210)5420(4210)4420(3210)3420(2210)2420(1210)1420(0210)0420(max 333333333333=⎪⎪⎪⎪⎭⎪⎪⎪⎪⎬⎫⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧=⎪⎪⎪⎪⎭⎪⎪⎪⎪⎬⎫⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧+++++=⎪⎪⎪⎪⎭⎪⎪⎪⎪⎬⎫⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧⨯+⨯-⨯+⨯-⨯+⨯-⨯+⨯-⨯+⨯-⨯+⨯-=g g g g g g g g g g g g .此时,0)20(*4=x .我们已经得到了最优值1100*=P 以及0*4=x ,注意到)20(3*g P =,从表7.3.2(3)可知道0*3=x ,而且)20(2*g P =.同理,表7.3.2(2)告诉0*2=x 和)20(1*g P =.最后,在表7.3.1(1)中得到10*1=x .于是原问题的解为:10*1=x ,0*2=x ,0*3=x , 0*4=x ,1100*=P . 在这个例子中,我们的解题方法有类似于上一节最短路问题求解的特征: (1)用解四个单变量的最优化问题,代替解一个四变量的最优化问题.(2)就象最短路问题一样,我们先来处理一个变量(最短路问题中,先考虑最后1站),接着是两个变量,直到最后我们才处理了全部变量.(3)尽管我们感兴趣的是20=λ的情形,但是除了最后一步仅是对20=λ求解外,我们对λ的全部可能的整数值(200≤≤λ),求解了问题.如果用i w 和i p 分别表示第i 种物品的重量和获利(4,3,2,1=i ).λ表示剩余下的用于携带物品的重量.)(λi g 表示用于携带物品的重量为λ时带第1~i 种物品的最大利润.则有下面的递推方程可表示上面的解题过程:⎪⎪⎩⎪⎪⎨⎧=+-===≤≤-≤≤4,3,2,1},)({max )(0)(4321,200100i x p x w g g g i x i i i i i x w i i i i λλλλλ),,,为整数( (7.3.22) 用此方法解题,可以节约计算.7.4 分割问题问题:给定一个正数a ,将其分成n 个部分,使这n 部分的乘积最大. 下面我们用动态规划的方法来解决这个问题.注意到是未指定的.首先我们令⎭⎬⎫⎩⎨⎧=≥==∑∏==n i x x x g i ni i ni in ,,2,1;0;max )(11 λλ 即)(λn g 表示任何一个正数λ分成n 部分,它们乘积的最大值.乘积的最大值)(λn g 可这样分解:它的第1部分为x ,且剩余的为分成1-n 部分时乘积的最大值.第一步:考虑1=n 的情形(最简单的情形).对于这个问题,即任何一个正数λ分成1部分,显然乘积的最大值为λ.因此,我们定义λλ=)(1g (7.4.1) 第二步:考虑2=n 的情形.即将数λ分成乘积最大的2部分.设其中的一部分为x ,则另一部分为x -λ,于是)(max )(102x xg g x -=≤≤λλλ(7.4.2)利用式(7.4.1)上式也可写成)(max )(02x x g x -=≤≤λλλ这是一个含参数的单变量最大化问题,可用数学分析的方法求最大化.对右端函数)(x x -λ的变量x 求导数并令其导数等于0,就得到2λ=x 时有最大值42λ.因此我们求得了)(2λg 的显式表达式:4)(22λλ=g 且其第1部分为2*λ=x . (7.4.3) 第三步:考虑3=n 的情形.即将数λ分成乘积最大的3部分.设其中的一部分为x ,则剩余部分的和为x -λ,于是)(max )(203x xg g x -=≤≤λλλ(7.4.4)利用式(7.4.1)上式也可写成4/)(max )(203x x g x -=≤≤λλλ这是一个含参数的单变量最大化问题,可用数学分析的方法求最大化.对右端函数4/)(2x x -λ的变量x 求导数并令其导数等于0就得到3λ=x 时有最大值3)3(λ.因此我们求得了)(3λg 的显式表达式:33)3()(λλ=g 且其第1部分为3*λ=x . (7.4.5)第四步:根据(7.4.1)(7.4.3)(7.4.5),现在我们猜测n n n g )()(λλ= 且其第1部分为nx λ=*. (7.4.6) 下面用归纳法来证明.事实上,3,2,1=n 的情形已经证明.假设k n =时(7.4.6)成立.第五步:当1+=k n 时,因为)(max )(01x xg g k x k -=≤≤+λλλ(7.4.7)利用假设,则k x k kxx g )(max )(01-=≤≤+λλλ这仍然是一个单变量的最优化问题.利用数学分析的知识可求得 11)1()(+++=k k k g λλ 且其第1部分为1*+=k x λ.这样就完成了归纳法的证明.最后:将a =λ代入式(7.4.6),我们得到正数a 分割成n 部分时最大乘积为nna )(且分割的第一部分为n a ,剩余部分为n an )1(-,将此部分分割成1-n 份,使得乘积最大的分割中第一部分为n a n n a n =--1/)1(,又剩余了nan )2(-,再将此部分分割成2-n 份,…,依次下去,我们会得到每一部分都是na.于是,原问题就解决了.答案是:给定一个正数a ,将其等分成n 个部分,这样n 部分的乘积最大.我们仍然将上面的计算方法归结为下面的递推方程:⎪⎪⎩⎪⎪⎨⎧-=-==>≤≤+1,,2,1,)(max )()(0011n k x xg g g k x k λλλλλλ (7.4.8) 值的注意的是,我们的方法当问题改变为如下时仍然有效:将一个正整数m 分割成n (n m ≥)个正整数使其乘积最大.但在每一步求解最优化时不能使用经典方法.建议读者动手做做.7.5 简单的设备更新问题一部用于化学处理的设备,特别易于遭到腐蚀的损坏,致使影响生产效率.设当用了t 年后,从运转中得到的净收入(扣除运转费用后),可用下式给出⎪⎩⎪⎨⎧>≤≤--=)4(0)40(212262t t t t I (7.5.1) 由式(7.5.1)可看出,这部设备在使用一定年限后应该淘汰.更新的价值为22,并且当它被更换后,它又有了五年的生产寿命.经常保持有一部已用了一年的设备在运转.若每年做一次决策,继续保持这部设备或更换它,那么采用什么策略会使一个规划期限内(五年)的总赢利为最大?由于式子(7.5.1)给出了净收入,可看出,年赢利是收入与花费之差(即扣除运转费用).由此,若保持这部现用设备,则赢利为⎪⎩⎪⎨⎧>≤≤--=)4(0)40(21226)(2t t t t t P (7.5.2) 而更换这部设备,赢利为42226)(=-=t P (7.5.3)由于这部设备已没有挽救的价值,所以从新设备中的净赢利不取决于所更新设备的使用年限.所以4)0(=P 为从新设备中第一年的赢利.现在让我们把问题公式化.我们希望求出五个逐年决策的序列,即,保持)(K 或更换)(R ,使从五年运转中的赢利为最大.所以希望∑=51),()(maxj j R K t P j j (7.5.4)其中,)(t P j 由式(7.5.2)或式(7.5.3)给出,哪一个由作出的决策来定.现在让我们来处理这个多级最佳化问题.若倒过来排各级的序号,则分析起来将方便些,即,第一级表示还剩下一年,因此从第五级开始.图7.3上表示了我们将采用的符号,对于时间)(j t ,将做出保持)(K 或更换)(R 的决策)(j d .若决策保持这个设备,可看出j t 可由下式给出11+=+j j t t (7.5.5)若更换这个设备,则1=j t .图7.4更详细地解释了上述记号与约定.现在假设剩下的运转时间为一年(最后一级).定义≡)(21t g 当设备使用了1t 年时,进入最后一个运转年,采取K 或R 时获得的最大赢利. 那么,很清楚有{}[])(max)(2,211t P t g R K d ==(7.5.6)用式(7.5.6)的采样计算如下:)(5.154,)3(21)3(226max )3()(5.234,)1(21)1(226max )1(2121K g K g =⎥⎦⎤⎢⎣⎡--==⎥⎦⎤⎢⎣⎡--=表7.5.1中第一栏包含了,当设备还剩一年运转时间时,对不同使用期的设备全部计算. 表7.5.1现在我们需要对还剩下两年或更多年运转期的设备,发展一种计算最大赢利的一般方法. 定义≡+)(1j j t g 具有役令1+j t 的设备进入第j 运转年时采用K 或R 的最大赢利. 可由 )(1+j j t g 定义很清楚地给出⎥⎦⎤⎢⎣⎡=∑=++j k k k RK j j t P t g 11,1)(max )( (7.5.7)应用最佳化原理、)(1+j j t g 定义和式(7.5.7),可得 {}[])5,4,3,2()()(max )(11,1=+=-+=+j t g t P t g j j j j R K d j j j (7.5.8)现在用式(7.5.8)计算)(32t g .由式(7.5.5)知11+=+j j t t .一些采样计算为⎩⎨⎧++=)1()0()2()1(max )1(112g P g P g我们前面已经计算了)(21t g .由此得)(5.43)(5.275.234)(5.4320)1(21)1(226max )1(22K R K g =⎪⎩⎪⎨⎧=+=+--= 同理)(5.27)(5.275.234)(5.2510)3(21)3(226max )1()0()4()3(max )3(2112R R K g P g P g =⎪⎩⎪⎨⎧=+=+--=⎩⎨⎧++= 剩余的计算结果列表于7.5.1的各栏中.现在我们能够回答原始的问题了.若目前有一运转了一年的设备,查表7-4中11=+j t 行的第五栏,由此可计算最佳的五年策略.可看出,最大的赢利为91,并保持这个设备一年.现在移到第四栏的第二行,应为现在设备已用了两年.可看出,最佳的策 仍是保持设备.现在移到第三栏第三行,则必需更换设备.若这样做,则移到了第二栏第一行.继续保持设备,并移到第一栏第二行.这条路径已描绘在表7.5.1中.可看出,最佳策略是)(KKRKK .这就是说,在运转的前两年我们保持设备,在第三年更换,然后继续保持两年.最大的赢利将为91.当然,我们可以用这个算出来的表,来回答可能提出的其它问题.例如,假设我们希望在下一个五年里获得最大的赢利,起始点是使用了两年的设备.对于这种情况,存在有两种最佳的策略,得出相同的赢利为83.这些最佳策略是)(K K R K K 或)(KRKKK读者可通过表7-4绘出这些路径.当这两种策略得到相同的总赢利83时,若一个是考虑到)(KKRKK 在五年周期中的前两年产生43.5的赢利,另一个)(KRKKK 在前两年中只产生35.5,如果企求获得较多赢利越早越好(实际上常是这样),则第一个策略比第二个更好.练习1.用动态规划解下面问题:(1)⎩⎨⎧=≥=++++=3,2,1;010294max 3212321i x x x x x x x z i (2)⎩⎨⎧=≥=++++=3,2,1;010294max 3212321i x x x x x x x z i 是整数(3)⎩⎨⎧=≥=++=3,2,1;010max 3212321i x x x x x x x z i (4)⎩⎨⎧=≥=++=3,2,1;010max 3212321i x x x x x x x z i 是整数2.某工业部门根据国家计划的安排,拟将某种高效率的设备五台,分配给所属的甲、乙、丙三个工厂,各工厂若获得这种设备之后,可为国家提供的盈利如表7.5.2所示.问:这五台设备如何分配给各工厂,才能使国家得到的盈利最大.3.某工厂要对一种产品制订今后四个时期的生产计划,据估计在今后四个时期内,市场对于该产品的需求量如表7.5.3所示.表7.5.3假定该厂生产每批产品的固定成本为3千元,若不生产就为0;每单位产品成本为1千元;每个时期生产能力所允许的最大生产批量不超过6个单位;每个时期末未售出的产品,每单位需付存储费0.5千元.还假定在第一个时期的初始库存为0,第四个时期末的库存量也为0.试问该厂应如何安排各个时期的生产与库存,才能在满足市场需求的条件下,使总成本最小.阅读材料渡河问题人、狼、鸡、米渡河问题:人、狼、鸡、米各一均要过河,船一只.船需要人划,另外至多还能载一物,而当人不在时,狼要吃鸡,鸡要吃米.问人、狼、鸡、米怎样过河才能无一损失?这是一个有趣的数学游戏,问题比较简单,可用递推方法解决.但我们并不想这样做,我们希望更有意义的解决方案.解法一:因为问题中出现了四种不同的元素,故我们期望用四维向量表示它们,即(Man, Wolf, Cock, Rice)又因为当河的一岸上的情形已知时,另一岸上的情形必然已知.故可用1或0表示是否表中列出了所有可能的16种状态,当然,根据对称性,河的一岸还会出现另一岸的8种情形.这种向量的表示意义也很明确,如(1,0,1,1)表示人、鸡、米在该处,而狼在另一处,等等.根据题意,有些状态是不能允许的,就是表中用×标记的6种,因为这6种状态中会出现河的一岸一物被另一物所吃的情况.剩下的10种状态我们用○标记出,这些都是系统允许出现的,所以我们称为可取状态.接下来的问题是如何表示船的一次运载.船上的状态也可以用前面的四维向量表示,例如,船上装有人(人必须在船上)和鸡表示为(1,0,1,0).因为“船需要人划,另外至多还能载一物”,故船上只有4种可能状态:(1,0,0,0),(1,1,0, 0),(1,0,1,0),(1,0,0,1).我们在这四个向量前面加上i )1(-表示第i 次渡河.这样我们可以通过加法运算来表示船的一次运载.例如:在状态(1,0,1,1)之下船运载了米,即(1,0,1,1)+1)1(-(1,0,0,1)=(0,0,1,0).自然,由于问题的要求,运算的结果状态必须是可取状态.在上面的处理下,问题有了如下的的提法:寻求一种齐数步的系统状态转移过程,使系统从初始状态(1,1,1,1)变换到状态(0,0,0,0).如果没有这样的转移过程,或所有状态转移过程陷入循环状态,则问题无解.具体解答过程为:① ⎪⎪⎩⎪⎪⎨⎧⨯==⨯=⨯=-)0,1,1,0()1,0,0,1()1,0,1,0()0,1,0,1()1,1,0,0()0,0,1,1()1,1,1,0()0,0,0,1()1,1,1,1( ② ⎪⎪⎩⎪⎪⎨⎧⨯⨯=⨯=⨯⨯==+)2,0,1,1()1,0,0,1(!)1,1,1,1()0,1,0,1()1,0,2,1()0,0,1,1()1,0,1,1()0,0,0,1()1,0,1,0(③⎪⎪⎩⎪⎪⎨⎧=⨯⨯-==⨯=-)0,0,1,0()1,0,0,1()1,1,1,0()0,1,0,1()1,0,0,0()0,0,1,1(!)1,0,1,0()0,0,0,1()1,0,1,1(。

相关文档
最新文档