optimization problems and algorithms