Oh, don't worry about performance... That's miniscule compared to propagation.
Branchers are always executed, even if all variables are assigned (but the might not generate any branches then). Cheers Christian -- Christian Schulte, Professor of Computer Science, KTH, www.ict.kth.se/~cschulte/ -----Original Message----- From: Martin Mann [mailto:mm...@informatik.uni-freiburg.de] Sent: Tuesday, April 30, 2013 10:27 AM To: cschu...@kth.se Cc: 'gecode user list' Subject: Re: [gecode-users] order of "wait" statements maintained? Another question arised when posting this branch(*this, A, ..); branch( *this, &checkA ); branch(*this, B, ..); wait( *this, A+B, &checkB ); I thought about replacing the wait with another branch call. But are branchers always called even if all variables are assigned? Or is the given solution better than the "4-branch-option"? And where is the true difference also for performance etc.? Guess the wait call does more checks on the domains?!? Thanks, Martin Am 30.04.2013 09:58, schrieb Martin Mann: > > Hi Christian, > > guessed as much.. mhh.. think the additional bool var wont be a > problem but I will give the branch call with &checkA a first try, > since it keeps the CSP small without further variables etc. > > Thanks for you help, > Martin > > > Am 29.04.2013 20:06, schrieb Christian Schulte: >> Hi Martin, >> >> There is no order among several waits. You could either use branch >> with a function as you suggested (calling status is in fact fine) or >> you could encode the order yourself. Make checkA and checkB assign a >> variable and then you wait on these variables as well. Would that do? >> >> Cheers >> Christian >> >> -- >> Christian Schulte, www.ict.kth.se/~cschulte/ >> >> >>> -----Original Message----- >>> From: users-boun...@gecode.org [mailto:users-boun...@gecode.org] On >>> Behalf Of Martin Mann >>> Sent: Monday, April 29, 2013 5:39 PM >>> To: gecode user list >>> Subject: [gecode-users] order of "wait" statements maintained? >>> >>> >>> Hi everybody, >>> >>> for some processing, I post something like this in my Space >>> constructor >>> >>> wait( *this, A, &checkA); >>> wait( *this, B, &checkB); >>> wait( *this, A+B, &printAB); >>> >>> branch( *this, A, .. ); >>> branch( *this, B, .. ); >>> >>> to do some dedicated successive checks on assignments of A, B and >>> both A >> and >>> B. >>> >>> Since my last printAB depends on the outcome of both checkA and >>> checkB >> (both >>> might make the CSP fail) I need to know if the processing order of >>> the >> wait >>> statements the same as their posting order within the constructor... >>> :/ >>> >>> Or is there a better solution to that as posting an according >>> branching >> like >>> >>> branch( *this, &checkA ); >>> >>> where I first have to trigger constraint propagation in order to >>> ensure assignment... !??! >>> >>> Thanks for your help, >>> Martin >>> >>> -- Dr. Martin Mann, Postdoc Bioinformatics - Inst. of Computer Science Albert-Ludwigs-University Freiburg Tel: ++49-761-203-8254 Fax: ++49-761-203-7462 http://www.bioinf.uni-freiburg.de/~mmann/ _______________________________________________ Gecode users mailing list users@gecode.org https://www.gecode.org/mailman/listinfo/gecode-users