Московский физико-технический институт
Опубликован: 25.10.2007 | Доступ: свободный | Студентов: 3791 / 1086 | Оценка: 4.50 / 4.33 | Длительность: 24:00:00
ISBN: 978-5-9556-0065-9
Специальности: Программист, Математик
Лекция 5:

Численные методы решения экстремальных задач

4.3. Задачи математического программирования

Под линейным программированием понимают часть экстремальных задач, рассматривающую минимизацию линейных функций и переменных при наличии дополнительных линейных условий трех типов:

\begin{gather*}
\min\Phi (u);\Phi (u) = \sum\limits_{i = 1}^n{c_iu_i }; \\ 
u_i \ge 0; 1 \le  i \le  n; \\  
\sum\limits_{i = 1}^n{a_{ij} u_i } = b_j ,1 \le  j \le  J_1 \\ 
\sum\limits_{i = 1}^n{c_{ij} u_i \le b_j } , 1_1  < j \le  J_2 \\ 
\end{gather*}
( 4.3)

Каждое из этих условий определяет полупространство, ограниченное гиперплоскостью; вместе эти условия определяют выпуклый n -мерный многогранник J', являющейся пересечением полупространств. Условия типа равенств выделяют из n - мерного пространства (n - m) -мерную плоскость. Ее пересечение с M дает выпуклый (n - m) -мерный многогранник G. Таким образом, задача состоит в том, чтобы найти минимум линейной функции \Phi (u) в многограннике G.

G — выпуклый многогранник (возможно и неограниченный), поэтому внутри него линейная функция \Phi (u) не может достигать минимума. Показывается, что ее минимум, если он существует, достигается в какой-то из его вершин. Теоретически задача линейного программирования достаточно проста: необходимо вычислить значение функций в конечном числе точек — вершинах многогранника, сравнить их между собой и найти среди них наименьшее. Однако трудность заключается в том, что в экономических задачах количество переменных порядка 10^{2} \div  10^{4}, поэтому решение оказывается достаточно сложным.

Пример. Рассмотрим следующую простую задачу линейной оптимизации на плоскости: найти min\Phi (u) = c_{1}u_{1} + c_{2}u_{2} при ограничениях

