[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