Netlogoによる演習


NetLogoとは

インストール(Windowsの場合)

  1. NetLogoのインストールプログラムをhttp://ccl.northwestern.edu/netlogo/download.shtmlからダウンロードします(「Download」を押して,次のページに表示されるWindows「Download」をクリックします).ダウンロードされた実行ファイル(NetLogo4.0.2Installer.exe)をダブルクリックして,インストールプログラムを起動します.

  2. 表示されるウィンドウの指示に従って,「Next」を押していきます.以下の例では,c:\Program Files\NetLogo 4.0.2にプログラムがインストールされます(フォルダがない場合は新規作成されます).

  3. 「Install」ボタンを押してパソコンへプログラムを実際にインストールします.

  4. 「Done」ボタンを押してインストールを完了します.

プログラムの起動(Windowsの場合)

  1. Windowsの「スタート」メニューからNetLogoを起動します.

  2. NetLogoの初期ウィンドウが現れます.

プログラムの起動(Linuxの場合)

操作方法

モデルライブラリ(例:Termites)を動かしてみる.
  1. 各OSに合わせてNetLogoを起動します.
  2. File -> Models Library -> Sample Models -> Biology -> Termitiesを選択し,出現したModels LibraryのOpenボタンを押し,Termitesのモデルを読み込んで下さい.


  3. Interfaceタブには左上から,白アリの数を設定するnumber-Slider(number)と,木くずの密度を指定するdensity-Sliderと,シミュレーションの準備を行うsetupボタン,シミュレーションの開始と停止を制御するgoボタン,そして,シミュレートの状況を表示するViewが配置されています.
  4. setupボタンを押し,Sliderにあるnumberだけの白アリとdensityにあるだけのチップをViewにランダムに配置する.
  5. goボタンを押すと,シミュレーションが開始されます.

  6. (Termitesモデルについて)
  7. 再度,goボタンを押すとシミュレーションが停止します.
  8. NetLogoは,Interfaceタブののほかに,以下の2つのタブがあります.

プログラミング

プログラムの対象となる3つの主体

NetLogoでプログラミングを行うには,「タートル」「パッチ」「観察者」の3つの主体を扱います.

プログラムの例

Models LibraryにあるTermitesを例に,NetLogoにおけるプログラムについて説明します.
  1. 準備 : シミュレーションを行う前にNetLogoの世界を初期化します.
  2. to setup
      clear-all
      set-default-shape turtles "bug"
      ;; randomly distribute wood chips
      ask patches
      [ if random-float 100 < density
        [ set pcolor yellow ] ]
      ;; randomly distribute termites
      create-turtles number [
        set color white
        setxy random-xcor random-ycor
        set size 5  ;; easier to see
      ]
    end
    

    手を動かす : ToolsメニューにあるTurtle Shapes Editorには,turtleの形として使用できるものが列挙されています.各図形の右側にある形の名を,上記の手続きにある"bug"の部分と置き換えて,プログラムを実行してみましょう(例 : "bug" → "face happy").

  3. 実行 : 各tick毎に各turtleが実行することが記述されています.
  4. to go  ;; turtle procedure
      search-for-chip
      find-new-pile
      put-down-chip
    end
    

  5. 木くずの探索 : 各tutleは木くずを探索します.
  6. to search-for-chip  ;; turtle procedure -- "picks up chip" by turning orange
      ifelse pcolor = yellow
      [ set pcolor black
        set color orange
        fd 20 ]
      [ wiggle
        search-for-chip ]
    end
    

  7. 木くずの山探し : 各turtleは木くずの山が見つかるまで歩き回ります.
  8. to find-new-pile  ;; turtle procedure -- look for yellow patches
      if pcolor != yellow
      [ wiggle
        find-new-pile ]
    end
    

  9. 白アリのじたばた : 各turtleは方向を変えます(Proceduresの最後にあります).
  10. to wiggle ; turtle procedure
      fd 1
      rt random 50
      lt random 50
    end
    

    手を動かす : 白アリ(turtles)が「じたばたする度合」を調節できるようにしてみましょう.
    1. 新しい変数を追加します.Interfaceタブにおいて,「+Add」というボタンをクリックして,すぐ右のプルダウンリストからSliderを選択します.Interfaceタブの適当な位置をクリックしSliderを配置します.すると,Sliderの設定画面が現れます.
    2. Global variableに「zita_bata」と入力し,Minimumの値を10,Maximumの値を180として,OKをクリックします.
    3. 追加したSliderを右クリックしSelectを選択すると,位置を動かすことができます(Slider以外の場所か,Sliderを右クリックしてunselectを選択すると,位置の移動できる状態を解除できます).
    4. Proceduresのタブに戻り,wiggleの手続きにおける「random 50」の部分を「random zita_bata」に変えて,プログラムを実行してみましょう(追加したSliderを調節することでじたばたの度合が変わります).


  11. 木くずを手放す : 各turtleは持っている木くずをpatchに落とします.
  12. to put-down-chip  ;; turtle procedure -- finds empty spot & drops chip
      ifelse pcolor = black
      [ set pcolor yellow
        set color white
        get-away ]
      [ rt random 360
        fd 1
        put-down-chip ]
    end
    

  13. 木くずの山から退散 : 各turtleは木くずのないpatchまで移動します.
  14. to get-away  ;; turtle procedure -- escape from yellow piles
      rt random 360
      fd 20
      if pcolor != black
        [ get-away ]
    end
    

プログラミングについて,

サンプル

Models Library にあるモデルをいくつか動かしてみよう.
Art -- Fireworks
打ち上げ花火のモデル.
(Sample Models フォルダより,以下同様)
Biology -- Ants
アリが餌を集めるモデル.アリは餌を巣に持ち帰るときにフェロモンを落としていく. 他のアリはフェロモンの道をたどって餌と巣を往復する.
Biology -- FireFlies
蛍の発光のモデル.蛍たちは相互作用して,発光を同期させる.
Biology -- Flocking
鳥の群のモデル.魚の群のようにもみえる.各鳥は,隣接する鳥との間で,同一方向へ飛ぶこと,近づいてくる鳥を避けること,他の鳥に近づくことの3つのルールだけに従う.しかしながら,全体として群の振舞いが現れる.
Biology -- Moths
光の回りをぐるぐると回っている蛾のモデル.蛾は,複数の光源があると,大きい方へ近づいていく.蛾は光に足して閾値があり,光の近くやその上に達するまで,直進を続けるとのこと.
Biology -- Wolf Sheep Predation
捕食と披捕食からなる生態系の安定を探るモデル.狼と羊がおり,狼は羊を食べてエネルギーを得る.しかし,狼と羊だけのシステムは不安定となる.しかし,もう1つの要素となる牧草を導入と,複雑さは増すがシステムは安定する.
Computer Science -- Cellular Automata --Life
セルオートマトンの1つであるライフゲーム.生きているセルと死んでいるセルがあり,その粗密が局所的なルールによって定められている.セル空間を動きまわるグライダや棒状の構造をもつブリンカなどの循環性のパターンを示す.
Games -- Frogger
道路や川を安全に通過して,カエルを蓮の葉っぱまでたどり着かせるゲーム.
Games -- Lunar Lander
赤色の月着陸船を月面にある青色の着陸場に着陸させるゲーム.月着陸船は壊れやすく,ゆっくり着地させる必要がある.
Games -- Planrity
グラフのもつれを解くゲーム.ノードを移動して交差するエッジをなくす.
Networks -- Preferential Attachment 優先的選択によるネットワークのモデル.新しく追加されるノードはリンクを多数もつ既存のノードに接続しやすくすることで,多数のノードをもつ「ハブ」と呼ばれるノードが現れる.
Networks -- Small Worlds
スモールワールド現象をみるモデル.ノード間のエッジの張替えから,短い平均経路長と高いクラスタ係数をもつスモールネットワークを生成する.
Social Science -- El Farol
El Farolという酒場における客の振舞いをみるモデル.ニューメキシコのサンタフェにある店で,木曜日にアイルランド音楽の演奏があって混み合うとのこと.
Social Science -- Traffic Basic
高速道路を走る車のモデル.いかにして外的な要因なしに渋滞が起こりうるのかを示す.

演習課題

  1. Termitesモデルを拡張して下さい.
    1. 50ステップ(50回"go"を繰り返す)で終了するbuttonを作りなさい.(簡単)
  2. Antsモデルの拡張をして下さい.
    1. なぜ,巣に近い餌から先になくなっていくのかを説明せよ.(簡単)
    2. アリが巣から一斉に飛び出すようにコードを変えよ.(簡単)
    3. 餌場を2つに減らし,巣から等距離に配置せよ.(簡単)
    4. 餌と巣の間に障害物を配置せよ.

おまけ

プロジェクトの保存方法

Procedures等を変更したプロジェクトを保存する場合, Fileメニューから「Save As...」を選択して,各ユーザのフォルダに保存します(USBメモリ等を用いないならば,保存先にz:\ドライブを指定して下さい).

Viewの状態をファイルに保存する方法

Viewの状態を図で保存することができます.

Monitorのグラフの出力方法

  1. 以下のどちらかの方法でデータをcsv形式のファイルで出力します.
  2. 出力されたファイルをExcelで開きます.

  3. 行と列を調節して,グラフにするデータを残します.

  4. 表示する列を選択し,Excelのグラフ作成を適用します.

  5. 以上によって,グラフが得られます.

Q&A

リンク



戻る

岩瀬雄祐(iwasealife.cs.is.nagoya-u.ac.jp,全角の@を半角の@として下さい)