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