首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用MATLAB中的CPLEX和Java中的CPLEX求解模型是否可能得到不同的结果?

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

Stack Overflow用户
提问于 2014-08-21 12:23:27
回答 1查看 204关注 0票数 1

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-21 13:04:44

是的,完全正确。在这种情况下,这些语言的作用完全不同,而不仅仅是字节代码与编译代码的差异。您可以用C代码编写代码,并通过不同的编译器运行它,并使运行代码的结果有所不同。如果完成任何浮点运算,编译器就会进行不同的优化,以加快代码的速度。理想情况下,在优化后,单个编译器总是以相同的顺序执行浮点运算(因此,即使代码与相同的预期输出略有不同,它也是相同的),这种假设不能在多个编译器/语言/硬件之间保留,因为浮点数是非常挑剔的。

我还没有看过整个文档,但是您可能会对它感兴趣:http://gafferongames.com/networking-for-game-programmers/floating-point-determinism/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25435303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档