Netbeans 使用AMPL的明显优势是什么?

Netbeans 使用AMPL的明显优势是什么?,netbeans,cplex,ampl,Netbeans,Cplex,Ampl,我正在使用CPLEX解算器在带有Java的Netbeans上做一个项目。我们有几个优化问题要解决,我已经解决了其中一个问题,用Java编写了所有约束、目标和变量,而没有使用AMPL。但是,我的团队中有些人希望使用AMPL。 因此,由于我不想阅读所有AMPL书籍来找到答案,有没有明显的理由宁愿使用AMPL而不是“手动”编码所有约束?此外,AMPL可以集成到Netbeans中吗?我没有找到任何关于这方面的文件。 当约束需要“灵活”时,AMPL有用吗(我的意思是,我们无法预先猜测约束的确切数量,它取决

我正在使用CPLEX解算器在带有Java的Netbeans上做一个项目。我们有几个优化问题要解决,我已经解决了其中一个问题,用Java编写了所有约束、目标和变量,而没有使用AMPL。但是,我的团队中有些人希望使用AMPL。
因此,由于我不想阅读所有AMPL书籍来找到答案,有没有明显的理由宁愿使用AMPL而不是“手动”编码所有约束?此外,AMPL可以集成到Netbeans中吗?我没有找到任何关于这方面的文件。 当约束需要“灵活”时,AMPL有用吗(我的意思是,我们无法预先猜测约束的确切数量,它取决于用户固定的参数,模块化是一个非常重要的因素…)

我真的很想尽快听到这件事

感谢帮助

是一种代数建模语言,并引用该链接:

AMPL的一个优点是其语法与 最优化问题的数学符号

例如,这允许您定义约束组,而无需事先知道模型的尺寸。而且,也许您可以更快地对模型进行重大更改。(你必须考虑你实际会多久这样做一次。)

然而,有人可能会说AMPL的“明显优势”是它支持几十种不同的解算器。您可以创建模型并使用CPLEX进行求解,但随后决定要使用不同的解算器(例如,Gurobi、Xpress等)。在AMPL网页上,他们有以下建议:

我们建议您随后测试替代解算器,以确定 为您的需求提供价格和性能的最佳折衷

AMPL网页上说有一个JavaAPI,因此应该允许您将其包含在Netbeans项目中,但我没有这方面的经验

最后,你也可以说这些“优势”是品味的问题。如果CPLEXJavaAPI满足您的需求,那么直接使用CPLEXJavaAPI(正如您已经做的那样)肯定是一个有效的解决方案。它可以让您更高效地构建模型,使用AMPL可能不支持的特定于解算器的/高级功能,并对模型公式进行更细粒度的控制。

是一种代数建模语言,引用该链接:

AMPL的一个优点是其语法与 最优化问题的数学符号

例如,这允许您定义约束组,而无需事先知道模型的尺寸。而且,也许您可以更快地对模型进行重大更改。(你必须考虑你实际会多久这样做一次。)

然而,有人可能会说AMPL的“明显优势”是它支持几十种不同的解算器。您可以创建模型并使用CPLEX进行求解,但随后决定要使用不同的解算器(例如,Gurobi、Xpress等)。在AMPL网页上,他们有以下建议:

我们建议您随后测试替代解算器,以确定 为您的需求提供价格和性能的最佳折衷

AMPL网页上说有一个JavaAPI,因此应该允许您将其包含在Netbeans项目中,但我没有这方面的经验


最后,你也可以说这些“优势”是品味的问题。如果CPLEXJavaAPI满足您的需求,那么直接使用CPLEXJavaAPI(正如您已经做的那样)肯定是一个有效的解决方案。它可以让您更高效地构建模型,使用AMPL可能不支持的解算器特定/高级功能,并对模型公式进行更细粒度的控制。

完全同意rkersh所说的一切。还请注意,无论您是使用代数建模语言还是通过更直接的API编写模型,都不应以硬编码方式编写问题大小的详细信息等


此外,与一系列标准问题类型等相比,使用建模语言可以为您提供一个额外的抽象级别/抽象层,特别是在向他人共享或解释您的模型方面,但我更喜欢使用更直接的API,几乎不需要(或有时间和预算)重新设计我的模型。完全同意rkersh所说的一切。还请注意,无论您是使用代数建模语言还是通过更直接的API编写模型,都不应以硬编码方式编写问题大小的详细信息等


此外,与一系列标准问题类型等相比,使用建模语言可以为您提供一个额外的抽象级别/抽象层,特别是在向他人共享或解释您的模型方面,但我更喜欢使用更直接的API,几乎不需要(或有时间和预算)您刚刚编写了一个优化模型来优化您公司的小部件生产。你的公司在$SOLVER1上有一个非常好的交易,所以这就是你正在使用的

在接下来的十年里,当你的老板向你提出新的要求时,你会改进和扩展这种模式。到那时为止,作为系统的一部分,您可能拥有数万行优化代码,到目前为止,该系统对您公司的运营至关重要

贵公司最初的许可协议已经到期,而$SOLVER1的制造商已经大幅提高了许可费,因此您现在每年要支付数十万美元的许可费用

与此同时,一家竞争对手公司的研究人员刚刚发布了新版$SOLVER2。它有新奇的新算法,可以将小部件优化问题的解决速度提高20%,并找到更好的解决方案