• No se han encontrado resultados

Programaci´ on Matem´ atica

N/A
N/A
Protected

Academic year: 2022

Share "Programaci´ on Matem´ atica"

Copied!
45
0
0

Texto completo

(1)

MC: Programaci´ on Matem´ atica Software

Melilla, Mayo 2014

V´ıctor Blanco Dpt. M´etodos Cuantitativos para la Econom´ıa y la Empresa UGR

(2)

Contenidos

1 Programaci´on Matem´atica

2 PhPSimplex

3 SOLVER MS Excel

4 Maxima

5 XPRESS

(3)

Programaci´ on Matem´ atica

m´ax (´o m´ın) f (x ) s.a.

x ∈ X

Programaci´on Lineal:

m´ax (´o m´ın) c1x1+· · · + cnxn

s.a.

a11x1+· · · + a1nxn ≤ (≥)b1

..

. ...

am1x1+· · · + amnxn ≤ (≥)bm

xi∈ R+

Programaci´on Entera OPT GEST EMPR 3 / 37

(4)

Programaci´ on Matem´ atica

m´ax (´o m´ın) f (x ) s.a.

x ∈ X

Programaci´on Lineal:

m´ax (´o m´ın) c1x1+· · · + cnxn

s.a.

a11x1+· · · + a1nxn ≤ (≥)b1

.. ..

(5)

Programaci´ on Matem´ atica

Programaci´on Lineal ENTERA

m´ax (´o m´ın) c1x1+· · · + cnxn

s.a.

a11x1+· · · + a1nxn ≤ (≥)b1

..

. ...

am1x1+· · · + amnxn ≤ (≥)bm

xi ENTEROS

Programaci´on Entera OPT GEST EMPR 4 / 37

(6)

Programaci´ on Matem´ atica

Programaci´on Lineal ENTERA

m´ax (´o m´ın) c1x1+· · · + cnxn

s.a.

a11x1+· · · + a1nxn ≤ (≥)b1

..

. ...

am1x1+· · · + amnxn ≤ (≥)bm

xi ENTEROS

(7)

Programaci´ on Matem´ atica

Programaci´on No Lineal:

m´ax (´o m´ın) f (x ) s.a.

g1(x ) ≤ (≥)0

..

. ...

gm(x ) ≤ (≥)0

Programaci´on Entera OPT GEST EMPR 5 / 37

(8)

Programaci´ on Matem´ atica

Programaci´on No Lineal:

m´ax (´o m´ın) f (x ) s.a.

g1(x ) ≤ (≥)0

..

. ...

gm(x ) ≤ (≥)0

(9)

Software disponible

• COIN-OR SYMPHONY GPL.

• AIMMS

• CPLEX

• Gurobi

• MOSEK

• TOMLAB

• XPRESS.

• Software c´alculo simb´olico generales: Maple, Matlab, wxmaxima, ..

• Phpsimplex

Programaci´on Entera OPT GEST EMPR 6 / 37

(10)

http://www.phpsimplex.com/

(11)

SOLVER de Excel

Resolver problemaspeque˜nossin sofware espec´ıcifico:

INSTALACI ´ON:

• Disponible en MS Excel desde Excel 2003...

• Herramientas→ Solver.

• Si no est´a instalado: Herramientas→ Complementos e instalarlo.

• Tambi´en para Mac desde MS Excel 2011 y para OpenOffice.

Programaci´on Entera OPT GEST EMPR 8 / 37

(12)

SOLVER de Excel

Resolver problemaspeque˜nossin sofware espec´ıcifico:

INSTALACI ´ON:

• Disponible en MS Excel desde Excel 2003...

• Herramientas→ Solver.

• Si no est´a instalado: Herramientas→ Complementos e instalarlo.

• Tambi´en para Mac desde MS Excel 2011 y para OpenOffice.

(13)

SOLVER de Excel: Men´ u

• Celda objetivo: debe indicar la celda donde se encuentra la f´ormula que calcula la funci´on objetivo a maximizar o minimizar.

• Valor de la celda objetivo: debe especificarse si la funci´on objetivo debe ser minimizada, o maximizada. Si la casilla Valores de se encuentra activada, la soluci´on buscada intentar´a que la funci´on objetivo sea igual al valor ah´ı indicado.

• Cambiando las celdas: contiene la ubicaci´on de las variables de decisi´on del problema.

• Sujeto a las siguientes restricciones→ Agregar.

Programaci´on Entera OPT GEST EMPR 9 / 37

(14)

SOLVER de Excel: Restricciones

• Referencia de celda: Especifica la ubicaci´on de la celda con la f´ormula correspondiente a la restricci´on que se va a a˜nadir.

• Tipo de restricci´on: Se pueden a˜nadir restricciones del tipo ≤, ≥, =, int, bin.

• Restricci´on: Para el caso de restricci´on tipo ≤, ≥, = debe especificarse aqu´ı un valor num´erico o una referencia a una celda con un valor constante (no una funci´on).

(15)

SOLVER de Excel: Opciones

Tiempo: N´umero de segundos antes de que Solver se detenga.

Iteraciones.

Precisi´on: Exactitud en los c´alculos num´ericos del algoritmo Solver.

Tolerancia: Se especifica para programaci´on entera. Indica un porcentaje dentro del cual se garantiza la optimalidad de la soluci´on.

Convergencia.

Adoptar modelo lineal: Algoritmos espec´ıficos para programaci´on lineal (y entera).

Asumir no negativos: si todas las variables son ≥ 0 (evita tener que escribirlas).

Usar escala autom´atica: En el caso de que varias variables y datos del problema tengan escalas muy diferentes, el marcar esta casilla realiza un ajuste en la misma.

Mostrar resultado de iteraciones: Marcar esta casilla en el caso de que se desee que Excel muestre la evoluci´on de las variables de decisi´on en cada una de las iteraciones del algoritmo, donde se va aproximando hacia el ´optimo.

Estimaci´on, Derivadas, Hallar por: Para programaci´on no lineal.

Programaci´on Entera OPT GEST EMPR 11 / 37

(16)

SOLVER de Excel: Ejemplo

Un granjero especializado en la explotaci´on de ganado, debe decidir qu´e piensos ha de comprar para la alimentaci´on de sus animales.

El cat´alogo de piensos disponibles es corto, ya que ´unicamente puede seleccionar 4 tipos de piensos, A, B, C, D. Cada uno de los piensos que puede adquirir tiene dos nutrientes M y N.

Las conversaciones con el veterinario de la granja le indican que las necesidades de ali- mentaci´on, medidas en kg de nutrientes que deben ingerir la suma de sus animales al d´ıa, es de 5500 kg de nutriente M y 8700 kg de nutriente N.

Las necesidades de alimentaci´on deben ser cubiertas a trav´es de las compras diarias de piensos que deben realizarse. Para ello el granjero se basa en datos del cat´alogo de cada pienso:

kg de nutriente M (por Ton) kg de nutriente N (por Ton) Coste (por Ton)

A 200 300 90

B 150 270 81

C 100 140 40

D 45 90 24

Teniendo en cuenta que el granjero s´olo puede comprar toneladas completas ¿Cu´antas toneladas de cada pienso debe comprar el granjero al d´ıa de tal manera que se satisfagan las necesidades de alimentaci´on, y el coste sea m´ınimo?

(17)

SOLVER de Excel: Ejemplo

Un granjero especializado en la explotaci´on de ganado, debe decidir qu´e piensos ha de comprar para la alimentaci´on de sus animales.

El cat´alogo de piensos disponibles es corto, ya que ´unicamente puede seleccionar 4 tipos de piensos, A, B, C, D. Cada uno de los piensos que puede adquirir tiene dos nutrientes M y N.

Las conversaciones con el veterinario de la granja le indican que las necesidades de ali- mentaci´on, medidas en kg de nutrientes que deben ingerir la suma de sus animales al d´ıa, es de 5500 kg de nutriente M y 8700 kg de nutriente N.

