Você está na página 1de 11

TECNOLÓGICO NACIONAL DE MÉXICO

Instituto Tecnológico de Veracruz

Investigación de Operaciones
Jorge Luis Santamaría Romero.

“PROGRAMACIÓN NO LINEAL”

Ingeniería en Sistemas Computacionales.

 Cruz Castro, Melisa del Carmen

Periodo AGO-DIC 2016.

OBSERVACIONES.
3. Programación no lineal.
La Programación no Lineal (PNL) es una parte de la Investigación Operativa cuya misión es
proporcionar una serie de resultados y técnicas tendentes a la determinación de puntos
óptimos para una función (función objetivo) en un determinado conjunto (conjunto de
oportunidades), donde tanto la función objetivo, como las que intervienen en las
restricciones que determinan el conjunto de oportunidades pueden ser no lineales.

Evidentemente, la estructura del problema puede ser muy variada, según las funciones
que en él intervengan (a diferencia de la Programación Lineal (PL) donde la forma especial
del conjunto de oportunidades y de la función objetivo permite obtener resultados
generales sobre las posibles soluciones y facilitan los tratamientos algorítmicos de los
problemas).

Ello ocasiona una mayor dificultad en la obtención de resultados, que se refleja también
en la dificultad de la obtención numérica de las soluciones. En este sentido, hay que
distinguir entre las diversas caracterizaciones de óptimo, que sólo se emplean como
técnicas de resolución en problemas sencillos, y los métodos numéricos iterativos, cuyo
funcionamiento se basa en estas caracterizaciones, para la resolución de problemas más
generales.

3.1 Conceptos básicos de problemas de programación no lineal.


La programación lineal da respuesta a situaciones en las que se exige maximizar o
minimizar funciones que se encuentran sujetas a determinadas limitaciones, que
llamaremos restricciones. Su empleo es frecuente en aplicaciones de la industria, la
economía, la estrategia militar, etc.

Función objetivo: En esencia la programación lineal consiste en optimizar (maximizar o


minimizar) una función objetivo, que es una función lineal de varias variables:

f(x,y) = ax + by.

Restricciones: La función objetivo está sujeta a una serie de restricciones, expresadas por
inecuaciones lineales:

a1x + b1y ≤ c1
a2x + b2y ≤c2
… … …
anx + bny ≤cn
Cada desigualdad del sistema de restricciones determina un semiplano.

Solución factible: El conjunto intersección, de todos los semiplanos formados por las
restricciones, determina un recinto, acotado o no, que recibe el nombre de región de
validez o zona de soluciones factibles.

Solución óptima: El conjunto de los vértices del recinto se denomina conjunto de


soluciones factibles básicas y el vértice donde se presenta la solución óptima se llama
solución máxima (o mínima según el caso).

Valor del programa lineal: El valor que toma la función objetivo en el vértice de solución
óptima se llama valor del programa lineal.

3.2 Ilustración grafica de problemas de programación no lineal.


