Pour un petit programme, ça ressemble à ça (au moins pour déterminer la fonction objectif)
$x1 = new Math::LP::Variable(name => 'x1'); $x2 = new Math::LP::Variable(name => 'x2'); $obj_fn = make Math::LP::LinearCombination($x1,1.0,$x2,2.0); $lp->maximize_for($obj_fn);
Dans mon cas, je ne connais pas a priori le nombre de variables, donc je fais
my %gamma = (); # "" my @variables = (); for(my $i = 1; $i <= $m; $i++) { $gamma{$i} = new Math::LP::Variable(name => ('gamma'.$i)); $variables{2*($i-1)} = $gamma{$i}; $variables{2*$i-1} = 1.0; } my $obj_fn = make Math::LP::LinearCombination(@variables); $lp->maximize_for($obj_fn);
Manque de pot, ça n'a pas l'air de lui convenir (j'ai l'impression que la combinaison linéaire produite est vide

Il faudrait faire comment ?