Está en la página 1de 19

Tecnológico nacional de México.

Instituto Tecnológico de Tapachula.

Unidad III: Programación No Lineal.

Ing. Heidi Susana López González.

 Hernández Aburto Alexis.


 Zunun Diaz Kevin Adrián.

semestre: 3° Grupo: “B”

Ingeniería en sistemas computacionales.

Tapachula, Chiapas; a 27 de noviembre del 2018


Índice
Introducción.............................................................................................................2
1.Programación no Lineal.......................................................................................3
1.1 Formulación matemática del problema..............................................................................3
1.2 Métodos de resolución del problema.................................................................................3
2. Ejemplos de Programación No Lineal...............................................................4
2.1 Ejemplo bidimensional.........................................................................................................5
2.2 Ejemplo tridimensional.........................................................................................................6
3. Tipos de Problemas de Programación No Lineal.............................................6
3.1 Los tipos de problemas de programación no lineal son:.................................................7
3.2 Algoritmos sin restricción.....................................................................................................7
3.3 Método de búsqueda directa...............................................................................................8
Ejemplos.................................................................................................................................11
3.4 Optimización no restringida...............................................................................................12
3.5 Optimización linealmente restringida...............................................................................13
3.6 Programación cuadrática...............................................................................14
4. Algoritmo de pooling......................................................................................15
Conclusión.............................................................................................................16
Referencias.............................................................................................................17

1
Introducción
La programación no lineal forma parte de la investigación de operaciones y también,
como la programación lineal, tiene como finalidad proporcionar los elementos para
encontrar los puntos óptimos para una función objetivo. En este planteamiento, tanto
la función objetivo como las restricciones son no lineales.
Se presenta un problema de programación no lineal cuando tanto la función objetivo
que debe optimizarse, como las restricciones del problema, o ambas, tienen forma de
ecuaciones diferenciales no lineales, es decir, corresponden a ecuaciones cuyas
variables tienen un exponente mayor que 1.
El campo de aplicación de la programación no lineal es muy amplio, sin embargo,
hasta la fecha los investigadores de esta rama del conocimiento no han desarrollado
un método sistemático que sea práctico para su estudio. La programación no lineal
también es conocida con el nombre de programación cuadrática, en virtud de que la
mayor parte de los problemas que resultan contienen ecuaciones cuadráticas o de
segundo grado.
Muchas veces se presentan casos en que se deben maximizar funciones no lineales
que presentan restricciones lineales; esto es posible resolverlo, siempre y cuando se
admita la hipótesis de que la utilidad marginal no es constante, en este caso, la
función objetivo deja de ser lineal.
Las ventajas más importantes de la programación no lineal son dos:

 En algunas ocasiones la distribución óptima del presupuesto excluye


cualquiera de los bienes considerados en el presupuesto general; esta
situación se refleja en cualquiera de las restricciones del modelo.
 La programación no lineal aporta mayor información que la contenida en el
análisis marginal. No sólo define el objetivo, sino que también señala la
orientación específica para lograr el objetivo.

2
1.Programación no Lineal

En matemáticas, programación no lineal (PNL) es el proceso de resolución de un


sistema de igualdades y desigualdades sujetas a un conjunto de restricciones
sobre un conjunto de variables reales desconocidas, con un función objetivo a
maximizar (o minimizar), cuando alguna de las restricciones o la función objetivo
no son lineales.

1.1 Formulación matemática del problema

1.2 Métodos de resolución del problema

Si la función objetivo f es lineal y el espacio restringido es un politopo, el problema


es de programación lineal y puede resolverse utilizando alguno de los bien
conocidos algoritmos de programación lineal.

Si la función objetivo es cóncava (problema de maximización), o convexa


(problema de minimización) y el conjunto de restricciones es convexo, entonces se
puede utilizar el método general de optimización convexa.

Existe una variedad de métodos para resolver problemas no convexos. Uno de


ellos consiste en utilizar formulaciones especiales de problemas de programación

3
lineal. Otro método implica el uso de técnicas de Ramificación y poda, cuando el
problema se divide en subdivisiones a resolver mediante aproximaciones que
forman un límite inferior del coste total en cada subdivisión. Mediante
subdivisiones sucesivas, se obtendrá una solución cuyo coste es igual o inferior
que el mejor límite inferior obtenido por alguna de las soluciones aproximadas.
Esta solución es óptima, aunque posiblemente no sea única. El algoritmo puede
ser parado antes, con la garantía de que la mejor solución será mejor que la
solución encontrada en un porcentaje acotado. Ello se utiliza en concreto en
problemas importantes y especialmente difíciles y cuando el problema cuenta con
costes inciertos o valores donde la incertidumbre puede ser estimada en un grado
de fiabilidad apropiado.

