Los problemas generales del tipo que das son difíciles NP. Sin embargo, las clases estructuradas pueden resolverse. Aquí hay un argumento que muestra la dureza en general:
Consideremos el programa entero (difícil) de encontrar un vector $x \in \mathbb{R}^n$ para satisfacer las siguientes restricciones:
\begin{align} &Ax \leq b \\ &\sum_{i=1}^n x_i = k\\ &x_i \in \{0, 1\} \quad, \forall i \in \{1, ..., n\} \end{align}
Supongamos que el programa entero es factible (por lo que existe una solución entera que satisface las restricciones). Definamos a nuevo (no enteros) del tipo general que planteas, y luego mostrar que podría utilizarse para resolver el problema anterior (difícil). El nuevo problema es:
\begin{align} \mbox{Minimize:} \quad & \sum_{i=1}^n \frac{x_i}{1+x_i} \\ \mbox{Subject to:} \quad & A x\leq b\\ &\sum_{i=1}^n x_i = k \\ &x_i \in [0,1] \quad , \forall i \in \{1, ..., n\} \end{align}
Afirmación: Si el programa entero es factible, entonces el nuevo problema también es factible y su solución satisface las restricciones del programa entero.
Prueba de ello: Sea $y^*$ sea una solución al problema entero. Entonces $y_i^* \in \{0,1\}$ y $\sum_{i=1}^n y_i^*=k$ . Obsérvese que la función $x/(1+x)$ satisface $$ (Fact 1): \quad \frac{x}{1+x} \geq \frac{x}{2} \quad , \forall x \in [0,1], \mbox{with equality iff $ x en {0,1\} $} $$ Por lo tanto, $$ \sum_{i=1}^n \frac{y_i^*}{1+y_i^*} = \sum_{i=1}^n \frac{y_i^*}{2} = k/2 $$ Observe que $y^*$ satisface las restricciones del nuevo problema y alcanza un valor objetivo de $k/2$ . Por lo tanto, el nuevo problema es factible, y su óptimo valor objetivo es menor o igual a $k/2$ .
Ahora dejemos que $x^*$ sea una solución óptima para el nuevo problema. Basta con demostrar $x^*$ es un vector binario. Como el valor objetivo óptimo no es más que $k/2$ tenemos: $$ \sum_{i=1}^n \frac{x_i^*}{1+x_i^*} \leq k/2 $$ Por otro lado: $$ k/2 \geq \sum_{i=1}^n \frac{x_i^*}{1+x_i^*} \overset{(a)}{\geq} \sum_{i=1}^n \frac{x_i^*}{2} \overset{(b)}{=} k/2 $$ donde (a) se cumple por el Hecho 1 y (b) se cumple porque $x^*$ satisface la restricción $\sum_{i=1}^n x_i^*=k$ . De ello se desprende que $$ \sum_{i=1}^n\frac{x_i^*}{1+x_i^*} = \sum_{i=1}^n \frac{x_i^*}{2}$$ Pero para cada $i \in \{1, ..., n\}$ sabemos por el hecho 1 que $$\frac{x_i^*}{2} \geq \frac{x_i^*}{1+x_i^*}$$
Así que la igualdad debe mantenerse en cada término $i$ Es decir, $\frac{x_i^*}{2} = \frac{x_i^*}{1+x_i^*}$ , lo que implica $x_i^* \in \{0,1\}$ por el hecho 1. $\Box$
Las "clases estructuradas" de problemas que he mencionado anteriormente son generalizaciones de los problemas fraccionarios lineales en los que los términos del denominador pueden agruparse sobre variables separadas, como \begin{align} \mbox{Minimize:} \quad & \sum_{i=1}^G \frac{g_i(x)}{T_i(x)} \\ \mbox{Subject to:} \quad & \sum_{i=1}^G \frac{h_{i,k}(x)}{T_i(x)} \leq c_k, \quad \forall k \in \{1, ..., K\} \\ \end{align} donde $G$ es el número de grupos, y donde para cada grupo $i \in \{1, ..,G\}$ las funciones $g_i(x)$ y $T_i(x)$ , $h_{i,k}(x)$ son funciones de un conjunto disjunto de componentes del $x$ vectorial. Por ejemplo, el grupo 1 sólo utiliza los componentes $x_1, x_2$ . El Grupo 2 utiliza componentes $x_3, x_4$ y así sucesivamente. He hecho algunos trabajos en escenarios estocásticos más complicados que utilizan esta estructura, por ejemplo el Teorema 1 aquí (que lamentablemente está escrito para un sistema más complicado, se podría escribir una versión simplificada para este problema):
http://ee.usc.edu/stochastic-nets/docs/asynch-markov-v8.pdf
0 votos
@Michael es una forma común de escribir productos escalares.
0 votos
Sip a veces se escribe $(x,A_i x)$ en cambio
0 votos
seas.ucla.edu/~vandenbe/ee236a/lectures/lfp.pdf
0 votos
Ah, gracias por la edición. Sí, debería haber utilizado el \langle y \rangle comandos. Efectivamente, me refiero al producto escalar.
0 votos
@ AndreaCassioli: Ah, gracias. Efectivamente, esto es muy parecido a lo que he hecho para el caso n=1. Desgraciadamente, no trata el caso general en el que hay una suma sobre n de dichos términos.
0 votos
@Michael: Voy a eliminar mis comentarios, no estaba pensando con claridad.