2011-08-19 8 views
2

グラフ内のノードの到達可能性のテスト(指示)は、cellualr Automataを使用して行うことができますか?実際には、CAを使用して、特定の頂点からノードの到達可能性をチェックするアルゴリズムを実装することが念頭に置かれています。それも可能ですか? CAはこれを行うことができますか?セルラーオートマトンを使用したグラフの頂点の到達可能性解析

+0

それはなんとかです天気を私が答えることはできませんが、私は強くそれは、このような*やダイクストラ法として、定期的なグラフ検索を実行するよりも良いことはないだろう。 – carlpett

答えて

-2

CAがあなたの望むことを確実に行うことはできません。しかし、Dijkstraを使用して、あるノードから別のノードへの最短パス(パスが存在する場合も)を判別できます。しかし、Dijkstraの複雑さは高いです。 Conway's Game of Lifeturing completeあるので、

+0

はい、私はDijkstraが最短経路を見つけることができますが、私はCAとそれを行う必要があります。しかし、私はそれが可能なことを躊躇する。 – Faria

+0

これは質問に答えません。さらに、Dijksrraのアルゴリズムの複雑さは高いと私は同意しない。それは速いO(E + V lg V) – templatetypedef

+0

の@templatetypedefで実行されます。それは最低優先度キューを使用します。そうでなければ、それは非効率なO(n^2)です。 –

2

あなたの最初の質問への答えは、イエスです。つまり、セルオートマトン(特にGame of Life)は、あなたのPCができるあらゆる機能を計算することができます。

私は証拠の内容に精通していないですが、私はそれがライフゲームのインスタンスにチューリングマシンを変換するいくつかの方法に基づいていることを前提としています。あなたが問題を解決するチューリングマシンを構築することができれば、おそらくそのテクニックを使ってセルオートマトンに変換することができます。

Dijkstra's Algorithmよりはるかに簡単で、セルオートマトンはおそらく問題を効率的に解決する方法ではないため、深さのある最初の探索を基本アルゴリズムとして使用することをお勧めします。

+0

ご返信ありがとうございます。あなたが言及したように、DFSまたはBFSはDijkstraのアルゴリズムより簡単です。まず、この問題を解決するためにTuring Machineを構築し、それをclulualrオートマトンに変換することをお勧めします。しかし、Turing Machineでこの問題を解決するための検索を試みたが、何も見つかりませんでしたので、Web上に明示的なリソースがないようです。とにかく、あなたの返事をありがとう。それ以上のガイダンスは? – Faria

+0

一般に、TMの問題を解決するには、まず問題をコード化するための良い方法を見つける必要があります。たとえば、頂点とエッジの2つのセットとしてエンコードすることができます。例えば、入力インスタンスを0^V.111(0^a.1.0^b)^ E.11111とすると、Vは頂点の数であり、すべてa、b Patrick87

1

私は任意のグラフで到達可能性はありません一般的なセルラオートマトンを知っているが、1990年代半ばにセルオートマトンを用いた迷路矩形格子における迷路解決にいくつかの研究がありました。この手法の説明は、hereです。 ACMにアクセスできる場合は、元の論文hereを読むことができます。グラフが2Dグリッドであると仮定すると、経路探索のアルゴリズムを到達可能性に適合させることは特に難しいことではありません。

もっと一般的なアルゴリズムが見つかるかどうか調べてみます。

関連する問題