Algorithm 在已丢失2个或多个子节点后升级节点

Algorithm 在已丢失2个或多个子节点后升级节点,algorithm,math,data-structures,priority-queue,fibonacci-heap,Algorithm,Math,Data Structures,Priority Queue,Fibonacci Heap,在Fibonacci堆的reduce key操作中,如果允许在剪切节点并将其合并到根列表(提升节点)之前丢失s>1子级,这是否会改变整体运行时复杂性?我认为复杂性没有变化,因为潜力的变化将是相同的。但我不确定我是否正确 摊销分析如何证明这一点呢?更改斐波那契堆中节点可能丢失的子节点数确实会影响运行时,但我怀疑,如果您小心操作,仍然会得到相同的渐近运行时 如果允许每个节点在升级回根节点之前丢失多个子节点,那么潜在函数将保持不变,这是正确的。然而,势函数并不是斐波那契堆效率的来源。我们执行级联剪切(

在Fibonacci堆的
reduce key
操作中,如果允许在剪切节点并将其合并到根列表(提升节点)之前丢失
s>1
子级,这是否会改变整体运行时复杂性?我认为复杂性没有变化,因为潜力的变化将是相同的。但我不确定我是否正确


摊销分析如何证明这一点呢?

更改斐波那契堆中节点可能丢失的子节点数确实会影响运行时,但我怀疑,如果您小心操作,仍然会得到相同的渐近运行时

如果允许每个节点在升级回根节点之前丢失多个子节点,那么潜在函数将保持不变,这是正确的。然而,势函数并不是斐波那契堆效率的来源。我们执行级联剪切(在减少键期间将多个节点提升回根级别)的原因是为了确保具有顺序n的树中具有数量为n的指数级节点。这样,当执行最小出列操作并将树合并在一起时,每个顺序最多有一棵树,存储所有节点所需的树总数与节点数成对数关系。标准标记方案确保每个n阶树至少有Θ(φn)个节点,其中φ是黄金比例(约1.618…)

如果在将每个树提升回根之前,允许从每个树中删除更多的节点,我的怀疑是,如果将缺少的子节点数限制在某个常数,那么仍然应该获得相同的渐近时间界限,但可能具有更高的常数因子(因为每棵树包含的节点较少,因此需要更多的树)。如果您想要一个精确的值,可能需要写出数学公式,以查看每棵树中节点数的递归关系


希望这能有所帮助!

你坚持的摊销分析证据是什么?