- 16
- 0
- 约4.56千字
- 约 12页
- 2017-10-06 发布于重庆
- 举报
计算机算法实验2 动态规划算法 报告
《算法设计与分析》姓名:班级:学号:课题:动态规划算法指导教师:2013/12/31说明:代码在后面1实验目的与要求1、熟悉最长公共子序列问题的算法2、掌握动态规划算法求解问题的一般特征和步骤3、熟悉最长最大字段和问题的算法4、使用动态规划法编程,求解0/1背包问题2实验内容2.1基本题一:最长公共子序列问题2.1.1问题概述若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序列。2.1.2实验截图可以修改序列1和2,这里预设为ABCBDAB和BDCABA:如果修改预设为ABCBDAB和efghj,则没有公共子序列:2.2基本题二:最大子段和问题2.2.1问题概述若给定n个整数组成的序列a1,a2,a3,……an,求该序列形如ai+ai+1+……+an的最大值。2.2.2实验截图选择书本列子,输入序列为-2,11,-4,13,-5,-2:全输入正数:全输入负数,最大为零:2.3提高题一:用动态规划法求解0/1背包问题2.3.1问题概述给定n种物品和一个背包,物品i的重量是Wi,其价值为Vi,问如何选择装入背包的物品,使得装入背包的物品的总价值最大?2.3.2实验截图采用书本例子,输入物品重量价值等信息:换另一组数据测试:3实验心得本次实验的主要内容是动态规划,涉及的题目为最长公共子序列、最大子段和及0/1背包问题。通过这三个实验题,我对动态规划的理解又加深了一步。动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不像搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。虽然这几道题解决了,但我知道自己的理解还很有限,编程还不能脱离书本。而且动态规划算法是算法里的很重要的一部分内容,很多问题都可以通过动态规划来解决。所以以后还要继续深入理解,熟练运用。1基本题一:最长公共子序列问题#include iostream#include string.husing namespace std;#define MAXLEN 100void LCSLength(char *x, char *y, int m, int n, int c[][MAXLEN], int b[][MAXLEN]){int i, j;for (i = 0; i = m; i++)c[i][0] = 0;for (j = 1; j = n; j++)c[0][j] = 0;for (i = 1; i = m; i++){for (j = 1; j = n; j++){if (x[i - 1] == y[j - 1]){c[i][j] = c[i - 1][j - 1] + 1;b[i][j] = 0;}else if (c[i - 1][j] = c[i][j - 1]){c[i][j] = c[i - 1][j];b[i][j] = 1;}else{c[i][j] = c[i][j - 1];b[i][j] = -1;}}}}void PrintLCS(int b[][MAXLEN], char *x, int i, int j){if (i == 0 || j == 0)return;if (b[i][j] == 0){PrintLCS(b, x, i - 1, j - 1);printf(%c , x[i - 1]);}else if (b[i][j] == 1)PrintLCS(b, x, i - 1, j);elsePrintLCS(b, x, i, j - 1);}int main(int argc, char **argv){char x[MAXLEN] = { ABCBDAB };char y[MAXLEN] = { BDCABA };int b[MAXLEN][MAXLEN];int c[MAXLEN][MAXLEN];int m, n;cout 预设为ABCBDAB和BDCABA endl;m = strlen(x);n = strlen(y);cout 最
您可能关注的文档
- 药理疾病名词解释.docx
- 药用高分子 论文.docx
- 荷载与设计复习.doc
- 莫干山自然地理实习报告.doc
- 菜系 教案.doc
- 萄酒酿造新技术概述.doc
- 营业员基本礼貌用语.doc
- 荷载导算+内力.doc
- 营养员培训材料.doc
- 莱动机械制造实习报告.docx
- 初中九年级英语Unit 13环境保护主题听说整合教学设计.docx
- 85分式方程及其解法课件人教版数学八年级上册.pptx
- 基于核心素养的博物馆主题说明文写作教学设计与实施——以九年级英语为例.docx
- 53一次函数的意义第课时课件浙教版八年级数学上册.pptx
- 大单元视角下“人民民主政权的巩固”与历史关键能力进阶教学设计——以初中历史中考复习课为例.docx
- 五年级数学下册典型例题解析人教版期末重点攻克.pptx
- 小学四年级信息技术《智启信息时代:查找网上信息的基石》教学设计及反思.docx
- 大疆域·大人口·大战略:中国国家空间认知的初步建构.docx
- 人教版(一年级起点)小学英语四年级上册Revision 1 Lesson 2教学设计.docx
- 大单元结构化复习:旧民主主义革命时期(18401919)的内忧外患与救亡图存.docx
最近下载
- 2024—2025学年江苏省苏州市工业园区星港初三零模数学试卷.doc VIP
- TG-NET TG-NET 全万兆核心交换机 S6200-16TF 说明书用户手册.pdf
- 天津执业药师继续教育《中药就在您身边(一)》习题答案.docx VIP
- 在公司2026年度党风廉政建设和反腐败工作会上的讲话.docx VIP
- 伟达olt e3320t cli命行说明用户手册命令行操作分册.pdf VIP
- KYT危险预知训练.ppt VIP
- Barsetto咖啡机BAE-01C说明书用户手册.pdf
- 鲁科版高中数学人教版目录.pdf VIP
- 天津执业药师继续教育《儿科常用药物概要》习题答案.docx VIP
- 微机综合保护装置 说明书 3详解.pdf VIP
原创力文档

文档评论(0)