2016-10-23 40 views
1

C#での最初のトラップを避ける:ソルバーが生じるであろう残念ながらaccord.net Neldermeadの最適化は、私は次のように最適化ソルバーaccord.netが提供するNelderMeadを使用しようとしている

var solution = new NelderMead(vecCMrIni.Length, CMOpt); 
// CMOpt is the function to be minimized  
for (int m = 0; m < vecCMrIni.Length; m++) // set lower and upper bound 
     { solution.LowerBounds[m] = vecCMrLB[m]; 
      solution.UpperBounds[m] = vecCMrUB[m];} 
bool success = solution.Minimize(vecCMrIni);// minimize CMOpt, with vecCMrIni as initial. 

、それが判明します解は初期ベクトルvecCMrIniとまったく同じです。この問題を克服する方法はありますか?おかげ

答えて

1

私は同じ問題を抱えていたし、私の場合、それは「最大値」の値に設定解決された。この変更前

// (this value depends on your function, but try to put a huge negative value) 
solution.MaximumValue = -1e6; 

を、「最小化」の方法は、ステータスを返していました:MinimumAllowedValueReached

関連する問題