[gecode-users] Implementing No-goods

Kish Shen kisshen at cisco.com
Wed Sep 11 21:14:12 CEST 2013


Hi,

I am posting this as a new message as my previous one had a spelling 
error (I was in a rush, sorry about that).

I am looking at implementing no-goods with restart search for ECLiPSe's 
interface. After posting my last message, I have thought more about 
this, and I now think I don't have to implement a master() function 
myself, because the default master() function post no-goods. I assume 
the default nogoods_limit is 0, so although the master() function does 
post no-goods by default, there are no no-goods to post unless the 
no-goods_limit is set to a value > 0, so the default behaviour is that 
there is no posting of no-goods when restarting the search. Is my 
understanding correct?

There is one more issue: are the no-goods remembered after the search (I 
guess this means if the no-goods are copied into the Space that is 
returned by next()). The reason I ask is that in ECLiPSe's Gecode 
interface, the user can perform as many searches on the same space as 
they want (persumably somewhat different searches, on different 
variables, and perhaps with more constraints). [I am talking about 
searches on the same branch of the (ECLiPSe) search tree, not some 
alternative on a different branch]

On a slightly different issue: I am wondering how restart search (with 
or without no-goods) works with DFS (or any other non-optimising search) 
if you want to search for more than one solution, i.e. when next() is 
called more than once. I expect that having returned a solution, another 
call to next() should return a different solution, but from my reading 
of the MPS, I think there has to be a no-goods posted for the previous 
solution, regardless of the settings of nogoods_limit. Is this correct? 
If so, how can this be done?

Even with this, am I correct to think using no-goods with searching for 
multiple solutions is probably not a good idea, as most heuristics would 
probably drive the search towards the first solution before finally 
failing because of the no-goods.

Cheers,

Kish



More information about the users mailing list