You are on page 1of 17

CS 462: Introduction to Artificial


This course advocates the physical-symbol system hypothesis

formulated by Newell and Simon in 1976. It states that
intelligence is a functional property and it is completely
independent of any physical embodiment.

Alternative less-symbolic paradigms are neural networks and

evolutionary computation (of which genetic algorithms are
the most prominent example).
Intelligence vs Artificial Intelligence

Intelligence is a property/ability attributed to people, such as

to know, to think, to talk, to learn.

Intelligence = Knowledge + ability to perceive, feel, comprehend,

process, communicate, judge, learn.

Artificial Intelligence is an interdisciplinary field aiming at

developing techniques and tools for solving problems that
people at good at.
Definitions of AI
Existing definitions advocate everything from replicating human intelligence
to simply solving knowledge-intensive tasks. Examples:
Artificial Intelligence is a study of complex information processing problems
that often have their roots in some aspect of biological information
processing. The goal of the subject is to identify solvable and interesting
information processing problems, and solve them. -- David Marr.
Artificial Intelligence is the design, study and construction of computer
programs that behave intelligently. -- Tom Dean.
Artificial Intelligence is the enterprise of constructing a physical symbol system
that can reliably pass the Turing test. -- Matt Ginsberg.

In the textbook, AI is defined as an experimental discipline utilizing the ideas and the
methods of computation.
Goals of Artificial Intelligence

Scientific goal: understand the mechanism behind human intelligence.

Engineering goal: develop concepts and tools for building intelligent
agents capable of solving real world problems. Examples:
Knowledge-based systems: capture expert knowledge and apply them to
solve problems in a limited domain.
Common sense reasoning systems: capture and process knowledge that
people commonly hold which is not explicitly communicated.
Learning systems: posses the ability to expend their knowledge based on
the accumulated experience.
Natural language understanding systems.
Intelligent robots.
Speech and vision recognition systems.
Game playing (IBMs Deep Blue)
The State of the Art Example: The Semantic Web

The Semantic Web is the latest most prominent example of applied AI. It
allows data to be linked across the web, and thus understood by
computers so that they can perform increasingly sophisticated tasks which
were previously delegated to humans.

The word semantic itself implies meaning or understanding. As such,

the fundamental difference between Semantic Web technologies and
other technologies related to data (such as relational databases or the
World Wide Web itself) is that the Semantic Web is concerned with the
meaning and not the structure of data.
Introduction to LISP*)


Especially designed for symbol manipulation.

Provides built-in support for lists.
Automatic storage management (no need to keep track of memory
Interactive environment, which allows programs to be developed step
by step, i.e. if a change is to be introduced, only changed functions
must be recompiled.

*) These lecture notes are based on Winston and Horn LISP, 3rd edition,
Allegro Common Lisp (Franz corporation)
Basic terminology

Atoms: word-like indivisible objects which can be numbers or

Lists: sentence-like objects formed from atoms or other lists, and
enclosed in parentheses.
S-expressions: compositions of atoms and lists.
Procedures: step by step specifications how to do something.
Primitives: procedures supplied by the LISP itself
Example: (+ 5 6)
User-defined procedures: procedures introduced by the
Example: (students 'anna)
Program: a collection of procedures working together.

An s-expression can have other s-expressions nested in it. Examples:

(+ (* 5 7) ( / 2 4))
(This (is a dog) (or a cat))

Expressions can be interpreted both, procedurally and declaratively.

If interpreted procedurally, an expression provides a direction for
doing something. Such an expression is called a form, and its first
element is the name of a procedure to be used to produce the value.
The process of computing the value of an expression is called
If interpreted declaratively, expressions represent data.

Data and procedures have the same syntax.

Evaluation of atoms
The value of an atom is an atom itself.
CG-USER(1): 5
CG-USER(2): "Hello World"
"Hello World"
CG-USER(4): Nil
CG-USER(5): ()
Variables are names of memory locations.
Integers: 179, 45
Ratio: 5/7, 7/9
Floating point: 5.2, 7.9
* (/ 25 5)
* (/ 46 9)
46/9 ; do not divide evenly
* (float (/ 46 9))
* (round (/ 46 9))
5 ; the nearest integer
1/9 ; the remainder
More numeric primitives

* (- 6) * (+ 2 2.5)
-6 4.5
* (- -6) * (expt 3 6)
6 729
* (max 5 7 2) * (sqrt 81)
7 9.0
* (min 5 7 2) * (sqrt 82)
2 9.055386
* (sqrt (* (+ 1 3) (* 2 2))) * (abs 6)
4.0 6
* (+ (round (/ 22 7)) (round (/ 7 3))) * (abs -6)
5 6
Representation of atoms and lists in a computer

Consider the list (A (B (C))). It can be represented by

means of the following diagram:

These boxes are
called cons cells.
Each cons cell consists of 9 bytes:

1 leading byte, called the data type byte. It holds

information indicating that the particular group of 9 bytes
is part of a list (i.e. a cons cell).
2 groups of 4 bytes each, representing pointers. Each
pointer is an address -- the first one to the memory location
containing the first element of the list, and the second one
to the memory location storing the rest of the list.
The second pointer of the last element of each list contains
zeros (representing NIL and empty list). i.e. no cons cell
corresponds to the empty list.
The CONS primitive builds new lists

Example: Given the list (Education is power), build a new list from it
and the atom University.

* (cons 'University '(Education is power))


To implement this, LISP maintains a list of free boxes (cons cells), called
the free-storage list. CONS removes the first box from the free-storage
list, and deposits new pointers into it.
Education is power

Free storage list


Dotted pairs

Consider the list (A B . C). Here (B . C) is called a dotted

pair, and is represented as follows:

To construct the list (A B C), we write:
* (cons 'A (cons 'B (cons 'C NIL)))

To construct the list (A B . C), we write:

* (cons 'A (cons 'B 'C))