問題タブ [cellular-automata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cellular-automata - セルオートマトンではないものは何ですか?
私が持っていた特定の質問を一般化しました:
セルの状態がグリッド内の他のすべてのセルの状態に依存する場合、セル オートマトンと呼ばれますか?
c++ - MPI_プロセス間でベクトルの辺を交換する
私のコードでは、ローカルベクトルの一部を交換する任意の数のプロセスがあります。ローカル ベクトルはペアのベクトルであるため、MPI 派生データ型を使用しています。原則として、各プロセスが他のプロセスに送信する要素の数がわからないため、バッファのサイズも送信する必要があります。特に、各プロセスは、ランク: myrank-1 のプロセスとランク: myrank+1 のプロセスとデータを交換します。myrank-1 の代わりにプロセス 0 の場合、ランク comm_size-1 のプロセスと交換します。また、プロセスが myrank+1 ではなく comm_size-1 の場合、ランク 0 のプロセスと交換します。これが私のコードです。
2 つまたは 3 つのプロセスでコードを実行すると、すべて期待どおりに動作します。3 つ以上の場合、結果は予測できません。これが入力データの特定の組み合わせによるものなのか、それとも見落としている理論上のエラーがあるのか はわかりません。最後に、このコードが for サイクルの一部であることを考慮してください。
javascript - コンウェイの人生ゲーム - 間違ったアルゴリズム?
私が作成したアルゴリズム (コンウェイのライフ ゲームのルールの実装) は、コンウェイの GoL と一致しません。できることはすべて試しましたが、一致しません。
さらに、誰かがそれを無限平面にする方法、またはおそらくそれ自体をラップする方法を知っている場合は、私のコードで実装することに興味があります!
JSFiddle の実行: http://jsfiddle.net/jGkKF/2/
関連コード:
生きた細胞の周囲の細胞をチェックする: (28行目)
そしてアルゴリズム:(50行目)
python - セル オートマトンの Python スクリプトで使用されているすべての Ram
Python で記述された高強度モデルがあり、配列計算には 4000 を超える時間ステップで 200,000 を超えるセルが含まれます。2 つの配列があり、1 つは細かいグリッド アレイ、もう 1 つはより粗いグリッド メッシュです。細かいグリッド アレイからの情報は、粗いグリッド メッシュの特性を通知するために使用されます。プログラムが実行されると、CPU の 1% しか使用しませんが、RAM (8GB) を使い果たします。実行には数日かかります。この問題を解決するための最良の方法は何でしょうか? GPU 処理は良い考えでしょうか、それとも完了した計算の一部を HDD にオフロードする方法を見つける必要がありますか?
解決に向けて動くための思考の道を見つけようとしているだけです。モデルが RAM にデータを取り込みすぎて、計算が遅くなっているのでしょうか?
java - セルラー自動化のためのJavaのスレッドセーフな高性能マトリックスのようなコンテナ?
特定のスレッドが提供されたクラスのインスタンスとして実行しているセルオートマタンを実行しています。新しい機能、つまりシミュレーションの進行中にマウス入力を介してライブ セルを追加するには、メイン スレッドからシミュレーションを実行しているクラスのインスタンスにアクセスして、Draw クラスが使用する 2D コンテナーという名前の ArrayList> "world" を変更する必要があります。参考に塗装します。
しかし、ArrayList はスレッドセーフではなく、エラーが発生します。この時点で、セルの「世界」は 50x50 しかありませんが、そのサイズを 10000^2 またはそれ以上に拡張したいと考えています。(私はその大きさで quadTrees を使用します)
したがって、私の質問は、スレッドセーフであり、すべてのシステム リソースを大量に使用せず、quadTree の概念と「互換性がある」、どのような種類のコンテナーを使用する必要があるかということです。
私はマルチスレッドについてよく知りません。このような重いスレッドを気にする場合、アイデアを破棄する必要がありますか?それとも、ユーザーの入力を評価する間、スレッドを一時停止できますか?(実際に試してみました。スレッドをスリープ状態になり、その間にインスタンスにアクセスしようとしましたが、成功しませんでした。)
いくつかのスレッドセーフなコンテナーを確認しましたが、それらのパフォーマンスは、それらを反復処理するか、それらのプロパティを編集するかなどによって異なります。考慮すべきことが多すぎます。どなたかがどの方向を選択すればよいか教えていただければ幸いです、アンドリュー。