บนWikipedia จะมีการติดตั้งชุดรูปแบบการเขียนโปรแกรมแบบไดนามิกจากล่างขึ้นบนสำหรับระยะแก้ไข ไม่ปฏิบัติตามคำจำกัดความอย่างสมบูรณ์ เซลล์ภายในจะถูกคำนวณดังนี้:
if s[i] = t[j] then
d[i, j] := d[i-1, j-1] // no operation required
else
d[i, j] := minimum
(
d[i-1, j] + 1, // a deletion
d[i, j-1] + 1, // an insertion
d[i-1, j-1] + 1 // a substitution
)
}
อย่างที่คุณเห็นอัลกอริทึมจะเลือกค่าจากเพื่อนบ้านบนซ้ายถ้ามีการจับคู่การบันทึกการเข้าถึงหน่วยความจำการดำเนินการ ALU และการเปรียบเทียบ
อย่างไรก็ตามการลบ (หรือการแทรก) อาจส่งผลให้มีค่าน้อยลงดังนั้นอัลกอริทึมนั้นไม่ถูกต้องในตัวเครื่องนั่นคือการแบ่งตามเกณฑ์ optimality แต่ความผิดพลาดอาจไม่เปลี่ยนผลลัพธ์สุดท้าย - มันอาจถูกยกเลิก
นี่เป็นการเพิ่มประสิทธิภาพขนาดเล็กที่ถูกต้องและทำไม (ไม่)?