ランダムウォーク
Last-modified: 2019-01-27 (日) 01:45:45 (1518d)
#ref(): File not found: "StarLogoTutorial-RandomWalk-SingleFine.gif" at page "ランダムウォーク" ここでは少し、StarLogoでのシミュレーションの道具立てについての話題に 触れたいと思います。「ランダムウォークです」。 ランダムウォークによって、 Starlogoを利用して「確率的に起こる現象」をモデル化し、実験(シミュレーション) することができるようになります。 ここでは、シミュレーションのモデルには深く入らずに、ランダムウォークの説明 を行い、Starlogoの実装を通してそれを確認してゆきます。 また、ここで作成するrandom-walkとinitという手続きとそれに対して基本的なGUI(Graphical User Interface)であるボタンを割り当てる事などの作業を 順を追って示すすことで、Starlogoでのシミュレーションプロジェクトの 作成の基本手順が理解できるのではないかと思います。 酔っぱらいの動き=ランダムウォーク †酔っ払ったおじさんが駅前や歩道を「ふらふら」と歩いているような 場面を想像してみてください。どっちに向かって歩いているのか、次にどっちの 方向に倒れるのか、周りにとっては迷惑極まりない状況です。 酔っ払ったおじさんは、「まっすぐ」でもなく、「きっちりした軌道」でもない いいかげんな方向に向いては「ふらふら」と歩き回ります。 この「酔歩:Randomwalk」のためのルールは、マルチエージェントシミュレーション のもっともベースとなるものです。 この酔っ払いを「Randomwalker」と呼んだりします。 Starlogでの酔歩のルール †Starlogoではこのルールを次の様に書きます。コードをみてみましょう to ramdom-walk rt random 180 ---- ① lt random 180 ---- ② fd 1 ---- ③ end はじめの行(①)は、右に0から180の間の角度で方向を変える事をタートルに指示 しています。次にタートルに左に0から180の間の角度で方向を変える事を指示 しています(②)。最後に方向が決まったところで一歩進んでいます(③)。 タートルのペンは下ろしておき、繰り返し指示を出すと、 次の様な絵になります。 ランダムウォークの特徴 †実施に観察してみるとわかるいくつかの特徴がみて とれます。
一つ目は、ランダムウォーカーの位置が、時間の経過とともに出発点から遠ざ かってゆくという事です。これは、ランダムウォークに関するこれまでの研究 から明らかになっていることであり、この分布が「拡散方程式」の解と深い 関係があるという事をあらわしています。 また、二つ目は、タートルの行動範囲の端が、もう一方の端と接続されている 様な空間になっているという事です。この様な空間は「トーラス」と呼ばれ ます。 実際にやってみる †Starlogoを立ち上げ、実際にランダムウォークのシミュレーションを作成してみます。 手順は、
です。また、これに加えてこれらを行うボタンを作成してみます。これらの手順は、
となります。 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 "ランダムウォーク" ここでは、次の様な指定をします
#ref(): File not found: "Starlogo-Edit-Button-init.PNG" at page "ランダムウォーク" ランダムウォーク開始のボタンを作る †次に、random-walk手続きを行うボタンを作ります。 上と同じ様に、ボタン定義のダイアログを起動し、次の様な指定をします。
#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
|