ペナルティ関数法(罰金法)
yah○○の知恵ふくろに以下の質問がありました
最小化:f(x1,x2)=(x1)^2+(1/3)(x2)^2
制 約:g(x1,x2)=-x1-x2+1<0
という制約条件が1つの問題であれば、ψ=(-x1-x2+1)^2とすることで拡張目的関数が
F(x1,x2,r)=f(x1.x2)+rψ(x1,x2)
=(x1)^2+(1/3)(x2)^2+r(-x1-x2+1)^2 ただし(-x1-x2+1<0である時)
となり、極小解を求めると、制約を満足していない領域においては
dF/dx1=(1+r)x1+rx2-r=0
dF/dx2=3rx1+(1+3r)x2-3r=0
より
x1=r/(4r+1)
x2=3r/(4r+1)
r=∞であるので、x1=1/4 x2=3/4と求まります。
ところで制約条件が複数個になった場合はどのようにといたらいいのでしょうか。
----------------------------------------------------------------
回答は、、、
制約条件が複数個 g1(x1,x2) , g2(x1,x2) , gn(x1,x2) になったとしましょう。
すると、拡張目的関数は
F(x1,x2,r)=f(x1.x2)+r1ψ1(x1,x2)+r2ψ2(x1,x2)+ … +rnψn(x1,x2)
となります。
そして、r1,r2,…,rn のすべての可能性を試せばOKです。
もし制約条件が2つなら、
(1) r1=0 , r2=0
(2) r1=0 , r2→∞
(3) r1→∞ , r2=0
(4) r1→∞ , r2→∞
の4つを試せばOKです。
しかし、この方法では、制約条件が10個になると1024回も試さなければならなくなります。
でも、実際にそうする必要はありません。
一定の規則のもとに実行すれば、それより少ない回数で済みます。
----------------------------------------------------------------
ここで質問ですが一定の規則とはどういった規則でしょうか?
また、ペナルティ係数は無限大(∞)が理想ですが、実際に制約を複数個有する問題において、複数個のペナルティ係数はそれぞれ違った値の∞に近い値にしないといけないのでしょうか?
違う値の係数値にしないといけないのであれば、なぜそれぞれ違った係数値にしないといけないのか教えてください。
補足
すみません。某サイトの質問のとこで始めは質問させてもらっていたのですが、いっこうに回答が得られず「教えてgoo」で質問させてもらいました。