博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态规划
阅读量:5050 次
发布时间:2019-06-12

本文共 545 字,大约阅读时间需要 1 分钟。

一、步骤

      1、刻画最优解的结构特征;

      2、递归的定义最优解的值;

      3、计算最优解的值,通常采用自底向上的方法;

      4、利用计算出的信息构造一个最优解。

二、例子(最长公共子序列问题)

问题描述:

      给定两个字符串A[m]、B[n],求它们的最长公共子序列C。

1、刻画最优解的结构特征

    如果temp=A[m]=B[n],C=temp+max_common_len(A[1,...,m-1],B[1,...,n-1]);

    如果A[m]!=B[n],则C=maxLen(max_common_len(A[1,...,m],B[1,...,n-1]),max_common_len(A[1,...,m-1],B[1,...n]))。

2、递归的定义最优解的值

    设C[i,j]表示两个串A[i]与B[j]的最长公共子序列的长度,则

     if i=j=0, C[i,j]=0;

     if i,j>0 and A[i]==B[j], C[i,j]=1+C[i-1,j-1];

     if i,j>0 and A[i]!=B[j], C[i,j]=max(C[i-1,j],C[i,j-1]).

3、计算最优解

   LCS

 

转载于:https://www.cnblogs.com/luori719/p/5237950.html

你可能感兴趣的文章
iOS 日常工作之常用宏定义大全
查看>>
PHP的SQL注入技术实现以及预防措施
查看>>
MVC Razor
查看>>
软件目录结构规范
查看>>
Windbg调试Sql Server 进程
查看>>
linux调度器系列
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
SVN服务器搭建和使用(三)(转载)
查看>>
Android 自定义View (三) 圆环交替 等待效果
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
Swift 中的指针使用
查看>>
Swift - 使用闭包筛选过滤数据元素
查看>>