三、动态规划
运筹学实验的心得体会范文(通用3篇)

运筹学实验的心得体会范文(通用3篇)运筹学实验的心得体会1古人作战讲“夫运筹帷幄之中,决胜千里之外”。
在现代商业社会中,更加讲求运筹学的应用。
作为一名物流管理的学生,更应该能够熟练地掌握、运用运筹学的精髓,用运筹学的思维思考问题。
即:应用分析、试验、量化的方法,对实际生活中人、财、物等有限资源进行统筹安排。
本着这样的心态,在本学期运筹学即将结课之时,我得出以下关于运筹学的知识。
是虽上机考试没有通过,感到不安,但是我明白要将理论联系实际,才能更好的发挥。
线性规划解决的是:在资源有限的条件下,为达到预期目标最优,而寻找资源消耗最少的方案。
其数学模型有目标函数和约束条件组成。
一个问题要满足一下条件时才能归结为线性规划的模型:⑴要求解的问题的目标能用效益指标度量大小,并能用线性函数描述目标的要求;⑵为达到这个目标存在很多种方案;⑶要到达的目标是在一定约束条件下实现的,这些条件可以用线性等式或者不等式描述。
解决线性规划问题的关键是找出他的目标函数和约束方程,并将它们转化为标准形式。
简单的设计2个变量的线性规划问题可以直接运用图解法得到。
但是往往在现实生活中,线性规划问题涉及到的变量很多,很难用作图法实现,但是运用单纯形法记比较方便。
单纯形法的发展很成熟应用也很广泛,在运用单纯形法时,需要先将问题化为标准形式,求出基可行解,列出单纯形表,进行单纯形迭代,当所有的变量检验数不大于零,且基变量中不含人工变量,计算结束。
将所得的量的值代入目标函数,得出最优值。
遇到评价同类型的组织的工作绩效相对有效性的问题时,可以用数据包络进行分析,运用数据包络分析的的决策单元要有相同的投入和相投的产出。
对偶理论:其基本思想是每一个线性规划问题都涉及一个与其对偶的问题,在求一个解的时候,也同时给出另一问题的解。
对偶问题有:对称形式下的对偶问题和非对称形式下的对偶问题。
非对称形式下的对偶问题需要将原问题变形为标准形式,然后找出标标准形式的对偶问题。
动态规划算法的优化技巧

动态规划算法的优化技巧福州第三中学毛子青[关键词] 动态规划、时间复杂度、优化、状态[摘要]动态规划是信息学竞赛中一种常用的程序设计方法,本文着重讨论了运用动态规划思想解题时时间效率的优化。
全文分为四个部分,首先讨论了动态规划时间效率优化的可行性和必要性,接着给出了动态规划时间复杂度的决定因素,然后分别阐述了对各个决定因素的优化方法,最后总结全文。
[正文]一、引言动态规划是一种重要的程序设计方法,在信息学竞赛中具有广泛的应用。
使用动态规划方法解题,对于不少问题具有空间耗费大、时间效率高的特点,因此人们在研究动态规划解题时更多的注意空间复杂度的优化,运用各种技巧将空间需求控制在软硬件可以承受的范围之内。
但是,也有一部分问题在使用动态规划思想解题时,时间效率并不能满足要求,而且算法仍然存在优化的余地,这时,就需要考虑时间效率的优化。
本文讨论的是在确定使用动态规划思想解题的情况下,对原有的动态规划解法的优化,以求降低算法的时间复杂度,使其能够适用于更大的规模。
二、动态规划时间复杂度的分析使用动态规划方法解题,对于不少问题之所以具有较高的时间效率,关键在于它减少了“冗余”。
所谓“冗余”,就是指不必要的计算或重复计算部分,算法的冗余程度是决定算法效率的关键。
动态规划在将问题规模不断缩小的同时,记录已经求解过的子问题的解,充分利用求解结果,避免了反复求解同一子问题的现象,从而减少了冗余。
但是,动态规划求解问题时,仍然存在冗余。
它主要包括:求解无用的子问题,对结果无意义的引用等等。
下面给出动态规划时间复杂度的决定因素:时间复杂度=状态总数*每个状态转移的状态数*每次状态转移的时间[1]下文就将分别讨论对这三个因素的优化。
这里需要指出的是:这三者之间不是相互独立的,而是相互联系,矛盾而统一的。
有时,实现了某个因素的优化,另外两个因素也随之得到了优化;有时,实现某个因素的优化却要以增大另一因素为代价。
因此,这就要求我们在优化时,坚持“全局观”,实现三者的平衡。
动态规划原理

