凸最適化・組合せ最適化の問題
を変数とする次の 0-1 ナップサック問題 を考える。
の最適値を とする。不等式制約だけに乗数 を導入してラグランジュ関数
を定め、双対関数を 、双対問題の最適値を とする。双対ギャップ を求めよ。
この問題で使うもの
- 非凸・整数の問題の双対ギャップ(説明と入口の問題)
- ラグランジュ双対関数と弱双対性(説明と入口の問題)
この問題を解けるようになるまで(66 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 分数のたし算・ひき算
- 小数の四則計算
- 正負の数の加法・減法
- 分数のかけ算・わり算
- 四則の混じった計算の順序
- 正負の数の乗除・累乗と四則混合
- 分配法則を使った計算のくふう
- 文字式の計算(同類項・分配法則)
- 乗法公式による展開
- 因数分解
- 3 次式までの展開と因数分解
- 微分係数と導関数の定義
- 多項式の微分
- 等間隔にならんだ数の和
- 等差・等比数列の和と Σ
- 数列の極限
- 関数の極限
- 積と商の微分
- 合成関数の微分
- 偏微分と全微分
- 小数と分数のまじった計算
- 逆算(□ を求める)
- 1 次方程式の解き方
- 比例・反比例の式とグラフ
- 約数の見つけ方
- 素因数分解と約数の個数
- 平方根の意味と根号の簡単化
- 関数 の式と変域
- 平方完成と 2 次関数のグラフ
- 2 次不等式
- 剰余の定理・因数定理と高次方程式
- 増減表と極値
- 第 2 次導関数とグラフの凹凸
- 2 変数関数の極値
- ラグランジュの未定乗数法
- 三角形の角の大きさ
- 対頂角と平行線の同位角・錯角
- 三角形の外角と角の組み合わせ
- 二等辺三角形の角
- 平行四辺形と特別な四角形の性質
- 三角形・四角形の面積
- 三平方の定理
- 折り返した図形の角と長さ
- 三平方の定理と平面図形
- ベクトルの演算と成分
- 行列の和・積と 2 次の逆行列
- 掃き出し法と連立 1 次方程式
- 最大公約数と最小公倍数
- 比の性質と簡単な比
- 相似な三角形と長さの比
- 三角形の相似条件と対応する辺の長さ
- 平行線と線分の比
- 2点間の距離と内分点・外分点
- 円の方程式
- 連立方程式の解き方(加減法・代入法)
- 1 次関数の式の求め方
- 直線の方程式
- 不等式の表す領域
- 点と直線の距離
- 円と直線の位置関係と弦の長さ
- 2直線の平行・垂直
- 円の接線
- 領域における最大・最小
- 線形計画の双対定理
- ラグランジュ双対関数と弱双対性
- 非凸・整数の問題の双対ギャップ
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
主問題は小さいので実行可能な部分集合を列挙して を求め、双対関数は ごとに分離して最大化する。
ヒント 2
は凸な区分線形関数で、折れ点は 。傾き の符号が変わる点を探す。
ヒント 3
である。また の傾きは で 、 で なので、最小点は 。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
主問題の最適値 . 重さ の合計が 以下となる部分集合を調べる。 個すべては重さ 、 個の組では がいずれも不適で、 は重さ 、価値 。 個の組では (重さ 、価値 )、(, )、(, )、(, )、(, )、(, )。 個以下では価値は 以下。よって 。
双対関数. (, )は ごとに分離するので、各 について独立に最大化して
これは区分的に線形な凸関数で、折れ点は すなわち である。 における傾きは である。
- : となるのは で、傾きは 。
- : で、傾きは 。
凸関数の傾きが負から正に変わるので、最小は でとられる:
よって 。(確認:この値は線形計画緩和の値に一致する。価値/重さの比の大きい順に とし、残り容量 に を入れると 。 を区間 に置き換えても の最大値は変わらないため、ラグランジュ双対は LP 緩和の双対と一致する。)
双対ギャップ. 弱双対性より であり、
主問題が整数制約をもち凸でないため強双対性は成り立たず、正のギャップが生じる。
別解
最適値 :重さの合計が 9 以下になる組合せを調べる。
- 3 個以上を選ぶ場合、実行可能なのは (重さ 9、価値 12)のみ。ほかの 3 個の組は重さが 10 以上、4 個すべてなら重さ 14 で不可能。
- 2 個を選ぶ場合、 は重さ 9 で価値 12、 は価値 11、 は価値 10、そのほかはさらに小さい。
よって 。
双対関数:。これは の区分線形凸関数で、折れ点は である。
双対問題の値は、 に緩和した LP 緩和の最適値に等しい。比 の大きい順(項目 4、1、3、2)に詰めると、項目 4(重さ 2)と項目 1(重さ 5)で重さ 7、残り容量 2 に項目 3 を 入れる。値は となる。
検算: のとき 。項目 3 の寄与は 、項目 2 の寄与は なので 0。
これより 。
双対ギャップ:。