Оптимизация денежных потоков. Часть 1
Резюме
Данный цикл статей будет посвящен методу оптимизации денежный потоков в принятии управленческих решений. Тут частично будут затронуты и сами методы оптимизации, но в основном статьи будут направлены на то, как правильно сформулировать оптимизационную задачу и получить необходимый результат.
Принятие лучших решений не всегда дает максимальный результат
Сразу начну с примера. Имеется три возможных проекта, для инвестирования. Бюджет ограничен $500 тыс. Требуется определить, какие проекты следует финансировать. Показатели проектов представлены в таблице.
Номер проекта | Затраты | Доход | Чистая прибыль | Рентабельность |
1 | 100 | 130 | 30 | 0,3 |
2 | 300 | 360 | 60 | 0,2 |
3 | 200 | 250 | 50 | 0,25 |
Если руководствоваться принципом, что в первую очередь надо принимать самые прибыльные проекты, то решением будут первый и третий проекты, и их суммарная прибыль будет $80 тыс. Но это не самое оптимальное решение. Наибольшую прибыль ($110 тыс.) можно получить, если принять второй и третий проекты.
Знающие люди сразу заметят, что данная задача подобна классической задачей о ранце, которая относится к классу NP-полных, т.е. оптимальное решение можно найти только полным перебором или его вариациями (методом ветвей и границ, динамическим программированием). Алгоритм, по которому принимаются решения начиная с самых лучших, покуда не будет достигнуто ограничение, называется "жадным". Он может не дать самый оптимальный результат. В примере это и происходит.
В итоге, можно сказать, что оценка инвестиций - это только пол дела. Не менее важной задачей является определение набора инвестиций, который удовлетворяет ограничениям и максимизирует целевую функцию.
Решается данная задача так:
AX -> max
BX+С >= 0
где А - чистая приведенная стоимость по проектам;
X - вектор решений по проектам (элементы могут принимать значения ноль либо один);
B - матрица денежных потоков проектов;
Но внимательные тут могут заметить, что остаток неиспользованных средств в конце каждого периода не переносился на следующий. Решается данное упущение совсем просто:
AX -> max
E(BX+С) <= 0
где А - чистая приведенная стоимость по проектам;
X - вектор решений по проектам (элементы могут принимать значения ноль либо один);
E - бинарная нижнетреугольная матрица;
B - матрица денежных потоков проектов;
Матрица E выполняет собой функцию кумулятивной суммы, т.е. сальдо предыдущего периода переносится на начало следующего. В итоге оптимизации у нас получится, что следует финансировать проекты А, Б, Г, Д и суммарная чистая приведенная стоимость составит 3049.
Знающие люди сразу заметят, что данная задача подобна классической задачей о ранце, которая относится к классу NP-полных, т.е. оптимальное решение можно найти только полным перебором или его вариациями (методом ветвей и границ, динамическим программированием). Алгоритм, по которому принимаются решения начиная с самых лучших, покуда не будет достигнуто ограничение, называется "жадным". Он может не дать самый оптимальный результат. В примере это и происходит.
В итоге, можно сказать, что оценка инвестиций - это только пол дела. Не менее важной задачей является определение набора инвестиций, который удовлетворяет ограничениям и максимизирует целевую функцию.
Учтем остаток средств
В учебном пособии Зайцева М.Г. и Варюхина С.Е. "Методы оптимизации управления и принятие решений: примеры, задачи, кейсы" есть одна задача на оптимизацию:
"Компания имеет шесть различных возможностей вложить деньги. Каждая из возможностей требует определенных инвестиций в течение ряда лет (в таблице отрицательные значения) и после определенного срока приносит прибыли (положительные числа в таблице).
Годы Проект А Проект Б Проект В Проект Г Проект Д Проект Е 1 -500 -900 -1200 -700 -2000 -1800 2 -600 -600 -1000 -500 600 -1500 3 -1600 610 -500 -2000 600 -1000 4 1200 400 -500 -1000 600 -1000 5 1400 500 2500 -1500 600 3500 6 1500 950 2500 8000 600 3500
Компания хочет вложить капитал в те проекты, которые максимизируют
суммарную для всех проектов чистую приведенную стоимость в расчете на шесть лет при ставке дисконта 5% годовых.
Компания имеет инвестиционный бюджет, который не должен быть
превышен для каждого года, а именно, на первый год не более $4.5 млн.
инвестиций, на второй год не более $2.5 млн. и на третий год – $2.2 млн., далее
компания должна иметь положительный денежный поток по выбранным
проектам.
Предполагается, что любой проект финансируется либо полностью, либо
не финансируется совсем."
Решается данная задача так:
AX -> max
BX+С >= 0
где А - чистая приведенная стоимость по проектам;
X - вектор решений по проектам (элементы могут принимать значения ноль либо один);
B - матрица денежных потоков проектов;
С - вектор доступных средств.
Решая данную систему вы получите тот же ответ, что и в учебнике:
"Финансируются проекты А, В и Д. Максимальная суммарная чистая приведенная стоимость $2 301."
Но внимательные тут могут заметить, что остаток неиспользованных средств в конце каждого периода не переносился на следующий. Решается данное упущение совсем просто:
AX -> max
E(BX+С) <= 0
где А - чистая приведенная стоимость по проектам;
X - вектор решений по проектам (элементы могут принимать значения ноль либо один);
E - бинарная нижнетреугольная матрица;
B - матрица денежных потоков проектов;
С - вектор доступных средств.
Матрица E выполняет собой функцию кумулятивной суммы, т.е. сальдо предыдущего периода переносится на начало следующего. В итоге оптимизации у нас получится, что следует финансировать проекты А, Б, Г, Д и суммарная чистая приведенная стоимость составит 3049.
Комментариев нет:
Отправить комментарий