Está en la página 1de 78

TEMA V.

-
PROGRAMACIÓN LINEAL ENTERA Y NO LINEAL
1.- SOLUCIÓN DE PROBLEMAS DE ENTEROS

 Un problema lineal de enteros es aquel problema


cuyas variables de solución deben expresarse
como un subconjunto del conjunto de los
números enteros y por tanto no pueden tomar
valores fraccionarios.
1.- SOLUCIÓN DE PROBLEMAS DE ENTEROS
Hay tres tipos de problemas enteros.

Problema entero (IP)


Opt. Z = cX
s.a. AX ≤ b
X ≥ 0, entero

Problema entero-mixto(IMP)
Opt. Z = cX + dY
s.a. AX + BY ≤ b
X≥0
Y ≥ 0, entero

Problema entero-cero-uno ó problema binario (BP)


Opt. Z = cX
s.a. AX ≤ b
X=0ó1
1.- SOLUCIÓN DE PROBLEMAS DE ENTEROS

 Históricamente, el primer método desarrollado se


basó en planos cortantes (añadiendo restricciones
para forzar la enterabilidad).
 En los últimos 20 años o algo más, la técnica más
efectiva está basada en la división del problema
en cierto número de problemas más pequeños en
un método llamado ramificación y acotamiento
(branch and bound).
2.- RELACIÓN CON UN PROGRAMA LINEAL
Dado un problema entero (IP):

Asociado a él hay un problema lineal llamado la relajación líneal (LR),


formado excluyéndose las restricciones de números enteros

(LR) es menos restrictiva que (IP)


2.- RELACIÓN CON UN PROGRAMA LINEAL
las siguientes consecuencias resultan inmediatas:
•Si (IP) es una minimización, el valor objetivo óptimo para (LR) es menor o igual que
el valor objetivo óptimo para (IP)

•Si (IP) es una maximización, el valor objetivo óptimo para (LR) en mayor o igual
que el valor objetivo óptimo para (IP)

•Si (LR) es infactible, también lo es (IP)

•Si (LR) es óptima con solución base entera, entonces esa solución también es
factible y óptima para (IP)

•Si los coeficientes de la función objetivo son enteros, entonces para minimización, el
valor objetivo óptimo para (IP) es mayor o igual que el “redondeo por exceso” del
valor objetivo óptimo para (LR). Para maximización, el valor objetivo óptimo para
(IP) es menor o igual que el “redondeo por defecto” del valor objetivo óptimo para
(LR)

Así, resolviendo (LR) se da un acotamiento para el valor óptimo, y si se tiene suerte,


se puede obtener la solución óptima para (IP).
2.- RELACIÓN CON UN PROGRAMA LINEAL
Ejemplo.- Considere el siguiente problema de enteros:

La solución a este problema es: x1= 10/3, x2=0, x3=0, Max Z=200/3

Redondeando para forzar a entero x1 se tiene:


x1=3, x2=0, x1=0, Z= 60;

sin embargo no puede satisfacer la segunda restricción, es decir no es


factible.
3.- RAMIFICACIÓN Y ACOTAMIENTO.
ejemplo:

La solución a la relajación lineal es: x1=1, x2=1, x3=1/2, x4=0 con un


valor de Z= 22. (¿Cómo se obtuvo?)

El problema está acotado a un valor superior de 22 y por tanto ninguna


solución entera podrá valer más que 22.

Desafortunadamente, siendo x3 =1/2 (no entero), no se tiene aún una


solución entera.

Debe forzarse a que x3 sea un entero.


3.- RAMIFICACIÓN Y ACOTAMIENTO.
Se crean dos nuevos subproblemas:
en uno de ellos la restricción x3=0,
en el otro, la restricción x3=1.
Las soluciones se muestran en la figura

cualquier solución
óptima al problema
entero, debe ser factible
en alguno de los
subproblemas.

Soluciones: X3 = 0, x1 = 1, x2 = 1, x3 = 0, x4 = 0.667, Z = 21.67


