技能一覧 › 大学院数学 凸最適化・組合せ最適化

貪欲法による最大重み基

重みの大きい順に独立性を保つ要素を加える貪欲法で、マトロイドの最大重み基の重みを求められる。同じ重みの要素の選び方を調べて、最大重み基の個数を数えられる

前提

この技能までの道筋(36 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 三角形の角の大きさ (算数 平面図形)
  2. 対頂角と平行線の同位角・錯角 (中学数学 平面図形)
  3. 三角形の外角と角の組み合わせ (中学数学 平面図形)
  4. 小数の四則計算 (算数 計算と数のきまり)
  5. 分数のたし算・ひき算 (算数 計算と数のきまり)
  6. 分数のかけ算・わり算 (算数 計算と数のきまり)
  7. 小数と分数のまじった計算 (算数 計算と数のきまり)
  8. 逆算(□ を求める) (算数 計算と数のきまり)
  9. 正負の数の加法・減法 (中学数学 数と式)
  10. 四則の混じった計算の順序 (算数 計算と数のきまり)
  11. 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
  12. 分配法則を使った計算のくふう (算数 計算と数のきまり)
  13. 文字式の計算(同類項・分配法則) (中学数学 数と式)
  14. 1 次方程式の解き方 (中学数学 方程式)
  15. 二等辺三角形の角 (中学数学 平面図形)
  16. 平行四辺形と特別な四角形の性質 (中学数学 平面図形)
  17. 三角形・四角形の面積 (算数 平面図形)
  18. 約数の見つけ方 (算数 整数の性質)
  19. 素因数分解と約数の個数 (算数 整数の性質)
  20. 平方根の意味と根号の簡単化 (中学数学 数と式)
  21. 三平方の定理 (中学数学 相似と三平方の定理)
  22. 乗法公式による展開 (中学数学 数と式)
  23. 折り返した図形の角と長さ (中学数学 平面図形)
  24. 三平方の定理と平面図形 (中学数学 相似と三平方の定理)
  25. ベクトルの演算と成分 (数学C ベクトル)
  26. 行列の和・積と 2 次の逆行列 (大学数学 線形代数)
  27. 掃き出し法と連立 1 次方程式 (大学数学 線形代数)
  28. 行列の階数と解の存在 (大学数学 線形代数)
  29. 樹形図で数え上げる (算数 場合の数)
  30. 積の法則と和の法則 (算数 場合の数)
  31. 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
  32. 順列・円順列・重複順列 (数学A 場合の数と確率)
  33. 組合せ (数学A 場合の数と確率)
  34. グラフの次数と握手補題 (大学数学 グラフ理論)
  35. 最小全域木(クラスカル法・プリム法) (大学数学 グラフ理論)
  36. マトロイドの独立集合・基・階数 (大学院数学 凸最適化・組合せ最適化)

説明

有限集合 上のマトロイドの各要素に実数の重み が与えられたとき、基 の重み を最大にする基(最大重み基)を、重みの大きい順に「独立性を保てるなら加える」という単純な手順(貪欲法)で求められます。グラフ的マトロイドでは最大重み全域木(クラスカル法の逆順版)、線形マトロイドでは重み付きのベクトルから基を選ぶ問題になります。さらに、同じ重みの要素ごとにグループに分けて選び方を調べることで、最大重み基がいくつあるかも数えられます。

なぜそうしてよいのか

マトロイドの独立集合族 は、(i) 独立集合の部分集合は独立、(ii) , ならある で (増加公理)、を満たし、その帰結として、どの部分集合 についても に含まれる極大な独立集合( の基)はすべて同じ大きさ をもちます。以下、現れる重みの値を とし、重みが の要素のグループを 、重みが 以上の要素全体を とします(, )。

しきい値で切って考える。 任意の基 ()について、重みを段差に分けて足し直すと となります(重み の要素は、 の項で ずつ、最後に を数えられ、合計 になります)。 は に含まれる独立集合なので で、係数 は正です。 はどの基でも同じなので( が負でもかまいません)、 が成り立ち、等号はすべての で 、つまり が の基であるときに限ります。貪欲法で得た はこの条件を満たします。実際、 の要素をすべて調べ終えた時点で、捨てられた は、そのときの選択集合( の部分集合)に加えると従属だったので、(i) より も従属です。よって は の中で極大な独立集合、すなわち の基です。したがって は上の上界を達成し、最大重み基です。

個数の数え方。 上の議論から、最大重み基とは「すべての で が の基」となる基のことです。そこで をグループ の順に決めていくと、 から選ぶ個数は でどの最大重み基でも同じです。すでに決めた ( の基)に対し、, で が独立になるものを選びます。ここで の要素はどれも に加えても階数を増やさない(グラフ的マトロイドなら と は同じ連結成分をもつ、線形マトロイドなら同じ部分空間を張る)ので、 が独立かどうかは「 か」だけで決まり、 の選び方によりません。よって各段の選び方の数 は以前の選び方と無関係に決まり、最大重み基の個数は積 になります。

手順

  1. 要素を重みの値ごとにグループ (重み )に分け、重みの大きい順に並べる。同じ重みの要素どうしは任意の順でよい

  2. 選んだ集合を から始め、並べた順に要素 を調べて、 が独立なら を に加え、従属なら捨てる(グラフ的マトロイドなら「閉路ができないか」、線形マトロイドなら「1 次独立か」で判定)

  3. になったら止める(重みが負の要素も、基の大きさに足りなければ加える)。このとき は最大重み基で、最大重みは

  4. 個数を数えるときは、各グループについて の階数を求め、 から選ぶ個数 を出す()

  5. 各 で、, のうち となるもの(=前の段で選んだ基に加えても独立なもの)の数 を数える。グラフ的マトロイドなら、 の各連結成分を 1 点につぶしたグラフで が閉路を作らない選び方を数えればよい

  6. 最大重み基の個数は ( の段は )

例題

頂点 をもつ完全グラフ のグラフ的マトロイドを考える。各辺の重みを とする( は頂点 を結ぶ辺)。このマトロイドの基(全域木)の重みの最大値と、最大重み基の個数を、この順に求めよ。

例題の解答

頂点 4 個で連結なので階数は で、基は辺 3 本の全域木です。

手順 1: グループは (重み 5), (重み 3), (重み 1)。並べる順は とします。

手順 2: 順に調べます。
- : 閉路はできないので加える。
- : 閉路はできないので加える。
- : の閉路ができる(従属)ので捨てる
- : 頂点 4 はまだどの辺ともつながっていないので加える。

手順 3: で止めます。最大重みは 。

手順 4: の階数は 1 なので 。 は 4 頂点をすべてつなぐので階数 3、。 の階数も 3 なので 。

手順 5: ( を選ぶしかない)。 は、 の連結成分 を 1 点 につぶしたグラフで考えます。 はどちらも – の辺、 はどちらも – の辺になるので、閉路を作らずに 2 本選ぶには – から 1 本、– から 1 本選ぶ必要があり、( や は と閉路を作るので不可)。 より 。

手順 6: 個数は 。実際、最大重み基は の 4 個です。

したがって、最大値は 、個数は 。

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題

この技能の次に学べること