制約プログラミングで、変数の変更の数を考慮に入れるモデルはありますか?


10

特定の変数の値を変更するとコストがかかるCSPモデルを考えてみます。目的関数が検索プロセス中に変数の値の変化の数も考慮する作業はありますか?

例:変更にコストがかかる変数が他のエージェントの制御下にある可能性があり、変数を変更するためにそのエージェントを関与させるオーバーヘッドがいくつかあります。別の例:変数は制約の1つに参加し、この制約の満足には、高価な関数(シミュレーターなど)の呼び出しが含まれます。たとえば、は制約で、は高価です。計算機能。したがって、とは変更が高価な変数です。z=f(x,y)fxy


1
目的関数はCSPの最終的な値について話し、検索プロセスを認識しません。したがって、標準的な定式化では、そのような変数の変更はCSPモデルに公開されません。Chocoなどの一部のソルバーは、検索プロセスをガイドするためのヒューリスティックを提供します。これらの一部は、ユーザーが定義することもできます。おそらく、それが検索の方法を変更する場所です。
デイブクラーク

1
しかし、なぜ目的関数は、ソリューションを思い付くのにどれほど費用がかかるかを反映しているのでしょうか。その後、問題領域でのソリューションの有用性によってソリューションを比較しないでください。それとも、解決までの時間は現実の問題の一部ですか?
ラファエル

1
分散制約充足の設定にいるようで、ヒューリスティックを探しているようです。
Dave Clarke

回答:


4

コストに敏感な(コストを意識した、予算が立てられた最適化手法が必要なようです。2つの値(たとえば、目的の解ととに対する操作のコスト)を最小化することは、複数基準の最適化問題であり、それらを解決するのは非常に難しい傾向があります。一般的なアプローチは、最大許容コストの予算を指定し、に関して目的関数を最小化することです。この定式化は、追加の制約として既存のフレームワークにうまく適合する傾向があります。もちろん、意味のあるソリューションが得られるような方法でコスト関数と許容予算を指定するのは難しい場合があります。これは、解決しようとしている特定の問題によって異なります。、Y 、C 、O 、S 、T 、S X Y B Uは、D 、G 、EのTバツycostsバツyBあなたdget

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.