当前位置: 首页 > article >正文

算法简介:动态规划

动态规划

  • 1. 动态规划
  • 2. 案例
    • 2.1 旅游行程最优化
    • 2.2 最长公共子串

1. 动态规划

背包问题:背包可以容纳的重量是4磅,吉他为1磅,价值1500元;音响为4磅,价值3000元;笔记本电脑为3磅,价值为2000元。如何在背包中放入价值最大的物品?

背包问题中如果采用穷举法,那么时间复杂度为 O ( 2 n ) O(2^n) O(2n)。因此引出动态规划的方法。

动态规划:先解决子问题,在逐步解决大问题。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用的公式为:
在这里插入图片描述

  • 再增加一个商品手机,重量为1磅,价值为2000元。此时计算只需要增加一行,为不需要将之前的计算重新开始。
    在这里插入图片描述
  • 不断往下计算时,只需要考虑上一行的数值与当前行的数值比较,采用最大数值来填充。
  • 如果放入量化单位更小的物体,则需要将考虑的粒度更细,因此必须重新调整表格。

2. 案例

2.1 旅游行程最优化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
动态规划使用范围:但仅当每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用。当涉及两个以上的背包时,只需要调整细粒度来进行填装即可。并且最优解可能导致背包 没有装满。

2.2 最长公共子串

问题描述:寻找两个字符中相同的字母最多的数量。
在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/a/380603.html

相关文章:

  • 基于大语言模型(LLM)自主Agent 智能体综述
  • DCN网络进行新冠肺炎影像分类
  • C++中的继承——第二篇
  • yolo系列各种环境配置运行
  • Java 中 HashMap集合使用
  • 【大数据】ClickHouse常见的表引擎及建表语法
  • (十一)JavaWeb后端开发——分层解耦
  • 基于SSD模型的行人跌倒、摔倒检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
  • 【Redis】一种常见的Redis分布式锁原理简述
  • 如何无缝更换WordPress主题:关键步骤详解
  • 微服务透传日志traceId
  • 【设计模式系列】原型模式(十一)
  • HarmonyOS NEXT应用元服务开发组合场景
  • 运维工具之docker入门
  • Win10搭建SFTP服务器
  • 系统缺失msvcp140_1.dll?解决msvcp140_1.dll缺失问题,
  • AiPPT - 全智能 AI 一键生成 PPT
  • 鸿蒙ArkTS中的面向对象编程
  • Scala的包及其导入
  • 三十一、Python基础语法(多态)
  • 【Linux】网络相关的命令
  • 猫用宠物空气净化器哪个牌子好?求噪音小的宠物空气净化器推荐!
  • K8s核心组件全解析
  • Rust移动开发:Rust在Android端集成使用介绍
  • MySQL 和 PostgreSQL 的对比概述
  • 设计模式之模块方法