[gecode-users] generation of a solution with success but no display at the console

manel askri askri.manel1 at gmail.com
Thu Jul 4 04:20:46 CEST 2013


hi every one!

i m new with gecode and this is my first model, it consists in displaying
the following result :

2 19 22 12 10
 11 13 18 17  6
 21 16  1  7 20
  8 14 15 24  4
 23  3  9  5 25
CSTE_65:65

so this is my code :
#include <gecode/int.hh>
#include <gecode/driver.hh>
#include <gecode/minimodel.hh>
#include <gecode/search.hh>

using namespace Gecode;

class E1 : public Space {
private :
 static const int n =5;
protected:

IntVarArray v1;

IntVar v2;

public:

E1(void) : v1(*this, n*n,1,n*n), v2(*this,n*(n*n+1)/2,n*(n*n+1)/2){
 distinct (*this, v1);
    IntVarArgs rowArray  (*this,n , 1, n);
    IntVarArgs  colArray  (*this,n , 1, n);
IntVarArgs diag1Array (*this,n , 1, n);
IntVarArgs diag2Array (*this,n , 1, n);

 //IntVarArgs sumConstraints ;

for (int i =0; i<n;i++)
{
for (int j=0; j<n; j++)
{
rowArray[j]= v1[i*n+1];
colArray[j]= v1[j*n+1];
}
 // rel (*this, sum(rowArray),IRT_EQ, v2);
      //  rel ( *this , sum(colArray), IRT_EQ ,v2);

    linear( *this , rowArray, IRT_EQ, v2);
linear( *this , colArray, IRT_EQ, v2);
diag1Array[i]=v1[i * n + i];
diag2Array[i]= v1[i*n+n-i-1];
}

//rel(*this , sum(diag1Array), IRT_EQ,v2);
//rel(*this, sum(diag2Array), IRT_EQ,v2);

 linear( *this , diag1Array, IRT_EQ, v2);
linear( *this , diag2Array, IRT_EQ, v2);


// post branching
branch(*this, v1, INT_VAR_SIZE_MIN(), INT_VAL_MIN());

}
       // search support
E1(bool share, E1& s) : Space(share, s) {
v1.update(*this, share, s.v1);
 }

virtual Space* copy(bool share) {
        return new E1(share,*this);
}

// print solution
void print(void) const  {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
 v1[i * n + j];
 std::cout << v1[i * n + j] << std::endl;
                                       }
                         }
                           }

};
// main function
int main(int argc, char* argv[]) {
  // create model and search engine
  E1* m = new E1;
  DFS<E1> e(m);
  delete m;
   // search and print all solutions
  while (E1* s = e.next()) {
    s->print(); delete s;
  }
  return 0;
}

my problem is that when i generat the solution i do it successfly but when
i use the command prompt to execute the executable the console displays
nothing
so please if any one have any idea obout this i will be so greatful

thanks very much for any help

ASKRI Manel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20130704/6130a608/attachment-0001.html>


More information about the users mailing list