Россия |
Лекция 13: Решение задач нелинейного программирования с ограничениями. Геометрическая интерпретация задач нелинейного программирования
3. Метод барьерных поверхностей (метод Кэррола)
Если ограничения в задаче имеют вид чистых неравенств, т.е.
![a_i < g_i (\overline{X}) < b_i , \quad i=\overline{1,m} ,](/sites/default/files/tex_cache/b16090f202fd97bf6e3bcd8ba68c56d9.png)
![G(\overline{X}) = \sum_{i=1}^m \frac{1}{(b_i - g_i (\overline{X}))(g_i(\overline{X})-a_i)} .](/sites/default/files/tex_cache/693414b799ea82e6477fce14441d0dbd.png)
Как только одна из функций достигнет
своего предела ( ai или bi ),
штраф
, т.е.
возникнет т.н. "барьер".
Метод был предложен Кэрролом, и получил название метода барьерных поверхностей (МБП) Кэррола.
При этом ограничения в виде равенств и неравенств всегда можно преобразовать в ограничения в виде чистых неравенств, если к величине ограничения добавить очень малое число (например, 10-5 ).
Рассмотрим действие данного метода на примере задачи оптимального проектирования контейнера.
Пусть требуется спроектировать контейнер в форме прямоугольного параллелепипеда объемом V=1м3. Желательно, чтобы при изготовлении контейнеров затрачивалось как можно меньше материалов. Чтобы его было удобно брать автопогрузчиком, ширина должна быть не менее 1,5 м.
Строим математическую модель контейнера.
1) Формируем вектор переменных .
Параметрами вектора переменных являются: длина x1, ширина x2
и высота x3 контейнера, т.е.
![]() |
( 3.1) |
2) Строим целевую функцию . При
условии постоянства толщины стенок контейнера требование
минимизировать количество материала можно свести к минимизации
площади боковой поверхности контейнера.
Тогда
![]() |
( 3.2) |
3) Формируем ограничения.
Ограничение-равенство:
![]() |
( 3.3) |
![]() |
( 3.4) |
Упростим математическую модель контейнера. Ограничение – равенство (3.3) в задаче, благодаря своей простоте, позволяет уменьшить размерность задачи, т.е.
x3 = 1/x1x2 .
В результате параметр x3 можно исключить
из вектора проектных параметров, и из трехмерной задачи мы получим
двумерную. Тогда вектор будет иметь вид:
![\overline{X}=[x_1,x_2].](/sites/default/files/tex_cache/c4dc96f3ff30fb18e058eecaa8dd27df.png)
![F(\overline{X}) = 2(x_1 x_2 + 1/x_1 + 1/x_2).](/sites/default/files/tex_cache/bff4556f0857444fbc270bc30f667e63.png)
![x_1 > 0, \quad x_2 \ge 1,5\text{м}.](/sites/default/files/tex_cache/7e5c5f31a675cb251888a18a35f66f82.png)
В результате, задача проектирования контейнера может быть сформулирована следующим образом:
Найти вектор , доставляющий
минимум целевой функции
![F(\overline{X}) = 2(x_1 x_2 + 1/x_1 + 1/x_2),](/sites/default/files/tex_cache/b0a5701202a96cc45a4298ec9a3588d9.png)
![x_1 > 0, \quad x_2 \ge 1,5\text{м}.](/sites/default/files/tex_cache/7e5c5f31a675cb251888a18a35f66f82.png)
В данной задаче барьерная функция может иметь вид:
![G(\overline{X}) = \frac{1}{x_1 - 1,5} + \frac{1}{x_2} .](/sites/default/files/tex_cache/b78efec9129699550916c48137084855.png)
Как только один из параметров x1 или x2 достигнет своего предела, штраф , т.е. возникнет
т.н. "барьер".
Штрафная функция в задаче проектирования контейнера будет иметь вид:
![P(\overline{X},RC)=F(\overline{X})+RC \cdot G(\overline{X})
= 2 \left( x_1 \cdot x_2 + \frac{1}{x_1} + \frac{1}{x_2} \right)
+ RC \left( \frac{1}{x_1 - 1,5} + \frac{1}{x_2} \right).](/sites/default/files/tex_cache/1221e355b387d157c154b132f0e0d327.png)
Для нахождения минимума этой штрафной функции (задача двумерная) может быть использован метод многомерной оптимизации.