グラフ機能を利用する
Last-modified: 2019-01-27 (日) 03:26:41 (1518d)
はじめに †Starlogoは、「グラフプロット機能」が付いています。 このグラフプロット機能はシミュレーションの評価のために は大変便利なものです。一般的にも、グラフは論文などで 実験や観測の結果の数値をわかりやすく説明するのに利用します。 この機能により、StarLogoのタートル一匹一匹の派手な「見た目」 の面白い動きの裏に隠された「集団として」の性質を明らかにすること ができるかもしれません。 ここでは、説明の焦点をはっきりさせたいという理由で、 シミュレーションの方は非常に単純なものにして、グラフ機能の 基本的な使い方を説明します。 シミュレーションのモデルとしては、 ランダムウォークしているタートルにランダムな「寿命」を持たせて、 寿命が絶えた時点で一匹、また一匹と消えてゆく・・というものです。 説明の手順は次の様にします。
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番目の、ボタンを押してください。 次に、StarLogoWindow図内の見やすい場所に、グラフを埋め込む場所を指定します。 指定の方法は、通常のお絵かきツールで小さい長方形を描くのと同じです( 左上でマウス左ボタンを押し、押したまま、右下へドラッグして、離す)。 すると、これから作るグラフの種類を選択するダイアログが現れますから、 どれかを選択します。 ここでは、デフォルトの状態で、OKボタンを押します。 これで、グラフプロットのためのウィンドウが新たに生成され、表示されます(「プロットウィンドウ」とでも呼んでおくことにします)。 これで、
が設定されました。 プロット機能を使用してシミュレーションする †今までと同じ様に、initボタンを押して、そのあと、random-walk ボタンを押し、利用します。 以下に適当なタイミングでのスナップショットを並べます。 プロットウィンドウのグラフの方も、 の様な線グラフが表示されています。 プロット対象を変える †今回は、デフォルトである「Number Of Turtle」を変えてみましょう。 まず、「プロットウィンドウ」のFormatメニューのDataを選択します。 すると、プロットの軸を決定するための新たなパネルが開きます。 このパネルの一番上の項目だけが「ON」になっているのを確認してください。 次に、プロット対象の設定に入ります。 まず、この中のPlotというラベルの項目をマウスクリックすると、リスト (コンボ・ボックス)が 出てきますので、この中のAverage ofを選びます。 次に、その隣の欄も、リストが出てきますので、その中から、 「life」を選びます。このlifeはここで導入した、タートル様の変数です。 最後に、上の方にある、「Plot Name」をlifeに変更します。 これで、今回の設定はおしまいです。 あとは、先ほどと同じ様に、init --- random-walkの順番でボタンを 押すと、今度は、各々のタートルのlife変数の平均値がプロットされる 事になります。
Counter: 255,
today: 1,
yesterday: 0
|