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.
Very interesting, but the code example used in the documentation is pretty poor:
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
Among other things, why create a class and hardcode the GOAL as a constant?
besides, not always you want to find the goal state. Many problems are about findig the path of actions from the initial state to the goal state, both known.
7 comments
[ 3.3 ms ] story [ 24.6 ms ] threadThis one just worked. This is the Python way.
May be we can think of a better example, will try :)