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
Improve documentation of constraint_generation in MixedIntegerLinearProgramming #15686
Comments
This comment has been minimized.
This comment has been minimized.
comment:2
Hmmmmmmm... Well I agree with the first Nathann |
comment:3
Replying to @nathanncohen:
Of course. Perhaps we keep this ticket open after issue 1 is fixed to allow me to provide the changed lines if I get around to it in the future. |
comment:4
Well if you just want to change a couple of lines in the doc perhaps we can wait until you find the time ? |
comment:5
Replying to @nathanncohen:
You forced my hand: https://github.com/equaeghe/sage/compare/patch-1 https://github.com/equaeghe/sage/compare/patch-2 Do I create pull requests for these, or what is the preferred workflow? |
comment:6
Hellooooooo !!
Ahahah. Well, wasn't the only alternative for me to rewrite a doc that I already find clear ?
Well, depending how you are used to git, the workflow is more or less simple :
It is all explained there [1], and I can help with any specific question you have if it isn't clear. And we will update the developper's documentation if something isn't clear, too By the way, your changes as I see them are not correct : When And I don't know if it is a good idea to mention Coin explicitly in the docstring, for there may come a time when another solver that does not support Nathann |
Commit: |
New commits:
|
Branch: u/equaeghe/15686 |
comment:8
Replying to @sagetrac-equaeghe:
I still have some trouble building the html/pdf reference on my end (sage-on-gentoo...), so I couldn't check that yet. |
comment:9
Hellooooooooo !! As I said earlier, you cannot say that a solver returned when calling Nathann |
comment:11
Replying to @nathanncohen:
Ok.
Hmm, what exactly doesn't CBC support: adding constraints and resolving of course, but what about removing constraints, changing variable bounds, changing the objective? |
comment:12
Hello !
I don't know exactly. My use of LP is pretty simple : I add constraints and solve them. Sometimes, I then add constraints and solve them another time. What I can swear is that I cannot so the following with Coin, and that they told me it was not supported. Removing constraints or modifying them is what I consider a "fancy use" of LP already. I mean, these things are meant to solve sets of equations, they are not text editors Nathann |
comment:13
Well, to give you a more serious answer I don't know, and I think the answer is in their documentation. Though if you cannot add constraints you probably can't change them either, for then to "add" constraints you could add empty constraints when the LP is built, and modify them into real constraints to "mimic" constraint generation. And if they do not support it they probably have a technical problem that prevents them from doing it. Nathann |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:16
Hellooooo ! Sorry but I do not find this much clearer. Instead of repeating many times "when solver=None" couldn't you add in the documentation of the Nathann |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:19
Replying to @nathanncohen:
I've made a modification much like the one you suggest, but in the
Well, currently, as far as I can tell from the code, the selected solver is used. Only if |
Reviewer: Nathann Cohen |
comment:20
Okayyyyyyyyyyy let's get it in then. This has waited long enough Please add your name to the "Author" field. Nathann |
Author: Erik Quaeghebeur |
Changed branch from u/equaeghe/15686 to |
As prompted by http://ask.sagemath.org/question/3410, this ticket is meant for discussion to improve the documentation of the
constraint_generation
option of MixedIntegerLinearProgramming.From the ref: http://www.sagemath.org/doc/reference/numerical/sage/numerical/mip.html:
From the source: https://github.com/sagemath/sage-prod/blob/master/src/sage/numerical/backends/generic_backend.pyx#L983:
First issue: in the source the phrase “setting
constraint_generation
toFalse
ensures that the backend to Coin is not returned whensolver = None
” seems incorrect, as settingconstraint_generation
toFalse
is meant to allow selection of Coin.Second issue: upon first reading the ref and source documentation, I understood that Coin would not be selected if
constraint_generation
were set toTrue
, but not what was exactly meant by ‘constraint generation’ in the context of the module. I thought it would enable passing a constraint generator. Now I understand that constraint generation means: after a first callsolve()
, one or more constraints is added to the solved instance, and thensolve()
is called again. Perhaps the documentation should be changed to make this clearer.Component: numerical
Author: Erik Quaeghebeur
Branch/Commit:
d0b48c6
Reviewer: Nathann Cohen
Issue created by migration from https://trac.sagemath.org/ticket/15686
The text was updated successfully, but these errors were encountered: