質問: ペナルティ関数法(罰金法) 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回も試さなければならなくなります。 でも、実際にそうする必要はありません。 一定の規則のもとに実行すれば、それより少ない回数で済みます。 ---------------------------------------------------------------- ここで質問ですが一定の規則とはどういった規則でしょうか? また、ペナルティ係数は無限大(∞)が理想ですが、実際に制約を複数個有する問題において、複数個のペナルティ係数はそれぞれ違った値の∞に近い値にしないといけないのでしょうか? 違う値の係数値にしないといけないのであれば、なぜそれぞれ違った係数値にしないといけないのか教えてください。
回答: 転載されている質問と回答が色々とおかしいので, 質問者さんの質問に答えるのが非常に難しくなっています. (具体的には...... (1) 質問の解き方が悪い:間違っているし,論理的に誤解している. (2) 解答もそれに引きずられて論理的に変なことを書いている) なので,質問に対する解答はできないのですが,要点だけ述べると (1) 回答にある拡張目的関数の定義が悪い(r1 = ... = rn としてよい). (2) 従って r の増加列は 1 つだけ取れば十分. です. もちろん,もっと違った部分で注意しないといけないことがあり, 場合分けなどと書かれている部分はそちらで扱う必要があるのですが, それは,正しく質問にある問題を解けば納得できるはずです. #もし,質問にある解き方が変だ,ということが分からないのであれば, #その問題の解き方が分からない,という質問をしたほうが良いかもしれません.