Cuando un problema de programación no lineal tiene sólo una o dos variables, se puede
representar gráficamente de forma muy parecida al ejemplo de la Wyndor Glass Co. de
programación lineal, de la sección 3.1. Se verán unos cuantos ejemplos, ya que una
representación gráfica de este tipo proporciona una visión global de las propiedades de
las soluciones óptimas de programación lineal y no lineal. Con el fin de hacer hincapié en
las diferencias entre programación lineal y no lineal, se usarán algunas variaciones no
lineales del problema de la Wyndor Glass Co.
La figura 13.5 muestra lo que ocurre con este problema si los únicos cambios que se ha-
cen al modelo de la sección 3.1 son que la segunda y tercera restricciones funcionales se
sustituyen por la restricción no lineal 9x{ + 5x2 < 216. Compare las figuras 13.5 y 3.3. La
solución óptima sigue siendo (a^ , x2) = (2,6). Todavía se encuentra sobre la frontera de
la región factible, pero no es una solución factible en un vértice (FEV). La solución óptima
pudo haber sido una solución FEV con una función objetivo diferente (verifique Z
= 3xx + x2), pero que no necesite serlo significa que ya no se puede aprovechar la gran
simplificación utilizada en programación lineal que permite limitar la búsqueda de una
solución óptima para las soluciones FEV
Ahora suponga que las restricciones lineales de la sección 3.1 se conservan sin cambio,
pero que la función objetivo se hace no lineal. Por ejemplo, si
entonces la representación gráfica en la figura 13.6 indica que la solución óptima es x x –
x2 = 5, que de nuevo se encuentra en la frontera de la región factible. (El valor óptimo de
Z es Z = 857; así, la figura 13.6 muestra el hecho de que el lugar geométrico de todos los
puntos para los que Z = 857 tiene en común con la región factible sólo este punto,
mientras que el lugar geométrico de los puntos con Z más grande no toca la región
factible en ningún punto.)
3.3 Tipos de problemas de programación no lineal.
Los problemas de programación no lineal se presentan de muchas formas distintas. Al
con-trario del método símplex para programación lineal, no se dispone de un algoritmo
que re-suelva todos estos tipos especiales de problemas. En su lugar, se han desarrollado
algoritmos para algunas clases (tipos especiales) de problemas de programación no lineal.
Se introduci-rán las clases más importantes y después se describirá cómo se pueden
resolver algunos de es-tos problemas.

Los tipos de problemas de programación no lineal son:

1. Optimización no restringida.
2. Optimización linealmente restringida.
3. Programación cuadrática
4. Programación convexa.
5. Programación separable.
6. Programación no convexa.
7. Programación geométrica.
8. Programación fraccional.
9. Problema de complementariedad.

OPTIMIZACIÓN NO RESTRINGIDA Los problemas de optimización no restringida no tienen


restricciones, por lo que la función objetivo es sencillamente
Maximizar f(x)
sobre todos los valores x= (x1, x2,…,xn). Según el repaso del apéndice 3, la
condición necesaria para que una solución específica x = x* sea óptima cuando f(x) es
una función diferenciable es

Cuando f (x) es cóncava, esta condición también es suficiente, con lo que la obtención de
x* se reduce a resolver el sistema de las n ecuaciones obtenidas al establecer
las n derivadas parciales iguales a cero. Por desgracia, cuando se trata de funciones no
lineales f (x), estas ecuaciones suelen ser no lineales también, en cuyo caso es poco
probable que se pueda obtener una solución analítica simultánea. ¿Qué se puede hacer
en ese caso? Las secciones 13.4 y 13.5 describen procedimientos algorítmicos de
búsqueda para encontrar x* primero para n = 1 y luego para n > 1. Estos procedimientos
también tienen un papel importante en la solución de varios tipos de problemas con
restricciones, que se describirán en seguida. La razón es que muchos algoritmos para
problemas restringidos están construidos de forma que se adaptan a versiones no
restringidas del problema en una parte de cada iteración.
Cuando una variable Xj tiene una restricción de no negatividad, x- > 0, la condición ne-
cesaria (y tal vez) suficiente anterior cambia ligeramente a

para cada j de este tipo. Esta condición se ilustra en la figura 13.11, donde la solución
óptima de un problema con una sola variable es x = 0 aun cuando la derivada ahí es
negativa y no cero. Como este ejemplo tiene una función cóncava para maximizar sujeta
a una restricción de no negatividad, el que su derivada sea menor o igual a 0 en # = 0, es
una condición necesaria y suficiente para que x= 0 sea óptima.
Un problema que tiene algunas restricciones de no negatividad y que no tiene restriccio-
nes funcionales es un caso especial (m = 0) de la siguiente clase de problemas.

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 g¡ (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 símplex para analizar la función objetivo no lineal.
Un caso especial importante descrito a continuación es la programación cuadrática.

PROGRAMACIÓN CUADRÁTICA De nuevo los problemas de programación


cuadrática tienen restricciones lineales, pero ahora la función objetivo /(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.

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 /(x)
es cóncava. Las suposiciones son

1. f(x) es cóncava.
2. Cada una de las g(x) es convexa.

PROGRAMACIÓN SEPARABLE La programación separable es un caso especial de


programación convexa, en donde la suposición adicional es Todas las funciones f(x)
y g(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

son cada tina funciones de una sola variable x1 y x2, respectivamente. Usando el mismo
razonamiento, se puede verificar que la función considerada en la figura 13.7 también es
una función separable.
Es importante distinguir estos problemas de otros de programación convexa, pues cual-
quier problema de programación separable se puede aproximar muy de cerca mediante
uno de programación lineal y, entonces, se puede aplicar el eficiente método símplex.

son cada tina funciones de una sola variable x1 y x2, respectivamente. Usando el mismo
razonamiento, se puede verificar que la función considerada en la figura 13.7 también es
una función separable.
Es importante distinguir estos problemas de otros de programación convexa, pues cual-
quier problema de programación separable se puede aproximar muy de cerca mediante
uno de programación lineal y, entonces, se puede aplicar el eficiente método símplex.

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. En la sección 13.10 se presenta uno de estos
algoritmos.
Ciertos tipos específicos de problemas de programación no convexa se pueden resolver
sin mucha dificultad mediante métodos especiales. Dos de ellos, de gran importancia, se
presentarán más adelante.

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 tales casos, las ci y a ty representan las constantes físicas y las x} 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 todos los coeficientes c, en cada función son estrictamente
positivos, es decir, las funciones son polinomios positivos generalizados (ahora llamados
posnominales), y la función objetivo se tiene que minimizar. El problema equivalente de
programación convexa con variables de decisión yx, y2,…, yn se obtiene entonces al
establecer

en todo el modelo original. Ahora se puede aplicar un algoritmo de programación


convexa. Se ha desarrollado otro procedimiento de solución para resolver estos
problemas de programación posnominal, al igual que para problemas de programación
geométrica de otros tipos.1

PROGRAMACIÓN FRACCIONAL Suponga que la función objetivo se encuentra en la forma


de una fracción, esto es, la razón o cociente de dos funciones,

Estos problemas de programación fraccional surgen, por ejemplo, cuando se maximiza la


razón de la producción entre las horas-hombre empleadas (productividad), o la ganancia
entre el capital invertido (tasa de rendimiento), o el valor esperado dividido entre la
desviación estándar de alguna medida de desempeño para una cartera de inversiones
(rendimiento/riesgo). Se han formulado algunos procedimientos de solución
especiales1 para ciertas formas de f1(x) y f2 (x)
Cuando se puede hacer, el enfoque más directo para resolver un problema de
programación fraccional es transformarlo en un problema equivalente de algún tipo
estándar que disponga de un procedimiento eficiente. Para ilustrar esto, suponga
que f(x) es de la forma de programación fraccional lineal

donde c y d son vectores renglón, x es un vector columna y c0 y dQ son escalares.


También suponga que las funciones de restricción g¡ (x)son lineales, es decir, las
restricciones en forma matricial son Ax < b y x > 0.
Con algunas suposiciones débiles adicionales, el problema se puede transformar en un
problema equivalente de programación lineal si se establece

que se puede resolver con el método símplex. En términos generales, se puede usar
el mismo tipo de transformación para convertir un problema de programación
fraccional con /¡(x) cóncava, f2 (x) convexa y g¡ (x) convexas, en un problema
equivalente de programación convexa.

3.4 Optimización clásica.


Optimización es el proceso de hallar el máximo o mínimo relativo de una función,
generalmente sin la ayuda de gráficos. Conceptos claves A continuación se describirá
brevemente algunos conceptos necesarios para comprender apropiadamente el tema de
optimización. -Funciones crecientes y decrecientes Se dice que una función f(x) es
creciente (decreciente) en x=a, si en la vecindad inmediata del punto [a,f(a)] el gráfico de
la función crece (cae) al moverse de izquierda a derecha. Puesto que la primera derivada
mide la tasa de cambio y la pendiente de una función, una primera derivada positiva en
x=a indica que la función es creciente “a”; una primera derivada negativa indica que es
decreciente.

-Concavidad y convexidad Una función f (x) es cóncava en x = a, si en alguna pequeña


región cercana al punto [a, f(a)] el gráfico de la función se ubica completamente debajo de
su línea tangente. Una función es convexa en x = a, si en un área cercana a [a, f(a)] el
gráfico esta complemente arriba de su línea tangente. Una segunda derivada positiva en x
= a denota que la función es convexa en x = a. Análogamente, una segunda derivada
negativa en x = a denota que la función es cóncava en “a”.- Extremo relativo Un extremo
relativo es un punto en el cual una función está a un máximo o mínimo. Para ello, la
función debe estar en un punto en el cual no está creciendo ni decreciendo, y por ende, su
primera derivada debe ser igual a cero o indefinida. Un punto en el dominio de una
función donde la derivada iguala a cero o es indefinida es llamado punto o valor crítico.

3.4.1 Puntos de Inflexión.


Un punto de inflexión es un punto en el grafico donde la función cruza su línea tangente y
cambia de cóncavo a convexo y viceversa. Los puntos de inflexión pueden ocurrir solo
donde la segunda derivada iguala a cero o es indefinida. Es decir, f′′(a)=0

3.4.2 Máximos y mínimos.


Puntos minimax. El punto minimax de la función lagrangiana es otro concepto relacionado
con la solución de un problema de optimización. Si bien su definición no le hace útil a la
hora de la resolución directa del problema, sí constituye un paso intermedio muy
importante en la obtención del problema dual, que estudiaremos más adelante. En esta
sección definimos dicho punto y estudiamos su relación con otro concepto, el punto de
silla de la lagrangiana. La relación del punto minimax con la solución del problema de
programación no lineal se obtiene de forma inmediata sin mas que tener en cuenta que:
Min L (x, ë ) = f (x) − Max ët [g(x) − b]R m+R m+ Si gi (x) – bi ≤ 0, entonces ëi [gi(x) - bi] ≤ 0,
luego Max ëi ( gi (x) − bi ) = 0R m+ (se alcanza en ë = 0). Por tanto, si x ∈ X, Min L (x, ë ) = f
(x) .R m+ Si gi (x) – bi > 0, entonces Sup ëi [gi(x) - bi] = ∞, por lo que en este caso no se
alcanza el R m+ mínimo de la Lagrangiana. Por tanto, Max Min L (x, ë ) = Max f (x) D R m+ X
Así pues, si (x0, ë0) es un punto minimax, x0 es una solución óptima del problema original.

Você também pode gostar