制約充足問題(CSP)対充足可能性モジュロ理論(SMT)。制約プログラミングのコーダ


30

誰かがこれらの研究分野の関係を明確にすることを敢えて試みたり、問題のレベルでより具体的な答えを出したりすることを敢えてしますか?どれが広く受け入れられているいくつかの処方を想定しているかのように これを正しく取得できた場合、SATからSMTに移動すると、基本的にCSPのフィールドに入ります。逆に、CSPをブール値に制限する場合、基本的にはSATのことであり、おそらく#SATのようないくつかの関連する問題です。これは明らかだと思います(例えば、KolaitisとVardiの有限モデル理論とその応用における「制約充足への論理的アプローチ」の章を参照)Grädelet al。)、しかし、私にとってあまり明確ではないのは、いつ制約が「理論をモジュロ化する」のか、そうでないのかということです。SMTは、理論が等式のみを使用することを常に意味し、CSPのより広い分野では不等式制約が常に存在することを意味しますか?私が知る限り、スラック変数を導入できることが多いので、[存在する場合]の区別は明白ではありません。

比較的最近の「充足可能性ハンドブック」(IOP Press 2009)は、その幅広い「充足可能性」の傘の下でSMTとCSPの両方の問題を収集していますが、その構造(さまざまな著者が書いた章) 。

(「数学プログラミング」という用語との類推により)目的関数の最小化/最大化を含む制約プログラミングについて話すときに、用語の混乱が少なくなることを願っています。制約プログラミングに関するウィキペディアの記事は非常に曖昧なので、このフレーミングが発生したかどうかは本当に言えません。Frühwirthand Abdennadher(p。56)によるConstraint ProgrammingのEssentialsから収集できるのは、「制約ソルバー」は通常、充足可能性チェッカー以上のものを提供することであり、実際には単純化などが重要です。

これは実際のCS理論研究の質問ではありませんが、https: //cs.stackexchange.com/questions/14946/distinguish-で見たものを考えれば、学部のCS.SEサイトでこの質問に対する良い答えを期待することはできません。決定手順-対-SMT-ソルバー-対定理-証明者-対-制約-ソル(これには多くの単語が含まれていますが、実際の答えとは考えられません)。


このASPに追加します。SMT / ASP比較的最近の開発。以前は別々のフィールドがブレンドされています。例として、ハイブリッド自動推論ツール:ブラックボックスからクリアボックス統合まで / Lierler、Balduccini、大まかな最近の調査を参照してください。
-vzn

回答:


47

SAT、CP、SMT、(多くの)ASPはすべて、同じ組み合わせの最適化問題を処理します。ただし、これらの問題はさまざまな角度から、さまざまなツールボックスで発生します。これらの違いは、主に、各アプローチが探索空間の探索に関する情報をどのように構成するかにあります。私の作業上の例えは、SATはマシンコードであり、他は高レベル言語であるということです。

バツ1バツ2¯バツ3{バツ10バツ21バツ30}バツ1バツ3バツ2バツ1バツ2¯バツ3バツ4バツ1バツ2¯バツ3バツ4¯バツ5

節構造の近似は、ソリューションのセットを絞り込み、このセットが空かどうかを判断するのに役立つように維持されます。検索中に、一部の割り当てがソリューションに含まれないことが判明する場合があります(インスタンス内の各制約を個別に満たす場合でも)。これらはnogoodsとして知られ、( "Mr GNU")ストールマンとサスマンによって導入された用語 バツ5バツ=5。したがって、単一の一般的な句構造ではなく、句構造のシングルトン(リテラル)が表すものに応じて、表現の各選択に関連付けられた構造があります。

制約プログラミング(CP)は従来、スケジューリング、時間割、組み合わせの問題に焦点を当てたAIの分野であったため、2つ以上の値(通常は有限数)をとることができる変数に対して中心的な役割を果たします。CPは効率的な検索を強調し、従来のアプリケーションに動機付けられて、all-different(単射性)制約に中心的な役割を与えましたが、他の多くの種類の制約に対して効率的な伝搬関数も開発しました。CPの正式な定義は、少なくともモンタナリの1974年の論文「制約のネットワーク」以来のものです。、前駆体はさらに早く戻ります。この歴史の重みが、過去10年間でCPが未加工のパフォーマンスにおける他のアプローチに遅れをとっていた可能性があります。CPは、古典的に、変数のアクティブドメインのセットを介して、節構造の補数の近似を維持します。目的は、アクティブなドメインから値を削除し、変数に候補値を割り当てて必要に応じてバックトラックすることにより、句構造を調査することです。

充足可能性モジュロ理論(SMT)は検証コミュニティから生まれました。SMTソルバーの各理論は、潜在的に無限に多くのSAT句の暗黙的な表現を形成します。SMTで使用される理論とCPで使用される制約は、それらのさまざまな歴史的応用を反映しています。SMTが考慮するほとんどの理論は、整数インデックス付き配列、実際の閉じたフィールド、線形次数などに関係しています。これらは、プログラムの静的分析(コンピューター支援検証)または数学的な証明の形式化(自動推論)から発生します。対照的に、時間割とスケジューリングでは、単射性制約が中心であり、標準のSMTLIB言語には2003年の開始以来(単射distinctシンボル)、2010年までは、SMTソルバーdistinctは単純なアルゴリズムを介してのみ実装されていました。その段階で、標準のCPプロパゲーターからのマッチング手法all-differentが移植され、変数の大きなリストに適用されると大きな効果が得られました。参照SMTでのアンAlldifferent制約ソルバをさらにSMT 2010年、BankovićとMaricのことで、標準的なSMTの理論は、箱から出して、無限のドメイン(整数、最近で実数)を扱うのに対し、最もCPのプロパゲータは、有限領域での問題のために設計されています。SMTは、節構造の近似としてSATインスタンスを使用し、必要に応じて理論からnogood節を抽出します。優れた概要は 、Satisfiability Modulo Theories:Introduction and Applications by De Moura andBjørner、doi:10.1145 / 1995376.1995394です。

