10.14489/vkit.2020.08.pp.003-011 |
DOI: 10.14489/vkit.2020.08.pp.003-011 Карпов Д. А., Струченков В. И. Аннотация. Проанализирована проблема повышения быстродействия алгоритмов динамического программирования при решении прикладных задач большой размерности. Динамическое программирование рассмотрено как методология, которая позволяет с единых теоретических позиций разрабатывать алгоритмы решения задач, допускающих формализацию в виде многоэтапных (многошаговых) процессов. Показано, что традиционные алгоритмы динамического программирования, основанные на предварительном задании регулярной сетки состояний, малоэффективны, особенно, если параметры, определяющие состояния, не являются целочисленными. Рассмотрены задачи, при решении которых целесообразно строить множества состояний в процессе счета, переходя от одного этапа к другому. Сформулированы дополнительные условия, которым должна удовлетворять задача, чтобы в множества состояний на каждом шаге не попадали заведомо бесперспективные состояния. Приведены примеры прикладных задач, которые более эффективно решаются предлагаемым алгоритмом с отбраковкой состояний. Применительо к двухпараметрическим задачам на конкретных примерах продемонстрирована эффективность алгоритма с отбраковкой состояний по сравнению с традиционными алгоритмами, особенно с повышением размерности задачи. Рассмотрена прикладная задача, при решении которой динамическое программирование используется для построения рекуррентных формул расчета оптимального решения без перебора вариантов вообще. Ключевые слова: динамическое программирование; оптимальная траектория (путь); состояние системы; принцип оптимальности; множества Парето.
Karpov D. A., Struchenkov V. I. Abstract. This article is devoted to the analysis of the possibilities of increasing the speed of dynamic programming algorithms in solving applied problems of large dimension. Dynamic programming is considered rather than as an optimization method, but as a methodology that allows developing, from a single theoretical point of view, algorithms for solving problems that can be formalized in the form of multi-stage (multi-step) processes in which similar tasks are solved at all steps. It is shown that traditional dynamic programming algorithms based on preliminary setting of a regular grid of states are ineffective, especially if the parameters defining the states are not integer. The problems are considered, in the solution of which it is advisable to build a set of states in the process of counting, moving from one stage to another. Additional conditions are formulated that must be satisfied by the problem so that deliberately hopeless states do not fall into sets of states at each step. This ensures the rejection of not only the paths leading to each of the states, as in traditional dynamic programming algorithms, but also the unpromising states themselves, which greatly increases the efficiency of dynamic programming. Examples of applied problems are given, for the solution of which traditional dynamic programming algorithms were previously proposed, but which can be more efficiently solved by the proposed algorithm with state rejection. As applied to two-parameter problems, the concrete examples demonstrate the effectiveness of the algorithm with rejecting states in comparison with traditional algorithms, especially with increasing the dimension of the problem. An applied problem is considered, in the solution of which dynamic programming is used to construct recurrent formulas for calculating the optimal solution without enumerating options at all. Keywords: Dynamic programming; Optimal trajectory (path); System state; Optimality principle; Pareto sets.
РусД. А. Карпов, В. И. Струченков (МИРЭА – Российский технологический университет, Москва, Россия) E-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript EngD. A. Karpov, V. I. Struchenkov (MIREA – Russian Technological University, Moscow, Russia) E-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
Рус1. Беллман Р. Динамическое программирование. М.: Изд-во иностр. литературы, 1960. 400 с. Eng1. Bellman R. (1960). Dynamic programming. Moscow: Izdatel'stvo inostrannoy literatury. [in Russian language]
РусСтатью можно приобрести в электронном виде (PDF формат). Стоимость статьи 350 руб. (в том числе НДС 18%). После оформления заказа, в течение нескольких дней, на указанный вами e-mail придут счет и квитанция для оплаты в банке. После поступления денег на счет издательства, вам будет выслан электронный вариант статьи. Для заказа скопируйте doi статьи: 10.14489/vkit.2020.08.pp.003-011 Отправляя форму вы даете согласие на обработку персональных данных. .
EngThis article is available in electronic format (PDF). The cost of a single article is 350 rubles. (including VAT 18%). After you place an order within a few days, you will receive following documents to your specified e-mail: account on payment and receipt to pay in the bank. After depositing your payment on our bank account we send you file of the article by e-mail. To order articles please copy the article doi: 10.14489/vkit.2020.08.pp.003-011 and fill out the
.
|