1 / 27

Logic Programming

Logic Programming. PROLOG. Dr. Yasser Nada Fall 2010/2011 Lecture 1. Logic Programming. Text Book. Prolog Programming, A First Course, by Paula Brna, 2001 References: Leon Starling and Ehud Shapiro, The art of Prolog. 1989.

enrico
Download Presentation

Logic Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Logic Programming PROLOG Dr. Yasser Nada Fall 2010/2011 Lecture 1 Logic Programming

  2. Text Book • Prolog Programming, A First Course, by Paula Brna, 2001 • References: • Leon Starling and Ehud Shapiro, The art of Prolog. 1989. • Ivan Brotko, Prolog Programming for Artificial Intelligence. 1986. PROLOG Logic Programming

  3. Course Description PROLOG Logic Programming 3 This course will introduce the theory and concepts of logic programming. Prolog will be studied as a logic programming approach for declarative logic programming.

  4. Course Objectives PROLOG Logic Programming 4 • Upon completion of the course, student should: • Knowledge of concepts and theories of logic programming. • Become familiar with Prolog language syntax. • Be able to solve problems in Prolog. • Be able to use knowledge in a suitable form to be used in Prolog language..

  5. Course Policy PROLOG Logic Programming 5 Students are expected to participate and attend the class in time. Students are responsible to submit assignments in time. Exams will be a combination of lectures in class and homework assignments. Late homework submission will be subject to penalties. If an assignment is submitted late, a penalty of 10 percent of that assignment's grade will be assessed for each day it is late. A homework paper will not be accepted after graded papers have been returned, after a solution has been distributed, or after the final examination.

  6. Absence Policy PROLOG Logic Programming 6 Students absent that exceeds (25% lectures) are being considered dropped from the course. After 3 lectures absent a warning is issued for the student. After another 3 lectures absent student will be dropped from the class.

  7. Examination PROLOG Logic Programming 7 There will be no makeup exams except under emergencies. If a student cannot attend the exam, then student must make arrangement with the instructor prior to the planned absence. The emergency makeup exam will be either written or oral.

  8. Grading PROLOG Logic Programming 8

  9. PROLOG Introduction Logic Programming 9

  10. What is Logic Programming • Two types of programming languages: • Imperative languages (C, C++, VB, C#, Java, …). • Declarative languages (prolog, lisp, …). • Logic programming is a type of programming called declarative programming. PROLOG Logic Programming

  11. Imperative Languages • They are also called procedural languages. • Programmer gives all steps to solve a problem. He must know an algorithm to solve a problem. • Example: find average of list of numbers: • Input total • Input number • Average = total/number • Print Average PROLOG Logic Programming

  12. Declarative Languages • Programmer describe the problem without the control flow, then the system will solve the problem. • Programmer must know the relations between objects to solve the problem. • Programmer does not need to know an algorithm to solve the problem. • Declarative languages consists of: • Program or theory. • Computation which is deduction. PROLOG Logic Programming

  13. First Order Predicate • Represent relation between objects: • own(ahmed, car). • friend(ali, ahmed). • father(sami, ali). • brother(kareem, ali). PROLOG Logic Programming

  14. Prolog • It is a declarative language (not completely declarative) based on first order logic. • Prolog means Programming in Logic. • It consists of: • Facts. • Rules. • Goal • Used in AI: NLP, expert systems, games, automated answering system, …. PROLOG Logic Programming

  15. Prolog • Prolog Program consist of: • Facts: asserts a property to an object, or relation between two or more objects: • parent(ali, salem). • own(ali, car). • Rules: allow to infer a relationship or a property based on a precondition: • parent(X,Y) :- father(F,X), father(P,Y). • Goal: Query or questions asked by user. • parent(ali, Y). PROLOG Logic Programming

  16. Atoms • Atom is • a sequence of alphanumeric characters • usually starting with lower case letter • or, a string enclosed in single quotes • They represent constants. • Examples: • ali, salem, a, b, c, a1, a2, b3, c5, … • ‘Mr. Ali’, ’Dr. Sultan’ PROLOG Logic Programming

  17. Variables • A variable is • a sequence of alphanumeric characters • usually starting with an uppercase letter • Examples: • X, Y, Z, Parent, Child, Foo, X1, Y1, X2, X5, X6, …. PROLOG Logic Programming

  18. Predicates • A predicate has the form • p(t1,...,tn) • where p is an atom and t1...tn are variables or atoms. • n is the number of arguments of predicate p (written as p/n which represents the signature of predicate). • Predicates can be of 0-arg, 1-arg, 2-arg, … • Examples: • father(ali, ahmed). PROLOG Logic Programming

  19. Prolog Program Example like(ali, car). like(ahmed, car). father(salem, ali). father(salem, ahmed). brother(X,Y) :- father(P,X), father(P,Y). friend(X,Y) :- like(X,C), like(Y,C). Predicate name Predicate arguments PROLOG Predicate End and if Logic Programming

  20. Goals • A goal is a conjunction of predicates • p(X,Y),q(Y,Z),t(Z,W). • A goal is the question or query asked by the user. Prolog will try to find an answer for the goal. PROLOG Logic Programming

  21. Answers • Given a goal, Prolog searches for answer(s): • “yes” (possibly with answer substitution) • “no” (if no answer or no more answer found). • Substitutions are bindings of variables that make goal true. PROLOG Logic Programming

  22. Examples male(ali). male(ahmed). male(salem). father(salem, ali). father(salem, ahmed). brother(X,Y) :- father(P,X), father(P,Y), male(X), make(Y). • ?-father(X,ali). • X = salem ? ; • no • ?- father(X,Y), brother(Y,Z). • X = salem, Y = ali, Z = ahmed • yes • ? ; • X = salem, Y=ahmed, Z=ali • Yes • ? ; • no PROLOG Logic Programming

  23. Rules • A rule is an assertion of the form • p(ts) :- q(ts’), ..., r(ts’’). • where ts, ts’, ts’’ are atoms or variables • “p(ts) holds if q(ts’) holds and ... And r(ts’’) holds” • Example: • brother(X,Y) :- father(Z,X), father(Z,Y). PROLOG Logic Programming

  24. Prolog PROLOG Logic Programming 24 • You can try prolog by downloading prolog compiler: • Ciao: http://clip.dia.fi.upm.es/Software/Ciao/Latest/download.html • Choose Windows version, • For Windows Vista: current version 1.13.0. • For Windows XP: select version Ciao-1.10p5Win32.zip

  25. Ciao installation under Windows XP • After downloading ciao-1.10pWin32.zip, extract it in C:\ • Then goto C:\Ciao-1.10p5Win32 • Double click on the file: install.bat • Then type ciaosh at the DOS prompt, the prolog prompt appears: ?- PROLOG Logic Programming

  26. Ciao installation under Windows Vista PROLOG Logic Programming 26 After downloading CiaoDE-1.13.0-XXXX.exe, double click on it to run. At the desktop you will find a file: ciaosh shortcut. Double click on it and the Prolog prompt appears: ?-

  27. Miscellaneous • Comments • % single line comment • /* multiple line comment */ • To quit Ciao, type • ?- exit. • (or just control-D) PROLOG Logic Programming

More Related