Решение задачи линейного программирования

Для решения задач с ограничениями в виде неравенств используется вычислительный аппарат линейного программирования. При решении задач оптимального управления появляются задачи линейного программирования, требующие использования нестандартных, специализированных методов решения.

Задачи линейного программирования, возникающие при решении задач оптимального управления методом последовательной линеаризации, являются конечно-разностными аппроксимациями континуальных задач вида: найти функцию Решение задачи линейного программирования - student2.ru из условий

Решение задачи линейного программирования - student2.ru ,

Решение задачи линейного программирования - student2.ru , Решение задачи линейного программирования - student2.ru ,

Решение задачи линейного программирования - student2.ru .

Задача линейного программирования появляется как характерная промежуточная задача в алгоритмах поиска минимума после проведения конечномерной аппроксимации. Она формулируется следующим образом: найти числа Решение задачи линейного программирования - student2.ru из условий

Решение задачи линейного программирования - student2.ru , (1.26)

Решение задачи линейного программирования - student2.ru Решение задачи линейного программирования - student2.ru , (1.27)

Решение задачи линейного программирования - student2.ru Решение задачи линейного программирования - student2.ru .

Здесь Решение задачи линейного программирования - student2.ru , Решение задачи линейного программирования - student2.ru , Решение задачи линейного программирования - student2.ru , Решение задачи линейного программирования - student2.ru - заданные числа.

Разработано большое количество алгоритмов точного решения задачи (1.26) - (1.27), которые объединяются общим термином симплекс-метод. Как прямые, так и двойственные варианты симплекс-метода позволяют решать задачи линейного программирования с ограничениями типа неравенств.

Реализация симплекс-метода встречает определенные трудности в задачах высокой размерности. Это связано с тем, что в таких задачах приходится работать с матрицей очень большого объема. В то же время исходная матрица, будучи слабо заполненной, часто может быть размещена в оперативной памяти вычислительной машины, если элементы матрицы можно не запоминать, а вычислять по сравнительно простым формулам. В таких ситуациях итерационные приближенные методы, не преобразующие исходной формы задачи и не порождающие новых объектов типа матрицы общего положения, могут оказаться предпочтительными и даже единственно реализуемыми.

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

После проведения конечномерной аппроксимации путем введения на отрезке времени Решение задачи линейного программирования - student2.ru сетки с большим числом интервалов (например, в рассматриваемых в монографии задачах N=50 - 100 и более) при наличии в условиях задачи многочисленных ограничений (в рассматриваемых задачах Решение задачи линейного программирования - student2.ru =1 - 10) приходится иметь дело с задачей вида (1.26) - (1.27), решение которой симплекс-методом весьма затруднительно. Кроме того, полученную промежуточную задачу линейного программирования нет необходимости решать точно, достаточно получить приближенное решение итерационным методом, задав приемлемую точность решения.

Итак, рассмотрим задачу: заданы Решение задачи линейного программирования - student2.ru -мерные векторы Решение задачи линейного программирования - student2.ru , Решение задачи линейного программирования - student2.ru , Решение задачи линейного программирования - student2.ru и числа Решение задачи линейного программирования - student2.ru , Решение задачи линейного программирования - student2.ru , Решение задачи линейного программирования - student2.ru . Определено линейное отображение Решение задачи линейного программирования - student2.ru -мерного прямоугольника Решение задачи линейного программирования - student2.ru : Решение задачи линейного программирования - student2.ru в выпуклый многогранник Решение задачи линейного программирования - student2.ru в Решение задачи линейного программирования - student2.ru -мерном пространстве:

Решение задачи линейного программирования - student2.ru .

Требуется найти точку Решение задачи линейного программирования - student2.ru с наименьшим Решение задачи линейного программирования - student2.ru и ее прообраз в Решение задачи линейного программирования - student2.ru , где Решение задачи линейного программирования - student2.ru - вектор, орт Решение задачи линейного программирования - student2.ru -мерного пространства, соответствующий оси Решение задачи линейного программирования - student2.ru .

Алгоритм приближенного решения задачи линейного программирования по основной идее близок к двойственному варианту симплекс-метода. Ведущим подходом является эквивалентность сформулированной задачи задаче на минимакс: найти

Решение задачи линейного программирования - student2.ru

где Решение задачи линейного программирования - student2.ru - вектор, определяемый условием нормировки Решение задачи линейного программирования - student2.ru , который является опорным к Решение задачи линейного программирования - student2.ru -мерной грани множества Решение задачи линейного программирования - student2.ru . Решение такой задачи определяет значение Решение задачи линейного программирования - student2.ru , после чего определение прообраза Решение задачи линейного программирования - student2.ru в Решение задачи линейного программирования - student2.ru сводится к решению системы Решение задачи линейного программирования - student2.ru линейных алгебраических уравнений.

Итерационный метод дает приближенное решение в том смысле, что вместо соотношения

Решение задачи линейного программирования - student2.ru

получается

Решение задачи линейного программирования - student2.ru ,

где Решение задачи линейного программирования - student2.ru - малый параметр. Кроме того, величина Решение задачи линейного программирования - student2.ru не будет точным минимумом, поэтому для нее требуется выполнение оценки

