Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ネットワークフロー問題
Search
NearMeの技術発表資料です
PRO
June 30, 2023
Technology
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ネットワークフロー問題
NearMeの技術発表資料です
PRO
June 30, 2023
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
16
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
1
44
初めてのLean言語
nearme_tech
PRO
0
72
Apache Airflow Workflow orchestration without turning cron into spaghetti
nearme_tech
PRO
1
20
実務で役立つ幾何学 ボロノイ図の基礎から グラフ・ネットワーク応用まで
nearme_tech
PRO
1
57
SQL/ID抽出タスクから考える 実践的なハルシネーション対策
nearme_tech
PRO
1
66
OpenCode & Local LLM
nearme_tech
PRO
0
190
OpenCode Introduction
nearme_tech
PRO
0
57
【Browser Automation × AI】 Stagehandを試してみよう
nearme_tech
PRO
0
150
Other Decks in Technology
See All in Technology
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
実装だけじゃない! CCA-F取得エンジニアが教えるClaude Code開発プロセス活用術
diggymo
2
500
ADDF - ループエンジニアリングするフレームワークを作ったら/I Didn't Set Out to Build Loop Engineering, But ADDF Did
fruitriin
0
100
ローカルLLMとLINE Botの組み合わせ その3 / LINE DC Generative AI Meetup #8
you
PRO
0
130
環境凍結という Toil を倒す -セルフサービス型 Ephemeral テスト環境の 設計と実践
shirouz
1
2.1k
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
340
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
250
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
3.4k
【Claude Code】鹿野さんに聞く 私の推しの並行開発環境 大公開 / claude-code-parallel-2026-07-15
tonkotsuboy_com
9
4.5k
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
150
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
160
SREとQA 二人三脚で進めるSLO運用/sre-qa-slo
sugitak
0
270
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Mind Mapping
helmedeiros
PRO
1
280
Practical Orchestrator
shlominoach
191
11k
Thoughts on Productivity
jonyablonski
76
5.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
KATA
mclloyd
PRO
35
15k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
63
55k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
890
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