SimpleAI: Artificial Intelligence with Python(simpleai.readthedocs.org) |
SimpleAI: Artificial Intelligence with Python(simpleai.readthedocs.org) |
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?May be we can think of a better example, will try :)
This one just worked. This is the Python way.