[Edu-sig] Python for AI

Douglas S. Blank dblank@brynmawr.edu
Sun, 25 Aug 2002 19:01:22 -0000


Of course, it depends on what you mean by "AI". For traditional AI, John
pointed to some good sites, especially those from Peter Norvig to supplement
his textbook ("AI: A Modern Approach"):

http://www.norvig.com/python/python.html

If you are interested in the what you might want to call "Post-Modern AI"
(including neural networks, evolutionary computation, and fuzzy logic) you can
try out some code that we have been developing over the last year. 

(If anyone finds more AI-related Python code, please let us know. I'm planning
to translate some Prolog-like logic resolution, forward and backward chaining
code into Python from Scheme. If that has already been done, that'd be great.)

Here is part of a message I sent to someone on this list just last week:

We have three modules for fuzzy, neural networks, and genetic algorithms:

pyro.brain.fuzzy
pyro.brain.conx
pyro.brain.ga

You can find them individually at:

http://bubo.brynmawr.edu/cgi-bin/viewcvs.cgi/pyro/brain/

or find our whole system at:

http://emergent.brynmawr.edu/wiki/index.cgi/Pyro

(Pyro is Python Robotics, and is a larger system for experimenting with
robotic control using Python and a variety of AI techniques).

The neural network is a fairly sophisticated back-propagation of error
simulator. It does feed-forward networks (and simple recurrent networks). For
more information on that style you can follow the "Parallel Distributed
Processing" (or PDP) books by McClellend and Rumlehart. There is a Wiki page
for conx documentation at:

http://emergent.brynmawr.edu/wiki/index.cgi/PyroConx

The Fuzzy logic is home grown, and handles the combination of Fuzzy values
using the overloaded | and &. To turn a value into a Fuzzy value, the syntax
looks something like:

Fuzzy(min, max) >> value
Fuzzy(min, max) << value

The >> makes min = 0 and max = 1, whereas the << makes min = 1, and max = 0. 

We don't really have any good documentation on Fuzzy logic yet. But there are
some examples in:

http://bubo.brynmawr.edu/cgi-bin/viewcvs.cgi/pyro/plugins/brains/

(see the files that start with BB, which stands for "behavior based").

Our Genetic Algorithm is a simple system, but combined with the neural network
module, you can even evolve the weights of a neural network.

Find it at:

http://bubo.brynmawr.edu/cgi-bin/viewcvs.cgi/pyro/brain/ga.py

-Doug

"Nagarjuna G." <nagarjun@hbcse.tifr.res.in> said:

> 
> I feel that Python can be used for teaching regular AI topics. I would
> like to attempt teaching without using traditional LISP/Prolog.
> Nothing against them, but only to develop material for a Python based
> course.  I would like to know if any of you already know material that
> would help me in shaping this course or develop examples.  Any help
> will be appreciated.
> 
> Nagarjuna
> 
> _______________________________________________
> Edu-sig mailing list
> Edu-sig@python.org
> http://mail.python.org/mailman/listinfo/edu-sig
> 



-- 
Douglas S. Blank,       Assistant Professor         
dblank@brynmawr.edu,          (610)526-6501
Bryn Mawr College,  Computer Science Program
101 North Merion Ave,  Park Science Building
Bryn Mawr, PA 19010 dangermouse.brynmawr.edu