gpt4 book ai didi

c# - 如何使用 DotNumerics 解决线性规划问题?

转载 作者:太空狗 更新时间:2023-10-29 20:21:58 24 4
gpt4 key购买 nike

我对数值分析很感兴趣。我一直在使用 DotNumerics 开源应用程序。我的线性系统如下:

1 * x + 3 * y <= 150
2 * x + 1 * y <= 100

其中 x >= 0, y >= 0

z = 10 * x + 15 * y

我正在尝试解决 z(优化...)

I can use Simplex method to solve above problem as found in this link .我也给作者发了邮件,但是他没有回复。

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;
}
}
}

最佳答案

我不认为 DotNumerics 可以单独解决 LP 问题。据我解释文档,Nelder–Mead (下坡单纯形法)实现仅用于解决简单的最小化问题,而不是 LP 问题。

上次我在 C# 中解决 LP,我使用了 .net 包装器来 LP_Solve .

如果您下载 lpsolve 包,它应该带有 .net 的示例。您也可以将其插入 microsoft solver foundation ( see here ),但我认为 MSF 存在一些许可问题,您不能将其免费用于商业应用程序。但是,无国界医生组织也可能很有趣。

同样,您可以在没有 MSF 的情况下简单地使用 lpsolve。 Lpsolve 是一个非常好的 LP 求解器,除非你有大量的尺寸问题。那么可能值得至少寻找替代方案并将性能/适应性与您的特定问题进行比较。

关于c# - 如何使用 DotNumerics 解决线性规划问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com