350 likes | 629 Views
自律分散協調システム 分散アルゴリズム (1). 慶應義塾大学環境情報学部 徳田英幸. 基本的な概念:自律分散協調. 自律性 個の確立 主体的行動 分散性 多数の個 空間的・ネット的に分散 協調性 個と個の協調プロトコル 協調により全体の機能を維持・形成する 構成論的手法 vs. 自己組織論的手法 システムとしての評価 評価の軸 良いシステム vs. 悪いシステム. 分散アルゴリズム (1). Distributed Mutual Exclusion Election Algorithm Distributed Deadlock
E N D
自律分散協調システム 分散アルゴリズム(1) 慶應義塾大学環境情報学部 徳田英幸 © H.Tokuda 2009
基本的な概念:自律分散協調 • 自律性 • 個の確立 • 主体的行動 • 分散性 • 多数の個 • 空間的・ネット的に分散 • 協調性 • 個と個の協調プロトコル • 協調により全体の機能を維持・形成する • 構成論的手法 vs. 自己組織論的手法 • システムとしての評価 • 評価の軸 • 良いシステム vs. 悪いシステム © H.Tokuda 2008
分散アルゴリズム(1) • Distributed Mutual Exclusion • Election Algorithm • Distributed Deadlock • Clock Synchronization • Byzantine consensus problem • 。。。 © H.Tokuda 2008
無線アドホックネットワーク • アドホックネットワークとは? • ネットワーク・インフラが存在しない • peer-to-peerでの通信スタイル • トポロジが人や物の動きと共に動的に変化する • ノードの移動、無線電波品質の変化 • Weak Connectivity • 常時接続の保証ではない
並行プロセスの挙動デッドロック(1) Process P1 { … brec(p2, …); … } Process P2 { … brec(p1, …); … } Brec(p2,...) Brec(p1,...) p2 p1 © H.Tokuda 2006
並行プロセスの挙動デッドロックとは? • システムを構成しているすべてのプロセスが起きるはずのない事象を待ち続ける状態 p1 Brec(p2,...) Brec(p3,...) Brec(p1,...) p2 p3 © H.Tokuda 2006
並行プロセスの挙動デッドロック(2) Process P1 { … request(printer,…) request(tape, …) … } Process P2 { … request(tape, …) request(printer,…) … } p2 p1 © H.Tokuda 2006
分散デッドロック • システムを構成しているすべてのプロセスが起きるはずのない事象を待ち続ける状態 p1 Brec(p2,...) Brec(p3,...) Brec(p1,...) p2 p3 © H.Tokuda 2007
WFG(Wait-for-Gragh) p1 Brec(p2,...) Brec(p3,...) Brec(p1,...) p2 p3 Host-B Host-A © H.Tokuda 2007
Dependability Dependability Dependability... © H.Tokuda 2007
ディペンダブルシステム • 高信頼性(Dependability)とは、以下の要件を満たす • 可用性(Availability) • システムを利用したいときに高い確率で利用可能 • 信頼性(Reliability) • システムは、ある一定期間、正常に稼動可能 • 安全性(Safety) • 障害時でも、システムに重大な問題が生じない • 保守性(Maintainability) • 故障したシステムを容易に回復可能 © H.Tokuda 2007
Dependabilityとの出会い @cmu • Prof. Dan Siewiorek • C.mmp => Cm* => C.vmp • Issues in Testing and Reliability in Computer Systems • 新しい概念? • Fault Tolerant Computing Systems • Mission Critical Systems • Dependable Computing Systems © H.Tokuda 2007
耐障害性(フォールトトレラント性) • フォールトトレラント性 • システムの一部に障害が発生しても、システム全体のサービスを提供し続けられる性質 • 障害(fault)の種類 • 過渡障害(transient fault) • 一度だけ発生し、消滅する障害 • ノイズによるビット損失など • 間欠障害(intermittent fault) • 一時的な障害が繰り返される障害 • コネクタの接続不良など • 永久障害(permanent fault) • 修復されるまで存在し続ける障害 • ディスククラッシュなど © H.Tokuda 2007
Dependabilityの議論 IT system Gov. • Dependabilityと IT assurance • 情報システム系 • Reliability, Availability, Safety • Confidentiality, Integrity, Maintenability • ガバナンス系 • 運用・管理・保守している人、組織、社会制度 • 何がディペンドしているのか? • 人(命)、モノ、金 • National Security • . . . © H.Tokuda 2007
障害の遮蔽 • システムに冗長性を持たせることで障害を隠蔽 • 情報的冗長性 • CRCチェック、エラー訂正符号など • 時間的冗長性 • 動作のやり直しによる冗長性 • トランザクション処理など • 物理的冗長性 • 余分なデバイスやプロセスを持たせる冗長性 • RAIDなど © H.Tokuda 2007
耐故障アルゴリズム • 停止故障 • 故障したプロセスは永遠に停止する. • 仮定 • 通信は、可能であるが、プロセスの挙動が保証されない • t-回復力 (t-resilient) • あるアルゴリズムが高々t個のプロセスの故障にも耐えるアルゴリズム. • ビザンティン故障 • 故障したプロセスの動作に一切の仮定をおかない. • 故障プロセスは、任意の動作しうる! © H.Tokuda 2007
ビザンティン合意問題 • 正常なプロセスが同じ初期値を持っている場合、それらのプロセスは、ある値で合意形成することができる。 • e.g. 3 processes -- 可能かどうか? P1 値={0, 1} 合意の値は? 故障プロセス P3 P2 © H.Tokuda 2007
ビザンティン合意問題:3 Processes P1 P1 P1 0 0 1 1 1 0 1 P3 P3 P3 P2 P2 P2 値={0, 1} 合意の値は? © H.Tokuda 2007
ビザンティン合意問題 P1 P2 0 0 0 1 P4 P3 • Lamportの解(1982) • 障害プロセスがm個のとき、正常プロセスが2m+1個以上、全体で3m+1個以上のとき、正常プロセス同士で合意に至ることが可能 • (例)m=1, n=4>=3m+1なのでOK • 将軍1:(1,2,*,4)、将軍2:(1,2,*,4)、将軍4:(1,2,*,4) © H.Tokuda 2007
分散アルゴリズムの実践~頭の体操から創発システムへ~分散アルゴリズムの実践~頭の体操から創発システムへ~
(I) 分散ソート問題 • 1からNまでの整数の分散ソート • 初期値 • N = 100 • Processes: P1- P10 • 各プロセスは、P1から順に横一列に並んでおり、自分の隣接しているプロセスとのみ交信出来るものと仮定する。 • 問題 • P1からP10までの各プロセスにランダムに選ばれた10個の数が初期の値として与えられた時、どのようにしてソートすることができるか? • 各プロセスは、どのような条件で、ソートが終了したことを判定できるか? © H.Tokuda 2007
(II) ロボット整列問題 • ある部屋内において、与えられた半径dの円周上にほぼ等間隔で整列するプログラムを作成せよ。 • 仮定 • ロボットが共有座標系を持つ • 同期的な動作をする (c.f. life game) © H.Tokuda 2007
ロボット整列問題 • 一群のロボットを自律的に円に整列される • Algorithm 1: Big brother方式 • 各位置を明示 • Algorithm 2:先生ロボット+生徒ロボット • 先生ロボットが計算し、指示する • Algorithm 3:先生ロボットを選出 • 先生ロボットを動的に選出 • Algorithm 4: 同一ロボット • 自律的に整列 © H.Tokuda 2007
課題 3(a):Robotroom.javaの作成 • 配布されたRobotroom.javaのプログラムを完成し、要求された協調動作を実現せよ。 • 提出物 • 協調動作の説明 • プログラムのソースコード • 実行例の初期値と最終画面のダンプ • 考察 © H.Tokuda 2007
世代の概念: Life game (1) • Life game • J. H. ConwayのLife Game • Life gameのルール • 盤面上にいくつかの石(生命体)を置く.(初期集団) • 盤面のある場所が空いていて、しかもその場所と隣り合うちょうど3個の場所に生命体が存在するならば、次の世代にはその空いた場所に新しい生命体が誕生する. • また、すでに存在する生命体については、隣り合う場所に住む生命体が1個以下、または4個以上になると、過疎または過密のため、次の世代には、死んでしまう. © H.Tokuda 2007
世代の概念: Life game (2) * * * * * * * * * * * * * * • 世代の概念 … © H.Tokuda 2007
課題3(b) Wave programの作成 • 配布されたwave2.cプログラムを改良して、 競技場で起こるwave 現象をsimulateできるようにする。 <初期状態><次世代生成部分> • 提出物 • ソースコード • 出力結果 • 考察:これをもとに、創発を起こす上でもっとも重要な要因について議論せよ。 © H.Tokuda 2007
創発システムに向けて 慶應義塾大学環境情報学部 徳田英幸
創発システムについて • 複数の要素が有機的に関係し合って、相互作用を通して全体としてまとまった機能を発現している要素の集まり • 相互作用が変わればシステムの機能も変わる! • 弱い創発システム • ミクロな要素の動きが集まって全体にわたるマクロなパターンが創発するシステム • 強い創発システム • 環境変化に適応できる創発するシステム © H.Tokuda 2007
創発のかたち • 上位層でのかたち • グループ、群、コミュニティ • 水の対流 • サッカー場のウェーブ • 自律型ロボットの整列問題 © H.Tokuda 2006
共通する性質は? • 自分と同じ能力の要素が沢山存在する • 沢山の要素が広い空間に分散している • すべての要素が共通の方法で(自分の近くの要素とだけ)情報の交換をする • すべての要素が同時並列的にうごく • すべての要素が同じ状況になるように動く(同じ評価関数をもっている) © H.Tokuda 2007
創発のギャップ • 人間 vs. 自律型ロボット • 個の非プログラム性 • 個の学習・動的適応性 • 多様な個 • 多様な価値観 • 情動的な行動 • 同期性 • 個の密度 • population density • 全体の規模 • Scalability • 実空間上の行動 vs. ネットワーク上の行動 © H.Tokuda 2006