Skip to main content
QUICK REVIEW

[論文レビュー] Partition Refinement for Bisimilarity in CCP

Andrés Felipe Aristizábal-Pachón, Filippo Bonchi|arXiv (Cornell University)|Dec 7, 2012
Logic, programming, and type systems参考文献 10被引用数 7
ひとこと要約

本稿では、分割精錬技術を拡張することで、 Concurrent Constraint Programming (CCP) における飽和バーブド bisimilarity の自動検証のための最初のアルゴリズムを提示する。新たな手法により、論理的に他の遷移によって含意される(冗長な)遷移を動的に同定・削除することで、CCP がストアに将来の制約追加をすべて検討する必要があるという要件にもかかわらず、標準的な分割精錬が正しく bisimilarity を計算できるようにする。

ABSTRACT

Saraswat's concurrent constraint programming (ccp) is a mature formalism for modeling processes (or programs) that interact by telling and asking constraints in a global medium, called the store. Bisimilarity is a standard behavioural equivalence in concurrency theory, but a well-behaved notion of bisimilarity for ccp has been proposed only recently. When the state space of a system is finite, the ordinary notion of bisimilarity can be computed via the well-known partition refinement algorithm, but unfortunately, this algorithm does not work for ccp bisimilarity. In this paper, we propose a variation of the partition refinement algorithm for verifying ccp bisimilarity. To the best of our knowledge this is the first work providing for the automatic verification of program equivalence for ccp

研究の動機と目的

  • Concurrent Constraint Programming (CCP) におけるプログラム同等性の検証のための自動化ツールの不足に応えること。CCP は並列的・制約ベースのシステムで広く用いられている形式的記法である。
  • 標準的な分割精錬アルゴリズムの限界を克服すること。CCP ではストアに将来の制約追加をすべて検討する必要があるため、標準的手法は失敗する。
  • CCP における良好な振る舞いの同等関係である飽和バーブド bisimilarity ($\dot{\sim}_{sb}$) を正当かつ終了するアルゴリズムを提供すること。
  • 冗長性検出を分割精錬と統合することで正しさを保証すること。冗長な遷移とは、$\dot{\sim}_{sb}$ の下で他の遷移によって論理的に含意されるものである。

提案手法

  • 遷移間の導出関係 $\vdash_D$ を定義する。$\gamma \xrightarrow{\alpha_1} \gamma_1 \vdash_D \gamma \xrightarrow{\alpha_2} \gamma_2$ であるとは、$\alpha_1 \sqsubset \alpha_2$ かつ $c_2 = c_1 \sqcup \alpha_2$ であるときを意味する。これは制約順序とストアの単調性に基づく。
  • 冗長な遷移の概念を導入する。遷移が他の遷移によって論理的に含意され、かつそのターゲット状態が含意されるターゲットと bisimilar である場合、その遷移は冗長である。
  • 冗長性をチェックするために必要な補助状態を初期状態集合に追加し、アルゴリズムの有限性と正しさを保証する。
  • 標準的な分割精錬アルゴリズムを、冗長な遷移を含まない遷移系上で動作するように修正する。非冗長な遷移に基づく反復的精錬を用いる。
  • $\sqsubseteq$ に基づく $\vdash_D$ の意思決定手順を用いる。$\sqsubseteq$ は決定可能であると仮定し、2つの遷移間の $\vdash_D$ のチェックに $O(f_\mathbf{C})$ 時間で行えることを示す。
  • C++ でアルゴリズムを実装し、終了性と計算量の上限を証明する。補助状態の数が指数的に増加する可能性があるため、最悪ケースでは指数時間の計算量を示す。

実験結果

リサーチクエスチョン

  • RQ1CCP において、将来の制約追加をすべて検討するという独自の要件があるにもかかわらず、標準的な分割精錬アルゴリズムを飽和バーブド bisimilarity の検証に適応できるか。
  • RQ2冗長性は、$\dot{\sim}_{sb}$ に対して正しく保たれるように、どのように形式的に定義され、検出されるか。
  • RQ3提案手法を用いた $\dot{\sim}_{sb}$ の検証の計算量的複雑性は何か。有限状態系において終了性が保証されるか。
  • RQ4アルゴリズムは効率的に実装可能か。状態数および遷移数の観点から、実行時間の上界は何か。
  • RQ5$\vdash_D$ の意思決定問題を、より単純な制約順序 $\sqsubseteq$ の問題に還元することは可能か。

主な発見

  • 提案されたアルゴリズムは、分割精錬と動的冗長性検出を組み合わせることで、CCP における飽和バーブド bisimilarity ($\dot{\sim}_{sb}$) を正しく計算する。
  • アルゴリズムはすべての有限状態 CCP システムに対して終了し、正しい結果を出力する。冗長性チェックのための補助状態の数は有限であるため。
  • 最悪ケースの時間計算量は $n \times 2^{O(m)} \times f_\mathbf{C}$ で抑えられる。ここで $n$ は到達可能な構成数、$m$ は遷移数、$f_\mathbf{C}$ は $\sqsubseteq$ を決定するコストである。
  • 指数的サイズの $IS^*$ を持つ特定の遷移系の構築により、アルゴリズムが最悪ケースで指数時間の計算を要することが実際に示された。
  • $\vdash_D$ の簡略化された特徴付けが提供された:$t_1 \vdash_D t_2$ であるとは、$\alpha_1 \sqsubset \alpha_2$ かつ $c_2 = c_1 \sqcup \alpha_2$ であること。これにより、$O(f_\mathbf{C})$ 時間で効率的なチェックが可能になる。
  • アルゴリズムは C++ で実装され、公開されており、CCP におけるプログラム同等性の自動検証のための最初の実用的ツールである。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。