Optimización multiobjetivo
# Optimización multiobjetivo

En un problema de optimización se tratará de encontrar una solución que represente el valor óptimo para una función objetivo.

En el caso más sencillo se tendrá un único objetivo, que estará representado por una función del tipo $f:M\rightarrow N$, donde $M\subset \mathbb {R}$ y $N\subset \mathbb {R}$. Tanto el dominio como la imagen de la función serán números reales (escalares), y el valor óptimo corresponderá a un mínimo o a un máximo.

       Ejemplo: Al minimizar la función $f(x)=x^{2}-5$, el valor óptimo es $-5$, y se da para $x=0$, según puede verse en la figura 1.

$f(x)=x^{2}-5$

## Extensión a múltiples objetivos

Pero en ciencias e ingeniería se dan, en bastantes ocasiones, problemas que requieren la optimización simultánea de más de un objetivo (optimización multiobjetivo). Habrá que optimizar por tanto una función de la forma $f:S\rightarrow T$, donde $S\subset \mathbb {R} ^{n}$ y $T\subset \mathbb {R} ^{k}$. Pero el problema está en que normalmente no existe un elemento de S que produzca un óptimo de forma simultánea para cada uno de los k objetivos que componen f. Esto se deberá a la existencia de conflictos entre objetivos, que harán que la mejora de uno de ellos dé lugar a un empeoramiento de algún otro. Pensemos por ejemplo en el caso de un avión con dos objetivos que fueran su velocidad y el ahorro de combustible: un aumento de la velocidad traería consigo una disminución del ahorro. Habrá que llegar por tanto a una situación de compromiso en la que todos los objetivos sean satisfechos en un grado aceptable, desde el punto de vista de diseño.

A diferencia de los problemas de optimización con un único objetivo, el concepto de óptimo es ahora relativo y será necesario decidir de alguna forma cuál es la mejor solución (o cuáles son las mejores soluciones) al problema.

En términos matemáticos, el problema de optimización multiobjetivo, puede establecerse de la siguiente forma:

Encontrar un vector $x^{*}=\left[x_{1}^{*},x_{2}^{*},\cdots ,x_{n}^{*}\right]^{T}$, que satisfaga las m restricciones:

$g_{i}(x)\geq 0\qquad \qquad i=1,2,\cdots ,m\qquad \qquad (1)$

y las p restricciones:

$h_{i}(x)=0\qquad \qquad i=1,2,\cdots ,p\qquad \qquad (2)$

y optimice la función vectorial

$f(x)=\left[f_{1}(x),f_{2}(x),\cdots ,f_{k}(x)\right]^{T}$

donde $x=\left[x_{1},x_{2},\cdots ,x_{n}\right]^{T}$ es el vector de variables de decisión.

En otras palabras, se desea determinar la solución particular $x_{1}^{*},x_{2}^{*},\cdots ,x_{n}^{*}$, del conjunto S formado por todos los valores que satisfacen (1) y (2), que dé lugar a los valores óptimos para todas las funciones objetivo. Pero como ya se ha comentado, no existe normalmente una solución que optimice de forma simultánea todas las funciones objetivo.

## Métodos de solución

Para tratar el problema comentado del conflicto entre objetivos se han utilizado diversos métodos:

* Métodos basados en el concepto de eficiencia de Pareto.
* Métodos basados en la combinación de objetivos. Dentro de estos métodos se puede mencionar el método de la suma ponderada, en el que se optimizará el valor obtenido mediante la suma de los valores correspondientes a los distintos objetivos, multiplicados cada uno por un coeficiente de peso. Estos coeficientes de peso establecerán la importancia relativa de cada objetivo. El problema de optimización multiobjetivo se transforma así en otro de optimización escalar, que para el caso de la minimización será de la forma

$\min \sum _{i=1}^{k}w_{i}f_{i}(x)$

    donde $w_{i}\geq 0$ es el coeficiente de peso correspondiente al objetivo i.
    Existen variantes del método anterior, como el método de la programación por metas, en el que se establece una meta para cada objetivo y lo que se suma ahora (multiplicado por el correspondiente coeficiente) es la distancia de cada objetivo a su meta. Para un caso de minimización sería

$\min \sum _{i=1}^{k}w_{i}\left|f_{i}(x)-M_{i}\right|$

    donde $M_{i}$ representa la meta del i-ésimo objetivo.
* Métodos basados en la asignación de prioridades. Estos métodos tienen en común que establecen unas prioridades entre los distintos objetivos, teniéndose en cuenta su importancia relativa durante el proceso de optimización.

Todos los métodos anteriores han sido utilizados por distintos autores en combinación con los algoritmos evolutivos, que se han mostrado como una herramienta muy adecuada para resolver este tipo de problemas. Estos métodos pueden englobarse en lo que se conoce como MOEA (Multi-Objective Evolutionary Algorithms, en español algoritmos evolutivos multiobjetivo).

