diff --git a/assignment5/main.pl b/assignment5/main.pl index 989684e..7b503af 100644 --- a/assignment5/main.pl +++ b/assignment5/main.pl @@ -49,15 +49,6 @@ plan(Cabin1, Cabin2, Visited, Path, TotalDistance) :- bestplan(Cabin1, Cabin2, ShortestPath, ShortestDistance) :- findall([Path, Distance], (plan(Cabin1, Cabin2, Path, Distance)), Solutions), - shortestpath(Solutions, [ShortestPath, ShortestDistance]). - -% takes a list of [Path Distance] pairs -shortestpath([[Path, Distance]|[]], Solution) :- Solution = [Path, Distance]. -shortestpath([[Path, Distance]|Tail], [ShortestPath, ShortestDistance]) :- - shortestpath(Tail, [TailPath, TailDistance]), - (Distance < TailDistance -> - (ShortestPath = Path, ShortestDistance = Distance) - ; - (ShortestPath = TailPath, ShortestDistance = TailDistance) - ). + sort(2, @=<, Solutions, [ShortestSolution|_]), + [ShortestPath, ShortestDistance] = ShortestSolution.