An optimization framework for opportunistic planning of preventive maintenance activities. (November 2021)