コンピュータサイエンスの一分野であるモデル検査において、差分境界行列 (DBM)は、ゾーンと呼ばれる凸多面体を表すために使用されるデータ構造です。この構造は、空、包含、等価性のテストや、2つのゾーンの交差と和の計算など、ゾーンに対するいくつかの幾何学的操作を効率的に実装するために使用できます。たとえば、Uppaal モデルチェッカーで使用されており、独立したライブラリとしても配布されています。[1]
より正確には、標準 DBM の概念があります。標準 DBM とゾーンの間には 1 対 1 の関係があり、各 DBM から標準の同等の DBM を効率的に計算できます。したがって、ゾーンの等価性は、標準 DBM の等価性をチェックすることによってテストできます。
ゾーン
差分境界行列は、ある種の凸多面体を表すために使用されます。これらの多面体はゾーンと呼ばれます。これらは定義されています。正式には、ゾーンは、、、および という形式の方程式によって定義され、いくつかの変数と定数を持ちます。







ゾーンはもともと領域と呼ばれていましたが[ 2]、現在ではこの名前は通常、特別な種類のゾーンである領域を表します。直感的には、領域は制約で使用される定数が制限される、空でない最小限のゾーンと考えることができます。
変数が与えられると、1 つの変数と上限を使用する制約 、 1 つの変数と下限を使用する制約 、および変数 の順序付きペアのそれぞれに対して の上限 という、まったく異なる非冗長制約が考えられます。ただし、 の任意の凸多面体では、任意の数の制約が必要になる場合があります。 の場合でも、一部の定数に対して、任意の数の非冗長制約 が存在する可能性があります。これが、DBM をゾーンから凸多面体に拡張できない理由です。











例
はじめに述べたように、、、およびという形式のステートメントの集合によって定義されるゾーンを考えます。このステートメントには、いくつかの変数と定数が含まれます。ただし、これらの制約の一部は矛盾しているか冗長です。ここでは、そのような例を示します。







- 制約と は矛盾しています。したがって、このような制約が 2 つ見つかった場合、定義されたゾーンは空になります。


図は、互いに素な関係にある


- 制約と は冗長です。2 番目の制約は最初の制約によって暗黙的に指定されます。したがって、ゾーンの定義にこのような制約が 2 つ見つかった場合、2 番目の制約は削除できます。


表示されている図と最初の図を含む図


また、既存の制約から新しい制約を生成する方法を示す例も示します。 と の各クロックのペアに対して、DBM には という形式の制約があり、 は< または ≤ のいずれかです。 このような制約が見つからない場合は、一般性を失うことなく制約をゾーン定義に追加できます。 ただし、場合によっては、より正確な制約が見つかることがあります。 ここでは、そのような例を示します。





- 制約 は、を意味します。したがって、 や などの他の制約が定義に属していないと仮定すると、制約 がゾーン定義に追加されます。






図は、とそれらの交点を示している。


- 制約 は、を意味します。したがって、 や などの他の制約が定義に属していないと仮定すると、制約 がゾーン定義に追加されます。






図は、とそれらの交点を示している。


- 制約 は、を意味します。したがって、 や などの他の制約が定義に属していないと仮定すると、制約 がゾーン定義に追加されます。






実際、上記の最初の 2 つのケースは、3 番目のケースの特殊なケースです。実際、およびはそれぞれ、およびと書き直すことができます。したがって、最初の例で追加された制約は、3 番目の例で追加された制約に似ています。





意味
ここで、実数直線のサブセットであるモノイドを決定します。このモノイドは、伝統的に 整数、 有理数、実数、またはそれらの非負数のサブセット
の集合です。
制約
データ構造の差境界行列を定義するには、まず原子制約をエンコードするデータ構造を与える必要があります。さらに、原子制約の代数を導入します。この代数は熱帯半環に似ていますが、次の 2 つの変更が加えられています。
- の代わりに任意の順序付きモノイドを使用することもできます。

- 「 」と「 」を区別するために、代数の要素の集合には、順序が厳密であるかどうかを示す情報が含まれている必要があります。


制約の定義
満足可能な制約の集合は、次の形式のペアの集合として定義されます。
であり、これは という形式の制約を表す。

であり、 はの最小元ではなく、 という形式の制約を表す。



制約がないことを表します。
制約セットには、すべての満たせる制約が含まれており、次の満たせない制約も含まれています。
。
この種の制約を使用してサブセットを定義することはできません。より一般的には、定義内の各制約が最大 2 つの変数を使用する場合でも、順序付きモノイドが最小上限プロパティを持たない場合、一部の凸多面体は定義できません。

制約に対する操作
同じ変数に適用された制約のペアから単一の制約を生成するために、制約の交差と制約の順序の概念を形式化します。同様に、既存の制約から新しい制約を定義するには、制約の合計の概念も定義する必要があります。
制約に基づく順序
ここで、制約に対する順序関係を定義します。この順序は包含関係を表します。
まず、集合 は順序付き集合とみなされ、< は ≤ より劣っています。直感的に、 によって定義される集合はによって定義される集合に厳密に含まれるため、この順序が選択されます。次に 、または (かつより小さい)の場合、制約 はより小さいと 述べます。つまり、制約 の順序は、右から左に適用される辞書式順序です。この順序は全順序であることに注意してください。 に最小上限特性(または最大下限特性)がある場合、制約の集合にもそれがあります。










