Safe reinforcement learning (RL) aims to solve an optimal control problem
under safety constraints. Existing direct safe RL methods use the
original constraint throughout the learning process. They either lack
theoretical guarantees of the policy during iteration or suffer from
infeasibility problems. To address this issue, we propose an
indirect safe RL method called feasible policy iteration (FPI) that
iteratively uses the feasible region of the last policy to constrain the
current policy. The feasible region is represented by a feasibility function
called constraint decay function (CDF). The core of FPI is a region-wise policy
update rule called feasible policy improvement, which maximizes the return
under the constraint of the CDF inside the feasible region and minimizes the
CDF outside the feasible region. This update rule is always feasible and
ensures that the feasible region monotonically expands and the state-value
function monotonically increases inside the feasible region. Using the feasible
Bellman equation, we prove that FPI converges to the maximum feasible region
and the optimal state-value function. Experiments on classic control tasks and
Safety Gym show that our algorithms achieve lower constraint violations and
comparable or higher performance than the baselines