5 votos

¿Equilibrar los ingredientes de una receta a través de un sistema de ecuaciones lineales: es la aproximación correcta?

Tengo 4 ingredientes que quiero combinar para preparar una bebida:

                 | cantidad | pro | carbs | grasas |
------------------------------------------------
[m]ilk           | 100ml  | 3.5 | 5.3   | 0.1  |
[o]ats           | 100g   | 11  | 62    | 7.7  |
oat[b]ran        | 100g   | 13  | 47    | 3.5  |
p[r]otein powder | 100g   | 82  | 4     | 7.5  |

y quiero que mi bebida tenga 30.8g de proteína, 58.97g de carbohidratos y 12.46g de grasas. Considerando

  • $x$ = cantidad de leche, $y$ = cantidad de avena, $z$ = cantidad de salvado de avena, $v$ = cantidad de proteína en polvo
  • $m$ = leche, $o$ = avena, $b$ = salvado de avena, $r$ = proteína en polvo
  • $p$ = proteínas necesarias en la bebida, $c$ = carbohidratos necesarios en la bebida, $f$ = grasas necesarias en la bebida
  • $p_m$ = proteínas en 100ml de leche, $c_o$ = carbohidratos en 100 gr de avena, y así sucesivamente.

así es como estoy intentando formalizar el problema: $$ \left\{ \begin{array}{c} x \cdot p_m/100 + y \cdot p_o/100 + z \cdot p_b/100 + v \cdot p_r/100 = p \\ x \cdot c_m/100 + y \cdot c_o/100 + z \cdot c_b/100 + v \cdot c_r/100 = c \\ x \cdot f_m/100 + y \cdot f_o/100 + z \cdot f_b/100 + v \cdot f_r/100 = f \end{array} \right. $$

o

$$ \left\{ \begin{array}{c} x \cdot p_m + y \cdot p_o + z \cdot p_b + v \cdot p_r = p \cdot 100 \\ x \cdot c_m + y \cdot c_o + z \cdot c_b + v \cdot c_r = c \cdot 100 \\ x \cdot f_m + y \cdot f_o + z \cdot f_b + v \cdot f_r = f \cdot 100 \end{array} \right. $$

en nuestro caso

$$ \left\{ \begin{array}{c} 3.5x + 11y + 13z + 82v = 3080 \\ 5.3x + 62y + 47z + 4v = 5897 \\ 0.1x + 7.7y + 3.5z + 7.5v = 1246 \end{array} \right. $$

Además, quiero que mi bebida tenga siempre 300 ml de leche, podría eliminar x del sistema para obtener

$$ \left\{ \begin{array}{c} 11y + 13z + 82v = 2030 \\ 62y + 47z + 4v = 4307 \\ 7.7y + 3.5z + 7.5v = 1216 \end{array} \right. $$

pero al resolver esto obtengo un valor negativo para z=-208.88, lo cual no es una opción.

Ahora, he estudiado este tipo de problemas hace muchos años, no logro avanzar más, así que estoy aquí para preguntar: ¿este enfoque está totalmente equivocado? Si no lo está, ¿cómo debo proceder para obtener una buena (o exacta) aproximación de las variables, excluyendo los valores negativos?

0 votos

¿La condición de $300$ml de leche es necesaria, o se ha agregado solo para tener un sistema determinado?

0 votos

@Fernando bueno, simplemente... sucedió así. Me di cuenta de que 300 ml es la cantidad adecuada de líquido que me gusta (sí, es un problema real, mi desayuno es un asunto serio). ¿Qué es un sistema "determinado"? ¿Un sistema con el mismo número de variables y ecuaciones?

0 votos

Usando álgebra lineal, tus restricciones de igualdad se pueden reducir a esto: $o=0.321-0.0152m,b=1.87+0.131m,r=-1.24-0.284m$. (Esto se redondea a tres cifras significativas). Por lo tanto, de hecho, tus restricciones de igualdad no tienen soluciones positivas.

2voto

Andy Puntos 21

Lo que has encontrado de tu cálculo es que tu sistema de ecuaciones no tiene soluciones no negativas, y por supuesto, solo las soluciones no negativas son físicamente significativas. Esto no es un error en tu cálculo. De hecho, ni siquiera es un error en el cálculo con la restricción exacta sobre el contenido de leche eliminada. Simplemente es imposible alcanzar tus objetivos nutricionales con solo esos 4 ingredientes.

Al ejecutar los pasos de reducción por filas me mostró cuál nutriente es el problema: es que el contenido relativo de grasa de tus ingredientes es demasiado bajo para tus objetivos. (Por cierto, un simple y agradable script de Matlab para este tipo de cosas: http://www.mathworks.com/matlabcentral/fileexchange/2168-linear-algebra-labs-with-matlab--2e/content/hill/LABBOX/rrefstep.m Lo único que me molesta es que no hay forma de ver descripciones de todos los pasos al final del procedimiento, aunque eso sería una edición bastante fácil. Ten en cuenta que en mi versión de Matlab, tuve que cambiar todas las variables nombradas "switch" a "myswitch"; al hacer eso, funciona genial.)

Para ser específico, nota que la mayor proporción de grasa a proteína en tus ingredientes es aproximadamente 0.8, la siguiente es aproximadamente 0.3, luego aproximadamente 0.1 y luego aproximadamente 0.03. Mientras tanto, tu objetivo de proporción de grasa a proteína es aproximadamente 0.4. Esto significa que solo la proporción de grasa a proteína que deseas obliga a tu bebida a contener bastante avena, ya que es el único ingrediente con una proporción más alta que tu objetivo.

Esto estaría bien excepto que tu objetivo de carbohidratos es bastante bajo mientras que el contenido de carbohidratos de la avena es bastante alto. De hecho, tus ingredientes hacen que sea imposible obtener grasas significativas sin también obtener carbohidratos significativos (de la avena o salvado de avena) o proteínas significativas (de la proteína en polvo). Esto significa que necesitas cambiar tus objetivos o introducir un ingrediente con un mayor contenido de grasa.

En el lado de cambiar objetivos, puedes obtener soluciones factibles usando tus ingredientes si elevas tu objetivo de carbohidratos a al menos 90.1.

0voto

m0j0 Puntos 181

Creo que lo que quieres es más bien optimización lineal.

O bien se maximiza o minimiza alguna función sujeta a restricciones.

Hay restricciones de igualdad para la proteína, carbohidratos y contenido de grasa, así como una restricción mínima para el volumen de leche.

Una buena estrategia sería minimizar el costo de esa comida. (¿Quieres comer barato, verdad?) En este caso, necesitarías el costo por 100 gramos o ml $m_j$ para cada uno de tus ingredientes.

Luego, el problema se formula algo así ($x_j$ es el número de porciones de 100 ml o 100 g de ingrediente $j$):

Minimizar

$$\sum_{j=1}^4 x_j m_j$$

sujeto a las restricciones

$$\sum_{j=1}^4 x_j p_j = 30.8$$

$$\sum_{j=1}^4 x_j c_j = 58.97$$

$$\sum_{j=1}^4 x_j f_j = 12.46$$

$$x_1 \geq 3$$

$$x_2, x_3, x_4 \geq 0$$ (el ingrediente 1 es leche)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X