Un problema de optimizacion es aquel que busco una salida la cual cumpla un criterio, un criterio maximización o minimización de una función que me indique tan buena o que tan costosa es una solución
- Mochila: Buscamos maximización la ganancia
- Secuencia mas larga: Maximizar el tamaño de la secuencia encontrada
- Multiplicacion de matrices: Minimizar el número de multiplicaciones
Un problema optimización se trata de buscar la mejor solución de acuerdo a una función que nos estima que tan buena es.
Fases¶
- Formulación matemática
- Construcción del modelo matematico
- Solución a través de un algoritmo (solver)
- Verificación de la solución
- Decisión a tomar de acuerdo a la solución
Este tipo de problema son llamado NLP, problemas de programación lineal
minimizar f(x)
subject to
g1(x) <= a ; menor o igual
g2(x) > b ; mayor
g3(x) >= c ; mayor o igual
g4(x) = d ; igual
g5(x) < e ; menor
m <= x <= n ; Las variables son acotadas
Region factible¶
Es una region en el plano acotada (finita) que contiene las soluciones validas para un problema
x,y
maximize f(x) = x+y
subject to:
x >= 0
y >= 0
x + y <= 1
Aquí tienes la versión corregida:
---
config:
themeVariables:
xyChart:
plotColorPalette: "#FF0000"
---
xychart-beta
title "Area factible"
x-axis "x" [0,1]
y-axis "y"
line [1,0]
Esto en minizinc se ve como
var int: x;
var int: y;
constraint x >= 0;
constraint y >= 0;
constraint x+y <= 1;
solve maximize x+y;
output[
"x =",show(x), " y=", show(y)]
Teorema de Wierstraas¶
Este teorema que si f es una función continua (optimización) si la evaluo en un conjunto cerrado (región acotada) voy a encontrar el maximo y el minimo es sus puntos borde
Este teormema se cumple sii la región es cerrada y acotada es finita, pero si la región no lo es, no podemos aplicar este problema dado que tenemos una región que no se encuentra limitada
Maximizar o minimizar¶
Si se tiene una función \(f(x)\) a maximizar es lo mismo que minimizar \(-f(x)\)
Tipos de variables¶
Los tipos de variables: - Constantes. Que tienen un valor especifico en el modelo o se calculan - Decisión: Son aquellas que vamos a buscar con el solver En general que tipos de datos tenemos:
- Continua (real)
- Binaria (0 o 1)
- Entera (1,2,3,4,)
- Discreta (10m, 20m, 30m)
Tipos de problemas NLP¶
- Programación lineal (LP)
- Programación Entera (IP)
- Programación binaria
- Programación entera mixta (MIP): Algunas son enteras y otras son continuas
- MINLP funciones no lineales
- QP Cuadratica
Este esta parte del curso nos vamos enfocar a 1,2,3 y 4
Forma general de problemas¶
- Funcion a maximizar o minimizar que es lineal
- Restriccion LE menor o igual
- Restricciones GE mayores o iguales
- Restricciones EQ igualdad
- Restricciones no negatividad (todas las variables deben ser positivas)