The princess (or prince if you're female) has been captured by the Evil Dragon and held prisoner in a tower. The tower is also surrounded by a maze to keep out the riff-raff. You are a knight out to rescue the princess (prince), and as the dragon has gone shopping for some BBQ spare ribs and a set of ear plugs, now is your chance. You should search the maze for the princess as quickly as possible before the dragon comes back. As the princess likes Heavy Metal Music, which she plays quite loudly, you could hear her from some distance away which might help your quest.
You have to produce a predicate representation of the maze (above). The noise_levels at different places within maze have been defined below.
You will also have to display route taken through maze, make sure it includes both start and end state (the place names).
1) Explain, in detail, appropriate fast search technique for this problem explaining any issues (e.g. local maxima, plateaus etc) associated with this technique and how you may overcome them.
2) Program your search technique in Prolog and test it. Don’t forget that you could debug and test constituent prolog rules separately.
Comment your code extensively and make sure you utilize indicative naming for rule and variable names. If you use any books or websites for help, make sure you include a list of references.
3) Add extra rules (do not amend those for part 2) to produce actual shortest route (in terms of places visited. You would not need to consider the noise_levels to do this.
Your work should contain:
• An appropriate, justified choice of search technique, description, associated problems and description of each.
• Also an explanation and justification of how such problems would be dealt with in your implementation.
• proper commenting, appropriate meaningful variable names well formatted and easy to read code neat concise solutions coding your own sort routine
prolog predicates for noise levels
noise_level(start,2).
noise_level(holly_bush,6).
noise_level(pond,2).
noise_level(skull,5).
noise_level(bones,10).
noise_level(killer_badger,4).
noise_level(apple_tree,13).
noise_level(warning_sign,20).
noise_level(bench,45).
noise_level(tower,100).
noise_level(spike,50).
noise_level(large_toad,30).
noise_level(pear_tree,26).
noise_level(statue,28).