动态规划原理
动态规划是一种解决复杂问题的算法思想。
它通过将问题分解成较小的子问题,并通过寻找子问题的最优解来解决整体问题。
动态规划的核心思想是将整体问题拆分成多个重叠子问题,在解决子问题的过程中记录下每个子问题的解。
这样一来,当我们需要求解更大规模的子问题时,可以直接利用已经计算出的子问题解,避免重复计算,提高算法效率。
其中,动态规划的关键步骤包括定义状态、设计状态转移方程和确定边界条件。
首先,我们需要确定问题的状态。
状态可以理解为问题的属性,它描述了问题在不同阶段、不同状态下的特征。
在动态规划中,我们将问题的状态表示成一个或多个变量,用于描述问题的特征。
接着,我们需要设计状态转移方程。
状态转移方程描述了子问题之间的联系和转移规律。
它通过将问题的解与子问题的解联系起来,建立起子问题与整体问题的关系。
通过推导状态转移方程,我们可以由已知的子问题解计算出更大规模的问题解。
最后,我们需要确定边界条件。
边界条件表示问题的终止条件,它是最小规模子问题的解。
边界条件是问题求解的起点,也是递归求解过程的出口。
通过依次求解子问题,并利用已经计算过的子问题解,动态规
划可以高效地解决复杂问题,并得到全局最优解。
因此,它在解决优化问题、序列问题、最短路径问题等方面有着广泛的应用。
现代控制理论基础 第6章 线性系统的最优控制

7
方法的比较
总的来说,当控制量无约束时,‘采用“变分法” ;当控制量有 约束时,采用“极小值原理” 或“动态规划”;如果系统是线性的, 采用“线性二次型”方法最好,因为,一方面,二次型指标反映了大 量实际的工程性能指标的要求;另方面,理论上的分析及求解较简单、 方便、规范,而且还有标准的计算机程序可供使用;得到的控制器易 于通过状态反馈实现闭环最优控制,工程实现方便。在实际的工程控 制中,目前线性二次型最优控制己得到了广泛的成功应用。
J 值为极值 J (最大值或最小值),这种泛函求极值的方法,实际上 就是数学上的“变分”问题,须采用数学中的“变分法” 。
5
采用直接变分法求解最优控制率,难于甚至“无法解决容许控 制属于闭集”的最优控制问题,所以受到实际工程应用上的限制, 例如,每台电动机都有最大功率的限制;船舶或飞机的操纵舵面 也有最大偏转角的限制。况且采用直接变分法设计出的系统,其 抗参数变化的能力,即系统的鲁棒性也不强。因此,工程应用上 有较小的实用价值。
线性系统二次型的最化控制,因为其性能指标具有明确的物理 意义,在大量的工程实际中具有代表性,而且最优控制率的求解 较简单,并具有统一的解析表达式,构成的最优控制系统具有简 单的线性状态反馈的型式,易于工程实现,所以在国内外实际的 工程中目前己得到广泛应用。本章主要介绍其基本概念、基本原 理和设计方法。
下面只介绍线性二次型最优控制的基本概念、求解原理及设 计中的一些主要结论。
8
第三节 线性二次型最优控制
一、控制对象数学模型
线性系统的状态空间表达式
x(t) A(t)x(t) B(t)u(t)
y(t) C(t)x(t)
式中,
n x(t) 为 维状态向量;
(6-4)
第3章-动态规划算法

