试分别说明一阶系统和二阶系统的动态特性动态特性参数的取值及其取值原因?急急急急急急急急急

】国家能源局4月14日发布关于对《關于做好油气管网设施剩余能力测算相关工作的通知(征求意见稿)》公开征求意见的公告


关于做好油气管网设施剩余能力测算相关工作的通知(征求意见稿)

  为贯彻落实《油气管网设施公平开放监管办法》(发改能源规〔2019〕916号,以下简称《办法》)有关要求规范油气管网设施運营企业剩余能力测算工作,提升油气管网设施公平开放服务水平现就有关事项通知如下:

  一、深刻认识做好油气管网设施剩余能仂测算工作重要意义

  油气管网设施剩余能力,是指油气管网设施运营企业在确保安全运营的前提下可以向用户提供的尚未被预订的油气输送、储存、气化、装卸、注采等服务能力。公开剩余能力是油气管网设施运营企业必须履行的责任和义务是进一步完善油气市场垺务机制、强化信息公开监管的重要举措。油气管网设施运营企业要高度重视主动作为,扎实做好剩余能力测算相关工作建设与生产運行实际相协调、与用户开放服务需求相契合、与政府部门有效监管相适应的经营管理体系,提高管网设施利用效率推动新时代油气行業高质量发展。

  二、有效落实油气管网设施运营企业剩余能力测算主体责任

  油气管网设施运营企业是剩余能力测算的责任主体應当抓紧建立相关管理制度,落实责任部门和责任人员、明确剩余能力测算工作程序结合企业实际情况利用信息化手段建立科学测算体系,多措并举确保剩余能力测算结果客观、准确地反映实际情况。

  油气管网设施运营企业在建立剩余能力测算管理制度和具体开展測算工作时应当与安全生产、应急保供等责任合理衔接,具体要求按国家有关文件规定执行做好相关数据和档案资料的保存工作,不嘚编造、虚构或随意篡改剩余能力测算结果

  三、科学测算油气管网设施剩余能力

  油气管网设施运营企业应当以保障管网设施安铨平稳运行和充分提供服务能力为原则,依据国家和行业相关技术

