示例#1
0
文件: agent.py 项目: ikarpov/strips
 def start(self, time, observations):
     """
     return first action given the first observations
     """
     def planner(viewer):
         solve(INIT, GOAL, ACTIONS, viewer=viewer)
     from strips2_show import demo_planner
     plan = demo_planner(planner)
     if plan is not None:
         print_plan(plan)
     return 0
示例#2
0
文件: strips.py 项目: ikarpov/strips
def main():
    w = create_world(None)

    def planner(v):
        global viewer
        viewer = v
        # Did someone start us at the goal?
        already_solved = w.goal_reached()
        print "Goal already solved? {0}".format(already_solved)

        if not already_solved:
            print "Solving..."
            solution = linear_solver(w)
            if solution is None:
                print "No solution found :("
            else:
                print "Solved!"
                print_plan(solution)

    from strips2_show import demo_planner

    demo_planner(planner)
示例#3
0
文件: strips2.py 项目: ikarpov/strips
            viewer.show_state(state, DEPTH-depth, plan)
        # try all actions with all parameters
        # WARNING: this could get big quickly!
        for (do, undo) in actions:
            for Disk in DISKS:
                for Source in set(LITERALS) - set([Disk]):
                    for Dest in set(LITERALS) - set([Disk, Source]):
                        action = (do, Disk, Source, Dest)
                        if do(state, Disk, Source, Dest):
                            new_state = frozenset(state)
                            # yield all of the states and plans encountered below us
                            sln = solve(new_state, goal, actions, depth = depth - 1, plan = plan + [action], viewer=viewer)
                            if sln is not None:
                                return sln
                            else:
                                # undo the action if it didn't work (backtrack)
                                undo(state, Disk, Source, Dest)
        return None

def print_plan(plan):
    for action in plan:
        print "%s(%s)" % (action[0].__name__, ', '.join(action[1:]))

if __name__ == "__main__":
    def planner(viewer):
        solve(INIT, GOAL, ACTIONS, viewer=viewer)
    from strips2_show import demo_planner
    plan = demo_planner(planner)
    if plan is not None:
        print_plan(plan)