<<

CS181: Programming Languages Vladimir Vacic, Christos Koufogiannakis University of California, Riverside

Lab Assignment 1

1. Given the following graph of possible flights between seven US cities:

(graph taken from the web site of the American Mathematical Society, http://www.ams.org)

a) Write a Prolog program that would check if there is a route from Fresno to Dallas, from Seattle to Boston, and from Atlanta to Fresno.

b) Write a C program that does the same thing.

Note: you have to write complete, working programs, run them and show the results. As far as C goes, the choice of data structure to store the relations between cities is yours.

Warning: if there are cycles in the graph, Prolog might never find a solution and may never say that there are no solutions. If this happens in your assignment, make a note of that.

2. Given the partial family tree of the gods of the ancient Greeks encoded as a Prolog database:

parent(, gaea). parent(gaea, cyclope). parent(gaea, ). parent(gaea, ). parent(gaea, ). parent(, cyclope). parent(uranus, chronos). parent(uranus, coeus). parent(uranus, oceanus). parent(chronos, ). parent(chronos, ). parent(chronos, ). parent(, hades). parent(rhea, poseidon). parent(rhea, zeus). parent(coeus, ). parent(, leto). parent(leto, ). parent(leto, ). parent(zeus, apollo). parent(zeus, artemis). parent(oceanus, ). parent(, iapetus). parent(, ). parent(zeus, ares). male(chaos). male(cyclope). male(uranus). male(chronos). male(coeus). male(oceanus). male(hades). male(poseidon). male(zeus). male(ares). male(apollo). male(iapetus). female(gaea). female(rhea). female(leto). female(hera). female(phoebe). female(tethys). female(artemis). define rules for the following relationships: a) father b) mother c) child d) son e) daughter f) sibling g) aunt and answer the following questions: h) Father of Ares i) Mother of Apollo j) Children of Uranus k) Son of Zeus l) Daughter of Gaea m) All siblings of Hades n) Who is the aunt of Leto?