User Tools

Site Tools


sc330_f2016:prolog1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sc330_f2016:prolog1 [2016/10/19 20:21]
jhansen
sc330_f2016:prolog1 [2021/06/30 23:42] (current)
Line 22: Line 22:
 sudo apt-get install swi-prolog sudo apt-get install swi-prolog
 </​code>​ </​code>​
-====Deliverables:====+====Deliverables====
  
 You will turn in two prolog programs (in separate files) that solve the following logic puzzles: You will turn in two prolog programs (in separate files) that solve the following logic puzzles:
  
-  *{{sc330_f2016:​schoolsout.png?​linkonly|School'​s ​Out!}} +  *{{sc330_f2016:​rosiesroses.png?​linkonly|Rosie'​s ​Roses}} ({{sc330_f2016:​rosies-roses-key.pdf?​linkonly|Solution}}) ​ 
-  *{{sc330_f2016:​rosiesroses.png?​linkonly|Rosie'​s ​Roses}}+  *{{sc330_f2016:​schoolsout.png?​linkonly|School'​s ​Out!}} ({{sc330_f2016:​schools-out-key.pdf?​linkonly|Solution}}
  
-To help you start, we've provided a [[smapleSolution.pl|sample solution]] to {{sc330_f2016:​tie.png?​linkonly|It'​s a tie}}. Use this as a model for your own solutions.+To help you start, we've provided a [[smapleSolution.pl|sample solution]] to {{sc330_f2016:​tie.png?​linkonly|It'​s a tie}}. Use this as a model for your own Prolog ​solutions.
  
-====Notes:====+====Notes/Hints==== 
 +  *There are links above to the solutions (not the Prolog code) for these two puzzles so that you can double-check the results produced by your code.  We strongly encourage taking a few minutes to solve these puzzles by hand so that you get a feel for how to solve them and the "​facts"​ you're extracting from the clues in the puzzle. ​ This will give you a better feel for what you need to encode in your Prolog solution as well as giving you a feel for what Prolog'​s trying to do under the hood.  (And it's fun!)
   *Just copy and paste the all_different function. It simply checks to make sure each item in the list is unique.   *Just copy and paste the all_different function. It simply checks to make sure each item in the list is unique.
   *Check spelling errors. There is no such thing as misspelled atoms. So speigel and spiegel are both valid but different.   *Check spelling errors. There is no such thing as misspelled atoms. So speigel and spiegel are both valid but different.
-  *Once you have a solution, ​just check whether ​it satisfies each of the numbered rules in the problem.+  *Once you have a solution, check it against the solutions we provide for the puzzles. ​ If you're getting something different, you might not have sufficiently constrained the solution by extracting all of the information from the puzzle. ​ (Or you might have just miscoded one of the facts.)  
 +  *If you don't constrain the solution enough, you can get multiple possible answers. ​ Even if you get lucky and happen to get the right answer as your first answer, especially if you only look at the first one found, that doesn'​t mean your Prolog code is correct. ​ **There is exactly one solution to each puzzle.** 
 +  *Logic tips:  
 +    *"A implies B" or "if A then B" is equivalent to "(A and B) or (not A)". 
 +    *"if A then B; otherwise C" is equivalent to "(A and B) or ((not A) and C)".
   *These problems make extensive use of the "​not"​ operator, \+.   *These problems make extensive use of the "​not"​ operator, \+.
     * \+ works as you expect when all variables are completely bound.     * \+ works as you expect when all variables are completely bound.
     * If E contains unbound variables, \+E will try to find bindings to that will make E true. If Successful \+ will fail.     * If E contains unbound variables, \+E will try to find bindings to that will make E true. If Successful \+ will fail.
   * This lab is taken from [[http://​www.cis.upenn.edu/​~matuszek/​cis554-2015/​Assignments/​prolog-1-logic-puzzles.html|this site]]. There may be additional resources there.   * This lab is taken from [[http://​www.cis.upenn.edu/​~matuszek/​cis554-2015/​Assignments/​prolog-1-logic-puzzles.html|this site]]. There may be additional resources there.
sc330_f2016/prolog1.1476908501.txt.gz · Last modified: 2021/06/30 23:40 (external edit)