自律分散協調コンピューティング 慶應義塾大学環境情報学部 徳田英幸 © H.Tokuda 2007 自律分散コンピューティング 分散アルゴリズム 自律性 分散エージェント、マルチエージェント、自律ロボット 分散性 物理的な分散(コントロール+データ), p2pシステム フラットな構造 協調性 協調プロトコル 複雑な問題に対する新しいアプローチ 遺伝的アルゴリズム(GA) ニューラルコンピューティング © H.Tokuda 2007 P2p型システム peer: 端末ノード peer-to-peer: 1対1の対等な協調作業形態 アプリケーション ファイル共有、交換、配信: Chord, Napster, Gnutella, Winny グループウェア: Grove 分散コンピューティング: SETI@home 分類 構造的p2pシステム Deterministic algorithms DHT (Distributed Hash Table)-based Systems CAN (Content Addressable Network) 非構造的p2pシステム Randomized algorithms Search by Flooding alg. E.g. MANET’s routing © H.Tokuda 2007 DHT (Distributed Hash Table) 2^160 ノード (例: 2^4ノード) Succ(i), Pred(i) Routing Tableの作成 i = 0 ~ (m-1) <== ここではm=4であるので0~3 p = (NodeID + (2^i)) % (2^m) RoutingTable = {[Finger(p)]} Finger(p)[i] = succ(p+2^(i-1)) 15 0 FT(0)={1,4,4,8} 1 FT(1)= {4,4,8,11} 2 14 FT(4)={8,8,11,14} 3 13 FT(8)={11,11,14,0} 4 12 5 11 6 10 9 8 © H.Tokuda 2007 7 FT(11) = {14,14,0,4} FT(14)={0,0,4,8} DHT (Distributed Hash Table) Hash function: SHA-1 (160bit random value) IP addr. Or Name => 2^160 Node id (例: 2^4 Node id), O(log N) steps Succ(i), Pred(i) Routing Tableの作成 i = 0 ~ (m-1) <== ここではm=4であるので0~3 p = (NodeID + (2^i)) % (2^m) RoutingTable = {[Finger(p)]} Finger(p)[i] = succ(p+2^(i-1)) 15 0 FT(0)={1,4,4,8} 1 Q: Nid=13? At 0 Route: Finger(p)[j] <= Nid < Finger(p){j+1] FT(1)= {4,4,8,11} 2 14 FT(4)={8,8,11,14} 3 13 FT(8)={11,11,14,0} 4 12 5 11 6 10 9 8 © H.Tokuda 2007 7 FT(11) = {14,14,0,4} FT(14)={0,0,4,8} DHT:ノードの追加・削除 Succ(i), Pred(i) Routing Tableの作成 i = 0 ~ (m-1) <== ここではm=4であるので0~3 p = (NodeID + (2^i)) % (2^m) RoutingTable = {[Finger(p)]} Finger(p)[i] = succ(p+2^(i-1)) 15 0 FT(0)={1,4,4,8} 1 FT(1)= {4,4,8,11} 2 14 13 FT(8)={11,11,14,0} Node 10: Succ(10) = 11 4 12 Pred(10) = 8 Node 8: Succ(8) =10 5 11 Node 11: Pred(11) = 10 Update each Finger Table!! FT(4)={8,8,11,14} 3 6 10 9 8 © H.Tokuda 2007 7 FT(11) = {14,14,0,4} FT(14)={0,0,4,8} 自律分散協調コンピューティング 分散アルゴリズム 相互排除問題、デッドロック問題、etc 複雑な問題に対する新しいアプローチ マルチエージェントシステム 遺伝的アルゴリズム(GA) 協調作業支援システム CSCWシステム グループウェア コミュニティウェア © H.Tokuda 2007 マルチエージェントシステム マルチエージェント システム特定の目的をもって行動するエー ジェントが、他のエージェントと協調的に行動 するための性質、条件やエージェントが複数 存在するときに生じる現象、効果などについて 研究することを目的としている。 特定の問題を部分問題に分割して解決してい くことを主たる目的としていない。 © H.Tokuda 2007 マルチエージェントに関わる研究分野 分散人工知能: 知的エージェントの協調的な 問題解決 分散協調ロボット:複数ロボットの協調作業 CSCW:人間を支援するプログラム間の協調 方法 人工生命:生命的存在の集団行動、生態系 仮想現実:仮想現実空間中に可視化された複 数エージェントおよび人間の相互作用 © H.Tokuda 2007 システムの捕らえ方 構成論的手法 Top-down, bottom-up手法 Client-server model 自己組織論的手法 自律的にシステムを構成 群知能、集団行動 アリの巣 都市のかたち 自律型ロボットシステム © H.Tokuda 2007 構成論的手法 協調方法を定義したアーキテクチャの構築 全体に対して個々のエージェントの役割が位置づ けられる。 コミュニケーションプロトコルの設計 マスタースレーブ的な協調、機能分割的な協調 位置的、機能的分散処理の重視 工学的な効率、システム動作解析可能性の重視 © H.Tokuda 2007 自己組織論的手法 協調的行動を発現するアーキテクチャの構築 全体は、個々のエージェントのインタラクションの結果として 創出される。 システムダイナミクスの研究 柔軟性、頑健性の重視 自律性に基づく協調 生物、社会現象の模倣 © H.Tokuda 2007 マルチロボットシステム 基本アイデア:複数ロボットの協調作業 背景:分散環境の整備、集中的システムの限界 特徴:柔軟性、頑健性、並列性、拡張性 応用:清掃、点検、運搬作業、Flexible Manufacturing, 宇宙ロボット、エンターテイメント © H.Tokuda 2007 自律性とは? 自律: 自分で自分の行為を規制すること 外部からの制御から脱して、自身の立てた規範に従って行 動すること 自立: 他の援助や支配を受けず自分の力で身を立てること 自律性をプログラムするとは? エージェントを作るとは? © H.Tokuda 2007 知的エージェントとは? 知的エージェントは、ある環境をセンサで知覚 し、ある環境にエフェクタを通して動作するも のである。 自律ロボットエージェント センサ:カメラ、赤外線センサ エフェクタ:手、足などを制御するモータ © H.Tokuda 2007 環境の多様性 アクセス可能 vs アクセス不能 決定的 vs 非決定的 静的 vs 動的 離散的 vs 連続的 © H.Tokuda 2007 知的エージェントとは?(2) 環境 センサ群 知覚動作 ? エージェント 動作 エフェクタ © H.Tokuda 2007 エージェント指向コンピューティング 新しい自律分散協調システム作りのパラダイムの1 つ 問題解決の質や性能の向上 コンピュータ・ヒューマンインタラクションの高度化 システムモデリングと設計支援 AI分野での知的エージェント エージェント指向プログラミング IT分野でのソフトウェアエージェント © H.Tokuda 2007 自律分散協調システム 問題解決のパラダイム 創発システムのパラダイム 自律分散コンピューティング 分散アルゴリズム 自律性 分散エージェント、マルチエージェント、自律ロボット 分散性 物理的な分散(コントロール+データ) フラットな構造 協調性 協調プロトコル 複雑な問題に対する新しいアプローチ 遺伝的アルゴリズム(GA) ニューラルコンピューティング © H.Tokuda 2007 問題解決手法のパラダイム 問題空間探索手法 問題空間と解空間 Goal & Subgoal 発見的手法 A B Generate & Test F H © H.Tokuda 2007 C G I J D E 問題解決手法のパラダイム 問題空間探索手法 問題空間と解空間 Goal & Subgoal A B 発見的手法 Depth first Breadth first H Best-first & eval fct. F GA Generate & Test © H.Tokuda 2007 C G I J D E 問題空間と解空間の概念 5 2 e.g., 8-puzzle 3 1 6 4 2 7 3 1 5 6 4 7 8 8 2 4 5 3 2 5 1 6 1 6 7 8 4 7 1 2 3 4 5 6 7 8 © H.Tokuda 2007 3 8 2 3 1 5 6 4 7 8 世代の概念 Life game J. H. ConwayのLife Game Life gameのルール 盤面上にいくつかの石(生命体)を置く.(初期集団) 盤面のある場所が空いていて、しかもその場所と隣り合う ちょうど3個の場所に生命体が存在するならば、次の世代 にはその空いた場所に新しい生命体が誕生する. また、すでに存在する生命体については、隣り合う場所に 住む生命体が1個以下、または4個以上になると、過疎ま たは過密のため、次の世代には、死んでしまう. © H.Tokuda 2007 世代の概念 (2) 世代の概念 * * * * * * * * © H.Tokuda 2007 * * * * * * ... Life.cで世代計算 a[i, j]のマトリックスに生命体をセット b[i][j]に周囲の生命体の数 a[i][j]に次世代生命体をセット 。。。 /* calculate the next generation */ for (i = 0; i <= N + 1; i++) for (j = 0; j <= M + 1; j++) { if (b[i][j] != 2) a[i][j] = (b[i][j] == 3); b[i][j] = 0; } } © H.Tokuda 2007 遺伝的アルゴリズム(Genetic Algorithm: GA) 生物進化(選択淘汰・突然変異)の原理に着 想したアルゴリズム 基本的には,Generate-and-Test型のアルゴリ ズム Holland, "Adaptation in Natural and Artificial Systems" (1975) 1985 1st Conf. on Genetic Algorithm at CMU © H.Tokuda 2007 問題空間と解空間の概念 5 2 3 1 6 4 2 7 3 1 5 6 4 7 8 8 2 4 5 3 2 5 1 6 1 6 7 8 4 7 1 2 3 4 5 6 7 8 © H.Tokuda 2007 3 8 2 3 1 5 6 4 7 8 世代の概念 Life game J. H. ConwayのLife Game Life gameのルール 盤面上にいくつかの石(生命体)を置く.(初期集団) 盤面のある場所が空いていて、しかもその場所と隣り合うちょうど 3個の場所に生命体が存在するならば、次の世代にはその空い た場所に新しい生命体が誕生する. また、すでに存在する生命体については、隣り合う場所に住む生 命体が1個以下、または4個以上になると、過疎または過密のた め、次の世代には、死んでしまう. © H.Tokuda 2007 世代の概念 (2) 世代の概念 * * * * * * * * © H.Tokuda 2007 * * * * * * ... 遺伝的アルゴリズム(Genetic Algorithm: GA) 生物における遺伝のメカニズムの応用 Generate-and-Test型のアルゴリズム 多点情報を利用した確率的な探索方法の一 つ 3つの遺伝的オペレータ 選択 (selection) 交叉 (crossover) 突然変異 (mutation) © H.Tokuda 2007 基本的な処理手順 Step 1: 初期集団の生成 Step 2: 終了条件が満たされるまでループ 適応度の評価 選択 交叉 突然変異 © H.Tokuda 2007 選択と交叉 ... © H.Tokuda 2007 3つの遺伝的オペレータ 選択 集団における適応度の分布に従って、次世代に生存する個体群 を確率的に決定する。 交叉 二つの個体間で染色体を組み換えることによって新しい個体を生 成するもので、両親の優れた部分形成を子に継承させる。 突然変異 染色体上のある遺伝子を確率的に起き換え、新し い個体を作り出す。 © H.Tokuda 2007 TSP (Travelling Salesman Problem) 巡回セールスマン問題 すべての都市を1度ずつ訪問する. 巡回コストを最小にする経路を見つける. 2 1 10 3 8 9 5 4 7 © H.Tokuda 2007 6 GSによるTSPの解法 親1 [9 8 4 5 6 7 1 3 2 10] 親2 [8 7 1 2 3 10 9 5 4 6] 問題の文字列にコード化 文字列の集団populationを作る 文字列を評価する 子1 [9 8 4 2 3 10 1 6 5 7] 子1 [8 10 1 5 6 7 9 2 4 3] 表価値 = 1/ 巡回経路長 評価値に応じて淘汰を受ける 遺伝的操作により 新しいpopulationを生成する。 © H.Tokuda 2007 500都市問題の解 プリントアウト参照 © H.Tokuda 2007 CSCWシステム Computer Supported Cooperative Work Irene Greif, Paul Cashman (1984) グループワークの中で、コンピュータの役割に注目す る概念や基本姿勢に関する研究 コンピュータ支援(CS)という支援手段、協調作業(C W)という支援対象の2つの異なる視点を合わせもっ た概念 © H.Tokuda 2007 グループウェア Group ware: Peter and Trudy Johson-Lenz (1978) 共通の仕事や目的のために働く利用者のグループを 支援し、共有作業環境を提供するコンピュータシステ ム 個人作業環境と協調作業環境とのシームレスな結合 時間、空間、メディア間のシームレスな結合 © H.Tokuda 2007 グループウェアの分類 同期対面型:時間、場所、情報を共有(例:発 想支援システム) 同期分散型:時間、情報を共有(例:ビデオ会 議システム) 非同期対面型:場所、情報を共有(例:グルー プメモリ) 非同期分散型:情報を共有(例:ソフトウェア共 同開発システム) © H.Tokuda 2007 グループウェアの3つの側面 社会的側面 人間的側面 技術的側面 © H.Tokuda 2007 グループウェアの3つの側面(2) 技術的な側面:システムのデザイン、開発、運 用、評価 人間的な側面:個人の感情と感性、プライバ シーの保護、相互依存 社会的な側面:制度、慣習、社会的な関係へ の配慮 © H.Tokuda 2007 基盤技術 ネットワーク コミュニケーション支援 感性インタフェース 協調作業環境 © H.Tokuda 2007 創発システムに向けて 慶應義塾大学環境情報学部 徳田英幸 情報システムにおける自律分散協調 自律分散協調システムのねらい 自己組織性 創発のメカニズム 自律分散協調コンピューティング アドホックネットワークプロトコル ソフトウェアエージェント 自律ロボット p2pアプリケーション © H.Tokuda 2007 自律性について 社会システム ガバナンスモデル 電子政府モデル 地方自治体モデル 教育、交通、安全システム スマート交差点問題 自律分散協調モデル 創発とは? Waveは、どう起るか? ロボット自動整列問題 ロボットよ、コンパスを持って協調せよ! 掃除ロボット問題 どのようなアルゴリズムが良いか? © H.Tokuda 2007 協調性について 協調メカニズム 協調プロトコル どのような協調パターンがあるのか? どのように記述するのか? なぜ協調するのか? 自然なプロトコル 生物システム 人工的なプロトコル Client-Server Ethernet’s MAC Layer 競売プロトコル 回覧板プロトコル その他多種多様なプロトコル。。。 © H.Tokuda 2007 創発システムについて 複数の要素が有機的に関係し合って、相互作用を通 して全体としてまとまった機能を発現している要素の 集まり 相互作用が変わればシステムの機能も変わる! 弱い創発システム ミクロな要素の動きが集まって全体にわたるマクロなパター ンが創発するシステム 強い創発システム 環境変化に適応できる創発するシステム © H.Tokuda 2007 創発のかたち 上位層でのかたち グループ、群、コミュニティ 水の対流 サッカー場のウェーブ 自律型ロボットの整列問題 © H.Tokuda 2007 共通する性質は? 自分と同じ能力の要素が沢山存在する 沢山の要素が広い空間に分散している すべての要素が共通の方法で(自分の近くの 要素とだけ)情報の交換をする すべての要素が同時並列的にうごく すべての要素が同じ状況になるように動く(同 じ評価関数をもっている) © H.Tokuda 2007 演習:wave2.c どのように協調するのか? 実行例… © H.Tokuda 2007 Wave programの作成 配布されたwave2.cプログラムを改良して、 競技場で起こるwave 現象をsimulateできるようにす る。 <初期状態><次世代生成部分> *ソースコード *出力結果 *考察 これをもとに、創発を起こす上でもっとも重要な要因 について議論せよ。 © H.Tokuda 2007 StarLogo @ MIT © H.Tokuda 2007 創発のギャップ 人間 vs. 自律型ロボット 個の非プログラム性 個の学習・動的適応性 多様な個 多様な価値観 情動的な行動 同期性 個の密度 population density 全体の規模 Scalability 実空間上の行動 vs. ネットワーク上の行動 © H.Tokuda 2007 前半部分のまとめ 慶應義塾大学環境情報学部 徳田英幸
© Copyright 2024 ExpyDoc