さまざまな制約下での無用な制約伝播の早期かつ効率的な特定-無用な制約伝播の早期かつ効率的な特定

抽象-抽象

   制約の伝播とバックトラッキングは、制約充足問題を解決するための 2 つの基本的な手法です。解の検索プロセス中、どの解にも属さない変数のペアと値のペアは制約の伝播によって破棄されます。これにより、一般化されたアークの一貫性が確保され、無駄な検索が回避されます。
   ただし、制約の伝播は頻繁に呼び出されるため、多くの CSP にはほとんど影響しません。CSP を解決するために制約伝播をいつ呼び出すかを予測することに多大な労力が費やされました。ただし、さまざまな制約に対して、効率的な解決策はまだありません。
   この論文は、値グラフ内のすべての異なる制約のすべてのエッジを識別するための新しい定理を提示します。その制約を削除すると無用な制約の伝播が発生します。[予想される削除可能なエッジ] が [交互のサイクル] に存在することを証明します。[それが変数の代入を表す場合]、そのエッジ (および代入) は制約の伝播なしで削除できます。この定理に基づいて、あらゆる異なる制約に対する既存のアルゴリズムに組み込むことができる、無駄な制約の伝播を早期に検出するための新しい最適化手法を提案します。8 つのドメインにわたる 93 のベンチマーク問題インスタンスにおいて、新しい手法は既存の手法と比較して 1 ~ 5 倍の改善を達成しました。さらに、新しいアルゴリズムは拡張性が高く、より大きな問題に対して既存のアルゴリズムよりも高速に実行されます。

[変数割り当てを表す] の [予想される取り外し可能なエッジ] に [予想される取り外し可能なエッジ] がある場合、変数の割り当てを表す予想される取り外し可能なエッジの代替サイクルがあります (属性変更された予想される取り外し可能なエッジ)

