首页 > 其他分享 >网络单纯形 学习笔记

网络单纯形 学习笔记

时间:2023-06-21 20:11:08浏览次数:40  
标签:费用 text 网络 笔记 负环 单纯形 算法 推流

网络单纯形算法是一种神奇的算法。它可以求解带负圈的费用流,可以过 HLPP 板子,但它的(最坏)复杂度好像是指数级,尽管我并不会证

感性理解:它和线规算法 simplex 有许多相似之处,而 simplex (最坏)是指数级的.

虽然但是,据 CF[1] 上所讲,它的平均时间复杂度是 \(O(VE)\),且常数较小(无 LCT 情况下).

网络单纯形算法用来求解无源汇最小费用可行流。将有源汇最小费用最大流转换为无源汇最小费用可行流的方法:从汇向源连一条费用为 \(-\infty\),流量为 \(+\infty\) 的边。

大致思路:给定图 \(G=(V,E)\),在算法过程中,我们维护它的生成森林边集 \(T\),每次找一条不在 \(T\) 内的边 \(t \in E \setminus T\),若 \(T \cup \{t\}\) 包含负环,则在 \(T\) 中沿此负环推流,选出一条满流的边删去,将 \(t\) 加入 \(T\). 重复此过程直到 \(T\) 中不含负环,此时我们就得到了 \(G\) 的最小费用可行流。

线规的解释:生成树相当于初始可行解,向负环推流相当于转动变量。

判断一条边加入生成树后是否有负环

考虑一个权重函数 \(h(a),a \in V\),满足对 \(\forall e \in T, h(e.\text{to}) - h(e.\text{from}) = e.\text{cost}\),那么对于两个点 \(a,b\),\(h(a)-h(b)\) 就是 \(T\) 上 \(a\) 到 \(b\) 一条路的权值之和。对边 \(e \in E\),若 \(h(e.\text{to}) - h(e.\text{from}) + e.\text{cost} < 0\),则它所在的环路(沿着它的方向)为负环。

找到负环后推流

先从 \(e.\text{from}\) 和 \(e.\text{to}\) 向上跳到 LCA,再从两边分别找能推的最小流值,最后推流。

这里如果用 LCT 维护,则可从 \(O(n)\) 优化到 \(O(\log n)\),但常数大。

推流后,别忘了删边并反转被删的链的父子关系,保证生成树还是树。

Code

here

参考资料

  • Codeforces[1:1](强烈推荐看原文)
  • 冰中火大佬的 blog[2]

  1. [Tutorial] Network simplex ↩︎ ↩︎

  2. 感性理解网络单纯形 ↩︎

标签:费用,text,网络,笔记,负环,单纯形,算法,推流
From: https://www.cnblogs.com/x383494/p/17497006.html

相关文章

  • 使用GPU训练神经网络的历史
    我在一台没有GPU支持的Mac电脑本上本地部署了stable-diffusion-webui,并生成了一张图。这张图大概需要10分钟的时间才能生成,但如果有GPU支持的话,只需要几秒钟就能完成。这让我深刻体会到GPU的算力比CPU强大得多。GPU算力为啥远高于CPU更多的处理单元GPU在同样芯片面积上集成的处理单......
  • 循环神经网络 - RNN
    在上一篇文章中,介绍了卷积神经网络(CNN),CNN在图像识别中有着强大、广泛的应用,但有一些场景用CNN却无法得到有效地解决,例如:语音识别,要按顺序处理每一帧的声音信息,有些结果需要根据上下文进行识别;自然语言处理,要依次读取各个单词,识别某段文字的语义;这些场景都有一个特点,就是都与时间序......
  • 卷积神经网络 – CNN
    1981年的诺贝尔医学奖,颁发给了DavidHubel(出生于加拿大的美国神经生物学家)和TorstenWiesel,以及RogerSperry。前两位的主要贡献,是“发现了视觉系统的信息处理”,可视皮层是分级的。图:纪念1981年诺贝尔医学奖的邮票。人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素Pixels),接......
  • 【笔记】大一下数值分析碎碎念——数值积分与微分
    数值微分与积分数值微分:只利用\(f(x)\)来计算\(f',f'',\cdots\)比如\(f'(x_0)\approx\frac{f(x_0+h)-f(x_0)}{h}\)两点前向差分。\(f'(x_0)\approx\frac{f(x_0+h)-f(x_0-h)}{2h}\)三点中心差分。误差分析:设\(f\inC^2[a,b]\)\[f(x_0+h)=f(x_0)......
  • Android Kotlin Retrofit MVP网络请求封装(四)
    依赖implementation'com.squareup.retrofit2:retrofit:2.9.0'implementation'com.google.code.gson:gson:2.8.8'implementation'com.squareup.okhttp3:okhttp:4.9.1'implementation'com.squareup.retrofit2:retrof......
  • 深度学习-强化学习-图神经网络-自然语言处理等AI课程超级大列表-最新版
        本篇文章内容整理自网络,汇集了大量关于深度学习、强化学习、机器学习、计算机视觉、语音识别、强化学习、图神经网络和自然语言处理相关的各种课程。之前分享过一次,经过一年的更新,又补充了很多2019、2020年的最新资源,补充了一些主题,提供给不间断学习,充实自己的朋友,借下面Hi......
  • 深度学习阅读笔记(四)之卷积网络CNN
    卷积神经网络  17.《基于卷积神经网络的木材缺陷识别》(具体应用)(1)主要内容:采用卷积神经网络(CNN)来建立木材缺陷识别系统。详细介绍了CNN网络的基本结构和技术特点。详细介绍了实验CNN网络模型的构件。(2)采用方法:卷积神经网络(CNN)(3)特点:权值共享,下采样,局部感受野(4)优点:卷积神经网络在处......
  • 深度学习论文阅读笔记(三)之深度信念网络DBN
    深度神经网络   12.《受限波尔兹曼机简介》(1)主要内容:主要介绍受限玻尔兹曼机(RBM)的基本模型、学习算法、参数设置、评估方法、变形算法等,探讨了RBM在未来值得研究的方向。(2)RBM的基本模型和学习算法(描述比较清楚):对比散度学习算法(Gibbs采样),(3)RBM参数设置(叙述比较详细):1)小批量数据处理......
  • 深度学习阅读笔记(二)之自动编码器SAD
    一、自动编码器(DAE)   7. 《深度自动编码器的研究与展望》   主要内容:讲述了自动编码器的发展由来。阐述了DAE的基本概念和原理;网络模型的构建和训练方法。并对DAE进行了分类,指出了DAE存在的问题和对DAE未来发展的展望。  (1)自动编码器比传统BP网络的优势:免去了人工提取数据......
  • 深度学习学术论文阅读笔记(一)之经典学术论文阅读笔记
    深度学习算法主要分类三大类:自动编码器,深度神经网络和卷积神经网络。下面是对这三种网络分类进行的初步调研。深度学习6篇非常重要的文章:  1.《Learning multiple layers of representation》 / G E. Hinton(1)主要内容:论述采用多层网络表达(深度学习网络:卷积网络,堆叠自动编......