On 06/01/2013 06:40 PM, Guido Tack wrote:
I guess the problem is that you only want to see x,y but you need to search on 
z,k first? That's a bit more tricky.
You can use a restart search engine, which restarts after each solution. Then 
for each solution you add the negation of the solution as a constraint in the 
root, e.g. (not (x==1 and y==1)). I'm not sure how well this scales if you have 
many solutions, but it could be worth a try.

Cheers,
Guido

On 31/05/2013, at 12:04, Christian Schulte <cschu...@kth.se> wrote:

Hi,

I am not sure whether I understand your question correctly. But you can
exchange the order of the search engine (that is, in my previous reply swap
e1 and e2).

Best
Christian

--
Christian Schulte, Professor of Computer Science, KTH,
www.ict.kth.se/~cschulte/


-----Original Message-----
From: users-boun...@gecode.org [mailto:users-boun...@gecode.org] On Behalf
Of Amina Kemmar
Sent: Friday, May 31, 2013 10:00 AM
To: users@gecode.org
Subject: [gecode-users] Display the values of a set of variable without
duplicates

Hello,

I already asked for the following problem:

According to the variables defined in our model (x,y,z,k), I obtained the
following solutions :
  1,1,2,3
  1,1,5,6
  1,1,7,9
  1.1,8,8
I am interested to the values of the two variable x and y, so I want to
avoid the enumeration of the three last solution in order to display just
the first solution.

I got the following response:

One way to do it is as follows:
  - You create a space s that only has a brancher for x and y
  - You create a search engine e1 for s and find a solution, say s1
  - You post a brancher in s1 for z and k.
  - You create a search engine e2 for s and find just a single solution!
  - You can then also get more solutions from e1 and repeat the previous two
steps.

Thank you for the solution, it works very well, but I have an other problem
which is the enumeration order of the variables x, y, z and k. I must begin
the branching from the variables  z and k, then x, y (In this way, Gecode
enumerates quickly the solutions but for the first order "x,y,z,k", it takes
about 30 minutes to enumerate the first solution).
Is there an other solution?

Thank you.
-----
Amina


_______________________________________________
Gecode users mailing list
users@gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users


_______________________________________________
Gecode users mailing list
users@gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users
Hi,

Thank you Guido for the response, this is exactly what I want to do, but I red the documentation (section 9.4) , and I added the following code to restart the search:

MyExample* s1 = new MyExample(opt);
Search::Options o;
Search::Cuttof* c = Search::Cuttof::constant(2);
o.cuttof = c;
RBS<DFS,MyExample> e3(s1, o);

I get some errors : ‘Cuttof’ is not a member of ‘Gecode::Search’

My second question is how to add a new constraint, after the restart search?

Thank you for your help.
cheers.

I get

_______________________________________________
Gecode users mailing list
users@gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users

Reply via email to