Принцип оптимальности в динамическом программировании заключается в том, что каково бы ни было начальное состояние на любом шаге и решение, выбранное на этом шаге, последующие решения должны выбираться оптимальными относительно состояния, к которому придёт система в конце данного шага. 1
Другими словами, надо выбрать управление на шаге так, чтобы выигрыш на данном шаге (проигрыш) плюс оптимальный выигрыш (проигрыш) на всех последующих шагах был бы максимальным (минимальным). 3
Этот принцип, сформулированный американским математиком Р. Беллманом, гарантирует, что решение, выбранное на любом шаге, является не локально лучшим, а лучшим с точки зрения задачи в целом. 1