top of page

簡単な待ち行列モデルを作ってみたいのに

最近になってArtisoc Cloudを利用している物です。
待ち行列モデルの動きを作ろうとしているのですが、少し躓くところがありました。
窓口のエージェントに向かって、人間のエージェントが動き、窓口の前で行列を作って、一番先頭の人間がサービスを受け終わった瞬間に消えて、残りの行列の人間達が一歩前に出るといった、極めてシンプルなものです。
最初は、空間を動く人間のエージェントに、make_agtset_around_own()を用いて、前方に他の人間や窓口(のエージェント)がいなければ、forward(1)で前に進み、もしいれば、forward(0)で進まないようにすれば良いかと考えました。そうすれば、エージェント同士が重ならずに、よくある行列の動きを作れると思ったからです。
窓口にてサービスを受けた人間のエージェントは、サービス時間終了後に kill_agt()で消すようにしています。
ですがこれだと、make_agtset_around_own()で、周り1マスをサーチしてしまうせいで、前の人間が消えても、後ろの人間がいなくならないため、窓口から前の人がはけたのに、次の人が前に進まず、行列が進まない、といった現象が起きてしまいます。
そこで本題です。
どうすれば、私の作ろうとしているモデルは完成できるのでしょうか?ただし、空間に存在する全エージェントは、重なってはいけないものとします。
有識者の方、どうかよろしくお願いします。

最近になってArtisoc Cloudを利用している物です。
待ち行列モデルの動きを作ろうとしているのですが、少し躓くところがありました。
窓口のエージェントに向かって、人間のエージェントが動き、窓口の前で行列を作って、一番先頭の人間がサービスを受け終わった瞬間に消えて、残りの行列の人間達が一歩前に出るといった、極めてシンプルなものです。
最初は、空間を動く人間のエージェントに、make_agtset_around_own()を用いて、前方に他の人間や窓口(のエージェント)がいなければ、forward(1)で前に進み、もしいれば、forward(0)で進まないようにすれば良いかと考えました。そうすれば、エージェント同士が重ならずに、よくある行列の動きを作れると思ったからです。
窓口にてサービスを受けた人間のエージェントは、サービス時間終了後に kill_agt()で消すようにしています。
ですがこれだと、make_agtset_around_own()で、周り1マスをサーチしてしまうせいで、前の人間が消えても、後ろの人間がいなくならないため、窓口から前の人がはけたのに、次の人が前に進まず、行列が進まない、といった現象が起きてしまいます。
そこで本題です。
どうすれば、私の作ろうとしているモデルは完成できるのでしょうか?ただし、空間に存在する全エージェントは、重なってはいけないものとします。
有識者の方、どうかよろしくお願いします。

bottom of page