Las condiciones de Karush-Kuhn-Tucker proporcionan las condiciones necesarias


para que una solución sea óptima.

2. Ejemplos de Programación No Lineal

Existen múltiples aplicaciones típicas para modelos no lineales. A continuación, se


resumen algunas:

Localización de Instalaciones: Considere que una empresa distribuidora de


productos farmacéuticos requiere determinar la localización de una bodega que
funcionará como centro de distribución y abastecimiento para sus locales en el
país. En especial se busca estar a la menor distancia de los 3 principales locales
de venta al público denominados A, B y C, respectivamente. Las coordenadas
geográficas de dichos locales se presentan en el siguiente gráfico:

4
Formule y resuelva un modelo de optimización que permita determinar la
localización óptima de la bodega y que minimice la distancia a los distintos locales
de la empresa. Asuma que la bodega puede ser ubicada en cualquier coordenada
o punto del mapa.

Respuesta: Si consideramos como variables de decisión X e Y que correspondan


a las respectivas coordenadas de la bodega a instalar, se puede definir el
siguiente modelo de optimización no lineal sin restricciones, donde la siguiente
función objetivo de minimización de distancia (Min f(x,y)) queda definido por:

Se recomienda resolver este problema utilizando Solver de Excel y verificar que


la solución óptima corresponde a X=33,45 e Y=40,88.

2.1 Ejemplo bidimensional

La intersección de la línea con el espacio de restricciones representa la solución.

5
Un problema sencillo puede definirse por las restricciones:

x1 ≥ 0
x2 ≥ 0
x12 + x22 ≥ 1
x12 + x22 ≤ 2

con una función objetivo a ser maximizada

f(x) = x1 + x2

donde x = (x1, x2)

2.2 Ejemplo tridimensional

La intersección de la superficie superior con el espacio de restricciones en el


centro representa la solución.

Otro problema simple se define por la restricción:x12 − x22 + x32 ≤ 2

x12 + x22 + x32 ≤ 10

con una función objetivo a ser maximizada

f(x) = x1x2 + x2x3

donde x = (x1, x2, x3)

3. Tipos de Problemas de Programación No Lineal

Los problemas de programación no lineal se presentan de muchas formas


distintas. Al contrario del método simplex para programación lineal, no se dispone
de un algoritmo que resuelva todos estos tipos especiales de problemas. En su
lugar, se han desarrollado algoritmos para algunas clases (tipos especiales) de

6
problemas de programación no lineal. Se introducirán las clases más importantes
y después se describirá cómo se pueden resolver algunos de estos problemas.

Si la función objetivo f es lineal y el espacio restringido es un politopo, el problema


es de Programación lineal y puede resolverse utilizando alguno de los bien
conocidos algoritmos de programación lineal.   

 Si la función objetivo es cóncava (problema de maximización), o convexa


(problema de minimización) y el conjunto de restricciones es convexo, entonces se
puede utilizar el método general de Optimización convexa   Existe una variedad de
métodos para resolver problemas no convexos. Uno de ellos consiste en utilizar
formulaciones especiales de problemas de programación lineal. Otro método
implica el uso de técnicas de Ramificación y poda, cuando el problema se divide
en subdivisiones a resolver mediante aproximaciones que forman un límite inferior
del coste total en cada subdivisión. Mediante subdivisiones sucesivas, se obtendrá
una solución cuyo coste es igual o inferior que el mejor límite inferior obtenido por
alguna de las soluciones aproximadas. Esta solución es óptima, aunque
posiblemente no sea única. El algoritmo puede ser parado antes, con la garantía
de que la mejor solución será mejor que la solución encontrada en un porcentaje
acotado. Ello se utiliza en concreto en problemas importantes y especialmente
difíciles y cuando el problema cuenta con costes inciertos o valores donde la
incertidumbre puede ser estimada en un grado de fiabilidad apropiado.   Las
condiciones de Karush-Kuhn-Tucker proporcionan las condiciones necesarias para
que una solución sea óptima.   

3.1 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
7.       Programación geométrica.
8.       Programación fraccional.
9.       Problema de complementariedad.

3.2 Algoritmos sin restricción

En esta sección se presentarán dos algoritmos para el problema no restringido: el


algoritmo de búsqueda directa y el algoritmo de gradiente.     

3.3 Método de búsqueda directa  

