2017-09-25 7 views
0

私は、VRP(時間窓付き)のサンプルベースのアプリのための一種の「スマートな」MoveIteratorFactoryを作成したいと思います。この移動ファクトリは、現在のソリッドステートに基づいてCompositeMoveを毎回生成するイテレータを返す必要があります。MoveIteratorFactoryは現在の動作中のソリューションに基づいて移動を生成できますか?

MoveIteratorFactoryは、現在のソリッドステートに基づいて移動を生成するイテレータを作成できますか?

AFAIK MoveIteratorFactoryのメソッドはScoreDirectorオブジェクトを受け入れます。返されるIteratorは、ScoreDirectorの動作中のソリューションから取得したインスタンスを使用して移動を生成するようです。しかし、これらのインスタンスは、ソルバープロセスが進行中に更新されていますか? hasNextおよび次のメソッドが呼び出されているときに、現在のソリューション状態に応じてすべての計画変数が設定されていますか?または、イテレータにScoreDirectorインスタンスを持つフィールドがあり、ScoreDirectorから毎回取得されたインスタンスを使用して移動を生成する必要がありますか?

答えて

1

はい、ちょうど以上でないことを確認してください(デフォルトではJUST_IN_TIMEなので、デフォルトで問題ありません)。ドキュメントの第7章を参照してください。

すべてのステップの初めに、workingSolutionの状態を考慮に入れてcreateRandomMoveIterator()を呼び出します。

+0

ありがとうございます!私は、各ステップのイテレータの新しいインスタンスを毎回割り当てるときの影響(パフォーマンス)が何であるか疑問に思っていますか? –

+0

は、リスト内のすべての移動を作成する場合は無視します(そうでなければ、MoveListFactoryを使用することもできます) –

関連する問題