ENLACES DE INTERES PAGINA OFICIAL: http://minion.sourceforge.net/ DESCARGA: http://sourceforge.net/projects/minion/files/minion/0.14/ MANUAL: http://minion.sourceforge.net/files/Manual014.pdf
DESCARGA Y EJECUCION Desde el link de descarga, elegir la versión para nuestro SO No necesita instalación Se ejecuta como Minizinc: Desde consola Archivo y ejecutable en la misma carpeta Escribir en consola: minion nombre_archivo.minion
PROPIEDADES DE MINION SOFTWARE AUTONOMO SOFTWARE GRATUITO DISPONIBLE PARA: Linux MacOS Windows
DESCARGA Y EJECUCION Ejemplo de ejecución:
ESQUELETO DEL FICHERO MINION 3 **VARIABLES** Definición y dominio **SEARCH** Modo de búsqueda e impresión del resultado **CONSTRAINTS** Imposición de restricciones **EOF** Fin del fichero
VARIABLES Y DOMINIOS BOOL: Dominio: {0,1} Ejemplo: BOOL encontrado DISCRETE: Dominio: Enteros Ejemplo: DISCRETE num {0..9}
VARIABLES Y DOMINIOS BOUND: Dominio: Intervalo de enteros Ejemplo: BOUND intervalo {1..3} SPARSEBOUND: Dominio: Intervalo arbitrario de enteros Ejemplo: SPARSEBOUND valores {1,3,6,7}
VARIABLES Y DOMINIOS SPARSEBOUND = BOUND Sí el dominio de SPARSEBOUND es un rango. Ejemplo: SPARSEBOUND valores {1..7} = BOUND intervalo {1..7} ARRAYS: Definición: tipo nombre [tamaño1,…,tamañoN] Ejemplo: DISCRETE vector [5]
CONSTRAINTS MINION VS.MINIZINC no tiene operadores (+, -, *, /, >, <) Para hacer operaciones utilizamos constraints Ejemplo igualar: Minizinc: constraint x=y; Minion: eq(x,y)
CONSTRAINTS eq(x,y): x=y diseq(x,y): x!=y minuseq(x,y): x=-y ineq(x,y,k): x<=y+k div(x,y,z): z=x/y
CONSTRAINTS product(x,y,z): z=x*y max(vec,x): x=valor máximo del vector element(vec,i,e): vec[i]=e alldiff(vec): todos los elementos distintos sumgeq(vec, c): sum(vec) >= c
SEARCH Modo de búsqueda: VARORDER[var1,var2,…,varN] Busca los valores de las variable s en el orden dado VALORDER[valor1,valor2,…,valorN] Busca el valor de cada variable a partir del valor dado MAXIMISING var Maximiza el valor de la variable MINIMISING var Minimiza el valor de la variable
SEARCH Imprimir resultado: PRINT[[var1], [var2],…, [varN]] Imprime las variables PRINT ALL Imprime todas las variables en orden de declaracion PRINT NONE Imprime la salida por defecto