%Données int: nb_matiere; int: nb_nutriment; int: nb_aliment; array [1..nb_matiere] of float: cout; array [1..nb_matiere] of int: quantite; array [1..nb_aliment] of int: demande; array [1..nb_matiere,1..nb_nutriment] of int: composition; array [1..nb_aliment,1..nb_nutriment] of int: valeur_min; %Variables array [1..nb_aliment,1..nb_matiere] of var float: x; %Fonction objectif var float: cout_total; constraint cout_total == sum(i in 1..nb_aliment)(sum(j in 1..nb_matiere)(cout[j]*x[i,j])); %Contraintes %Respecter la demande des aliments par jour constraint forall(i in 1..nb_aliment)(sum(j in 1..nb_matiere)(x[i,j]) == demande[i]); %Respecter les valeurs minimales de nutriments pour chaque aliment constraint forall(i in 1..nb_aliment)(forall(k in 1..nb_nutriment)(sum(j in 1..nb_matiere)(composition[j,k]*x[i,j]) >= valeur_min[i,k]*demande[i])); %Respecter la disponibilité des matières premières par jour constraint forall(j in 1..nb_matiere)(sum(i in 1..nb_aliment)(x[i,j]) <= quantite[j]); %Nonnegativité des variables constraint forall(i in 1..nb_aliment)(forall(j in 1..nb_matiere)(x[i,j] >= 0)); solve minimize cout_total;