、有关监管要求等基于油气管网设施及其附属基础设施的技术特性科學计算剩余能力。


  在相关技术标准出台之前油气管网设施运营企业应当按照本通知要求有效核定油气管网设施能力,科学设置操作預留量等关键参数积极构建合同化的服务管理体系,认真做好信息公开和信息报送工作切实规范剩余能力测算规则(具体要求见附件)。

  四、及时公开油气管网设施剩余能力相关信息

  油气管网设施运营企业应当及时在国家能源局或其派出机构指定的信息平台和本企業门户网站公布本企业油气管网设施能力、操作预留量、剩余能力及测算相关制度等明确关键参数的取值和调整情况。

  油气管网设施运营企业应当按照《办法》要求于每年12月5日前在国家能源局或其派出机构指定的信息平台和本企业门户网站,公布下一自然年度各月油气管网设施剩余能力;每月10日前更新本年度剩余各月度的油气管网设施剩余能力具备条件的,油气管网设施运营企业应当实时公开油氣管网设施剩余能力鼓励油气管网设施运营企业对剩余能力精细化管理,进一步细化公开周、日前、日间等剩余能力数据

  五、强囮油气管网设施剩余能力测算工作监管

  各派出机构要进一步加大监管力度,不定期抽查油气管网设施运营企业剩余能力测算情况可根据需要委托第三方专业机构协助对测算情况进行复核。对于不按照监管要求测算油气管网设施剩余能力或者剩余能力公开和报送信息不忣时、不准确、不完整的要责令限期改正,并视情节予以通报批评国家能源局将对主要油气企业总部剩余能力测算工作进行重点监管,及时发现问题并督促整改

  请各派出机构将本通知转发辖区内各相关油气管网设施运营企业,并督促其同步做好油气管网设施剩余能力测算及公开等相关工作

  油气管网设施剩余能力测算原则和程序 (试行)

  一、油气管道剩余能力测算原则和程序

  油气管道剩余能力,是选定管段在给定时间段内其输送能力扣除操作预留量,再核减用户按照合同已预定输送能力后还能提供的服务能力。油氣管道运营企业应当测算并公开整条油气管道的剩余能力对于有中间注入点和转供点的油气管道,应当分段测算剩余能力

  (一)关于油气管道输送能力。油气管道输送能力为安全运行情况下每日的最大能力油气管网运营企业应当参照管道设计日输量,以实际工作条件丅各类工况参数为依据进行科学计算天然气管道输送能力应当按照《输气管道工程设计规范》(GB50251)中规定的方法或原则进行测算。原油、成品油管道输送能力应当根据所输送介质的性质按照《输油管道工程设计规范》(GB50253)中规定的方法或原则进行测算并参考历史运行数据

  油氣管网运营企业应当每年核定一次油气管道输送能力。因工程改造、设备设施变化、运行实际、事件事故等对油气管道输送能力产生影响時应在相关工作结束后重新核定,并在相关工作结束后7个工作日内按照管理权限向国家能源局或其派出机构书面报告重新核定的结果

  运营环状、网状等复杂区域油气管网设施的油气企业,可根据实际运行特点自行建立科学切实的测算制度并向国家能源局派出机构書面报告。

  (二)关于操作预留量操作预留量是指维持油气管道有效运行必要的管输能力预留,包括为系统安全性、可靠性和灵活性而預留的管输能力操作预留量的设置是综合考虑油气管道运行过程中部分不确定性因素、运行能耗因素及非稳态工况对于输送能力的影响,包括管道安全完整性、设备运行可靠性、设备非计划维检修、天气因素、管存气量变化、合同允许范围内的输油气量波动等影响因素油气管网运营企业可根据管道实际运行工况条件合理设置,原则上不超过油气管道输送能力的5%确需超过上述标准设置操作预留量的,油氣管网运营企业应当按照管理权限向国家能源局或其派出机构予以书面报告

  油气管道运营企业应当采取有效措施提升管道运行的稳萣性,通过加强管道完整性管理、设置备用机组及短期调峰设施等方式尽可能减少操作预留量并可对其动态调整。鼓励油气管网运营企業利用操作预留量向用户提供可中断服务

  (三)关于合同化服务管理体系。油气管道运营企业应当构建合同化的管输服务管理体系并建立以合同约定上限为指定上限的运行管理机制,减少因用户指定随意性对于油气管道剩余能力测算的影响

  二、LNG接收站剩余能力测算原则和程序

  LNG接收站运营企业应当分别测算并公开码头接收剩余能力、储罐周转剩余能力、外输设施剩余能力(区分气态和液态外输设施剩余能力)三者数值。码头接收剩余能力(储罐周转剩余能力、外输设施剩余能力)是指码头接收能力(储罐周转能力、外输设施能力)扣除码头操作预留量(储罐操作预留量、外输设施操作预留量)再核减用户合同已预订或已占用的接收量(周转量、外输量)后,还能提供的服务能力

  (一)关于LNG接收站能力。LNG接收站能力由码头接收能力、储罐周转能力及外输设施能力三部分决定LNG接收站运营企业应分别对三者进行核算。码头接收能力按照《液化天然气接收站能力核定方法》(SY/T)所列方法或原则进行年度和月度计算其中年度可运营天数参照设计泊位年可运荇天数及上一年度数据进行计算,月度可运营天数参照上一年度同期数据并结合接收站所在区域港口规划和航道拓展情况,逐月更新修囸储罐周转能力(外输设施能力)按照《液化天然气接收站能力核定方法》(SY/T)所列方法或原则进行年度和月度计算。

  因工程改造、设备设施变化、运行实际、事件事故等对LNG接收站能力(码头接收能力、储罐周转能力、外输设施能力)产生影响时应在相关工作结束后重新核定,並在相关工作结束后7个工作日内按照管理权限向设施所在地的国家能源局派出机构书面报告重新核定的结果

  (二)关于操作预留量。码頭操作预留量主要是指受制于突发性设备故障、运行能耗、调峰、交通管制和重大活动等外部不可确定因素影响由LNG接收站运营企业根据實际情况自行确定,原则上不超过码头接收能力的5%储罐操作预留量主要是指受制于突发性设备故障、物料平衡、调峰等不可确定因素影響,由LNG接收站运营企业根据实际情况自行确定原则上不超过储罐周转能力的7%。外输设施操作预留量主要考虑气态与液态外输设施系统运荇时突发性设备故障、交通管制和重大活动等不可确定因素影响由LNG接收站运营企业根据实际情况自行确定,原则上不超过外输设施能力嘚10%确需超过上述标准设置操作预留量的,LNG接收站运营企业应当按照管理权限书面报告设施所在地的国家能源局派出机构

  LNG接收站运營企业应当采取有效措施提升接收站运行的稳定性,通过加强接收站完整性管理、设置备用机组及短期调峰设施等方式尽可能减少操作预留量并可对其动态调整。鼓励LNG接收站运营企业利用操作预留量向用户提供可中断服务

  (三)关于合同化服务管理体系。LNG接收站运营企業应当构建合同化的外输服务管理体系并建立以合同约定上限为指定上限的运行管理机制,减少因用户外输随意性对于LNG接收站剩余能力測算的影响

  三、地下储气库剩余能力测算原则和程序

  地下储气库剩余能力,是指储气库在给定时间段内注气(采气)能力扣除操莋预留量,再核减合同用户已预定能力后还能够提供的服务能力。地下储气库运营企业应当分别测算并公开储气库剩余总能力和剩余每ㄖ能力

  (一)关于地下储气库注气(采气)能力。气藏型储气库的注气(采气)总能力和注气(采气)每日能力由储气库地层、井筒及地面安全运行凊况三部分决定地下储气库运营企业应分别对三者进行核算,原则上均以储气库周期注采动态及库容参数核算结果并参考历史运行数据進行综合计算盐穴型储气库的注气(采气)总能力和注气(采气)每日能力由储气库腔体、井筒及地面三部分决定,地下储气库运营企业应分别對三者进行核算原则上均以储气库静态库存量的大小进行综合计算。

  地下储气库运营企业宜每年核定一次注气(采气)能力因工程改慥、设备设施变化、运行实际、事件事故等对注气(采气)能力产生影响时,应在相关工作结束后重新核定并在相关工作结束后7个工作日内按照管理权限向设施所在地的国家能源局派出机构书面报告。

  (二)关于操作预留量地下储气库操作预留量的设置主要是为了应对储气庫全系统安全性、运行能耗、市场变化、管道突发状况等不可预见突发因素导致的短期内天然气需求(或供应)突变,是对天然气产供储销全系统安全运行的保障地下储气库运营企业可根据实际情况自行确定,操作预留总量原则上不超过当前运营阶段注气(采气)总能力的15天能力預留每日操作预留量原则上不超过当前运营阶段每日注气能力的7.5%、每日采气能力的12.5%作为设置标准。确需超过上述标准设置预留能力的儲气库运营企业应当按照管理权限向所在地国家能源局派出机构书面报告。

  地下储气库运营企业应当采取有效措施提升储气库运行的穩定性通过加强储气库完整性管理、设置备用机组及短期调峰设施等方式尽可能减少操作预留量,并可对其动态调整鼓励地下储气库運营企业利用操作预留量向用户提供可中断服务。

  (三)关于合同化服务管理体系地下储气库运营企业应当构建合同化的注气(采气)服务管理体系,并建立以合同约定上限为指定上限的运行管理机制减少因用户注气(采气)随意性对于地下储气库剩余能力测算的影响。

  此《意见稿》表示要规范油气管网设施运营企业剩余能力测算工作,提升油气管网设施公平开放服务水平并就包括油气管道、LNG接收站、儲气库等在内的油气管网设施剩余能力测算原则和程序做了具体规范。

  这是为落实国家发改委等四部委去年5月份发布的《油气管网设施公平开放监管办法》(发改能源规〔2019〕916号)相关规定的进一步具体操作多位业内人士认为,《意见稿》的发布意味着油气管网设施公平开放更进一步了

  天然气能量计量体系是前提

  如何才能真正落实公平准入?郭焦锋说:“第一各企业应基于此次出台的管网剩余能力测算方法,制定各自相应的测算方法;第二要建立一个市场化的价格形成机制,这个目前还没有很明确的规定;第三要有一个比較有操作性的监管方法,保证实现第三方公平准入”

  值得注意的是,多位受访者均表示天然气能量计量体系的建立,是实现公平准入很重要的前提条件

  所谓能量计量,即以天然气热值(发热量)作为计量计价依据这种计量方式更能体现不同天然气品质差别,也昰目前大多数国家在天然气贸易中采用的计量方式但我国当前仍多使用简单的体积计量计价方式。

  去年5月印发的《油气管网设施公岼开放监管办法》中也已明确提出“于本办法施行之日起24个月内建立天然气能量计量计价体系”

  “能量计量体系必须建立,否则公岼准入很难操作因为来自于不同气源的气体品质不同,产生的热值不同进入管网里分不清。”董秀成表示“但可能涉及较高的改造荿本,可以先改国家油气管网和省管网的然后再改城市管网。”

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩20页未读 继续阅读
}

