Top Banner
SPIN
23

SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Dec 16, 2015

Download

Documents

Jacob Wheeler
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

SPIN

Page 2: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Seach Optimization

• Exhaustive search requires so much time and memory

• to perform verification realistically, must perform some shortcuts– reduce the number of reachable states– reduce the amount of memory required to

represent a state

Page 3: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Agenda

• Search Algorithm• Search Optimization

– Reduction of the number of reachable states– Reduction of the amount of memory

• lossless method– State Compression– Minimized automaton representation

• lossy method– Bit state hashing– Bloom Filter– Hash Compact

Page 4: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Partial Order Reduction

• 考えられる実行順序– 1 : x = 1;g = g+2;y = 1 ;g = g*2;– 2 : x = 1;y = 1 ;g = g+2 ;g = g*2;– 3 : x = 1;y = 1 ;g = g*2 ;g = g+2;– 4 : y = 1;g = g*2 ;x = 1 ;g = g+2; – 5 : y = 1;x = 1 ;g = g*2 ;g = g+2;– 6 : y = 1;x = 1 ;g = g+2;g = g*2;

P1 : x = 1; g = g+2;

P2 : y = 1 g = g*2

Page 5: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Partial Order Reduction

• x = 1 と y = 2 と (g = g + 2, g= g * 2) は独立

• 重要なのは g = g+2, g = g * 2 の順序のみ– 2 : x = 1;y = 1 ;g = g+2 ;g = g*2;– 3 : x = 1;y = 1 ;g = g*2 ;g = g+2;

の二つについてのみ探索を行えば十分

Page 6: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Statement Merging

• if permissible, merge adjacent statements (operations) into one

• if there is a possibility that a different process might interleave between statements, this is not possible– eg: when global variables are accessed conse

cutively

• It is a special case of Partial Order Reduction

adjacent: 隣接する

Page 7: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Agenda

• Search Algorithm• Search Optimization

– Reduction of the number of reachable states– Reduction of the amount of memory

• lossless method– State Compression– Minimized automaton representation

• lossy method– Bit state hashing– Bloom Filter– Hash Compact

Page 8: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

State Compression

• 各プロセスの状態表現に P[bits] – プロセス数が n なら状態表現に nP[bits] 必要– しかし P[bits] で表現される全ての状態に到達

するわけではない。– よって P[bits] は情報量として冗長– 各プロセス毎に到達した状態に unique な番

号を割り振って、全状態としてはその番号の組み合わせを記憶する。

Page 9: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

State Compression

• e.g.– P1 : integer x, y , z; P2 : integer a, b , c;– the size of memory to represent a state of each

process is 24bits.– the number of reachable states is 5,000– the number of reachable states of each process is

100 ( <= 256 = 2^8)• If states is represented straightforwardly, you

need …– (24 + 24)*5,000 = 240,000 [bits]

• If you use this method, you need only …– (100 + 100)*24 + 8 * 5,000 = 44,800 [bits]

Page 10: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Minimized automaton representation

• 状態が到達済みかどうかの判定を OBDDを利用して行う。

• OBDD– bit 列の入力に対して、真偽を判断するための

データ構造• 戦略

– 状態 S をビット列に変換– OBDD で到達済みか判断。– 到達済みでないなら、 OBDD を更新する。

Page 11: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

OBDD

• BDD (Binary Decision Diagram)– bit 列 [b0,b1, …] に対して true, false を判定する

automaton– 各 vertex が b0,b1, … に対応 edges が bit の値に対応

• OBDD– BDD に以下の条件を加えたもの。– b0,b1,b2, … の順に処理– 同じ構造のツリーはまとめる。– 冗長な vertex は除去

Page 12: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

OBDD Structure

b0 b1

b1

b2

F

T

0

1 0

1

1

00

1

(b0,b1,b2) { (0,0,0),(0,0,1),(1,0,1) } →∈   Trueotherwise →   False

+ (1,0,0)

Page 13: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Agenda

• Search Algorithm• Search Optimization

– Reduction of the number of reachable states– Reduction of the amount of memory

• lossless method– State Compression– Minimized automaton representation

• lossy method– Bit state hashing– Bloom Filter– Hash Compact

Page 14: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Bit state hashing

• Depth-first search constructs a set of reachable states to conclude whether a state was reached.

• The set is normally implemented using hash table.

Page 15: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Standard implementation

• Standard implementation uses– 8×h + S×r [bits]

• h : the number of slots of a hash table

• S : the size of memory to represent a state

• r : the number of reachable states

• 8 : pointer• m : total size of memory

in the machine

Page 16: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Standard Implementation

• If parameters are ...– m = 10^9 bits ,S = 1000 , r = 10^7– (S ・ r)/m = 10 > 1– coverage of the problem size is only 10%

Page 17: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Bit state hashing

• If we configure the hash table as an array of m bits, using it as a hash table with h = m slots.....– h >> r and coverage close to 100%– when a hash collision happens, we will

conclude incorrectly that a state was visited before.

Page 18: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

s0

s1

s2s3

s4

s5

hash collision!!

not reached

h(s0) = 0, h(s1) = 5, h(s2) = 3, h(s3) = 2,h(s4) = 5, h(s5) = 1

0 1 2 3 4 5

h(s0) h(s1)h(s2)h(s3) h(s4)

This state was reached !?

Page 19: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Bloom Filters

push (s) : existed = True hlist = hash(s,k) for h in hlist: if (hash_table[h] is False): existed = False hash_table[h] = True return existed

hash(s,k): return [h0(s),h1(s),...., h_k_1(s)]

Page 20: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Bloom Filters (k = 2)

h0(s0) = 0h1(s0) = 1

h0(s1) = 0h1(s1) = 3

h0(s2) = 3h1(s2) = 1

0 1 2 3 4

OK

OK OKCollision OK

OK

Collision Collision

False Collision

Page 21: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Bloom Filter• After r states is stored, probability that a

certain bit is still false is

• Probability that we incorrectly conclude that the (r + 1)th state was visited

• optimal k (that minimize probability) is

Page 22: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Bloom Filter

• e.g.– r = 10,000,000– m = 1,000,000,000– optimal value of k = 69.315

Page 23: SPIN. Seach Optimization Exhaustive search requires so much time and memory to perform verification realistically, must perform some shortcuts –reduce.

Hash Compact

• Normal Implementation な hash table に State ではなく、 State を hash 関数を使って、より小さい空間に写像したものを渡す。– 当然、写像に使う hash 関数は hashtable 内で利用さ

れているものとは異ならなければならない。• the number of reachable states << hash 値の空

間の大きさ << State 空間の大きさの時効果を発揮する。

• 前者の <<→ 衝突の確率が低い。• 後者の <<→ 保存データサイズの縮小• 要するに State 空間の表現が冗長だよってこと。