I.はじめに

  制約プログラミング [Rossi et al.、2006] は、複雑な組み合わせ問題を解決するための強力な手法であり、コンピューター サイエンスやその他の分野で幅広く応用されています。制約満足問題 (CSP) は、値が指定されたいくつかの制約を満たす必要がある変数のセットを定義します。AllDifferent 制約 [Lauriere、1978] は、すべての変数が異なる値を持つ必要があるグローバル制約です。オールディファレント制約は、パズル、グラフの色付け、スケジューリング、推奨、マッチングなどの多くのアプリケーションで見られる、最も重要かつ困難な制約タイプの 1 つです [Hoeve、2001]。

  バックトラッキング [Golomb and Baumert、1965] と制約伝播 [APT、1998] は、CSPS を解決するために最も一般的に使用される 2 つの手法です。CSP ソリューションを検索すると、考えられるすべての変数割り当てを調べることになり、最悪の場合、時間の複雑さが指数関数的に増加します。制約伝播は、検索空間内の不要な分岐を枝刈りするか、どの問題解決にも存在しない矛盾した変数値の割り当てを同様に削除することにより、検索プロセスを高速化するために導入されます。検索の特定の段階で矛盾する値がない場合、制約プロパゲータはすべての個別の制約に対して一般化アーク整合性 (GAC) を達成すると言います。制約伝播アルゴリズム (または制約プロパゲータ、フィルタリング アルゴリズム) は、一貫性のない変数値の割り当てをフィルタリングするためによく使用されます。一貫性のない割り当てが早期に検出されるほど、制約プロパゲータの効果が高くなります。

  さまざまな制約に対して、GAC を実装するためにいくつかの制約プロパゲータが開発されています。Régin は最初に、すべての異なる制約に対する制約伝播問題を 2 部グラフの最大一致問題として定式化しました [Régin, 1994]。レギンは、2 部グラフの一部ではない最大一致エッジは、一貫性のない変数値の割り当てであるに違いないという洞察力に富んだ定理を証明しました。これらのエッジは、変動グラフの最大一致コンポーネントと強く接続されたコンポーネントを計算することによって識別できます。この定理は、さまざまな制約を持つ GAC の既存の制約伝播アルゴリズムのほぼすべての基礎を形成します。最大マッチングは段階的に計算できるため、Régin アルゴリズムの全体的な計算量は主に SCCS の計算コストに依存します。Gent et al. [Gent et al., 2008] は、Régin アルゴリズムを拡張するための SCC 最適化手法を提案しました。検索中に個々の SCC を分割し、削除された変数と値のペアを含む SCC のみを計算します。以前の研究 [Zhang et al., 2018] では、最大マッチングを計算した後に一部のエッジを削除するために使用できる新しいグラフ定理を提案しました。これにより、伝播プロセスが高速化されます。これらの既存の方法はすべて、SCCS に続いて最大マッチングを計算する必要があるため、最悪の場合の複雑さは同じです。

  既存の制約プロパゲータは効率が高いにもかかわらず、めったに解決されないものの重大な問題は、制約プロパゲータが頻繁に呼び出されますが、ほとんどの場合、CSPS を解決するときに矛盾した値が削除されないことです。広範な制約の伝播は役に立たず、すべての異なる制約に対して一貫性のない値は削除されないことが報告されています[Katriel, 2006; Gent et al., 2006; Boisberranger et al., 2013]。このペーパーの実験部分では、図 4 のいくつかのベンチマーク インスタンスに関する同様のより詳細な結果も示します。したがって、CSP を解決するプロセスにおいて、重要な問題は、すべての異なる制約に対して制約プロパゲータをいつ呼び出すかということです。制約の伝播は計算の大部分を占めるため、無駄な制約の伝播の量を減らすことで CSP の解を高速化できます。無駄な制約の伝播が早期に検出されるほど、CSP 解決アルゴリズムはより効率的になります。

  ただし、制約の伝播が効果的かどうかを判断するのは技術的に困難です。Katriel [Katriel、2006] は、値グラフからエッジがランダムに削除されるという仮定の下で、いつ GAC を実装するかについての理論的分析を提供しています。彼女は、重要なエッジはほとんどなく、それらを削除すると一部の変数のドメイン サイズを削減できると指摘しました。彼女は、一定数の重要なエッジが削除されるまで制約の伝播を延期することを提案しています。ただし、重要なエッジは検索空間内に均一に分散されていないため、検索の初期段階で有用なスプレッダー呼び出しを見逃すと、全体の計算オーバーヘッドが増加します。Gent et al. [Gent et al., 2008] は、Katriel のアイデアを拡張し、無駄な伝播を避けるための実用的な動的トリガー方法を提案しました。それでも、このアプローチではパフォーマンスを向上させることはできませんでした。Gent et al. [Gent et al., 2008] は、動的トリガーは一般に、あらゆる制約に関連するさまざまな問題の全体的な実行時間を増加させると報告しました。Boisberranger [Boisberranger et al.、2013] は、コミュニケーターの呼び出し確率を計算することで制約の一貫性 (BC) を強制する確率論的アプローチを提案しました。
  要約すると、私たちの知る限り、CSP を解決するプロセス中に制約プロパゲータをいつ呼び出す必要があるかを正確かつ効率的に決定する実用的な方法は現時点ではありません。理想的には、無駄な制約の伝播はすべて回避する必要があり、制約プロパゲータが呼び出されるたびに、矛盾した値を削除して検索スペースを削減する必要があります。レガンの独創的な理論的研究を超えてなされた小さな進歩により、レガンの洞察定理は既存の方法によって限界まで活用された可能性があると推測できます。既存の伝播メソッドはすでに非常に高速で、ランタイムがほぼ線形であるため、制約プロパゲータを呼び出すタイミングを決定するメソッドは正確かつ効率的でなければなりません。そうしないと、検索プロセスが遅くなります。ただし、スプレッダーを実際に実行しないと、スプレッダーを呼び出す必要があるかどうかを判断するのは困難です。

  この論文では、新しい定理を提案し、無用な制約伝播を早期に検出するための随伴手法を開発します。その主なアイデアは、現在の制約された伝播が有用であるかどうかを通信者が判断できるようにし、現在の制約された伝播が役に立たないと判断されたら、伝播プロセスを直ちに終了することです。このアイデアは、値グラフ内のすべてのさまざまな制約について重要でないエッジを特定する新しい定理に由来しています。エッジ削除後に終了ノードを含むグラフ内に交互のサイクルが存在する場合、エッジが重要ではないことを厳密に証明します。私たちの知る限り、これは、制約の伝播が有効かどうかを早期に判断するためのレジャンの定理を超える、最初の正確で効率的な方法です。この定理を使用して、無駄な制約伝播を効率的に特定し、タイムリーにブロックできる新しい異種プロパゲータを提案します。私たちは、Gent らによる最先端の CSP ソルバーにアルゴリズムを実装しました。[Gent et al., 2006] と既存の方法と比較して 1 ~ 5 倍の高速化を達成しました。さらに、プロパゲータは大きな問題に対してより優れたパフォーマンスを発揮し、優れたスケーラビリティを示します。