Answer Set Programming(ASP)は、ロジックプログラミングから生まれました。安定したモデルを見つけるというより一般的な問題を解決することに重点を置いているため、また普遍的および実存的定量化が可能であるため、ASPは長年CPまたはSMTと競合していませんでした。

正式には、SATはブールドメインのCSPですが、節学習のSATの焦点、競合検出の優れたヒューリスティック、およびバックトラックの高速な方法は、伝播者、一貫性の確立、および変数の順序付けのヒューリスティックに焦点を当てた従来のCSPとはまったく異なります。SATは通常非常に効率的ですが、多くの問題では、最初に問題をSATインスタンスとして表現するために多大な努力が必要です。CPのような高レベルのパラダイムを使用すると、問題をより自然に表現できます。その後、CPインスタンスを手動でSATに翻訳するか、ツールで翻訳を処理できます。SATの基本な概要については、PipatsrisawatとDarwicheによる「Modern Clause-Learning Satisfiability Solvers」(doi:10.1007 / s10817-009-9156-3)を参照してください

それでは、一般性から現在の詳細に移りましょう。

過去10年間で、CPの一部の人々は遅延句生成(LCG)に焦点を合わせ始めました。これは基本的に、かなり厳密なアクティブドメインの抽象化ではなく、より柔軟なSMTのような手法を使用してCPプロパゲータをボルトで固定する方法です。これは、多くの種類の問題を効率的に表現して解決するための公開されたCP伝播者の長い歴史があるため便利です。(もちろん、SMTソルバーの新しい理論を実装するための協調的な努力によって、同様の効果が得られます。)LCGのパフォーマンスはSMTと競合することが多く、問題によっては優れている場合があります。簡単な概要は、StuckeyのCPAIOR 2010ペーパーLazy Clause Generation:SATとCP(およびMIP?)の能力を組み合わせて解く、doi:10.1007 / 978-3-642-13520-0_3。それはまたのCP-中心のビジョン塗料・ガルシア・デ・ラ・バンダ、スタッキー、ヴァンHentenryckとウォレスのポジションペーパー、読む価値のある最適化技術の将来:、DOI 10.1007 / s10601-013-9149-Zを

私の知る限り、最近のSMT研究の焦点の多くは、形式的な方法と形式化された数学の応用にシフトしたようです。例としては、SMTプルーフトレースに推論ルールを反映するためにIsabelle / HOL戦術を構築することにより、Isabelle / HOL などのプルーフシステム内でSMTソルバーによって検出されたプルーフを再構築します。ITP 2010のBöhmerとWeberによるZ3の高速LCFスタイルの証明再構築を参照してください。

トップASPソルバーは、CP、SMT、SATのみのソルバーと競合するように、過去数年にわたって開発されてきました。私はソルバーclaspが競争力があるなどの実装の詳細に漠然と精通しているだけなので、これらをSMTやCPと実際に比較することはできませんが、クラスプはノーグッドの学習に焦点を明示的にアドバタイズします。

これらの形式間の従来の境界を越えることは、より抽象的な問題表現から効率的に実装可能な低レベルの形式への変換です。いくつかのトップASPおよびCPソルバーは、入力を明示的にSATインスタンスに変換し、その後、市販のSATソルバーを使用して解決します。CPでは、Savile Row制約モデリングアシスタントは、コンパイラデザインテクニックを使用して、中レベル言語のエッセンスで表現された問題を、MinionMiniZincなどのCPソルバーへの入力に適した低レベル形式に変換します。Savile Rowはもともと、低レベルの形式としてCP表現を使用していましたが、バージョン1.6.2でターゲットとしてSATを導入しました。さらに、さらに高いレベルの言語エッセンスConjureツールを使用して、Essenceに自動的に翻訳できるようになりました。同時に、Lingelingのような低レベルのSATのみのソルバーは毎年改良され続けており、最近では節の学習と処理中の段階を交互に繰り返すことにより、AAAI 2015のHeuleとSchaubによるSATおよびASPコンテストの最新情報の概要をご覧ください。

したがって、プログラミング言語の歴史との類推は適切なようです。SATは一種の「マシンコード」になり、節構造内の節の探索の低レベルモデルを対象としています。抽象パラダイムは、より高度なコンピューター言語のようになりつつあり、独自の方法論とアドレス指定に優れたアプリケーションを備えています。最後に、これらの異なる層間のリンクのますます密集したコレクションは、コンパイラ最適化エコシステムに似始めています。


この非常に便利な答えのTks。
ザビエルラブー

2
注:FOCS / STOCコミュニティでは、CSPのより狭い定義が使用されます。これらのCSPの形式は、CSP(L)、「制約関係の固定セットLを使用して表現できるすべてのCSPインスタンス」です。すべてが異なる制約はこのフレームワークに適合せず、ツリーのような構造を持つ問題も適合しません。
アンドラスサラモン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.