Cómo maximizar [matemáticas] 1000x + 300y + 700z + 100xy + 200xz + 50yz + 10xyz [/ matemáticas] con la restricción [matemáticas] x + y + z = 50 [/ matemáticas] y [matemáticas] x, y, z \ ge 0 [/ matemáticas]

No tengo que resolver este problema de maximización (como se indica en los detalles de la pregunta), pero lo resolví de todos modos con Mathematica usando la función incorporada FindMaximum [].

Escribiendo el código:

SetPrecision [
FindMaximum [{1000 x + 300 y + 700 z + 100 xy + 200 xz + 50 yz +
10 xyz, x + y + z == 50 && x> 0 && y> 0 && z> 0}, {x, y, z}], 30]

da el resultado o salida:

{187611.725286997447255998849869, {x-> 21.6196233250794627167579164961,
y-> 9.37801986991568981011369032785, z-> 19.0023568050048474731283931760}}

El resultado anterior significa que para:

[matemáticas] x \ aprox 21.6196233250794627167579164961 [/ matemáticas]

[matemáticas] y \ aproximadamente 9.37801986991568981011369032785 [/ matemáticas]

[matemáticas] z \ aprox 19.0023568050048474731283931760 [/ matemáticas]

el valor máximo (máximo global) para el problema dado con las restricciones dadas es aproximadamente igual a [math] 187611.725286997447255998849869 [/ math].

Espero que haya sido útil.

Para encontrar un máximo local (o mínimo), que puede ser o no el máximo global (o mínimo), todas las derivadas parciales para todas las variables deben ser cero. Una derivada parcial para una variable es una derivada donde todas las demás variables se consideran constantes.

Dejar

[matemática] f = 1000x + 300y + 700z + 100xy + 200xz + 50yz + 10xyz [/ matemática]

Debes resolver el siguiente conjunto de ecuaciones:

[matemáticas] \ displaystyle \ frac {\ partial f} {\ partial x} = 1000 + 100y + 200z + 10yz = 0 [/ matemática]

[matemáticas] \ displaystyle \ frac {\ partial f} {\ partial y} = 300 + 100x + 50z + 10xz = 0 [/ matemática]

[matemáticas] \ displaystyle \ frac {\ partial f} {\ partial z} = 700 + 200x + 50y + 10xy = 0 [/ matemática]

Oh, espera, ¿hay restricciones adicionales? Entonces este es un problema de optimización restringido. Incluso es no lineal, porque [matemática] f [/ matemática], la función de costo a maximizar, no es lineal (mientras que las dos restricciones son lineales en las variables). Por lo tanto, el algoritmo Simplex no se puede usar.

Sin embargo, puede ser afortunado: resolver el problema sin las restricciones podría conducir a una solución que incluso respete las restricciones.

Sustituí z = 50 – x – y en la ecuación original:

f (x, y) = 35000 + 10300x + 2100y-200x ^ 2–50y ^ 2 + 350xy-10x ^ 2y-10xy ^ 2

Establezca los parciales en cero y rápidamente se frustraron algebraicamente (no, no quiero tratar de encontrar la intersección de dos hipérbolas).

Abrí Excel, hice una columna de 0 a 50 para x y la fila de 0 a 50 para y puse la fórmula anterior en una tabla. La solución entera máxima ocurre en

f (22,9, (19)) = 187570, que encontré al comparar los resultados en la tabla.

Luego utilicé Excel Solver en la ecuación original y encontré la solución aproximada.

f (21.61962,9.37823,19.00236) = 187611.7

Sustituya en [matemáticas] 50 – x – y [/ matemáticas] por [matemáticas] z [/ matemáticas] y luego aplique multiplicadores de Kuhn-Tucker.

La positividad más las restricciones de suma juntas son una restricción simplex, que es fácil de proyectar. El algoritmo de proyección de gradiente podría funcionar bien.

Lo más fácil es usar el multiplicador de Lagrange.