Skip to content

Commit 3812806

Browse files
committed
「燃やす埋める問題」「project selection problem」を独立したページにする
@MiSawa さんが提案してくれたもの: > 例えば「強連結成分分解のページに、2-SAT の問題定義と帰着の仕方の解説がある」と同型なことになっている気がします。(が、距離がだいぶ違う気もしなくはないです) という指摘は正しいように聞こえる。
1 parent 4924754 commit 3812806

File tree

8 files changed

+137
-50
lines changed

8 files changed

+137
-50
lines changed

_algorithms/minimum-cut-problem.md

Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -25,44 +25,9 @@ description: >
2525
最大流最小カット定理によって最小カット問題の解の容量は[最大流問題](/maximum-flow-problem)の解の流量に等しい。
2626

2727

28-
## 燃やす埋める問題
28+
## 詳細
2929

30-
競技プログラミングのコミュニティにおいて「燃やす埋める問題」という名前[^moyasu-umeru-local-name]で呼ばれている問題は、最小カット問題に帰着できる問題のひとつである。
31-
これは次のような形の問題である:
32-
33-
- $N$ 個のゴミ $0, 1, 2, \dots, N - 1$ があり、それぞれについて「燃やす」か「埋める」かを選んで処理しなければならない。
34-
ゴミ $i$ は燃やすと $a_i$ 円 ($a_i \ge 0$) かかり埋めると $b_i$ 円 ($b_i \ge 0$) かかる。
35-
さらに、ゴミ $x_j$ を燃やしたときにゴミ $y_j$ を埋めると罰金として $c_j$ 円 ($c_j \ge 0$) かかるという形の条件が $K$ 個与えられている。
36-
このときゴミをすべて処理するのに必要な費用の最小値を求めよ。
37-
38-
燃やす埋める問題はある $N + 2$ 頂点 $2N + K$ 辺のネットワークを考えることで最大流問題に帰着できる。
39-
$N$ 個のゴミをそれぞれ頂点とし、始点 $s$ および終点 $t$ を追加する。
40-
始点 $s$ からそれぞれのゴミ $i$ へ容量 $a_i$ の辺を張り、それぞれのゴミ $i$ から終点 $t$ へ容量 $b_i$ の辺を張り、それぞれの制約 $j$ ごとに頂点 $y_j$ から頂点 $x_j$ へ容量 $c_j$ の辺を貼る。
41-
このネットワーク上での最小カットの容量は燃やす埋める問題の答えに等しい。
42-
このネットワークを図示すると以下のようになる。
43-
44-
![燃やす埋める問題のネットワーク](assets/img/minimum-cut-problem-moyasu-umeru.svg)
45-
46-
47-
## project selection problem
48-
49-
problem selection problem[^project-selection-problem-name] は最小カット問題に帰着できる問題のひとつである。
50-
これは次のような形の問題である:
51-
52-
- $N$ 個のプロジェクト $x_0, x_1, x_2, \dots, x _ {N-1}$ と $M$ 個の機械 $y_0, y_1, y_2, \dots, y _ {M-1}$ がある。
53-
プロジェクト $x_i$ を実行すると利益 $a_i$ 円を産む。
54-
機械 $y_i$ は購入に費用 $b_j$ 円かかる。
55-
さらに、プロジェクト $x _ {c_j}$ を実行するためは機械 $y _ {d_j}$ が購入されていなければならないという形の条件が $K$ 個与えらている。
56-
ただし機械は複数のプロジェクト間で共有できる。
57-
実行するプロジェクトと購入する機械を適切に選択したときの利益の最大値を求めよ。
58-
59-
project selection problem はある $N + M + 2$ 頂点 $N + M + K$ 辺のネットワークを考えることで 最大流問題に帰着できる。
60-
$N$ 個のプロジェクトと $M$ 個の機械をそれぞれ頂点とし、始点 $s$ および終点 $t$ を追加する。
61-
62-
このネットワーク上での最小カットの容量を $F$ とすると project selection problem の答えは $F + \sum_i a_i$ となる。
63-
このネットワークを図示すると以下のようになる。
64-
65-
![project selection problem のネットワーク](assets/img/minimum-cut-problem-project-selection-problem.svg)
30+
(省略)
6631

