AI
From HaskellWiki
(→People) 

(31 intermediate revisions by 17 users not shown) 
Revision as of 08:34, 11 December 2012
Contents 
1 Introduction
This is the home for the Haskell AI Strike Force! Here we will collect code, problems, papers, ideas, and people for putting together a flexible AI toolkit in Haskell.
2 People
If interested in contributing to or monitoring this project, please put your name, nickname (if applicable  e.g., if you talk on #haskell), and email address so we can keep each other uptodate.
Mark WongVanHaren (marklar) <markwvh at gmail>
Andrew Wagner (chessguy) <wagner dot andrew at gmail>
Bryan Green (shevek) <dbryan dot green at gmail>
Ricardo Herrmann <rherrmann at gmail>
Dan Doel (dolio) <dan dot doel at gmail>
Chungchieh Shan (ccshan) <ccshan at cs dot rutgers dot edu>
Adam Wyner (Lawman) <adam dot wyner dot info>
Allan Erskine (thedatabase) <allan dot erskine at gmail>
Dave Tapley (DukeDave) <dukedave at gmail>
Lloyd Allison <lloyd dot allison at infotech dot monash dot edu dot au>
Jim Geovedi <jim at geovedi dot com>
Paul Berg (Procyon) <procyon at procyondevelopments dot com>
Eric Kow (kowey) <eric dot kow at gmail> [watching on the sidelines]
Charles Blundell <blundellc at gmail>
Mathew Mills (mathewm) <mathewmills (at) gmail (dot) com>
Jason Morton (inverselimit) <jason.morton at gmail>
Jiri Hysek (dvekravy) <xhysek02 at stud dot fit dot vutbr dot cz> [NN, EA]
Shahbaz Chaudhary <shahbazc at gmail> [interested in GP]
Hans van Thiel <hthiel dot char á zonnet tot nl> [automated rule discovery, author of the Emping data mining utility]
Alp Mestanogullari (Alpounet) <alp (at) mestan (dot) fr> [machine learning mainly]
Chris Pettitt (cpettitt) <cpettitt at gmail>
Nathaniel Neitzke (nneitzke) <nightski at gmail>
Ricardo HonoratoZimmer (_rata_) <rikardo dot horo at gmail dot com>
Raphael Javaux (RaphaelJ) <raphaeljavaux at gmail dot com>
Mahmut Bulut (vertexclique) <mahmutbulut0 at gmail dot com> (ML, natural language processing, swarming intelligence)
Mike Izbicki <mike at izbicki.me>
Chris Taylor (crntaylor) <crntaylor at gmail>
Libor Wagner <wagnelib at cmp dot felk dot cvut dot cz>
3 Ideas
 In short, parts of this project can range from established ideas to new syntheses. ccshan: The high level of domainspecific abstraction that Haskell enables is ideal for AI, because AI programs are often "meta": we need to model agents who model the world, and sometimes to model agents who model agents who model the world, etc. In particular, monads are a good way to structure and solve decision processes, as I've started to explore as part of a course on computational modeling that I'm teaching. Given that Haskell is a good language for modular interpreters and compilers, it would also be nice to create and refactor in Haskell an implementation of a rational programming language like Avi Pfeffer's IBAL  not only is probability distribution a monad, I just realized that a certain kind of variable elimination is simply garbage collection in a callbyneed language!
4 Things that need a home
If there are things that should be included in the project, but you're not sure where it should go, place it here! I'll start with:
 http://catenova.org/~awagner/Simplifier
 This was given to me by Alfonso Acosta (mentioned recently on haskellcafe)
 http://catenova.org/~awagner/GPLib
 GPLib is a work in progress by yours truly, hopefully a future framework for genetic algorithms in haskell.
I've proposed a machine learning library for this year's Google Summer of Code. [1] There has been a few interested (and seemingly well qualified) students, too. I'm not sure if it qualifes as "AI", but if you are interested in this project (as a potential student, mentor, or just...well, interested), please add yourself to the above link, and/or get in touch with me at <ketil at malde dot org>. Ketil 07:46, 26 March 2007 (UTC)
Martin Erwig's probabilistic functional programming (PFP) project, including an implementation of the probability monad:
Culmination of some recent posts about the probability monad on Random Hacks (including a darcs repository):
sigfpe's coverage and highly algebraic view of the probability monad in Haskell:
Two links I found today that are interesting:
Polytypic unification  unification seems particularly useful for AI tasks (at least natural language stuff)... wouldn't be nice to have a generic library that does it for you?
Easytouse workinprogress neural network library, by Alp Mestan and Chaddaï Fouché :
Implementation of some of the algorithms in Russell and Norvig's "Artificial Intelligence: A Modern Approach", by Chris Taylor:
5 Proposed Module Hierarchy
 AI
 AI.Searching
 AI.Searching.Evolutionary
 AI.Logic
 AI.Planning
 AI.Planning.Swarm
 AI.Probabilistic
 AI.Learning
 AI.Learning.Kernel
 AI.Learning.NeuralNet
 AI.Classification
 AI.Classification.ExpertSystem
 AI.Communication
 AI.Searching
6 Proposed sample format for a wiki page on a topic or subtopic
AI/Logic/Fuzzy
The slashes show that Logic is a subpage of AI and Fuzzy is a subpage of AI/Logic. MediaWiki will then generate links back up the chain of pages. (Try the links to see)
 Fuzzy logic is blah blah...
 Subtopics:
 Trivial fuzzy logic in Haskell
 Type 2 fuzzy logic
 Links to existing literature:
 General
 My first fuzzy logic book
 Specific to functional programming / Haskell
 Fun with fuzzy functions
 General
 Typical problems:
 Problem 1: blah blah blah
 Problem 2: blah blah blah
 List of people involved in the area
 Me
 Someone else
 Body
 List of goals
 Progress being made on them
 Code and documentation.
7 Current subpages
8 External links
 Packages at Hackage, marked AI
 HaskLab Wiki
 The HaskLab mailinglist
 The HaskLab Archives (mailinglist archive)
 Digit recognition with a neural network. First attempt! (Blog article)
 Haskell Neural Network: plugging a space leak (Blog article)
 Further Reading
 hslogic; logic programming in Haskell (software on github)