Logic Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Logic Programming

Description:

Prolog will be studied as a logic programming approach for declarative logic programming. ... Exams will be a combination of lectures in class and homework assignments. – PowerPoint PPT presentation

Number of Views:563
Avg rating:3.0/5.0
Slides: 28
Provided by: Omar51
Category:

less

Transcript and Presenter's Notes

Title: Logic Programming


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
  • This course will introduce the theory and
    concepts of logic programming. Prolog will be
    studied as a logic programming approach for
    declarative logic programming.

PROLOG
3
Logic Programming
4
Course Objectives
  • 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..

PROLOG
4
Logic Programming
5
Course Policy
  • 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.

PROLOG
5
Logic Programming
6
Absence Policy
  • 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.

PROLOG
6
Logic Programming
7
Examination
  • 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.

PROLOG
7
Logic Programming
8
Grading
Assignment 10
Attendance 10
Midterm 30
Final 50
PROLOG
8
Logic Programming
9
PROLOG
Introduction
9
Logic Programming
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),
male(Y).
  • ?- father(X,ali).
  • X salem ?
  • no
  • ?- father(X,Y), brother(Y,Z).
  • X salem, Y ali, Z ahmed
  • yes
  • ?
  • X salem, Yahmed, Zali
  • 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
  • You can try prolog by downloading prolog
    compiler
  • Ciao http//clip.dia.fi.upm.es/Software/Ciao/Late
    st/download.html
  • Choose Windows version,
  • For Windows Vista current version 1.13.0.
  • For Windows XP select version Ciao-1.10p5Win32.zi
    p

PROLOG
24
Logic Programming
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
  • 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
  • ?-

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

PROLOG
Logic Programming
Write a Comment
User Comments (0)
About PowerShow.com