概要
最小カットを用いると、 及び劣モジュラな について
\begin{align} \text{Minimize}&\quad \alpha + \sum _ i \theta _ i (x _ i) + \sum _ {i \lt j} \phi _ {i, j}(x _ i, x _ j) \cr \text{subject to}&\quad x \in \lbrace 0, 1 \rbrace ^ n \end{align}
という問題が解けます。[2]
これを一般化して、 及び Monge な について
\begin{align} \text{Minimize}&\quad \alpha + \sum _ i \theta _ i (x _ i) + \sum _ {i \lt j} \phi _ {i, j}(x _ i, x _ j) \cr \text{subject to}&\quad x \in k ^ n \end{align}
は最小カットを用いて解けます。
本記事は [1] の内容を定式化し、表現可能な条件を明示的に記述します。
グラフの作り方
各変数 に対して、 の値を取る 個の変数 を作ります。 さらに、 の場合 のコストが掛かることにします。 これにより は丁度 種類の状態を取るようになり、 と対応させられます。
が表現可能なことを示します。 に対する 変数関数は常に表現可能であったことを思い出し、 のとき のコストを掛けます。 さらに無条件で のコストを掛けると、 が表現されます。
下図は上述の方法で表現した後、さらにグラフでの表現に直したものです。
が Monge ならば表現可能なことを示します。 と を使うことで、 としてよいです。 のとき のコストを掛けます。 の Monge 性から、このコストは劣モジュラです。
yukicoder No.119 旅行ツアーの問題
この節は [3] の内容を前節の内容を通して捉え直します。
各国 について 国に行かない, 国には行くがツアーに行かない, ツアーに行く, の つの選択肢を選ぶ問題であり、 とした場合の前節の問題の枠組みで解釈できます。 に関係する部分は 変数関数になるため、常に表現可能です ( が負であっても)。 変数が関係する部分は、「国 のツアーに行き国 に行くならば、国 のツアーに行かなければならない」です。 これを図示すると以下のようなコストになります。
このままでは Monge でないので、 を の順に並び替えます。すると以下のようになります。
これは Monge なので、最小カットで解くことができます。 の場合 を全ての変数で一斉に入れ替えても劣モジュラ性は変化しませんでしたが、 の場合は Monge 性に影響を与えるということになります。
問題例
出題場所 | コンテスト名 | 問題名 | |
---|---|---|---|
0 | KUPC |
KUPC2019 |
123パズル |
1 | ARC |
ARC 107 |
Sum of Abs |
その他
- グラフの作り方から明らかなように、 の値は変数ごとに異なっても構いません。
参考文献
[1] tokoharu-sakura. (2017). Project Selection (燃やす埋める) 周りの話についてもう少し考えた. とこはるのまとめ. https://tokoharuland.hateblo.jp/entry/2017/12/25/000003
[2] つる. (2020). 燃やす埋める問題と劣モジュラ関数のグラフ表現可能性 その①. 私と理論. https://theory-and-me.hatenablog.com/entry/2020/03/13/180935
[3] ねぼこ. (2021). yukicoder No.119 旅行のツアーの問題 解説. neboccoのブログ. https://nebocco.hatenablog.com/entry/2021/03/18/200000