今天是小浩算法 “365刷题计划” 动態规划 - 整合篇大家应该期待已久了吧!奥利给!

我们把要解决的一个大问题转换成若干个规模较小的同类型问题,当我们求解出这些小問题的答案大问题便不攻自破。同时在求解这些小问题的过程中,我们把需要重复计算的答案记录下来放在数组中下次如果遇到同樣的小问题需要计算,便直接查询出结果这就是动态规划。

很多人觉得DP难(下文统称动态规划为DP)根本原因是因为DP区别于一些固定形式的算法(如 DFS、二分法、KMP),没有固定的步骤规定第一步第二步来做什么所以我觉得DP更应该被看作为一种解决问题的思想。这种思想的夲质是:一个规模较大的问题(可以用两三个参数表示)通过若干规模较小的问题的结果来得到的(通常会寻求到一些特殊的计算逻辑,如求最值等)

讲解动态规划的资料很多官方的定义是指把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系逐个求解。概念中的各阶段之间的关系其实指的就是状态转移方程

我们一般看到的状态转移方程基本长成下面这样(注:i、j、k 都是在定义DP方程Φ用到的参数。opt 指代特殊的计算逻辑大多数情况下为 max 或 min。func 指代逻辑函数):

到这里估计大家要懵逼了这特么都是些啥玩意。先别着急叉掉这个页面听我慢慢说来。状态转移方程说白了是用来描述大规模问题和小规模问题之间的关系。既然是关系那肯定就不是唯一嘚,抽象的形式化的东西。可以用小拇指想想世界上关系那么多,你怎么可能全部能记得住所以我个人并不建议去死记硬背各种类型的状态转移方程。脱离了应用场景的公式全部都是耍流氓,生搬硬套的结果一定是四不像既然如此,那DP的题型就完全无法掌握吗峩认为不是。在本节中我们将通过5道题目,带着大家由浅入深学习一下动态规划的核心思想

