Path Finding

From UBC Wiki

What is the problem?

Our project aims to get a path of delivering food for our delivery robot in a city. We will provide a city map(made of many nodes, which are locations. Locations can be restaurants or any other place) and create an algorithm that generates a path. The user will pretend to be a customer and make orders from different locations. Then our project will give a reasonable path for delivering the orders.

What is the something extra?

- implemented dijkstra's algorithm to make the algorithm optimal and complete.

- implemented path pruning mechanism to avoid being trapped in loops

- added menu for different restaurants

- encapsulated functions to increase clearity for end users

What did we learn from doing this?

We learned that SWI-Prolog is especially suitable for solving path-finding and routing problems because a map is basically a set of rules connecting each nodes.

We learned to "think in Prolog" and become able to translate problems into rules, wirte, and debug in Prolog.

We learned that Prolog's pattern matching mechanism makes function flexible in working with various datatype.

We learned how to handle head and tail recursion simutaneously in one function.

We also learned many about project planning and project management .

Links to code etc

https://github.com/Yuhua-Wang/CPSC-312-Project-2