Dynamic Programming Alignment Algorithm Design