とし、 上の一様マトロイド を考える。すなわち、 の部分集合 が独立であるとは であることとする。各要素 に重み を
で与え、基 の重みを と定める。 の基の重みの最大値を求めよ。
貪欲法による最大重み基
重みの大きい順に独立性を保つ要素を加える貪欲法で、マトロイドの最大重み基の重みを求められる。同じ重みの要素の選び方を調べて、最大重み基の個数を数えられる
前提
- マトロイドの独立集合・基・階数 (大学院数学 凸最適化・組合せ最適化)
この技能までの道筋(36 技能)
読み込み中…
右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 三角形の角の大きさ (算数 平面図形)
- 対頂角と平行線の同位角・錯角 (中学数学 平面図形)
- 三角形の外角と角の組み合わせ (中学数学 平面図形)
- 小数の四則計算 (算数 計算と数のきまり)
- 分数のたし算・ひき算 (算数 計算と数のきまり)
- 分数のかけ算・わり算 (算数 計算と数のきまり)
- 小数と分数のまじった計算 (算数 計算と数のきまり)
- 逆算(□ を求める) (算数 計算と数のきまり)
- 正負の数の加法・減法 (中学数学 数と式)
- 四則の混じった計算の順序 (算数 計算と数のきまり)
- 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
- 分配法則を使った計算のくふう (算数 計算と数のきまり)
- 文字式の計算(同類項・分配法則) (中学数学 数と式)
- 1 次方程式の解き方 (中学数学 方程式)
- 二等辺三角形の角 (中学数学 平面図形)
- 平行四辺形と特別な四角形の性質 (中学数学 平面図形)
- 三角形・四角形の面積 (算数 平面図形)
- 約数の見つけ方 (算数 整数の性質)
- 素因数分解と約数の個数 (算数 整数の性質)
- 平方根の意味と根号の簡単化 (中学数学 数と式)
- 三平方の定理 (中学数学 相似と三平方の定理)
- 乗法公式による展開 (中学数学 数と式)
- 折り返した図形の角と長さ (中学数学 平面図形)
- 三平方の定理と平面図形 (中学数学 相似と三平方の定理)
- ベクトルの演算と成分 (数学C ベクトル)
- 行列の和・積と 2 次の逆行列 (大学数学 線形代数)
- 掃き出し法と連立 1 次方程式 (大学数学 線形代数)
- 行列の階数と解の存在 (大学数学 線形代数)
- 樹形図で数え上げる (算数 場合の数)
- 積の法則と和の法則 (算数 場合の数)
- 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
- 順列・円順列・重複順列 (数学A 場合の数と確率)
- 組合せ (数学A 場合の数と確率)
- グラフの次数と握手補題 (大学数学 グラフ理論)
- 最小全域木(クラスカル法・プリム法) (大学数学 グラフ理論)
- マトロイドの独立集合・基・階数 (大学院数学 凸最適化・組合せ最適化)
説明
有限集合 上のマトロイドの各要素に実数の重み が与えられたとき、基 の重み を最大にする基(最大重み基)を、重みの大きい順に「独立性を保てるなら加える」という単純な手順(貪欲法)で求められます。グラフ的マトロイドでは最大重み全域木(クラスカル法の逆順版)、線形マトロイドでは重み付きのベクトルから基を選ぶ問題になります。さらに、同じ重みの要素ごとにグループに分けて選び方を調べることで、最大重み基がいくつあるかも数えられます。
なぜそうしてよいのか
マトロイドの独立集合族 は、(i) 独立集合の部分集合は独立、(ii) , ならある で (増加公理)、を満たし、その帰結として、どの部分集合 についても に含まれる極大な独立集合( の基)はすべて同じ大きさ をもちます。以下、現れる重みの値を とし、重みが の要素のグループを 、重みが 以上の要素全体を とします(, )。
しきい値で切って考える。 任意の基 ()について、重みを段差に分けて足し直すと となります(重み の要素は、 の項で ずつ、最後に を数えられ、合計 になります)。 は に含まれる独立集合なので で、係数 は正です。 はどの基でも同じなので( が負でもかまいません)、 が成り立ち、等号はすべての で 、つまり が の基であるときに限ります。貪欲法で得た はこの条件を満たします。実際、 の要素をすべて調べ終えた時点で、捨てられた は、そのときの選択集合( の部分集合)に加えると従属だったので、(i) より も従属です。よって は の中で極大な独立集合、すなわち の基です。したがって は上の上界を達成し、最大重み基です。
個数の数え方。 上の議論から、最大重み基とは「すべての で が の基」となる基のことです。そこで をグループ の順に決めていくと、 から選ぶ個数は でどの最大重み基でも同じです。すでに決めた ( の基)に対し、, で が独立になるものを選びます。ここで の要素はどれも に加えても階数を増やさない(グラフ的マトロイドなら と は同じ連結成分をもつ、線形マトロイドなら同じ部分空間を張る)ので、 が独立かどうかは「 か」だけで決まり、 の選び方によりません。よって各段の選び方の数 は以前の選び方と無関係に決まり、最大重み基の個数は積 になります。
手順
要素を重みの値ごとにグループ (重み )に分け、重みの大きい順に並べる。同じ重みの要素どうしは任意の順でよい
選んだ集合を から始め、並べた順に要素 を調べて、 が独立なら を に加え、従属なら捨てる(グラフ的マトロイドなら「閉路ができないか」、線形マトロイドなら「1 次独立か」で判定)
になったら止める(重みが負の要素も、基の大きさに足りなければ加える)。このとき は最大重み基で、最大重みは
個数を数えるときは、各グループについて の階数を求め、 から選ぶ個数 を出す()
各 で、, のうち となるもの(=前の段で選んだ基に加えても独立なもの)の数 を数える。グラフ的マトロイドなら、 の各連結成分を 1 点につぶしたグラフで が閉路を作らない選び方を数えればよい
最大重み基の個数は ( の段は )
例題
頂点 をもつ完全グラフ のグラフ的マトロイドを考える。各辺の重みを とする( は頂点 を結ぶ辺)。このマトロイドの基(全域木)の重みの最大値と、最大重み基の個数を、この順に求めよ。
例題の解答
頂点 4 個で連結なので階数は で、基は辺 3 本の全域木です。
手順 1: グループは (重み 5), (重み 3), (重み 1)。並べる順は とします。
手順 2: 順に調べます。
- : 閉路はできないので加える。
- : 閉路はできないので加える。
- : の閉路ができる(従属)ので捨てる
- : 頂点 4 はまだどの辺ともつながっていないので加える。
手順 3: で止めます。最大重みは 。
手順 4: の階数は 1 なので 。 は 4 頂点をすべてつなぐので階数 3、。 の階数も 3 なので 。
手順 5: ( を選ぶしかない)。 は、 の連結成分 を 1 点 につぶしたグラフで考えます。 はどちらも – の辺、 はどちらも – の辺になるので、閉路を作らずに 2 本選ぶには – から 1 本、– から 1 本選ぶ必要があり、( や は と閉路を作るので不可)。 より 。
手順 6: 個数は 。実際、最大重み基は の 4 個です。
したがって、最大値は 、個数は 。
答え:
よくある誤り
独立性を確かめずに、重みの大きい方から 個をそのまま選んでしまう誤り。例えば で のとき、上位 3 本 は閉路をなして基でないので は答えにならない。正しくは各段階で が独立かを判定し、独立のときだけ加える(答えは )
重みが負の要素を捨てて、要素の少ない集合で止めてしまう誤り。「最大重み基」は大きさ の基の中で最大を求めるので、例えば階数 2 で重み の要素を選んだあと独立に加えられる要素が重み のものしかないなら、答えは であって ではない( は最大重みの独立集合の値)
同じ重みのグループから選ぶ個数だけを見て、独立性を確かめずに を掛けてしまう誤り。例題では重み 3 のグループから 2 本選ぶので とすると個数を と答えてしまうが、 と は と閉路を作る。正しくは前の段の連結成分をつぶしたグラフで閉路を作らない選び方だけを数えて 、個数は
いったん捨てた要素を後で拾い直そうとする、または採用した要素を後で入れ替えようとする誤り。ある時点で が従属なら、 を大きくした後も は従属のまま(従属集合を含む集合は従属)なので、各要素は 1 回調べれば十分である。例えば例題で捨てた を最後に と入れ替えても重みは のままで、改善にはならない
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。
入口の問題
この技能を使う問題
とし、各 に のベクトル を次のように対応させる。
を 上の線形マトロイド( が独立であるとは、 が 上一次独立であること)とし、 をその双対マトロイド(基は の基の補集合)とする。各要素の重みを
と定め、部分集合 の重みを とする。 の基 にわたる の最大値を求めよ。有限集合 の部分集合の族 を次で定める。
部分集合 が独立であるとは、単射 で、すべての に対して を満たすものが存在することと定める( は空写像でもよく、 は独立とする)。このとき独立集合全体は 上のマトロイド (族 の横断マトロイド)をなす。各要素の重み を
とし、 に対して とおく。 の基 に対する の最大値を求めよ。を有限集合、 を の部分集合の族とし、 は次の 3 条件を満たすマトロイドとする。
- (I1)
- (I2) かつ ならば
- (I3) かつ ならば、ある が存在しての元を独立集合、包含関係について極大な独立集合を基という。すべての基の要素数は等しい(これを の階数 とする)ことは用いてよい。
重み が単射である(相異なる要素の重みは相異なる)とし、基 の重みを と定める。このとき、重み を最大にする基はただ 1 つであることを証明せよ。
頂点集合を とする単純グラフ を考える。 の辺集合 は、 の異なる 頂点を結ぶ 本の辺すべてと、 本の辺 からなる()。辺 を と書く。各辺の重み は次のとおりである。
閉路を含まない辺集合を森とよぶ(空集合も森とする)。 の部分集合 が独立であることを「森 を用いて と書けること」と定めると、これは 上のマトロイド ( のグラフ的マトロイド とそれ自身との合併 )を定める。 の階数 と、 の基 の重み の最大値を、この順に組で求めよ。頂点集合を とする完全グラフ の辺集合を とし、 を 上のグラフ的マトロイド(独立集合は森をなす辺集合)、 をその双対マトロイドとする。さらに の階数 への切り詰め を
で定める( はマトロイドである)。辺 ()に重み を与える。 の基 のうち、重みの和 が最大となるものについて、その最大値を求めよ。
を 2 元体とし、(15 個のベクトルからなる集合)とする。 上のマトロイド を、部分集合 が 上 1 次独立であるとき、かつそのときに限り独立集合であるものとして定める( の階数は )。 を の双対マトロイド、すなわち の基の補集合 全体を基の族とするマトロイドとする。
ベクトル の成分のうち であるものの個数を と書き、重み を
で定める。 の基 の重みを とするとき、 が最大となる の基 の個数を求めよ。
この技能の次に学べること
- 双対マトロイドと切り詰め (大学院数学 凸最適化・組合せ最適化)