有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用MATLAB中的CPLEX和Java中的CPLEX求解模型是否可能得到不同的结果?

我正在用CPLEX求解一个线性二元优化模型。我已经用MATLAB和JAVA编写了模型。JAVA和MATLAB编程得到的目标函数的最优值是相同的。然而,最优变量值是不同的。对于我的模型,可能有几个最佳解决方案。我想知道在MATLAB和JAVA中应用CPLEX后,变量是否可能有不同的最优值


共 (1) 个答案

  1. # 1 楼答案

    是的,当然。在幕后,这些语言的行为完全不同,不仅仅是字节码和编译码的区别。您可以用C代码编写代码,并在不同的编译器中运行,运行代码的结果可能会有所不同。如果进行了任何浮点运算,编译器会进行不同的优化以加快代码的速度。理想情况下,一个编译器在优化后总是以相同的顺序执行浮点运算(因此,即使代码与相同的预期输出略有不同,它也将是相同的),这种假设不能在多个编译器/语言/硬件之间保持,因为浮点数非常挑剔

    我还没有读完整的文档,但您可能会感兴趣: http://gafferongames.com/networking-for-game-programmers/floating-point-determinism/