[StarLogo/fujim2]
[ トップ ]   [ 差分 | バックアップ | リロード ]   [ 一覧 | 単語検索 | 最終更新 | ヘルプ ]

CONTENTS

  • FrontPage
  • StarLogoについて
  • こんな人におすすめ
  • StarLogoのインストール
  • StarLogoの簡単な入門
  • StarLogo TIPS
  • StarLogoのサンプル解説
  • StarLogo関連リンク集
  • OpenStarLogo
  • StarLogoTNG
  • StarLogoNova
  • 実験・研究
  • Petit-Hack
  • 文献
  • ご意見ご感想など
  • このページについて

最新の10件
2019-12-28
  • タートルグラフィックス
2019-01-27
  • FrontPage
  • StarLogo日本語化
  • Petit-Hack
  • このページについて
  • コメント/ご意見ご感想など
  • ご意見ご感想など
  • 文献
  • 実験・研究
  • こんな人におすすめ

グラフ機能を利用する

Last-modified: 2019-01-27 (日) 03:26:41 (1518d)

StarLogo TIPS

Starlogo-GraphPlot-SelectType.PNG

  • はじめに
  • random-walkシミュレーションを作る
  • タートルに寿命を持たせる
  • タートルの数をプロットする
  • プロット機能を使用してシミュレーションする
  • プロット対象を変える

はじめに †

Starlogoは、「グラフプロット機能」が付いています。

このグラフプロット機能はシミュレーションの評価のために は大変便利なものです。一般的にも、グラフは論文などで 実験や観測の結果の数値をわかりやすく説明するのに利用します。

この機能により、StarLogoのタートル一匹一匹の派手な「見た目」 の面白い動きの裏に隠された「集団として」の性質を明らかにすること ができるかもしれません。

ここでは、説明の焦点をはっきりさせたいという理由で、 シミュレーションの方は非常に単純なものにして、グラフ機能の 基本的な使い方を説明します。

シミュレーションのモデルとしては、 ランダムウォークしているタートルにランダムな「寿命」を持たせて、 寿命が絶えた時点で一匹、また一匹と消えてゆく・・というものです。

説明の手順は次の様にします。

  • 単純なrandom-walkシミュレーションを作って動作を確認する
  • タートルに寿命を持たせるようにプログラムを改良する
  • グラフを作り、実際に観察する
  • 別なグラフを追加する
↑

random-walkシミュレーションを作る †

別なページランダムウォークで既に説明しているプログラム を動かせるようにします。そのページのものとまったく同じ状況に してください。確認すると、

  • Control Center WindowのObserver Procedureのテキストエリアに init 手続きがある
  • Control Center WindowのTurtle Procedureのテキストエリアに random-walk手続きがある
  • StarLogo Windowに上記 init と random-walkを動かすためのボタンがある
↑

タートルに寿命を持たせる †

タートル(ランダム・ウォーカー)が生物だと考え、現在の、 永遠の命をもつタートルから、いつか、年をとって臨終するというモデル に変更します(あまり明るい例でなくてスミマセン)。

それを実現するためには、タートルに情報を付け加える必要がでてきます。 タートルに、あらたな「情報」を持たせるために、通常のプログラムと同じ 方法を使います。つなわち、タートル毎に「変数」を持たせ、その変数に 余命(残りの寿命)を適当な数値で与えるのです。

この変数名を life とすると、Control Center Window のTurtle Procedure の先頭行に、次の様な行を加えます。

turtles-own [ life ]

この[から]の間には、タートルに持たせたい変数を並べます。

次に、新規に、lifeに初期値を与えるため、Observer Procedureに既に 記述されている手続き init のendの前に一行加えます。

to init
  ct
  crt 50
  ask-turtles [ set life random 1000 ]    ---- 追加行
end

ask-turtles []の中に書いたものは、全てのタートルに適用されます。 ここで、lifeには0から999までの値が適当に入ります。

これで全てのタートルにそれぞれの寿命が設定されます。

この手続きをObserver Procedureのテキストエリアに既に書かれている、init手続き の中に加えておきます。

そして、このlife 変数を、一回random-walkするたびに、1 減らしてゆきます。

Turtle Procedure テキストエリアに既に記述されている random-walkerの後ろの方 にこれらの処理を行うように設定します。

to random-walk
 lt random 180
 rt random 180
 fd 1
 set life (life - 1)     ------ life変数の値を1減らす
 if life < 0 [ die ]     ------ もし、命が絶えたならタートルは死ぬ
end

コメントにも書いてありますが、lifeの値が 0 を切ったら、死(die)が訪れます。

以前とまったく同じ様に、まず、 init ボタンを押したあと、random-walkerボタンを 押して、観察してください(random-walkerボタンの右下のforeverチェックボックスが チェックされている事を確かめてください。

説明が長いわりには、プログラムへの追加行は、2行でした・・・

最後にグラフを付け加える手順を説明します。

↑

タートルの数をプロットする †

シミュレーション中、死によって 全体的に減ってゆくタートルの数をプロットします(lifeはあとで)。

 まず、StarLogo Windowで、メニューのすぐしたにあるボタンで、右から 2番目の、ボタンを押してください。

Starlogo-GraphPlot-CreateButton.PNG

次に、StarLogoWindow図内の見やすい場所に、グラフを埋め込む場所を指定します。 指定の方法は、通常のお絵かきツールで小さい長方形を描くのと同じです( 左上でマウス左ボタンを押し、押したまま、右下へドラッグして、離す)。

Starlogo-GraphPlot-CreatePlace.PNG

すると、これから作るグラフの種類を選択するダイアログが現れますから、 どれかを選択します。

Starlogo-GraphPlot-SelectType.PNG

ここでは、デフォルトの状態で、OKボタンを押します。 これで、グラフプロットのためのウィンドウが新たに生成され、表示されます(「プロットウィンドウ」とでも呼んでおくことにします)。

Starlogo-GraphPlot-PanelBlank.PNG

これで、

  • 折れ線グラフ
  • グラフ化する縦軸の値は、Nunber of Turtles(タートルの数)

が設定されました。

↑

プロット機能を使用してシミュレーションする †

今までと同じ様に、initボタンを押して、そのあと、random-walk ボタンを押し、利用します。

以下に適当なタイミングでのスナップショットを並べます。

Starlogo-GraphPlot-PlotGraph0.PNG
Starlogo-GraphPlot-PlotGraph1.PNG
Starlogo-GraphPlot-PlotGraph2.PNG
Starlogo-GraphPlot-PlotGraph3.PNG
Starlogo-GraphPlot-PlotGraph4.PNG

プロットウィンドウのグラフの方も、

Starlogo-GraphPlot-PanelPlotted.PNG

の様な線グラフが表示されています。

↑

プロット対象を変える †

今回は、デフォルトである「Number Of Turtle」を変えてみましょう。

まず、「プロットウィンドウ」のFormatメニューのDataを選択します。

すると、プロットの軸を決定するための新たなパネルが開きます。

Starlogo-GraphPlot-PlotDataNumberOfTurtle.PNG

このパネルの一番上の項目だけが「ON」になっているのを確認してください。

次に、プロット対象の設定に入ります。

まず、この中のPlotというラベルの項目をマウスクリックすると、リスト (コンボ・ボックス)が 出てきますので、この中のAverage ofを選びます。

Starlogo-GraphPlot-PlotDataAverageOf.PNG

次に、その隣の欄も、リストが出てきますので、その中から、 「life」を選びます。このlifeはここで導入した、タートル様の変数です。

Starlogo-GraphPlot-PlotDataAverageOfLife.PNG

最後に、上の方にある、「Plot Name」をlifeに変更します。

Starlogo-GraphPlot-PlotDataAverageOfLifePenName.PNG

これで、今回の設定はおしまいです。

あとは、先ほどと同じ様に、init --- random-walkの順番でボタンを 押すと、今度は、各々のタートルのlife変数の平均値がプロットされる 事になります。


Counter: 255, today: 1, yesterday: 0

Link: ランダムウォーク(1518d) StarLogo TIPS(1518d)

添付ファイル: fileStarlogo-GraphPlot-PlotDataNumberOfTurtle.PNG 216件 [詳細] fileStarlogo-GraphPlot-PlotDataAverageOfLifePenName.PNG 207件 [詳細] fileStarlogo-GraphPlot-PlotDataAverageOfLife.PNG 213件 [詳細] fileStarlogo-GraphPlot-PlotDataAverageOf.PNG 218件 [詳細] fileStarlogo-GraphPlot-PlotDataAverageOf (1).PNG 122件 [詳細] fileStarlogo-GraphPlot-SelectType.PNG 205件 [詳細] fileStarlogo-GraphPlot-SelectType (1).PNG 117件 [詳細] fileStarlogo-GraphPlot-PlotGraph4.PNG 207件 [詳細] fileStarlogo-GraphPlot-PlotGraph3.PNG 197件 [詳細] fileStarlogo-GraphPlot-PlotGraph2.PNG 209件 [詳細] fileStarlogo-GraphPlot-PlotGraph1.PNG 207件 [詳細] fileStarlogo-GraphPlot-PlotGraph0.PNG 198件 [詳細] fileStarlogo-GraphPlot-PanelPlotted.PNG 193件 [詳細] fileStarlogo-GraphPlot-PanelBlank.PNG 207件 [詳細] fileStarlogo-GraphPlot-CreatePlace.PNG 207件 [詳細] fileStarlogo-GraphPlot-CreateButton.PNG 205件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-01-27 (日) 03:26:41 (1518d)
Link: ランダムウォーク(1518d) StarLogo TIPS(1518d)
Site admin: anonymous

PukiWiki 1.5.0 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji. Powered by PHP 5.6.40. HTML convert time: 0.019 sec.