Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

need help or tips to do this LISP assignmet

Artificial Intelligence: Logical Planner
Problem Statement:
It is required to develop a logical planner that can be given an initial state and a final state of a set of blocks, it can generate a plan to reach the final state from the initial state. For example:
Given the following initial state and goal state of the blocks world:
EXAMPLE : (CHECK ATTACHMENT)
Initial Goal
Your program should generate this plan: unstack(a, b), putdown(a), pickup(b), stack(b, a), pickup(c),
stack(c, b)
Where pickup and putdown handle picking and putting from and on the table whereas stack and unstack
handle stacked blocks. You can assume that the movement of the robot arm is implicit in the above
four operations, i.e when the operator unsatck(a, b) is given, the arm moves to the location of a
implicitly.
Problem Analysis:
You can describe the initial state and goal state using the predicates on(X,Y), clear(X), holding(X),
ontable(X). holding(X) means that a block X is being gripped by the Robot arm and handempty means
that the arm is empty. A state can be described as a list of predicates, e.g. a state can be
described as:
[handempty, ontable(b), on(a, b), ontable(c)]
The four operators can be defined using precondition and effect of the operations e.g. the unstack
operator can be represented as follows:
move(unstack(X,Y),[handempty,clear(X),on(X,Y)],
[del(handempty),del(clear(X)),del(on(X,Y)),
add(clear(Y)),add(holding(X))]).
The logical planner will perform the following functions:
1. Test if the current state is the goal state
2. If not, it will generate a move, test if the preconditions are satisfied, change the current
state, test if the changed state already generated, if not it will consider the changed state
as the current state, memorize it together with the move, and go to step 1.
3. If the changed sate is already generated, generate other possible moves, if it is not possible
to generate other moves, print out a message that the system could not generate a plan.
Sign In or Register to comment.