автоматизация процесса нахождения оптимального плана распределения ресурсов между несколькими предприятиями, который бы позволил предприятиям получать от вложенных в них инвестиций максимальный прирост прибыли, как на одном предприятии, так и в совокупности на всех предприятиях в целом

Цели и задачи

Целью курсового проекта является автоматизация процесса нахождения оптимального плана распределения ресурсов между несколькими предприятиями, который бы позволил предприятиям получать от вложенных в них инвестиций максимальный прирост прибыли, как на одном предприятии, так и в совокупности на всех предприятиях в целом.

Введение и актуальность


Обозначим через управление на -м шаге (=1, 2, …,). Оно должно удовлетворять некоторым требованиям, т.е. быть допустимым. Пусть – управление, переводящее систему из начального состояния в состояние . Обозначим как состояние системы после -го шага. Показатель эффективности рассматриваемой операции – целевая функция – зависит от начального состояния и управления:


Состояние системы зависит только от состояния на предыдущем шаге и управления (и не зависит от других предыдущих состояний и управлений).
Или
.

Является

как эффективность -го шага. Целевая функция является суммой показателей эффективности каждого шага.

Задача пошаговой оптимизации (задача ДП) формулируется так: определить такое допустимое управление переводится из начального состояния в состояние , при котором целевая функция принимает наибольшее (наименьшее) значение.
В формализме решения задач методом динамического программирования используются следующие обозначения[1]:
УВ - управляющее воздействие;
N – число шагов;
– вектор, описывающий состояние системы на k-м шаге;
– начальное состояние, т. е. состояние на 1-м шаге;
– конечное состояние, т. е. состояние на последнем шаге;
Xk – область допустимых состояний на k-ом шаге;
– вектор управляющего воздействия (УВ) на k-ом шаге, обеспечивающий переход системы из состояния xk-1 в состояние xk;
Uk – область допустимых УВ на k-ом шаге;
Wk – величина выигрыша, полученного в результате реализации k-го шага;
S – общий выигрыш за N шагов;
– вектор оптимальной стратегии управления или ОУВ за N шагов;
Sk+1() – максимальный выигрыш, получаемый при переходе из любого состояния в конечное состояние при оптимальной стратегии управления начиная с (k+1)-го шага;
S1() – максимальный выигрыш, получаемый за N шагов при переходе системы из начального состояния в конечное при реализации оптимальной стратегии управления .
Очевидно, что S = S1(), если – фиксировано.
Метод динамического программирования опирается на условие отсутствия последействия и условие аддитивности целевой функции.
Условие отсутствия последействия. Состояние , в которое перешла система за один k-й шаг, зависит от состояния и выбранного УВ и не зависит от того, каким образом система пришла в состояние , то есть тем
Аналогично, величина выигрыша Wk зависит от состояния и выбранного УВ , то есть

Заключение и вывод

Во время тестирования было введено около 6 задач [6] c ответами и 10 задач без ответов, программа дала верный ответ на все задачи, следовательно, коэффициент качества работы программы равен 1.
В ходе работы были обнаружен следующий недочет в программе. Так как при вводе количества распределяемых средств таблица автоматически меняется под заданное количество строк с шагом указанным в поле «Шаг распределения». Поэтому если шаг распределения равен 1, то таблица не может иметь более 100 тыс. строк (100 тыс. шагов, да и заполнить такую таблицу не реально). Поэтому сначала надо ввести шаг распределения, а затем уже сумму.
Вывод в работе следующий: динамическое программирование хорошо приспособлено для решения задач оптимизации многостадийных процессов, особенно тех, в которых состояние каждой стадии характеризуется относительно небольшим числом переменных состояния. Однако при наличии значительного числа этих переменных, т. е. при высокой размерности каждой стадии, применение метода динамического программирования затруднительно вследствие ограниченных быстродействия и объема памяти вычислительных машин.Благодаря средствам автоматизации и языкам программирования, можно облегчить труд инженера, решающего задачи методом динамического программирования.

Нужна похожая работа?

Оставь заявку на бесплатный расчёт

Смотреть все Еще 421 дипломных работ