martes, 24 de mayo de 2011
jueves, 19 de mayo de 2011
GAMS: Running out of Memory
Para obligar a cplex que guarde los nodos de BB en el discoduro, evitando el molesto Running out of memory:
Creamos un fichero: cplex.opt
$onecho > cplex.opt
nodefileind = 2
$offecho
donde nodefileind = 2 guarda temporalmente los nodos por explorar en el discoduro.
porteriormente escribimos anter de invocar al solver
modelo.optfile=1
Suerte
Creamos un fichero: cplex.opt
$onecho > cplex.opt
nodefileind = 2
$offecho
donde nodefileind = 2 guarda temporalmente los nodos por explorar en el discoduro.
porteriormente escribimos anter de invocar al solver
modelo.optfile=1
Suerte
GAMS: Decimales en los displays y put
Para conseguir que gams muestre todos los decimales usando el comando display:
option nombre_param:x:y:z
x el número de decimales que quieres que muestre, en y columnas, en z filas.
Para que te escriba los decimales en un fichero con todas las cifras:
put nombre_param:x:y;
x el número de decimales.
Suerte.
option nombre_param:x:y:z
x el número de decimales que quieres que muestre, en y columnas, en z filas.
Para que te escriba los decimales en un fichero con todas las cifras:
put nombre_param:x:y;
x el número de decimales.
Suerte.
miércoles, 18 de mayo de 2011
GAMS: Cargar set y parámetros desde Excel
Muchas veces resulta bastante molesto tener que cambiar el fichero gms para hacer probar el programa con otros páramtros: Una manera para evitar esto, o por lo menos cambiar menos el fichero gms. Es utilizar cargar los parámetros y los set's directamente del Excel.
Los set's se tiene que declarar de esta manera:
SOL(*) solutions
los parámetros se dejan igual.
Con gdxxrw.exe gams genera un gdx a partir de un fichero excel, donde por cada set o cada párametro que gueramos guardar en el gdx escribimos esto:
set(o par)="nombre_set" rng(rango)=sheet!F1:F3 Rdim=1(numero de filas que ocupa la etiqueta, normalmente 1) Cdim=1(numero de columnas que ocupa la etiqueta, normalmete 1)
Ejemplo:
$call gdxxrw.exe ORed_v3.xls set=itt rng=simple!A2:A669 Rdim=1 set=sol rng=simple!A2:A669 Rdim=1 set=ob rng=simple!B1:M1 Cdim=1 par=impsol rng=simple!A1:M669 Rdim=1 Cdim=1
Posteriormente para cargar los valores se hace así:
$gdxin ORed_v3.gdx
$load ITT, SOL, OB
$gdxin
Importante, antes de cargar los valores de un paremetro se tienen que haber cargado sus sets.
Buena suerte
Los set's se tiene que declarar de esta manera:
SOL(*) solutions
los parámetros se dejan igual.
Con gdxxrw.exe gams genera un gdx a partir de un fichero excel, donde por cada set o cada párametro que gueramos guardar en el gdx escribimos esto:
set(o par)="nombre_set" rng(rango)=sheet!F1:F3 Rdim=1(numero de filas que ocupa la etiqueta, normalmente 1) Cdim=1(numero de columnas que ocupa la etiqueta, normalmete 1)
Ejemplo:
$call gdxxrw.exe ORed_v3.xls set=itt rng=simple!A2:A669 Rdim=1 set=sol rng=simple!A2:A669 Rdim=1 set=ob rng=simple!B1:M1 Cdim=1 par=impsol rng=simple!A1:M669 Rdim=1 Cdim=1
Posteriormente para cargar los valores se hace así:
$gdxin ORed_v3.gdx
$load ITT, SOL, OB
$gdxin
Importante, antes de cargar los valores de un paremetro se tienen que haber cargado sus sets.
Buena suerte
Suscribirse a:
Entradas (Atom)