Coder Social home page Coder Social logo

aimacode / aima-java Goto Github PK

View Code? Open in Web Editor NEW
1.5K 139.0 789.0 685.56 MB

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

License: MIT License

Java 86.39% Jupyter Notebook 13.60% Python 0.01%

aima-java's Introduction

AIMA3e-Java (JDK 8+) Build Status Binder

Java implementation of algorithms from Russell and Norvig's Artificial Intelligence - A Modern Approach 3rd Edition. You can use this in conjunction with a course on AI, or for study on your own. We're looking for solid contributors to help.

Getting Started Links

Index of Implemented Algorithms

Figure Page Name (in 3rd edition) Code
2 34 Environment Environment
2.1 35 Agent Agent
2.3 36 Table-Driven-Vacuum-Agent TableDrivenVacuumAgent
2.7 47 Table-Driven-Agent TableDrivenAgentProgram
2.8 48 Reflex-Vacuum-Agent ReflexVacuumAgent
2.10 49 Simple-Reflex-Agent SimpleReflexAgentProgram
2.12 51 Model-Based-Reflex-Agent ModelBasedReflexAgentProgram
3 66 Problem Problem
3.1 67 Simple-Problem-Solving-Agent SimpleProblemSolvingAgent
3.2 68 Romania SimplifiedRoadMapOfRomania
3.7 77 Tree-Search TreeSearch
3.7 77 Graph-Search GraphSearch
3.10 79 Node Node
3.11 82 Breadth-First-Search BreadthFirstSearch
3.14 84 Uniform-Cost-Search UniformCostSearch
3 85 Depth-first Search DepthFirstSearch
3.17 88 Depth-Limited-Search DepthLimitedSearch
3.18 89 Iterative-Deepening-Search IterativeDeepeningSearch
3 90 Bidirectional search BidirectionalSearch
3 92 Best-First search BestFirstSearch
3 92 Greedy best-First search GreedyBestFirstSearch
3 93 A* Search AStarSearch
3.26 99 Recursive-Best-First-Search RecursiveBestFirstSearch
4.2 122 Hill-Climbing HillClimbingSearch
4.5 126 Simulated-Annealing SimulatedAnnealingSearch
4.8 129 Genetic-Algorithm GeneticAlgorithm
4.11 136 And-Or-Graph-Search AndOrSearch
4 147 Online search problem OnlineSearchProblem
4.21 150 Online-DFS-Agent OnlineDFSAgent
4.24 152 LRTA*-Agent LRTAStarAgent
5.3 166 Minimax-Decision MinimaxSearch
5.7 170 Alpha-Beta-Search AlphaBetaSearch
6 202 CSP CSP
6.1 204 Map CSP MapCSP
6.3 209 AC-3 AC3Strategy
6.5 215 Backtracking-Search AbstractBacktrackingSolver
6.8 221 Min-Conflicts MinConflictsSolver
6.11 224 Tree-CSP-Solver TreeCspSolver
7 235 Knowledge Base KnowledgeBase
7.1 236 KB-Agent KBAgent
7.7 244 Propositional-Logic-Sentence Sentence
7.10 248 TT-Entails TTEntails
7 253 Convert-to-CNF ConvertToCNF
7.12 255 PL-Resolution PLResolution
7.15 258 PL-FC-Entails? PLFCEntails
7.17 261 DPLL-Satisfiable? DPLLSatisfiable
7.18 263 WalkSAT WalkSAT
7.20 270 Hybrid-Wumpus-Agent HybridWumpusAgent
7.22 272 SATPlan SATPlan
9 323 Subst SubstVisitor
9.1 328 Unify Unifier
9.3 332 FOL-FC-Ask FOLFCAsk
9.6 338 FOL-BC-Ask FOLBCAsk
9 345 CNF CNFConverter
9 347 Resolution FOLTFMResolution
9 354 Demodulation Demodulation
9 354 Paramodulation Paramodulation
9 345 Subsumption SubsumptionElimination
10.9 383 Graphplan GraphPlan
11.5 409 Hierarchical-Search HierarchicalSearchAlgorithm
11.8 414 Angelic-Search ---
13.1 484 DT-Agent DT-Agent
13 484 Probability-Model ProbabilityModel
13 487 Probability-Distribution ProbabilityDistribution
13 490 Full-Joint-Distribution FullJointDistributionModel
14 510 Bayesian Network BayesianNetwork
14.9 525 Enumeration-Ask EnumerationAsk
14.11 528 Elimination-Ask EliminationAsk
14.13 531 Prior-Sample PriorSample
14.14 533 Rejection-Sampling RejectionSampling
14.15 534 Likelihood-Weighting LikelihoodWeighting
14.16 537 GIBBS-Ask GibbsAsk
15.4 576 Forward-Backward ForwardBackward
15 578 Hidden Markov Model HiddenMarkovModel
15.6 580 Fixed-Lag-Smoothing FixedLagSmoothing
15 590 Dynamic Bayesian Network DynamicBayesianNetwork
15.17 598 Particle-Filtering ParticleFiltering
16.9 632 Information-Gathering-Agent InformationGatheringAgent
17 647 Markov Decision Process MarkovDecisionProcess
17.4 653 Value-Iteration ValueIteration
17.7 657 Policy-Iteration PolicyIteration
17.9 663 POMDP-Value-Iteration POMDPValueIteration
18.5 702 Decision-Tree-Learning DecisionTreeLearner
18.8 710 Cross-Validation-Wrapper CrossValidation
18.11 717 Decision-List-Learning DecisionListLearner
18.24 734 Back-Prop-Learning BackPropLearning
18.34 751 AdaBoost AdaBoostLearner
19.2 771 Current-Best-Learning CurrentBestLearning
19.3 773 Version-Space-Learning VersionSpaceLearning
19.8 786 Minimal-Consistent-Det MinimalConsistentDet
19.12 793 FOIL FOIL
21.2 834 Passive-ADP-Agent PassiveADPAgent
21.4 837 Passive-TD-Agent PassiveTDAgent
21.8 844 Q-Learning-Agent QLearningAgent
22.1 871 HITS HITS
23.5 894 CYK-Parse CYK
25.9 982 Monte-Carlo-Localization MonteCarloLocalization