算法复杂度分析:
算法matrixChain的主要计算量取决于算法中对r, i和k的3重循环。循环体内的计算量为O(1),而3重 循环的总次数为O(n3)。因此算法的计算时间上界 为O(n3)。算法所占用的空间显然为O(n2)。
22
3.1.4 构造最优解 若将对应m[i][j]的断开位置k记为s[i][j],在计算出最 优值m[i][j]后,可递归地由s[i][j]构造出相应的最优 解。 s[i][j]中的数表明,计算矩阵链A[i:j]的最佳方式应在 矩阵Ak和Ak+1之间断开,即最优的加括号方式应为 (A[i:k])(A[k+1:j)。
21
m[2][5]
min
m[2][2] m[3][5] m[2][3] m[4][5]
p1 p2 p5 p1 p3 p5
0 2500 35 2625 1000
15 35 5
20 20
13000 7125
m[2][4] m[5][5] p1 p4 p5 4375 0 3510 20 11375
}
}
T(Apxq*Bqxr)=O(p*q*r)
10
A, B, C, D
A 5010 B 1040 C 4030 D 305
(A((BC)D)) (A(B(CD))) ((AB)(CD)) (((AB)C)D) ((A(BC))D)
计算量分别为:16000, 10500, 36000, 87500, 34500
矩阵的连乘积可以有许多不同的计算次序。这种 计算次序可以用加括号的方式来确定。若一个矩 阵连乘积的计算次序完全确定,也就是说该连乘 积已完全加括号,则可以依此次序反复调用2个 矩阵相乘的标准算法计算出矩阵连乘积。
运筹学第三版课后习题答案 (2)

运筹学第三版课后习题答案第一章:引论1.1 课后习题习题1a)运筹学是一门应用数学的学科,旨在解决实际问题中的决策和优化问题。
它包括数学模型的建立、问题求解方法的设计等方面。
b)运筹学可以应用于各个领域,如物流管理、生产计划、流程优化等。
它可以帮助组织提高效率、降低成本、优化资源分配等。
c)运筹学主要包括线性规划、整数规划、指派问题等方法。
习题2运筹学的应用可以帮助组织提高效率、降低成本、优化资源分配等。
它可以帮助制定最佳的生产计划,优化供应链管理,提高运输效率等。
运筹学方法的应用还可以帮助解决紧急情况下的应急调度问题,优化医疗资源分配等。
1.2 课后习题习题1运筹学方法可以应用于各个领域,如物流管理、生产计划、供应链管理、流程优化等。
在物流管理中,可以使用运筹学方法优化仓储和运输的布局,提高货物的运输效率。
在生产计划中,可以使用运筹学方法优化产品的生产数量和生产周期,降低生产成本。
在供应链管理中,可以使用运筹学方法优化订单配送和库存管理,提高供应链的效率。
在流程优化中,可以使用运筹学方法优化业务流程,提高整体效率。
习题2在物流管理中,可以使用运筹学方法优化车辆的调度和路线规划,以提高运输效率和降低成本。
在生产计划中,可以使用运筹学方法优化生产线的安排和产品的生产量,以降低生产成本和提高产能利用率。
在供应链管理中,可以使用运筹学方法优化供应链各个环节的协调和调度,以提高整体效率和减少库存成本。
在流程优化中,可以使用运筹学方法优化业务流程的排布和资源的分配,以提高流程效率和客户满意度。
第二章:线性规划基础2.1 课后习题习题1线性规划是一种数学优化方法,用于解决包含线性约束和线性目标函数的优化问题。
其一般形式为:max c^T*xs.t. Ax <= bx >= 0其中,c是目标函数的系数向量,x是决策变量向量,A是约束矩阵,b是约束向量。
习题2使用线性规划方法可以解决许多实际问题,如生产计划、供应链管理、资源分配等。
运筹学实验的心得体会范文(3篇)

