100 likes | 446 Views
Symbolic AI www.bit.uwe.ac.uk/~ryang/prolog/top.html. Lecture Every Monday 12:30-13:30 Lab Session (two groups) Tuesday 16:30 3P30 Tuesday 17:30 3P30. Assessment Method. Coursework 40% (Coding in Prolog) Examination 60% (4-5 questions in AI 1 question in Prolog)
E N D
Symbolic AI www.bit.uwe.ac.uk/~ryang/prolog/top.html Lecture Every Monday 12:30-13:30 Lab Session (two groups) Tuesday 16:30 3P30 Tuesday 17:30 3P30
Assessment Method • Coursework 40% (Coding in Prolog) Examination 60% (4-5 questions in AI 1 question in Prolog) • How to Pass the coursework Don’t miss lectures, and always finish practical work on time.
A Preliminary Plan for this Term • Lecture 1: Introduction, Logic Formulas, Logical Inferences • Lecture 2: Syntax and Semantics of Prolog • Lecture 3: Unification, Proof Tree • Lecture 4: Lists, Recursions • Lecture 5: More on Lists, Some Prolog Built-ins • Lecture 6: A Case Study • Lecture 7: Modifying Programs Dynamically • Lecture 8: Controlling Backtracking • Lecture 9: Input and Output Closed World Assumption --------- next term --------------------------------------------- • Lecture 11: Comparing with Others Languages • Lecture 12: Revision
Books • Prolog Programming by Paul Brna • Logic Programming and Prolog by Ulf Nilsson and Jan Matuszynski • Prolog – Programming for AI by Ivan Bratko
Imperative Procedure oriented C, Fortran Object oriented C++, Java Declarative Functional langauge Haskell Logic language Prolog (PROgramming in LOGic) Programming Languages
A Famous `Equation` Algorithm = Logic + control (by Rob Kowalski )
Background - Logic • Logic: a tool for reasoning • Logical formulas: a formal way to describe things • Logical Operators: and or not
Examples Mary loves Tom => Every mother loves her children => loves(mary, tom) VX VY(loves(X,Y) <- mother_of(X,Y)) Logical Formulars (recall from Analytical Modelling)
The most popular boy’s name in 1800 is John. The second popular boy’s name in 1800 is Thomas. A popular boy’s name within a year means that the name is listed in the top 50 list. boy_names( john, 1800, 1). boy_names( thomas, 1800, 2). pop_boy_names(X,Year) :- boy_names(X,Year,P), P =< 50. Logical Formulas (more examples)using: boy_names(Name, Year, Pos)