X3 = 1, x1 = 1, x2 = 0.714, x3 = 1, x4 = 0, Z = 21.85
3.- RAMIFICACIÓN Y ACOTAMIENTO.
se sabe que la solución entera óptima es no mayor que 21.85 (actualmente se observa
que será menor o igual a 21 (¿porqué?),
pero aún no se tiene una solución factible entera. Por tanto, se toma uno de los
subproblemas y se ramifica en una de sus variables.

Reglas de ramificación

•Se elegirá un subproblema activo, lo cual significa simplemente escoger


aquel que no ha sido elegido antes, y

•Elegir el subproblema con la solución más alta (para maximización) ó más


baja (para minimización)
3.- RAMIFICACIÓN Y ACOTAMIENTO.

Las soluciones son:


X3 = 1, x2 = 0, x1 = 1, x4 = 1,
Z = 18
X3 = 1, x2 = 1, x1 = 0.6, x4 =
0, Z = 21.8
3.- RAMIFICACIÓN Y ACOTAMIENTO.

Las soluciones son:


X3 = 1, x2 = 0, x1 = 0, x4 = 1, Z = 21
X3 = 1, x2 = 1, x1 = 1, infactible
3.- RAMIFICACIÓN Y ACOTAMIENTO.

Todavía hay un subproblema que está activo.

Es el subproblema con solución 21.65 en la primera ramificación.

Redondeando por defecto el valor de la función objetivo, no podrá encontrarse mejor


solución que 21 para este subproblema, pero ya se tiene una solución entera con
valor 21.

No es útil buscar otra nueva solución.

Se puede sondear este subproblema basándose en el acotamiento arriba indicado,


argumentando y marcandolo como no activo.

Como no hay ningún otro subproblema activo, el valor de la solución óptima es X3


= 1, x2 = 0, x1 = 0, x4 = 1, Max Z =21.
4.- RESUMEN DEL ALGORITMO
BRANCH AND BOUND

1. Resolver la relajación lineal (LR) del problema. Si la solución es entera, entonces


se tiene la solución óptima. De otro modo, crear dos nuevos subproblemas
ramificando una de las variables fraccionarias.

2. Un subproblema está en estado no activo cuando ocurre cualquiera de las


siguientes situaciones:

a. El subproblema ya fue ramificado


b. Todas las variables de la solución son enteras
c. El subproblema es infactible
d. Se puede sondear el subproblema con el argumento de acotamiento

3. Elegir un subproblema activo y ramificar sobre una variable fraccionaria.

Repetir recorriendo todo el árbol hasta que no haya subproblemas activos.


4.- RESUMEN DEL ALGORITMO
BRANCH AND BOUND

Dependiendo del tipo de problema, la regla de ramificación


puede cambiar ligeramente.
Por ejemplo, si x está restringida a tomar valores enteros
(pero no necesariamente 0 ó 1), entonces
si x =4.27 se podría ramificar en las restricciones
x≤4
x≥5
( no en x=4 y x=5)
4.- RESUMEN DEL ALGORITMO
BRANCH AND BOUND

Ejercicio 1.- Resolver el siguiente problema aplicando el algoritmo Branch and bound
(ramificación y acotamiento), Por conveniencia, siempre seleccione x1 como la
variable de ramificación cuando tanto x1 como x2 son fraccionarios

Max Z= x1 + x2
s.a. 2x1 + 5x2 ≤ 16
6x1 + 5x2 ≤ 30
x1,x2 ≥ 0 y enteros.

Ejercicio 2.- Repetir el ejercicio anterior asumiendo que solamente x1 está restringido
a valores enteros
INTRODUCCIÓN

PROGRAMACIÓN NO LINEAL
INTRODUCCIÓN
De una manera general, el problema de programación no lineal
consiste en encontrar x=(x1,x2,...,xn) para:
Maximizar f(x),
sujeta a gi(x)≤ bi, para i= 1, 2, ..., m,
y, x≥O,

donde f(x) y las gi(x) son funciones dadas de n variables de


decisión.

No existe un algoritmo que resuelva todos los problemas


específicos que se ajustan a este formato. Sin embargo, se han
hecho grandes logros en lo que se refiere a algunos casos
especiales de este problema, haciendo algunas suposiciones sobre
las funciones y, la investigación sigue muy activa.
EJEMPLO
Problema de mezcla de productos con elasticidad en los precios

En problemas de mezcla de productos, la meta es determinar la mezcla óptima de los


niveles de producción para los productos de una empresa, dadas las limitaciones de los
recursos necesarios para producirlos, con el objeto de maximizar la ganancia total de la
empresa.

En algunos casos existe una ganancia unitaria fija asociada a cada producto, con lo que
la función objetivo que se obtiene es lineal.

Sin embargo, en muchos problemas de mezcla de productos, ciertos factores introducen


no linealidades en la función objetivo.

Por ejemplo, un fabricante grande puede encontrar elasticidad en los precios mediante
los cuales la cantidad que se puede vender de un producto tiene una relación inversa
con el precio cobrado.
Así, la curva precio-demanda para un producto puede parecerse a la mostrada en la fig.
donde p(x) es el precio que se necesita para poder vender x unidades; entonces la ganancia de
la empresa por producir y vender x unidades es el ingreso por las ventas p(x) menos los
costos de producción y distribución. Si el costo unitario de producir y distribuir el artículo
esta fijo en c, entonces la ganancia de la empresa por producir y vender x unidades está dada
por una función no lineal : P(x) = xp(x) - cx,

Curva Precio-Demanda Función de la ganancia


Si  cadauno de los n productos de la empresa tiene
una función parecida para la ganancia, por ejemplo
Pj(xj) por producir y vender x unidades del producto
j (j = 1 2, .. . , n), entonces la función objetivo global
es

una suma de funciones no lineales.


ILUSTRACIÓN GRÁFICA DE PROBLEMAS DE
PROGRAMACIÓN NO LINEAL
Una complicación que surge en programación no lineal es que un máximo local no necesariamente
 
es un máximo global (la solución óptima global).
Por ejemplo, considere la función de una sola variable graficada en la figura

En el intervalo O ≤ x ≤ 5, esta función tiene tres máximos locales: x= O, x =2, x = 4; pero sólo
uno de éstos x= 4 es un máximo global.
En general, los algoritmos de programación no lineal no pueden distinguir entre un máximo local
y un máximo global, por lo que es determinante conocer las condiciones bajo las que se garantiza
que un máximo local es un máximo global en la región factible.

Recuerde que en cálculo, cuando se maximiza una función ordinaria (doblemente diferenciable) de
una sola variable f(x) sin restricciones, esta garantía está dada cuando para toda x.
Una función cuya curvatura siempre es “hacia abajo” (o que no tiene curvatura) se llama función
cóncava (a).

De igual manera, si Ia función tiene siempre una curvatura “hacia arriba” (o no tiene curvatura),
se llama función convexa (b).
(Una función lineal es tanto cóncava como convexa.)
Las funciones de variables múltipIes también se pueden
caracterizar como cóncavas o convexas si su curvatura
es siempre hacia abajo o hacia arriba.
Estas definiciones intuitivas se fundamentan en
términos precisos que junto con cierta profundización
en los conceptos, se presentan a continuación
FUNCIONES CÓNCAVAS O CONVEXAS DE UNA SOLA
VARIABLE
FUNCIONES CONVEXAS O CÓNCAVAS DE VARIAS
VARIABLES
El concepto de función convexa o cóncava de una sola variable se generaliza
también a funciones de más de una variable.
De este modo, si se sustituye f(x) por f(x1, x2, …., xn), la definición que se
acaba de dar se aplica al sustituir x en todas partes por (x1, x2, …., xn).
CONDICIONES PARA UN MÁXIMO O MÍNIMO

 Definición.- Se denomina Hessiano al


determinante asociado a la matriz Hessiana.
Para un problema de maximización con dos
variables, las condiciones que se han de verificar
son:
Para un problema de minimización con dos
variables, las condiciones que se han de verificar
son:
CONJUNTOS CONVEXOS
El concepto de una función convexa lleva de una manera bastante natural al
concepto relacionado de conjunto convexo.

Así, si f(x1, x2, …., xn), es una función convexa, la colección de puntos que se
encuentran arriba o sobre la gráfica de f(x1, x2, …., xn), forman un conjunto
convexo.

De igual modo, la colección de puntos que se encuentran abajo o sobre la gráfica de


una función cóncava es un conjunto convexo

Definición.- Un conjunto convexo es una colección de puntos tales que, para cada par de
puntos de la colección, el segmento rectilíneo completo que une estos dos puntos también
está en la colección
 Si un problema de programación no lineal no tiene restricciones,
el hecho de que la función objetivo sea cóncava garantiza que un
máximo local sea un máximo global. (De igual manera, una
función objetivo convexa asegura que un mínimo local es un
mínimo global).
 Si existen restricciones, entonces se necesita una condición más
para dar esta garantía, a saber, que la región factible sea un
conjunto convexo.
 En general la región factible para un problema de programación
no lineal es un conjunto convexo siempre que todas las
funciones g(x) [para las restricciones gi(x)≤ bi]. sean convexas.
CARACTERIZACIONES DE MÁXIMOS Y MÍNIMOS

Decimos
  que el vector es el gradiente de la
función vectorial en x si

 
El vector gradiente es un vector cuya componente i
es la derivada parcial de con respecto a , es decir:
Ejemplo:
  Determine el gradiente de:

Solución:

Luego
Máximo
   global: x* es un máximo global de si para todo el dominio de
definición de se cumple que .

Máximo local: x* es un máximo local de si para todos los puntos x


suficientemente cercanos a (y pertenecientes al dominio de definición ) se
cumple que existe un escalar tal que:

Observe que máximo global es un caso especial de máximo local con un valor de
 suficientemente grande.

Los conceptos de mínimo global y mínimo local se definen en forma análoga.


CONDICIÓN NECESARIA DE PRIMER ORDEN
Teorema: Si f(x) es diferenciable, entonces la condición
necesaria para que x* sea un máximo local de f(x) es f(x*) = 0.
Otra condición necesaria para un máximo viene indicada por el
concepto de dirección de ascenso.

DIRECCIÓN DE ASCENSO
Dada una función f(x), decimos que d es una dirección de
ascenso en un punto x si existe >0 tal que f(x + d) > f(x).
para 0 <  < .

Lema:
Si f(x)Td > 0 entonces d es una dirección de ascenso en x.
CONDICIONES DE SEGUNDO ORDEN
Volvamos al ejemplo donde
  
Para este ejemplo x1* = 5, x2* = 6, define el punto x* para el cual .

Sin embargo, no podemos con esta información caracterizar x* como un mínimo, como un máximo o
simplemente no podemos asegurar que no es máximo ni mínimo.

Observando la función:

Se tiene f(x*) = f(5,6) = 0 y para cualquier otro par de valores de x1 y x2, se tiene f(x) ≥ 0 por lo que es
inmediato concluir que x* = (5,6) es un mínimo.

El análisis anterior es específico para una función dada y no permite hacer generalizaciones para la
caracterización del máximo de una función. Para lograr esta generalización utilizaremos el concepto de
segunda derivada de una función, la cual se define a continuación:
Teorema.-
  (Condiciones suficientes para un máximo)

Si f(x) es doblemente diferenciable, si , y si para toda h


(acotada), entonces x es un máximo (local).

Teorema.- (Condiciones necesarias para el máximo)

Si f(x) es dos veces diferenciable y si x es un máximo,


entonces , y para toda h (acotada).
HESSIANO DE UNA FUNCIÓN F(X)
El  hessiano de la función f(x), denotado como , es una matriz de
n x n para la cual se cumple:

O equivalentemente:

El hessiano de f(x) es la matriz n x n cuya componente i, j es:

Cuando las segundas derivadas son continuas el hessiano es una


matriz simétrica
EJEMPLO DE PROGRAMACIÓN NO LINEAL DE FUNCIÓN
CONTINUA SIN RESTRICIONES

Sea:
 

Entonces:
Es
 decir
  el punto a analizar para un posible mínimo es
Si
Se tiene:
Se analiza a continuación la forma
xHxT = .
Para todo valor de x excepto x1=x2=x3=0, por lo tanto X=(2,2,3) es un mínimo local
de f(x)
Este ejemplo muestra que hay grandes problemas para
resolver un problema no lineal y no restringido, por los
métodos clásicos de cálculo, pues se forma un sistema
de ecuaciones que en muchos casos no se encuentra
explícitamente la solución.

Si una función f(x) es convexa (cóncava), entonces el


punto x* es un mínimo (máximo) absoluto o global.
Dentro de los métodos de optimización de problemas no lineales, se
consideran.
 A) Para funciones de una variable: Fibonacci, sección aurea,

