拍卖算法不收敛在7820年戴尔由于圆滑的错误

3视图(30天)
问题陈述
问题是特别相关跟踪器和传感器聚合工具
在trackerGNN,我使用拍卖算法协会。由于代码是在特定的条件 lapAuctionFwdRev
  1. 我跑3戴尔7820台服务器的代码和代码在lapAuctionFwdRev卡住
  2. 当我跑7910年戴尔服务器和戴尔m6800的代码,它将正常工作。(即拍卖收敛)
在调查我发现两个不同的成本值约等于1 e-14如此 minRes 是1 e-14。7820年戴尔,当它试图打破领带,a 呆在 rowSoln colSoln 这是不让while循环打破 lapAuctionFwdRev 函数从而陷入无限循环。当我跑同样的条件在任何其他戴尔模式,它将正常工作。它很可能是四舍五入的错误发生 findAllMin 函数( findAllMin lapAuctionFwdRev函数内部函数 )
函数[minValue, minIndicies] = findAllMin(值)
minValue = min(值);
minIndices =找到(值= = minvalue)
结束
minIndices 7820年戴尔是不同的比任何其他戴尔模式由于圆滑的错误。
问题:
  1. 7820年戴尔如何解决这个问题?
  2. 这是一个已知的问题(拍卖无限循环了)?
  3. 如何设置maxAuction从trackerGNN限制(maxAuction参数里面lapAuctionFwdRev函数可以从运行限制while循环无限)?这是默认设置为正。如何设置从跟踪器初始化一个有限的价值呢
跟踪器和传感器聚合工具箱的团队详细文档。任何帮助将不胜感激
最好的问候,

接受的答案

Prashant Arora
Prashant Arora 2021年7月29日
嗨Mehmed,
拍卖算法确实suspectible“价格战”当ε是低和作业成本大致相等。这可能导致算法陷入了很长一段时间,可能无限期停留由于数值精度。
你不能设置maxAuction跟踪器的限制。如果你想继续使用拍卖算法,我建议您创建的副本拍卖算法,进行修改(设置maxAuction)和使用你的修改与trackerGNN分配算法通过设置“赋值”“自定义”。
您也可以选择使用其他分配算法与trackerGNN如“Matchpairs”、“Munkres”和“Jonker-Volgenant”。
谢谢,
Prashant

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2021年7月28日
min () 从来没有 舍入。min()的一个参数使用出现的比较(因为整个数组总是相同的数据类型。)
= = 数据类型相同的两个值之间总是使用出现的比较。min()在一个数字的输出参数总是相同的数据类型作为参数,然后比较,最小值的出现完全相同的副本存储在minValue原始数组中的值。除了在数组的情况都是南,= =在这种情况下保证匹配至少一个值。(当整个数组nan, min()的输出 保证位相同的任何输入nan值)。
因此,问题是 在findAllMin ()
然而,挑战可能值传递给findAllMin ()。不同的处理器有不同的指令集和不同的缓存行为,所以预计确切的数字计算的结果可能是不同的在不同的处理器。
7820年似乎“一个或两个英特尔至强可伸缩的处理器家族的cpu(第一和第二代)28每个处理器核心”。然而,目前网上购物选项包括Intel Xeon青铜3204年,英特尔至强4208白银,英特尔至强银4214 r,英特尔至强5222黄金
7910年“单一或双英特尔 ® 至强 ® 处理器E5 -2600年 v4”。不幸的是,7910似乎没有售出了所以我不能列出特定的cpu。
m6800“第四代英特尔®核心™i5和i7处理器选择英特尔酷睿i7极端版”
当我比较氙处理器,看起来我好像有不同数量的核心,在效率、可用的缓存数/核心,但我不 请注意 任何的差异可用指令集(我可能会忽视一些东西。)然而,不同的缓存 可以 导致不同的计算结果,计算可以得到了不同。
目前我没有想法为什么你可能会得到nan;我不熟悉所使用的算法。但我知道,差异是可以预料到的。我只会期望差异导致南如果你使用计算数值不稳定。
5个评论
Mehmed萨德
Mehmed萨德 2021年7月30日
编辑:Mehmed萨德 2021年7月30日
当然,我将试试。非常感谢先生。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!