分散 システムの捕らえ方 - 慶應義塾大学 徳田

自律分散協調コンピューティング
慶應義塾大学環境情報学部
徳田英幸
© H.Tokuda 2007
ちょっと復習と。。。
前半部分のまとめ
自律分散協調システム
分散アルゴリズム
アドホックネットワーク/センサネットワーク
P2P型アプリケーション
マルチエージェントシステム
発見的手法
情報システムにおける自律分散協調
 自律分散協調システムのねらい
 自己組織性
 創発のメカニズム
 自律分散協調コンピューティング




アドホックネットワークプロトコル
ソフトウェアエージェント
自律ロボット
p2pアプリケーション
© H.Tokuda 2007
自律性について
 社会システム
 ガバナンスモデル
 電子政府モデル
 地方自治体モデル
 教育、交通、安全システム
 スマート交差点問題
 自律分散協調モデル
 創発とは?
 Waveは、どう起るか?
 ロボット自動整列問題
 ロボットよ、コンパスを持って協調せよ!
 掃除ロボット問題
 どのようなアルゴリズムが良いか?
© H.Tokuda 2007
協調性について
 協調メカニズム
 協調プロトコル
 どのような協調パターンがあるのか?
 どのように記述するのか?
 なぜ協調するのか?
 自然なプロトコル
 生物システム
 人工的なプロトコル





Client-Server
Ethernet’s MAC Layer
競売プロトコル
回覧板プロトコル
その他多種多様なプロトコル。。。
© H.Tokuda 2007
自律分散コンピューティング
 分散アルゴリズム
 自律性
 分散エージェント、マルチエージェント、自律ロボット
 分散性
 物理的な分散(コントロール+データ), p2pシステム
 フラットな構造
 協調性
 協調プロトコル
 複雑な問題に対する新しいアプローチ
 遺伝的アルゴリズム(GA)
 ニューラルコンピューティング
© H.Tokuda 2007
P2P型システムとその応用
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
C/S型 vs. P2P型
© H.Tokuda 2007
通信トポロジによる分類
 Client-Server
 Flat: 一つのサーバ、多くのクライアント。Webなど
 Hierarchical: 複数の階層状のサーバ。DNSなど
 Peer-to-Peer
 Pure: 中央サーバなし。Gnutellaなど
 Hybrid: 中央サーバあり。Napsterなど
 中央サーバはメタ情報(他のpeerの位置など)の伝達、セ
キュリティ目的(認証など)などを行う
10
P2P応用分野




マーケット
アプリケーション
テクノロジー
プラットフォーム
example
markets/
financial biotech
comm.
industries
Simulation
Market
Calculation
example
applications
Genome
Sequence
Instant
Messaging
Protein
Folding
White
Boards
Etc.
Etc.
Etc.
enterprise entertainment
Process
Mgmt
Games
Online
Storage
Rich media
Sharing
File
Sharing
Etc.
Etc.
horizontal
Distributed computing
technologies
Collaboration
&
Communication
platforms
JXTA, .NET Services
11
Content sharing
マルチエージェントシステム
マルチエージェント
 システム特定の目的をもって行動するエー
ジェントが、他のエージェントと協調的に行動
するための性質、条件やエージェントが複数
存在するときに生じる現象、効果などについて
研究することを目的としている。
 特定の問題を部分問題に分割して解決してい
くことを主たる目的としていない。
© 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
合理的な動作
 どのような時に合理的な動作がとれるか?
 次の4条件に依存している
 成功の度合を定義する尺度がある
 エージェントが知覚したものすべてを利用できる
(知覚列)
 エージェントが環境に関して知っている
 エージェントが動作できる
理想合理的エージェント
 可能な知覚列のすべてに対して、理想合理的
エージェントは、知覚列とエージェント自信の
持つ組み込み知識にもとづいて、性能尺度を
最大にする動作を選択する。
 性能尺度
 エージェントがどのくらい成功したかとを評価する
基準
 どんなエージェントにも適用できる一般的な基準
はない!
エージェントプログラム
 エージェントプログラムの適切な設計は、知覚、
動作、ゴール、環境に依存する
 入力の種類や意思決定の違いなどによって、
さまざまな設計手法がある。
エージェントプログラムのタイプ例
 単純反射エージェント
 知覚に対して反応するルールをすべて持っている
 記憶をもつ反射エージェント
 内部状態を持った反射エージェント
 ゴール主導エージェント
 ゴールを達成するための、探索とプランニングを行う
 効用主導エージェント
 ゴールのみでなく、自分自身の効用関数(満足度)を
最大にしようとする
単純反射エージェント
 function SR_Agent(percept)




state = interpret_input(percept)
rule = rule_match(state, rules)
action = rule_action(rule)
returns action
記憶をもつ反射エージェント
 function SR_Agent(percept)





state = update_state(state, percept)
rule = rule_match(state, rules)
action = rule_action(rule)
state = update_state(state, action)
returns action
エージェントの基本アーキテクチャ
処理モジュール
問題解決機構
協調制御機構
動作制御機構
知識モジュール
問題解決知識・制御知識
協調知識
知識管理機構
コミュニケーションモジュール
メッセージイベント機構
協調プロトコル
通信プロトコル
外部環境
他エージェント
他システム
人間
エージェントの性質
 基本特性




自律性
社会性
反応性
自発性
(Autonomy)
(Social Ability)
(Reactivity)
(Pro-activeness)
 その他







合理性 (Rationality)
適応性 (Adaptability)
誠実性 (Veracity)
移動性 (Mobility)
心的状態 (Mentality)
感性 (Emotionality)
。。。
自律分散協調システム
問題解決のパラダイム
自律分散コンピューティング
 分散アルゴリズム
 自律性
 分散エージェント、マルチエージェント、自律ロボット
 分散性
 物理的な分散(コントロール+データ)
 フラットな構造
 協調性
 協調プロトコル
 複雑な問題に対する新しいアプローチ
 遺伝的アルゴリズム(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]
問題の文字列にコード化
文字列の集団populatio nを作る
文字列を評価する
子1 [9 8 4 2 3 10 1 6 5 7]
子1 [8 10 1 5 6 7 9 2 4 3]
表価値 = 1/ 巡回経路長 評価値に応じて淘汰を受ける
遺伝的操作により
新しいpopulatio nを生成する。
© 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
前半部分のまとめ
慶應義塾大学環境情報学部
徳田英幸