La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

generic constraint development environment

Presentaciones similares


Presentación del tema: "generic constraint development environment"— Transcripción de la presentación:

1 generic constraint development environment
Gecode generic constraint development environment Pablo Martínez Bernardo

2 Velocidad, MiniZinc Challenge
Medalla de oro en todas las categorías los años 2009, 2010, 2011 y 2012 En algunas categorías en 2008

3 Licencia MIT Licencia sencilla:
Los autores no son responsables de ningún problema causado por el funcionamiento del software Libre uso, modificación, venta, copia y publicación, siempre y cuando el software derivado sea publicado bajo una licencia idéntica

4 Características Primera versión en 2005 Extensa documentación
Librería disponible para C++ Ejecutable en hilos Exporta a FlatZinc Resolutores para enteros, reales y booleanos, así como otros específicos a problemas concretos

5 Integración con C++ Multiplataforma
Aprovechamiento de bucles, objetos… Posterior manejo sencillo de los datos obtenidos Contra: Sintaxis complicada en comparación con lenguajes dedicados como MiniZinc

6 Estructura de un programa
//includes class problema : public Space{ protected: //Variables de decisión public: //Constructores //Constraints //Método copy //Métodos auxiliares };

7 N-Reinas #include <gecode\int.hh> #include <gecode\search.hh> #include <gecode\driver.hh> using namespace Gecode; #include <iostream> using namespace std; class nReinas : public Space { protected: IntVarArray tablero; public: //Constructores //Método copy //Métodos auxiliares };

8 N-Reinas nReinas(const int tam) { tablero = IntVarArray(*this, tam, 0, tam-1); for (int i = 0; i < tam; i++){ for (int j = i + 1; j < tam; j++) { rel(*this, tablero[i] != tablero[j]); rel(*this, tablero[i]+i != tablero[j]+j); rel(*this, tablero[i]-i != tablero[j]-j); } branch(*this, tablero, INT_VAR_SIZE_MIN, INT_VAL_MIN);

9 N-Reinas void print() const {
nReinas(bool share, nReinas& s) : Space(share, s) { tablero.update(*this, share, s.tablero); } virtual Space* copy(bool share) { return new nReinas(share,*this); void print() const { for (int i = 0; i < tablero.size(); i++) { cout << tablero[i] << ", "; cout << endl;

10 N-Reinas int main(int argc, char* argv[]) { nReinas* m = new nReinas(50); DFS<nReinas> e(m); while (nReinas* s = e.next()) { s->print(); delete s; } return 0;


Descargar ppt "generic constraint development environment"

Presentaciones similares


Anuncios Google