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

Slides:



Advertisements
Similar presentations
SPSSによるHosmer-Lemeshow検定について
Advertisements

あなたは真夜中に 山の頂上を目指す登山者です
レポート書き方. おしいレポート よく調べてある それぞれの、1文の言っていることは正 しい しかし、全体として、何が言いた いのかわからない 内容の重要だが、全体の構成も重 要である.
7.n次の行列式   一般的な(n次の)行列式の定義には、数学的な概念がいろいろ必要である。まずそれらを順に見ていく。
9.線形写像.
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
時間的に変化する信号. 普通の正弦波 は豊富な情報を含んでいません これだけではラジオのような複雑な情報 を送れない 振幅 a あるいは角速度 ω を時間的に変化 させて情報を送る.
情報処理A 第10回 Excelの使い方 その3.
九州大学 岡村研究室 久保 貴哉 1. 利用中のAPの数の推移 2 横軸:時刻 縦軸:接続要求数 ・深夜では一分間で平均一台、 昼間では平均14台程度の接続 要求をAPが受けている。 ・急にAPの利用者数が増えてく るのは7~8時あたり.
5.連立一次方程式.
相関.
1 情報量(2章). 2 物理的概念との対比1(入れ物と中 身) 塩水 塩 データ 情報 情報の量? 塩分の量! 情報の量は見た目ではわ からない。データと情報 は異なる概念。 塩分の量は見た目 ではわからない。 しかし、本質的な もの。
―本日の講義― ・平均と分散 -代表値 -ぱらつき(分散・標準偏差等) ・Excelによる演習
論理回路 第2回 今日の内容 前回の課題の説明 数の体系 – 数の表現 – 代表的な数 – 基数の変換 – 補数.
ノイズ. 雑音とも呼ばれる。(音でなくても、雑 音という) 入力データに含まれる、本来ほしくない 成分.
この資料は、情報工学レクチャーシリーズ オペレー ティングシステム 松尾啓志 著(森北出版株式会 社)を用いて授業を行うために、名古屋工業大学松 尾啓志、津邑公暁が作成しました。 パワーポイント2007で最終版として保存しているため、変更はできませ
09bd135d 柿沼健太郎 重不況の経済学 日本の新たな 成長へ向けて.
素数判定法 2011/6/20.
フーリエ係数の性質. どこまで足す? 理想的には無限大であるが、実際に はそれは出来ない これをフーリエ解析してみる.
地球温暖化と 天候の関係性 ~温暖化は天候のせいなのではないのか~. 目的課題 地球温暖化現象 ただの気象条件によるものではないのか? 地球温暖化現象に天候は関係しているの か?
1章 行列と行列式.
プログラミングⅠ( 1 組) 第 9 回
フーリエ級数. 一般的な波はこのように表せる a,b をフーリエ級数とい う 比率:
プログラミング入門2 第4回 式文 代入式 論理演算子 ループの脱出、スキップ 情報工学科 篠埜 功.
3.エントロピーの性質と各種情報量.
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
Excelによる積分.
1 6.低次の行列式とその応用. 2 行列式とは 行列式とは、正方行列の特徴を表す一つのスカ ラーである。すなわち、行列式は正方行列からスカ ラーに写す写像の一種とみなすこともできる。 正方行列 スカラー(実数) の行列に対する行列式を、 次の行列式という。 行列 の行列式を とも表す。 行列式と行列の記号.
計算のスピードアップ コンピュータでも、sin、cosの計算は大変です 足し算、引き算、掛け算、割り算は早いです
線形符号(10章).
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
複素数.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
信号測定. 正弦波 多くの場合正弦波は 0V の上下で振動する しかし、これでは AD 変換器に入れら れないので、オフ セットを調整して データを取った.
1 9.線形写像. 2 ここでは、行列の積によって、写像を 定義できることをみていく。 また、行列の積によって定義される写 像の性質を調べていく。
通信路(7章).
アルゴリズムとデータ構造 補足資料 7-4 「単純交換ソート exsort.c 」 横浜国立大学 理工学部 数物・電子情報系学科 富井尚志.
3.プッシュダウンオートマトンと 文脈自由文法
6.符号化法(6章).
ビット. 十進数と二進数 十進数  0から9までの数字を使って 0、1、2、3、4、5、6、7、8、9、 10、11、12 と数える 二進数  0と1を使って 0、1、10、11、100、101、11 0、111 と数える.
重不況の経済学 第2章第2節 山下 真弘. 不均等成長 不均等成長=市場の特定の製品または特定の国・ 地域で付加価値の縮小が生じること 要因は2つ 製品別の「生産性向上速度の差」 付加価値総額の天井(=需要制約)
アルゴリズムとデータ構造 補足資料14-1 「ハッシュ法」
結城諒 司 吉田成 樹 完成予定図 O N! 7セグLE D ランダム表 示 OF F ? 数字が出たら 勝ち!!
3.正方行列(単位行列、逆行列、対称行列、交代行列)
様々な情報源(4章).
論理回路 第1回. 今日の内容 論理回路とは? 本講義の位置づけ,達成目標 講義スケジュールと内容 受講時の注意事項 成績の評価方法.
Bar-TOP における光の 群速度伝播の解析 名古屋大学 高エネルギー物理研究室 松石 武 (Matsuishi Takeru)
伝わるスライド 中野研究室 M2 石川 雅 信. どのようなスライドを作れば良 いか 伝えたいこと.
JPN 311: Conversation and Composition 許可 (permission)
地図に親しむ 「しゅくしゃくのちがう 地図を 使ってきょりを調べよ う1」 小学4年 社会. 山口駅裁判所 県立 美術館 サビエル 記念聖堂 山口市役所 地図で探そう 市民会館 県立 図書館.
C言語応用 構造体.
実装の流れと 今後のスケジュール 03k0014 岸原 大祐. システム概要 天気データをもとに、前向き推論をし ていき、親の代わりに子供に服装、持 ち物、気をつけることなどを教える。
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
子供の判断支援システム 03k0014 岸原大祐. システム概要 天気データと個人データの二つから、 条件に応じて服装、行動等に対し、親 の代わりに子供に対してアドバイスを 行う。
JPN 312 (Fall 2007): Conversation and Composition 文句 ( もんく ) を言う.
HKS Analysis Log Jul 2006 Part1 D.Kawama. 第壱部 HKS Sieve Slit Analysis.
1 プログラミング言語論 第13回 プログラムの意味論と検証 (2) 表示的意味論 担当:犬塚. 2 表示的意味論 denotational semantics  表示的意味論では、プログラムの要素とそれが 意味するものを対応付ける。 変数 式 文 A B … A+2 2B+C A:=A+2 if.
「ネット社会の歩き方」レッスンキット プレゼンテーション資料集 15. チャットで個人情報は 言わない プレゼンテーション資料 著作権は独立行政法人情報処理推進機構( IPA )及び経済産業省に帰属します。
8.任意のデータ構造 (グラフの表現とアルゴリズム)
メニューに戻る メニューに戻る | 前表示スライド 前表示スライド G*power 3 の web ページ Windows はこちら Mac はこちら ダウンロード後,実行してインストール.
実験5 規則波 C0XXXX 石黒 ○○ C0XXXX 杉浦 ○○ C0XXXX 大杉 ○○ C0XXXX 高柳 ○○ C0XXXX 岡田 ○○ C0XXXX 藤江 ○○ C0XXXX 尾形 ○○ C0XXXX 足立 ○○
オセロの思考アルゴリズムについて 1103072 岩間 隆浩.
Kitenet の解析 (110118) 九州大学 工学部 電気情報工学科 岡村研究室 久保 貴哉.
音の変化を視覚化する サウンドプレイヤーの作成
プログラミングの基礎知識 プログラミングの手順と重要概念 アルゴリズム. プログラミングの手順 コーディング エディタなどでコードを記述 コンパイル・インタープリタ 実行可能な形に翻訳 デバッグ(虫取り、不具合の調整) 完成!
Self-efficacy(自己効力感)について
1 オペレーティングシステム #7 計算機工学 III オペレーティングシステム #7 主記憶管理:主記憶管理基礎 2006/05/26 津邑 公暁.
本文. 考えながら読みましょ う 「いろいろなこと」( 3 行目)は何で すか 「①電話料金はコンビニで支払いをしていま す。いつでも払えますから、便利です。」 「②夕食はコンビニで買います。お弁当やお かずがいろいろありますから。」今、若者に 人気のあるコンビニは、いろいろなことをす るのに非常に便利な場所になった。
IIR 輪講復習 #18 Matrix decompositions and latent semantic indexing.
Presentation transcript:

