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