6732

6833
## その他
@@ -74,20 +39,16 @@ $N$ 個のプロジェクトと $M$ 個の機械をそれぞれ頂点とし、
7439

7540
- [最大流問題](/maximum-flow-problem)
7641
- 最大流最小カット定理によって最小カット問題の解の容量は最大流問題の解の流量に等しい。
42+
- [燃やす埋める問題](/moyasu-umeru-mondai)
43+
- 燃やす埋める問題は最小カット問題へと帰着できる。
44+
- [project selection problem](/project selection problem)
45+
- project selection problem は最小カット問題へと帰着できる。
7746

7847

7948
## 外部リンク
8049

81-
- <del>[最小カット - CKomakiの日記 - TopCoder部](http://topcoder.g.hatena.ne.jp/CKomaki/20121019/1350663591)</del> (Internet Archive にも保存されておらず現在は閲覧不能)
82-
- <a class="handle">Komaki</a> によるブログ記事。燃やす埋める問題という問題はこの記事で提案されたようである。
83-
- [最小カットを使って「燃やす埋める問題」を解く - SlideShare](https://www.slideshare.net/shindannin/project-selection-problem)<sup>[archive.org](https://web.archive.org/web/20210401023045/https://www.slideshare.net/shindannin/project-selection-problem)</sup>
84-
- <a class="handle">shindannin</a> によるスライド。燃やす埋める問題について分かりやすく説明している。
8550
- [最小カットについて - よすぽの日記](https://yosupo.hatenablog.com/entry/2015/03/31/134336)<sup>[archive.org](https://web.archive.org/web/20210401023012/https://yosupo.hatenablog.com/entry/2015/03/31/134336)</sup>
8651
- <a class="handle">yosupo</a> によるブログ記事。最小カット問題はグラフの $2$ 彩色だと思うとよいことが説明されている。
87-
- [『燃やす埋める』と『ProjectSelectionProblem』 - とこはるのまとめ](http://tokoharuland.hateblo.jp/entry/2017/11/12/234636)<sup>[archive.org](https://web.archive.org/web/20210401023114/http://tokoharuland.hateblo.jp/entry/2017/11/12/234636)</sup>
88-
- <a class="handle">tokoharu</a> によるブログ記事。燃やす埋める問題という問題クラスではなく project selection problem という別の問題クラスを利用することを提案している。
89-
- [最小カットを使って「燃やす埋める」問題を解くスライドのフォロー - じじいのプログラミング](https://shindannin.hatenadiary.com/entry/2017/11/15/043009)<sup>[archive.org](https://web.archive.org/web/20210401023113/https://shindannin.hatenadiary.com/entry/2017/11/15/043009)</sup>
90-
- <a class="handle">shindannin</a> によるブログ記事。燃やす埋める問題と project selection problem とを比較している。
9152
- [最小カット問題と充足最大化問題 - うさぎ小屋](https://kimiyuki.net/blog/2020/03/07/minimum-cut-and-maximum-satisfiability/)<sup>[archive.org](https://web.archive.org/web/20210401023109/https://kimiyuki.net/blog/2020/03/07/minimum-cut-and-maximum-satisfiability/)</sup>
9253
- <a class="handle">kimiyuki</a> によるブログ記事。最小カット問題は $\bigvee\mkern-12.5mu\bigvee _ i p_i \to \bigwedge\mkern-12.5mu\bigwedge _ j q_j$ の形の論理式たちの充足最大化問題と見ることができると主張している。
9354
- [燃やす埋める問題と劣モジュラ関数のグラフ表現可能性 その① - 私と理論](https://theory-and-me.hatenablog.com/entry/2020/03/13/180935)<sup>[archive.org](https://web.archive.org/web/20210401023205/https://theory-and-me.hatenablog.com/entry/2020/03/13/180935)</sup>

_algorithms/moyasu-umeru-mondai.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
layout: entry
3+
changelog:
4+
- summary: 記事作成
5+
authors: kimiyuki
6+
reviewers:
7+
date: 2021-04-01T00:00:00+09:00
8+
algorithm:
9+
input:
10+
output:
11+
time_complexity:
12+
space_complexity:
13+
aliases:
14+
level: blue
15+
description: >
16+
燃やす埋める問題は最小カット問題に帰着できる問題のひとつである。
17+
ただし、これは競技プログラミングのコミュニティの中でだけ通用する用語であることに注意したい。
18+
---
19+
20+
# 燃やす埋める問題
21+
22+
## 概要
23+
24+
競技プログラミングのコミュニティにおいて「燃やす埋める問題」という名前[^moyasu-umeru-local-name]で呼ばれている問題は、次のような形の問題である:
25+
26+
- $N$ 個のゴミ $0, 1, 2, \dots, N - 1$ があり、それぞれについて「燃やす」か「埋める」かを選んで処理しなければならない。
27+
ゴミ $i$ は燃やすと $a_i$ 円 ($a_i \ge 0$) かかり埋めると $b_i$ 円 ($b_i \ge 0$) かかる。
28+
さらに、ゴミ $x_j$ を燃やしたときにゴミ $y_j$ を埋めると罰金として $c_j$ 円 ($c_j \ge 0$) かかるという形の条件が $K$ 個与えられている。
29+
このときゴミをすべて処理するのに必要な費用の最小値を求めよ。
30+
31+
32+
## 最小カット問題への帰着
33+
34+
燃やす埋める問題はある $N + 2$ 頂点 $2N + K$ 辺のネットワークを考えることで[最小カット問題](/minimum-cut-problem)に帰着できる。
35+
$N$ 個のゴミをそれぞれ頂点とし、始点 $s$ および終点 $t$ を追加する。
36+
始点 $s$ からそれぞれのゴミ $i$ へ容量 $a_i$ の辺を張り、それぞれのゴミ $i$ から終点 $t$ へ容量 $b_i$ の辺を張り、それぞれの制約 $j$ ごとに頂点 $y_j$ から頂点 $x_j$ へ容量 $c_j$ の辺を貼る。
37+
このネットワーク上での最小カットの容量は燃やす埋める問題の答えに等しい。
38+
このネットワークを図示すると以下のようになる。
39+
40+
![燃やす埋める問題のネットワーク](assets/img/moyasu-umeru-mondai.svg)
41+
42+
43+
## 関連項目
44+
45+
- [最小カット問題](/minimum-cut-problem)
46+
- 燃やす埋める問題は最小カット問題へと帰着できる。
47+
- [project selection problem](/project-selection-problem)
48+
- project selection problem は燃やす埋める問題と比較されることが多い。
49+
50+
51+
## 外部リンク
52+
53+
- <del>[最小カット - CKomakiの日記 - TopCoder部](http://topcoder.g.hatena.ne.jp/CKomaki/20121019/1350663591)</del> (Internet Archive にも保存されておらず現在は閲覧不能)
54+
- <a class="handle">Komaki</a> によるブログ記事。燃やす埋める問題という問題はこの記事で提案されたようである。
55+
- [最小カットを使って「燃やす埋める問題」を解く - SlideShare](https://www.slideshare.net/shindannin/project-selection-problem)<sup>[archive.org](https://web.archive.org/web/20210401023045/https://www.slideshare.net/shindannin/project-selection-problem)</sup>
56+
- <a class="handle">shindannin</a> によるスライド。燃やす埋める問題について分かりやすく説明している。
57+
58+
59+
## 注釈
60+
61+
[^moyasu-umeru-local-name]: 競技プログラミングのコミュニティ外では通用しない名前であることに注意したい。
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
layout: entry
3+
changelog:
4+
- summary: 記事作成
5+
authors: kimiyuki
6+
reviewers:
7+
date: 2021-04-01T00:00:00+09:00
8+
algorithm:
9+
input:
10+
output:
11+
time_complexity:
12+
space_complexity:
13+
aliases:
14+
level: blue
15+
description: >
16+
problem selection problem は最小カット問題に帰着できる問題のひとつである。
17+
---
18+
19+
# project selection problem
20+
21+
## 概要
22+
23+
problem selection problem[^project-selection-problem-name] とは、次の形の問題である:
24+
25+
- $N$ 個のプロジェクト $x_0, x_1, x_2, \dots, x _ {N-1}$ と $M$ 個の機械 $y_0, y_1, y_2, \dots, y _ {M-1}$ がある。
26+
プロジェクト $x_i$ を実行すると利益 $a_i$ 円を産む。
27+
機械 $y_i$ は購入に費用 $b_j$ 円かかる。
28+
さらに、プロジェクト $x _ {c_j}$ を実行するためは機械 $y _ {d_j}$ が購入されていなければならないという形の条件が $K$ 個与えらている。
29+
ただし機械は複数のプロジェクト間で共有できる。
30+
実行するプロジェクトと購入する機械を適切に選択したときの利益の最大値を求めよ。
31+
32+
33+
## 最小カット問題への帰着
34+
35+
project selection problem はある $N + M + 2$ 頂点 $N + M + K$ 辺のネットワークを考えることで[最小カット問題](/minimum-cut-problem)に帰着できる。
36+
$N$ 個のプロジェクトと $M$ 個の機械をそれぞれ頂点とし、始点 $s$ および終点 $t$ を追加する。
37+
38+
このネットワーク上での最小カットの容量を $F$ とすると project selection problem の答えは $F + \sum_i a_i$ となる。
39+
このネットワークを図示すると以下のようになる。
40+
41+
![project selection problem のネットワーク](assets/img/project-selection-problem.svg)
42+
43+
44+
## 関連項目
45+
46+
- [最小カット問題](/minimum-cut-problem)
47+
- project selection problem は最小カット問題へと帰着できる。
48+
- [燃やす埋める問題](/moyasu-umeru-mondai)
49+
- project selection problem は燃やす埋める問題と比較されることが多い。
50+
51+
52+
## 外部リンク
53+
54+
- [『燃やす埋める』と『ProjectSelectionProblem』 - とこはるのまとめ](http://tokoharuland.hateblo.jp/entry/2017/11/12/234636)<sup>[archive.org](https://web.archive.org/web/20210401023114/http://tokoharuland.hateblo.jp/entry/2017/11/12/234636)</sup>
55+
- <a class="handle">tokoharu</a> によるブログ記事。燃やす埋める問題という問題クラスではなく project selection problem という別の問題クラスを利用することを提案している。
56+
- [最小カットを使って「燃やす埋める」問題を解くスライドのフォロー - じじいのプログラミング](https://shindannin.hatenadiary.com/entry/2017/11/15/043009)<sup>[archive.org](https://web.archive.org/web/20210401023113/https://shindannin.hatenadiary.com/entry/2017/11/15/043009)</sup>
57+
- <a class="handle">shindannin</a> によるブログ記事。燃やす埋める問題と project selection problem とを比較している。
58+
59+
60+
## 注釈
61+
62+
[^project-selection-problem-name]: TODO: 出典を探す

assets/img/README.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,20 @@
55
後から画像を修正する必要が発生したときのために、画像の編集方法をこのファイルに書いておきましょう。
66

77

8-
## minimum-cut-problem
8+
## moyasu-umeru-mondai.svg
99

1010
TikZ/PGF を使っています。
1111
以下のようにコンパイルしてください。
1212

1313
```console
14-
$ pdflatex minimum-cut-problem-moyasu-umeru.tex
15-
$ pdf2svg minimum-cut-problem-moyasu-umeru.pdf minimum-cut-problem-moyasu-umeru.svg
14+
$ pdflatex moyasu-umeru-mondai.tex
15+
$ pdf2svg moyasu-umeru-mondai.pdf moyasu-umeru-mondai.svg
1616
```
1717

18+
19+
## project-selection-problem.svg
20+
1821
```console
19-
$ pdflatex minimum-cut-problem-project-selection-problem.tex
20-
$ pdf2svg minimum-cut-problem-project-selection-problem.pdf minimum-cut-problem-project-selection-problem.svg
22+
$ pdflatex project-selection-problem.tex
23+
$ pdf2svg project-selection-problem.pdf project-selection-problem.svg
2124
```

0 commit comments

Comments
 (0)