在同一版本的Julia中,优化问题如何可能有不同的解决方案?

在同一版本的Julia中,优化问题如何可能有不同的解决方案?,julia,cplex,julia-jump,Julia,Cplex,Julia Jump,在两台不同的计算机上运行的同一版本Julia中的优化代码是否可能给出不同的解决方案? 例如,在笔记本电脑上运行一段代码,就得到了这两种解决方案 [712.0, 645.0], [1515.39, 322.625], "R", "V") ([1515.4, 322.5], [1683.3, 0.0], "R", "V") 代码在一台性能更强的PC上运行,但解决方案如下: ([712.0, 645.0], [NaN, 322.625], "R", "V") ([1515.4, 322.5]

在两台不同的计算机上运行的同一版本Julia中的优化代码是否可能给出不同的解决方案? 例如,在笔记本电脑上运行一段代码,就得到了这两种解决方案

[712.0, 645.0], [1515.39, 322.625], "R", "V")
 ([1515.4, 322.5], [1683.3, 0.0], "R", "V")

代码在一台性能更强的PC上运行,但解决方案如下:


 ([712.0, 645.0], [NaN, 322.625], "R", "V")
([1515.4, 322.5], [1683.3, 0.0], "R", "V")
你能帮我怎么可能,怎么解决这个问题吗。在这段代码中,NaN是如何发生的?第一个解决方案是否也能在pc中获得收益?
谢谢你的帮助

是的,使用CPLEX可以在不同的计算机上获得不同的解决方案

具体而言,在关于的文档中,它说:

系统时间(如CPU时间,以秒为单位或挂钟时间 (以秒为单位)是不确定的;换句话说,它可能会有所不同 从一次跑步到另一次跑步。例如,其他应用程序的负载 对系统的影响可能会影响性能,从而影响系统时间。 因此,即使在相同的时间限制下,也可能出现两次连续运行 产生不确定的结果

如果你想提高获得确定性结果的机会,你可以设定一个目标。但是,考虑到您在两台不同的计算机上运行(规格不同?操作系统不同?),这可能仍然不够

编辑:

注释中的链接显示了如何使用跳转设置CPLEX参数。例如,可以设置确定的时间限制,如下所示:

m = Model(with_optimizer(CPLEX.Optimizer, CPX_PARAM_DETTILIM=1000))

这里有很多可能的答案,如果不知道你在做什么,就不可能知道是哪种情况。有些优化库每次都从一个随机位置开始。其他人在每次迭代中使用随机的数据子集。您的停止条件可能是基于时间的,因此速度更快的PC能够使其步数非常小,以至于被零除。或者更多…代码太长,我在这里无法理解。但是库是相同的
JuMP、CPLEX、CPUTime、Plots
。你能帮我把它取下来吗?这两台计算机的精度有可能设置得相似吗?这确实应该是可能的,但这里并没有足够的信息来形成任何有用的答案。鉴于您使用的是CPLEX,您可以研究手动设置它的许多基于时间和/或热启动标志之一。但我在朱莉娅身上找不到任何有用的东西。你能帮我在哪里找到给朱莉娅的吗?谢谢