Dynamic Programming Alignment Algorithm