interpolación cúbica, interpolación cudrática, Newton.Raphson.

 B) Para funciones de varias variables: método de gradiente,


métodos basados en segundas derivadas, métodos de direcciones
conjugadas, métodos de variable métrica.

 C) Métodos de búsqueda para funciones de varias variables, no


necesariamente diferenciables.
MÉTODOS DE BÚSQUEDA

Cuando no es posible resolver el problema


analíticamente (mediante el uso de derivadas) se
tienen algunos métodos de búsqueda del óptimo
de funciones reales.

Se tratará inicialmente el caso de funciones de una


variable. Hay otros métodos específicos para el
caso de varias variables.
Función Unimodal.- Una función es unimodal cuando tiene un solo valor
óptimo local en su dominio de definición. Lógicamente, este óptimo local es
también óptimo global de la función.

Las funciones cóncavas que no presentan un “continuum” de valores


constantes tienen un óptimo único, en consecuencia son unimodales. Sin
embargo existen funciones unimodales que no son cóncavas, como por
ejemplo la célebre campana de Gauss.

Las funciones unimodales presentan la interesante propiedad de que tienen un


óptimo único a lo largo de cualquier segmento de recta; vale decir, dados z
(un punto) y d (una dirección) la función es unimodal en el conjunto
(segmento de recta) definido por:
Adicionalmente, la función unimodal adopta valores monotónicamente
crecientes en el segmento de recta hasta alcanzar un máximo, y a partir del
cual adopta valores monotónicamente decrecientes.

