東京都荒川区の実道路網(OpenStreetMap)を実地図タイルに貼り付けて描画(図6.1)。266頂点/4避難所(実在: 第三峡田小学校ほか)。ブラウザ内の AIPL 処理系(JS-I)が manet_fire.aipl をそのまま実行(サーバー不要)。単一 Fire アクターで、避難者=最寄り避難所へ最短経路、火災=通行不能点が次々発生。システム利用で接触回数・死亡が減る(図6.2/6.4)。※地図タイル表示にはインターネット接続が必要。
利用時は接触した火災を情報拡散エージェントで共有→他の避難者が事前回避し経路を再構成。不使用時は各自が接触して初めて知る。「利用/不使用」を切り替えて2回走らせ、接触・死亡を比べてください。
各 Xinu が動かしているのは phone_node_fire.aipl の 4 エージェント(情報/ノード管理/情報拡散/情報収集)。
カードの 2 行目がいまその Xinu で動いているエージェントとメソッド。クリックすると右のソースがその行へ飛びます。
※ 世界(位置・電波・火災)は 1 本の Fire アクター(manet_fire.aipl)が計算しており、ここに出るエージェントは
その毎tickの状態(接触した/情報を持った/避難中)から対応づけたものです。
多賀(2021) 第4章の 4 エージェントを火災シナリオ用に定義(phone_node_fire.aipl/2026-08 版の AIPL)。実機 Xinu 互換 HTTP(POST /api/json/call)に web_expose で公開。宛先はすべて「ノード名+エージェント名」で、同一端末内も自分のゲートウェイ越しに名前で呼ぶ(remote_call(SELF,"nodemgr",…))——実機では 4 エージェントが別々の soft-Xinu に載るため。端末間は push が remote_call(待たない)、pull が remote_now(待つ)。拡散はホップ1。戻り値型 : T は外から名前で呼ばれるアクターの義務で、!{net} を持つのは電波/バスへ出るエージェントだけ。
set_step(隣人) を渡す。避難者が通行不能点に接触 → info.contact(id) → nodemgr.store → diffusion.dispatch(50m隣人へ push, hop1) / collecting.dispatch(隣人の nodemgr を pull)。「システム利用」時のみこの MANET 共有が働き、他避難者が事前回避 → 接触回数が減る(図6.2)。