2 準備作業と既存の手法

制約設計:制約満足問題 (CSP) は三重項 (x,d,c) として定義されます。ここで、x は変数セット {x1,x2,...,xn} で、d はドメインセット {d1,d2 です。ここで、各変数 xi ∈ X は有限体 di ∈ D 内の値を取ることができ、c は変数へのすべての許容値の割り当てを指定する制約セットです。CSP p=(x,d,c) の解は、変数 xi1 に対する制約ごとに c となるように、一連の値 (d1,...,dn)∈D1×...×dn を変数に代入することです。 ,...,xim ∈C の場合、(di1,...,dim)∈C が存在します。制約は一般化されたアーク一貫性です。つまり、1 つの変数のすべての値は、制約の充足可能性を維持しながら、制約の他のすべての変数に拡張できます。グローバル制約は、可変数の変数間の関係をキャプチャできます。これは、現実世界の CSP をモデル化するのに便利なツールです。さまざまなグローバル制約の中で、all Different 制約は最も重要な制約の 1 つであり、まったく異なる制約 C は、C に含まれる変数のすべてのペアが同じ値を取ることができないことを指定します。

グラフ理論: AllDifferent 制約に GAC を実装するには、AllDifferent 制約の 2 部グラフで最大一致を見つける必要があります。まったく異なる制約 C が与えられると、C の値グラフは 2 部グラフ B(c)=(XC,DC,E) になります。ここで、XC は C に含まれる変数のセット、DC は値領域、(Xi, D) ) ∈ E IFF D ∈ Di。

  一致とは、共通のノードを共有しないエッジのセットです。最大のマッチングとは、エッジの数が最も多いマッチングです。一致するノードは、特定の一致ではエッジに接続されているノードであり、それ以外の場合は自由ノードです。交互パスは、エッジが一致の内と外で交互に現れるパスです。拡張パスは、両方のエンドポイントが空いている代替パスです。通常、最大一致は 2 部グラフに対して一意ではないことに注意してください。2 部グラフには複数の最大一致が存在する可能性があります。許可されるエッジは、最大一致の一部 (すべてではない) に属するエッジです。同様に、許可されるノードは、一部 (すべてではない) の最大一致によってカバーされるノードです。冗長エッジは、最大マッチングでは現れないエッジです。許容されるエッジは、Berge の初期の定理 [Berge、1973] によって決定できます。
ここに画像の説明を挿入
ここに画像の説明を挿入

ベルジェ定理はこの論文で明確に与えられています 元の論文は性質 1 に書かれています 2 つの iff は完全に等価であり、iff の右側の記述は同じですが、iff の左側の記述は異なりますただし、定義によれば、許可される辺は最大一致エッジの一部 (すべてではない) に属しており、両方とも同等です。

AllDifferent を強制する GAC: Régin は、Berge の定理に基づいてAllDifferent 制約に適した最初の GAC アルゴリズムを提案しました。これは、値グラフ内の冗長なエッジを削除することによって GAC を実装します。このアルゴリズムは、最初に値グラフの最大一致を計算し、次に最大一致に基づいて値グラフの有向バージョンを構築します。図 1は、有向 2 部グラフの空きノードと SCC からの代替パスを計算することによる簡単な例を示しています。SCC 間の不一致エッジは、削除できる冗長なエッジであり、削除する必要があります。