Si se define x* el valor máximo y x1, x2, puntos cualesquiera de su dominio, se


tienen:

 Si x1 < x2 < x* entonces f(x1) < f(x2) < f(x*).

Por otra parte:


 Si x* < x1 < x2 entonces f(x*) > f(x1) > f(x2)

Con base en las definiciones anteriores podemos decir que después de examinar
los resultados de un par de evaluaciones de la función objetivo en su intervalo
de definición, se localiza el máximo en un intervalo menor longitud que el
intervalo considerado inicialmente.
Esto se puede observar con ayuda de la siguiente
figura para una función estrictamente
unimodal f definida en (,)

a c1 c2 b c1 c2 b a c1 c2 b
CASO A CASO B CASO C
BÚSQUEDA DE FIBONACCI
Este tipo de búsqueda se basa en la llamada sucesión de Fibonacci, la
cual se genera de acuerdo a la siguiente definición:
F0 = 1
F1 = 1
F2 = F 1 + F 0 = 1 + 1 = 2
F3 = F 2 + F 1 = 2 + 1 = 3
y en general
Fn = Fn-1 + Fn-2 para n ≥ 2
 
Es decir los términos de la sucesión de Fibonacci son: 1, 1, 2, 3, 5, 8,
13, 21, 34, ……
Sea el problema de obtener el máximo de f
definida en el intervalo (,) y se quiere
seleccionar sucesivamente n valores de la
variable x, que denotaremos como x1, x2,
….,xn, de tal forma que sin tener conocimiento
explícito de f , se pueda determinar el intervalo
de incertidumbre más pequeño posible en el
cual se encuentra el máximo deseado,
haciendo solo evaluaciones de la función f(x)
en esos puntos.
Una forma equivalente de plantear el problema es lo
siguiente: dada la longitud  de un intervalo de
incertidumbre, determinar la longitud máxima del
intervalo de definición de la función que pueda
reducirse a  con un máximo de n evaluaciones.
 
