次の種類のグラフをトラバースするのに問題があります。
- 各ノードには、複数の入力と出力が存在する可能性があります。
- 各出力は複数の入力に直接接続できます (たとえば、A の 3 番目の出力は C と D に送られます)。
- 各ノードでは、入力で提供された値に基づいていくつかの計算が行われます。出力の結果は、他のノードの入力に提供されます。
- あるノードから次のノードにトラバースするには、すべての入力の値を知る必要があります。
このトラバーサルが思い浮かびます:
- A では、唯一の入力を使用してすべての出力を計算します。
- A の最初の出力を使用して A から C に移動します。
- C では、他の入力がわからないので、A に戻ります。
- A で、2 番目の出力を使用して B に到達します。
- B ではすべての入力がないため、A に戻ります。
- A で 3 番目の出力を取り、B に到達します。
- B には、出力を計算するためのすべての入力があります。
- B で、最初の出力を経由して C に到達します。
- C では、すべての入力があるので、計算を行い、E に到達します。
- 等々
では、このシナリオで最適に機能すると思われるトラバーサル アルゴリズムはどれでしょうか。私の場合、ノードに到達したときにすべての入力がわからず、バックトラッキングができないため、BFS はおそらく機能しません。
これを C# で実装する必要があります。