有向二部グラフを表す SCC は、交互の循環サイクルを探すことです。強く接続されたコンポーネントは、グラフ内の任意の 2 つのノードに対するパスがあることを意味します。無向グラフの場合、グラフ内のすべてのノードが 1 つのノード上にある限り、パス、確実です はい、サイクルは特別なパスです。空きノードから始まる代替パスと代替サイクルが必要です。無向エッジを使用すると、代替サイクルが認識されません。エンドツーエンド接続を削除しますこのエッジのすべてのパスが 1 つのエッジ上に存在する必要はないため、1 つのパス上のすべてのノードが相互に到達できない場合でも、ノードが相互に到達できるようになった理由は、エッジが無向であるためです。つまり、双方向、可逆であるため、一方向にするには、有向グラフを作成する必要があります。有向値グラフに強い連結成分がある場合、つまり、任意の 2 つのノード間にパスがある場合、交差サイクルが必要であるため、有向値グラフ内の強連結成分を特定します。プロセスは、交互サイクルを見つけることです。

  Régin が GAC アルゴリズムを提案して以来、多くのアルゴリズムの改良と理論的分析が行われてきました。Gent et al. [Gent et al., 2008] は、SCC を小さな SCC に分割し、連続する伝播の間に変化した変数値のペアを含む単一の SCC のみを検査する方法を提案しました。このメソッドは定数 SCC の計算を回避するため、Régin メソッドより 1 ~ 5 倍高速です。私たちの以前の研究 [Zhang et al., 2018] では、ベルゲの定理を使用せずに冗長エッジを識別する新しい方法を提案しました。冗長なエッジを 2 つのカテゴリに分類します。最初の種類のエッジは、最大一致を見つけた直後に削除できます。2 番目の種類のエッジは、より小さなサブグラフで SCCS を計算することで削除できます。
ここに画像の説明を挿入

3 値グラフの重要でないエッジを特定する

  まったく異なる制約 A(x,d) とその値グラフ B(x,d,e) を考えてみましょう。値グラフは、冗長なエッジがない場合、一貫性があると言われます。

  • したがって、すべての異なる制約に対して GAC を強制することは、ソリューション プロセス全体を通じて値マップの一貫性を保つことと同じです。CSP ソルバーが検索ツリーを下位に移動すると、他の制約によって一貫した値のグラフから一部のエッジが削除されるため、値のグラフが不一致になる可能性があります。
  • エッジの除去は、値グラフの一貫性に影響を与える場合に重要であると言われています。形式的には、グラフ B(X, D, Ee) に冗長なエッジがある場合、一貫した値のグラフ B(X, D, E) のエッジ e は重要です。そうでない場合、エッジは重要ではないと呼びます。重要でないエッジを削除しても値グラフの一貫性には影響しないため、制約プロパゲータを呼び出す必要はありません。

エッジの削除は値の一貫性に影響します。グラフは重要なエッジなので、一貫した値のグラフ B(X, D, E) のエッジ e は重要です。これを削除すると、グラフの一貫性が失われます。エッジ、He が削除されているため、現在のグラフに不一致があります。値グラフに冗長エッジがない場合、サイクルとパスに属さない冗長エッジがある場合、つまり、どの一致にも属さない場合、グローバルに一貫した値であってはなりません。そのため、一貫した値のグラフには冗長なエッジが存在せず、一貫性のないグラフには冗長なエッジが存在します。そのため、重要なエッジが削除された後、現在のグラフは一貫性がなくなり、グラフが表示されます。 B(X, D, Ee) 冗長なエッジがあるため、制約プロパゲータを呼び出す必要があります。エッジは重要ではありません:重要でないエッジを削除しても値グラフの一貫性には影響しません。つまり、グラフ B(X, D, Ee) はエッジを削除した後も一貫性を保ちます。これは、冗長なエッジがなく、冗長なエッジが存在しないことを証明します。制約プロパゲータを呼び出す必要があります。

  • したがって、重要でないエッジを特定することは、効率的なまったく異なるプロパゲータを開発するために重要です。ここでは、値グラフの重要でないエッジを特定するための 2 つの補題と新しい定理を示します。