\left\{ \begin{array}{l}
  a_{11} u_1 + a_{12} u_2 = b_1 \\ 
  a_{21} u_1 + a_{22} u_2 = b_2 \\ 
  u_1 \ge 0,u_2 \ge 0. \\ 
\end{array} \right.

Рис. 4.10.

Рис. 4.11.

Неравенства u_1 \ge 0 и u_2 \ge 0 выделяют I квадрант плоскости (u1, u2), а линейная функция \Phi (u) = c_{1}u_{1} + c_{2}u_{2} при определенных c1, c2 задает в этом квадранте семейство прямых уравнением c1u1 + c2u2 = d ( d неизвестно) (рис. 4.10).

Вообще говоря, ограничения в форме равенств могут быть следующего типа: отсутствует, одно ограничение, два ограничения (последний случай соответствуют рассматриваемому). Пусть СЛАУ в данном примере имеет единственное решение u^* = (u_1^*,u_2^*).

Если выполнены неравенства u_1 \ge 0, u_2 \ge 0, то u* и есть решение задачи линейной оптимизации, а \min\Phi (u) = c_1 u_1^* + c_2 u^*_2 (рис. 4.11).

Если же, например, u_1^*  < 0 и u_2^*  < 0 то задача линейного программирования неразрешима, так как по условию решения находится внутри первого квадранта. В данном случае ограничения определяют единственное решение рассматриваемой задачи, а целевая функция принимает "навязанное" значение \Phi (u^{*}). Процесс решения оказался весьма простым. Если бы имелось больше условий типа неравенств и меньше равенств, рассмотрение оказалось бы более сложным.

Пример. Графическое решение задачи

\begin{gather*}
\min\Phi (u) = - 3u_1 - 3u_2, \\  
u_1 + 2u_2 \le  7, \\  
2u_1 + u_2 \le  8, \\  
u_2 \le  3, \\  
u_2 \le  3, \\ 
u_1 \ge 0, \\  
u_2 \ge 0 
\end{gather*}

приводит к решению u* = (3, 2) и \Phi (u^{*}) = - 15. Для решения задачи рассматриваются линии уровня функции \Phi (u), т.е. семейство параллельных прямых - 3u1 - 3u2 = d = const.

Нормальный к этим прямым вектор - \Phi '_{u}(u) указывает направление убывания целевой функции. Решением задачи u* является одна из вершин многогранника, образованного прямыми системы неравенств.

4.4. Задачи

  1. Свести задачу о нахождении решения системы нелинейных уравнений

    \left\{ \begin{array}{l}
  u - 5 \cdot 10^{- 2} e^{{uv}} = 0, \\ 
  v - 5 \cdot 10^{- 2} e^{- (u + v)} = 0, \\ 
\end{array} \right.

    к вариационной задаче в области \Omega = \{|u - 0,1| \le  0,1; |v - 0,1| \le 0,1\}.

    Решение. Решение системы сводится к нахождению условий минимума функционала

    \Phi ({u,v}) = (u - 5 \cdot 10^{- 2} e^{{uv}})^2 + (u - 5 \cdot 10^{- 2} e^{- (u + v)})^2.
  2. Свести задачу о нахождении минимума функции

    \Phi ({u,v}) = u^4 + v^4 - u^2 - v^2 \mbox{ в области } \Omega > \{|u| \le  1; |v| 
 \le  1\}.

    к решению системы алгебраических уравнений.

    Решение. Задача о нахождении минимума функции \Phi (u,v) сводится к решению системы уравнений

    $ \frac{\partial\Phi }{\partial u} = 0 $,
    $ \frac{\partial\Phi }{\partial v} = 0 $.

  3. Найти значения {x, y}, при которых достигается минимум функции f(x,y) = x3 + y3 - 3xy.

    Решение. Вычислим частные производные

    $ \frac{\partial f}{\partial x} $,
    $ \frac{\partial f}{\partial y} $
    и приравняем их к нулю. Получим систему двух нелинейных уравнений 3x2 - 3y = 0, - 3x + 3y2 = 0. Решениями этой системы являются пары {0, 0}, {1, 1}. Подстановкой убеждаемся, что вторая точка является точкой глобального минимума.

  4. Методом деления отрезка пополам найти точку локального минимума для функции f(x) = x3 + e - x - x на отрезке [0, 1] с точностью \varepsilon  = 10^{ - 2}.

    Решение. Обозначим границы отрезка a0 = 0, b0 = 1 и зададим

    $ \frac{\Delta }{2} = \delta = 10^{- 3} $.

    Вычислим

    $ f \left({\frac{a_0 + b_0 - \Delta }{2}}\right)  \approx  0,2324 $
    и
    $ f \left({\frac{a_0 + b_0 + \Delta }{2}}\right)  \approx  0,2307 $.
    Так как второе значение меньше первого, то положим {a1, b1 } = {0.4990, 1} . Продолжая далее, получим {a2, b2 } = {0,4990; 0,7505}, {a3, b3} = {0,6238; 0,7505}, {a4, b4} = {0,6861; 0,7505}, {a5, b5 } = {0,6861; 0,7191}, {a6, b6 } = {0,7016; 0,7191}, {a7, b7 } = {0,7101; 0,7198} .

  5. С помощью метода Ньютона найти минимум функции F(t) = sin t - cos t, t0 = - 0,5.

    Решение. Найдем точку минимума функции F(t) как корень уравнения F'(t) = 0. Для этого построим итерационный процесс Ньютона:

    $ t_{n + 1} = t_n - \frac{{F^{\prime}}(t_n )}{F^{\prime\prime}(t_n )},  t_0 = - 0,5. $

    При t0 = - 0,5 имеем F'(t_{0}) = \cos t + \sin t \approx  0,3982, F''(t_{0}) = - \sin t_{0} + \cos t_{0} \approx  1,3570,

    $ t_1 = t_0 - \frac{0,3982}{0,1357}  \approx  - 0,7934 $.
    Дальнейшие вычисления дают t2 = - 0,7854, t3 = - 0,7854.

4.5. Задачи для самостоятельного решения

  1. Найти точку локального минимума функций:

    \begin{gather*}
f(x,y) = 3x^2 - 2x\sqrt y + y - 8x + 8, \\  
f(x,y) = x^3 + 8y^3 - 6xy + 1, \\  
f(x,y) = x^2 + y^2 + xy + x - y + 1, \\  
f(x,y) = 2x^3 - xy^2 + 5x^2 + y^2. 
\end{gather*}

  2. Найти точку локального минимума функций:

    \begin{gather*}
f(t) = 2x^2 - \ln x, \\  
f(t) = \frac{t^3}{3} + t^2, \\  
f(t) = \frac{t^4}{4} - 2t^2, \\  
f(t) = t{\kern 1pt} e^{- \frac{t^2}{2}} , \\  
f(t) = 3t^4 - 8t^3 + 6t^2, \\  
f(t) = (t - 5)e^{t} , \\  
f(t) = \frac{t^2 - 3}{{t + 2}}. 
\end{gather*}

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

  3. Найти точки локального минимума функций

    \begin{gather*}
f(x,y) = (x^2 + y - 11)^2 + (x + y^2 - 7)^2, \\  
f(x,y) = (x^2 + y^2 - 1)^2 + (y - x\sin x)^2, \\  
f(x,y) = x^3 + 8y^3 - 6xy + 1, \\  
f(x,y) = (x - 3)^2 + (y - 2)^2 + (x - y - 4)^2, \\  
f(x,y) = 2x^3 - xy^2 + 5x^2 + y^2
\end{gather*}

    методом покоординатного спуска.