作业
格雷厄姆算法在并行机排序问题中的2-近似算法证明:
让我们将作业\(i\)在机器\(j\)上的完成时间表示为\(C_{ij}\),\(C_i\)表示在格雷厄姆算法中作业\(i\)的完成时间。同时,\(OPT\)表示给定问题的最优解。
格雷厄姆算法的最优性:
在格雷厄姆算法中,作业在变得可用时立即分配给机器。因此,每个作业的完成时间是其加工时间和等待可用机器的时间之和。
让\(p_i\)表示作业\(i\)的加工时间,\(m\)表示机器数量。作业\(i\)在格雷厄姆算法中的完成时间\(C_i\)由以下公式给出:\(C_i = p_i + \frac{(i-1)}{m} \cdot p_i\)
近似比的分析:
考虑格雷厄姆算法中作业\(i\)的完成时间\(C_i\)和最优解中的完成时间\(C_i^{OPT}\)。
根据完成时间的定义,\(C_i^{OPT}\)满足以下关系: \(C_i^{OPT} \geq p_i\)
现在比较\(C_i\)和\(C_i^{OPT}\):\(\frac{C_i}{C_i^{OPT}} \leq 1 + \frac{(i-1)}{m}\)
近似比:
格雷厄姆算法的整体完成时间是各个作业完成时间的总和:\(\sum_{i=1}^{n} C_i\)
同样,最优解中的整体完成时间为: \(\sum_{i=1}^{n} C_i^{OPT}\)
现在考虑完成时间的比值: \(\frac{\sum_{i=1}^{n} C_i}{\sum_{i=1}^{n} C_i^{OPT}} \leq \sum_{i=1}^{n} \left(1 + \frac{(i-1)}{m}\right)\)
近似比的上界:
简化求和: \(\sum_{i=1}^{n} \left(1 + \frac{(i-1)}{m}\right) = n + \frac{(n-1)(n)}{2m}\)
因此,近似比受到以下界限:\(\frac{\sum_{i=1}^{n} C_i}{\sum_{i=1}^{n} C_i^{OPT}} \leq n + \frac{(n-1)(n)}{2m}\)
结论:
近似比为\(O(n)\),因为在问题中\(m\)是一个常数。
该算法的完成时间最多是\(2 \times OPT\),因此它是并行机排序问题的2-近似算法。