Fibonacci Final
Fibonacci Final
Fibonacci Final
INVESTIGACIÓN OPERATIVA
TEMA: Programación no lineal
GRUPOS: 9,11,13
ALUMNOS:
1
ÍNDICE
Introducción 2
Marco teórico
Método de eliminación de regiones
Método de Fibonacci
Método sección dorada
Problema de eliminación de regiones
Método de la gradiente
Problema de gradiente
Método newton
Problema del método de Newton
Conclusiones
Bibliógrafa
2
INTRODUCCIÓN
La programación lineal ha demostrado ser una herramienta sumamente poderosa, tanto en la
modelización de problemas de la vida real como en la teoría matemática de amplia aplicación.
Sin embargo, muchos problemas interesantes de optimización son no lineales. El estudio de
estos problemas implica una mezcla diversa de álgebra lineal, cálculo multivariado, análisis
numérico y técnicas de computación. Entre las áreas especiales importantes se encuentra el
diseño de algoritmos de computación (incluidas las técnicas de puntos interiores para
programación lineal), la geometría y el análisis de conjuntos convexos y funciones, y el estudio
de problemas especialmente estructurados, tales como la programación cuadrática. La
optimización no lineal proporciona información fundamental para el análisis matemático, y se
usa extensamente en las ciencias aplicadas (en campos tales como el diseño de ingeniería, el
análisis de regresión, el control de inventario y en la exploración geofísica).
3
MARCO TEORICO
Métodos de eliminación de regiones
Este tipo de métodos se centra en la búsqueda de las soluciones óptimas mediante
sucesivas reducciones del intervalo de estudio y en la eliminación de subintervalos. Si la
función es unimodal, se puede definir un criterio para eliminar regiones donde seguro el
óptimo no se encuentra. Para ello necesitamos evaluar la función en dos puntos y aplicar
algo de lógica. En la figura siguiente se indica cual sería la región eliminada para los
tres casos posibles en la búsqueda de un máximo.
Es fundamental el hecho de que la función estudiada sea unimodal, al menos dentro del
dominio de interés. La utilidad de esta propiedad radica en el hecho de que si f(x) es
unimodal, entonces solamente es necesario comparar f(x) en dos puntos diferentes para
predecir en cuál de los subintervalos definidos por esos puntos no se va a encontrar el
óptimo. Cuando el subintervalo “sobreviviente” tenga una longitud suficientemente
pequeña, la búsqueda termina. La gran ventaja de estos métodos de búsqueda es que
solamente requieren evaluaciones de la función y no necesitamos ninguna hipótesis
adicional acerca de la derivabilidad de la misma.
Método Fibonacci
El método de búsqueda de Fibonacci es utilizado para obtener un punto óptimo en
funciones no diferenciables sin utilizar derivadas es decir, que no sean derivables en el
intervalo (a,b). Este método es muy eficiente para aproximar, bajo cierto margen de
error, un punto máximo o mínimo en funciones unimodales (la función tiene un solo
óptimo local o relativo) de una sola variable. Con este método se conoce ya el rango
inicial de búsqueda y en cada evaluación el método tiende a acorralar el punto óptimo.
Figura 1
A continuación (ver figura 2), se calcula el siguiente incremento D2 :
Figura 2
donde ,
y se define X3 como
5
En este caso se rechaza, queriendo decir que el óptimo se encuentra en el
intervalo . Así se genera un nuevo incremento . El proceso se repite hasta
llegar al número n de iteraciones prefijadas. Para un proceso de maximización se sigue
un mecanismo análogo al ya mencionado. La efectividad en este caso, 1/Fn , mide la
tolerancia del error en el entorno o vencidad del punto óptimo. Así, por ejemplo, si se
desea un error menor al 1%, se necesitan 11 evaluaciones de este método, puesto
que < 0.01 = 1%.
El método de Fibonacci adolece de dos graves defectos:
a. únicamente sirve para para funciones unimodales.
b. únicamente sirve para para funciones de una sola variable
Si la función de una sola variable es bimodal (que la función tiene dos óptimos locales o
relativos) o multimodal (quiere decir que la función tiene varios óptimos locales o
relativos), este método sólo localizará un óptimo local o relativo. Su gran ventaja es que
se le utiliza como una subrutina de búsqueda en los métodos de optimización de
problemas no restringidos en funciones de varias variables.
Método sección dorada
Uno de los problemas de la búsqueda de Fibonacci es que deben calcularse y
almacenarse los números de Fibonacci. Otro problema es que a cada iteración la
proporción de la región eliminada no es la misma. Para aliviar estas dos desventajas y
mantener el cálculo de una sola evaluación de la función objetivo por iteración, se usa el
método de la sección dorada.
En este algoritmo, el espacio de búsqueda (a, b) se mapea linealmente a un intervalo
unitario (0, 1). Posteriormente, dos puntos en τ desde cualquier extremo del espacio de
búsqueda se eligen en forma que a cada iteración la región eliminada sea de (1 − τ ) con
respecto a la iteración previa. Esto se puede lograr igualando 1 − τ con (τ × τ ). Esto
produce el número dorado: τ =0.618.
Al igual que en la búsqueda de Fibonacci, solo se requiere una evaluación de la función
objetivo por iteración y la eliminación regional efectiva por evaluación de la función es
exactamente 38.2 %, que es un valor más alto que en el método de división de
intervalos por la mitad. Esta cantidad es la misma que en la búsqueda de Fibonacci para
un valor grande de n. De hecho, para un valor grande de n, el método de Fibonacci es
equivalente a la sección dorada.
6
Problema (Método Fibonacci y Sección dorada)
En una compañía de petróleo se debe extraer x millones de barriles al año. El costo de
extracción es de 2𝑥 2 + 3750 al año y el precio de venta de cada barril es de $200.
Determinar la cantidad de barriles que se extrae y la máxima ganancia. Además, el
porcentaje de error es de 2% y el rango es de 0 <x<89
X: millones de barriles extraídos al año
Función objetivo:
• 𝑥1 = 33,98
• 𝑥2 = 89 − 33,98 = 55,02
• F(𝑥1 ) = f(33,98) =736,7192
• F(𝑥2 ) = f(55,02) = 1199,60
• Como F(𝑥1 ) <F(𝑥2 ), se rechaza el intervalo de 0<x<33,98
• Interacción 2. El rango de incertidumbre es: 33,98<x<89
• 𝐿1 = 89 − 33,98 = 55,02
𝐹 𝐹 13
• Δ2 = 𝐿1 𝐹𝑛−3 = 𝐿1 𝐹6 = 55,02(34) = 21,04
𝑛−1 8
7
• 𝑥5 = 33,98 + 12,94 =46,92
• 𝑥6 = 67,96 − 12,94 =55,02
• F(𝑥5 ) = f(46,92) = 1231,03
• F(𝑥6 ) = f(55,02) = 1199,6
• Como F(𝑥5 ) > F(𝑥6 ), se rechaza el intervalo de 55,02<x<67,96
• Interacción 4. El rango de incertidumbre es: 33,98<x <55,02
• 𝐿3 = 55,02 − 33,98= 21,04
𝐹 𝐹 5
• Δ4 = 𝐿3 𝐹𝑛−5 = 𝐿3 𝐹4 = 21,04(13) = 8,09
𝑛−3 6
8
• Interacción7. El rango de incertidumbre es: 46,93<x <51,78
• 𝐿6 = 51,78- 46,93= 4,85
𝐹 𝐹 1
• Δ7 = 𝐿6 𝐹𝑛−8 = 𝐿6 𝐹1 = 4,85(3) = 1,62
𝑛−6 3
9
Para el Problema
• f(x) = 200x - 2x² - 3750, caso: máx
Rango de incertidumbre < 0,89 >
Primera iteración
Segunda iteración
Tercera iteración
• f(X₁³) > f(X₂³) Rango <33,998;55,002>
• b⁴ = X₂³ = 55,002 X₁⁴ = 0,382(55,002 – 33,998) + 33,998 = 42,002
• X₂⁴ = X₁³ = 46,983 f(X₁⁴) = f (42,002) = 1122,70
• a⁴ = a³ = 33,998 f(X₂⁴) = f (46,983) = 1231,795
• K = 3+1 = 4
10
Cuarta iteración
• f(X₁⁴) < f(X₂⁴) Rango <42,022;55,002>
• a⁵ = X₁⁴ = 42,022 X₂⁵ = 0,618(55,002 – 42,022) + 42,022 = 50,056
• X₁⁵ = X₂⁴ = 46,983 f(X₁⁵) = f(46,983) = 1231,795
• b⁵ = b⁴ = 55,002 f(X₂⁵) = f(50,056) = 1249,994
• K = 4+1 = 5
Quinta iteración
Sexta iteración
Séptima iteración
• f(X₁⁷) < f(X₂⁷) Rango <48,876;51,939>
• a⁸ = X₁⁷ = 48,876 X₂⁸ = 0,618(51,939 – 48,876) + 48,876 = 50,769
• X₁⁸ = X₂⁷ = 50,056 f(X₁⁸) = f(50,056) = 1249,994
• b⁸ = b⁷ = 51,939 f(X₂⁸) = f(50,769) = 1248,817
• K = 7+1 = 8
11
Octava iteración
• f(X₁⁸) > f(X₂⁸) Rango <48,876;50,769>
• b⁹ = X₂⁸ = 50,769 X₁⁹ = 0,382(50,769 – 48,876) + 48,876 = 49,599
• X₂⁹ = X₁⁸ = 50,056 f(X₁⁹) = f(49,599) = 1249,678
• a⁹ = a⁸ = 48,876 f(X₂⁹) = f(50,056) = 1249,994
• K = 8+1 = 9
En Resumen
0 0≤ x ≤ 89 55,002 1199,96
12
Método de la gradiente
Método gradiente descenso
El método del descenso del gradiente es un algoritmo de optimización que permite
converger hacia el valor mínimo de una función mediante un proceso iterativo. En
aprendizaje automático básicamente se utiliza para minimizar una función que mide el
error de predicción del modelo en el conjunto de datos. A esta función de error se le
suele denominar función de coste e identificar con J(θ), en donde θ hace referencia a los
parámetros del modelo.
Para identificar el mínimo de la función el método del descenso del gradiente calcula la
derivada parcial respecto a cada parámetro en el punto de evaluación. La derivada
indica el valor y sentido en que se encuentra el mínimo más próximo. Este puede ser
tanto un mínimo local como global, el método no los puede diferenciar. El resultado de
la derivada se le resta a cada uno de los parámetros multiplicado por la velocidad de
aprendizaje. La velocidad de aprendizaje generalmente tiene un valor entre 0 y 1 e
indica lo rápido que converge el algoritmo. Es importante notar que es necesario
seleccionar un valor adecuado. Un valor demasiado bajo puede provocar que nunca se
alcance el mínimo. Por otro lado, un valor lo demasiado alto podría saltarse el mínimo.
El modo de funcionamiento básico del método del descenso del gradiente es
1. Inicializar los parámetros θ a un valor de inicio
2. Indicar la velocidad de aprendizaje del algoritmo (α)
3. Obtener la derivada de JJ en el punto θ
4. Sustraer la derivada por la velocidad de aprendizaje al valor actual del parámetro
5. Actualizar el valor de θ el nuevo valor
6. Comprobar el cambio en la actualización de los parámetros es inferior a un
fijado previamente (llamada criterio de parada).
7. En caso afirmativo finalizar la ejecución, en caso contrario volver al punto 3.
Problema
Optimización del proceso de granulación húmeda para la obtención de granulados de
lactosa monohidratada
En este trabajo se optimizó el proceso de granulación húmeda para obtener gránulos de
lactosa monohidratada, mediante un esquema conformado por dos fases, en la primera de
ellas se construyeron superficies de respuesta y en la segunda se aplicaron algoritmos de
programación no lineal sobre dicha superficie de respuesta.
Se usó un diseño experimental central compuesto de dos factores, con el cual se determinó
el efecto de la concentración de la polivinilpirrolidona (PVP) y del tiempo de mezclado
13
sólido-líquido sobre las propiedades de flujo, el tamaño de las partículas, la friabilidad y
el porcentaje de polvo fino de los granulados obtenidos.
Regresión múltiple
Tabla 3. Determinación de las ecuaciones matemáticas que representan a cada una de las
variables dependientes
14
Resultados
Método de newton
15
De acuerdo con la primera condición necesaria para que una función tuviera un mínimo
local se debe cumplir que f (x ') = 0. Por lo tanto, podemos aplicar el método de Newton
a la derivada, así:
Problema
16
• Ecuación de Van’t Hoff
𝑇 ∗𝑇 𝐾
• E=𝑇2−𝑇1 ∗ R ∗ ln(𝐾2)
2 1 1
• Ecuación de Arrhenius
−𝐸
𝐾2 = 𝐴 ∗ 𝑒 𝑅∗𝑇
Funciones
X=𝑘2
Y=E
𝑓1 (𝑥, 𝑦)=9120,3223 ln(x) –y +30839,40998
𝑓2 (𝑥, 𝑦)=2,8235*1013 ∗ (0,99839)𝑦 − 𝑥
Jacobiano
17
9120,3223/𝑥 −1
𝑠=[ ]
−1 −45537718050 ∗ (0,99839𝑦 )
18240,6446 −1
𝑠=[ ]
−1 −0,0005
Determinante
Matriz de coeficientes
18
Calculo de error
Segunda interacción
Tabla de resultados
Solución final
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.
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 simplex.
19
Un caso especial de programación separable ocurre cuando las funciones son convexas,
resultando así un espacio convexo de solución; además la función es convexa en caso de
minimización y cóncava en caso de maximización.
CONCLUSIONES
Concluimos que la programación es importante para la solución de problemas reales,
siendo la parte as importante la optimización. En la vida real se aplica con mayores
recurrencias la programación no lineal. Existen diversos métodos debido a que estos
tratan a los problemas con características específicas.
Encontraremos opciones para la resolución de un problema, pero hay algunas que son
más eficientes que otras o presentan un procedimiento menos dificultoso. En este
informe solo abarcamos la solución de problemas sin restricciones aplicados a
problemas de la vida real. Estos presentan la característica de ser unimodales de una
sola variable, es decir, presentan un punto mínimo o máximo, en el caso del método de
eliminación de regiones; en cambio en el método de la gradiente el caso son funciones
multivariables que pueden derivarse.
BIBLIOGAFIA
https://www.fio.unicen.edu.ar/usuario/cgely/q13-0/Apuntes/unidad4.pdf
https://www.analyticslane.com/2018/12/21/implementacion-del-metodo-descenso-
del-gradiente-en-python/
https://www.ugr.es/~proman/IO1Grado/PDF/Tema_8.pdf
https://www.uv.es/~sala/zumo.pdf
http://cb.mty.itesm.mx/materias/ma4011/materiales/a130-17.pdf
20