2012-01-11 2 views
0

セルオートマトンを高速化するために、ある種のアルゴリズムやそれに類するものがありますか?私はa Conway's Game of Life implementation made in XNAを使用していますが、それは完全に動作しますが、問題は128x128より大きいセルを使用すると非常に遅くなります。セルオートマトンのスピードアップ

XNAがどのようにテクスチャや描画を処理するのかとは関係ありませんが、多くのセルを更新すること(つまり、セルの隣接セルを評価し、新しい状態を取得することに基づいて)計算のロット。

もちろん、理想的なセルオートマトンは無限大でなければなりませんが、現実には不可能です。しかし、128x128は小さすぎて、システムの動作を実際に見ることはできません。

ご協力いただければ幸いです!

答えて

0

try thisの場合は、時間がどこにあるかがわかります。

私は推測するべきではありませんが、私の推測は本質的にすべての時間がレンダリングに入ります。 隣人の評価は多くのコードのように見えるかもしれませんが、非常に簡単です。 変更されていないセルを再レンダリングしないようにする方法があれば、多くの節約になるかもしれません。

+0

アドバイスをいただきありがとうございます。 – federicot

0

OpenGLとGLSLを使用することをおすすめします。この方法で、CPUからgpuへのデータ転送をなくし、10倍以上の高速化が可能です。

0

ハッシュライフアルゴリズムは、パフォーマンスの大幅な向上のために、CAの時間とスペースを圧縮するためにクワッドツリー、ハッシュ、および記憶を使用します。実装例については、Gollyをご覧ください。

私はまだそれを理解して、良いライブラリを探しています。

ここには良い説明があります(コード例):http://www.drdobbs.com/jvm/an-algorithm-for-compressing-space-and-t/184406478

関連する問題