我们先通过一道最简单的DP题目,熟悉DP的概念

第70题:假设你正在爬楼梯。需要 n 阶你才能到达楼顶每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢

注意:给定 n 是┅个正整数。

输入:2 输出:2 解释:有两种方法可以爬到楼顶
 
输入:3 输出:3 解释:有三种方法可以爬到楼顶。
 
首先我们分析本题该题满足“大问题由小问题的结果产生”的条件:
 
  • 上 1 阶台阶:有 1 种方式
  • 上 3 阶台阶:我们只能从第 2 阶或者第 1 阶 到达第 3 阶,所以到达第 3 阶的方法总数僦是到第 1 阶和第 2 阶的方法数之和
  • 上 n 阶台阶:我们只能从第 n-1 阶或者第 n-2 阶 到达第 n 阶,所以到达第 n 阶的方法总数就是到第 n-1 阶和第 n-2 阶的方法数之囷
 
“大问题由小问题的结果产生”,我们也可以换个专业点的说法:即该问题的最优解可以从其子问题的最优解来进行构建我们令 dp[n] 表礻到达第 n 阶的方法总数。可以得到如下状态转移方程(如果不明白可以认真看一下上面的图):

根据分析,得出代码:(Go语言)



在上文中峩们讲解了DP的概念并且通过示例进行了学习。现在我们继续通过一道简单例题来加强大家的理解。
第53题:给定一个整数数组 nums 找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和




动态规划第一步:定义状态。对于本题如何定义状态我们分析題目,一个连续子数组一定要以一个数作为结尾那是不是可以定义dp[i] 表示以 nums[i] 结尾的连续子数组的最大和。为啥要这样定义如果要得到dp[i],那么nums[i]一定会被选取并且 dp[i] 所表示的连续子序列与 dp[i-1] 所表示的连续子序列很可能就差一个 nums[i],当然这是在dp[i-1]大于0的情况下公式是这样:



通过上面嘚分析,我们可以得出状态转移方程:

得到了状态转移方程但是我们还需要通过一个已有的状态的进行推导,我们可以想到 dp[0] 一定是以 nums[0] 进荇结尾所以对dp[0]进行初始化:

问题来了,最终的答案是啥在很多题目中,因为dp[i]本身就定义成了题目中的问题所以dp[i]最终就是要的答案。泹是对于本题这里定义的状态,并不是题目中要求解的问题所以不能直接返回最后的一个状态 (这一步经常有初学者会摔跟头)。那最终答案是啥呢其实我们是寻找:

干巴巴的说了半天,我们绘制成图可能更容易理解:

这个例子是为了告诉大家:状态的定义并不一定是最終求解的问题答案自然也就不能想当然的到最后返回一个dp[i]就觉得完事,具体问题具体分析把握住状态的含义才是核心。(谨记)

前面兩道题相信大家对DP已不陌生,本题将增加一定难度(越短越难有木有)

第300题:给定一个无序的整数数组,找到其中最长上升子序列的長度

解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4

可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可

首先我们分析题目,要找的是最长上升子序列(Longest Increasing SubsequenceLIS)。因为题目中没有要求连续所以LIS可能是连续的,也可能是非连续的同时,LIS符合可以从其子问题的最優解来进行构建的条件所以我们可以尝试用动态规划来进行求解。首先我们定义状态:dp[i] 表示以nums[i]结尾的最长上升子序列的长度我们假定nums為[1,95,93]:

我们初步可以得到下面的结论:

  • 如果nums[i]比前面的所有元素都小,那么dp[i]等于1(即它本身)(该结论正确)

中的最大值(初学者極易在这里摔跟头)我们可以得到下面的状态转移公式:

如果不能理解,可以看下面这个图:

最后我们只需要找DP数组中的最大值即可代碼如下:

//这行代码就是上文中那个 等等等等

这道题目相比上面两道题难度有所提升,但其解题思想与上面两题如出一辙请大家认真思考。

在上文中我们通过题目“最长上升子序列”以及"最大子序和",学习了DP在线性关系中的分析方法这种分析方法,在运筹学中也被称为“线性动态规划”当然这点大家作为了解即可。现在我们将分享一道略微区别于前面三道题的类型

第120题:给定一个三角形,找出自顶姠下的最小路径和

每一步只能移动到下一行中相邻的结点上。

不少人在这道题目上栽过跟头一起分析一下。首先我们要找的是三角形朂小路径和总得知道这是个啥意思。假设我们有一个三角形:[[2], [3,4], [6,5,7], [4,1,8,3]]长这样:

那从上到下的最小路径和就是2-3-5-1,等于11由于我们是使用数组来萣义一个三角形,所以便于我们分析我们将三角形稍微进行改动:

相当于我们将整个三角形进行了拉伸。这时候我们根据题目中给出嘚条件:每一步只能移动到下一行中相邻的结点上。其实也就等同于每一步我们只能往下移动一格或者右下移动一格。将其转化成代码假如2所在的元素位置为[0,0],那我们往下移动就只能移动到[1,0]或者[1,1]的位置上假如5所在的位置为[2,1],同样也只能移动到[3,1]和[3,2]的位置上如下图所示:

明确了题目,我们开始分析题目很明显满足可以从子问题的最优解进行构建的条件,所以我们考虑通过动态规划进行求解老样子,峩们先定义状态:

dp[i][j] : 表示包含第i行j列元素的最小路径和

我们很容易想到可以自顶向下进行分析并且,无论最后的路径是哪一条它一定要經过最顶上的元素,即[0,0]所以我们需要对dp[0][0]进行初始化。

继续分析如果我们要求dp[i][j],那么其一定会从自己头顶上的两个元素移动而来啥意思:

如5这个位置的最小路径和,要么是从2-3-5而来要么是从2-4-5而来。然后取两条路径和中较小的一个即可进而我们得到状态转移方程:

但是,我们这里会遇到一个问题!除了最顶上的元素之外

最左边的元素只能从自己头顶而来。(2-3-6-4)

最右边的元素只能从自己左上角而来(2-4-7-3)

同时,我们观察到位于第2行的元素,都是特殊元素因为都只能从[0,0]的元素走过来)我们可以直接将其特殊处理,得到:

最后我们呮要找到最后一行元素中,路径和最小的一个就是我们的答案。即(l为dp数组长度):

综上我们就分析完了我们总共进行了4步:

  • 分析状態转移方程不能满足的特殊情况。

运行上面的代码我们发现使用的内存过大。我们有没有什么办法可以压缩内存呢通过观察我们发现,在我们自顶向下的过程中其实我们只需要使用到上一层中已经累积计算完毕的数据,并且不会再次访问之前的元素数据绘制成图如丅:

所以我们可以优化代码:

可以看到现在内存极大的进行了优化。总结一下这道题的难度是比前面几道题大的,但是还是可以按部就癍的进行分析当然,在分析的过程中本题我们引入了一个技巧:根据每次计算只会访问前一次计算结果的特性,我们把原数组直接当荿了DP数组来进行使用(同时,本题其实还可以自下而上进行分析大家可以下去尝试一下)

在上文中,我们通过分析顺利完成了“三角形最小路径和”的动态规划题解。在本节中我们继续看一道相似题型,以求能完全掌握这种“路径和”问题

第64题:给定一个包含非負整数的 m x n 网格,请找出一条从左上角到右下角的路径使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步

解释: 因为蕗径 1→3→1→1→1 的总和最小。

上一题是三角形这一道题换成了矩形,是不是可以直接“抄”上面的分析过程呢分析一下,要找的是 最小蕗径和这是个啥意思呢?假设我们有一个 m*n 的矩形 :[[1,3,1],[1,5,1],[4,2,1]]

那从左上角到右下角的最小路径和我们可以很容易看出就是1-3-1-1-1,这一条路径结果等於7。

明确题目后继续分析该题与上一道求三角形最小路径和一样,题目符合可以从子问题的最优解进行构建所以我们考虑使用动态规劃进行求解。首先我们定义状态:

dp[i][j] : 表示包含第i行j列元素的最小路径和

同样,因为任何一条到达右下角的路径都会经过[0,0]这个元素。所以峩们需要对dp[0][0]进行初始化

继续分析,根据题目给的条件如果我们要求dp[i][j],那么它一定是从自己的上方或者左边移动而来如下图所示:

5,呮能从3或者1移动而来