制約の交差
と表記される 2 つの制約の交差は、単に 2 つの制約の最小値として定義されます。 が最大下限プロパティを持つ場合、無限数の制約の交差も定義されます。


制約の合計
制約 および が適用されている2つの変数 および が与えられた場合、が満たす制約 を生成する方法を説明します。 この制約は、上記の 2 つの制約の合計と呼ばれ、 と表され、 と定義されます。







代数としての制約
以下は制約セットによって満たされる代数的特性のリストです。
- どちらの演算も結合的かつ交換的であり、
- 和は交差に対して分配的である。つまり、任意の3つの制約に対して、和は、


- 交差演算は冪等であり、
- 制約は交差演算の恒等式であり、

- 制約は和演算の恒等式であり、

さらに、次の代数的性質は満足可能な制約に対して成り立ちます。
- 制約は合計演算ではゼロである。

- したがって、満足可能な制約の集合は、がゼロで が1 である冪等半環であることがわかります。


- 0 が の最小要素である場合、充足可能な制約上の交差制約に対して はゼロになります。


充足不可能な制約では、両方の演算は同じ零点、つまり を持ちます。したがって、共通部分の恒等式は和の零点とは異なるため、制約集合は半環を形成しません。

DBM
変数の集合 が与えられると、DBM は によってインデックス付けされた列 と行 を持つ行列となり、エントリは制約となります。直感的には、列と行の場合、位置 の値はを表します。したがって、で表される行列 によって定義されるゾーンはです。











は と同等であることに注意してください。したがって、エントリは本質的には依然として上限です。ただし、モノイド を検討しているため、 および のいくつかの値に対して、実数は実際にはモノイドに属していないことに注意してください。







標準的な DBM の定義を紹介する前に、それらの行列の順序関係を定義して議論する必要があります。
これらのマトリックス上の順序
行列の各要素が より小さい場合、その行列は より小さいとみなされます。この順序は完全ではないことに注意してください。2 つの DBM と が与えられ、がより小さいか等しい場合、 となります。







2 つの行列およびの最大下限はと表記され、そのエントリとして値 を持ちます。は制約の半環の「和」演算であるため、演算は2 つの DBM の「和」であり、DBM の集合はモジュールとみなされることに注意してください。







上記の「制約の操作」セクションで検討した制約の場合と同様に、最大下限プロパティを満たす
とすぐに、無限の数の行列の最大下限が正しく定義されます。
行列/ゾーンの交差は定義されています。和集合演算は定義されておらず、実際、ゾーンの和集合は一般にゾーンではありません。
すべて同じゾーン を定義する任意の行列の集合に対して、も定義します。したがって、 が最大下限特性を持つ限り、少なくとも 1 つの行列によって定義される各ゾーンには、それを定義する一意の最小行列が存在します。この行列は の標準 DBM と呼ばれます。






標準的なDBMの最初の定義
標準差分境界行列の定義を再度述べます。これは、より小さい行列が同じセットを定義しない DBM です。以下では、行列が DBM かどうかを確認する方法と、そうでない場合は両方の行列が同じセットを表すように任意の行列から DBM を計算する方法について説明します。ただし、最初にいくつか例を示します。
行列の例
まず、時計が 1 つだけある場合を考えます。

本当のライン
まず、 の標準的な DBM を示します。次に、集合 をエンコードする別の DBM を導入します。これにより、任意の DBM が満たす必要がある制約を見つけることができます。


実数集合の標準的な DBM は です。これは制約、、および を表します。これらの制約はすべて、 に割り当てられた値とは関係なく満たされます。以降の説明では、 という形式のエントリによる制約は体系的に満たされるため、
明示的には説明しません。






DBM は実数の集合もエンコードします。これには、の値とは独立に満たされる制約および が含まれます。これは、標準 DBM では対角要素が より大きくなることはないことを示しています。対角要素を で置き換えることによってから得られる行列は 同じ集合を定義し、 より小さくなるためです。









空集合
ここで、空集合をエンコードする多くの行列について考えます。まず、空集合の標準的な DBM を示します。次に、各 DBM が空集合をエンコードする理由を説明します。これにより、どの DBM でも満たさなければならない制約を見つけることができます。
1 つの変数上の空集合の標準的な DBM は です。実際、これは制約、、および を満たす集合を表します。これらの制約は満たすことができません
。




DBM は空集合もエンコードします。実際、空集合には満たされない制約が含まれています。より一般的には、すべてのエントリが でない限り、どのエントリも にならないことを示しています。




DBM は空集合もエンコードします。実際、空集合には満たされない制約が含まれています。より一般的には、これは、 でない限り、対角線のエントリが より小さくなることはないことを示しています。




DBM は空集合もエンコードします。実際、空集合には矛盾する制約と が含まれます。より一般的には、各 に対しての場合、 と は両方とも ≤ に等しいことが示されます。







