Currently, the value of rho cannot change online. There is no current intent of changing this, since it would require recomputing many of the matrices of the problems (although it may become a possibility in the distant future).
However, something that could be added to improve the performance of the algorithm is to allow for the use of two values of rho: a large initial value, so that the algorithm converges quickly to a proximity of the optimal solution (for a given tolerance), an then a small value, so that it converges quickly to a very close point to the optimal solution (for another given tolerance).
This could be very useful because, in general, we find that the algorithm converges very quickly for reasonably large values of the penalty parameter to relatively large tolerances (1e-3 or so) if the initial point is far away from the optimal solution. However, it then takes a long time to converge to smaller tolerances (1e-5, for instance). In contrast, a small penalty parameter converges slowly to the optimal solution if the initial point is very far away, but very quickly if it is very close.
The approach proposed here would require defining two sets of variables: one for the initial penalty parameter and one for the "refinement" penalty parameter. Then, pointers would have to be used to refer to each of these sets of variables.
Currently, the value of rho cannot change online. There is no current intent of changing this, since it would require recomputing many of the matrices of the problems (although it may become a possibility in the distant future).
However, something that could be added to improve the performance of the algorithm is to allow for the use of two values of rho: a large initial value, so that the algorithm converges quickly to a proximity of the optimal solution (for a given tolerance), an then a small value, so that it converges quickly to a very close point to the optimal solution (for another given tolerance).
This could be very useful because, in general, we find that the algorithm converges very quickly for reasonably large values of the penalty parameter to relatively large tolerances (1e-3 or so) if the initial point is far away from the optimal solution. However, it then takes a long time to converge to smaller tolerances (1e-5, for instance). In contrast, a small penalty parameter converges slowly to the optimal solution if the initial point is very far away, but very quickly if it is very close.
The approach proposed here would require defining two sets of variables: one for the initial penalty parameter and one for the "refinement" penalty parameter. Then, pointers would have to be used to refer to each of these sets of variables.