tiebreaking for action for branching

11 views
Skip to first unread message

Kish Shen

unread,
Jul 21, 2021, 1:38:36 PM7/21/21
to gec...@googlegroups.com
Hi,

I am trying to simplify how to do variable selection tie-breaking for action.

From what I can work out, there are 3 ways to achieve tiebreaking like
functionality for Action:

1. Initialise the IntAction object with initial values.
2. Setup a tiebreak() function for a tiebreaking selection.
3. Using BranchTbl

Is there any reason for 1, when you can use 2 with a user merit
function that gives the initial values as merits in a tiebreak
selection?

Also, on reading the section on Action again, I noticed that you can
turn the counting of pruning and failures on or off: if pruning is
turned off, will the count (for failures only) for each variable be
the same as the 'weight' of AFC (i.e. without the degree) for that
variable?

I think there is no way of chaing the counting in this way without
creating a IntAction object, i.e. unlike decay, you can't just pass
the decay in INT_ACTION* without creating an IntAction object?

Cheers,

Kish

Kish Shen

unread,
Jul 21, 2021, 5:44:31 PM7/21/21
to gec...@googlegroups.com
Hi,

Just a follow up question about the Action count of pruning and
failures. I think the only way a variable's domain can become empty is
through pruning., but I assume this pruning that result in failure is
not counted twice, i.e. as a pruning and a failure, amf the pruning
count is only incremented if the pruning results in a domain of 1 or
more values?

Cheers,

Kish

Mikael Zayenz Lagerkvist

unread,
Jul 26, 2021, 4:20:45 AM7/26/21
to gec...@googlegroups.com
prHi,

For tie-breaking, all the approaches have some merit.

* Giving initial values using a merit function is useful to guide the
search initially
* Using tiebreak() is a good way to let some other criteria make the
decision when the action values are still similar
* Using BranchTbl is a good way to make sure that trivial differences
in Action value is not a reason to make a decision

If possible and reasonable for a problem, using all three parts can be
a good idea. So the answer is simply, it depends on the problem to
solve :-)

As for what happens when using Action recording for fails only
compared to AFC, it is related but not the same. AFC is a measure that
promotes variables that are connected to propagators that fail, while
Action with failure recording only promotes the actual variables that
get a domain wipe-out.

Hope this helps,
Mikael
> --
> You received this message because you are subscribed to the Google Groups "Gecode" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to gecode+un...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/gecode/CAHM-QAu9MHZOTC9fTkJDSgRx_tq6d7gnh5VmuBQ7QLBJSVWY9g%40mail.gmail.com.



--
Mikael Zayenz Lagerkvist
Reply all
Reply to author
Forward
0 new messages