Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Carrera:
1. PROGRAMACION NO LINEAL
2. APLICACIONES DE MUESTRA
EJEMPLO
Ilustración 1
Por lo tanto el costo unitario de producir y distribuir el artículo está fijo en c , la ganancia de la
empresa producir y vender x unidades está dada por la funciónno lineal : P ( x )=xp ( x ) −cx .
Ilustración 2
Productos de la empresa tiene una función de gran cada uno de los n productos de la empresa
tiene una función de ganancia parecida, por lo que la función objetivo global es una suma de
funciones no lineales.
n
f ( x ) =∑ P j ( x j )
j=i
A veces se dispone de descuentos por cantidad para volúmenes grandes con lo que el costo
marginal de enviar la unidad más puede seguir un patrón como el que se muestra a
contginuacion.
Ilustración 3
En consecuencia el costo que resulta de embarcar por unidades está dado por la función no
lineal C ( x ) qué es una función lineal por partes com pendiente igual al costo marginal, como
se muestra a continuación.
Ilustración 4
Consecuencia, si cada combinación de origen y destino tiene una función de costo similar, es
decir, si el costo de enviar x ij unidades del origen i (i=1,2,3 ,… , m ) al destino
j ( j=1,2,3 , … ,n ) está dado por la función no lineal C ij ( x ij ) , entonces la función objetivo
global que se va minimizar es.
m n
f ( x )=∑ ∑ Cij ( xij )
i=1 j=1
Aún con esta función objetivo no lineal es normal que las restricciones sean del tipo lineales
especiales que se ajustan al modelo de problemas de transporte.
Cuando un problema de programación no lineal tiene sólo una o dos variables, se puede
representar en forma gráfi ca de una manera muy parecida al ejemplo de la Wyndor Glass, de
programacion lineal.
2 2
El siguiente ejemplo tiene una restriccion no lineal 9 x 1+ 5 x 2 ≤216 en lugar de la segunda y
La solución óptima sigue siendo ( x i , x 2 )= (2,6 ). La solución óptima pudo haber sido FEV con
una función objetivo diferente ( verifique Z=3 x 1 + x 2), pero el hecho de que no necesite
serlo significa que ya no se puede aprovechar la gran simplifi cación que se utiliza en
programación lineal que permite limitar la búsqueda de una solución óptima para las
soluciones FEV.
2 2
Supongamos que supongamos que Z=54 x 1−9 x 1+78 x 2−13 x 2 , donde la solución óptima
es ( x 1 , x 2 )=( 3,3 ), que está dentro de la región factible. Por lo que es necesario que un
algoritmo general resuelva el problema de este tipo y tome en cuenta todas las soluciones en
la región factible y no sólo aquellas que están sobre la frontera.
Ilustración 6
Estos tipos de problemas se pueden mostrar de muchas formas distintas. Diferente el método
simplex para la programación lineal no dispone de un algoritmo que resuelva todos estos tipos
de especiales problemas. Sino que se han desarrollado algoritmos para algunas clases de
problemas de programación no lineal.
OPTIMIZACIÓN NO RESTRINGIDA
Estos no tienen restricciones, entonces la función objetivo es sencillamente maximizar f ( x )
sobre todos los valores de x. La condición necesaria para que una solución específica de x sea
óptima es una función diferenciable.
∂f
=0 en x=x ¿ , para j=1,2 , … ,n .
∂x j
¿
Cuendo f ( x ) es cóncava la condición también es suficiente, por lo que se obtenga de x se
reduce a resolver el sistema de las n ecuaciones que obtuvieron al estar en la n derivadas
parciales iguales a cero. Cuando se trata de funciones no lineales f ( x ) las ecuaciones también
suelen ser no lineales en este caso es poco probable que se pueda obtener una solución
analítica simultánea. Lo que se puede hacer es pero sedimentos algorítmicos de búsqueda
para encontrar x , primero para n=1 y luego para números mayores de uno.
tipo.
Ilustración 8
La solución óptima de un problema con una sola variable es x igual a cero aún cuando la
derivada ahí es negativa y no cero. Como el ejemplo visto tiene una función cóncava para
maximizar sujeta a una restricción de no negatividad, su derivada será menor o igual a cero en
x igual a cero, es una condición necesaria y suficiente para que x sea igual a cero y sea óptima.
Un problema que tiene algunas restricciones de no negatividad y que no tiene restricciones
PROGRAMACIÓN CUADRÁTICA
Estas tienen restricciones lineales, ahora son objetivo puede ser cuadrática. Entonces la única
diferencia entre esto y un problema de programación lineal es que algunos términos de la
función objetivo incluyen el cuadrado de una variable a un producto de dos variables. Se han
desarrollado muchos algoritmos para manejar este caso, el supuesto adicional de que la
función objetivo es cóncava. La programación cuadrática es muy importante porque las
formulaciones de este tipo surgen de manera natural natural en muchas aplicaciones. Sin
embargo otra razón por la que es importante es que al resolver problemas generales de
optimización restringida literalmente se puede obtener la solución de una sucesión de
aproximaciones de programación cuadrática.
PROGRAMACIÓN CONVEXA
Esta abarca una amplia clase de problemas, entre los cuales, como casos especiales, se puede
mencionar todos los tipos anteriores cuando la función objetivo es una función cóncava que
debe maximizarse.
Estos supuestos son suficientes para asegurar que un máximo local es un global
PROGRAMACIÓN SEPARABLE
Esta es un caso ese especial de la programación convexa, en donde el supuesto adicional es
La función separable es una función que cada término incluye una sola variable por lo que la
función se puede separar en la suma de funciones de varias variables individuales.
PROGRAMACIÓN NO CONVEXA
Esto incluye todos los problemas de programación no lineal que no satisfacen los supuestos de
programación convexa. Aun cuando se tenga éxito en encontrar un máximo local, no hay una
garantía de que sea también un máximo global. Entonces no se cuenta con un algoritmo que
garantice encontrar una solución óptima para todos estos problemas, sin embargo existen
algunos algoritmos adecuados para encontrar máximos locales, en especial cuando las formas
de funciones no lineales no se desvían demasiado de aquellas de su uso para programación
convexa se pueden resolver sin muchas dificultades mediante métodos especiales.
PROGRAMACIÓN GEOMÉTRICA
Cuando se aplica programación de alinear a problemas de diseño de ingeniería, muchas veces
N
la función objetivo y las funciones de restricción toman la forma g ( x )=∑ C i Pi ( x ) donde
i=1
ai 1 ai2 a¿
Pi ( x ) =x x … x para i=1,2 , … , N .
1 2 n,
En estos casos, C i y a ij con las frecuencias representan las constantes físicas mientras que XJ
son las variables de diseño estas funciones por lo general son no cónvexas, por lo que las
técnicas de programación convexa no se pueden aplicar en esta forma directa a estos
problemas de programación geométrica. Pero existe un caso importante en el que el problema
se puede transformar en un problema de programación convexa equivalente. Este caso es
donde todos los coeficientes C i de cada función son estrictamente positivos o sea las
funciones son polinomios positivos generalizados y la función objetivo se tiene que minimizar.
PROGRAMACIÓN FRACCIONAL
Este procedimiento de búsqueda siempre se puede aplicar cuando f ( x ) es cóncava, la
segunda derivada sea negativa o cero para toda x , la segunda derivada sea negativa o cero
¿
para toda x es que
Ilustración 9
df ( x )
>0 si x < x∗¿
dx
df ( x )
=0 si x < x∗¿
dx
df ( x )
<0 si x < x∗¿
dx
Estas condiciones se cumplen de manera automática si la función objetivo es cóncava y
también se pueden cumplir cuando la segunda derivada es positiva para algunos los valores de
x. La idea se viene del método de bisección, ya que es intuitiva si la mejora respectiva cae de
inmediato a la derecha o izquierda. De esta forma si la derivada evalúa en un valor particular
de x es positiva entonces x* debe ser mayor que dicha x de manera que ésta se convierte en
una cata inferior para las soluciones de prueba que deben considerarse de este punto en
adelante. De manera inversa si la derivada es negativa entonces x* debe ser menor que está x
por lo que ésta se convertirá en una cata superior. Después de que se han identificado ambos
tipos de cotas cada nueva solución de prueba seleccionada entre las cotas actuales
proporciona un intervalo más estrecho de Angulo de los 2 tipos con lo que reduce la búsqueda
de ahí en adelante. Cuando se usa una regla razonable para seleccionar cada solución de
prueba de esta forma la secuencia resultante de soluciones de prueba debe converger a x*.
RESUMEN
1. Seleccione la tolerancia de error de x y encuentre la cota inferior actual para x y cota
superior a la actual para x iniciales por inspección o mediante la ubicación de
cualesquiera valores respectivos de x en los cuales ha derivado hacia positiva y
negativa.
a. Itera
2. Realice la regla de detención.
PROBLEMAS DE COMPLEMENTARIEDAD
Aunque el método de bisección es un procedimiento intuitivo y directo, tiene la desventaja de
que converge de una manera relativamente lenta hacia una solución óptima. Para reducir esta
tolerancia al error a menos de 0.0001 se requerirían otras siete iteraciones.
RESUMEN
1. Seleccionar ∈ encontrar la solucion de prueba inicial x i por inspeccion. Establecer i=1
.
2. Iterar
' ''
a. Calcular f ( x i ) y f ( x i)
'
f ( xi )
b. Establecemos x i+1=x i−
f '' ( xi )
3. Realizmos regla de detencion.
Existen varios procedimientos de busqueda para serolver estos problemas. Uno de estos “el
procedimiento de busqueda del gradiante”, este identifica y utiliza la direccion de mivimiento,
desde la solucion de prueba actual, maximiza a la taza actual se incrementa f(x). esta idea es
caracteristica central de muchos algoritmos que utilizan para llevar acabo una optimizacion
restringida.
METODO DE BISECCION
1. Elejimos ∈ y cualquier solucion de prueba inicial x’. Vaya a la regla de detencion.
2. Iteracion
df ( x )
a. Evaluar para x=x’
dx
df ( x )
b. Evaluar ≥ 0 redefina x =x’
dx
df ( x )
c. Evaluar ≤ 0 redefina x =x’
dx
' +¿˙ x
d. Seleccionar una nueva x =x ¿
2
3. Realizmos regla de detencion.
Aquí La meta era alcanzar, en algún momento, un punto en el que la derivada fuera de cero. Ya
que se tienen inumerables direcciones hacia donde moverse, esto corresponde a las tasas de
proporcionales posibles donde las respectivas variables pueden variar.
x j= x' j +t
( ∂∂xf )
j x= x
'
, para j 1, 2, . . . , n, y después sustituya estas expresiones
en f (x).
b. Utilizamos el procedimiento de busqueda en una dimension para encontrar t-
t* que maximiza f ( x' +t ∇ f ( x ' ) ) para t ≥ 0.
c. Establezca x ' =x ' +t∗∇ f ( x ' ) despues pase a la reglas de detencion.
3. Realizmos regla de detencion
Debe hacerse notar que el cumplimiento de estas condiciones no garantiza que la solución sea
óptima. Como se resume en la última columna de la tabla 12.4, son necesarios ciertos
supuestos de convexidad adicionales para obtener esta garantía. Estos supuestos se
establecen de manera formal en la siguiente extensión del teorema.
EJEMPLO:
Maximizar f ( x )=l n ( x 1+ 1 ) + x2 ,sujeta a 2 x1 + x 2 ≤ 3y x 1 ≥ 0, x 2 ≥ 0,
donde ln denota el logaritmo natural. De esta forma, m=1 (una restricción funcional) y
g1 ( x)=2 x 1 + x 2, de manera que g1 ( x) es convexa. Aún más, es fácil verificar que f ( x) es
cóncava. Entonces se puede aplicar el corolario, por lo que cualquier solución que satisfaga las
condiciones KKT será en definitiva una solución óptima. Al aplicar las fórmulas en el teorema,
se obtienen las siguientes condiciones KKT para este ejemplo:
1
1. ( j=1 ) . −2 u ≤10.
x1
2. ( j=1 ) . x 1 ( 1 x 1 ± 2u 1) =0.
1. ( j=2 ) . 1−u 1 ≤ 0.
2. ( j=2 ) . x 2 ( 1−u1 )=0.
3. 2 x1 + x 2−3 ≤ 0.
4. u 1 ( 2 x 1 + x 2−3 )=0.
5. x 1 ≥ 0 , x1 ≥ 0.
6. u1 ≥0.
A continuación se describen los pasos para resolver las condiciones KKT para este ejemplo.
Por lo tanto, existe un número u1=1 tal que x 1=0 , x 2=3 y x 1=1 satisfacen todas las
¿
condiciones. En consecuencia, x =(0,3)es una solución óptima para este problema.
8. PROGRAMACION CUADRATICA
Para concretar, primero considere el ejemplo anterior. A partir de la forma que se presentó en
la sección anterior, sus condiciones KKT son las siguientes.
Para poder expresar estas condiciones en una forma más conveniente, se mueven las
constantes de las condiciones 1 ( j=1 ) , 1 ( j=2 ) y 3 al lado derecho y después se introducen
variables de holgura no negativas (denotadas por y 1 , y 2 y v 1 , respectivamente) para convertir
estas desigualdades en ecuaciones.
1( j=1).−4 x 1 +4 x 2−u 1+ y 1 =−15
1( j=2). 4 x 1 +8 x 2−2 u1+ y 2=−30
3. x1 +2 x 2+ v 1=30
Observe que la condición2( j=1) se puede expresar ahora en forma simple como la necesidad
de que se cumpla una de las dos, x 1=0 o y 1=0 ; esto es,
2( j=1). x 1 y 1=0.
Exactamente en la misma forma, las condiciones 2( j=2) y 4 se pueden sustituir por
2( j=2). x 2 y 2=0.
4. u1 v 1=0.
Para cada uno de estos tres pares las dos variables se llaman variables complementarias,
porque sólo una de las dos puede ser diferente de cero. Estas nuevas formas de las
condiciones 2( j=1), 2( j=2) y 4 se pueden combinar en una restricción,
x 1 y 1 + x 2 y 2 +u1 v 1=0 ,
llamada restricción de complementariedad.
Después de multiplicar las ecuaciones de las condiciones 1( j=1) y 1( j=2) por – 1 para
obtener lados derechos no negativos, se obtiene la forma deseada del conjunto completo de
condiciones:
4 x1 −4 x 2 +u1− y 1=15
−4 x1 −8 x2 +2 u1− y 2=+30
x 1+ 2 x 2 +v =30
x 1 ≥ 0 , x2 ≥ 0 ,u 1 ≥ 0 , y 1 ≥ 0 , y2 ≥ 0 , v 1 ≥ 0
x 1 y 1 + x 2 y 2 +u1 v 1=0
Esta forma es en especial conveniente puesto que excepto por la restricción de
complementariedad, estas condiciones son restricciones de programación lineal.
En cualquier problema de programación cuadrática, sus condiciones KKT se pueden reducir de
la misma forma conveniente que contiene sólo restricciones de programación lineal y una
restricción de complementariedad.
9. PROGRAMACION SEPARABLE
Ahora se estudiará otra clase llamada programación separable, para la que se puede encontrar
una aproximación tan cercana como se quiera con un problema de programación lineal que
tiene un número mayor de variables. La programación separable supone que la función
objetivo f ( x) es cóncava, todas las restricciones gi (x) son convexas y todas estas funciones
son funciones separables (lo que signifi ca que cada término incluye una sola variable). Sin
embargo, para simpli-fi car la presentación, esta sección se centra en el caso especial en el que
las funciones gi ( x) convexas y separables, en realidad son funciones lineales como las de
programación lineal. En consecuencia, sólo la función objetivo requerirá un tratamiento
especial.
Las curvas cóncavas de la ganancia se presentan con mucha frecuencia. Por ejemplo, puede ser
posible vender una cantidad limitada de algún producto a un cierto precio y después una
cantidad adicional a un precio menor, y tal vez, otra cantidad adicional a un precio todavía
menor. Deigual manera, puede ser necesario comprar materias primas a fuentes cada vez más
costosas. Otra situación común es aquella en la que debe emplearse un proceso de producción
más caro, para aumentar la tasa de producción sobre cierta cantidad.
Este tipo de situaciones puede conducir a cualquiera de las curvas de ganancia que se mues-
tran en la fi gura 12.15. En el caso 1, la pendiente decrece por intervalos, de manera que
f j ( x j ) es una función lineal por partes. En el caso 2, la pendiente puede decrecer en forma
continua al aumentar x j , de manera que f j (x j ) es una funcióncóncava general. Cualquier
función de este tipo se puede aproximar tanto como se quiera por unafunción lineal por partes
y este tipo de aproximación se usa, según sea necesario, para problemas de programación
separable.
Ilustración 11
Ilustración 12
En esta sección se presentarán de manera breve algunos tipos de enfoques que se utilizan para
resolver el problema general de programación convexa [donde la función objetivo f (x) que se
debe maximizar es cóncava y las funciones de restricción gi (x) son convexas] y después se
presentará un ejemplo de un algoritmo para programación convexa. No existe un algoritmo
estándar único que se pueda usar siempre para resolver problemas de programación convexa.
Se han desarrollado muchos algoritmos diferentes, cada uno con ventajas desventajas, y la
investigación continúa activa en esta área. En términos generales, la mayor parte de estos
algoritmos cae dentro de alguna de las tres categorías siguientes.
Una categoría la constituyen los algoritmos de gradiente, en los que se modifi ca de alguna
manera el procedimiento de búsqueda del gradiente de la sección 12.5 para evitar que la
trayectoria de búsqueda penetre la frontera de restricción. Por ejemplo, un método popular es
el método de gradiente reducido generalizado (GRG). El Excel Solver emplea el método GRG
para resolver problemas de programación convexa. (Como se explica en la sección siguiente, el
Premium Solver también incluye una opción evolutiva que fue diseñada para tratar con
problemas de programación no convexa.)
hay muchos tipos diferentes de problemas de programación no convexa. Algunos son mucho
más difíciles de resolver que otros.
Por ejemplo, un problema de maximización donde la función objetivo está cerca de ser
convexa por lo general es mucho más difícil de resolver que uno donde la función objetivo es
casi cóncava.
Como ejemplo, LINDO Systems (cuyos procedimientos son LINDO, LINGO y What’s Best!) ha
incorporado un optimizador global en el solucionador avanzado que comparten algunos de sus
productos de software. En particular, LINGO y What’s Best! tienen una función de inicio
múltiple para generar de manera automática un número de puntos de inicio para su
solucionador de programación no lineal con el fi n de encontrar con rapidez una buena
situación. Si se selecciona la opción global,en seguida estos paquetes emplean el optimizador
global. Este optimizador convierte un problema de programación no convexa (incluso aquellos
cuya formulación involucra funciones lógicas como IF, AND, OR y NOT) en algunos
subproblemas que son solturas de programación convexa de partes del problema original.
Después se utiliza la técnica de ramifi cación y acotamiento para buscar de manera exhaustiva
entre los subproblemas. Una vez que el procedimiento llega a su terminación, se garantiza que
la función que se encuentre sea una solución óptima global. (La otra conclusión posible es que
el problema no tenga soluciones factibles.) La versión para estudiantes de este optimizador
global se incluye en la versión de LINGO que se proporciona en el sitio en internet de este
libro. Sin embargo, está limitado a problemas relativamente pequeños (con un máximo de
cinco variables). La versión profesional del optimizador global ha resuelto algunos problemas
mucho más grandes.
CONCLUCIONES
Algunas veces es viable reformular las no linealidades para que se ajusten al formato de
programación lineal, como se puede hacer con los inconvenientes de programación separable.
A la inversa del caso del procedimiento simplex para programación lineal, no existe un
algoritmo eficiente que se logre usar para solucionar todos los problema de programación no
lineal. Por cierto, ciertos de dichos inconvenientes son imposibles de solucionar
satisfactoriamente por ningún procedimiento, empero se hicieron enormes progresos en
ciertas clases relevantes de inconvenientes que integran programación cuadrática,
programación convexa y ciertos tipos especiales de programación no convexa, Se dispone de
una extensa variedad de algoritmos que casi continuamente poseen un óptimo manejo en
dichos casos.
REFERENCIAS