运筹学实验的心得体会范文(3篇)运筹学实验的心得体会1中国古代著名的例子“田忌赛马”,通过巧妙的安排部署马匹的出场顺序,利用了现有马匹资源的最大效用,设计出了一个最优的方案,这就是对运筹学中博弈论的运用,那么运筹学与我们的生活息息相关。
自古以来,运筹学就无处不在。
小到菜市场买菜的大妈,大到做军事部署的国家元首,都会用到运筹学。
当我们为选择去哪里旅游而犹豫不决,比对了很久终于找到一条最优路线时;当我们考试之前想临时抱佛脚,用最短时间复习而考到尽量高的分数时无形之中,我们已经在运用运筹学不断的解决我们生活中的问题了。
运筹学是一应用数学和形式科学的跨领域研究,利用像是统计学、数学模型和算法等方法,去寻找复杂问题中的最佳或近似最佳的解答。
运筹学经常用于解决现实生活中的复杂问题,特别是改善或优化现有系统的效率。
研究运筹学的基础知识包括实分析、矩阵论、随机过程、离散数学和算法基础等。
而在应用方面,多与仓储、物流、算法等领域相关。
因此运筹学与应用数学、工业工程、计算机科学等专业密切相关。
现在普遍认为,运筹学是近代应用数学的一个分支,主要是将生产、管理等事件中出现的一些带有普遍性的运筹问题加以提炼,然后利用数学方法进行解决。
前者提供模型,后者提供理论和方法。
运筹学的思想在古代就已经产生了。
敌我双方交战,要克敌制胜就要在了解双方情况的基础上,做出最优的对付敌人的方法。
“运筹”一词,本指运用算筹,后引伸为谋略之意。
“运筹”最早出自于汉高祖刘邦对张良的评价:“运筹帷幄之中,决胜千里之外。
”但是作为一门数学学科,用纯数学的方法来解决最优方法的选择安排,却是晚多了。
二次大战时,英军首次邀请科学家参与军事行动研究(operations research,在英国又称operational research或OR/MS,management science),战后这些研究结果用于其他用途,这是现代“运筹学”的起源。
也可以说,运筹学是在二十世纪四十年代才开始兴起的一门分支。
866运筹学

