Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ネットワークフロー問題
Search
NearMeの技術発表資料です
PRO
June 30, 2023
Technology
0
300
ネットワークフロー問題
NearMeの技術発表資料です
PRO
June 30, 2023
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
83
初めてのmarimo (ハンズオン)
nearme_tech
PRO
0
18
ローカルLLM
nearme_tech
PRO
0
32
LlamaIndex Workflow: Build Practical AI Agents Fast
nearme_tech
PRO
0
19
Box-Muller法
nearme_tech
PRO
1
34
Kiro触ってみた
nearme_tech
PRO
0
250
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
4
520
ReactNative のアップグレード作業が (意外に)楽しかった話
nearme_tech
PRO
2
120
強化学習アルゴリズムPPOの改善案を考えてみた
nearme_tech
PRO
0
80
Other Decks in Technology
See All in Technology
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
670
IAMユーザーゼロの運用は果たして可能なのか
yama3133
1
220
Kiro Autonomous AgentとKiro Powers の紹介 / kiro-autonomous-agent-and-powers
tomoki10
0
480
「Managed Instances」と「durable functions」で広がるAWS Lambdaのユースケース
lamaglama39
0
320
初めてのDatabricks AI/BI Genie
taka_aki
0
150
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
490
5分で知るMicrosoft Ignite
taiponrock
PRO
0
360
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
140
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
850
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
2
180
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
280
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
200
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
730
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Fireside Chat
paigeccino
41
3.7k
KATA
mclloyd
PRO
32
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
4 Signs Your Business is Dying
shpigford
186
22k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Transcript
0 ネットワークフロー問題 2023-06-30 第50回NearMe技術勉強会 Yuki Nonaka
1 目次 1. グラフの連結度 2. 最小カット問題 3. ネットワークフロー 4. ネットワークフロー問題
1
2 頂点sから頂点tまでの経路で、互いに辺を共有しないs-tパスは最大 で何本とれるでしょう? 問題 2 s 2 1 3 4
5 6 7 9 t 8 10
3 2本 答え 3 s 2 1 3 4 5
6 7 9 t 8 10
4 S 頂点集合Sから出ている辺が2本しかないのでこれ以上にはならない。 考え方 4 s 2 1 3 4
5 6 7 9 t 8 10
5 前ページの値をグラフの2頂点s,tに対する辺連結度という。これは、グラフネット ワークの頑健性を評価するものとして研究されている。互いに辺を共有しないこと を辺素であるという。 辺連結度 5 s 2 1 3
4 5 6 7 9 t 8 10
6 T S 頂点の集合VをS,Tに分割することをカットといい、Sに始点を持ちTに終点を持つ 辺の本数をカットの容量 c(S,T)と定義した時、最小のc(S,T)はいくつか。 最小カット問題 6 s 2
1 3 4 5 6 7 9 t 8 10 T S s 2 1 3 4 5 6 7 9 t 8 10 c(S,T) = 4 c(S,T) = 2
7 辺連結度とカットの最小容量について次のことが成り立つことがわかる。 さらに次のことも成り立つことが証明されている。 辺連結度と最小カット問題の関係 7 辺素なs-tパスの最大本数 ≦ s-tカットの最小容量 T S
s 2 1 3 4 5 6 7 9 t 8 10 辺素なs-tパスの最大本数 = s-tカットの最小容量
8 基本的にs-tパスを取れなくなるまでとるという 貪欲法に基づいたアルゴリズムで求める。しか し、パスを取った後はパス上の辺に対して逆向 きの有向グラフを張り直した残余グラフを用い て処理を繰り返す。(下図) 辺連結度の求め方 8 s 2
1 3 4 5 6 7 9 t 8 10 s 2 1 3 4 5 6 7 9 t 8 10 パスの本数をf = 0 で初期化 残余グラフG’を元のグラフGで初期化 while G’においてs-tパスPが存在するならば: fを1増やす G’をPに関する残余グラフにする return f アルゴリズム
9 T S T S • 元のグラフGにおいてSから出ている任意の辺は辺素 なs-tパスのいずれかの中に含まれている。 • 元のグラフGにおいてSへ入っている任意の辺は辺素
なs-tパスのいずれにも含まれていない。 辺連結度の求め方 9 s 2 1 3 4 5 6 7 9 t 8 10 s 2 1 3 4 5 6 7 9 t 8 10 S→Tの辺は辺素なs-tパス に一対一対応するので、 c(S,T) = kとなり、kは辺素な s-tパスの最大本数となる。 G G’
10 グラフ構造にエッジ容量を加えたものであり、下図のように各辺には流量の上限 を表す容量c(e)が設けられている。各辺eに対して流量を表すx(e)が存在する。 ネットワークフロー 10 s 2 1 3 4
t 5 5 37 4 3 9 56 9 2
11 流量x(e)に対し、以下の条件を満たすときにフローと呼ぶ。 • 任意の辺eに対して0≦x(e)≦c(e) • 任意のs,t以外の頂点vにおいて、vに入る辺eに対するx(e)の総和と、vか ら出ていく辺eに対するx(e)の総和が等しい また、sから出るxの最大フローを求める問題を最大流問題という。 ネットワークフロー 11
s 2 1 3 4 t 5/5 4/5 1/37 4/4 3/3 2/9 0/56 7/9 2/2
12 最大流問題は最小カット問題の辺に重みがついたバージョンとして考えることが できる。最小カット問題の双対問題である辺連結度の問題があったが、「辺素」と いう条件は容量が1の辺に2以上の流量を流せないことに相当する。 最大流問題はフォード・ファルカーソン法というアルゴリズムで解くことができる。 (最小カット問題を解くアルゴリズムと本質は同じ。) 最大流問題 12
13 ネットワークフローを用いて解くことができる問題は色々ある! • 二部マッチング問題 • 点連結度 • プロジェクト選択問題(露天採鉱問題など) 応用 13
14 参考文献 ・アルゴリズムとデータ構造, 大槻兼資(著), 秋葉拓哉(監修), 講談社, 2020 14
15 Thank you