Sean:Ln La longitud máx del intervalo de definición
fj Evaluación de f(x) en xj.
 Intervalo de incertidumbre
Teorema.- Si la función f(x) es unimodal, se cumple:
L1 = 
L2 = 2 - , para cualquier  > 0, pequeño
Ln = Fn+1 – Fn-1, para n>3.

En base a este teorema, se tiene el siguiente algoritmo


para hallar el máximo de una función unimodal en
un intervalo de incertidumbre menor o igual a una 
dada.
Ejemplo.- Determinar el máximo de f(x) = -3x2 + 21,6x + 1 con un intervalo de incertidumbre
de 0,1 en el intervalo (3;4).

 Paso 1: =3
=4
L=4–3=1
 Paso 2: Para  =10-3, se tiene
n Fn+1 - Fn-1
3 3 · 0,1 – 1 · 0,001 < 0,3
4 5 · 0,1 – 2 · 0.001 < 0,5
5 8 · 0,1 – 3 · 0.001 < 0,8
6 13 · 0,1 – 5 · 0,001 > 1,2
(se necesitan 6 evaluaciones, n=6)
La tabla a continuación muestra todos los resultados intermedios. Los valores
subrayados indican las nuevas evaluaciones en cada iteración.

N Intervalo x1 f1 x2 f2

6 3x4 3,384 39,740 3,615 39,879

5 3,384  x  4 3,615 39,879 3,768+ 39,795

