算法:1、动态规划算法DP(Dynamic Programming)

算法介绍

  • 动态规划(Dynamic Programming,DP)‌,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。它的关键思想是对于最终结果依赖前序步骤的问题,将结果定义为状态值dp,然后推导出后续步骤由前序步骤表达的状态转移方程,进而逐步计算求得最终结果。

经典问题:打家劫舍

  • LEETCODE第198题,打家劫舍,问题如下:
    在这里插入图片描述

    在这里插入图片描述

  • 该问题与普通问题不一样的地方在于,偷了房间1就会导致不能偷房间2,而房间2中金额可能更多,导致不是最优结果。也有可能房间1金额不多但是房间3金额多,因此偷了房间2就不能偷房间3导致也不是最优结果。

  • 这样思考的话,问题就会比较混乱,无法解。

  • 因此,我们使用动态规划的思想,思考问题如下:
    在这里插入图片描述

算法总结

  • 通过以上例子,我们可以发现动态规划的核心在于建立用于评判好坏的dp指标和其随自变量的状态转移方程。
  • 算法的基本原理如下:
    • 最优子结构:一个问题的最优解包含了其子问题的最优解。
    • 重叠子问题:在解决问题的过程中,子问题的解会被重复计算多次。
    • 状态转移方程:描述了状态之间的关系,是动态规划的核心,用于从子问题的解推导出原问题的解。
    • 边界条件:通常是最小子问题的解,是递推的基础。
  • 算法的具体步骤为:
    • 定义状态:确定动态规划的状态,即问题的变量表示。
    • 状态转移:建立状态转移方程,描述如何从一个状态转移到另一个状态。
    • 初始化:确定初始条件,通常是基础情况的解。
    • 计算顺序:确定计算状态的顺序,通常是从底向上或从左到右。
    • 求解:根据状态转移方程和初始条件,计算出所有状态的值,最终得到问题的解。

算法的应用:

各种优化问题:

  • 最短路径问题:如Dijkstra算法和Floyd-Warshall算法。
  • 背包问题:给定一组物品,每个物品有重量和价值,确定在不超过背包容量的情况下能够装入的最大价值。
  • 编辑距离:计算将一个字符串转换为另一个字符串所需的最少操作次数(插入、删除、替换)。
  • 旅行商问题(TSP)‌:寻找访问每个城市一次并返回原点的最短可能路线。

决策问题:

在决策过程中,动态规划可以帮助做出最优决策,如:

  • 资源分配:在有限的资源下,如何分配资源以获得最大收益。
  • 库存控制:决定何时以及多少库存以最小化成本。
  • 序列决策:在多阶段决策过程中,每一步都以前一步的结果为基础,如马尔可夫决策过程(MDP)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1559413.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习常见问题

1.YOLOV5和YOLOV8的区别 YOLOv5 和 YOLOv8 是两个版本的 YOLO(You Only Look Once)目标检测算法,它们在网络架构、性能优化、功能扩展等方面有显著的区别。YOLOv5 是 YOLO 系列的重要改进版本,而 YOLOv8 是最新的一次重大升级&am…

SQL性能优化指南:如何优化MySQL多表join场景

目录 多表join问题SQL 这里解释下 Using join buffer (Block Nested Loop): 对性能产生的影响: 三种join算法介绍 join操作主要使用以下几种算法: (1)Nested Loop Join (2)Block Nested …

搭建企业域名服务器案例

任务要求: 某企业要建立一台应用于以下情况的主域名服务器 拥有一个C类网段地址,为202.101.55.0。企业域名注册为company.com。域名服务器的IP地址定位为202.101.55.55,主机名为dns.company.com。企业网通过路由器与Internet连接。要解析的…

第九届清洁能源与发电技术国际学术会议(CEPGT 2024)

第九届清洁能源与发电技术国际学术会议(CEPGT 2024) 2024 9th International Conference on Clean Energy and Power Generation Technology (CEPGT 2024) 【早投稿早录用,享受早鸟优惠】 第九届清洁能源与发电技术国际学术会议&#xff0…

记录一个Ajax发送JSON数据的坑,后端RequestBody接收参数小细节?JSON对象和JSON字符串的区别?

上半部分主要介绍我实际出现的问题,最终下面会有总结。 起因:我想发送post请求的data,但是在浏览器中竟然被搞成了地址栏编码 如图前端发送的ajax请求数据 如图发送的请求体: 很明显是keyvalue这种形式,根本就不是…

开源的键鼠共享工具「GitHub 热点速览」

十一长假回来,我的手放在落灰的键盘上都有些陌生了,红轴竟敲出了青轴般的响声,仿佛在诉说对假期结束的不甘。 假期回归的首更,让我们看看又有什么好玩的开源项目冲上了开源热榜。一套键盘和鼠标控制多台电脑的工具 deskflow&#…

supOS加速数实融合发展

