摘要: [问题]一个给定序列的子序列是指在该序列中删除若干元素后所得的序列,但删除过程中不能打乱元素的顺序。例如序列{B,C,A,B}是序列X={A,B,C,B,D,A,B}与序列Y={B,D,C,A,B,A}的一个最长公共子序列。给定序列X={x1,x2,……,xm}与序列Y={y1,y2,……,yn},求其最长公共子序列的长度 [解析]设序列X={x1,x2,……,xm}与序列Y={y1,y2,……,yn}的最长公共子序列为序列Z={z1,z2,……,zk},则有如下结论(均可由反证法证明) (1)若xm=yn,则zk=xm=yn,且序列Zk-1是序列Xm-1和序列Yn-1的最长公共子... 阅读全文
posted @ 2013-12-17 11:13 姚来飞 阅读(571) 评论(0) 推荐(0) 编辑
摘要: [问题]给定一个包含n个矩阵的链乘式,通过对矩阵加括号来变换矩阵相乘的次序。问应当怎样加括号才能使求解过程中乘法运算的总次数最少?最少的总次数是多少? [解析]假设矩阵链乘式A1A2A3A4A5的最优解为((A1)(A2A3))(A4A5) ,则(A1)(A2A3)必为链乘式A1A2A3的最优解(由反证法易得)。由此可知,该问题具有最优子结构性质。递推式如下; 设链乘式AiAi+1Ai+2……Aj中矩阵An的列数为Columns[n],其划分的形式为(Ai……Ak)(Ak+1……Aj),则相应的乘法运算的总次数为,对左括号进行计算求得矩阵ALeft的过程中的最少总次数f(i)(k),加... 阅读全文
posted @ 2013-12-17 10:25 姚来飞 阅读(340) 评论(0) 推荐(0) 编辑