補助定理 1:一貫した値のグラフ B(X,D,E) と B の最大一致 M を考慮すると、エッジ E(x,y)∈M は重要ではありません。IFF グラフ B'(X,D,Ee) は少なくとも2 つの互いに素な M 交互パスがノード X と Y を接続します。
証明:十分です。グラフ B'((X,D,Ee) (図 2a) に 2 つの円弧に独立した交互パス P1(x,y) と P2(x,y) があるとします (図 2a)。E は一致するエッジであるため、P1 と P2これは拡張パス WRT である必要があります。P1 を拡張して新しい一致 M'=P1⊕M を取得できるため、P1 は交互パスになり、P1+P2 は交互サイクル WRT になります。したがって、x と y はまだB と B' の唯一の違いはエッジ E(x,y) の削除であり、x と y は相互に到達可能であるため、B' のすべてのノードは同じ SCC 内にあり、B' Be一貫性.
必要性. E が重要ではないと仮定すると、B'(X,D,Ee) と B(X,D,E) が同じ SCC を持つことを意味します。x と y は同じ SCC 内にあるため、少なくともx と y を接続する 2 つのパスがあります。E は一致するエッジであるため、B' は M' に一致する新しい最大値を持たなければなりません。したがって、X と Y WRT を接続する拡張パスが存在する必要があります。したがって、B'(X,D , EE) ノード X と Y WRT. M を接続する、少なくとも 2 つの弧の切り離された M 交互パスがあり、証明が完了します。

**補助定理 2:**一貫した値のグラフ B とその最大一致 M の場合、不一致エッジ E(x,y) は重要ではありません。IFF、グラフ B'(x,d,ee) には少なくとも 2 つの弧があります。互いに素な交互パスはノード X と Y を接続し、そのうちの 1 つは一致するエッジで開始および終了します。
証明。十分。互いに素な円弧を持つ 2 つの交互のパス P1(x,y) と P2(x,y) があり、P1(x,y) が一致するエッジで開始および終了すると仮定すると (図 2b)、次のことが簡単にわかります。 P1+P2 交互サイクル WRT を形成します。M したがって、ノード X と Y は同じ SCC 内に存在する必要があります。B と B' の唯一の違いは E(x,y) が削除されていることです。したがって、B' は B と同じ SCC を持ち、一貫性を保たなければなりません。
必要性。E が重要ではないと仮定すると、X と Y が同じ SCC 内にあるため、B'(X,D,EE) は B と同じ SCC を持ち、X と Y を反対方向に接続するパスが少なくとも 2 つあります。証明を完了します。

  補題 1 と補題 2 の主な考え方は、エッジ E(x, y) が一貫した値のグラフから削除されたとき、ノード x と y を含む交互のサイクルがある場合、値のグラフは一貫したままであるということです。

  • 削除されたエッジが一致エッジである場合、制約プロパゲータは最初に最大一致を修復してから、SCCS を計算する必要があります。補助定理 1 で実証されているように、元の最大一致に対する 2 つの円弧に独立な m 交互パスは、新しい最大一致に対する正確な置換サイクルになります(図 2a)。
  • 削除されたエッジが一致しない場合にのみ「修正」する必要があります。これは、補助定理 2 が証明するように、エッジの終端ノードを接続する交互のサイクルを見つけることで実行できます。
  • さらに、上記の補題は、次の定理で述べられているように、一貫した値のグラフから複数のエッジを削除する場合に簡単に一般化できます。 **定理 1:** 一貫した値のグラフ B(x,
    d,e) の場合、エッジ セット RE={e1(x1,y1), E2(x2,y2),...,Ei(xi,yi)}, B(X,D,E-RE) は、各ノード ペアについて一貫しています。 RE (xi, yi) には、xi と yi を接続する少なくとも 2 つの円弧に独立した交互のパスが存在します。
    ここに画像の説明を挿入
      図 3 は、AllDifferent 制約の一貫した値のグラフから 2 つのエッジを削除する例を示しています。CSP ソルバーは変数に値を割り当てたり、他の制約でプロパゲータを呼び出したりすることができ、これにより一貫した値のグラフからエッジが削除されます。たとえば、E(B, 2) と E(C, 4) は値マップから削除されました (図 3a)。2 つのエッジを削除すると値グラフの一貫性に影響を与える可能性があるため、プロパゲータを呼び出すかどうかを決定する必要があります。これは、最初に最大マッチングを固定し (図 3b)、次にエッジ E(B, 2) と E(C, 4) の終端ノード間の交互のサイクルを見つけることで実現できます (図 3c)。交互のサイクル (図 3b の黄色の影の領域) を探してグラフの一部のみをトラバースするため、この方法は値グラフ全体をトラバースする Régin と Gent の GAC アルゴリズムよりも高速です。
    ここに画像の説明を挿入

