2

OPL で実装されたモデルがあります。このモデルを使用して、Java でローカル検索を実装したいと考えています。いくつかのヒューリスティックでソリューションを初期化し、これらの初期ソリューションを cplex に与えて、モデルに基づいてより良いソリューションを見つけたいと考えていますが、検索を特定の近隣に限定したいとも考えています。それを行う方法について何か考えはありますか?

また、すべての変数の範囲を制限するにはどうすればよいですか? そして、何が最高なのですか? これらのヒューリスティックとローカル検索を独自の opl、Java、さらには C++ で実装しますか?

前もって感謝します!

4

2 に答える 2

1

それらはいくつかの質問です。そこで、いくつかの指針と提案を以下に示します。

  1. Cplex では、 CPLEX のソリューションを変更する方法に関するIBM のドキュメントのIloOplCplexVectors() 良い例を次に示します。

  2. OPL 内でも同じことができます。基本的に、変数に一連の値を設定し、それらを CPLEX に渡します。(この例を参照してください。)

  3. 検索を特定の地域に限定する:詳細を知らずに応答する簡単な方法はありません。しかし、人々がこれを行うには2つの方法があります。

    を。その「近所」に有利になるように目的を変更し、他の地域を魅力のないものにします。

    b. 検索スペースから他の近隣を除外する制約を追加します。

  4. OPL で変数の範囲を制限することに関しては、直接行うことができます。

    dvar int supply in minQty..maxQty;
    

または、決定変数の配列全体について、次の行に沿って何かを行うことができます。

range CreditsAllowed = 3..12;
dvar int credits[student] in CreditsAllowed;

これがあなたの前進に役立つことを願っています。

于 2013-08-22T05:46:27.980 に答える