7 comments

[ 3.3 ms ] story [ 24.6 ms ] thread
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.

This one just worked. This is the Python way.

Have you tried active python? Pypm install has many libraries compiled for windows.
I totally forgot about it. You are right, I might give some of the more hardcore ones after I'm done playing with this one. Thanks!
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?
It's just illustrative, to understand how you give the information needed to run one of the algorithms.

May be we can think of a better example, will try :)

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.