Ключевые слова: динамическое программирование, оптимальное решение, точки срыва плана.
Введение. Благодаря быстрому развитию науки и вычислительных технологий мы все чаще сталкиваемся с задачами анализа данных, прогнозирования и оптимизации, в которых нам приходится работать с большим количеством параметров и условий. Для их решения мы можем использовать различные алгоритмы и математические методы, реализация которых в программном коде позволит легко проводить большое количество необходимых вычислений и, соответственно, быстро получать требуемый результат.
Цель работы. Зачастую применение математических методов нахождения оптимального решения и анализ больших объемов данных можно гораздо проще и быстрее провести с помощью вычислительной техники, поэтому крайне важно иметь возможность реализовать используемые методы в программном коде. Основной целью данной работы является написание программы, способной решать три задачи: построение плана производства, то есть максимизация функции дохода методами динамического программирования и составление алгоритма, следуя которому будет достигнута цель, выявление и классификация точек срыва плана и корректировка плана в случае срыва.
Постановка задачи. Пусть имеется предприятие, занимающееся самостоятельно спланированным производством некоторого товара, или список заказчиков которого определяется единовременно на достаточно большой промежуток времени. Производство осуществляется с помощью N единиц оборудования (это могут быть отдельные станки или группы машин, производящих конечный товар). Каждая единица характеризуется несколькими параметрами, а именно: производительность, доля брака, стоимость планового технического обслуживания, выпускаемого продукта и ресурсов, используемых для производства единицы товара. Каждый из перечисленных параметров может представлять собой как константу, так и функцию от времени, и может быть задан исходя из собранной статистики, прогнозов и заранее определенных данных.
С течением времени оборудование будет изнашиваться, что приведет к уменьшению скорости производства и увеличению доли бракованных изделий. Чтобы вернуть эти показатели в норму, необходимо провести плановое техническое обслуживание (далее ТО), которое потребует дополнительных денежных расходов, но будет проведено в нерабочее время.
Временной точкой срыва плана будем называть фиксированный момент времени, в который происходит незапланированное изменений в выпуске продукции.
Так как предсказать поведение цен, а также назвать точные числа для производительности и доли бракованных деталей крайне трудно, мы будем оперировать допустимыми отклонениями от изначальных параметров. С помощью допустимых отклонений мы сможем определить интервал значений дохода, попадание в который будет являться основной целью нашего предприятия.
Таким образом, мы должны составить оптимальную стратегию проведения ТО, которая максимизирует прибыль за k единиц времени при условии, что рассматриваемое оборудование работает уже единиц времени. После составления плана производства мы должны иметь возможность проверить соответствие текущих показателей дохода с запланированными, и исходя из полученной информации сделать выводы относительно существования точек срыва. В случае срыва плана необходимо скорректировать его с учетом новых значений параметров.
Перед тем как перейти к решению задач и созданию программы необходимо определить способ представления единиц оборудования на производстве. Используя любой объектно-ориентированный язык программирования, мы можем создать класс, который будет содержать всю необходимую информацию об оборудовании, а также методы, реализующие решения поставленных задач.
Построение оптимального плана. Для решения задачи построения плана используется метод динамического программирования, суть которого есть разбиение исходной задачи на более простые и последующая комбинация их решений для получения решения исходной задачи. Ключевыми понятиями в методе динамического программирования при реализации являются понятия многошагового процесса, рекуррентных соотношений, стратегии и принципа оптимальности. Для построения плана будет создана рекурсивная функция вида , где
— функция дохода от времени
— цена планового ТО
Рекурсивные функции являются аналогом рекуррентных соотношений в программировании. Последовательно находя наиболее выгодное решение на каждом этапе, мы придем к оптимальному решению задачи, а так же получим оптимальную стратегию проведения планового ТО для достижения цели.
Выявление иклассификация временных точек срыва плана. Одним из возможных решений задачи выявления точки срыва будет сравнение показателя текущего дохода с величинами . В случае обнаружения разногласий между указанными величинами, мы должны сделать вывод о срыве плана производства и определить, изменение каких переменных послужило его причиной.
Список причин, по которым план производства может быть сорван, включает в себя огромное множество разнообразных событий, которые в данной работе будут разделены на две группы: изменение наблюдаемых значений, то есть цен на расходные материалы, и изменение ненаблюдаемых значений. Под ненаблюдаемыми значениями будем понимать непредсказуемые события, которые могут оказать большое влияние на производство, но не могут быть сопоставлены с точными числовыми значениями, например, поломка оборудования, болезнь сотрудника, авария на электростанции и др.
Чтобы определить, что именно послужило причиной срыва плана, мы можем сравнить текущее значение дохода (а точнее интервал, полученный с учетом допустимых отклонений) и значение дохода с измененными параметрами. Если они совпадают, то можем сделать вывод об изменении ненаблюдаемых параметров, иначе причиной срыва плана послужило серьезное изменение цен.
Реализация данного алгоритма в программном коде проста, может быть реализована двумя методами и основывается на последовательном сравнении указанных выше значений.
Гибкость составленной программы позволяет применить алгоритм и в вероятностной постановке задачи. Идея рассматриваемых в работе допустимых отклонений может быть использована для построения интервала [-3σ, 3σ], с помощью которого мы найдем вероятностные характеристики точек срыва и посчитаем методом статистических испытаний оценки вероятностных характеристик для следующего этапа в условиях случайных возмущений.
Корректировка плана. Вслучае срыва плана необходимо скорректировать план в соответствии с новыми значениями параметров. Изменив рассматриваемые значения, а также, в случае необходимости, время службы оборудования, мы с помощью уже описанного алгоритма получим обновленный план производства.
Вывод. Разработан алгоритм построения оптимального плана производства, выявления и классификации точек срыва плана по двум категориям, рассмотрен случай вероятностной постановки задачи. Описан способ реализации алгоритма в программном коде.
Литература:
- Р. Беллман, А. Дрейфус Прикладные задачи динамического программирования // издательство «Наука», Главная редакция физико-математической литературы, Москва, 1965.
- Р. Беллман, Р. КалабаДинамическое программирование и современная теория управления // издательство «Наука», Главная редакция физико-математической литературы, Москва, 1969.