У Вікіпедії подано реалізацію для динамічної схеми програмування знизу вгору для відстані редагування. Це не повністю відповідає визначенню; внутрішні клітини обчислюються таким чином:
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 та порівняння.
Однак видалення (або вставка) може призвести до меншої величини, таким чином алгоритм локально неправильний, тобто він порушує критерій оптимальності. Але, можливо, помилка не змінює кінцевий результат - він може бути скасований.
Чи справжня мікрооптимізація дійсна, і чому (ні)?