Оптимальное распределение капитала

Постановка задачи

Данное учебное пособие предназначено для решения одной из задач динамического программирования − задачи об оптимальном распределении капитала. Вы можете решить задачу непосредственно здесь, на странице в интерактивном режиме. Если у вас установлен пакет MATLAB, можете перейти сюда.

Рассмотрим постановку задачи. Пусть в нашем распоряжении есть капитал xmax, который нужно распределить между n предприятиями для достижения максимальной прибыли. Для каждого k-го предприятия известна функция прибыли gk(x), которая для заданного вложения капитала x вычисляет полученную прибыль. Имеем задачу математического программирования:

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

Квадратичные функции прибыли

Пусть, например, функции gk(x) − квадратичные:

то функция Лагранжа будет иметь вид:

Частные производные от неё по всем аргументам xk и λ будут такими:

Решая эту систему, найдём неопределённый множитель Лагранжа λ и значения аргументов xk, доставляющие максимум целевой функции (1) при заданных ограничениях:

Решим данную задачу непосредственно с этой страницы. Введите ниже в областях ввода общий капитал xmax и коэффициенты кривых прибыли ak и bk. Числа в строках ввода должны разделяться пробелами, как в образце ниже (можете поменять числа):

xmax =
ak =
bk =

Функции прибыли в виде кривых насыщения

Рассмотрим другой пример. Пусть функции прибыли gk(x) имеют вид кривых насыщения:

то задача решается аналогично. Функция Лагранжа имеет вид:

а её частные производные по всем аргументам дадут систему уравнений:

Решение этой системы даёт результат:

Решим данную задачу непосредственно с этой страницы. Введите ниже в областях ввода общий капитал xmax и коэффициенты кривых прибыли ak и bk. Числа в строках ввода должны разделяться пробелами, как в образце ниже (можете поменять числа):

xmax =
ak =
bk =

Функции прибыли в виде таблиц − динамическое программирование

Аналитическое решение возможно, если общий капитал xmax может распределяться непрерывно, а системы уравнений типа (4) или (8) решаются легко. Если же капитал распределяется дискретными порциями и (или) системы уравнений решаются трудно (а они могут и вообще не решаться аналитически), то применяют методы динамического программирования, описанные в многочисленной литературе. См., например, [1].

Решим задачу оптимального распределения капитала непосредственно с этой страницы. Введите ниже в областях ввода исходные данные. В первых двух областях введите общий капитал xmax>0 и шаг Δ>0, с которым он будет распределяться между предприятиями (минимальная порция для вливания капитала). Тем самым будет определены точки, в которых должны быть заданы функции прибыли gk(x): это 0, Δ, 2Δ, 3Δ, ..., xmax. Общее количество точек N = xmax/Δ+1. В следующей области введите значения функций прибыли gk(x) в этих точках (по строкам). Всего строк у вас будет n (количество предприятий), а в каждой строке должно быть N неотрицательных чисел, разделённых пробелами − значения функций прибыли gk(x) в точках 0, Δ, 2Δ, 3Δ, ..., xmax.

xmax =
Δ =
Значения функций прибыли gk(x) в точках 0, Δ, 2Δ, 3Δ, ..., xmax (по строкам):