### Integer Variable Suffixes

The suffixes `.relax`, `.priority`, and `.direction` are applicable to integer variables.

For an integer variable `x`, setting `x.relax` to a nonzero, nonmissing value relaxes the integrality restriction. The value of `x.relax` is read as either 1 or 0, depending on whether or not integrality is relaxed. This suffix is ignored for noninteger variables.

The value contained in `x.priority` sets the branching priority of an integer variable `x` for use with the MILP solver. This value can be any nonnegative, nonmissing number. The default value is 0, which indicates default branching priority. Variables with positive `.priority` values are assigned greater priority than the default. Variables with the highest `.priority` values are assigned the highest priority. Variables with the same `.priority` value are assigned the same branching priority.

The value of `x.direction` assigns a branching direction to an integer variable `x`. This value should be an integer in the range –1 to 3. A noninteger value in this range is rounded on assignment. The default value is 0. The significance of each integer is found in Table 5.13.

Table 5.13: Branching Directions

 Value Direction –1 Round down to nearest integer 0 Default 1 Round up to nearest integer 2 Round to nearest integer 3 Round to closest presolved bound

Suppose the solver branches next on an integer variable `x` whose last LP relaxation solution is 3.3. Suppose also that after passing through the presolver, the lower bound of `x` is 0 and the upper bound of `x` is 10. If the value in `x.direction` is –1 or 2, then the solver sets `x` to 3 for the next iteration. If the value in `x.direction` is 1, then the solver sets `x` to 4. If the value in `x.direction` is 3, then the solver sets `x` to 0.

The MPS data set created by the SAVE MPS statement (SAVE MPS Statement) includes a BRANCH section if any nondefault `.priority` or `.direction` values have been specified for integer variables.