[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 (日) 01:45:45 (1518d)

StarLogoの簡単な入門

#ref(): File not found: "StarLogoTutorial-RandomWalk-SingleFine.gif" at page "ランダムウォーク"

ここでは少し、StarLogoでのシミュレーションの道具立てについての話題に 触れたいと思います。「ランダムウォークです」。

ランダムウォークによって、 Starlogoを利用して「確率的に起こる現象」をモデル化し、実験(シミュレーション) することができるようになります。

ここでは、シミュレーションのモデルには深く入らずに、ランダムウォークの説明 を行い、Starlogoの実装を通してそれを確認してゆきます。

また、ここで作成するrandom-walkとinitという手続きとそれに対して基本的なGUI(Graphical User Interface)であるボタンを割り当てる事などの作業を 順を追って示すすことで、Starlogoでのシミュレーションプロジェクトの 作成の基本手順が理解できるのではないかと思います。


  • 酔っぱらいの動き=ランダムウォーク
  • Starlogでの酔歩のルール
  • ランダムウォークの特徴
  • 実際にやってみる
    • Starlogを立ち上げる
    • 初期設定手続きinitを記述する
    • random-walk手続きを記述する
    • 手続きを実行する
    • 初期設定のボタンを作る
    • ランダムウォーク開始のボタンを作る
    • ボタンによって手続きを実行する
    • このプロジェクトに名前をつけて保存する

酔っぱらいの動き=ランダムウォーク †

酔っ払ったおじさんが駅前や歩道を「ふらふら」と歩いているような 場面を想像してみてください。どっちに向かって歩いているのか、次にどっちの 方向に倒れるのか、周りにとっては迷惑極まりない状況です。

酔っ払ったおじさんは、「まっすぐ」でもなく、「きっちりした軌道」でもない いいかげんな方向に向いては「ふらふら」と歩き回ります。

この「酔歩:Randomwalk」のためのルールは、マルチエージェントシミュレーション のもっともベースとなるものです。

この酔っ払いを「Randomwalker」と呼んだりします。

↑

Starlogでの酔歩のルール †

Starlogoではこのルールを次の様に書きます。コードをみてみましょう

to ramdom-walk
   rt random 180 ---- ①
   lt random 180 ---- ②
   fd 1          ---- ③
end

はじめの行(①)は、右に0から180の間の角度で方向を変える事をタートルに指示 しています。次にタートルに左に0から180の間の角度で方向を変える事を指示 しています(②)。最後に方向が決まったところで一歩進んでいます(③)。

タートルのペンは下ろしておき、繰り返し指示を出すと、 次の様な絵になります。

↑

ランダムウォークの特徴 †

実施に観察してみるとわかるいくつかの特徴がみて とれます。

  • 時間が経つと全体的に「拡散」してゆく様にみえる
  • 壁にぶつかるとそこから消滅し、逆側からでてくる

一つ目は、ランダムウォーカーの位置が、時間の経過とともに出発点から遠ざ かってゆくという事です。これは、ランダムウォークに関するこれまでの研究 から明らかになっていることであり、この分布が「拡散方程式」の解と深い 関係があるという事をあらわしています。

また、二つ目は、タートルの行動範囲の端が、もう一方の端と接続されている 様な空間になっているという事です。この様な空間は「トーラス」と呼ばれ ます。

↑

実際にやってみる †

Starlogoを立ち上げ、実際にランダムウォークのシミュレーションを作成してみます。

手順は、

  • Starlogを立ち上げる
  • 初期設定の手続きinitを記述する
  • random-walk手続きを記述する
  • 手続きを実行する

です。また、これに加えてこれらを行うボタンを作成してみます。これらの手順は、

  • 初期設定のボタンを作る
  • ランダムウォーク開始のボタンを作る
  • ボタンによって続きを実行してみる
  • このプロジェクトに名前をつけて保存する

となります。

↑

Starlogを立ち上げる †

それぞれのプラットフォーム毎のやりかたで、Starlogoを立ち上げます。

↑

初期設定手続きinitを記述する †

Control CenterのObserverタブが選ばれている状態で、Observer Procedure のテキストエリアに、次のinit手続きを記述します。

to init
   ct
   crt 50
end

一つ目の命令「ct」は、clear-turtlesの略で、現在存在するタートルを 全て消します。次の「crt 50」のcrtは、create-turtlesの略で、引数 の数(50匹)だけタートルを生成します。ただし、生成されたタートルの位置は 同じ位置になるので、これを行っても一番最近生まれたタートルしか見え ませんが。

↑

random-walk手続きを記述する †

Control CenterのTrutleタブが選ばれている状態で、Turtle Procedureの テキストエリアにrandom-walk手続きを記述します(既に上で説明したものと同じ)

to ramdom-walk
   rt random 180
   lt random 180 
   fd 1          
end
↑

手続きを実行する †

はじめに、初期設定の手続きを実行します。これには、Observer Command Centerで、

init

というコマンドを入力します。次に、random-walk手続きを実行します。これには、T Turtle Command Centerで、

random-walk

というコマンドを入力します。ただし、これでは、この手続きは1度しか実行されません から、100回程度繰り返して、アニメーションを観察します。それには、

repeat 100 [ random-walk ]

と入力します。すると、random-walk手続きが100回連続で行われます。マシンの性能に よっては、これでもすぐに終わってしまうと思います。

↑

初期設定のボタンを作る †

初期設定手続きinitをボタンで起動できるようにします。StarLogo Windowで、 editメニューのしたあたりに位置するボタンをクリックし、ボタン定義の ダイアログを起動します。

#ref(): File not found: "Starlogo-Create-Button.PNG" at page "ランダムウォーク"

ここでは、次の様な指定をします

  • starlogo instruction欄に、initと入力する
  • Observerチェックボックスをチェックする
  • OKボタンを押す

#ref(): File not found: "Starlogo-Edit-Button-init.PNG" at page "ランダムウォーク"

↑

ランダムウォーク開始のボタンを作る †

次に、random-walk手続きを行うボタンを作ります。

上と同じ様に、ボタン定義のダイアログを起動し、次の様な指定をします。

  • starlogo instruction欄にrandom-walkと入力るる
  • Turtleチェックボックスをチェックする
  • foreverチェックボックスをチェックする
  • OKボタンを押す

#ref(): File not found: "Starlogo-Edit-Button-random-walk.PNG" at page "ランダムウォーク"

↑

ボタンによって手続きを実行する †

上で作成したボタンを押すだけです。random-walkボタンでは「foreverチェックボックス」がチェックされていますから、押してから再び押すまでの間、random-walk手続き が繰り返し実行されます。

#ref(): File not found: "Starlogo-Random-Walk-Screen.PNG" at page "ランダムウォーク"

↑

このプロジェクトに名前をつけて保存する †

表示されているどちらのウィンドウでも良いのですが、ファイルメニューから、 「Project Save」を選び、適当な名前で、適当な場所に保存します。

これで、拡張子「slogo」のファイルが保存されます。次回この状態から作業を はじめたい場合には、ファイルメニューから「Open Project」で開くことが できるので便利です。


Counter: 345, today: 1, yesterday: 0

Link: グラフ機能を利用する(1518d) StarLogoの簡単な入門(1518d)

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-01-27 (日) 01:45:45 (1518d)
Link: グラフ機能を利用する(1518d) StarLogoの簡単な入門(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.018 sec.