17
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

Metodos de programcion no lineal

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

11