作为工业操作系统领军企业,蓝卓受邀参加2024金砖国家新工业革命伙伴关系论坛,深度参与多个环节。在9月11日召开的金砖国家新工业革命伙伴关系论坛产融合作专题研讨上,蓝卓总经理谭彰分享了supOS在产融协同的最新实践,以及supOS进入…

云上考场小程序+ssm论文源码调试讲解

2 关键技术简介 2.1 微信小程序 微信小程序,简称小程序,英文名Mini Program,是一种全新的连接用户与服务的方式,可以快速访问、快速传播,并具有良好的使用体验。 小程序的主要开发语言是JavaScript,它与…

集师知识付费小程序:打造培训机构在线教育的金字招牌 集师知识付费系统 集师知识付费小程序 集师知识服务系统 集师线上培训系统 集师线上卖课小程序

在数字化浪潮的推动下,在线教育已成为教育领域的热门话题。而在众多在线教育平台中,集师知识付费小程序凭借其独特的定位和创新的模式,成功为培训机构打造了一张闪亮的在线教育金字招牌。 集师知识付费小程序,是一个集课程展示、…

数据分析Power BI设置万为单位的数据

玩过Power BI的同学都知道,power BI在度量值设置单位里,唯独没有万这个单位,但是我们可以自定义,操作过程如下: 1.用DAX新建单位表 单位 SELECTCOLUMNS( { ( "元", 1), ("万",10000), ("千…

面试题:Redis(三)

1. 面试题 背景 问题,上面业务逻辑你用java代码如何写? 2. 缓存双写一致性谈谈你的理解? 3. 双检加锁策略 多个线程同时去查询数据库的这条数据,那么我们可以在第一个查询数据的请求上使用一个 互斥锁来锁住它。 其他的线程走到这…

进程守护化

文章目录 概念引入ps细节展示什么是进程组什么是会话细节演示有关指令的处理 用户级任务和进程组的关系关系不同 什么是守护进程如何创建守护进程 代码说明如何关闭守护进程 问题 概念引入 我们在之前的章节中已将看过进程相关的概念, 本篇介绍守护进程 进程还有进程组, 作业,…

锐龙7 7800X3D与i7-14700K到底怎么选!其实很简单

从2022年的锐龙7 5800X3D到后来的锐龙7 7800X3D,笔者使用X3D处理器已有2年多的时间。站在自己的立场,我是非常希望游戏老鸟购买这类处理器的,并且也推荐了不少。 这里说的是老鸟,也就是比较懂电脑的玩家。 但是对于新手玩家而言&a…

Kali Linux 下载与安装手册

目录 Kali 是什么? 通过Kali官方网站下载 Kali 是什么? Kali Linux,前称BackTrack,是一个基于Debian的Linux发行版,专为数字取证和渗透测试而设计。它由Offensive Security Ltd.开发和维护,旨在为安全专…

HarmonyOS NEXT应用开发实战(二、封装比UniApp和小程序更简单好用的网络库)

网络访问接口,使用频次最高。之前习惯了uniapp下的网络接口风格,使用起来贼简单方便。转战到鸿蒙上后,原始网络接口写着真累啊!目标让鸿蒙上网络接口使用,简单程度比肩uniapp,比Axios更轻量级。源码量也不多…

【Parsec】一款安全高效的远程桌面软件

Parsec 是一款远程桌面软件,它允许用户通过P2P(点对点)技术远程访问和控制另一台计算机。以下是Parsec的一些主要作用、安全私密性特点以及优缺点: 作用: 远程游戏:用户可以远程访问高性能PC进行游戏&am…

记一次pyc逆向

.py文件   源代码文件。   这是开发者编写的 Python 源代码文件,包含了可执行的 Python 代码。 .pyc文件   字节码文件。   Python 源文件(.py)在执行时会被编译为字节码,并存储在 __pycache__ 目录下,文件名通…

Halcon形态学

形态学图像处理(简称形态学)是指一系列处理图像形状特征的图像处理技术。 形态学的基本思想是利用一种特殊的结构元来测量或提取输入图像中相应的形状或特征,以便进一步进行图像分析和目标识别。本章节依次对腐蚀,膨胀&#xff0…

Nacos作为注册中心和配置中心

下载安装Nacos 下载地址&#xff1a;Nacos 下载后将这个.zip文件解压 windows系统双击运行startup.cmd 注意事项 一些较新的版本可能会启动时闪退&#xff0c;解决方法为记事本编辑startuo.cmd文件 修改set MODE "standalone" Nacos注册中心 引入依赖 <dep…

动态规划算法专题(六):回文串问题

目录 1、回文子串&#xff08;"引子题"&#xff09; 1.1 算法原理 1.2 算法代码 2、最长回文子串 2.1 算法原理 2.2 算法代码 3、分割回文串 IV&#xff08;hard&#xff09; 3.1 算法原理 3.2 算法代码 4、分割字符串 II&#xff08;hard&#xff09; 4…