アフィンスケーリング法について

このQ&Aのポイント
  • アフィンスケーリング法は線形計画問題において、等式標準形の問題を近似する手法です。
  • アフィンスケーリング法では、実行可能領域を楕円体で近似し、その中で目的関数を最小化する方向に解を更新します。
  • 楕円体の近似形状やAd=0という条件については、具体的な理由や意味については文献を参照してください。
回答を見る
  • ベストアンサー

アフィンスケーリング法について

参考にしている文献 (http://www.me.titech.ac.jp/~mizu_lab/suuti_kougi1.3.pdf) 線形計画問題において、等式標準形の線形計画問題は、  目的:cTx → 最小  条件:Ax=b、x>=0  ・・・ (1) となる。 現時点の点をx_t とする。 (1)の条件では、実行可能領域が多面体になるので、それをx_tを中心とする楕円体で近似する。そして、楕円体の中で目的関数を最小にする方向にx_tを更新する。 というのがアフィンスケーリング法の原理だと思っています。 自分の中では、添付した図のような感じだと思っています。 参考文献では、(1)から楕円体の近似を行っていますが、なぜこの形になるのでしょうか?イメージが浮かびません。  目的:cTd → 最小  条件:Ad=0、dTGd=β^2 まず、dTGd=β^2 が楕円を表しているのでしょうか? 楕円の標準形は、  x^2 / a^2 + y^2 / b^2 = 1 のように表されますが、dTGd=β^2 が楕円になるのがどうもよく分かりません。 また、Ad=0という条件は、どういう意味なのでしょうか? dが楕円曲線上にあるということでしょうか? 回答よろしくお願いします。

  • nnsvm
  • お礼率16% (39/239)

質問者が選んだベストアンサー

  • ベストアンサー
  • PRFRD
  • ベストアンサー率73% (68/92)
回答No.1

図の理解は大変 good で,アルゴリズムはその図の通りに動作します. ただ,普通はそれを「多面体を近似している」とは解釈せず, 単に「探索方向を楕円体上で決定する」と見ると思います. (そのほうが一般的ですし,あんまり良い近似にもなっていないので) さて,以下本題です.dT G d = β^2 が楕円体をあらわしていることは簡単で, G は正定値対称行列なので,適当な直交行列 P を用いて  PT G P = diag(a1, ..., an) (a1, ..., an > 0) と対角化することができます.x = P d と座標変換すれば  xT G x = a1 x1^2 + ... + an xn^2 = β^2 となって,スケーリングの仕方は違いますが,楕円体の標準形になっています. 次に A d = 0 の意味ですが,質問者さんの図を見れば分かるように, 「現在の実行可能解 x_t を d だけ進めた  新しいベクトル x_t + d もまた実行可能になってほしい」 ので,A d = 0 はそれを保証するための条件です. 同じことですが,x_t + d が多面体内にある,という条件です.

nnsvm
質問者

補足

回答ありがとうございました。 回答をみて、理解できました。 また、なぜ「アフィン変換」する必要があるのでしょうか? アフィン変換は、スケーリング・回転することなのは知っていますが、そうする必要がある理由が分かりません。なにも変換しないと解けないのでしょうか? 補足回答お願いします。

その他の回答 (2)

  • PRFRD
  • ベストアンサー率73% (68/92)
回答No.3

No.2のコメントに対して: なんか色々ダメです. 多分 No.1 で私が x という記号を使ったのが悪かったのですが, No.1 の x は,現在居る点 x_t とは無関係の記号です. アルゴリズムの動作はもっと単純で,  現在いる点 x において,正定値行列 G を x から作り,   min cT d   s.t. dT G d = 1, A d = 0  を解いて d を決定し,x を x + βd に置き換える. という動作を繰り返すだけです.なので > 現在いる点xにおいて、 > d = P・x によるアフィン変換で写像をする は違います(アフィン変換を陽に構成することはありません)し, > アフィン変換により、点から楕円体が形成される。 は,よくわかりません(点が楕円体を生成するとは?). また, > 一番長い方向(2次元なら長軸の長さ)を求め も違います.目的関数が最も減る方向であり, それが楕円の軸方向になるとは限りません. なお,アフィンスケーリング法に「アフィンスケーリング」という 名前がついているのは,アルゴリズムの動作が 「アフィンスケーリングした空間で,球で探索する  アルゴリズムを実行しているのと実質的に同じ」 だからで,本当にアフィンスケーリングするわけではありません.

  • PRFRD
  • ベストアンサー率73% (68/92)
回答No.2

No.1のコメントに対して: 「アフィン変換する」というのは要するに「球でなく楕円体を使う」 ということなんですが,これをする必要性を理解するのは結構大変です. 結論だけ簡単に述べると 「球でやると毎ステップの移動距離が小さいけれど  楕円体でやると移動距離がそれなりに大きいから」 というのが理由です. 歴史的には,もともとアフィン変換しない(球を使う)方法がありました. ただ,どうもそれだと収束性能に関して,うまい評価が出来ません. (角のほうで球がどんどん小さくなり,前に進めなくなるイメージ). そこで,球の変わりに楕円体を使う,というものを考えた人がいて, それでやってみると,毎回それなりのステップ進む,ということがわかり, なんと,大域的な収束性まで示せたりします. ちなみにアフィンスケーリング法の詳細な解析は1990年~2000年にかけて行われており, アフィンスケーリングの効果を理解するには,そのあたりの論文を読む必要があります

nnsvm
質問者

お礼

確かに、球より楕円体のほうが効果的なのはイメージできました。 もし球でやるなら、条件の「dTGd=β^2」の部分を、球を表す標準形になるということですよね。 一応自分の理解が以下の通りで正しいのか確認したいので、今一度補足回答お願いします。 流れとしては、 現在いる点xにおいて、 d = P・x によるアフィン変換で写像をする。(回答No.1では、x = P・dとなっていましたが、d = P・xではないでしょうか?) アフィン変換により、点から楕円体が形成される。 この楕円体を多面体の中に収まるように、楕円体の大きさβを調節しつつ、 一番長い方向(2次元なら長軸の長さ)を求め、移動する方向dとする。 あとはこれの繰り返しで最適解を発見する ということでしょうか。

nnsvm
質問者

補足

※お礼の方で投稿してしまったので、補足のところに投稿しなおします。 確かに、球より楕円体のほうが効果的なのはイメージできました。 もし球でやるなら、条件の「dTGd=β^2」の部分を、球を表す標準形になるということですよね。 一応自分の理解が以下の通りで正しいのか確認したいので、今一度補足回答お願いします。 流れとしては、 現在いる点xにおいて、 d = P・x によるアフィン変換で写像をする。(回答No.1では、x = P・dとなっていましたが、d = P・xではないでしょうか?) アフィン変換により、点から楕円体が形成される。 この楕円体を多面体の中に収まるように、楕円体の大きさβを調節しつつ、 一番長い方向(2次元なら長軸の長さ)を求め、移動する方向dとする。 あとはこれの繰り返しで最適解を発見する ということでしょうか。

関連するQ&A

  • 線形計画法の解法について!

    線形計画法の解き方が判らなくて困っています。 判らないこと 1.制約条件の式と計算値 2.目的関数の式と目的値 線形計画法は変数と制約条件と目的関数が与えられます。 制約条件を満足し、目的関数が最大(最小)となる変数を求めます。 線形計画法の例  変数 x y  制約条件   (A)  10x + 4y ≦ 360   (B)  4x + 5y ≦ 200   (C)  2x + 10y ≦ 300   (D)  x ≧ 0   (E)  y ≧ 0  目的関数  M = 7x+12y A,B,C,D,Eの条件を満足し目的関数(M)が最大となる変数x,yを求めます。

  • 非線形計画法について

    非線形計画法を現在勉強しています。 1. どういうときに線形でどういうときに非線形となるのか良く分かりません。 例えば、ある従属変数yを線形関数f=Σcx で表したいときにパラメータcの絶対値の和が定数bより小さくなるという制約のもとで、yとfの二乗誤差を最小化するパラメータcを求める問題を考えます。 この場合、制約条件はcについて線形ですが、最小化したいのは、yとfの二乗誤差なのでこの場合は非線形ということになるのでしょうか?それとも関数fはcに関して線形関数なので、線形計画法で解くことになるのでしょうか? 2. 以下のサイトで勉強しているのですが、このサイトにある楕円型の等高線はおそらく、従属変数yと目的関数fの誤差を表しているのだと思うのですが、なぜ「楕円」になるのですか?二乗誤差を考えるのならば、「円」になるのではと疑問で仕方ありません。 http://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/opt/nonlinear/nonlinear.htm#2.2 疑問が晴れずにもやもやしています。 回答もしくはアドバイス、よろしくお願いします。

  • 線形計画法の解について!

    線形計画法の解、シャドウ価格の求め方がわからなくて、困っています。 問題は、以下のとおりです。 (線形計画法とシャドウ価格) 次の線形計画法の解、各制約のシャドウ価格を求めなさい。 制約条件 2x+y≦7, x+3y≦6, x≧0,y≧0 のもとで、目的関数 Z=x+y を最大化せよ。

  • 非線形最小二乗法のmarquardt法とsimplex法に関して

    ほぼ一定の周期を持つデータがあり、それに対してy = a*cos(b*X+c)+d*X+eという形の近似式を求めたいと思っております。 いろいろ調べてみると非線形最小二乗法を利用して、求めればいいことが分かりました。 しかし非線形最小二乗法にはmarquardt法とかsimplex法などがあることが書かれていたのですが、それらの処理法が何をどうしているのか、参考書を見ても、よく分からず、脳が悲鳴をあげています。 この非線形最小二乗法のmarquardt法とsimplex法に関して、違いと求め方を素人でも分かるような形で教えていただくことができましたら、どうかご教授よろしくお願い致します。

  • 線形計画法について

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

  • Goal Programming の原理を教えてください

    線形計画法は,線形の制約条件を満たしながら,線形の目的関数を最大もしくは最小化する 問題で,シンプレックス法により解くことができるし,幾何的イメージもできるので,わかるのですが, Goal Programming(目標計画法)とはどういうものなのでしょうか? 検索してもあまりヒットせず難しくて分かりませんでした Goal Programming の原理を教えてください

  • 線形計画問題の標準形

    現在大学で線形計画法を学んでいるのですが,実際に数字を用いて問題を解く事にはなれてきたのですが,証明問題などになるとどの様に回答を行えば良いか回答に繋がるプロセス分かりません. どの様なプロセスで回答をすれば良いかなにかアドバイスがございましたらよろしくお願いします.以下が現在回答に困っている問題ですのでよろしくお願いします. 線形計画法の標準形 目的関数:c^T x →最小 制約条件:Ax =b x≧0 m<nとなる自然数.x ∈ R^n, c ∈ R^n, b ∈ R^mであり,Aはm*n実行列で,rankA = m とし b ≠ 0 とする. 問題1.線形計画問題の制約条件を満たすxのなす集合を実行可能領域Fで表し,Fが空集合でないときFが凸集合であることを示しなさい. Fが凸集合とは x,x' ∈ F ⇒tx + (1 - t)x' ∈ F (∀t ∈ [0,1]) が成立するときをいう. 問題2.Au = b を満たすベクトル u ≠ 0 が存在する事を示せ. 問題3.Ax = 0 を満たすxのなす R^n の線形部分空間はAの核と呼ばれkerAと表す.Ax = bを満たすxのなす R^n の部分集合を J で表すとき J = { x ∈ R^n | x = u + v, v ∈ kerA} となる事を示せ.ただしuは問題2で存在を示したベクトルである.

  • 数II図形と方程式の単元の問題解説

    X^2 + 2y^2 = 1 の範囲を満すとき、x+y^2の最大値、最小値を求める問題において、x+y^2= tとおいて、x^2+2y^2=1に代入してxの二次方程式にする。そこで、判別式から実数解を求めるための条件からtの範囲を求めると最大値は出ます。図形的に見れば楕円と放物線の交点になるので、判別式で最大値、最小値が求められると思うのですが、なぜ判別式からは最小値が出ないのか、解説をお願いします。

  • 線形計画法の説き方 初級シスアド 平成16年度 午前問73改変 

    線形計画法の説き方についてです。 ある工場で製品A,Bを生産している。製品Aを1t製造するのに、原料P,Qをそれぞれ4t、9t必要とし、製品Bについてもそれぞれ8t、6t必要とする。また、製品A,Bは1tあたりそれぞれ2万円、3万円の利益を生む。しかし、原料Pは40t、Qは54tしかない。利益を最大にするにはどうしたらよいか。 制約条件 4x+8y≦40→y≦-1/2x+5      9x+6y≦54→y≦-3/2x+9      x≧0,y≧0 目的関数 2x+3y         答えxが3 yが4 ここまでは分かります。その下にグラフがあり、頂点のいずれかで利益が最大になります。となっていて、4つの頂点で目的関数に値を入れて答えを出しているのですが、このグラフはどうやって書くのですか。また、その答えが4つの頂点の中の、x、y軸に接していない頂点のxもしくはyの値の出し方も分かりません。 更に、制約条件の式を普通に解いても答えと同じx、yが出たのですが、これはたまたまでしょうか。 ちなみに数学が苦手なほうです。よろしくお願いします。

  • 線形計画問題

    最近線形計画法について独学で勉強を始めたのですが いくつかの書籍を調べてもどうしても分からない点が あったのでこの場を利用させて頂きます。 頭を悩めていますのは制約条件が特殊なためです。 問題を簡略すると以下のようになっています。 min : x(1)/2 + 5x(2)/2 suject to: 1/x(1)+1/4x(2) ≦ 8 x(1) ≧ 0, x(2) ≧ 0 御覧頂けますように制約条件において決定変数が 分母にきているのです。目的関数で分母に変数を 持つものは分数計画問題といるのを拝見した事が あるのですが上記のような例は探し方が悪いのか 見つける事ができていません。 実行可能領域は非有界ですが最小化問題のため 上記の例であると2変数なのでグラフにプロットする 事でおよそですが解は見つかりました。 しかし実際の問題は10変数以上の問題となっています ので解が求められません。 その後も実行可能領域を多面体で近似すれば良いのか 等の考察を繰り返しましたが問題が複雑になりお手上げ の状態です。 ちゃんとした解法があるのならお教え頂けるか書籍の 案内をして頂きたいです。宜しくお願いします。