aimacode / aima-java

Java implementation of algorithms from Russell And Norvig's "Artificial Intelligence - A Modern Approach"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Miles to go : GSoC 2018

samagra14 opened this issue · comments

This issue highlights the work that can be done in the future. For the final report of my GSoC project, see this post.

  • There is tremendous scope of work in the project. The notebook section is completely new. Only a few chapters have been implemented in the form of notebooks. The general approach to any notebook is as follows:
    • Explain briefly the ideas from the book.
    • Explain the API by implementing the interfaces for some custom approach to the explained ideas. For eg: extend the Problem class to implement some custom problem.
    • Solve the same problem using already implemented APIs from the code and compare the merits of using the APIs from the repository if such APIs exist.
    • Apply algorithms on various problems related to the domain.
    • There are a few sections from the book( for eg: Dimensionality Reduction or Ontological Engineering) where the authors have explained the concept without providing a formal algorithm. Such topics must be covered in the notebooks.
  • The parser used for First Order Logic does not recognise natural numbers as well as binary operators. This parser must be extended to recognise them. One way to do this is to include Peano's axioms as default axioms to the FOL inference procedures and then derive the entire number system from them. This technique however will render many problems intractable. Another way is to use a java High Order Logic kernel. This is necessary for solving some problems that involve measurements along with logic.
  • The APIs for probabilistic inference do not support Continous Random Variables. Their support must be added.
  • Along with continuous RVs, some popular probabilistic distributtions such as the normal distribution must be added. Geometric random variables, poisson random variables and binomial random variables will also be a great addition.
  • At present, the learning algorithms are not parameterised. These algorithms can be parameterised so as to use the cross validation wrapper.
  • Inspired by Dr Norvig's pytudes, we can include notebooks exploring popular problems from computer science(for eg: The Traveling salesman problem).

@norvig Please have a look at these future goals and suggest any possible additions.

I Would like to work on notebooks, especially dimensionality reduction problems.
You also mentioned about including problems from computer science, What problems do we plan to add? Since most of the problems related to AI have already been covered in the book and hence implemented so far.