Los métodos de búsqueda directa se aplican principalmente a funciones


estrictamente unimo- dales de una variable. Aunque puede parecer trivial el caso,
la sección 21.1.2 muestra que la optimización de funciones de una variable juega
un papel clave en el desarrollo de los algoritmos de varias variables, más
generales.  La idea de los métodos de búsqueda directa es identificar el intervalo
de incertidum- bre que comprenda al punto de solución óptima. El procedimiento
localiza el óptimo estrechando en forma progresiva el intervalo de incertidumbre
hasta cualquier grado de exactitud que se desee.  En esta sección se presentan
dos algoritmos estrechamente relacionados: los métodos de búsqueda
dicótomo y de sección dorada (o áurea). Ambos buscan la maximización de una
función unimodal/(x) en el intervalo a ^ x < b, que se sabe que incluye el punto
óptimo x*. Los dos métodos comienzan con /0 = (a, b) que representa el intervalo
inicial de incertidumbre.  Paso general i. Sea /, _ , = (xD xR) el intervalo actual de
incertidumbre (en la iteración 0, xL = a y xR = b). A continuación, se definen xx y x2
tales que  

xj^ ^ ^ x2 ^ xr  

El siguiente intervalo de incertidumbre, / z, se define como sigue:  

8
1. Si f(xx) > /(x2), entonces xL < x* < x2. Se definen xR = x2 e /, = (xL, x2) (véase
la figura 21.2[a]).
2. Si f(xx) < f(x2\ entonces xx < x* < xR. Se definen xL = xx e I¡ = (xh xR) (véase la
figura 21.1 [b]). .
3. Si f{x\) = /(jc2), entonces xx < x* < x2. Se definen xL = x2 e /, = (xb x2).

  

La manera en que se determinan xx y x2 garantiza que /, < /,_ p como se


demostrará en breve. El algoritmo termina en la iteración ksilk< A, donde A es un
grado de exactitud definido por el usuario. La diferencia entre los métodos
dicótomo y de sección dorada estriba en la forma en que se calculan xx y x2. La
tabla siguiente presenta las fórmulas.  

  

En el método dicótomo los valores jc, y x2 se encuentran simétricos respecto del


punto medio del actual intervalo de incertidumbre. Esto significa que 

La aplicación repetida del algoritmo garantiza que la longitud del intervalo de


incertidumbre se acercará al nivel de exactitud deseado, A. 

En el método de la sección dorada la idea es de mayor involucramiento. Se puede


apreciar que cada iteración del método dicótomo requiere calcular los dos valores/

9
(jc,) y f(x2), Pe” ro termina por descartar alguno de ellos. Lo que propone el método
de la sección dorada es ahorrar cálculos mediante el reusó del valor descartado
en la iteración inmediata siguiente. Para definir 0 < a < 1 

Cuando el intervalo de incertidumbre /, en la iteración i es igual a (jc¿, x2) o a (xu


xR). Considere el caso en que /, = (jc l, x2), lo cual significa que xx está incluido en /,.
En la iteración /+1, seleccione x2 igual a jc, de la iteración /, lo cual lleva a la
siguiente ecuación: 

x2(iteración i+l) = x{(iteración i) 

Comparado con el método dicótomo, el método de la sección dorada converge


más rápidamente hacia el nivel deseado de exactitud. Adicionalmente, cada
iteración en el método de la sección dorada requiere la mitad de los cálculos, en

10
virtud de que recicla siempre un conjunto de los cálculos correspondientes a la
iteración inmediata anterior. 

Ejemplos

El máximo valor de f(x) ocurre en x = 2. La siguiente tabla muestra los cálculos para las
iteraciones 1 y 2, usando el método dicotomo y el de la sección dorada. Supondremos que
A = 0.1. 

Al continuar de la misma forma, el intervalo de incertidumbre terminará por


estrecharse hasta la tolerancia A deseada. 

11
La plantilla ch21DichotomousGoldenSection.xls de Excel está diseñada para
manejar cualquiera de estos dos métodos en forma automática. Los datos son/(*),
a,b y A. La función f{x) se captura en la celda E3 como sigue: 

= IF(C3< = 2,3*C3, (-C3+20)/3) 

3.4 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 descri-

12
ben 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


necesaria (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 restricciones funcionales es un caso especial (m = 0) de la siguiente clase
de problemas.

3.5 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
simplex para analizar la función objetivo no lineal. Un caso especial importante
descrito a continuación es la
programación cuadrática.

13
3.6 Programación cuadrática

14
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.

15
4. Algoritmo de pooling
Pooling, o puesta en común, comprende todas las acciones necesarias que realiza la
empresa acerca de sus recursos, gestión de recursos (como tiempo, mano de obra o
materias primas), con el objetivo de aprovecharlos al máximo.
Muchas empresas necesitan acceder de forma rápida y confiable a los recursos con
los que cuenta, además de tener la capacidad de dar respuesta a los cambios que
puedan existir en éstos, desde disminución hasta un aumento considerable de los
recursos.
La interacción entre los participantes que requieren de recursos varía ligeramente
dependiendo de si el fondo de recursos con impaciencia adquiere recursos en el
arranque o no.
Suponiendo que la piscina (pool) se apropia de los recursos por adelantado, las
solicitudes posteriores de adquisición de usuarios de los recursos se sirven de esos
recursos. Los usuarios de recursos los liberan para el fondo de recursos cuando no
los necesite. Los recursos se reciclan en la piscina.
En el fondo de recursos se utilizan datos estadísticos que incluyen las características
de uso, como el uso pasado y frecuencia de uso. Con estos datos y empleando
algoritmos estadísticos en pool (piscina de recursos), podemos pronosticar y tener un
panorama del comportamiento de los recursos en la empresa, para una buena
gestión.

16
Conclusión

La programación no lineal tiene la limitante de la no existencia de un algoritmo


único para cualquier problema no lineal, tal como el método Simplex en
programación lineal, lo que hace más complicado su estudio. Muchos de los
problemas de programación no lineal requieren de software de computadora, para
alcanzar su solución completa, tal como <J paquete GINO, aunque, entre más
pequeño sea el error permisible E. es mejor su aproximación al punto óptimo. Los
métodos de dualidad lagrangiana se basan en L opinión de que son los
multiplicadores de Lagrange las incógnitas fundamentales asociadas a un
problema con restricciones, una vez conocidos estos multiplicadores, la
determinación del punto solución (al menos en algunas ocasiones) es sencilla. Por
lo tanto, los métodos duales no tratan directamente el problema con restricciones
original, sino que se aplican a un problema alternativo, el problema dual, cuyas
incógnitas son los multiplicadores de
Lagrange. Hay dos maneras diferentes, pero complementarias, de caracterizar la
solución a problemas de optimización sin restricciones. En el enfoque local se
examina la relación de un punto dado con sus vecinos. Con esto se llega a la
conclusión de que. en un punto mínimo relativo sin restricciones de una función
continua, el gradiente de la función se anula y el hessiano es definido positivo, ese
punto es un mínimo relativo. Esta caracterización se amplía al enfoque global,
donde la convexidad asegura que, si el gradiente se anula en un punto, ese punto
es un mínimo global.

17
Referencias

 Avriel, Mordecai (2003). Nonlinear Programming: Analysis and Methods. Dover


Publishing. ISBN 0-486-43227-0.
 Bazaraa, Mokhtar S. and Shetty, C. M. (1979). Nonlinear programming. Theory
and algorithms. John Wiley & Sons. ISBN 0-471-78610-1.
 Nocedal, Jorge and Wright, Stephen J. (1999). Numerical Optimization. Springer.
ISBN 0-387-98793-2.
 Bertsekas, Dimitri P. (1999). Nonlinear Programming: 2nd Edition. Athena
Scientific. ISBN 1-886529-00-0.
 Armiluno. 0.; Hdelman, J. y Garcia. I. "Programación no lineal",Lirnusa, 1 9R5.
 Bazarau. M.: Jarvis, J. y Sherali, II. "Linear Programming and Network Flows",
John Willcy and Sons. 1990.
 Bazaraa. M,; Sherali, J. y Shetty. C. "Nonlinear Programming" John Willey and
Sons.1993.
 LuenberLvr I). "Programación lineal y no lineal", Addison Wesley Iberoamericana.
1989
 Prawda. J.. "Métodos y Modelos de Investigación de Operaciones", Limusa,
1986.RLA (Mull of Research and Education Association). "The Operations
Research Prohlem SnUer". REA. 1989.
 Sivaslian. B.. Stanfel. L., "Optimización Teenies in Operations Research". Prentice
Hall. 1975
 Strang. G. "Karmarkar's Algoritm and Its Place in Applied Mathematics".
TheMathematical Intelligencer, Vol. 9, Springer Verlag. 1987.
 Taha, H. "Investigación de Operaciones", Alfaomega, 1991.
 Winston. W. "Investigación de operaciones". Grupo Editorial Iberoamérica. 1994.

18

También podría gustarte