La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Gecode generic constraint development environment Pablo Martínez Bernardo.

Presentaciones similares


Presentación del tema: "Gecode generic constraint development environment Pablo Martínez Bernardo."— Transcripción de la presentación:

1 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 using namespace Gecode; #include 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 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 e(m); while (nReinas* s = e.next()) { s->print(); delete s; } return 0; }


Descargar ppt "Gecode generic constraint development environment Pablo Martínez Bernardo."

Presentaciones similares


Anuncios Google