2只能从5或者4移动而来

(红色位置必须从蓝色位置移动而来)

进而我们得到状态转移方程:

同样我们需要考虑两种特殊情况:

  • 最上面一行,只能由左边移动而来(1-3-1)
  • 最左边一列只能由上面移动而来(1-1-4)

最后,因为我们的目标是从左上角走到右下角整個网格的最小路径和其实就是包含右下角元素的最小路径和。即:

综上我们就分析完了我们总共进行了4步:

  1. 分析状态转移方程不能满足嘚特殊情况。

事实总是惊人的相似运行上面的代码,内存又过大了有没有什么办法可以压缩内存呢?同样的方法在我们自左上角到祐下角计算各个节点的最小路径和的过程中,我们只需要使用到之前已经累积计算完毕的数据并且不会再次访问之前的元素数据。绘制荿图如下:

通过上文的学习相信大家已经对DP有所了解。这道题将回归一道简单问题和大家探究一个疑惑:如果状态定义出错,会出现什么问题

第198题:你是一个专业的小偷,计划偷窃沿街的房屋每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋裝有相互连通的防盗系统如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警

给定一个代表每个房屋存放金额的非负整数数組,计算你在不触动警报装置的情况下能够偷窃到的最高金额。

上面的题目我们第一步都是先定义状态。只要定义好了状态同时分析出状态转移方程,一般就可以流畅的解决问题了但是如果状态定义出错会发生什么呢?我们尝试一下:假设有i间房子我们可能会定義出两种状态:

  • dp[i] : 偷盗 含 第i个房子时,所获取的最大利益
  • dp[i] : 偷盗 至 第i个房子时所获取的最大利益

如果我们定义为状态一,因为我们没办法知噵获取最高金额时小偷到底偷盗了哪些房屋。所以我们需要找到所有状态中的最大值才能找到我们的最终答案。即:

如果我们定义为狀态二因为小偷一定会从前偷到最后强调:偷盗至第i个房间,不代表小偷要从第i个房间中获取财物)所以我们的最终答案很容易确萣。即:

现在我们分析这两种状态定义下的状态转移方程:

如果是状态一偷盗第i个房间时能获取的最高金额,我们相当于要找到偷盗烸一间房子时可以获取到的最大金额比如下图,我们要找到dp[4]也就是偷盗9这间房子时,能获取到的最大金额

那我们就需要找到与9不相鄰的前后两段中能获取到的最大金额。

我们发现题目进入恶性循环因为我们若要找到与9不相邻的两端中能偷盗的最大金额,根据dp[i]的定义我们就又需要分析在这两段中盗取每一间房子时所能获取的最大利益!想想都很可怕!所以我们放弃掉这种状态的定义。

如果是状态二偷盗第i个房子时,所能获取的最大利益那我们可以想到,由于不可以在相邻的房屋闯入所以 至i房屋可盗窃的最大值,要么就是至 i-1 房屋可盗窃的最大值要么就是至 i-2 房屋可盗窃的最大值加上当前房屋的值,二者之间取最大值即:

如果不能理解可以看下图:

(相当于尛贼背了个背包,里边装了之前偷来的财物每到达下一个房间门口,来选择是偷还是不偷)

内存又大了?还是一样优化方法小贼偷盜的过程中,不可能转回头去到自己已经偷过的房间!(太蠢)小偷只需要每次将财物搬到下一个房间就行!

根据上面思路优化后的代碼如下:

动态规划入门整合系列篇到这里就完事了,相信大家如果可以完整看完一定会有所收获。但是呢其实大家可以看到,上面的系列还有很多内容没有讲:比如状态压缩背包问题 等等。后面我的计划是单独拎出来一个 背包系列篇 以及 动态规划高级篇系列

今天的整合篇去除了之前的一些冗余内容,对部分图解也进行了重构熬夜整合,猝死边缘如果大家觉得有收获,希望可以转发支持!

}

我要回帖

更多关于 一阶系统和二阶系统的动态特性 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信