自律分散協調システム 分散アルゴリズム(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 Mobile Ad hoc Networks 4 無線アドホックネットワーク アドホックネットワークとは? ネットワーク・インフラが存在しない peer-to-peerでの通信スタイル トポロジが人や物の動きと共に動的に変化する ノードの移動、無線電波品質の変化 Weak Connectivity 常時接続の保証ではない 5 分散アルゴリズム ~分散デッドロック問題~ 並行プロセスの挙動 デッドロック(1) Process P1 { … brec(p2, …); … } Process P2 { … brec(p1, …); … } Brec(p2,...) p1 Brec(p1,...) p2 © H.Tokuda 2006 並行プロセスの挙動 デッドロックとは? システムを構成しているすべてのプロセスが 起きるはずのない事象を待ち続ける状態 p1 Brec(p2,...) Brec(p3,...) Brec(p1,...) p3 p2 © H.Tokuda 2006 並行プロセスの挙動 デッドロック(2) Process P1 { … request(printer,…) request(tape, …) … } p1 Process P2 { … request(tape, …) request(printer,…) … } p2 © H.Tokuda 2006 分散デッドロック システムを構成しているすべてのプロセスが 起きるはずのない事象を待ち続ける状態 p1 Brec(p2,...) Brec(p3,...) Brec(p1,...) p3 p2 © H.Tokuda 2007 WFG(Wait-for-Gragh) p1 Brec(p2,...) Brec(p3,...) Brec(p1,...) p3 p2 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の議論 Dependability と IT assurance IT system 情報システム系 Reliability, Availability, Safety Confidentiality, Integrity, Maintenability ガバナンス系 Gov. 運用・管理・保守している人、組織、社会制度 何がディペンドしているのか? 人(命)、モノ、金 National Security ... © H.Tokuda 2007 障害の遮蔽 システムに冗長性を持たせることで障害を隠蔽 情報的冗長性 CRCチェック、エラー訂正符号など 時間的冗長性 動作のやり直しによる冗長性 トランザクション処理など 物理的冗長性 余分なデバイスやプロセスを持たせる冗長性 RAIDなど © H.Tokuda 2007 耐故障アルゴリズム 停止故障 故障したプロセスは永遠に停止する. 仮定 通信は、可能であるが、プロセスの挙動が保証されない t-回復力 (t-resilient) あるアルゴリズムが高々t個のプロセスの故障にも耐えるア ルゴリズム. ビザンティン故障 故障したプロセスの動作に一切の仮定をおかない. 故障プロセスは、任意の動作しうる! © H.Tokuda 2007 ビザンティン合意問題 正常なプロセスが同じ初期値を持っている場合、それ らのプロセスは、ある値で合意形成することができる。 e.g. 3 processes -- 可能かどうか? P1 値={0, 1} 合意の値は? 故障プロセス P2 P3 © H.Tokuda 2007 ビザンティン合意問題:3 Processes P1 P1 P1 0 0 0 1 1 1 P2 P3 P2 P3 1 P2 値={0, 1} 合意の値は? © H.Tokuda 2007 P3 ビザンティン合意問題 Lamportの解(1982) 障害プロセスがm個のとき、正常プロセスが 2m+1個以上、全体で3m+1個以上のとき、正常 プロセス同士で合意に至ることが可能 (例)m=1, n=4>=3m+1なのでOK P1 P2 0 0 0 1 P4 P3 将軍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
© Copyright 2025 ExpyDoc