DP3 Algorithm