PROGRAMACIÓN CON RESTRICCIONES MINION

Post on 23-Feb-2016

56 views 1 download

description

PROGRAMACIÓN CON RESTRICCIONES MINION. Adrián Rabadán Jurado Teresa Rodríguez Ferreira. INTRODUCCIÓN. - Comenzó el 9 Mayo 2007 - Sourceforge -Aún se encuentra en fase Beta. Podemos encontrar bugs - Código libre y abierto -Aplicaciones prácticas -Aplicaciones educativas - PowerPoint PPT Presentation

Transcript of PROGRAMACIÓN CON RESTRICCIONES MINION

PROGRAMACIÓN CON RESTRICCIONES

MINION

Adrián Rabadán JuradoTeresa Rodríguez Ferreira

INTRODUCCIÓN-Comenzó el 9 Mayo 2007-Sourceforge-Aún se encuentra en fase Beta. Podemos encontrar bugs-Código libre y abierto-Aplicaciones prácticas-Aplicaciones educativas

http://minion.sourceforge.net/

DOMINIOSBOOL:

-Dominio {0,1}-Estructura especialmente optimizada.

DISCRETE:-Rango de enteros-Uso de memoria y coste de las operaciones O(tamaño)

BOUND:-Rango de enteros-Uso de memoria y coste de las operaciones O(1)

SPARSEBOUND:-Idéntico a BOUND, pero permite saltos en el rango

SECCIONES OBLIGATORIAS

MINION 3

**VARIABLES**

**CONSTRAINTS**

**EOF**

MINION 3

**VARIABLES**

# Los comentarios van desde la almohadilla hasta # el final de la línea

BOOL bool BOUND b {1..3} DISCRETE d {1..3} SPARSEBOUND s {1,3,6,7}DISCRETE q[3] {0..5}BOOL matriz[2,2,2,2]

EJEMPLO: VARIABLES

**SEARCH**

# Esta sección es opcional

VARORDER [bool,b,d, q[_]] # Por defecto en el # orden de declaración

VALORDER [a,d,a,a] #Por defecto ascendente

MAXIMISING bool# MINIMISING b# Ambas se aceptan tanto con ‘s’ como con ‘z’

PRINT [bool, q]#También se pueden usar PRINT ALL y PRINT NONE

EJEMPLO: SEARCH

**CONSTRAINTS**

eq(bool, 0)alldiff(vector)product(x, y, 12)

weightedsumgeq([2,4], [b, d], 10)

EJEMPLO: CONSTRAINTS

**TUPLELIST**

# Formato: <nombre> <número de tuplas># <longitud tuplas> <valores>

Fred 3 30 2 32 0 33 1 3

Minions 2 2 1 2 3 4

EJEMPLO: TUPLELIST

# Se pueden repetir secciones

**VARIABLES**

**CONSTRAINTS**

#q[3]table([q], Fred)table([q],{<0,2,3>,<2,0,3>,<3,1,3>})

**EOF**

Todo el texto después del **EOF** se ignora

EJEMPLO: FIN DEL CÓDIGO

MINION 3

**VARIABLES**DISCRETE pigs {0..7}DISCRETE hens {0..7}

**SEARCH**PRINT [[pigs], [hens]]VARORDER [pigs, hens]

**CONSTRAINTS**weightedsumgeq([2,4], [hens, pigs], 22)weightedsumleq([2,4], [hens, pigs], 22)sumleq([hens, pigs], 7)sumgeq([hens, pigs], 7)

**EOF**

PROBLEMA DEL GRANJERO