2

当時 13 階を見た後、私はそのようなシミュレーターを書くことにある程度夢中になりました。

男性と女性のサブクラスを持つ人間の基本クラスを使用して、いくつかのシミュレーションを作成しました。それらには runYear と呼ばれるルーチンがあり、相互作用します。彼らはデートし、働き、死に、子供をもうけ、悲しみ、自殺し、離婚したりします。

それは数千の「年」にわたって実行され、シードパラメータに応じて非常に大きくなったり死んだりします。

私の質問は次のとおりです。これでできることは本当に限界に達しており、これをゼロから書き直そうとしていますが、基盤を前進させたいと考えています。これをどのように設計する必要があるか、またはどのような重要な基盤を含める必要があるかをよりよく理解するのに役立つ、誰かが私に指摘できる良い本や記事はありますか?

技術的な点について:

  1. オブジェクト指向データベースを使用してこの情報を保存することを検討する必要がありますか?
  2. 私はこれを C# で書くことを計画していました (快適さの理由から)、LISP を学ぶ方が良いでしょうか?
  3. 誰かがこのように遭遇した他のオープンソースシミュレーターはありますか?私はおそらくいくつかのアイデアを得ることができます

他のアイデア/提案は素晴らしいでしょう。

エリック

4

5 に答える 5

2

この種のシミュレーターで最も複雑なことは、それを実装する方法ではなく、クリーチャーをモデル化する方法と、それらの相互および環境との相互作用です。

最も使い慣れたツールを使用してください。最初はどのような種類のデータベースも使用しない可能性が高く、プログラミング言語が使用するデータ構造を使用し、永続性が必要な場合はデータ構造をプレーン ファイルに読み書きします。

この種のシミュレーションに関するいくつかのリンクを次に示します。それらのほとんどは人間のレベルではなく、昆虫、バクテリア、DNA などの「より低い」レベルで動作します。

既存のシステムに関するいくつかの例:

于 2009-05-05T18:37:58.143 に答える
1

まず、World クラスの作成から始める必要があります。あなたの世界クラスは、世界ができることすべてを網羅するでしょう。重力、空気、地面、壁などを組み込みたいと思うでしょう。誰かがあなたの世界を離れて記憶の中で自分のことをしたくないので、おそらく空に制限を与えることから始めたいと思うでしょう。どこか。

World のセットアップが完了したら、Abstract Human クラスを作成します。このクラスは、基本的な人間の能力を備えています。身長、体重、年齢などを指定できます...

そこから、Human クラスを継承し、それぞれに特化した属性を持つ Woman クラスと Man クラスを作成します。Woman クラスは、BreastSize、CookingSkill、SexualPrownessLevel などを持つことができます。Man クラスは、主に誰がハゲかを追跡するためのものです。

そこからさらに進んで、アジア人、インド人などの民族クラスに分割できます。各民族クラスにも独自の特徴があります。

邪魔にならないようにしたら、楽しいことに取り組み始めることができます。病気、宗教、お金、犯罪、貧困、飢餓、洪水、竜巻など、生活に大混乱をもたらすオブジェクトを作成できます。

于 2009-05-05T17:50:15.810 に答える
1

群れ

于 2009-05-05T17:18:16.057 に答える
1

最初のステップは、まず問題を説明的に説明できるようになることだと思います。

私はそれをSystem-of-Systems問題として考えるのが好きです。そのためには、SysMLを見てください。そうすれば、高いレベルから始めて、システムの進化に合わせて忠実度を高めることができます。

于 2009-05-05T18:19:06.770 に答える
0

離散イベント シミュレーションフレームワークを参照する必要があります(最後にリストへのリンクがあります)。私が知っているのは Python 用のSimPyだけですが、他にもオープン ソースや商用のものがあります。基本的なフレームワークもかなりシンプルなので、簡単な「プログラミング演習」になるはずです。

于 2009-05-05T18:49:06.993 に答える