Very interesting, but the code example used in the documentation is pretty poor:<p><pre><code> from simpleai.search import SearchProblem, astar
GOAL = 'HELLO WORLD'
class HelloProblem(SearchProblem):
def actions(self, state):
if len(state) < len(GOAL):
return list(' ABCDEFGHIJKLMNOPQRSTUVWXYZ')
else:
return []
def result(self, state, action):
return state + action
def is_goal(self, state):
return state == GOAL
def heuristic(self, state):
# how far are we from the goal?
wrong = sum([1 if state[i] != GOAL[i] else 0
for i in range(len(state))])
missing = len(GOAL) - len(state)
return wrong + missing
</code></pre>
Among other things, why create a class and hardcode the GOAL as a constant?
This is awesome. I really want to play with some AI lib and all of the ones I tried have way too many problems compiling on Windows. pip install them fails too. I don't want to spend time compiling libraries.<p>This one just worked. This is the Python way.