Difference between revisions of "AI"
m (Added link to GPLib page) 
(added my contact info!) 

(42 intermediate revisions by 23 users not shown)  
Line 1:  Line 1:  
[[Category:Community]] 
[[Category:Community]] 

+  [[Category:AI]] 

== Introduction == 
== 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. 
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. 

Line 5:  Line 6:  
== People == 
== 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. 
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. 

+  
+  Yuriy Pitomets (netsu) <pitometsu at gmail> 

+  
+  Mark WongVanHaren (marklar) <markwvh at gmail> 

Andrew Wagner (chessguy) <wagner dot andrew at gmail> 
Andrew Wagner (chessguy) <wagner dot andrew at gmail> 

Line 17:  Line 22:  
Adam Wyner (Lawman) <adam dot wyner dot info> 
Adam Wyner (Lawman) <adam dot wyner dot info> 

−  
−  Allan Erskine (thedatabase) <allan dot erskine at gmail> 

Dave Tapley (DukeDave) <dukedave at gmail> 
Dave Tapley (DukeDave) <dukedave at gmail> 

Lloyd Allison <lloyd dot allison at infotech dot monash dot edu dot au> 
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> 
Paul Berg (Procyon) <procyon at procyondevelopments dot com> 

Line 29:  Line 34:  
Charles Blundell <blundellc at gmail> 
Charles Blundell <blundellc at gmail> 

−  
−  David Amos <polyomino (at) f2s (dot) com> 

Mathew Mills (mathewm) <mathewmills (at) gmail (dot) com> 
Mathew Mills (mathewm) <mathewmills (at) gmail (dot) com> 

Jason Morton (inverselimit) <jason.morton at gmail> 
Jason Morton (inverselimit) <jason.morton at gmail> 

−  == Ideas == 

−  This is where we need to start. Please put your ideas here for how to structure the contents of this toolkit/wikipage(s). I've ripped and wikified the table of contents of the main sections of Russell and Norvig's classic "Artificial Intelligence: A Modern Approach", for inspiration. One way of structuring things would be to turn various section names of this into links to new pages. If we do this, we should agree on the format for each new page to link to: e.g., each page could have a list of papers, links to code, a general discussion area, and a list of benchmark problems for that particular topic. Comments, please! 

+  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> 

+  
+  Florian Grunert <fgrunert ätt uniosnabrueck dot de> 

+  
+  Chad Scherrer <chad (dot) scherrer (at) gmail> (Parallel learning algrorithms, L1 regularization, Bayesian inference) 

+  
+  Ant Al'Thor R. <ant (at) theixo (dot) com> (AI Interest & Business) 

