Загальна постановка задачі

 

Динамічне програмування – один із розділів оптимального програмування, у якому процес прийняття рішення і управління може бути розбитий на окремі етапи (кроки).

Економічний процес є керованим, якщо можна впливати на хід його розвитку. Під управлінням розуміють сукупність рішень, які приймаються на кожному етапі для впливу на розвиток процесу.

Наприклад: випуск продукції є керованим процесом, тому що за управління можна прийняти сукупність рішень (початок року, кварталу, місяця) з забезпечення підприємства сировиною, заміні обладнання, фінансуванню тощо. Необхідно організувати випуск продукції таким чином, щоб прийняті рішення на окремих етапах сприяли одержанню максимально можливого обсягу продукції або прибутку.

Динамічне програмування дозволяє звести одну складну задачу із багатьма змінними до багатьох задач з малою кількістю змінних. Це значно скорочує обсяг обчислень і прискорює процес прийняття управлінського рішення.

На відміну від лінійного програмування, у якому симплексний метод є універсальним методом розв’язку, у динамічному програмуванні такого універсального методу не існує.

Одним із основних методів динамічного програмування є метод рекурентних співвідношень, який ґрунтується на основі принципу оптимальності, який розроблений американським вченим Р. Беллманом. Принцип полягає у тому, що яким би не були початковий стан на будь-якому етапі і управління, яке обрано на цьому етапі, наступні управління повинні обиратися оптимальними відносно стану, до якого прийде система у кінці даного етапу. Використання даного принципу гарантує, що управління, обране на будь-якому етапі, не локально краще, а краще з точки зору процесу в цілому.

У деяких задачах динамічного програмування процес управління розбивається на кроки. При розбитті на декілька кроків ресурсів діяльності підприємства, кроком доцільно вважати часовий проміжок, а при розподілі коштів між підприємствами – номер наступного підприємства. У інших задачах розбиття на кроки вводиться штучно. Наприклад, неперервний керований процес можна розглядати як дискретний, штучно розбивши його на часові відрізки (етапи). Виходячи з умови задачі, у кожному конкретному випадку довжину кроку обирають таким чином, щоб на кожному етапі одержати просту задачу оптимізації і забезпечити необхідну точність обчислень.