各ノードが自分の仕事の従業員を表す接続グラフを作成したいと思います。私は、オフィスを通じた冷たい広がりのシミュレーションを実行できるようにしたいと考えています。感染した人とつながっている人々は、寒さに襲われる可能性があります。これどうやってするの?特定の接続グラフを手動で作成してテストを実行する方法
また、感染した人の感染期間の上限を設定することはできますか?
各ノードが自分の仕事の従業員を表す接続グラフを作成したいと思います。私は、オフィスを通じた冷たい広がりのシミュレーションを実行できるようにしたいと考えています。感染した人とつながっている人々は、寒さに襲われる可能性があります。これどうやってするの?特定の接続グラフを手動で作成してテストを実行する方法
また、感染した人の感染期間の上限を設定することはできますか?
あなたが探しているものの(確かに最適化可能な)バージョンですが、私はこのように見えます。
percentSpread = #integer representing percent chance of cold to spread
percentBetter = #chance someone who has the cold gets better
cold = #some node in your graph we'll call office, the first guy sick
sickness = [] #the array that keeps track of the people with colds in the office
def sickevent(percent): #lets us know if a sick person gets better or a nearby person gets sick
if randint(1,100) < percent:
return True
else:
return False
sickness.append(cold)
while len(sickness) >0:
for sick in sickness:
if sickevent(percentbetter):
sick['issick'] = False
sickness.remove(sick)
else:
for potential in office.neighbors(sick):
if potential['beensick'] = False and potential['issick']=False:
if sickevent(percentspread):
potential['issick'] =True
potential['beensick'] = True
sickness.append(sick)
カスタマイズが可能です。病気がなくなる前に誰が病気になっているのかを知りたい場合は、反復して誰が「beensick」=真であるかを確認することができます。病気関連の属性がFalseになるようにすべてのノードを初期化する必要があることに注意してください。 ノードまたはエッジに基づいて特定のスプレッドまたはキュア値を持つように変更することができます。 このグラフは、誰かが病気になっている人だけが接続できると仮定しています。誰もが病気になる可能性がある場合は、何らかの方法で全員(誰もが誰でも)を接続する初期グラフを作成し、グラフの各エッジに、最初のグラフなどの中のお互いの距離
エージェントベースのモデルをルックアップして、ドメインについて学びます。 githubでmesaを検索します。これは、pythonでnetlogoに相当するプロジェクトです。 –
githubでネットワーク上の流行(EoN)を提案するかもしれません。まだ非常に初期段階ですが、このようなものを目指しています。私はそれを開発しています。 – Joel