DBM は空集合もエンコードします。実際、空集合には矛盾する制約と が含まれます。より一般的には、これは、でない限り、各に対して であることを示します。







厳しい制約
このセクションに示されている例は、上記の例のセクションに示されている例と似ています。今回は、DBM として示されています。
DBM は、制約および を満たすセットを表します。例のセクションで述べたように、これらの制約は両方とも を意味します。これは、DBMが同じゾーンをエンコードすることを意味します。実際、これはこのゾーンの DBM です。これは、任意の DBM で、各 に対して、制約 が制約 よりも小さいことを示しています。









例のセクションで説明したように、定数 0 は任意の変数と見なすことができます。これにより、より一般的な規則が導かれます。任意の DBM では、各 に対して、制約 は制約 よりも小さくなります。




標準DBMの3つの定義
差分境界行列のセクションの冒頭で説明したように、標準 DBM は、行と列が でインデックス付けされ、エントリが制約である DBM です。さらに、次の同等の特性のいずれかに従います。

- 同じゾーンを定義するより小さなDBMは存在しない。
- 各 に対して、制約は制約よりも小さい。



- ラベルが付けられた辺と矢印を持つ有向グラフが ある場合、任意の辺から任意の辺への最短経路は矢印 です。このグラフはDBM のポテンシャル グラフと呼ばれます。







最後の定義は、DBM に関連付けられた標準 DBM を計算するために直接使用できます。グラフにFloyd-Warshall アルゴリズムを適用し、グラフ内のからへの最短パスを各エントリに関連付けるだけで十分です。このアルゴリズムが負の長さのサイクルを検出した場合、これは制約が満たされず、ゾーンが空であることを意味します。



ゾーンの操作
はじめに述べたように、DBM の主な利点は、ゾーンに対する操作を簡単かつ効率的に実装できることです。
まず、上で検討した操作を思い出します。
- ゾーンがゾーンに含まれているかどうかのテストは、 の標準 DBM がの DBM 以下であるかどうかをテストすることによって行われます。




- ゾーンの集合の交差に対するDBMは、それらのゾーンのDBMの最大下限である。
- ゾーンの空性をテストするには、ゾーンの標準DBMが のみで構成されているかどうかを確認する必要があります 。

- ゾーンが空間全体であるかどうかをテストするには、ゾーンの DBM が のみで構成されているかどうかを確認する必要があります 。

ここでは、上記で考慮しなかった操作について説明します。以下で説明する最初の操作には、明確な幾何学的意味があります。最後の操作は、クロック評価にとってより自然な操作に対応します。
ゾーンの合計
2 つの DBM と によって定義される 2 つのゾーンのミンコフスキー和は、要素がであるDBM によって定義されます。は制約の半環の「積」演算であるため、DBM 上の演算は実際には DBM のモジュールの演算ではないこと に注意してください。







特に、ゾーンを方向 で 変換するには、 の DBMを の DBM に追加するだけで十分であることがわかります。




コンポーネントを固定値に投影する
定数
とします。
ベクトルとインデックスが与えられた場合、の- 番目の要素 の への射影はベクトル です。クロックの言語では、 の場合、これは- 番目のクロックをリセットすることに相当します。








ゾーンの - 番目の成分を に投影することは、 - 番目の成分を とする のベクトルの集合に単純化されます。これは、成分を に設定し、成分を に設定することで DBM に実装されます。








ゾーンの未来と過去
未来をゾーン、過去をゾーンと呼ぶことにします。点が与えられたとき、の未来はと定義され、の過去はと定義されます。







未来と過去という名前は、クロックの概念に由来しています。 、などの値にクロックのセットが割り当てられている場合、それらの将来において、それらに割り当てられたセットは の将来になります。




ゾーン が与えられた場合、の未来はゾーンの各ポイントの未来の和になります。ゾーンの過去の定義も同様です。したがって、ゾーンの未来は と定義できるため、DBM の合計として簡単に実装できます。ただし、DBM に適用できるさらに簡単なアルゴリズムもあります。すべてのエントリを に変更するだけで十分です。同様に、ゾーンの過去は、すべてのエントリを に設定することで計算できます。







参照
参考文献
- ^ 「UPPAAL DBM ライブラリ」。GitHub。2021年7 月 16 日。
- ^ Dill, David L (1990)。「有限状態並行システムのタイミング仮定と検証」。有限状態システムの自動検証方法。コンピュータサイエンスの講義ノート。第 407 巻。pp. 197–212。doi : 10.1007 / 3-540-52148-8_17。ISBN 978-3-540-52148-8。
- 差境界行列 上級モデル検査講義 #20 Joost-Pieter Katoen
- Péron, Mathias; Halbwachs, Nicolas (2008)。「不等式制約による差境界行列の抽象ドメイン拡張」(PDF)。検証、モデル検査、抽象解釈。コンピュータサイエンスの講義ノート。第 4349 巻。pp. 268–282。doi : 10.1007 / 978-3-540-69738-1_20。ISBN 978-3-540-69735-0。