ПОИСК Статьи Рисунки Таблицы Вычислительные аспекты динамического программирования из "Методы оптимизации в химической технологии издание 2" Порядок определения соотношений (VI, 386) — (VI, 38г) приведен на рис. VI-10. [c.271] На втором этапе решения оптимальной задачи находятся оптимальные управления всех стадий и (i= 1,. .., N), для чего необходимо принять соответствующее значение состояния входа процесса я ° . При этом, если значение х °) не задано в исходной постановке оптимальной задачи, его можно также определить оптимальным образом из условия максимума величины / как функции значения ° (У1,39в). [c.273] Зависимость / (я(0)) не обязательно должна иметь экстремальные точки. Максимальное значение fN может достигаться и на границе допустимой области изменения переменной лс(°). Однако при условии свободы выбора значение х ° всегда можно принять таким, чтобы величина fn была максимальной. [c.273] Когда значение состояния входа процесса определено (VI,40), т. е. либо задано, либо найдено из условия максимума функции / ( 0)) можно приступить к нахождению оптимальных управлений для всех стадий процесса, соответствующих выбранной величине я(0) = UQ. Процедура определения оптимальных управлений для всех стадий и является вторым, заключительным, этапом решения оптимальной задачи методом динамического программирования. [c.273] Порядок расчета оптимальных управлений при этом следующий. По соотношению (VI, 396) (рис. VI-11,6) находится оптимальное управление на первой стадии процесса ti = bl, а по соотношению (VI,39r) (рис. VI-ll,a) рассчитывается значение состояния выхода первой стадии 11 т = ар отвечающее этому оптимальному управлению. [c.273] После того как определено состояние выхода первой стадии ж 1), можно найти оптимальное управление и( = Ь2 и состояние выхода лЯт = а2 для второй стадии и т. д. до тех пор, пока не будут определены оптимальные управления для всех стадий процесса. Порядок нахождения оптимальных управлений для (°) = а0 показан на рис. VI-8,6 — VI-11,6 и рис. VI-8,2 — Vl-П.г. [c.273] Проблема размерности. Таким образом, метод динамического программирования дает возможность при оптимизации многостадийных процессов расчленить задачу выбора оптимальных управлений i (i = 1,. .., N) на //задач, в каждой из которых выбирается только одно управление uW. [c.274] Выше уже была рассмотрена вычислительная процедура метода динамического программирования при оптимизации процесса, в котором размерность векторов состояния х и управления и,Ю на каждой стадии равна 1. Очевидно, что решение-задачи может усложниться, если размерность вектора состояния т или векторов управления г отлична от 1. [c.274] Если каждое из соотношений (VI, 44) и (VI, 45) хранится для случая т — 1 и г = 1 в виде таблиц значений величин и х(0 Т для п значений переменной л -1), то общий объем памяти вычислительной машины, требуемый для хранения промежуточных результатов, составляет 2Nn ячеек памяти. [c.276] Однако, как показано выше, в случае когда т = 1, а г отлично от 1, нужно хранить в памяти машины уже г соотношений, определяющих зависимость управляющих воздействий на стадии от состояния ее входа. Таким образом, необходимый объем памяти машины, используемый для хранения промежуточных результатов, составит уже N (г - - п ячеек памяти. [c.276] Рассмотрим теперь вариант, когда размерность вектора управления равна 1 (/ = 1), а размерность вектора состояния отличается от 1, например m = 2. [c.276] Из оценок (VI, 47) следует, что. наиболее сильно требуемый объем памяти машины увеличивается с возрастанием размерности вектора состояний процесса т, т. е. при увеличении числа параметров х( определяющих состояние каждой его стадии. [c.278] Однако указанное препятствие на пути использования метода динамического программирования не столь существенно, если число гпт не слишком велико, так как в случае решения практических задач можно при отсутствии у вычислительной машины запоминающих устройств достаточно большого объема ограничиться решением на ней только первого этапа задачи оптимизации. При этом соотношения (VI, 44) и (VI, 45) могу выводиться из памяти машины в виде таблиц по мере их получения, а окончательные значения управляющих воздействий можно найти ручным счетом второго этапа или на той же машине, в которую данные таблицы снова вводятся в обратной последовательности. [c.278] Гораздо более серьезные затруднения при применении метода динамического программирования в случае оптимизации многостадийных процессов, для которых размерности векторов состояния ( ) и управления и велики, возникают из-за сложности отыскания оптимальных управлений на каждой стадии. [c.278] Для примера рассмотрим особенно часто используемый в динамическом программировании метод поиска максимального значения функции на сетке переменных. Сущность этого метода для функции одной переменной заключается в том, что значения функции x(t) рассчитываются для п равноотстоящих значений независимой переменной t в интервале ее изменения °) / . Значение ), при котором величина х( ) оказывается наибольшей среди всех вычисленных значений х( ) принимается как положение максимума. [c.278] Очевидно, что при применении такого метода погрешность в определении положения максимума уменьшается с возрастанием п, однако необходимый объем вычислений из-за этого увеличивается пропорционально п. [c.278] Нетрудно показать, что в общем случае произвольных значений m и г для решения задачи максимизации на одной стадии требуется провести /г г+т) вычислений выражения, стоящего в правой части рекуррентного соотношения (VI, 33). [c.279] Эти затруднения при применении динамического программирования для оптимизации процессов высокой размерности создатель метода Р. Беллман образно назвал проклятием размерности . [c.280] Поэтому при формулировке задач оптимизации в терминах динамического программирования всегда следует стремиться к тому, чтобы размерность стадии оптимизируемого процесса была по возможности невысокой, так как современные вьгчисли-тельные машины допускают решение указанным методом задач, размерность которых не превышает 4 — 5. [c.280] Множители Лагранжа в динамическом программировании. Неопределенные множители Лагранжа используются в классическом анализе и в вариационном исчислении при решении задач, на переменные которых наложены ограничения типа равенств. С неменьшим успехом эти множители можно применять и в динамическом программировании, где при их помощи удается снизить размерность оптимальной задачи. [c.280] Вернуться к основной статье