$29.99
Computer Science 456: Artificial Intelligence and Expert Systems 1
Assignment 2
Weight: 15% of your final grade
Due: after Unit 4
Important!
Please note that, for the sake of fairness to all students, your tutor is not supposed to provide help
with your program coding (e.g., pick up compiler errors, send a working code for part of the
program, correct your wrong code and convert it to a working one). S/he may, however, give
advice about your steps and/or your techniques. If you need help with your coding in order to
complete your assignment or to keep you going with it, then you may lose marks on your
assignment.
Question 1 (25 marks)
Discuss two major situations where heuristic strategies are used in AI problem solvers.
Question 2 (25 marks)
For this question, you should write a short report that explains how your program works and give some
execution examples.
Given a graph G and two nodes A and Z in G, write a program in Prolog or Lisp that finds an acyclic path
P between A and Z. The path should be represented as an ordered list of nodes from the start node to
the goal node. Since the path must be acyclic, a node can appear in the path only once.
Question 3 (25 marks)
For this question, you should write a short report that explains how your program works and give some
execution examples.
Consider the following graph that has costs attached to its edges:
a
b
c
d
3
2
2
1
5
Computer Science 456: Artificial Intelligence and Expert Systems 2
Write a program in Prolog or Lisp that given two nodes X and Y in the graph above will find the
minimum-cost path from node X to node Y and display the found path and its cost. All data about the
graph should be declared in the program.
Example: the minimum path between a and d is [a,b,c,d] with cost = 6.
Question 4 (25 marks)
For this question, you should write a short report that explains how your program works and give some
execution examples.
Write a Prolog/Lisp program that teaches children how to pronounce multisyllable words by dividing
them into syllables. Limit your program to deal only with syllables of the following two sequences:
1. vowel–consonant–vowel: divide the word after the second vowel.
Example: analog ---> ana-log
2. vowel–consonant–consonant–vowel: divide the word between the two consonants.
Example: bumper ---> bum-per