Restricciones Programación Lineal con Ingredientes

  • Autor Autor Mac99
  • Fecha de inicio Fecha de inicio
M

Mac99

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Holaa,
estoy intentado hacer estas restricciones de forma general :
r = r + "0.1*x0 + 0.2*x1 >=90; \n";
r = r + "0.08*x0 + 0.15*x1 >=50;\n";
r = r + "0.04*x0 + 0.02*x1 >=20; \n";
r = r + "0.01*x0 + 0*x1 >=3; \n";

Dispongo de dos archivos de texto de los cuales leo la información necesaria.
0,0.1,0.08,0.04,0.01,0.04
1,0.2,0.15,0.02,0.0,0.06
Esto es lo que hay escrito en uno de ellos, la primera posición representa el código de los elementos que serán los x0 y x1(son ingredientes), la última el coste de cada uno y las que están entre medio representan unas lista de valores de cantidad de nutrientes.
Mi objetivo el conseguir multiplicar el primer valor de la lista de valores (0.1 y 0.2) por sus respectivos elementos (x0 y x1) y sumarlos.
El problema es que por mucho que lo intento esto es lo que me sale por pantalla:

0.1*x0+>=90;
0.1*x0+>=50;
0.1*x0+>=20;
0.1*x0+>=2;
0.08*x0+>=90;
0.08*x0+>=50;
0.08*x0+>=20;
0.08*x0+>=2;
0.04*x0+>=90;
0.04*x0+>=50;
0.04*x0+>=20;
0.04*x0+>=2;
0.01*x0+>=90;
0.01*x0+>=50;
0.01*x0+>=20;
0.01*x0+>=2;
0.2*x1+>=90;
0.2*x1+>=50;
0.2*x1+>=20;
0.2*x1+>=2;
0.15*x1+>=90;
0.15*x1+>=50;
0.15*x1+>=20;
0.15*x1+>=2;
0.02*x1+>=90;
0.02*x1+>=50;
0.02*x1+>=20;
0.02*x1+>=2;
0.0*x1+>=90;
0.0*x1+>=50;
0.0*x1+>=20;
0.0*x1+>=2;
¿Alguna idea de cómo hacerlo?

este es el código que estoy poniendo(que está super mal seguro):
for(Ingrediente l : a.getListaIngredientes() ){
for(int i2=0;i2<l.getCantidadNutrientes().size();i2++) {
for(Nutriente g : a.getListaNutrientes()) {
r = r + l.getCantidadNutrientes().get(i2)+ "*x" + l.getCodigo() + "+"

+ ">=" + g.getCantidadMinimaPorKilo() + ";\n";
}
}
i1++;


}
 

Temas similares

Max Mirambeau
Respuestas
0
Visitas
137
Max Mirambeau
Max Mirambeau
Atrás
Arriba