Решение задачи линейного программирования - student2.ru ,

где Решение задачи линейного программирования - student2.ru - заданное число. Число Решение задачи линейного программирования - student2.ru и параметр Решение задачи линейного программирования - student2.ru определяют требуемую точность решения.

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

Однако, это приводит к тому, что за заранее определенное количество итераций приближенного метода решения задачи (1.26) - (1.27) может не выполниться условие для оценки Решение задачи линейного программирования - student2.ru , в связи с чем снижается точность решения задачи линейного программирования. Как следствие этого уменьшается эффективность алгоритма формирования командного управления в целом.

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

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

Это позволяет использовать рассмотренный итерационный метод решения задачи линейного программирования при следующих условиях. Назначается меньшая по сравнению с процессом формирования номинального управления величина малой окрестности опорного управления Решение задачи линейного программирования - student2.ru метода последовательной линеаризации. Выполняется небольшое, заранее определенное число итераций поиска вариаций управления Решение задачи линейного программирования - student2.ru и небольшое заранее определенное число итераций метода последовательной линеаризации. В этом случае дополнительные исследования сводятся к уточнению численных значений упомянутых параметров, удовлетворяющих целевой задаче управления аэрокосмическим аппаратом.

Использование метода штрафных функций.Рассмотрим метод штрафных функций, сводящийся в используемых обозначениях к минимизации по Решение задачи линейного программирования - student2.ru квадратичной формы следующего вида:

Решение задачи линейного программирования - student2.ru .

Метод штрафных функций обеспечивает решение задачи условной минимизации как последовательности решений задач безусловной минимизации.

Алгоритм решения задачи линейного программирования (1.26) - (1.27) на основе метода штрафных функций сводится к выполнению следующих операций.

1. Осуществляется нормировка задачи.

Нормировка обеспечивает условия, при которых одинаковым вариациям управления соответствуют равные приращения функционалов в исходной задаче оптимального управления. При нормировке каждая строка (1.27) Решение задачи линейного программирования - student2.ru делится на Решение задачи линейного программирования - student2.ru .

2. Задается начальное приближение вариаций управления - компоненты вектора Решение задачи линейного программирования - student2.ru : Решение задачи линейного программирования - student2.ru Решение задачи линейного программирования - student2.ru .

3. Задаются целые числа - пределы изменения значений штрафного коэффициента Решение задачи линейного программирования - student2.ru Решение задачи линейного программирования - student2.ru и счетчика в методе условного градиента Решение задачи линейного программирования - student2.ru Решение задачи линейного программирования - student2.ru .

4. Задаются значения точности Решение задачи линейного программирования - student2.ru , с которыми должны выполняться Решение задачи линейного программирования - student2.ru -е ограничения.

5. Для всех значений Решение задачи линейного программирования - student2.ru выполняется цикл действий, соответствующий Решение задачи линейного программирования - student2.ru -кратному выполнению пунктов 6 - 12.

6. Вычисляются невязки:

Решение задачи линейного программирования - student2.ru Решение задачи линейного программирования - student2.ru .

7. Определяется функция:

Решение задачи линейного программирования - student2.ru , если Решение задачи линейного программирования - student2.ru ,

Решение задачи линейного программирования - student2.ru , если Решение задачи линейного программирования - student2.ru .

8. Вычисляется и запоминается значение обобщенной функции:

Решение задачи линейного программирования - student2.ru .

9. Вычисляются компоненты градиента обобщенной функции:

Решение задачи линейного программирования - student2.ru Решение задачи линейного программирования - student2.ru .

10. Определяется вспомогательное приближение:

Решение задачи линейного программирования - student2.ru при Решение задачи линейного программирования - student2.ru ,

Решение задачи линейного программирования - student2.ru при Решение задачи линейного программирования - student2.ru ,

Решение задачи линейного программирования - student2.ru при Решение задачи линейного программирования - student2.ru .

11. Находится параметр Решение задачи линейного программирования - student2.ru , определяющий длину шага изменения вариации управления Решение задачи линейного программирования - student2.ru из условия:

Решение задачи линейного программирования - student2.ru .

Минимизация обобщенной функции Решение задачи линейного программирования - student2.ru осуществляется методом золотого сечения.

12. Определяется новое приближение градиентного спуска:

Решение задачи линейного программирования - student2.ru , Решение задачи линейного программирования - student2.ru .

13. Среди чисел Решение задачи линейного программирования - student2.ru выбирается наименьшее. Соответствующие ему значения Решение задачи линейного программирования - student2.ru Решение задачи линейного программирования - student2.ru принимаются за решение задачи линейного программирования (1.26) - (1.27).

Приведенный алгоритм позволяет за определенное количество вычислительных операций приближенно решить задачу линейного программирования. Заранее подобранные значения свободных параметров алгоритма обеспечивают приемлемую точность решения задачи (1.26) - (1.27) и, как следствие этого, не ухудшают эффективность функционирования алгоритма формирования командного управления в целом.

Практическое занятие № 2

РЕШЕНИЕ ЗАДАЧ С ПОМОЩЬЮ

Наши рекомендации