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

差分约束系统

差分约束系统

  • 差分约束系统(spfa)
    • 1、概述
    • 2、过程模拟
    • 3、推理

差分约束系统(spfa)

1、概述

x j − x i ≤ w k x_j-x_i\le w_k xjxiwk转换为: x j ≤ w k + x i x_j\le w_k+x_i xjwk+xi

在松弛操作中:
∙ \bullet 如果 d ( v j ) > d ( v i ) + w ( e i , j ) d(v_j)>d(v_i)+w(e_{i,j}) d(vj)>d(vi)+w(ei,j),则更新 d ( v j ) = d ( v i ) + w ( e i , j ) d(v_j)=d(v_i)+w(e_{i,j}) d(vj)=d(vi)+w(ei,j)

∙ \bullet 如果 d ( v j ) ≤ d ( v i ) + w ( e i , j ) d(v_j)\le d(v_i)+w(e_{i,j}) d(vj)d(vi)+w(ei,j),则无需更新,这是最终目的。

差分约束系统转化成图的形式,再通过求解最短路径的方法(即通过松弛操作)就能够实现差分系统的求解。

2、过程模拟

由上述所知, x j − x i ≤ w k x_j-x_i\le w_k xjxiwk就相当于节点 v i v_i vi到节点 v j v_j vj的边权距离为 w k w_k wk

x 2 − x 1 ≤ − 2 x_2-x_1\le -2 x2x12
x 1 − x 3 ≤ − 1 x_1-x_3\le -1 x1x31
x 2 − x 3 ≤ 4 x_2-x_3\le 4 x2x34
x 4 − x 2 ≤ 5 x_4-x_2\le 5 x4x25
x 3 − x 4 ≤ 2 x_3-x_4\le 2 x3x42
x 4 − x 3 ≤ − 2 x_4-x_3\le -2 x4x32
x 5 − x 4 ≤ 3 x_5-x_4\le 3 x5x43
x 5 − x 3 ≤ − 3 x_5-x_3\le -3 x5x33
⇓ \Darr
在这里插入图片描述
⇓ \Darr
v 1 v_1 v1作为源节点
在这里插入图片描述
顶点的 d d d值为: ( 0 , − 2 , 5 , 3 , 2 ) (0,-2,5,3,2) (0,2,5,3,2)
由于 d ( v 2 ) − d ( v 1 ) ≤ w 1 , 2 d(v_2)-d(v_1)\le w_{1,2} d(v2)d(v1)w1,2,所以 − 2 − 0 ≤ − 2 -2-0\le -2 202成立,也可得 x 2 = − 2 x_2=-2 x2=2 x 1 = 0 x_1=0 x1=0
⇓ \Darr
v 3 v_3 v3作为源节点
在这里插入图片描述
顶点的 d d d值为: ( − 1 , − 3 , 0 , − 2 , − 3 ) (-1,-3,0,-2,-3) (1,3,0,2,3)
⇓ \Darr
v 0 v_0 v0作为源节点
在这里插入图片描述
顶点的 d d d值为: ( − 1 , − 3 , 0 , − 2 , − 3 ) (-1,-3,0,-2,-3) (1,3,0,2,3)

v 2 v_2 v2作为源节点,顶点的 d d d值为: ( 4 , 0 , 7 , 5 , 8 ) (4,0,7,5,8) (4,0,7,5,8)

v 4 v_4 v4作为源节点,顶点的 d d d值为: ( 1 , − 1 , 2 , 0 , − 1 ) (1,-1,2,0,-1) (1,1,2,0,1)

总计如下:
v 1 v_1 v1作为源节点, x v 1 = ( 0 , − 2 , 5 , 3 , 2 ) x_{v_1}=(0,-2,5,3,2) xv1=(0,2,5,3,2)
v 2 v_2 v2作为源节点, x v 2 = ( 4 , 0 , 7 , 5 , 8 ) x_{v_2}=(4,0,7,5,8) xv2=(4,0,7,5,8)
v 3 v_3 v3作为源节点, x v 3 = ( − 1 , − 3 , 0 , − 2 , − 3 ) x_{v_3}=(-1,-3,0,-2,-3) xv3=(1,3,0,2,3)
v 4 v_4 v4作为源节点, x v 4 = ( 1 , − 1 , 2 , 0 , − 1 ) x_{v_4}=(1,-1,2,0,-1) xv4=(1,1,2,0,1)

其中, x v 2 x_{v_2} xv2 x v 1 x_{v_1} xv1 x v 3 x_{v_3} xv3都没有关联性,但 x v 4 = x v 3 + 2 x_{v_4}=x_{v_3}+2 xv4=xv3+2

3、推理

推理1:
对于差分约束系统的任意一个解 x = ( x 1 , x 2 , x 3 , x 4 , x 5 ) x=(x_1,x_2,x_3,x_4,x_5) x=(x1,x2,x3,x4,x5),以及任意一个常数 k k k,则 x ′ = x + k = ( x 1 + k , x 2 + k , x 3 + k , x 4 + k , x 5 + k ) x'=x+k=(x_1+k,x_2+k,x_3+k,x_4+k,x_5+k) x=x+k=(x1+k,x2+k,x3+k,x4+k,x5+k)依然是差分约束系统的解。

推理2:
以差分约束系统对应图的所以节点为源节点,得出所有的独立解(这些解之间没有关联性),差分约束系统的所有解包含:1、所有的独立解,2、这些独立解和任意一个常数的和。

推理3:
如果差分约束系统对应图存在负环(也就是不存在最短路径),则差分约束系统不存在可行解。

相关文章:

  • 一笔画--PTA
  • VSGitHub项目联动(上传和克隆),创建你的第一个仓库,小白配置
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • 文件上传二—WEB攻防-PHP应用文件上传中间件CVE解析第三方编辑器已知CMS漏洞
  • HarmonyOS NEXT应用开发之ArkWeb同层渲染
  • 自动驾驶轨迹规划之时空语义走廊(一)
  • 鸿蒙Harmony应用开发—ArkTS-ForEach:循环渲染
  • Linux环境变量【终】
  • element-ui checkbox 组件源码分享
  • 10、chrome拓展程序的实现
  • 01分布式搜索引擎ES
  • GT20L16S1Y标准汉字字库芯片完全解析(2)
  • 基于FPGA的UDP协议栈设计第三章_ARP层设计
  • RESTful架构
  • 零基础-MySQL数据库的基本操作
  • [case10]使用RSQL实现端到端的动态查询
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • egg(89)--egg之redis的发布和订阅
  • input的行数自动增减
  • Java Agent 学习笔记
  • JavaScript 基本功--面试宝典
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • oschina
  • passportjs 源码分析
  • php面试题 汇集2
  • vue数据传递--我有特殊的实现技巧
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 模型微调
  • 配置 PM2 实现代码自动发布
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 深入浅出webpack学习(1)--核心概念
  • 手写双向链表LinkedList的几个常用功能
  • 通信类
  • 一个完整Java Web项目背后的密码
  • ionic入门之数据绑定显示-1
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • (12)目标检测_SSD基于pytorch搭建代码
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (转)C#调用WebService 基础
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)大型网站架构演变和知识体系
  • (转)拼包函数及网络封包的异常处理(含代码)
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .gitignore文件---让git自动忽略指定文件
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net知识和学习方法系列(二十一)CLR-枚举
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @TableLogic注解说明,以及对增删改查的影响
  • [20150707]外部表与rowid.txt