We must show two facts: the algorithm achieves the required approximation guarantee, and its running time is polynomial in both and .
Approximation guarantee. By the previous lemma, the returned solution has original value
Thus, the algorithm is a -approximation for every .
Running time. The running time of Rescaled-DP depends on
the sum of all rescaled values. We first bound each rescaled value. Since and ,
There are items, so summing this bound gives
As shown in the algorithm section, the dynamic programme has entries and computes each entry in constant time. Substituting the bound above yields
Computing the rescaled values and recovering the selected items each take additional time, which does not change this bound. Therefore, the algorithm has the required approximation guarantee and runs in time polynomial in and . Hence, it is an FPTAS.