Branching priority

Dear GAMS users,

I’m trying to use branching priority in a MIP model which is solved by GUROBI solver. At this moment, I’m in doubt about the branching priority rules explained both by GAMS and GUROBI documents.

In GAMS Users Guide, I read the following explanation.

“Using the .prior suffix sets the priorities of the individual variables. Note that there is one prior value for each
individual component of a multidimensional variable. Priorities can be set to any real value. The default value
is 1. As a general rule of thumb, the most important variables should be given the highest priority.”

“The lower the value given to the .prior suffix, the higher the priority for branching.”

However, in GUROBI Optimizer Reference Manual, I read the following explanation about the attribute BranchPriority which must be used to set the branching priority for a discrete variable.

“Variable branching priority. The value of this attribute is used as the primary criteria for selecting a fractional variable for branching during the MIP search. Variables with larger values always take priority over those with smaller values. Ties are broken using the standard branch variable selection criteria. The default variable branch priority value is zero.”

I think there is a contradiction about the value that should be used for a variable with the highest branching priority. The smallest or the highest value among all the priority values?

I would appreciate if someone could explain which of these rules I should use in my model.

Thanks for attention,
Luiz Carlos.


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

Luiz Carlos,

You are correct in noting that there are two conventions here: one to
use when modeling in GAMS and another to use when working directly
with the Gurobi optimizer. However, you are not working directly with
the Gurobi optimizer if you write your model in GAMS: the GAMS/Gurobi
link takes the GAMS model (including the priorities) and does whatever
is necessary to pass the model on to Gurobi. In the case of
GAMS/Gurobi, this includes converting the double-precision,
lower-value-is-higher-priority priority values you have in your GAMS
model to the integer, lower-value-is-lower-priority values that Gurobi
expects.

The solver links do many things like this (e.g. sign conventions on
marginals) so that GAMS users can write their models independent of
the solver they choose.

-Steve

On Thu, Nov 1, 2012 at 3:21 PM, Luiz Carlos Sousa wrote:

Dear GAMS users,

I’m trying to use branching priority in a MIP model which is solved by
GUROBI solver. At this moment, I’m in doubt about the branching priority
rules explained both by GAMS and GUROBI documents.

In GAMS Users Guide, I read the following explanation.

“Using the .prior suffix sets the priorities of the individual variables.
Note that there is one prior value for each
individual component of a multidimensional variable. Priorities can be set
to any real value. The default value
is 1. As a general rule of thumb, the most important variables should be
given the highest priority.”

“The lower the value given to the .prior suffix, the higher the priority for
branching.”

However, in GUROBI Optimizer Reference Manual, I read the following
explanation about the attribute BranchPriority which must be used to set the
branching priority for a discrete variable.

“Variable branching priority. The value of this attribute is used as the
primary criteria for selecting a fractional variable for branching during
the MIP search. Variables with larger values always take priority over those
with smaller values. Ties are broken using the standard branch variable
selection criteria. The default variable branch priority value is zero.”

I think there is a contradiction about the value that should be used for a
variable with the highest branching priority. The smallest or the highest
value among all the priority values?

I would appreciate if someone could explain which of these rules I should
use in my model.

Thanks for attention,
Luiz Carlos.


“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.



– Steven Dirkse, Ph.D. GAMS Development Corp., Washington DC Voice: (202)342-0180 Fax: (202)342-0181 sdirkse@gams.com http://www.gams.com

Steve,
thanks for the explanation. By the way, where can I read about the sign conventions on marginals used by GAMS when reports the solver results.

Thanks,
Luiz Carlos.

On Thu, Nov 1, 2012 at 9:17 PM, Steven Dirkse wrote:

Luiz Carlos,

You are correct in noting that there are two conventions here: one to
use when modeling in GAMS and another to use when working directly
with the Gurobi optimizer. However, you are not working directly with
the Gurobi optimizer if you write your model in GAMS: the GAMS/Gurobi
link takes the GAMS model (including the priorities) and does whatever
is necessary to pass the model on to Gurobi. In the case of
GAMS/Gurobi, this includes converting the double-precision,
lower-value-is-higher-priority priority values you have in your GAMS
model to the integer, lower-value-is-lower-priority values that Gurobi
expects.

The solver links do many things like this (e.g. sign conventions on
marginals) so that GAMS users can write their models independent of
the solver they choose.

-Steve

On Thu, Nov 1, 2012 at 3:21 PM, Luiz Carlos Sousa wrote:

Dear GAMS users,

I’m trying to use branching priority in a MIP model which is solved by
GUROBI solver. At this moment, I’m in doubt about the branching priority
rules explained both by GAMS and GUROBI documents.

In GAMS Users Guide, I read the following explanation.

“Using the .prior suffix sets the priorities of the individual variables.
Note that there is one prior value for each
individual component of a multidimensional variable. Priorities can be set
to any real value. The default value
is 1. As a general rule of thumb, the most important variables should be
given the highest priority.”

“The lower the value given to the .prior suffix, the higher the priority for
branching.”

However, in GUROBI Optimizer Reference Manual, I read the following
explanation about the attribute BranchPriority which must be used to set the
branching priority for a discrete variable.

“Variable branching priority. The value of this attribute is used as the
primary criteria for selecting a fractional variable for branching during
the MIP search. Variables with larger values always take priority over those
with smaller values. Ties are broken using the standard branch variable
selection criteria. The default variable branch priority value is zero.”

I think there is a contradiction about the value that should be used for a
variable with the highest branching priority. The smallest or the highest
value among all the priority values?

I would appreciate if someone could explain which of these rules I should
use in my model.

Thanks for attention,
Luiz Carlos.


“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.




Steven Dirkse, Ph.D.
GAMS Development Corp., Washington DC
Voice: (202)342-0180 Fax: (202)342-0181
sdirkse@gams.com
http://www.gams.com


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.