MAS コミュニティ
artisoc質問用掲示板(アーカイブ)
  
質問掲示板は移転しました。新掲示板はこちら

質問 (解決済み)

[artisocモデル] ランダムにステップを待たせる動作の導入方法
質問者: gomadangoさん , 質問日時: 2019/10/31 18:22
現在,無線通信のモデルを作成していて,ユーザの通信同士が衝突してしまった際に,それぞれランダムな待ち時間を与えることで次の送信の衝突を防ぐことを想定しているのですが,どのようにランダムなステップ数を待たせる動作を導入できるのでしょうか.



▼解決した回答


考え方のみ示します。コードはそれぞれだと思うので、自分で考えてみてください。
まずはMy.waiting_timeのような整数型の変数を用意し、衝突した際に
waiting_time = Int(Rnd() * 任意の整数) + 1
でランダムな待ちステップ数を得ます。
あとは、衝突してからcount_time = count_time + 1でインクリメントしていき、
If文を使って、waiting_timeとcount_timeが同じになるまで、何も行動しないというルールを書けば良いと思います。

回答者: igaguri さん , 回答日時: 2019/11/01 14:24

▼ 全ての回答


考え方のみ示します。コードはそれぞれだと思うので、自分で考えてみてください。
まずはMy.waiting_timeのような整数型の変数を用意し、衝突した際に
waiting_time = Int(Rnd() * 任意の整数) + 1
でランダムな待ちステップ数を得ます。
あとは、衝突してからcount_time = count_time + 1でインクリメントしていき、
If文を使って、waiting_timeとcount_timeが同じになるまで、何も行動しないというルールを書けば良いと思います。

回答者: igaguri さん , 回答日時: 2019/11/01 14:24
あと、この辺のコーディングは人工社会構築指南の第13章第5節辺りが参考になると思います。
ここでは、7ステップで回復するというルールでしたが、ここを7ではなく、ランダムな整数値する感じです。

回答者: igaguri さん , 回答日時: 2019/11/01 15:30



Copyright © KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
( 会社情報 情報セキュリティ・個人情報について )