эта точечно-цифровая реализация представляется довольно простым методом оптимизации и не имеет прямого отношения к симплексу, используемому в LP. Кроме этого он использует треугольники (или многогранные многогранники). Но у меня нет формальной подготовки по реальной математике :) Я с удовольствием поправлюсь, если говорю чепуху!
ствительно заинтересован в численном анализе. Я использую приложение с открытым исходным кодом DotNumerics. Моя линейная система следующая:
1 * x + 3 * y <= 150
2 * x + 1 * y <= 100
гдеx >= 0, y >= 0
z = 10 * x + 15 * y
Я пытаюсь решитьz
(Оптимизация ...)
Я могу использовать Simplex метод для решения вышеуказанной проблемы, как показано в этой ссылке, Я также написал автору по электронной почте, однако он не ответил.
using DotNumerics.Optimization;
using DotNumerics;
namespace App.SimplexCalcLinearProgramming
{
class Program
{
static void Main(string[] args)
{
Simplex simplex = new Simplex();
double[] initialGuess = new double[2];
initialGuess[0] = 0.1;
initialGuess[1] = 2;
double[] minimum = simplex.ComputeMin(AmacFunction, initialGuess);
minimum.ToList().ForEach(q => Console.Write(q.ToString() + "\n"));
Console.ReadKey();
}
static double AmacFunction(double[] x)
{
/*
* 1 * x + 3 * y <= 150
* 2 * x + 1 * y <= 100
*
* where x >= 0, y >= 0
*
* z = 10 * x + 15 * y
*
* Solve for z
*/
double f = 0;
f = 10*x[0]+15*x[1];
return f;
}
}
}