Date post: | 06-Feb-2015 |
Category: |
Documents |
Upload: | octavio-morataya |
View: | 9 times |
Download: | 3 times |
PAGINA OFICIAL: http://minion.sourceforge.net/
DESCARGA: http://sourceforge.net/projects/minion/files/minion/0.14/
MANUAL: http://minion.sourceforge.net/files/Manual014.pdf
ENLACES DE INTERES
DESCARGA Y EJECUCION
• Desde el link de descarga, elegir la versión para nuestro SO
• No necesita instalación
• Se ejecuta como Minizinc:1. Desde consola2. Archivo y ejecutable en la misma carpeta3. 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
• 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 varMaximiza el valor de la variable
– MINIMISING varMinimiza el valor de la variable
SEARCH
• Imprimir resultado:
– PRINT[[var1], [var2],…, [varN]]Imprime las variables
– PRINT ALLImprime todas las variables en orden de declaracion
– PRINT NONEImprime la salida por defecto