Dynamic programming (DP) is an effective method for solving multi-stage decision-making problems and has been extensively applied to the optimization of reservoir operations. However, the method is limited by the dimensionality problem; hence, it cannot be directly applied to optimizing the operations of a reservoir system with more than three reservoirs at current computing power. The progressive optimality algorithm (POA) is a classic variant of DP and has been widely used for optimizing multi-reservoir operations. Despite the use of a static variable decoupling strategy to ease DP's dimensionality problem, the POA's performance is reduced by an inherent drawback of the blind search of the static variable decoupling strategy and the dimensionality problem in two-stage solutions. To enhance the POA's performance, we propose an improved version of the POA known as the dipole optimization procedure (DOP) for optimizing cascade reservoir operations. In the improved algorithm, we use a dynamic variable decoupling strategy to obtain search directions that are more targeted than those of the POA so as to improve the quality of the solutions. The dynamic decoupling of variables was achieved by constructing and solving a dipole optimization problem using a DP model developed in this study. Moreover, a perturbation mechanism was introduced to address the POA's dimensionality problem so that the algorithm can be extended to larger reservoir systems. The results of the simulation of a hypothetical four-reservoir system and a real-world cascade reservoir system showed the superiority of the DOP over the POA and other five available alternatives. The comparison was based on the quality of solutions and solving efficiency. The results indicate that the DOP is rational and feasible and has the potential to be applied to optimizing the operation of large-scale multi-reservoir systems with numerous reservoirs.