Majorizationについて
sky58
こんな競プロの問題がありました
• 2つの次元が同じベクトルA,Bが与えられる。A=XBを満たす、各要素
が非負で各行・各列の要素の和が1となる行列Xを構成できるか判
定せよ。
• A,Bの次元数は5000以下
• 全ての要素は非負
• Aの全ての要素の和とBの全ての要素の和は等しい
• 出展:ICPCアジア地区予選台湾大会2013I問題
当時考えたこと
• あるAの要素に対して、それ以上のBの要素が無ければ不可能
• 同様に、Aのある2要素の和に対して、それ以上の和となるBの2要素
が無ければ不可能
• Aの要素を降順に{𝑎1, 𝑎2, ⋯ 𝑎 𝑛}、Bの要素を降順に{𝑏1, 𝑏2, ⋯ 𝑏 𝑛}と並
べた時、あるの1 ≤ 𝑖 ≤ 𝑛に対し 𝑘=1
𝑖
𝑎 𝑘 > 𝑘=1
𝑖
𝑏 𝑘となれば不可能
• 逆に、そうでなければ構成できるのではないか?
• その方針で実装→AC
用語を導入すると
• 各要素が非負で、各行・各列の要素の和が1となる正方行列を二重
確率行列と呼ぶ。
• N個の実数の組A= {𝑎1, 𝑎2, ⋯ 𝑎 𝑛}, B= {𝑏1, 𝑏2, ⋯ 𝑏 𝑛}をそれぞれ降順
に並べたA’= {𝑎′1, 𝑎′2, ⋯ 𝑎′ 𝑛}, B’= {𝑏′1, 𝑏′2, ⋯ 𝑏′ 𝑛}に対し
• 𝑘=1
𝑛
𝑎′ 𝑘 ≤ 𝑘=1
𝑛
𝑏′ 𝑘
• 任意の1 ≤ 𝑖 ≤ 𝑛に対し、 𝑘=1
𝑖
𝑎′ 𝑘 ≤ 𝑘=1
𝑖
𝑏′ 𝑘
を満たす時、BはAをmajorizeすると呼び、A<<Bなどと表す。
• この用語を導入すると、先の問題は以下のような命題を表している
A<<Bと、A=XBを満たす二重確率行列Xの存在は同値である
(ざっくりとした)証明
• A<<Bなら、Bに有限回のT-変換を施すことでAを得られると仮定する
• T-変換とは、𝐶 ∈ 𝑅 𝑛に対して、𝑇𝐶 = 𝑐1, ⋯ , 𝑐𝑖−1, 𝑡𝑐𝑖 + 1 −
(ざっくりとした)証明
• A<<Bなら、Bに有限回のT-変換を施すことでAを得られることの証明
• 帰納法で示す。n=2は自明。以下、n-1では示されているとする。
• A<<Bかつ中身ソート済みの時𝑏1 ≥ 𝑏 𝑘−1 ≥ 𝑎1 ≥ 𝑏 𝑘を満たす2 ≤ 𝑘 ≤ 𝑛が存
在する。その為𝑎1 = 𝑡𝑏1 + 1 − 𝑡)𝑏 𝑘なる0 ≤ 𝑡 ≤ 1を満たす𝑡が取れる。
• なので、BをT-変換して{𝑎1, 𝑏2, ⋯ , 𝑏 𝑘−1, 𝑡𝑏 𝑘 + 1 − 𝑡 𝑏1, 𝑏 𝑘+1 ⋯ , 𝑏 𝑛}にできる。
• ここで、𝑏2 ≥ ⋯ ≥ 𝑏 𝑘−1 ≥ 𝑎2 ≥ ⋯ ≥ 𝑎 𝑘−1とA<<Bより、 { 𝑏2, ⋯ , 𝑏 𝑘−1, 𝑡𝑏 𝑘 +
他の問題でも似たような話が?
• 合計n個のアメをk人に配って、各人が持ってるアメの数の積を最大
化するにはどう配ればいいか?
• 出展:ARC039B問題「高橋幼稚園」
• もちろん、できるだけ均等に配ればいい。
• できるだけ均等に配るということは、他の全ての配り方にmajorizeさ
れているということでもある。
• A<<Bかつ全ての要素が正なら、Aの全ての要素の積はBの全ての要
素の積以上になるのではないか?
(ざっくりとした)証明
• 前述のように、A<<BならBから有限回のT-変換でAにできる。
• T-変換すると、要素の積が
𝑡𝑏 𝑖+ 1−𝑡)𝑏 𝑗) 𝑡𝑏 𝑗+ 1−𝑡)𝑏 𝑖)
𝑏 𝑖 𝑏 𝑗
倍になる。
• 𝑡𝑏𝑖 + 1 − 𝑡)𝑏𝑗) 𝑡𝑏𝑗 + 1 − 𝑡)𝑏𝑖) = 𝑡 1 − 𝑡) 𝑏𝑖 + 𝑏𝑗 )2≤
𝑏 𝑖+𝑏 𝑗
2
)2≤ 𝑏𝑖 𝑏𝑗より、
𝑡𝑏 𝑖+ 1−𝑡)𝑏 𝑗) 𝑡𝑏 𝑗+ 1−𝑡)𝑏 𝑖)
𝑏 𝑖 𝑏 𝑗
≤ 1となる。
• よってT-変換においては要素の積は増えないので、A<<Bかつ全ての
要素が正ならAの全ての要素の積はBの全ての要素の積以上になる
まとめ
• A<<Bと二重確率行列Xを使ってA=XBと表せるかは同値
• 何か面白そうな性質なので誰かこんな感じのことを使ったプロコンの
問題とか作ってみてください
参考URL
• 英語版Wikipedia
• http://en.wikipedia.org/wiki/Majorization
• 何とニコニコ大百科にも記事がある
• http://dic.nicovideo.jp/a/majorization

競技プログラミングにおけるMajorization