wie man jeden Punkt im gerichteten Graphen besucht

Wie kann ich in Prolog einen Diagrammalgorithmus implementieren, um alle Pfade zu finden, um das Problem des Reiseverkäufers in einem gerichteten Diagramm zu implementieren?

Beispiel:

                                                                         graph
                    expected input     expected output                 X -----> Y
    start X             X  Y               X Z                         Y -----> T
    end   Z             Y  T               X Y Z                       T -----> Z
                        T  Z               X Y T Z                     Y -----> Z
                        Y  Z                                           X -----> Z
                        X  Z

Wie Sie wissen, könnte es in gerichteten Graphen einen Zyklus geben. Es ist jedoch nicht erforderlich, denselben Punkt zweimal zu übergeben.

             graph             expected output             
           X ----> Y            
           Y ----> X               X Y Z
           Y ----> Z 

Warum ich diesen Fall eliminiere, liegt daran;

      output :

      X Y X Y ...   Z
              ^^^
              god knows this length ( when program terminates )
              termination is np problem

Antworten auf die Frage(2)

Ihre Antwort auf die Frage