Index of implemented notebooks

Chapter No Name Status (in 3rd edition) Status (in 4th edition)
3 Solving Problems by Searching In Progress Not started
6 Constraint Satisfaction Problems In Progress ---
12 Knowledge Representation Done ---
13 Quantifying Uncertainty Done ---
14 Probabilistic Reasoning In Progress ---

Before starting to work on a new notebook:

  1. Open a new issue with the following heading: **Notebook: Chapter Name - Version **. Check that the issue is not assigned to anyone.
  2. Mention a topics list of what you will be implementing in the notebook for that particular chapter. You can iteratively refine the list once you start working.
  3. Start a discussion on what can go in that particular notebook.

"---" indicates algorithms yet to be implemented.

Index of data structures

Here is a table of the data structures yet to be implemented.

Fig Page Name (in book) Code
9.8 341 Append ---
10.1 369 AIR-CARGO-TRANSPORT-PROBLEM ---
10.2 370 SPARE-TIRE-PROBLEM ---
10.3 371 BLOCKS-WORLD ---
10.7 380 HAVE-CAKE-AND-EAT-CAKE-TOO-PROBLEM ---
11.1 402 JOB-SHOP-SCHEDULING-PROBLEM ---
11.4 407 REFINEMENT-HIGH-LEVEL-ACTIONS ---
23.6 895 SENTENCE-TREE ---
29.1 1062 POWERS-OF-2 ---

aima-java's People

Contributors

adityaa30 avatar ajsaraujo avatar anurag-rai avatar ctjoreilly avatar damnoblivious avatar dependabot[bot] avatar iamabhishektiwari avatar j129008 avatar jaedukseo avatar janphkre avatar jsuyash1514 avatar kmayankkr avatar litterbear avatar manthan-r-sheth avatar manuel-delverme avatar medeah avatar mrflow avatar ngrj93 avatar norvig avatar nullplayer avatar ritwik12 avatar rohanbh avatar ruedigerlunde avatar samagra14 avatar sebkur avatar utsavoza avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aima-java's Issues

Errors related to JUnit seen after initial project import

What steps will reproduce the problem?
1. Download the eclipse project.
2. Import into workspace.
3. Allow it to finish building.

What is the expected output? What do you see instead?

The Eclipse project should build correctly when first imported. It does not
build correctly because of a dependency on the following jar in the
.classpath file:

    <classpathentry kind="lib"
path="/home/ravi/projects/java/javalibs/junit3.8.2/junit.jar"/>

This entry should be replaced by the following entry:

    <classpathentry kind="con"
path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3.8.1"/>

assuming that the JUnit tests are compatible with 3.8.1. This will
eliminate the errors initially seen after import.

What version of the product are you using? On what operating system?

Latest version, Windows, Eclipse 3.2



Original issue reported on code.google.com by [email protected] on 25 Jun 2007 at 1:10

DPLL algo not working for 3 literals within the alternative clause

What steps will reproduce the problem?
1. use default test in dpll demo
2. extend any of the alternatives by one more literal
3. watch how everything turns into dust :D

What is the expected output? What do you see instead?
well it should work, instead "Exception in thread "main"
java.lang.RuntimeException: Syntax error detected at match. Expected ) but
got OR" in main and all parsers.

What version of the product are you using? On what operating system?
win xp under fresh install of java sdk but checked it on other sdk versions.

Please provide any additional information below.
any idea when it shall work? thx in advance for your help.

Original issue reported on code.google.com by [email protected] on 2 Jan 2008 at 7:56

Setup Ant build.xml files for each project

Currently thrree projects exist:

aima-core
aima-gui
aima-all

Ant build.xml files need to be setup to build and manage the project 
interdependencies. aima-all is the top project intended for developers and 
will be the one for pulling all other aima projects together and releasing 
as a cohesive set of jars and zip files.


Original issue reported on code.google.com by [email protected] on 22 Oct 2009 at 3:27

SearchUtils, it would be nice to see the states as well as the actions

Comment by russ.abbott, posted to ReadMe Wiki 10/10/09:

In Search, it would be nice to see the states as well as the actions. 

That can be done easily enough by modifying 

aima.search.framework.searchUtils.actionsFromNodes() to be as follows. 

  public static List<String> actionsFromNodes(List<Node> nodeList) {   
     List<String> actionList = new ArrayList?<String>();   
     for (Node node: nodeList) {     
         actionList.add(node.getAction() + " ==>\n" + node.getState());  
     }   
     return actionList; 
  }

Original issue reported on code.google.com by [email protected] on 12 Oct 2009 at 2:18

HillClimbing does not work

What steps will reproduce the problem?

 Just run the N-queens demo.

What is the expected output? What do you see instead?

 Some search steps, it does nothing.

What version of the product are you using? On what operating system?

 Doesn't matter.

Please provide any additional information below.

 When you changed the heuristic functions from int to double you didn't
notice that the meaning of Integer.MIN_VALUE and Double.MIN_VALUE are not
the same. In order to HillClimbing algoritm to work you have to use
Double.NEGATIVE_INFINITY instead.


Original issue reported on code.google.com by [email protected] on 2 Jul 2009 at 8:38

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.