Como otros ya han mencionado, es difícil resolver este problema en general. Aquí hay un enfoque codicioso. Sea [math] x_i ^ t [/ math] el valor de las variables de decisión [math] x_i [/ math] en iteración [math] t [/ math]. En iterar [math] t [/ math], genere un entero aleatorio [math] 1 \ leq k_t \ leq n [/ math], establezca [math] x_ {k_t} [/ math] para ser [math] \ arg \ min_ {x_ {k_t} \ en S} f [/ math], es decir, arregle cualquier otra coordenada de su variable de decisión y simplemente elija [math] x_ {k_t} [/ math]. Ahora actualice [math] S \ leftarrow S \ backslash S – \ {\ arg \ min_ {x_ {k_t} \ in S} f \} [/ math]. Repita este proceso para [math] n [/ math] iteraciones. Por supuesto, esto no nos da ninguna garantía en general.
Entonces, lo que más puede hacer ahora es repetir todo este algoritmo muchas veces y anotar el valor de [math] f [/ math] después de las iteraciones [math] n [/ math]. Si no le gusta la aleatoriedad en cada paso, puede elegir una pernutación aleatoria antes de comenzar su algoritmo y actualizar la coordenada en consecuencia.