4 3,384  x  3,768 3,538 39,868 3,615 39,879

3 3,538  x  3,768 3,615 39,879 3,691+ 39,855+

2 3,384  x  3,691 3,614 39,879 3,615 39,879


Observar que se ha evaluado f(x) en los puntos
X1 = 3,384 x4 = 3,538
X2 = 3,615 x5 = 3,691
X3 = 3,768 x6 = 3,614

El intervalo final es: 3,538  x  3,614 cuya


longitud es L = 0,076 < 0,1.
OPTIMIZACIÓN LINEALMENTE RESTRINGIDA

Los problemas de optimización linealmente restringida se caracterizan


por restricciones que se ajustan por completo a la programación lineal,
de manera que todas las funciones de restricción gi(x) son lineales, pero
la función objetivo es no lineal.

El problema se simplifica mucho si sólo se tiene que tomar en cuenta


una función no lineal junto con una región factible de programación
lineal.

Se han desarrollado varios algoritmos especiales basados en una


extensión del método simplex para analizar la función objetivo no
lineal.
PROGRAMACIÓN CUADRÁTICA

De nuevo los problemas de programación cuadrática tienen


restricciones lineales, pero ahora la función objetivo f(x)
debe ser cuadrática.

Entonces, la única diferencia entre éstos y un problema de


programación lineal es que algunos términos de la función
objetivo incluyen el cuadrado de una variable o el producto
de dos variables.

Se han desarrollado muchos algoritmos para este caso, con


la suposición adicional de que f(x)es cóncava.
PROGRAMACIÓN CONVEXA
La programación convexa abarca una amplia clase de
problemas, entre ellos como casos especiales, están todos los
tipos anteriores cuando f(x) es cóncava. Las suposiciones son

1. f(x) es cóncava.

2. Cada una de las gi(x) es convexa.

Estas suposiciones son suficientes para asegurar que un


máximo local es un máximo global.
PROGRAMACIÓN SEPARABLE
La
 programación separable es un caso especial de programación convexa, en
 
donde la suposición adicional es que:

Todas las funciones f(x) y gi(x) son funciones separables.

Una función separable es una función en la que cada término incluye una sola
variable, por lo que la función se puede separar en una suma de funciones de
variables individuales.

Por ejemplo, si f(x) es una función separable, se puede expresar como

donde cada incluye sólo los términos con .


En la terminología de programación lineal, los problemas de
programación separable satisfacen las suposiciones de aditividad pero
no las de proporcionalidad (para funciones no lineales).

Ejemplo: f(x1, x2) = 126x1 — 9x12 + 182x2 — 13x22

es una función separable porque puede ser expresada como: f(x1,x2)=


f(x1)+ f(x2)

donde f1(x1)= 126x1 — 9x12 y f2(x2) = 182x2 — 13x22


son cada una funciones de una sola variable x1 y x2, respectivamente.
PROGRAMACIÓN NO CONVEXA
La programación no convexa incluye todos los problemas de programación no lineal
que no satisfacen las suposiciones de programación convexa.

En este caso, aun cuando se tenga éxito en encontrar un máximo local, no hay garantía
de que sea también un máximo global.

Por lo tanto, no se tiene un algoritmo que garantice encontrar una solución óptima para
todos estos problemas; pero sí existen algunos algoritmos bastante adecuados para
encontrar máximos locales, en especial cuando las formas de las funciones no lineales
no se desvían demasiado de aquellas que se supusieron para programación convexa.

Ciertos tipos específicos de problemas de programación no convexa se pueden resolver


sin mucha dificultad mediante métodos especiales.
PROGRAMACIÓN GEOMÉTRICA
Cuando
  se aplica programación no lineal a problemas de
diseño de ingeniería, muchas veces la función objetivo y
las funciones de restricción toman la forma 

en donde

En tales casos, las y las representan las constantes


físicas y las xj son las variables de diseño.
Estas funciones por lo general no son ni cóncavas ni convexas, por
lo que las técnicas de programación convexa no se pueden aplicar
directamente a estos problemas de programación geométrica.

Sin embargo, existe un caso importante en el que el problema se


