#18871: MILP formulation for cutwidth
-------------------------+-------------------------------------------------
Reporter: | Owner:
dcoudert | Status: needs_work
Type: | Milestone: sage-6.8
enhancement | Resolution:
Priority: major | Merged in:
Component: graph | Reviewers: Nathann Cohen
theory | Work issues:
Keywords: | Commit:
cutwidth, MILP | 802fe71e5ec2b12143ff8adb60c66549b443cd57
Authors: David | Stopgaps:
Coudert |
Report Upstream: N/A |
Branch: |
public/18871 |
Dependencies: |
-------------------------+-------------------------------------------------
Comment (by dcoudert):
> - Module's doc, documentation of MILP variable `z`: at the end of the
line there
> is a `y^y`. Shouldn't it be `y^k`?
Right.
> - Constraints: the third constraint is missing one side of the
inequality.
Added
> - But I am not sure that I understand the system: why wouldn't you say
that:
> a) `x_v^k <= x_v^{k+1}` (the values can only increase)
> b) `\sum_v x_v^k == k` (for every k)
Constraint (a) can be rewritten with a sum as I did. It is sometimes
faster for the solver. Don't know why.
> - About y: what about only having those two constraints:
> - `y_{uv}^k >= x_v^k - x_u^k`
> - `y_{uv}^k >= x_u^k - x_v^k`
> It seems to me that they are sufficient to express {{{y_{uv}^k >=
x_u^k XOR x_v^k}}}. And you do not really need to say that `y` has to be
*equal* to the
> XOR, the `>=` should be enough given that you minimize the cost of a
cut.
You are right. I have simplified the code.
> - If you see a better way to name the `x,y`, and `z`... `:-P`
unfortunately no better names in mind.
> - When building the documentation, the references toward the number of
the
> constraints do not appear correctly. Neither does the 'xor'.
Corrected. (and no xor anymore)
> - You call `set_binary` on a variable that you already defined as
binary.
removed.
> - Is there any reason why you catch the `MIPSolverException`?
Removed. no particular reason.
> - You do not have to int+round the value of `z['z']`. The solver should
give you
> an integer value as you defined the variable as integral: if it does
not,
> that's a bug that should be fixed.
I have removed the round.
Thanks for the review.
--
Ticket URL: <http://trac.sagemath.org/ticket/18871#comment:6>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.