Las necesidades de alimentaci´on deben ser cubiertas a trav´es de las compras diarias de piensos que deben realizarse. Para ello el granjero se basa en datos del cat´alogo de cada pienso:

kg de nutriente M (por Ton) kg de nutriente N (por Ton) Coste (por Ton)

A 200 300 90

B 150 270 81

C 100 140 40

D 45 90 24

Teniendo en cuenta que el granjero s´olo puede comprar toneladas completas ¿Cu´antas toneladas de cada pienso debe comprar el granjero al d´ıa de tal manera que se satisfagan las necesidades de alimentaci´on, y el coste sea m´ınimo?

Programaci´on Entera OPT GEST EMPR 12 / 37

(18)

SOLVER de Excel: Ejemplo

Un granjero especializado en la explotaci´on de ganado, debe decidir qu´e piensos ha de comprar para la alimentaci´on de sus animales.

El cat´alogo de piensos disponibles es corto, ya que ´unicamente puede seleccionar 4 tipos de piensos, A, B, C, D. Cada uno de los piensos que puede adquirir tiene dos nutrientes M y N.

Las conversaciones con el veterinario de la granja le indican que las necesidades de ali- mentaci´on, medidas en kg de nutrientes que deben ingerir la suma de sus animales al d´ıa, es de 5500 kg de nutriente M y 8700 kg de nutriente N.

Las necesidades de alimentaci´on deben ser cubiertas a trav´es de las compras diarias de piensos que deben realizarse. Para ello el granjero se basa en datos del cat´alogo de cada pienso:

kg de nutriente M (por Ton) kg de nutriente N (por Ton) Coste (por Ton)

A 200 300 90

B 150 270 81

C 100 140 40

D 45 90 24

Teniendo en cuenta que el granjero s´olo puede comprar toneladas completas ¿Cu´antas toneladas de cada pienso debe comprar el granjero al d´ıa de tal manera que se satisfagan las necesidades de alimentaci´on, y el coste sea m´ınimo?

(19)

SOLVER de Excel: Ejemplo

Un granjero especializado en la explotaci´on de ganado, debe decidir qu´e piensos ha de comprar para la alimentaci´on de sus animales.

El cat´alogo de piensos disponibles es corto, ya que ´unicamente puede seleccionar 4 tipos de piensos, A, B, C, D. Cada uno de los piensos que puede adquirir tiene dos nutrientes M y N.

Las conversaciones con el veterinario de la granja le indican que las necesidades de ali- mentaci´on, medidas en kg de nutrientes que deben ingerir la suma de sus animales al d´ıa, es de 5500 kg de nutriente M y 8700 kg de nutriente N.

Las necesidades de alimentaci´on deben ser cubiertas a trav´es de las compras diarias de piensos que deben realizarse. Para ello el granjero se basa en datos del cat´alogo de cada pienso:

kg de nutriente M (por Ton) kg de nutriente N (por Ton) Coste (por Ton)

A 200 300 90

B 150 270 81

C 100 140 40

D 45 90 24

Teniendo en cuenta que el granjero s´olo puede comprar toneladas completas ¿Cu´antas toneladas de cada pienso debe comprar el granjero al d´ıa de tal manera que se satisfagan las necesidades de alimentaci´on, y el coste sea m´ınimo?

Programaci´on Entera OPT GEST EMPR 12 / 37

(20)

SOLVER de Excel: Ejemplo

Un granjero especializado en la explotaci´on de ganado, debe decidir qu´e piensos ha de comprar para la alimentaci´on de sus animales.

El cat´alogo de piensos disponibles es corto, ya que ´unicamente puede seleccionar 4 tipos de piensos, A, B, C, D. Cada uno de los piensos que puede adquirir tiene dos nutrientes M y N.

Las conversaciones con el veterinario de la granja le indican que las necesidades de ali- mentaci´on, medidas en kg de nutrientes que deben ingerir la suma de sus animales al d´ıa, es de 5500 kg de nutriente M y 8700 kg de nutriente N.

Las necesidades de alimentaci´on deben ser cubiertas a trav´es de las compras diarias de piensos que deben realizarse. Para ello el granjero se basa en datos del cat´alogo de cada pienso:

kg de nutriente M (por Ton) kg de nutriente N (por Ton) Coste (por Ton)

A 200 300 90

B 150 270 81

C 100 140 40

(21)

SOLVER de Excel: Ejemplo

xA: Toneladas de pienso A.

xB: Toneladas de pienso B.

xC: Toneladas de pienso C.

xD: Toneladas de pienso D.

• Coste:90xA+81xB+40xC+24xD.(min)

• Nutrientes M:200xA+150xB+100xC+45xD≥ 5500.

• Nutrientes N:300xA+270xB+140xC+90xD≥ 8700.

Programaci´on Entera OPT GEST EMPR 13 / 37

(22)

SOLVER de Excel: Ejemplo

DATOS:

VARIABLES:

(23)

SOLVER de Excel: Ejemplo

F. OBJETIVO:SUMAPRODUCTO(CELDAS DE LAS VARIABLES, CELDAS DE LOS COEFICIENTES DE LA F.OBJETIVO)

RESTRICCIONES:SUMAPRODUCTO(CELDAS DE LAS VARIABLES, CELDAS DE LOS COEFICIENTES DE RESTRICCION)

Programaci´on Entera OPT GEST EMPR 15 / 37

(24)

SOLVER de Excel: Ejemplo

(25)

SOLVER de Excel: Ejemplo

PAR´AMETROS:

RESTRICCIONES:

Programaci´on Entera OPT GEST EMPR 17 / 37

(26)

SOLVER de Excel: Ejemplo

SOLUCIONES:

(27)

SOLVER de Excel: Ejemplo

VENTAJAS:

• Accesible pr´acticamente desde cualquier ordenador.

• Sencillo de escribir.

• Facilidad para cambiar datos.

DESVENTAJAS:

• Complicado para problemas grandes.

• Poco margen de maniobra con par´ametros.

• No es r´apido.

• Exportar soluciones...

• Algoritmos b´asicos.

Programaci´on Entera OPT GEST EMPR 19 / 37

(28)

Maxima

• Software libre:http://maxima.sourceforge.net/

• Sistema de ´algebra computacional.

• Motor de c´alculo simb´olico escrito en lenguaje Lisp publicado bajo licencia GNU GPL.

• Manipula polinomios, matrices, funciones racionales, integrales, derivadas, gr´aficos, ...

• Proviene de Macsyma desarrollado por MIT en los a˜nos 70.

• Interfaz gr´afica: wxMaxima.

• Librer´ıas para resolver problemas de optimizaci´on.

• Similar en uso a Maple, Mathematica o Matlab.

(29)

Uso b´ asico de wxmaxima

Maxima como calculadora ( %i1) 2+2;

( %i2) 2*5;

( %i3) log(10);

( %i4) float( %o3);

( %i5) factor(292);

Definiciones:

( %i1) a:3$

b:4$

a+b;

( %i2) z:x^2 + y^2 - 2*x;

( %i3) f(x):=cos(exp(x));

( %i4) f(2);

( %i5) A: matrix([1,1,1,1], [0,1,0,1]);

Programaci´on Entera OPT GEST EMPR 21 / 37

(30)

Programaci´ on Lineal en maxima

( %i1)load("simplex")$

( %i2)minimize lp(x+y, [3*x+2*y>2, x+4*y>3]);

( %i3) A: matrix([1,1,-1,0], [2,-3,0,-1], [4,-5,0,0])$

( %i4) b: [1,1,6]$

( %i5) c: [1,-2,0,0]$

( %i6) linear program(A, b, c);

( %i7) minimize lp(x+y, [3*x+y=0, x+2*y>2]);

( %i8) minimize lp(x+y, [3*x+y>0, x+2*y>2]), nonegative lp=true;

( %i9) minimize lp(x+y, [3*x+y=0, x+2*y>2]), nonegative lp=true;

( %i10) minimize lp(x+y, [3*x+y>0]);

(31)

Programaci´ on No Lineal en maxima

m´ın x2+y2−7x

( %i1) f: x^2 + y^2 - 7*x;

( %i4) solve([diff(f,x), diff(f,y)]);

m´ın xy , s.a. x2+y2<=1.

( %i1) load(fmin cobyla)$

( %i2) fmin cobyla(x*y, [x, y], [1,1], constraints = [x^2+y^2<=1], iprint=1);

Programaci´on Entera OPT GEST EMPR 23 / 37

(32)

Xpress-IVE Mosel

¿Qu´e es XPRESS-Mosel?

• Interfaz para modelar problemas de forma sencilla.

• Que permite resolver de forma eficiente problemas de optimizaci´on (LP, MIP, MIQP, QCQP, NLP, MINLP) de forma eficiente.

• Lenguaje amigable de alto nivel que permite no solo modelar-resolver si no tambi´en dise˜nar algoritmos.

• Uso de datos externos.

• Usado tanto a nivel acad´emico como profesional.

• Permite uso gratuito para estudiantes y profesores.

• Dibuja soluciones y/o imprime y/o exporta en el formato deseado.

(33)

Xpress-IVE Mosel

Instalaci´on de XPRESS-Mosel

• Descargar XPRESS-Mosel versi´on gratuita estudiantes:

http://optimization.fico.com/student-version-of-fico-xpress.html (Guardar student.exe).

• Seguir instrucciones para instalar.

• Abrir XPRESS-IVE.

Programaci´on Entera OPT GEST EMPR 25 / 37

(34)

Xpress-IVE Mosel

Aspecto de XPRESS

(35)

Xpress-IVE Mosel

Partes de un modelo en XPRESS-Mosel PRE´AMBULO:

1 Comentarios:!Esto es un comentario

2 modelnombre del modelo

3 optionsOpciones extra (no obligatorio): nonimplicit, explterm, ...

4 useslibrer´ıas/paquetes extra de XPRESS para distintas funcionalidades: mmxprs, mmive

5 declarations:

Variables: mpvar (x: mpvar)

Par´ametros: array, integer real, ... (a: array(1..10, 1..5) of integer; b:

real)

Restricciones/Objetivo: linctr (W: linctr) end-declarations

6 Matrices:

a:[1 2 3 4 5 6]

Programaci´on Entera OPT GEST EMPR 27 / 37

(36)

Xpress-IVE Mosel

Formulaci´on:

• Funci´on Objetivo:Objetivo:= 2*x + 3*y+z, Coste:= 2.15*x - 3.7*y, ...

• Restricciones:x+y <= 6, R1: 23*x + 12* y >= 123, x+y+z=1

• Tipo de Variable:x is integer, x is binary, x is free, x is semint 5 (x es o 0 o un entero mayor o igual que 5), x is partint 7 (x es entero hasta el 7 y continuo si > 7). (por defecto x es no-negativa).

• Maximizar/Minimizar:maximize(Objetivo), minimize(Coste).

• Mostrar Soluciones:write("texto que se quiera", valor, "mas texto", ...) y writeln():

Valor Objetivo: getobjval.

Soluciones ´Optimas: getsol(x)

(37)

Xpress-IVE Mosel

Ejemplo:

model "Primer Ejemplo"

uses "mmxprs"

declarations x: mpvar y: mpvar Obj: linctr R: linctr end-declarations Obj:= x+y

R:= x+5*y >=24

x is integer y is partint 3 minimize(Obj)

writeln(.Obj: ", getobjval)

write("x=", getsol(x), ", y=", getsol(y)) end-model

Programaci´on Entera OPT GEST EMPR 29 / 37

(38)

Xpress-IVE Mosel

Resultados:

(39)

Xpress-IVE Mosel

Resultados:

Programaci´on Entera OPT GEST EMPR 31 / 37

(40)

XPRESS-IVE Mosel

Operadores para simplificar:

• Arrays:R: array(1..10) of linctr, a: array(1..3) of integer o definiendo N: 1..15, x: array(N) of mpvar

• Sumatorias:sum(i in 1..10) x(i), R:= sum(i in N) x(i) <=12

• Productos:prod(i in 1..10) i

• M´ax/M´ın de lista:max(i in 1..10) a(i), max(i in 1..10) a(i)

• Bucle For:forall(i in 1..10) x(i)<= a(i) forall(i in N) writeln("x(", i, ")=", getsol(x(i)))

• Condiciones :forall(i in N| a(i)!=0) x(i)>=21, forall(i in 1..10|getsol(x(i))>0) writeln("x(", i, ")=", getsol(x(i)))

(41)

XPRESS-IVE Mosel

Ejemplo:

Programaci´on Entera OPT GEST EMPR 33 / 37

(42)

XPRESS-IVE Mosel

Datos Externos:

initializations from ’datos.dat’ COSTES MATRIZA end-initializations donde datos.dat es:

COSTES: [1.5 2.6 3.7 4.8 5.9] MATRIZA: [4 8 15 16 23 42]

(43)

XPRESS-IVE Mosel

Par´ametros Optimizaci´on:

• MIPTOL: Tolerancia sobre la integralidad de las soluciones (por defecto 5 × 10−6).

• PRESOLVE: Si se aplican t´ecnicas de prerresoluci´on del problema para reducir variables, restricciones, ... (0: NO, 1: SI, 2: PARCIAL).

• BIGMMETHOD: Si utiliza para resolver s´ımplex el m´etodo de la M grande (1) o el de las dos fases (0).

• CUTDEPTH: M´axima profundidad del ´arbol Branch-and-bound.

• CUTSTRATEGY: Estrategia para a˜nadir cortes (-1:Autom´atica, 0: Sin cortes, 1:

conservadora, 2: moderada, 3: agresiva).

• VARSELECTION: Forma de escoger las variables para el branch-and-bound (-1:

autom´atica, 1...6: pesudo-costes m´ınimos (arriba y abajo) setparam("XPRS ?????", valor)

parameters MAXTIME=300 USE LOG=false end-parameters

Programaci´on Entera OPT GEST EMPR 35 / 37

(44)

XPRESS-IVE Mosel

Gr´aficos:

declarations graph : integer end-declarations graph:=IVEaddplot("Y(X)",IVE RGB(96,77,0))

• Punto: IVEdrawpoint(graph,10,3.14)

• L´ınea entre dos puntos: IVEdrawline(graph,5,5,10,8)

• Flecha: IVEdrawarrow(graph,5,5,10,8)

• Texto: IVEdrawlabel(graph,10,8,"Texto")

• Rect´angulo: IVEdrawrectangle(graph,5,5,10,8)

• Elipse: IVEdrawellipse(graph,5,5,10,8)

(45)

Modelos Cargados

Wizards→ Complete Models:

• Assignment.

• Bin packing.

• Bipartite Matching.

• Capital budgeting.

• Contract allocation.

• Covering.

• Cutting Stock.

• Facility Location.

• Flow-shop scheduling.

• Job shop sheduling.

• Knapsack.

• Line balancing.

• Lot sizing.

• Maximum flow.

• Minimim cost flow.

• Minimum weight spanning tree.

• Multicommodity network flow.

• Partitioning.

• Personnel planning.

• Portfolio optimization (QP).

• Production planning.

• Project planning.

• Purchasing with price breaks.

• Sequncing jobs in a machine.

• TSP.

• Timetabling.

• Transport.

• Vehicle routing.

M´as enProgramaci´http://examples.xpress.fico.com/example.plon Entera OPT GEST EMPR 37 / 37

Referencias

Documento similar

Como en el caso de los tipos enteros, los lenguajes suelen soportar varios tipos real, de modo que el programador pueda seleccionar aquel cuyo rango y precisi´on en el coeficiente

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

LABORATORIO DE MICROPÁLIONTOLOGIA. INFORME

Comprende los materiales que constituyen el núcleo del sinclinorio cen- tral de la zona. Y asimismo los del norte del anticlinal de Los Peñones. Se 'sitúa esta

La fidelidad y la sumisión incondicional en el terreno político al emperador son aquí un desenvol- vimiento de las relaciones peculiares de la clientela mí- Que estas ideas de

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de