• 締切済み

非線形計画法 主-双対問題

次のような制約付き最小化問題を考えています。 目的関数は非線形です。 min x1^2+x2^2 s.t. -x1-x2+4<=0 x1>=0 x2>=0 この問題の場合最適解は(x1,x2)=(2,2)であり、その時の目的関数値は8となります。 次に次式のような双対問題を考えます。 g(x)=-x1-x2+4とおき 双対関数 φ(u)=inf{x1^2+x2^2+u*(-x1-x2+4) : x1>=0 , x2>=0} =inf{x1^2-u*x1 : x1>=0}+inf{x2-2-u*x2 : x2>=0}+4*u 上記においてもしu>=0であれば、x1=x2=(u/2). (なぜなら、x1^2-u*x1をx1で微分するとx1=u/2となる。) u<0であるならばx1=x2-0であることに注目しますと。 φ(u)=-(1/2)*u^2+4*u for u>=0 =4u for u<0 となります. 双対関数がu>0の場合は最大がu=4であることに注目すると、その時の目的関数は8であり、主問題と双対問題の最適な目的関数値は一緒となります。 次に主問題を次のように制約を増やした最小化問題を考えます。 min x1^2+x2^2 s.t. -x1-x2+4<=0 -2*x1-3*x2<=0 x1>=0 x2>=0 これの最適解は上記の問題と同じにならないといけないのですが、 例えば、ラグランジュ関数F(x1,x2,λ1,λ2)を次のようにおき各変数で偏微分して最適解を求めると(λ:ラグランジュ乗数)、 F(x1,x2,λ1,λ2)=x1^2+x2^2+λ1*(-x1-x2+4)+λ2*(-2*x1-3*x2) 最適解はx1=12, x2=-8であり、その時の目的関数は208となり、前問と異なった解が得られました。 この原因は明確であり、ラグランジュ関数の中の各制約式が、偏微分して解を得ることで不等式制約ではなく等式制約とみなされたためです。 偏微分して解を求めなければいいのですが、どうしても偏微分でかいを求めたいために、、前門で示した双対問題を導入しましたが、結果は双対問題のほうでも偏微分するので一緒でした。 しかし、双対問題で得られた解。つまりuは主問題のλに相当し、KKT条件より必ず正である必要があるので、双対問題を解き、uが負になった制約式はの除いてそのあともう一度問題を解きなおす。つまり2番目の問題を前問に置き換える。 っといったことをして問題を解決させようとかんがえていますが、これは理論的に正しいのでしょうか。 これはほんの例題ですが、複数個の不等式制約式を扱い、かつ偏微分可能な最適化問題を解く際に、最適解に対して全てが有効制約になるとは限りませんので、どうかうまくいくアドバイスをください。

みんなの回答

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.3

一般に制約がf(x)<=0なら、スラック変数y(>=0)を導入して  f(x)+y==0 にできます。 また、負を取りうる変数xについては、非負変数x1(>=0)、x2(>=0)を導入して  x:=x1-x2 によりxをx1、x2に置き換えることができます。 このような置き換えにより、一般論では全ての制約が等号で全ての変数が非負の場合だけ考えれば良くなります。 上記は一般論を簡単にするための便法ですので、個別の問題にそのまま使う必要はありません。質問では不等号制約が偏微分手法と合わないということでしたので、等号制約にする手法を紹介したまでです。

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.2

> スラック変数を導入するとうまくいくモノなのでしょうか? うまくいくかどうかは確認していませんが > この原因は明確であり、ラグランジュ関数の中の各制約式が、偏微分して解を得ることで不等式制約ではなく等式制約とみなされたためです。 とありましたので、制約式が初めから等式制約であれば問題は解消されるかもと思った次第です。 あと最適化の一般論は標準形(変数は非負で制約は等式)で行うことが多いので、標準形に直して考える方が扱いやすいかなとも思います。

guugle
質問者

補足

標準形=変数は非負で制約は等式 なのでしょうか? また、私が扱う最適化問題では設計変数(x1、x2)が負になることもあります。 あと、不等式制約を等式制約で扱うためにスラック変数は導入されるのであれば、標準形にするとはスラック変数を導入することなのでしょうか?

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

不等式制約が問題なら、追加変数を導入して制約を等式にしてしまってはダメですか。

guugle
質問者

補足

スラック変数のことですよね? スラック変数を導入するとうまくいくモノなのでしょうか?

関連するQ&A

  • なぜ、双対問題(双対性)を考えるのですか?

    現在、線形計画法を勉強中で、よくわからないことがあります。 例えばこのような問題があるとしまして、 主問題 max Z = 6X1 + 4X2(例えば収益を最大にしたい…) s.t. 2X1 + X2 =< 70    3X1 + 4X2 =< 180    X1,X2 => 0 双対問題 min W = 70Y1 + 180Y2(例えば費用を最小にしたい…) s.t. 2Y1 + 3Y2 => 6    Y1 + 4Y2 => 4    Y1,Y2 => 0 主問題の最適な目的関数値 Z と、 双対問題の最適な目的関数値 W は、必ず一致することは、 シンプレックス法で実際に解いて確認できます。できました。 (参考書として読んでいる本の、標準形での証明・説明はいまいちわかりませんでした…。) ですが、 なんらかの収益を最大にしたい…という問題を定式化して解けば、 その収益を最大にしたいときの最適解・最適値を求められるなら 主問題の方だけ充分ではないのでしょうか? 上記の式の例ですと式の規模(?)に大した違いはないですが、 問題によって、双対問題に作り直した方が計算しやすい? といったようなメリットがあるのですか? なぜ、双対問題を考えるのか、どなたか分かりやすく教えて頂けませんでしょうか。

  • 線形計画問題を単体法を使って解く問題です。

    タブローを使ってとこうとしたのですが制約式にx_2の項がない場所があったため0で割れず行き詰まってしまいました。 解答も解説もなく行き詰まっているため、親切な方詳しい解答・解説をおねがいします。 主問題 Max 2x_1+3x_2+x_3 s.t.x_1+x_2+x_3≦1 -2x_1+x_3≧1 x_1,x_2,x_3≧0 1)単体法を用いて解き、最適解と最適値を過程を記し求めよ。 2)双対問題を記し、1)の結果と相補性定理を用いて最適解を求めよ。 3)ある非負の実数kを用いて主問題の目的関数を(2+k)x_1+3x_2+x_3と変化させた線形計画問題をP'とする(制約式は同じ) 1)で求めた最適解がP'の最適解で在り続けるためのkの範囲を求めよ。

  • 非線形計画問題

    min f(x1,x2)=(x1-1)^2+x2^2 subject to x1+x2>=5 2x1+x2>=7 (計画変数x1,x2は非負) (1)KKT条件を示し、最適解x1*,x2*を求め、目的関数の最小値を示せ。 (2)最適解x1*,x2*が存在する鞍点において、制約条件式(x1+x2>=5)の右辺の値がσだけ増加したときの 目的関数の変化量を求めよ。また、このような変化量に対して、λ1*,λ2*がどのような意味をもつか簡潔に述べよ。 という問題です」。 (1)はノーマルな解法で解いたら, x1*=2,x2*=3,目的関数の最小値は10でした。 (2)については変化量を求めたら、5σ^2-10σでした。 ですが、「このような変化量に対して、λ1*,λ2*がどのような意味をもつか簡潔に述べよ。」 ところはわかりませんでした。 そこがわかる方がいらっしゃいましたら、ぜひご教授お願いします!

  • 線形計画問題の双対問題について疑問

    線形計画問題の双対問題について疑問 主問題  minimize 2x1 + 5x2 sublect to 3x1 + x2 <=3 2x1 + x2 >=5 x1, x2>=0 の双対問題はどうなるのですか? たとえば、 主問題  minimize 2x1 + 5x2 sublect to 3x1 + x2 >=3 2x1 + x2 >=5 x1, x2>=0 なら、 双対問題  maximaize 3y1 + 5y2 sublect to 3y1 + 2y2 <=2 y1 + y2 <=5 y1, y2>=0 となるということはわかるんですが・・・・ よろしくお願いします。

  • 線形計画法の問題です

    P:最大化c^Tx(c^Tはcの転置)   条件Ax<=b   x>=0 ただし、Aはm*n行列、bはm次元ベクトル、cはn次元ベクトル、xはn次元 変数ベクトルである。ベクトルはすべて列ベクトルとし、c^Tはcの転置を表す。 問題Pは最適解を持つと仮定し、目的関数の最大値をfと表す。また、問題P に関連して、m次元ベクトルuをパラメータとする次の線形計画問題を考える。 P(u):最大化c^Tx-u^T(Ax-b)     条件x>=0 問題P(u)の目的関数の最大値g(u)と表す。ただし、問題P(u)が有界でない 場合はg(u)=無限大と定義する。以下の問いに答えなさい。 1)問題Pの双対問題を書きなさい 2)任意のu>=0に対して、g(u)>=fが成り立つことを示しなさい 3)min{g(u)|u>=0}=fが成り立つことを示しなさい。ただし、線形計画問題 に対する強双対定理を用いて良い。 以上の問題をお願いします。

  • 数理計画法の双対問題の解法について

    私は現在、以下のような問題に取り組んでおります。 問題:次の線形計画問題の双対問題を解け。 minimize: z = 2x1+3x2+8x3 2x1+2x2+6x3 ≥ 6 x1+2x2+4x3 ≥ 4 x1,x2,x3 ≥ 0 私はこの双対問題のシンプレックス表を用いて解く方法が分かりません。 どなたか解答・解説をお願いします。

  • 【至急!!】線形計画問題教えてください。

    次の問題を双対シンプレックス法により解け。 minimize 15x1+7x2+12x3 sub to x1x+2x+x3≧1 3x1+x2+x3≧2 x1,x2,x3≧0 双対シンプレックス法での解き方がいまいち分かりません。 双対シンプレックス法での解き方が分かる方教えてください(>_<)

  • 線形計画法について

    線形計画問題で、 制約条件: x1+4x2+x3≦2 x2+x2+2x3≦3 x1,x2,x3≧0 目的関数: max(5x1+8x2+6x3) という問題がでたのですが、 ご覧の通り3変数の問題なのですが図式解法を用いて解けという指定なのです。 2変数ならすんなりできたのですが、3変数となると上手くいきません。 どなたかわかる方いたら是非ご教授願います。

  • ラグランジュ関数を使った問題について

    X財とY財を消費するある消費者の効用関数は u=0.4lnx+0.6lny である。 X財:100円 Y財:200円で、所得:20,000円すべてをX財とY財の購入に充て、効用の極大化を図る。 という設問で、 (1)この消費者が直面する極値問題の目的関数と制約式を具体的に示せ。 →目的関数:u=0.4lnx+0.6lny   制約式:100X+200Y=20,000 (2)ラグランジュ未定乗数をλとして、この消費者が直面する極値問題を解くためのラグランジュ関数L(λ、x、y)を定義せよ →L(λ、x、y)=0.4lnx+0.6lny+λ(20,000-100x-200y) というところまで考えたのですが、 (3)(2)で定義したラグランジュ関数の1階の条件を用いて、この消費者の効用水準の極値を実現する「X財とY財の消費量の組み合わせ」の候補を求めよ。 この問題で偏微分をしてそれぞれ 20,000-100x-200y=0 1/x0.4-100λ=0 1/y0.6-200λ=0 として答えを出そうとしたのですが、まずこちらの途中式は合っているのでしょうか? 式があっていても計算ミスなのか合わない数字が出てきてしまって悩んでいるので、宜しければ正しい解の数値も上げていただけると嬉しいです。

  • 至急お願いします!線形計画問題についてです。

    maximize 7x1 + 4x2 + 2x3 subject to 3x1 + 3x2 + x3 ≦ 36 .................. 2x1 + x2 + x3 = 18 .................. x1,x2,x3≦0 この問題を2段階法により解けという問題なのですが、x1,x2,x3と3変数も出てきているのに、制約関数が2式のみって、解くことができないですよね?3変数であれば最低でも3式は必要だと思います。 問題のミスでしょうか? どなたか教えてください。