分散システムの捕らえ方

自律分散協調コンピューティング
慶應義塾大学環境情報学部
徳田英幸
© 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
前半部分のまとめ
慶應義塾大学環境情報学部
徳田英幸