2011-06-17 22 views
5

私はMatlabの遺伝的アルゴリズムの制約行列を構築する上で問題があります。私は、次の制約があり、問題のためのGA機能にこれらの行列をインポートする:それは、単純な方程式にはない制約のこの種を指しているためMatlab遺伝的アルゴリズムの制約を設定するにはどうすればよいですか?

a1<a2<a3...an-1<an , 0<ai<90, n=number of variables. 

MATLABのドキュメントでは、私を助けていませんでした。

私はGAを初めて利用しており、あらゆる助けが受け入れられるでしょう!

答えて

1

matlabによって提供されるデフォルトの制約は、お客様のニーズに合っていません。

goalfunction value = Inf if conditions are not fulfilled 

しかし、これは最適を見つけることに失敗しますので、どのような私の解決策は

であることはあなたがまたしてみてください可能性があります

あなたはこのように、あなたの制約を翻訳し、ペナルティ条件を追加しようとするかもしれません問題を翻訳し、代わりにあなたの価値を発見する、ちょうどこの見つける:

b(1), b(2), ... b(n), where bi = a(i)-a(i-1) and b(i) > 0 for each i 

だから、あなただけの最初の変数のそれぞれの間の距離を見つけ、そして提供されます彼らが陽性であれば、単調に増加するシーケンスが見つかるでしょう。それがあなたが必要とするものです。それがあなたを満足させるかどうか教えてください。

PS。最適化の制約は解決すべき大きな課題であり、各実世界の制約をどのようにしてaX > bに変換するかは必ずしも簡単ではありません:)

1

5パラメータ問題の不等式制約を定義するために、

Aineq = [1 -1 0 0 0; 0 1 -1 0 0; 0 0 1 -1 0; 0 0 0 1 -1; ] 

b = [0 0 0 0] 

これは、以下の制約に変換されます:

a1<a2 
a2<a3 
a3<a4 
a4<a5 

a1<a2<a3<a4<a5

に相当します
関連する問題