Week 12
归约 Reduction
- 目标:根据问题所需要的计算资源对问题进行分类
- 现实:很多问题无法知道具体解决的难度
- 另外一个目标:如果已知解决一个问题是否可以很高效,那么其他的问题我们是否可以解决得很高效
- 定义:如果我们能够使用解决问题Y的算法解决X,那么X可以归约到问题Y
- 解决问题X的代价:解决问题Y的代价 + 归约的代价
设计算法 Designing Algorithm
- 已知问题X可以归约到问题Y上,因此已知用于问题Y的算法,其同样可用于问题X
- 凸包问题:排序问题,归约方式葛立恒扫描法
- 无向图最短路:有向图最短路问题,归约方式是将无向边视为来回两条同权重有向边(甚至是对带夫权重的边)
建立更低的边界 Establishing Lower Bounds
- 证明一个问题一定数量的计算代价(绝对下界)
- 事实上,很难从一个问题的大概框架下分析出其下界,但是归约可以帮助做一定的延申
- 如果问题X满足以下条件被解决,那么X可以线性时间归约为问题Y:
- 线性个数的标准计算步骤
- 常数个数个Y的调用
- 建立更低的下界:
- 如果X需要 N log N N \log N NlogN的复杂度,Y也一样(下界)
- 如果X需要 N 2 N^2 N2的复杂度,Y也一样(下界,不会更低)
- 如果我们能很容易地解决问题Y,那么我们也能很容易地解决X
- 性质:对二次决策树模型,任何排序方法都需要 N log N N \log N NlogN的步骤