4 つの高速で異なるプロパゲータが早期検出に合格

  これで、さまざまな制約すべてに対して高速フィルタリング アルゴリズムを提案する準備が整いました。定理 1 により、交互のサイクルを探すことによって、一貫した値のグラフの重要でないエッジを特定することができます (コンセンサスの観点から、サイクル、大小のリング、およびピア リングへの交互のパスの概念が変更されます)ここでは、少量の計算で、重要でないエッジの識別を既存の制約プロパゲータに効率的に組み込む方法を示します。
  素朴な考えは、削除されたエッジごとに有向値グラフ内のサイクルを見つけることです。エッジが重要でない場合、制約の伝播は必要ありません。そうでない場合は、値グラフ全体を走査する必要がある場合があります。セクション 2 で説明したように、プロパゲータの全体的な計算の大部分は SCC の計算に使用されます。SCC は、Tarjan のアルゴリズム[Tarjan、1972]を使用して線形時間で実行できます。(エッジの識別が重要かどうかを判断する) 重要なエッジに遭遇した場合は、まずグラフ全体を走査して交互のサイクルを探す必要がありますが、エッジが重要であるため失敗します。次に、グラフを再度走査して、グラフの SCC を見つける必要があります。(最も独創的な Régin アルゴリズムが残差グラフを構築します)したがって、全体の計算コストは​​元の方法の少なくとも 2 倍になり、アルゴリズム全体の速度が大幅に低下します。
  上記の問題を目的として、重要なエッジの識別を Tarjan の SCC アルゴリズムに導入する効果的な方法を設計します削除されたエッジのサイクルを見つけるには、値グラフの深さ優先検索 (DFS) で十分であることに注意することが重要です。また、Tarjan の SCC アルゴリズム自体が DFS を実行することにも注意してください。したがって、削除されたエッジのループを見つけるように自然に適合させることができます。すなわち、DFS 検索中にバックエッジ、つまり訪問したノードを指す非ツリー エッジが見つかった場合は、サイクルが見つかっているはずであり、そのサイクルに削除されたエッジの終了ノードが含まれているかどうかを確認するだけで済みます。削除されたすべてのエッジがサイクル内にあることが判明した場合は、制約の伝播プロセスを直ちに終了できます。
  削除されたエッジが重要かどうかをチェックすることにより、Tarjan の SCC アルゴリズムが改善されました。削除されたすべてのエッジが重要ではない場合は、SCC を見つける手順を直ちに停止します。重要なエッジが存在する場合、引き続き SCC を検出し、SCC 間の冗長なエッジを削除します。(最も原始的な Régin アルゴリズム)全体として、私たちの方法は、削除されたエッジが円形であるかどうかを確認するために SCC を検索するときに少量の計算を追加するだけです。アルゴリズム 1 では、SCCS の早期検出の考え方と手順が説明されています。
   上記のアルゴリズムの主なステップは、Tarjan の SCC アルゴリズムと同じです。削除されたエッジがサイクル内にあるかどうかを確認するために行 12 ~ 14 を追加し、現在の伝播をいつ停止するかを決定するために行 18 ~ 19 を追加するだけです。DFS 検索中に、(バックエッジ) 立ち下がりエッジ E(A, B) に遭遇した場合、ノード A と B の間の DFS ツリー内のノードはサイクル内にある必要があります。したがって、サイクルを表すために 2 つの数値 (初めて訪問したノードの DFS インデックスと最後に訪問したノードの DFS インデックス) を使用します。

  • 関数 addCycles は、既存のサイクルを維持するために使用されます。立ち下がりエッジが見つかった場合は、それを新しいループとして進めるか、既存のループにマージします (行 22 ~ 29)。
  • incycles 関数は、エッジ E(a, b) がサイクル内にあるかどうかをテストするために使用されます。これは、エッジの DFS インデックスを比較することによって実行できます (行 32)。
  • DFS 中に部分的な SCC が見つかった場合 (行 20)、ループのチェックは行われず、アルゴリズムは Tarjan の SCC アルゴリズムとして実行されます。したがって、修正は非常に効率的に行うことができます。
       アルゴリズム 1 は、早期終了のための SCCS の手順を示します。最大マッチングの計算など、残りのすべての All Different プロパゲータについては、[Gent et al., 2008] と同じアプローチを使用します。
    ここに画像の説明を挿入

