Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Differences between CPLEX's sensitivity option in ASL and MP #249

Open
4er4er4er opened this issue Jan 18, 2025 · 0 comments
Open

Differences between CPLEX's sensitivity option in ASL and MP #249

4er4er4er opened this issue Jan 18, 2025 · 0 comments
Assignees

Comments

@4er4er4er
Copy link
Contributor

When the CPLEX option .sensitivity is set in ASL, three suffixes are defined:

sensitivity       Single-word phrase:  return sensitivity information for
                  the objective (in suffixes .up for the largest value
                  of a variable's cost coefficient or constraint's
                  right-hand side before the optimal basis changes,
                  .down for the smallest such value, and .current for
                  the current cost coefficient or right-hand side).

In MP, the option is sensitivity=1 and more cases are considered:

alg:sens (sens, solnsens, sensitivity)
      Whether to return suffixes for solution sensitivities, i.e., ranges of
      values for which the optimal basis remains optimal (note that the
      variable and objective values can change):

      0 - No (default)
      1 - Yes: suffixes returned on variables are
      .sensobjlo = smallest objective coefficient
      .sensobjhi = greatest objective coefficient
      .senslblo = smallest variable lower bound
      .senslbhi = greatest variable lower bound
      .sensublo = smallest variable upper bound
      .sensubhi = greatest variable upper bound;

      suffixes for all constraints are

      .senslblo = smallest constraint lower bound
      .senslbhi = greatest constraint lower bound
      .sensublo = smallest constraint upper bound
      .sensubhi = greatest constraint upper bound;

      suffixes for one-sided constraints only:

      .sensrhslo = smallest right-hand side value
      .sensrhshi = greatest right-hand side value.

This is arguably all for the best, but a user's questions raise two issues:

  • The single-word option sensitivity (which turns sensitivity on in ASL) is accepted by MP but is interpreted as alg:sens=0 (which turns it off).
  • There is no option in MP analogous to .current in ASL. This is mainly a problem for objective coefficients, whose current value is (in general) not easy to display any other way.

Maybe there's nothing that can be done about these differences, but I am posting them here just in case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants