150 likes | 342 Views
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
E N D
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: minionnombre_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 • MINION: • 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