授業資料 - 慶應義塾大学 徳田研究室

ADC Systems
~ Protocols and Distributed Algorithms ~
慶應義塾大学環境情報学部
徳田英幸
© H.Tokuda 2008
課題 I について。。。
プロセス間通信: Direct IPC

The communication is done between two processes without
using any communication entity.
Bsend(process_id, message, size)
Nsend(process_id, message, size)
Brec(process_id, buffer, size)
Nrec(process_id, buffer, size)
process_id = Brecany(buffer, size)
process_id = Nrecany(buffer, size)
Request(process_id, message, sizeof(message),
buffer, sizeof(buf)
Reply(process_id, message, size)
© H.Tokuda 2008
並行プロセスの挙動
Pipeline(2)
Process P1
{
…
Nsend(p2, …);
…
}
p1
p2
Process P2
{
…
Nsend(p3, …);
…
}
P3
© H.Tokuda 2008
…
pk
並行プロセスの挙動
Dynamic Worker Model
Server S1
{
…
ci=Brecany(msg,…)
create_worker(ci,...)
…
}
Process w1
{
…
do_service(msg,…)
reply(ci,…)
}
w1
c1
s1
.
.
.
wk
© H.Tokuda 2008
並行プロセスの挙動
Static Worker Model
Server S1
{
…
ci=Brecany(msg,…)
if(ci is worker)
assign_task(ci, …)
else
enque(ci, task)
…
}
c1
(未完成)
Process w1
{
…
request(s1, ...)
do_service(msg,…)
reply(ci,…)
}
s1
w1
.
.
.
wk
© H.Tokuda 2006
自律分散協調システム
プロトコルと分散アルゴリズム
慶應義塾大学環境情報学部
徳田英幸
© H.Tokuda 2008
自律分散協調システムとは?
もう一度復習。。。
What is an Autonomous Distributed Cooperative
System (ADC System)?
 No supervisor which can
control/manage the entire system
システム内にシステム全体を制御/統治するスパーバイザは存在しない。
 The system consists of autonomous,
distributed and cooperative subsystems
各サブシステムは、自律、分散した構成要素からなる。
 The system functions are realized by
cooperations among subsystems
全体のシステムの機能は、サブシステム間の協調作業によって遂行される。
© H.Tokuda 2008
What is autonomy?
 Social Systems

Governance Model ガバナンスモデル
 電子政府モデル
 地方自治体モデル

Education, ITS, Safety Systems
教育、交通、安全システム
 Roundaout 環状交差点問題
 ADC Model
 Emergence

創発とは?
Waveは、どう起るか? 蟻
 Robot Alignment Problem
ロボット自動整列問題
 ロボットよ、コンパスを持って協調せよ!
 Cleaning Robot Problem
掃除ロボット問題
 どのようなアルゴリズムが良いか?
© H.Tokuda 2008
Cooperation Mechanisms
 Cooperation mechanisms
 Cooperation Protocols
 Cooperation Patterns? どのような協調パターンがあるのか?
 Definition & Description? どのように定義・記述するのか?

Why Cooperation?
なぜ協調するのか?
 Biological Protocols
 Biological Systems
生物システム
 ICT Protocols





Client-Server
Ethernet’s MAC Layer
Auction protocol
Circulation Protocol 回覧板プロトコル
Other protocols
© H.Tokuda 2006
DARPA Urban Challenge
~ 事例1 ~
Urban Challenge
2007/11/3
© H.Tokuda 2008
DARPA Urban Challenge (1)
© H.Tokuda 2007
Autonomous Ground Vehicles
(AGV)11
 Car Crash1
 Car Crash2
 Cornell and MIT
© H.Tokuda 2007
DARPA Urban Challenge (2007)
 Stanford Team
© H.Tokuda 2007
DARPA Urban Challenge (2007)
 CMU Test
© H.Tokuda 2007
DARPA Urban Challenge (2007)
 CMU Team
© H.Tokuda 2007
Network Robot
~ 事例2 ~
Network Robots?
© H.Tokuda 2006
Robotic Service Experiment Field
at Universal Citywalk Osaka by N. Hagita
Noisy BGM for Robots
Camera
Dark
Bright
Laser Range Finder
21
ユニバーサルシティウォーク大阪(1)
ユニバーサルシティウォーク大阪(2)
ユニバーサルシティウォーク大阪(3)
Wireless Sensor Networks
~ 事例3 ~
Sensor Network Models
 Sink-node Model




Habitat sensing
Seismic monitoring
Structuring instrumentation
Soil conditioning
Sink
Node
 P2P Model





Smart Kindergarten
Smart Objects, Smart Toys
Smart Surroundings
Lovegety
Navigety
© H.Tokuda 2006
Smart Nodes
P2p models: Lovegety & Navigety
The Original p2p
goods: Lovegety
Navigety
© H.Tokuda 2006
A Group Tour Keeper
 Smart Sensor with LED lights +
button
12
© H.Tokuda 2006
13
自律分散協調システム
プロトコルと分散アルゴリズム
慶應義塾大学環境情報学部
徳田英幸
© H.Tokuda 2008
プロトコルとは?
~協調動作の記述~
プロトコルとは?
 外交上の儀礼
 通信の送信側と受信側で取り決めた約束事
 通信手段
pro・to・col
1 U(外交上の)儀礼,典礼.
2 C 条約原案; 議定書,プロトコル.
3 C (国家間の)協定.→#
4 C 《米》 (実験・治療の)実施要綱[計画].
5 C 【電算】 プロトコル 《データ通信の手順》.
[株式会社研究社 新英和・和英中辞典]
© H.Tokuda 2008
プロトコルの記述
 プロトコルの記述は、通信上の約束事すべてを定
義する。
 通信メッセージのフォーマット(書式)の詳細
(format) -> (syntax)
 メッセージを交換する際の手順 (procedure) ->
(grammer)
 正しいメッセージが表わしている意味、語彙
(correctness) -> (semantics)
 Completeな記述 vs. Incompleteな記述
© H.Tokuda 2008
何のためにプロトコルが必要か?




データ転送に必要な初期化や終了
送信者と受信者との同期(条件)
転送エラーの検出や訂正
データの書式や符合化を行う
© H.Tokuda 2007
Protocolの記述




自然言語
Time-space chart
状態遷移図
擬似Prog. Languages
State Transition Diagram状態遷移図
Sender
Receiver
RTS
RTR
-msg
+msg
Wait
Wait
+ACK
-ACK
© H.Tokuda 2008
Time-Space Chart
Sender
Receiver
msg
ACK
© H.Tokuda 2008
Concurrent Programming Language
Pr ocess Sender ( )
{
while( TRUE) {
pr epar e_ mess age( buf f er ) ;
f r ame.dat a = buf f er ;
send_ t o_ net wor k( f r ame) ;
}
Pr ocess Receiver ( )
{
while( TRUE) {
wait _ f or _ f r am e( buf f er ) ;
r eceive_ f r om _ net wor k( f r am e) ;
buf f er = f r am e.dat a;
}
© H.Tokuda 2008
Stop-and-Wait Protocol
Pr ocess Sender ( )
Pr ocess Receiv er ( )
{
{
while ( TRUE) {
while ( TRUE) {
pr epar e_ message( buf f er ) ;
wait _ f or _ f r ame( buf f er ) ;
f r ame.d at a = buf f er ;
r eceiv e_ f r om_ net wor k( f r ame) ;
send_ t o_ net wor k( f r ame) ;
buf f er = f r ame.d a t a;
wait _ f or _ f r ame( ack) ;
pr epar e_ message( ack) ;
...
f r ame.d at a = ack;
}
send_ t o_ net wor k( f r ame) ;
}
© H.Tokuda 2008
いくつかの例題
 入札プロトコル
 回覧板プロトコル
 逆オークションプロトコル
© H.Tokuda 2008
入札プロトコル(1)
S1
S2
m(p1)
S3
S4
Q: 終了条件は?
winnerへの通知は?
Q:タイムアウトは?
全員がいつもタイムリーに返信?
m(p2)
Note: S1からのグループキャスト
は、ユニキャストと区別するために
各受信者のところで矢印マークを入
れる
© H.Tokuda 2008
回覧板プロトコル(1)
© H.Tokuda 2008
回覧板プロトコル(2)
© H.Tokuda 2007
分散アルゴリズム
分散アルゴリズム(1)






Distributed Mutual Exclusion
Election Algorithm
Distributed Deadlock
Clock Synchronization
Byzantine consensus problem
。。。
© H.Tokuda 2008
直感的な例
Pj
Pi
Pk
req
reply
reply
IN_USE
reply
© H.Tokuda 2009
課題-2
 以下のプロトコルをtime-space chartを使っ
て記述せよ。 参加しているプロセスは、s1か
らs4の4プロセスとする。
 A) 入札プロトコル
 B) 回覧板プロトコル
 Due: 5/11/2009
© H.Tokuda 2009
Note: S1からのグループキャスト
は、ユニキャストと区別するために
各受信者のところで矢印マークを入
れる
S1
S2
S3
S4