On 30 Jul., 00:01, Johannes <[email protected]> wrote:
> Hi list,
> i try to solve a linear equation in ZZ in the variables w_i:
Here is a MILP formulation of your problem, I've pasted the input cell
in {{{}}} and the output in between
{{{
p = MixedIntegerLinearProgram(maximization=False)
# not reals, we want integers
w = p.new_variable(integer=True)
p.add_constraint(w[0] + w[1] + w[2] - 14*w[3] == 0)
p.add_constraint(w[1] + 2*w[2] - 8*w[3] == 0)
p.add_constraint(2*w[2] - 3*w[3] == 0)
# we don't want the trivial solution
p.add_constraint(w[3] >= 1)
# minimum of each variable is 0 by default, make it +infinity
[p.set_min(w[i], None) for i in range(1,4) ]
# minimize w3
p.set_objective(w[3])
# show what we have created so far
p.show()
}}}
Minimization:
x_3
Constraints:
0 <= x_0 +x_1 +x_2 -14 x_3 <= 0
0 <= x_1 +2 x_2 -8 x_3 <= 0
0 <= 2 x_2 -3 x_3 <= 0
-1 x_3 <= -1
Variables:
x_0 is an integer variable (min=0.0, max=+oo)
x_1 is an integer variable (min=-oo, max=+oo)
x_2 is an integer variable (min=-oo, max=+oo)
x_3 is an integer variable (min=-oo, max=+oo)
{{{
# solve it (default is GLPK, there are other solvers, too)
print 'Objective Value:', p.solve()
}}}
Objective Value: 2.0
{{{
p.get_values(w)
}}}
{0: 15.0, 1: 10.0, 2: 3.0, 3: 2.0}
{{{
# to get one value as integer
w_sol = p.get_values(w)
int(round(w_sol[2]))
}}}
3
greetings H
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org