On 30 Jul., 00:01, Johannes <dajo.m...@web.de> 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 sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to