The reasoning strategy used by STRIPS
is goal stack planning [13].
In goal stack planning, the problem
solver makes use of a goal
stackGS that contains both
subgoals and actions that have been
proposed to satisfy those subgoals,
and a database DB of logical
formulas describing the
current situation. The
algorithm of goal stack planning
can be summarized as follows.

Repeat the cycle below until the
goal stack is empty. Otherwise,
return -the plan
associated with the database
describing the current
situation- as a solution.

Replace the top subgoal of GS
by an appropriate action, and add its
precondition to the top of GS.

Until the top element of
GS is a subgoal that cannot be
proved from the formulas in DB,
do the following.

If the top element of GS
is a subgoal that can be proved
from the formulas in DB, pop it
from GS.

If the top element of GS
is an action, pop it from GS,
apply it to DB, and append it to
the end of .

If , check
whether the formulas in the stack
describing the goal configuration
can be proved from DB. Add to GS
the formulas that could not be proved
from DB.