You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The latest (and ever evolving) code can be found at http://code.google.com/p/aima-java/. if you notice a bug please try checking out the latest version from the svn repository to see if it persists.
7
7
8
-
Current release is 0.94:<br>
8
+
Current release is 0.95:<br>
9
+
This is our first release containing GUIs (thanks to Ruediger Lunde):<br>
10
+
- aima.gui.applications.VacuumAppDemo<br>
11
+
Provides a demo of the different agents described in Chapter 2 and 3
Provides a demo of the different agents/search algorithms described
15
+
in Chapters 3 and 4, for tackling route planning tasks within
16
+
simplified Map environments.<br>
17
+
- aima.gui.framework.SimpleAgentAppDemo<br>
18
+
Provides a basic example of how to create your own Agent based
19
+
demonstrations based on the provided framework.<br>
20
+
<br>
21
+
This will also be our last full release based on the 2nd edition of AIMA.
22
+
We are currently in the planning phases to re-organize this project based on the 3rd edition of AIMA, which should be available soon.
23
+
24
+
Previous release is 0.94:<br>
9
25
This is a patch release for the FOL Logic and includes the following fixes:<br>
10
26
- Fixed subtle defect in Model Elimination inference algorithm, which caused it to miss portions of the search space.<br>
11
27
- Improved the performance of both theorem provers, in particular added support for forward and backward subsumption elimination, which improves significantly the performance and use of the OTTER Like theorem prover.<br>
@@ -16,7 +32,7 @@ It includes:<br>
16
32
- a completion of the First Order Logic concepts from Chapter 9.<br>
17
33
- the addition of the LRTA Agent from Chapter 4.<br>
18
34
19
-
Note: If running the unite tests be sure to include the vm arguments:
35
+
Note: If running the unit tests be sure to include the vm arguments:
20
36
-Xms256m -Xmx1024m
21
37
as some of the First Order Logic algorithms (i.e. FOLTFMResolution) are
22
38
memory hungry.
@@ -29,38 +45,23 @@ It includes a rewrite of the neural network algorithms (in the earlier version t
29
45
Heuristics are now doubles (vs ints in the old version).
30
46
One minor change is that I've dropped the make file. Please use [http://ant.apache.org/ant ant]
31
47
32
-
==bug reports - acknowledgment ==
33
-
34
-
The following people sent in excellent comments and bug reports. Thank you!!!!
35
-
* Ali Tozan
36
-
37
-
* Carl Anderson, Senior Scientist, ArchimedesModel.com
38
-
39
-
* Don Cochrane from (?) University
40
-
41
-
* Mike Angelotti from Miami University
42
-
43
-
* Chad Carff ,University of Western Florida . EXCELLENT test cases . thank you .
44
-
45
-
* Dr .Eman El-Sheikh, Ph.D.,University of Western Florida
46
-
47
-
* Ravindra Guravannavar, Aztec Software,Bangalore
48
-
49
-
* Cameron Jenkins,University Of New Orleans
50
-
51
-
* Nils Knoblauch (Project Manager, Camline) - winner of the No Prize for the best bug report ! Thanks!
52
-
53
-
* Phil Snowberger, Artificial Intelligence and Robotics Laboratory,University of Notre Dame
54
-
55
-
48
+
==Bug Reports - acknowledgment ==
56
49
50
+
The following people sent in excellent comments and bug reports. Thank you!!!!<br>
51
+
* Ali Tozan<br>
52
+
* Carl Anderson, Senior Scientist, ArchimedesModel.com<br>
53
+
* Don Cochrane from (?) University<br>
54
+
* Mike Angelotti from Miami University<br>
55
+
* Chad Carff ,University of Western Florida . EXCELLENT test cases . thank you.<br>
56
+
* Dr .Eman El-Sheikh, Ph.D.,University of Western Florida<br>
* Nils Knoblauch (Project Manager, Camline) - winner of the No Prize for the best bug report ! Thanks!<br>
60
+
* Phil Snowberger, Artificial Intelligence and Robotics Laboratory,University of Notre Dame<br>
57
61
58
62
= Details =
59
63
60
-
61
-
62
64
==Build Instructions==
63
-
64
65
If you just want to use the classes, all you need to do is put the aima-java/build directory on your CLASSPATH.
65
66
66
67
if you want to rebuild from source, run the unit tests etc follow the instructions below.
@@ -78,26 +79,22 @@ To build from the command line,
78
79
# put [http://prdownloads.sourceforge.net/junit/junit3.8.1.zip?download junit 3.8.1 (note the version number)] on the classpath
79
80
# type 'ant'
80
81
81
-
82
82
I have included the eclipse.classpath and .projectfiles for those who use [http://www.eclipse.org eclipse] .
83
83
84
84
==Code Navigation==
85
85
# To understand how a particular feature works , FIRST look at the demo files.There are four main demo files SearchDemo , LogicDemo ,ProbabilityDemo and LearningDemo.
86
86
# If the Demo Files don't exist yet , look at the unit tests . they often cover much of how a particular feature works .
87
87
# If all else fails , write to me . Comprehensive documentation, both java doc and otherwise are in the pipeline , but will probably have to wait till I finish the code .
88
88
89
-
90
89
==Notes on Search==
91
90
92
-
93
91
To solve a problem with (non CSP )Search .
94
92
# you need to write four classes .
95
93
# a class that represents the Problem state .This class is independent of the framework and does NOT need to subclass anything . Let us, for the rest of these instruction, assume you are going to solve the NQueens problem . So in this step you need to write something like aima.search.nqueens.NQueensBoard .
96
94
# a subclass of aima.search.framework.GoalTest.This implements only a single function ---boolean isGoalState(Object state); The parameter state is an instance of the class you created in step 1-a above. For the NQueensProblem you would need to write something like aima.search.nqueens.NqueensBoardTest
97
95
# a subclass of aima.search.framework.SuccessorFunction .This generates a stream of Successors where a Successor is an object that represents an (action, resultantState) pair. In this release of the code the action is a String (something like "placeQueenAt4,4" and the resultant State is an instance of the class you create in step 1.a . An example is aima.search.nqueens.NQueensSuccessorFunction.
98
96
# If you need to do an informed search, you should create a fourth class which subclasses aima.search.framework.HeuristicFunction. This implements a single function int getHeuristicValue(Object state); keep in mind that the heuristic should DECREASE as the goal state comes nearer . For the NQueens problem, you need to write something like aima.search.nqueens.QueensToBePlacedHeuristic.
99
97
100
-
101
98
that is all you need to do (unless you plan to write a different search than is available in the code base ).
102
99
103
100
To actually search you need to
@@ -126,6 +123,7 @@ A good example (from the NQueens Demo ) is
126
123
}
127
124
}
128
125
}}}
126
+
129
127
==Search Inheritance Trees ==
130
128
131
129
there are two inheritance trees in Search. one deals with "mechanism" of search.
@@ -148,8 +146,6 @@ The second tree deals with the search instances you can use to solve a problem.
148
146
149
147
etc
150
148
151
-
152
-
153
149
So if you see a declaration like
154
150
"SimulatedAnnealingSearch extends NodeExpander implements Search" , do not be confused.
155
151
@@ -162,8 +158,6 @@ Again, if you get confused, look at the demos.
162
158
163
159
164
160
==Logic Notes==
165
-
166
-
167
161
The ONE thing you need to watch out for is that the Parsers are VERY finicky . If you get a lexing or parsing error, there is a high probability there is an error in your logic string.
168
162
169
163
To use First Order Logic, first you need to create a subclass of aima.logic.fol.FOLDomain which collects the constants, predicates, functions etc that you use to solve a particular problem.
@@ -181,8 +175,6 @@ Except elimination-ask, the rest of the algorithms from chapter 13 and 14 have b
181
175
==LearningNotes==
182
176
183
177
===Main Classes and responsibilities===
184
-
185
-
186
178
A <DataSet> is a collection of <Example>s .Wherever you see "examples" in plural in the text , the code uses a DataSet . This makes it easy to aggregate operations that work on collections of examples in one place.
187
179
188
180
An Example is a collection of Attributes. Each example is a data point for Supervised Learning .
0 commit comments