グループ演習課題4-7(10月23日)に関する担当教員からのコメント
公開: 2025-10-31 15:29:12(更新: 2025-11-05 11:57:10)
個々のグループへのコメント:
- グループ1は、課題Aとともにコードの内容をグラフィックで表していた。このグラフィックは、太田がサンプルコードを書く際に、頭のなかでイメージしていたもの、そのものである。デフォルトの条件と大きく異なる条件を二つ設定し、一人当たりの待ち時間という指標を使って比較している。基本的な実験の条件設定がよくできている。
- グループ1の発表は第3回のグループ5と同様に、結果を体系的にまとめていて極めて興味深い。ただし、手間がかかる。時間をかけていたことをぜひ覚えておいてほしい。楽をする方法を今後の実習本編でも扱う予定である。
- グループ1は、出口のキャパシティを検討するテーマが明確で、状況を可視化している点がよい。動きが三つに分けられる点を整理しており、到着する人、出る人、取り残される人がいることを示した点は評価できる。並んでいる人と出た人を分けて表現しているのもよかった。また、以下の内容を示していたことを確認した: 一気に人が到達した場合、153秒, 出口のキャパを増やした場合、73秒。一人当たりの待ち時間を用いていた点が効果的であった。
- グループ2は、具体的な条件を設定して試行していた点がよかった。パターンA: キャパシティ2 一気に到着するがでていくのは4までかかる。パターンB: 事件発生して0,1の流量2 到着 上に凸の二次関数。到着と列の長さが同じ傾向であったこと、避難口の数を増やさないとうまく回らないが発見であった。今後、到着の傾向と退出の傾向を変えることとしてまとめていた。今後の課題として、実情に合わなかった、失敗したとコメントしていたが、具体的な条件を設定して実施していた点は評価できる。到着が一回減る設定としたのが不自然であったとのことであったので、今後設定を変更して実施することが望まれる。
- グループ3は、理論的な考察を先に行ったうえで実験条件を設定していると思われる。シミュレーション実験なのだから、「思考」ではなく、もっと「試行」を繰り返してから、条件を詰めるほうが時間の短縮にもつながるだろう。
- グループ3は、条件として、一気に到着、人が徐々を変更している。人が一気に到着すると、行列の長さが長くなり、徐々に減少すること、適切に分散させると行列ができないことが明らかになった。極端な例を条件として明確な結果を得ている点が評価できる。今後はさまざまな中間的な条件で実施し、閾値などを検討することが望まれる。
- グループ4は、出口のMAX=2であることを発見(確認)した。たくさん人が来ても一気に逃げることができない。だんだん到着が増えて、ピークとなり、その後減る状況を再現した。出口の容量を全て3とし、出口を大きくするとたくさんの人が(早く)出られるようになる、到着を分散させると避難効率がよくなることを発見した。 効率が良い、悪いと説明していたが、効率とは何を示すかを明確にすべきである。(待ち時間であると考えられる)ある時間に集中するのはよくないので、他の時間に分散させるとよいという結論に達した点はよい。
- グループ5は、3つの条件で試行し、変化がない条件と変化が生じる条件の違いを見出している。この取り組みこそが「予備実験」であり、課題Cで次に何をすべきを考えるヒントになる。課題の進め方が科学の基本に沿ったものであり、明確である。
- グループ5は、来た人、出た人、待っている人に整理して考えていた。来た人を固定出口の幅を2、3、4と変更して検討を行った。幅4と幅3にはあまり変化がなかったが、2から3の変化がなぜちょうどよいという点に気づいた点はよい。平均待ち時間などの指標を用いて検討するとよい。
全般に関わるコメント:
- グループ1は横から・グループ4は上からシミュレーションを絵で表現することができており、コードをよく理解できていた。グループ4のような上から人モデルを動かしているのは実際にsimtreadというモデルで利用されています。これ以外のグループでも、シミュレーションにおけるシナリオの用意であったり、出口から出れる人数幅を変更したりとそれぞれの班独自の工夫がみられた。
- 発表の冒頭で、そのシミュレーションが「どのような場面を想定しているのか」というコンテキストを共有すると、より目的が明確になりわかりやすい発表になる。なぜなら、プログラムに意味を持たせているのは、まさに作成者自身だからである。実際に、議論・発表の際には「火事」「避難」「アミューズメントパーク」といった類いのキーワードが出ていた。
- 意味を意識しながらプログラムを書くことは、発表の分かりやすさだけでなく、プログラムそのものの質を向上させることにも直結する。たとえば、単に a = 60 と書くのではなく、time_step = 60 のように、その数字が「何を意味するのか」が一目でわかる変数名を使うなどである。
第4回グループ発表内容は授業用配付ディレクトリから参照できます。