-
Notifications
You must be signed in to change notification settings - Fork 42
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
Multi-objective senses vs. weights #240
Comments
This behaviour seems unsafe. Imagine that the user drops the 1st objective, but the 2nd objective in the model had a different sense. Then, to keep the meaning of the remaining objectives, their weights should be negated. If anyone uses weights, he might be not aware of this. After discussion with @fdabrandao and @mapgccv, added the following option:
It is referred to in
|
Best practice would be to only use objectives and weights that have an obvious interpretation:
For the sake of completeness, MP supports other cases; but they are somewhat confusing, and they are rarely (if ever) needed in practical applications. In any case, users need to follow MP's multi-objective options, which work the same for all solvers, but which may be different from the multi-objective instructions that are given by solvers for their own APIs. Would it help to add a FAQ for this? It could explain multi-objective optimization in more detail than can be given in the option listing. I would be willing to draft it. |
@4er4er4er this would be helpful. Let me know if the FAQ should be referred to from the options help. The new options are to be released in a few days. |
I'll need more time (due to travel), so I suggest going ahead with the current description of the new options, and we can add a FAQ reference at some later update. |
@4er4er4er Solvers released (20240529 and later). Basic MO documentation added: https://mp.ampl.com/modeling-mo.html#multiple-objectives. We can extend this section or point to FAQ (I guess we need to create some because now we only have Troubleshooting https://mp.ampl.com/modeling-troublesh.html#.) |
It is unclear to me how to interpret objective senses vs weights in the multi-objective mode.
While solvers intepret the sign of the weight as the sense (actually even more than that, see below) --- both solver APIs as well as our ASL and MP drivers - this seems non-intuitive. Example test/end2end/cases/categorized/fast/multi_obj/obj_suf_01.mod:
While our commercial solvers, ASL and MP, interpret the positive weights for both objectives as maximization for both, by intuition I'd say the weight 1.5 for the 2nd objective should not modify its sense. Actually the description of suffixes
.objweight
in the text for optionmultiobj
does not say anything about the fact that the sign of the weight defines the sense. This is confused even more by the fact that a negative weight for a 2ndary objective changes its sense relatively to the 1st objective.And accordingly, I expect the above example, run with
multiobj=1
, to produce_obj[2]==0
, while all our current drivers produce1
.The text was updated successfully, but these errors were encountered: