プログラミングの基礎知識 - i

エージェントモデル
シミュレーション
エージェントモデル
シミュレーション






プログラミングの意義
様々なシミュレーション
複雑系とシミュレーション
エージェントシミュレーションとは
エージェントモデルの例
ABSを使った演習について
プログラミングの意義





技能教育としての意義は薄れた
ものごとの手順や構造把握
試行錯誤、思考のための意義は大きい
シミュレーションとしてのプログラム
プログラミング言語


情報基礎では BASIC、LOGOが一般的
FORTRAN、COBOL、C、PASCAL、Object
指向言語など
様々なシミュレーション

簡単な因果関係を示すシミュレータ


ゲームとしてのシミュレータ



比例関係を示すシミュレータ
シムシティ(町づくり)
Tower(ビル構築とエレベータ制御)
複雑な動きを解明するシミュレータ

エージェントモデルシミュレータ
複雑系とシミュレーション
複雑系

要素還元主義 reductionism


古典的科学、部分の総和=全体
解決できない課題(部分の総和≠全体)



総和以上の動きを系全体がしめす
要素還元的でない研究方法の必要性
複雑系の定義 Complex System

「システムを構成する要素の振る舞いの
ルールが、全体の文脈によって動的に変化
してしまうシステム」
複雑系のイメージ


バラバラにすると本質が抜け落ちる
イメージとしては



システムの構成要素は
各自のルールに従って機能している
局所的(Local)な相互作用によって
全体の状態や振る舞いが決定される
全体的な振る舞いをもとに
個々の要素のルールや関係性が変化する
創発 emergence

物体レベル
かめ
システム論での創発

低い階層から高い階層
へ移ったときに
はじめて存在する性質
創発
分子レベル
創発 emergence

人工生命の創発

大域的な秩序
構成要素の局所的な
相互作用が全体的な
大域的秩序を生み、
創発
構成要素にも影響を
構成要素
及ぼす
局所的な相互作用
構成的手法


複雑系は解析的に解明できない
「構成的手法」

基本的モデルを構成、コンピュータ上に発生
させ、全体の振る舞いを観察する方法
アナロジー
仮説モデル
現実世界
シミュレーション
観察対象
結果
構成モデルによる研究
対
象
の
観
察
特
徴
の
抽
出
構
成
モ
デ
ル
の
作
成
シ
ミ
ュ
レ
ー
シ
ョ
ン
結
果
の
評
価
対
象
のと
比構
較成
検モ
討デ
ル
と
シミュレーションの実際


鳥の群れは誰がコントロールしている?
群れのシミュレーション


ボイド (Boids)鳥ロボットの群れ
簡単な3つのルール
衝突回避:近すぎる群れの仲間と離れ、衝突を
回避する
 速度調整:周りと速度を合わせる
 求心力:群れの中心の方へ向かおうとする

構成要素とエージェント

構成要素 element



システムを構成する要素
身体を構成するのは→細胞
エージェント Agent


構成要素のうち主体性をもつもの
社会を構成する生物や人間はエージェント
マルチエージェントモデル
シミュレータ


特定のルールを持ったエージェントを
多数作り、人工的な場で相互作用を
起こさせるシミュレータ
エージェントに対してルールを与える
シミュレータ

Swarm



StarLOGO



アメリカ・サンタフェ研究所
Cをベース、開発者向け
MIT / タフツ大
LOGOを元にマルチエージェント化
ABS

初心者向け日本語プログラム
ABSを使った演習

いくつかのモデルを実行してみる
モデルのパラメータを変えてみる
モデルのルールを書き換える

自分でモデルを作ってみる

