Upload
angel-jhoan
View
81
Download
7
Embed Size (px)
Citation preview
MÈTODOS
DE PROGRAMACIÓN NO LINEAL
Realizado por:
Angel Moquete
C.I. 19585770
Asignatura: Optimización de Sistema y Funciones
Sección: SAIA 3G
Prof. Alejandra Torres
Porlamar Marzo del 2017
INDICEPg.
INTRODUCCION......................................................................................................2
Algoritmos no Lineales Restringidos………………………………………………….3-6
Método de programación separable…………………………………………………..6-7
Método de programación cuadrática………..…………….…………………………..7-8
Método de programación geométrica…….………………………………………...…8-9
Método de programación estocástica……………………………………………………9
CONCLUSIÓN……………………………………………………………………………10
REFERENCIAS ELECTRONICAS……………………………………………………..11
INTRODUCCION
La Programación no Lineal (PNL) es una parte de la Investigación
Operativa, cuya finalidad 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.
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).
Esto 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.
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.
2Algoritmos no Lineales Restringidos
Los problemas de programación no lineal se presentan de muchas formas
distintas. Al contrario del método símplex 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
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.
El algoritmo sin restricciones se presentan dos algoritmos para el problema
no restringido: el algoritmo de búsqueda directa y el algoritmo de gradiente.
3Mé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
incertidumbre 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:
Si f(xx) > /(x2), entonces xL < x* < x2. Se definen xR = x2 e /, = (xL, x2)
(véase la figura 21.2[a]).
Si f(xx) < f(x2\ entonces xx < x* < xR. Se definen xL = xx e I¡ = (xh xR)
(véase la figura 21.1 [b]). .
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. 4
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/(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 reuso 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 /, = (jcl, 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 virtud de que recicla siempre un conjunto de los cálculos correspondientes a la
iteración inmediata anterior.
EJEMPLO
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. 5
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).
Método de 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 cualquier 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.
6
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 cualquier 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.
La utilidad de este sistema está relacionada con la alta volatilidad que tienen los
mercados, y es que con la oscilación de los activos subyacentes a veces se hace
difícil acertar en la dirección de la tendencia. En el caso del método Fibonacci,
éste nos ayudará precisamente con eso, ya que sirve para identificar el
comportamiento de los precios y nos ayuda a medir las subidas y bajadas de los
mismos.
Método de programación cuadrática
La programación cuadrática (QP) es el nombre que se le da a un
procedimiento que minimiza una función cuadrática de n variables sujeta a m
restricciones lineales de igualdad o desigualdad. Un programa cuadrático es la
forma más simple de problema no lineal con restricciones de desigualdad. La
importancia de la programación cuadrática es debida a que un gran número de
problemas aparecen de forma natural como cuadráticos (optimización por mínimos
cuadrados, con restricciones lineales), pero además es importante porque aparece
como un subproblema frecuentemente para resolver problemas no lineales más
complicados. Las técnicas propuestas para solucionar los problemas cuadráticos
tienen mucha similitud con la programación lineal.
Específicamente cada desigualdad debe ser satisfecha como igualdad. El
problema se reduce entonces a una búsqueda de vértices exactamente igual que
se hacía en programación lineal.
Donde c es un vector de coeficientes constantes; A es una matriz (m x n) y
se asume, en general que Q es una matriz simétrica.
7
Dado que las restricciones son lineales y presumiblemente independientes
la cualificación de las restricciones se satisface siempre, así pues, las condiciones
de Karush-KuhnTucker son también condiciones suficientes para obtener un
extremo, que será además un mínimo global si Q es definida positiva. Si Q no es
definida positiva el problema podría no estar acotado o llevar a mínimos locales.
La Programación Cuadrática juega un papel muy relevante en la teoría de
optimización lineal y no lineal pues guarda una relación muy estrecha con la
Programación Lineal y es un paso intermedio esencial para resolver eficazmente
problemas generales de Programación No Lineal.
Método de 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 deprogramacióngeomé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 posinomiales), 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.
8
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 posinomial, al igual que para problemas de
programación geométrica de otros tipos.
Método de programación estocástica
La Programación Estocástica reúne aquellos modelos de optimización en
donde uno o más parámetros del problema son modelados a través de variables
aleatorias. Una manera de enfrentar esta aleatoriedad consiste en reemplazar los
parámetros aleatorios por su valor esperado, lo cual lleva a resolver un problema
determinístico de programación matemática, los cuales son de especial interés en
cursos introductorios de Investigación de Operaciones y donde la variabilidad
inherente a los parámetros se aborda a través del Análisis de Sensibilidad o
Postoptimal.
No obstante, la solución obtenida de esta manera puede no ser
representativa de la realidad, al no considerar la dispersión de los valores que
toman los parámetros en torno al valor esperado, lo cual entre otras cosas puede
invalidar su implementación al resultar finalmente escenarios muy diferentes del
promedio.
De este modo y en general, una forma de incorporar esta situación de
incertidumbre es considerar un número finito de posibles realizaciones o
escenarios para los parámetros aleatorios.
9
CONCLUSIÓN
Luego de haber leído y desarrollado la presente investigación, se llegó a la
conclusión que la programación no lineal analiza la problemática general en la que
el objetivo f(x) o las restricciones gj(x) (o los dos) son funciones no lineales.
La mayoría de los métodos de programación no lineales utilizan el concepto de
gradiente de las funciones f(x) y gj(x) para calcular direcciones de descenso, es
decir de mejora de la función objetivo.
Cuando las funciones son convexas (caso por ejemplo de la programación lineal
continua), los algoritmos de descensos convergen hacia un óptimo global. En
general, estos algoritmos y los software correspondientes convergen solamente
hacia un óptimo local. Siempre que sea posible, es importante ejecutar estos
algoritmos a partir de varias soluciones iniciales diferentes con el fin de
seleccionar la mejor solución entre todas las encontradas.
Una problemática no lineal con restricciones puede convertirse en un problema sin
restricciones con la ayuda del multiplicador de Lagrange: este método consiste en
efecto en introducir en la función objetivo variables de holgura y un coste que
aumenta cuando disminuye la desviación (es decir, restricción saturada).
10
REFERENCIA ELECTRONICAS
http://investigacionoperacionesiupsm.blogspot.com/2013/07/programacion-
cuadratica-entera-y_4.html
http://www.gestiondeoperaciones.net/programacion_lineal/que-es-la-
programacion-estocastica/
https://karenbandala.wordpress.com/unidad-iii/3-3-problemas-no-restringidos-
programacion-no-lineal/