PROGRAMACIÓN CON RESTRICCIONES MINION

10
PROGRAMACIÓN CON RESTRICCIONES MINION Adrián Rabadán Jurado Teresa Rodríguez Ferreira

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

Page 1: PROGRAMACIÓN CON  RESTRICCIONES MINION

PROGRAMACIÓN CON RESTRICCIONES

MINION

Adrián Rabadán JuradoTeresa Rodríguez Ferreira

Page 2: PROGRAMACIÓN CON  RESTRICCIONES MINION

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/

Page 3: PROGRAMACIÓN CON  RESTRICCIONES MINION

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

Page 4: PROGRAMACIÓN CON  RESTRICCIONES MINION

SECCIONES OBLIGATORIAS

MINION 3

**VARIABLES**

**CONSTRAINTS**

**EOF**

Page 5: PROGRAMACIÓN CON  RESTRICCIONES MINION

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

Page 6: PROGRAMACIÓN CON  RESTRICCIONES MINION

**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

Page 7: PROGRAMACIÓN CON  RESTRICCIONES MINION

**CONSTRAINTS**

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

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

EJEMPLO: CONSTRAINTS

Page 8: PROGRAMACIÓN CON  RESTRICCIONES MINION

**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

Page 9: PROGRAMACIÓN CON  RESTRICCIONES MINION

# 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

Page 10: PROGRAMACIÓN CON  RESTRICCIONES MINION

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