5 実験分析

   新しい方法のパフォーマンスを評価するために、Minion 制約ソルバー 1.8 を使用してアルゴリズムを実装しました[Gent et al., 2006]。すべての実験は、2.8 GHz Intel Xeon E5-2680 V2 プロセッサーと 16 GB DDR3 1600 MHz RAM を搭載した Windows 10 ワークステーションで実行されました。Minion 制約ソルバーは、インクリメンタルマッチング [Régin、1994]、BFS マッチング [Cormen et al.、1990]、段階的伝播 [Schulte および Stuckey、2004]、優先キューイング [Schulte およびStuckey、2004]、割り当ての最適化と SCC 分割 [Gent et al.、2008]。アルゴリズムを実装するために、BFS 最大マッチングと Tarjan の SCC アルゴリズムを使用しました。探索戦略として時間内での深さ優先バックトラッキングを採用します。
   評価用のベンチマーク問題は、CSP ライブラリ (http://www.csplib.org/) および Minion 制約ソルバー (https://constraintmodelling.org/minion/) から提供されており、さまざまな制約を持ついくつかの典型的な問題が含まれていますこれらの問題には、ラングフォード数問題 (CSPLIB の prob024)、ゴロム スケール問題 (CSPLIB の prob006)、準群存在問題 (CSPLIB の prob003)、ソーシャル ゴルファー問題 (CSPLIB の prob010)、グレースフル グラフ問題 (CSPLIB の prob053) が含まれます。 CSPLIB)、魔方陣問題 (CSPLIB の prob019)、N クイーン問題 (CSPLIB の prob054)、モーション スケジューリング問題 (CSPLIB の prob026)。Minion、Conjure [Frisch et al.、2005]、Savile Row [Nightingale et al.、2017] ジェネレーターを使用して、上記の 8 つの質問に対してさまざまなサイズの 93 の質問インスタンスを生成しました。生成した Golomb スケール インスタンスのスケールの数は 50 ~ 80、スケールの最大長は 2500 ~ 6400、5 つのクリークを持つ優雅なグラフ インスタンス、各クリークのノード数は 25 ~ 40 です。ラングフォードの20 および 100 5 ~ 49 の番号を持つセットの番号インスタンス、30 ~ 65 の順序を持​​つ準グループの存在インスタンス、11 から 15 の番号を持つ各グループに 4 人のゴルファーが含まれる 9 つのグループ、順序 4 のカウントを持つ魔方陣インスタンスから 70 まで、N クイーン インスタンスのクイーン数は 128 から 2048 まで、スポーツ スケジューリング インスタンスのチーム数は 30 から 80 までです。
   無駄な制約の伝播を検出することの重要性を理解するために、まず、無駄な制約の伝播がどのくらいの頻度で呼び出されるかを分析します。私たちは 8 つの質問から 31 のインスタンスを選択し、[Gent et al., 2008] によって提案された Minion のデフォルトの AllDifferent プロパゲータを使用しました。これらのインスタンスは比較的小さく、制限時間内に解決できるため、プロパゲータの有効性を効果的にベンチマークできます。この目的を達成するために、コミュニケーターが矛盾を除去しなかった総呼び出しの割合を計算しました (図 4)。予想通り、ほとんどの通話は役に立ちません。たとえば、モーション スケジューリング、準グループの存在、グレースフル グラフなどの問題の場合、呼び出しの 80% ~ 90% 以上が無駄であるため、これらの呼び出しをスキップして全体の計算を減らすことができます。
ここに画像の説明を挿入
   次に、93 の問題インスタンスについて、アルゴリズムを Régin のアルゴリズム [Régin, 1994]、Gent のアルゴリズム [Gent et al., 2008]、Zhang のアルゴリズム [Zhang et al., 2018] と比較します。 表 1 に、これらのアルゴリズムで使用される個々の最適化手法を示します。テストされた問題インスタンスのほとんどは大きすぎてすぐに解決できないため、制限時間を 1200 秒に設定し、[Gent et al., 2008] に従って 1 秒あたりに検索されるノードの数を数えます。図 5 は、私たちのアルゴリズムと他の 3 つのアルゴリズムの間で 1 秒あたりに検索されるノード数の比率を示しており、新しいアルゴリズムによって期待される高速化が示されています。予想通り、私たちのアルゴリズムはほとんどの場合において以前のアルゴリズムよりも高速であり、5 倍以上のスピードアップを実現しています。
ここに画像の説明を挿入
ここに画像の説明を挿入
   さらに、私たちの新しいアルゴリズムは、ラングフォード数、ゴロムスケール、および優雅なグラフの問題で優れたパフォーマンスを示します (図 5)。これは主に、これらの問題のグラフの値が大きいためであると考えられます。大きな問題インスタンスの場合、このアルゴリズムで制約プロパゲーターを呼び出すと、値グラフのごく一部をトラバースするだけで済み、検索空間の大部分が切り取られます。対照的に、グラフの値が小さい小さな問題の場合、アルゴリズムのパフォーマンスがわずかに向上する可能性があります。これを裏付けるために、SCC 計算を中心とした 2 つのシミュレーション実験を設計し、異なるサイズの合成 2 部グラフでのアルゴリズムのパフォーマンスを評価します。すべてのさまざまな制約に対するフィルタリング プロセスと同様に、これらのグラフからエッジをランダムに削除し、グラフ内に複数の SCC が存在するまで SCC を計算します。図 6a は、Tarjan の SCC アルゴリズムと比較した場合のアルゴリズムの合計実行時間の高速化を示しています。予想どおり、グラフの密度が高くなるほど高速化が実現します。さらに、すべての異なるインスタンスと同じサイズの 2 部グラフでも上記の実験を実行します。図 6b は、Golomb、グレースフル グラフ、ラングフォード、および魔方陣の問題と同じサイズのグラフの場合、ソーシャル ゴルファー、準グループなどの他の問題よりも高速化が大きいことを示しています。高速化の差は、グラフの平均次数に関係します (図 6b)。
ここに画像の説明を挿入
   このアルゴリズムは、より大きな問題インスタンスに対してより優れたパフォーマンスを示し、優れたスケーラビリティを備えています。このスケーラビリティを定量化するために、ラングフォード数、ゴロム スケール、およびグレースフル グラフの問題に対してさまざまなサイズのインスタンスを使用します。Gent のアルゴリズムと比較して、私たちの方法の速度向上は、問題のサイズに応じて着実かつ大幅に増加します (図 7)。これは、新しいアルゴリズムが実際にさまざまな制約された問題を解決するための代替方法であることを示しています。

ここに画像の説明を挿入

6 結論と考察

   現実世界の制約問題にはさまざまな制約が広く存在しており、さまざまな制約を効果的に伝播させることは制約プログラミングにとって非常に重要ですレギンが制約伝播を二部グラフの最大マッチングとして定式化して以来、多くの努力にもかかわらず、理論的な進歩は見られず、レギンの定理に基づく既存の手法はアルゴリズムのボトルネックに達しているようです。無駄な制約の伝播を予測する効果的な方法の欠如は、CSP 研究のさらなる発展を妨げる大きな障害となっています。この論文では、まったく異なる制約問題に対する値グラフ内の重要ではないエッジの特定を証明する新しい定理を紹介します。その削除には制約伝播を呼び出す必要はありません。これは、Régin の結果に対する理論的な改善として待望されています。この理論的結果を使用して、不要な制約の伝播を早期に特定するための新しい最適化手法を提案し、不要な制約の伝播を大幅に削減または回避するための効率的なフィルタリング アルゴリズム (Tarjan のアルゴリズムと組み合わせた) を提案します。このアルゴリズムを、ベンチマーク インスタンス上で Régin のアルゴリズムや他の最先端のアルゴリズムと比較したところ、新しいアルゴリズムが既存のアルゴリズムを大幅に上回る結果が得られました。さらに重要なのは、インスタンス サイズが増加するにつれてアルゴリズムのパフォーマンスが向上し、新しいアルゴリズムが優れたスケーラビリティを備えていることを示しています。
  無駄な制約伝播の検出とバックトラッキング検索を組み合わせるというアイデアは一般的であり、さまざまな制約以外の他の制約伝播にも使用できます。カーディナリティ制約 [Thalheim、1992] など、他の多くのグローバル制約は値グラフでモデル化できるため、私たちの方法は、異なるまたは類似のグローバル制約を含む制約充足問題を効率的に解決できる大きな可能性を秘めています。

おすすめ

転載: blog.csdn.net/lockhou/article/details/129842915