1

次の種類のグラフをトラバースするのに問題があります。

トラバースするグラフ

  • 各ノードには、複数の入力と出力が存在する可能性があります。
  • 各出力は複数の入力に直接接続できます (たとえば、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# で実装する必要があります。

4

1 に答える 1