puede transformar en un problema de programación convexa
equivalente. Este caso es aquel en el que todas los coeficientes c i en
cada función son estrictamente positivos, es decir, las funciones
son polinomios positivos generalizados (ahora llamados
posinomiales), y la función objetivo se tiene que minimizar.
PROGRAMACIÓN FRACCIONAL
La 
función objetivo se encuentra en la forma de una
fracción, esto es, la razón o cociente de dos
funciones,

 
PROBLEMA GENERAL DE PROGRAMACIÓN NO LINEAL

El problema más general de programación no lineal (PNL), puede


plantearse como:
Minimizar Z  f ( x1 ,..., xn )

Sujeto a h1 ( x1 ,..., xn )  0
 
hl ( x1 ,..., xn )  0
g1 ( x1 ,..., xn )  0
 
g m ( x1 ,..., xn )  0
En forma compacta el modelo anterior puede escribirse:
Minimizar
Z  f (x)

Sujeto a
h( x )  0
g ( x)  0
Donde x  ( x1 ,..., xn )Tes
el vector de las variables de decisión, f es la función
objetivo, g(x) y h(x) son las restricciones de desigualdad y de igualdad,
respectivamente.
La figura muestra que el mínimo del problema se alcanza en el conjunto
de puntos en los que la tangente es horizontal.

Figura 8. Mínimos Locales y Globales.


f ( x)  ( x  2) 2 / 3  ( x  2) 2 / 3
Sin embargo, si se busca el mínimo de la función:

en , se encuentra uno con dificultades, pues no tiene puntos con
derivada nula. Sin embargo, el hecho de que f tienda a cero cuando x
tiende a ±∞ y que tome valores negativos, indica que f debe alcanzar su
mínimo en algún lugar.
Un análisis más profundo de f revela que el mínimo se alcanza en x  , 2pero f no es
diferenciable en este punto. Este simple ejemplo muestra que se debe tener especial
cuidado cuando las funciones que intervienen no son diferenciables.

f ( x)  ( x  2) 2 / 3  ( x  2) 2 / 3
Grafica de la función .
Hay además otro problema igualmente relevante, referente a los problemas no lineales
diferenciables. Para ilustrarlo, se considera la función objetivo siguiente

f ( x)  (1 / 10) x 2  10(sin x  x cos x)


Grafica de la función .
Esta función es diferenciable en todo ,pero tiene un conjunto infinito
de puntos con tangente horizontal (puntos en los que f´(x) = 0).
Estos puntos reciben el nombre de puntos estacionarios y todos ellos,
salvo uno, son óptimos locales. Puesto que si se restringe la atención a un
pequeño entorno de ellos, se convierten en máximos o mínimos locales.
La ecuación f´(x) = 0 no puede ser resuelta en forma cerrada, por lo que
se deben utilizar métodos numéricos.
La existencia de un conjunto infinito de puntos candidatos y la ausencia
de un método para generarlos explícitamente, conducen a la imposibilidad
de conocer, con total certidumbre, si un determinado candidato es el
óptimo global.
Estamos interesados en la clase de funciones tales que sus mínimos
locales sean también globales. En la figura se da una función que no
cumple esta condición. Hay puntos en el intervalo que están por
 x, x 
*
encima del segmento que une los mínimos.
La convexidad es aquí suficiente para evitar este comportamiento. Para
ser convexa se exige que el grafo esté por debajo del intervalo que une
los extremos.

Ilustración de la Propiedad de Convexidad


Un PNL puede no tener solución por:
x 
La función no es acotada en S. Por ejemplo, f(x) = x, donde
decrece sin límite hasta −∞ cuando x tiende a −∞. En este caso se escribe
Ínfimo xS f ( x)  -
La función es acotada en S pero no se alcanza la cota inferior:
en S. Por ejemplo, la función f ( x)  e  x está acotada en
y la cota inferior es 0 pero es inalcanzable por f(x).

Teorema 1 (Existencia de Soluciones Óptimas)


Sea S un conjunto cerrado, acotado y no vacío de yn f : S  una
función continua. El problema
Z  f (x)
Minimizar
Sujeto a xS f :S 

admite al menos una solución óptima.


Corolario 1 (Existencia de Soluciones Óptimas)
n
Sea S un conjunto cerrado y no vacío (posiblemente no acotado) de
y una función continua.
Si tenemos:
lim x  , xS f ( x)  

Entonces el problema es:


Minimizar Z  f (x)
sujeto a xS
admite al menos una solución óptima.
Estos resultados pueden hacerse más explícitos cuando la función f es
convexa.

También podría gustarte