866运筹学摘要:一、引言二、运筹学的基本概念1.定义2.发展历程三、运筹学的主要方法1.线性规划2.整数规划3.动态规划四、运筹学在各领域的应用1.生产调度2.供应链管理3.交通运输4.金融投资五、我国运筹学的研究现状与展望1.发展现状2.面临挑战3.未来发展趋势正文:一、引言运筹学作为一门研究如何有效地运用数学方法和技术进行优化决策的学科,广泛应用于多个领域。
本文将简要介绍运筹学的基本概念、主要方法以及在各个领域的应用,并探讨我国运筹学的研究现状与展望。
二、运筹学的基本概念运筹学是一门跨学科的综合性学科,起源于第二次世界大战期间美国的军事决策研究。
它主要研究如何在有限的资源条件下,对复杂问题进行科学、合理的分析与求解,以实现目标的最优化。
2.发展历程运筹学自20 世纪40 年代发展至今,已经形成了较为完善的理论体系。
它的研究方法和技术不仅包括数学、统计学、计算机科学等领域,还涉及经济学、工程学、管理学等多个学科。
三、运筹学的主要方法运筹学主要包括线性规划、整数规划、动态规划等方法。
1.线性规划线性规划是最基本的优化方法,主要研究线性目标函数和线性约束条件下的最优解。
它广泛应用于资源分配、生产调度、投资决策等领域。
2.整数规划整数规划是在线性规划的基础上,要求部分或全部变量取整数值。
它在运输、调度、选址等问题中具有重要应用。
3.动态规划动态规划是一种分阶段决策的方法,适用于具有重复子问题、最优子结构、无后效性的问题。
它在项目管理、库存控制等方面具有重要意义。
四、运筹学在各领域的应用运筹学在生产调度、供应链管理、交通运输、金融投资等多个领域具有广泛应用。
1.生产调度生产调度是运筹学的重要应用之一,通过对生产过程进行优化,提高生产效率、降低成本。
2.供应链管理运筹学在供应链管理中的应用主要包括需求预测、库存管理、物流网络设计等,以实现供应链的优化。
3.交通运输运筹学在交通运输领域主要研究运输路线规划、车辆调度等问题,提高运输效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2 动态规划 (Dynamic Programming)一 基本思想和使用条件例1 求从始点到终点的最短路径解:判断序列)}({min )()}({min )()}({min )(){min )(j j i ji k k j kj l l k lk m l m l A F A S S F B F B A A F C F C B B F T C C F +=+=+==观察:设(S 2, A 1, B 2, C 2, T 3)是一条最短路径,则它的任何子路径都是相对于子路径的始点和终点的最短路径。
为找到一条最短路径只需进行多步判断,由Tj 开始经多步判断求得最短路径长为10,路径如下:(S 3, A 3, B 4, C 4, T 4) (S 5, A 4, B 4, C 4, T 4)求解的过程是一系列判断的过程。
在每步判断时列出所有可能的局部解,然后根据某些条件舍弃那些不能得到最优解的局部解, 这样的求解方法就是动态规划的算法。
使用动态规划算法的条件--优化原则:一个最优决策序列的任何子序列本身一定是相对于子序列的初始和结束状态的最优的决策序列。
例2 求总长模10的最小路径。
最优解:所有的下弧,为(20) mod 10 = 0.动态规划的解:下、上、上、上,总长为(5+2+2+2) mod 10 =1二、动态规划算法的设计步骤例3 矩阵乘法设A 1, A 2, …, A n 为矩阵序列,A i 为P i-1×P i 阶矩阵,i = 1, 2, …,n. 向量P = <P 0, P 1, …, P n >决定乘法次数。
例如A 1: 10 ×100, A 2: 100 × 5, A 3: 5 × 50, (A 1 A 2)A 3: 10 × 100 × 5 + 10 ×5 × 50 = 7500A 1 (A 2 A 3): 10 × 100 × 50 + 100 × 5 × 50 = 75000确定加括号的次序使得总的乘法次数最少。
一般算法:加括号的方法有+n n n 211种, Catalan 数,指数级别。
动态规划方法:设输入为P=< P 0, P 1, …, P n > , A i..j 表示乘积A i A i+1…A j 的结果,其最后一次相乘是 A i..j = A i..k A k+1..j , m[i,j] 表示得到A i..j 的最少的相乘次数。
递推方程<+++==−<≤j i P P P j k m k i m ji j i m j k i jk i }],1[],[{min 0],[1为了确定加括号的次序,设计表S[i,j],记录求得最优时最后一次运算的位置。
算法1 递归算法RecurMatrixChain(P,i,j) 1. m[i,j]←∞; 2. S[i,j]←i; 3. for k ←i to j-1 do4. q ← RecurMatrixChain(P,i,k)+RecurMatrixChain(P,k+1,j)+p i-1p k p j 5. if q <m[i,j] 6. then m[i,j]←q; 7. S[i,j]←k; 8. return m[i,j].复杂性:∑∑∑∑−=−=−=−=+=−++−+≥>+−++=≥11111111)(2)()()1(1)(1)1)()((11)1()(n k n k n k n k k T n k n T k T n n T n k n T k T n O n T数学归纳法证明 T(n)≥2n-1,复杂性太高,原因在于子问题重复计算。
.算法2 非递归算法MatrixChain(P,n)1.令所有的m[i,j]初值为0; 2.for r ←2 to n do 3. for i ←1 to n-r+1 do 4. j ←i+r-1;5. m[i,j]=m[i+1,j] + p i-1*p i *p j 6. s[i,j]=i; 7. for k ←i+1 to j-1 do 8. t ←m[i,k]+m[k+1,j]+ p i-1*p k *p j 9. if t<m[i,j] 10. then m[i,j]←t; 11. s[i,j] ←k;复杂性:行2,3,7循环进行都是O(n),循环内为O(1),W(n)=O(n 3) 递归动态规划算法的子问题被多次重复计算,非递归动态规划算法每个子问题只计算一次。
动态规划算法设计步骤:将问题表示成多步判断。
要求整个判断序列就对应问题的最优解;每步判断对应于一个子问题,子问题的类型与原问题一样; 确定一个优化函数,以优化函数的极大(或极小)作为判断的依据 确定是否满足优化原则-----动态规划算法的必要条件 确定子问题的重叠性列出关于优化函数的递推方程(或不等式)和边界条件 自底向上计算子问题的优化函数值中间结果存储在表格中用于子问题解的查找----备忘录方法 通过优化函数的值和标记函数s[i,j]求解问题的解三、实例例4 投资问题m 元钱,n 项投资,f i (x):将x 元投入第i 项项目的效益。
目标函数 max {f 1(x 1) + f 2(x 2) + … + f n (x n ) } 约束条件 x 1 + x 2 + … + x n = m x i ∈ N 递推方程和边界条件)()()}()({max )(1110x f x F x x F x f x F k k k k xx k k =−+=−≤≤实例:5元钱,4个项目,效益函数如表1所示。
表1x f 1(x) F 2(x) f 3(x) f 4(x) 0 0 0 0 0 1 11 0 2 20 2 12 5 10 213 13 10 30 224 14 15 32 23 5 15 20 40 24计算结果给在表2。
解:x 1 =1, x 2 =0, x 3=3, x 4 =1 F 4(5) = 61算法的复杂性分析表中有m 行n 列, 共计mn 项, 对第F k (x) 项, 2 ≤ k ≤ n, 1 ≤ x ≤ m, 需要x+1次加法, x 次比较∑∑∑∑====+−=+−=+nk mx n k mx m m n x m m n x 2121)1()1(21)3()1(21)1(比较次数加法次数W(n) = O(nm 2)例5 背包问题 (Knapsack Problem)一个旅行者准备随身携带一个背包. 可以放入背包的物品有n 种, 每种物品的重量和价值分别为w j , v j . 如果背包的最大重量限制是b, 怎样选择放入背包的物品以使得背包的价值最大?+==∈≤∑∑Z x b xw x vj nj jjnj jj 11,max约束条件目标函数使得由线性条件所约束的线性函数取最大或最小的问题叫作线性规划问题。
若要求上述的x j 都是非负整数,则称为整数规划问题.背包问题是整数规划问题. 显然背包问题满足优化原则.设F k (y)表示只允许装前k 种物品,背包总重不超过y 时背包的最大价值.即 递推方程 F k (y) = max { F k -1 (y), F k (y -w k ) + v k }边界条件 F 0 (y) = 0, 0 ≤ y ≤ b F k (0)= 0, 0 ≤ k ≤ n F 1 (y) = y / w 1 ·v 1 F k (y) = -∞ 若y < 0. 例如v 1 = 1, v 2 = 3, v 3 = 5, v 4 = 9, w 1= 2, w 2 = 3, w 3 = 4, w 4 = 7, b = 10则 F k (y) 的计算表如表3所示最大价值F 4 (10)=12, 为确定x j 设计另一张表i (k, y)标记在计算F k (y)时用到的物品的最大标号.+−≤+−>−=−−kk k k k k k k V W y F y F kV W y F y F y k i y k i )()()()(),1(),(11边界条件 i (1, y) = 0 F 1 (y) = 0i (1, y) = 1 F 1 (y) ≠ 0在上例中的表i (k, y)如表4所示。
在上例中, 求得 i (4, 10) = 4 ⇒ x 4 ≥ 1i (4, 10-w 4) = i (4, 3) = 2 ⇒ x 2 ≥ 1,x 4=1, x 3=0 i (4, 3-w 2) = i (4, 0) = 0 ⇒ x 2 = 1,x 1=0解得 x 1 = 0, x 2 = 1 , x 3 = 0, x 4 = 1.例6 最长公共子序列LCS 设序列X,Z,>=<>=<k m z z z Z x x x X ,...,,,...,,2121若存在X 的元素构成的严格递增序列><k i i i x x x ,...,,21使得k j x z j i j ,...,2,1,==,则称Z 是X 的子序列。
给定序列X ,Y ,若Z 是X 和Y 的子序列,则称Z 是X 和Y 的公共子序列。
问题:给定序列X= <x 1, x 2, …, x m >, Y=<y 1, y 2, …, y n > 求X 和Y 的最长公共子序列。
一般算法:枚举所有的X 的子序列,然后检查它们是否为Y 的子序列,以求得最长的子序列。
X 的序列对应于X 的子集,有2m 个。
指数时间。
动态规划算法定理:设X = <x 1, x 2, …, x m >, Y=<y 1, y 2, …, y n >, Z= <z 1, z 2, …, z k > ,Z 为X 和Y 的LCS ,那么(1) 若x m = y n , 则z k = x m = y n , 且Z k-1是X m-1与Y n-1的LCS ; (2) 若x m ≠ y n , 则z k ≠ x m ⇒ Z 是X m-1与Y 的LCS ; (3) 若x m ≠ y n , 则z k ≠ y n ⇒ Z 是X 与Y n-1的LCS. 证明:(1)假若z k ≠x m , 则<z 1, z 2, …, z k ,x m >是X,Y 的k+1长的LCS, 与Z 的最长性矛盾。
因此z k =x m =y n . Z k-1是X m-1和Y n-1的长为k-1的公共子序列。
若X m-1和Y n-1的最长公共子序列W 的长度大于k-1,则在W 后面加上x m ,得到长度大于k 的X 与Y 的最长公共子序列,与已知矛盾。