拍卖算法不收敛在7820年戴尔由于圆滑的错误
3视图(30天)
显示旧的评论
问题陈述
问题是特别相关跟踪器和传感器聚合工具
在trackerGNN,我使用拍卖算法协会。由于代码是在特定的条件
lapAuctionFwdRev
。
- 我跑3戴尔7820台服务器的代码和代码在lapAuctionFwdRev卡住
- 当我跑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年戴尔是不同的比任何其他戴尔模式由于圆滑的错误。
问题:
- 7820年戴尔如何解决这个问题?
- 这是一个已知的问题(拍卖无限循环了)?
- 如何设置maxAuction从trackerGNN限制(maxAuction参数里面lapAuctionFwdRev函数可以从运行限制while循环无限)?这是默认设置为正。如何设置从跟踪器初始化一个有限的价值呢
跟踪器和传感器聚合工具箱的团队详细文档。任何帮助将不胜感激
最好的问候,
0评论
接受的答案
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;我不熟悉所使用的算法。但我知道,差异是可以预料到的。我只会期望差异导致南如果你使用计算数值不稳定。