SPIN

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

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

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

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; の二つについてのみ探索を行えば十分

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 consecutively It is a special case of Partial Order Reduction adjacent: 隣接する

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

State Compression 各プロセスの状態表現に P[bits] – プロセス数が n なら状態表現に nP[bits] 必要 – しかし P[bits] で表現される全ての状態に到達 するわけではない。 – よって P[bits] は情報量として冗長 – 各プロセス毎に到達した状態に unique な番号 を割り振って、全状態としてはその番号の組 み合わせを記憶する。

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 … –( )*5,000 = 240,000 [bits] If you use this method, you need only … –( )* * 5,000 = 44,800 [bits]

Minimized automaton representation 状態が到達済みかどうかの判定を OBDD を 利用して行う。 OBDD –bit 列の入力に対して、真偽を判断するための データ構造 戦略 – 状態 S をビット列に変換 –OBDD で到達済みか判断。 – 到達済みでないなら、 OBDD を更新する。

OBDD BDD (Binary Decision Diagram) –bit 列 [b0,b1, …] に対して true, false を判定する automaton – 各 vertex が b0,b1, … に対応 edges が bit の値に対応 OBDD –BDD に以下の条件を加えたもの。 –b0,b1,b2, … の順に処理 – 同じ構造のツリーはまとめる。 – 冗長な vertex は除去

OBDD Structure b0b1 b2 F T (b0,b1,b2) ∈ { (0,0,0),(0,0,1),(1,0,1) } → True otherwise → False + (1,0,0)

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

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.

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

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%

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.

s0 s1 s2 s3 s4 s5 hash collision!! not reached h(s0) = 0, h(s1) = 5, h(s2) = 3, h(s3) = 2, h(s4) = 5, h(s5) = h(s0) h(s1) h(s2)h(s3)h(s4) This state was reached !?

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)]

Bloom Filters (k = 2) h0(s0) = 0 h1(s0) = 1 h0(s1) = 0 h1(s1) = 3 h0(s2) = 3 h1(s2) = OK CollisionOK Collision False Collision

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

Bloom Filter e.g. –r = 10,000,000 –m = 1,000,000,000 –optimal value of k =

Hash Compact Normal Implementation な hash table に State では なく、 State を hash 関数を使って、より小さい空 間に写像したものを渡す。 – 当然、写像に使う hash 関数は hashtable 内で利用され ているものとは異ならなければならない。 the number of reachable states << hash 値の空 間の大きさ << State 空間の大きさの時効果を発 揮する。 前者の <<→ 衝突の確率が低い。 後者の <<→ 保存データサイズの縮小 要するに State 空間の表現が冗長だよってこと。