КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Идея динамического программирования (ДП)Метод ДП (Р. Беллман, В.С. Михалевич, Н.З. Шор ) можно трактовать как алгоритмическую версию рассуждений по индукции. Пусть sk(y), 1 £ k £ n, 0 £ y £ Y, — оптимальное значение целевой функции задачи (1) – (3), где n заменено на k, Y заменено на y. Требуется найти sn(Y) и набор переменных, на котором достигается это значение.ТЕОРЕМА 1.Пусть f1, … , fn —монотонно неубывающие функции. Тогда справедливы следующие рекуррентные соотношения:
Доказательство:Соотношение (4)очевидно. По определению sk(y) ³ max {sk-1(y - x) + fk(x) | 0 £ x £ y}. Пусть теперь — такой вектор, что и . Поскольку имеем . Алгоритм ДП вычисляет множество Sk ={sk(y) | 0 £ y £ Y}, k =1,…,n с помощью соотношений (4) и (5), где на каждом шаге оптимизируется ровно одна переменная.
При обратном ходе алгоритма вычисляются значения , с учетом того, что уже известны Sk(y). Например, определяется из уравнения и так далее. Число операций » Y n. Память » Y Характеристики алгоритмов
Для оценки качества алгоритмов будем использовать два параметра: TA— трудоемкость (число элементарных операций алгоритма A); ПА — требуемый объем памяти. Элементарная операция — одна из арифметических операций: сложение, вычитание, умножение, деление или логическая операция сравнение двух чисел. Нас будет интересовать зависимость параметров алгоритма от длины записи исходных данных задачи с точностью до порядка величин. Пример: При Т = 3/2 n2 , будем писать T = O(n2) или T » n2.
|