+  
+  == 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, [http://conway.rutgers.edu/~ccshan/wiki/cs504/posts/Second_week.html as I've started to explore as part of a course on computational modeling that I'm teaching]. Given that [http://www.cs.yale.edu/homes/hudakpaul/hudakdir/ACMWS/position.html 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 [http://ai.stanford.edu/~shoham/www%20papers/RatProg.pdf rational programming language] like [http://www.eecs.harvard.edu/~avi/ Avi Pfeffer]'s [http://www.eecs.harvard.edu/~avi/IBAL/index.html IBAL]  not only [http://www.eecs.harvard.edu/~nr/pubs/pmonadabstract.html is probability distribution a monad], I just realized that [http://ttic.uchicago.edu/~dmcallester/bayes.ps a certain kind of variable elimination] is simply garbage collection in a callbyneed language! 
* 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, [http://conway.rutgers.edu/~ccshan/wiki/cs504/posts/Second_week.html as I've started to explore as part of a course on computational modeling that I'm teaching]. Given that [http://www.cs.yale.edu/homes/hudakpaul/hudakdir/ACMWS/position.html 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 [http://ai.stanford.edu/~shoham/www%20papers/RatProg.pdf rational programming language] like [http://www.eecs.harvard.edu/~avi/ Avi Pfeffer]'s [http://www.eecs.harvard.edu/~avi/IBAL/index.html IBAL]  not only [http://www.eecs.harvard.edu/~nr/pubs/pmonadabstract.html is probability distribution a monad], I just realized that [http://ttic.uchicago.edu/~dmcallester/bayes.ps a certain kind of variable elimination] is simply garbage collection in a callbyneed language! 

Line 44:  Line 76:  
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: 
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 
+  * http://catenova.org/~awagner/Simplifier (broken link) 
**This was given to me by Alfonso Acosta (mentioned recently on haskellcafe) 
**This was given to me by Alfonso Acosta (mentioned recently on haskellcafe) 

−  *http://catenova.org/~awagner/GPLib 
+  *http://catenova.org/~awagner/GPLib (broken link) 
**[[GPLib]] is a work in progress by yours truly, hopefully a future framework for genetic algorithms in haskell. 
**[[GPLib]] is a work in progress by yours truly, hopefully a future framework for genetic algorithms in haskell. 

Line 70:  Line 102:  
*http://www.cs.chalmers.se/~patrikj/poly/unify/ 
*http://www.cs.chalmers.se/~patrikj/poly/unify/ 

−  == Table of Contents for AI: A Modern Approach == 

+  Easytouse workinprogress neural network library, by [[User:AlpMestanAlp Mestan]] and Chaddaï Fouché : 

−  *Part I: Artificial Intelligence 

+  *http://github.com/alpmestan/HNN/tree/master 

−  **1. Introduction ... 1 

+  
−  ***1.1. What is AI? ... 1 

+  Implementation of some of the algorithms in Russell and Norvig's "Artificial Intelligence: A Modern Approach", by [[User:CrntaylorChris Taylor]]: 

−  ***1.2. The Foundations of Artificial Intelligence ... 5 

+  *https://github.com/christaylor/aimahaskell 

−  ***1.3. The History of Artificial Intelligence ... 16 

+  
−  ***1.4. The State of the Art ... 27 

+  == Proposed Module Hierarchy == 

−  ***1.5. Summary ... 28 

+  *AI 

−  **2. Intelligent Agents ... 32 

+  **AI.Searching 

−  ***2.1. Agents and Environments ... 32 

+  ***AI.Searching.Evolutionary 

−  ***2.2. Good Behavior: The Concept of Rationality ... 34 

+  **AI.Logic 

−  ***2.3. The Nature of Environments ... 38 

+  **AI.Planning 

−  ***2.4. The Structure of Agents ... 44 

+  ***AI.Planning.Swarm 

−  ***2.5. Summary ... 54 

+  **AI.Probabilistic 

−  **3. Solving Problems by Searching ... 59 

+  **AI.Learning 

−  ***3.1. ProblemSolving Agents ... 59 

+  ***AI.Learning.Kernel 

−  ***3.2. Example Problems ... 64 

+  ***AI.Learning.NeuralNet 

−  ***3.3. Searching for Solutions ... 69 

+  **AI.Classification 

−  ***3.4. Uninformed Search Strategies ... 73 

+  ***AI.Classification.ExpertSystem 

−  ***3.5. Avoiding Repeated States ... 81 

+  **AI.Communication 

−  ***3.6. Searching with Partial Information ... 83 

+  
−  ***3.7. Summary ... 87 

+  ==Proposed sample format for a wiki page on a topic or subtopic== 

−  **4. Informed Search and Exploration ... 94 

+  
−  ***4.1. Informed (Heuristic) Search Strategies ... 94 

+  '''AI/Logic/Fuzzy''' 

−  ***4.2. Heuristic Functions ... 105 

+  
−  ***4.3. Local Search Algorithms and Optimization Problems ... 110 

+  The slashes show that [[/Logic  Logic]] is a subpage of [[AI]] and [[/Logic/Fuzzy  Fuzzy]] is a subpage of [[AI/Logic]]. MediaWiki will then generate links back up the chain of pages. (Try the links to see) 

−  ***4.4. Local Search in Continuous Spaces ... 119 

+  
−  ***4.5. Online Search Agents and Unknown Environments ... 122 

+  *Fuzzy logic is blah blah... 

−  ***4.6. Summary ... 129 

+  *Subtopics: 

−  **5. Constraint Satisfaction Problems ... 137 

+  **Trivial fuzzy logic in Haskell 

−  ***5.1. Constraint Satisfaction Problems ... 137 

+  **Type 2 fuzzy logic 

−  ***5.2. Backtracking Search for CSPs ... 141 

+  *Links to existing literature: 

−  ***5.3. Local Search for Constraint Satisfaction Problems ... 150 

+  **General 

−  ***5.4. The Structure of Problems ... 151 

+  ***My first fuzzy logic book 

−  ***5.5. Summary ... 155 

+  **Specific to functional programming / Haskell 

−  **6. Adversarial Search ... 161 

+  ***Fun with fuzzy functions 

−  ***6.1. Games ... 161 

+  *Typical problems: 

−  ***6.2. Optimal Decisions in Games ... 162 

+  **Problem 1: blah blah blah 

−  ***6.3. AlphaBeta Pruning ... 167 

+  **Problem 2: blah blah blah 

−  ***6.4. Imperfect, RealTime Decisions ... 171 

+  *List of people involved in the area 

−  ***6.5. Games That Include an Element of Chance ... 175 

+  ** Me 

−  ***6.6. StateoftheArt Game Programs ... 180 

+  **Someone else 

−  ***6.7. Discussion ... 183 

+  *Body 

−  ***6.8. Summary ... 185 

+  **List of goals 

−  *Part III: Knowledge and reasoning 

+  **Progress being made on them 

−  **7. Logical Agents ... 194 

+  **Code and documentation. 

−  ***7.1. KnowledgeBased Agents ... 195 

+  
−  ***7.2. The Wumpus World ... 197 

+  ==Current subpages== 

−  * 
+  *[[/Logic/Fuzzy]] 
−  * 
+  *[[/Genetic programming/Evolutionary chess]] 
−  * 
+  *[[/Genetic programming/GPLib]] 
−  +  
−  +  
−  +  == External links == 

−  **8. FirstOrder Logic ... 240 

−  ***8.1. Representation Revisited ... 240 

−  ***8.2. Syntax and Semantics of FirstOrder Logic ... 245 

−  ***8.3. Using FirstOrder Logic ... 253 

−  ***8.4. Knowledge Engineering in FirstOrder Logic ... 260 

−  ***8.5. Summary ... 266 

−  **9. Inference in FirstOrder Logic ... 272 

−  ***9.1. Propositional vs. FirstOrder Inference ... 272 

−  ***9.2. Unification and Lifting ... 275 

−  ***9.3. Forward Chaining ... 280 

−  ***9.4. Backward Chaining ... 287 

−  ***9.5. Resolution ... 295 

−  ***9.6. Summary ... 310 

−  **10. Knowledge Representation ... 320 

−  ***10.1. Ontological Engineering ... 320 

−  ***10.2. Categories and Objects ... 322 

−  ***10.3. Actions, Situations, and Events ... 328 

−  ***10.4. Mental Events and Mental Objects ... 341 

−  ***10.5. The Internet Shopping World ... 344 

−  ***10.6. Reasoning Systems for Categories ... 349 

−  ***10.7. Reasoning with Default Information ... 354 

−  ***10.8. Truth Maintenance Systems ... 360 

−  ***10.9. Summary ... 362 

−  *Part IV: Planning 

−  **11. Planning ... 375 

−  ***11.1. The Planning Problem ... 375 

−  ***11.2. Planning with StateSpace Search ... 382 

−  ***11.3. PartialOrder Planning ... 387 

−  ***11.4. Planning Graphs ... 395 

−  ***11.5. Planning with Propositional Logic ... 402 

−  ***11.6. Analysis of Planning Approaches ... 407 

−  ***11.7. Summary ... 408 

−  **12. Planning and Acting in the Real World ... 417 

−  ***12.1. Time, Schedules, and Resources ... 417 

−  ***12.2. Hierarchical Task Network Planning ... 422 

−  ***12.3. Planning and Acting in Nondeterministic Domains ... 430 

−  ***12.4. Conditional Planning ... 433 

−  ***12.5. Execution Monitoring and Replanning ... 441 

−  ***12.6. Continuous Planning ... 445 

−  ***12.7. MultiAgent Planning ... 449 

−  ***12.8. Summary ... 454 

−  *Part V: Uncertain knowledge and reasoning 

−  **13. Uncertainty ... 462 

−  ***13.1. Acting under Uncertainty ... 462 

−  ***13.2. Basic Probability Notation ... 466 

−  ***13.3. The Axioms of Probability ... 471 

−  ***13.4. Inference Using Full Joint Distributions ... 475 

−  ***13.5. Independence ... 477 

−  ***13.6. Bayes' Rule and Its Use ... 479 

−  ***13.7. The Wumpus World Revisited ... 483 

−  ***13.8. Summary ... 486 

−  **14. Probabilistic Reasoning ... 492 

−  ***14.1. Representing Knowledge in an Uncertain Domain ... 492 

−  ***14.2. The Semantics of Bayesian Networks ... 495 

−  ***14.3. Efficient Representation of Conditional Distributions ... 500 

−  ***14.4. Exact Inference in Bayesian Networks ... 504 

−  ***14.5. Approximate Inference in Bayesian Networks ... 511 

−  ***14.6. Extending Probability to FirstOrder Representations ... 519 

−  ***14.7. Other Approaches to Uncertain Reasoning ... 523 

−  ***14.8. Summary ... 528 

−  **15. Probabilistic Reasoning over Time ... 537 

−  ***15.1. Time and Uncertainty ... 537 

−  ***15.2. Inference in Temporal Models ... 541 

−  ***15.3. Hidden Markov Models ... 549 

−  ***15.4. Kalman Filters ... 551 

−  ***15.5. Dynamic Bayesian Networks ... 559 

−  ***15.6. Speech Recognition ... 568 

−  ***15.7. Summary ... 578 

−  **16. Making Simple Decisions ... 584 

−  ***16.1. Combining Beliefs and Desires under Uncertainty ... 584 

−  ***16.2. The Basis of Utility Theory ... 586 

−  ***16.3. Utility Functions ... 589 

−  ***16.4. Multiattribute Utility Functions ... 593 

−  ***16.5. Decision Networks ... 597 

−  ***16.6. The Value of Information ... 600 

−  ***16.7. DecisionTheoretic Expert Systems ... 604 

−  ***16.8. Summary ... 607 

−  **17. Making Complex Decisions ... 613 

−  ***17.1. Sequential Decision Problems ... 613 

−  ***17.2. Value Iteration ... 618 

−  ***17.3. Policy Iteration ... 624 

−  ***17.4. Partially observable MDPs ... 625 

−  ***17.5. DecisionTheoretic Agents ... 629 

−  ***17.6. Decisions with Multiple Agents: Game Theory ... 631 

−  ***17.7. Mechanism Design ... 640 

−  ***17.8. Summary ... 643 

−  *Part VI: Learning 

−  **18. Learning from Observations ... 649 

−  ***18.1. Forms of Learning ... 649 

−  ***18.2. Inductive Learning ... 651 

−  ***18.3. Learning Decision Trees ... 653 

−  ***18.4. Ensemble Learning ... 664 

−  ***18.5. Why Learning Works: Computational Learning Theory ... 668 

−  ***18.6. Summary ... 673 

−  **19. Knowledge in Learning ... 678 

−  ***19.1. A Logical Formulation of Learning ... 678 

−  ***19.2. Knowledge in Learning ... 686 

−  ***19.3. ExplanationBased Learning ... 690 

−  ***19.4. Learning Using Relevance Information ... 694 

−  ***19.5. Inductive Logic Programming ... 697 

−  ***19.6. Summary ... 707 

−  **20. Statistical Learning Methods ... 712 

−  ***20.1. Statistical Learning ... 712 

−  ***20.2. Learning with Complete Data ... 716 

−  ***20.3. Learning with Hidden Variables: The EM Algorithm ... 724 

−  ***20.4. InstanceBased Learning ... 733 

−  ***20.5. Neural Networks ... 736 

−  ***20.6. Kernel Machines ... 749 

−  ***20.7. Case Study: Handwritten Digit Recognition ... 752 

−  ***20.8. Summary ... 754 

−  **21. Reinforcement Learning ... 763 

−  ***21.1. Introduction ... 763 

−  ***21.2. Passive Reinforcement Learning ... 765 

−  ***21.3. Active Reinforcement Learning ... 771 

−  ***21.4. Generalization in Reinforcement Learning ... 777 

−  ***21.5. Policy Search ... 781 

−  ***21.6. Summary ... 784 

−  *Part VII: Communicating, perceiving, and acting 

−  **22. Communication ... 790 

−  ***22.1. Communication as Action ... 790 

−  ***22.2. A Formal Grammar for a Fragment of English ... 795 

−  ***22.3. Syntactic Analysis (Parsing) ... 798 

−  ***22.4. Augmented Grammars ... 806 

−  ***22.5. Semantic Interpretation ... 810 

−  ***22.6. Ambiguity and Disambiguation ... 818 

−  ***22.7. Discourse Understanding ... 821 

−  ***22.8. Grammar Induction ... 824 

−  ***22.9. Summary ... 826 

−  **23. Probabilistic Language Processing ... 834 

−  ***23.1. Probabilistic Language Models ... 834 

−  ***23.2. Information Retrieval ... 840 

−  ***23.3. Information Extraction ... 848 

−  ***23.4. Machine Translation ... 850 

−  ***23.5. Summary ... 857 

−  **24. Perception ... 863 

−  ***24.1. Introduction ... 863 

−  ***24.2. Image Formation ... 865 

−  ***24.3. Early Image Processing Operations ... 869 

−  ***24.4. Extracting ThreeDimensional Information ... 873 

−  ***24.5. Object Recognition ... 885 

−  ***24.6. Using Vision for Manipulation and Navigation ... 892 

−  ***24.7. Summary ... 894 

−  **25. Robotics ... 901 

−  ***25.1. Introduction ... 901 

−  ***25.2. Robot Hardware ... 903 

−  ***25.3. Robotic Perception ... 907 

−  ***25.4. Planning to Move ... 916 

−  ***25.5. Planning uncertain movements ... 923 

−  ***25.6. Moving ... 926 

−  ***25.7. Robotic Software Architectures ... 932 

−  ***25.8. Application Domains ... 935 

−  ***25.9. Summary ... 938 

−  *Part VIII: Conclusions 

−  **26. Philosophical Foundations ... 947 

−  ***26.1. Weak AI: Can Machines Act Intelligently? ... 947 

−  ***26.2. Strong AI: Can Machines Really Think? ... 952 

−  ***26.3. The Ethics and Risks of Developing Artificial Intelligence ... 960 

−  ***26.4. Summary ... 964 

−  **27. AI: Present and Future ... 968 

−  ***27.1. Agent Components ... 968 

−  ***27.2. Agent Architectures ... 970 

−  ***27.3. Are We Going in the Right Direction? ... 972 

−  ***27.4. What if AI Does Succeed? ... 974 

−  *A. Mathematical background ... 977 

−  **A.1. Complexity Analysis and O() Notation ... 977 

−  **A.2. Vectors, Matrices, and Linear Algebra ... 979 

−  **A.3. Probability Distributions ... 981 

−  *B. Notes on Languages and Algorithms ... 984 

−  **B.1. Defining Languages with BackusNaur Form (BNF) ... 984 

−  **B.2. Describing Algorithms with Pseudocode ... 985 

−  **B.3. Online Help ... 985 

−  AI: A Modern Approach by Stuart Russell and Peter Norvig Modified: Dec 14, 2002 

+  * [http://hackage.haskell.org/packages/archive/pkglist.html#cat:ai Packages at Hackage, marked AI] 

+  * [https://patchtag.com/r/alpmestan/hasklab/wiki/ HaskLab Wiki] 

+  * [http://projects.haskell.org/cgibin/mailman/listinfo/hasklab The HaskLab mailinglist] 

+  * [http://projects.haskell.org/pipermail/hasklab/ The HaskLab Archives] (mailinglist archive) 

+  * [http://okmij.org/ftp/Haskell/#memooff Preventing memoization in (AI) search problems] 

+  * [http://jpmoresmau.blogspot.com/2010/09/digitrecognitionwithneuralnetwork.html Digit recognition with a neural network. First attempt!] (Blog article) 

+  * [http://jpmoresmau.blogspot.com/2010/09/haskellneuralnetworkpluggingspace.html Haskell Neural Network: plugging a space leak] (Blog article) 

+  * [http://www.ki.informatik.unifrankfurt.de/research/HCAR.html Further Reading] 

+  * [https://github.com/smichal/hslogic hslogic]; logic programming in Haskell (software on github) 
Latest revision as of 08:26, 1 December 2018
Contents
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.
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.
Yuriy Pitomets (netsu) <pitometsu at gmail>
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>
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>
Florian Grunert <fgrunert ätt uniosnabrueck dot de>
Chad Scherrer <chad (dot) scherrer (at) gmail> (Parallel learning algrorithms, L1 regularization, Bayesian inference)
Ant Al'Thor R. <ant (at) theixo (dot) com> (AI Interest & Business)
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!
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 (broken link)
 This was given to me by Alfonso Acosta (mentioned recently on haskellcafe)
 http://catenova.org/~awagner/GPLib (broken link)
 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:
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
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.
Current subpages
External links
 Packages at Hackage, marked AI
 HaskLab Wiki
 The HaskLab mailinglist
 The HaskLab Archives (mailinglist archive)
 Preventing memoization in (AI) search problems
 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)