通过缩减建立的下限是否严格?
Are lower-bounds established by reductions tight?
将问题 A 简化为问题 B 意味着问题 B 至少与 A 一样难,甚至更难。
如果我可以减少对其他问题 X 的排序,我知道 X 的下限为 Omega(n log n)。
这个下限是否保证是一个严格的下限?我怀疑它不应该是这样,因为只知道 X 至少和 A 一样难——这意味着它可能更难,因此具有不同的下限。
我的意思是说因为插入排序有一个最坏情况下的 O(n^2) 上界是正确的,所以说它有一个最坏情况也是正确的 运行 O(n^3) 的时间。这是正确的,但没有太大的实用价值——因为我们 99% 的时间都对紧界感兴趣。
你说得很对,绑定不需要太紧。
例如,考虑一个简单的例子:在 n
个整数数组中找到最小的整数。有一个O(1)
space 和O(n)
的时间算法每次都能解决这个问题。然而,这个问题通过减少 O(1)
两种方式减少到排序整数数组的问题:
- 将
MININT
输入转换为SORTINT
输入:将MININT
的输入直接用于SORTINT
。
- 将
SORTINT
输出转换为MININT
输出:return排序数组的第一个元素(假设元素按升序排序)。
在最坏情况下,排序确实有一个 Omega(n) 的下界。这不是一个严格的界限; SORTINT
的 Omega(n lg n) 更紧。但是 MININT
减少到 SORTINT
本身并没有告诉我们这一点。
将问题 A 简化为问题 B 意味着问题 B 至少与 A 一样难,甚至更难。
如果我可以减少对其他问题 X 的排序,我知道 X 的下限为 Omega(n log n)。 这个下限是否保证是一个严格的下限?我怀疑它不应该是这样,因为只知道 X 至少和 A 一样难——这意味着它可能更难,因此具有不同的下限。
我的意思是说因为插入排序有一个最坏情况下的 O(n^2) 上界是正确的,所以说它有一个最坏情况也是正确的 运行 O(n^3) 的时间。这是正确的,但没有太大的实用价值——因为我们 99% 的时间都对紧界感兴趣。
你说得很对,绑定不需要太紧。
例如,考虑一个简单的例子:在 n
个整数数组中找到最小的整数。有一个O(1)
space 和O(n)
的时间算法每次都能解决这个问题。然而,这个问题通过减少 O(1)
两种方式减少到排序整数数组的问题:
- 将
MININT
输入转换为SORTINT
输入:将MININT
的输入直接用于SORTINT
。 - 将
SORTINT
输出转换为MININT
输出:return排序数组的第一个元素(假设元素按升序排序)。
在最坏情况下,排序确实有一个 Omega(n) 的下界。这不是一个严格的界限; SORTINT
的 Omega(n lg n) 更紧。但是 MININT
减少到 SORTINT
本身并没有告诉我们这一点。