martes, 24 de mayo de 2011

Web Interesante sobre Optimización

http://plato.asu.edu/guide.html

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

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.

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

sábado, 8 de enero de 2011

Latex referencias bibliograficas largas

Hacer que latex te corte las referencias bibliograficas largas con hyperlinks


\usepackage[breaklinks=true,colorlinks=true]{hyperref}

breaklinks: rompe los links.
colorlinks: colorea el texto.

miércoles, 1 de diciembre de 2010

Ordenar un hash de pares

$pair{$nfile+1} = [($n,$m)];


my @lpair = sort { ssPair($pair{$a},$pair{$b}) } keys %pair;

for(@lpair){
my $ref = $pair{$_};
my @a = @$ref;
print "'m = $a[1] n = $a[0]',\n";
$ref = $allcost{$_};
my @v = @$ref;
for(@v){
print $output "$_\n"
}
}


sub sPair{

my $ref1 = shift;
my $ref2 = shift;
my @aa = @$ref1;
my @bb = @$ref2;

if($aa[0] < $bb[0]){
return -1;
}
elsif($aa[0] == $bb[0] and $aa[1] < $bb[1]){
return -1;
}
elsif($aa[0] == $bb[0] and $aa[1] > $bb[1]){
return 1;
}
elsif($aa[0] == $bb[0] and $aa[1] == $bb[1])
{
return 0;
}
return 1;
}

martes, 23 de noviembre de 2010

UPC y ACM

La upc por fin ha creado un capítulo de estudiantes de la ACM. A los que se hagan miembros tendrán acceso a las publicaciones. Aquí teneis el link:

http://acm.ac.upc.edu/staff