Геометрическое программирование и задачи
проектирования
Бухвалова Вера Вацлавовна к.ф-м.н., доцент кафедры исследования операций, Санкт Петербургский государственный университет, [email protected]
Филатов Антон Романович инженер II категории отделения прочности и надёжности конструкций, Крыловский государственный научный центр [email protected]
Аннотация
Геометрическое программирование (ГП) гораздо реже включается в математические курсы для инженерных специальностей, чем линейное и выпуклое программирования. Однако в последнее десятилетие ситуация изменилась. Это связано с тем, что были разработаны эффективные методы решения задач ГП и доказана сводимость довольно широкого класса нелинейных задач оптимизации к задачам ГП. В статье описаны два класса задач, для которых В.В. Бухваловой и её учениками была предложена схема их сведения к задачам ГП: экономические задачи с функциями с постоянной эластичностью замены и задача выбора оптимальных параметров балки, у которой помимо напряжений сжатия/растяжения присутствуют напряжение сдвига.
Для популяризации идей и методов ГП в рамках Национального Открытого Университета «ИНТУИТ» был создан интернет-курс «Введение в геометрическое программирование», который успешно используется уже на протяжении 7 лет. Рассказ о структуре этого курса, опыте его использования в учебном процессе и планах его усовершенствования на базе системы MyOpenMath - вторая тема этой статьи.
Geometric programming (GP) has traditionally not been as frequently included into mathematical courses for engineers as linear programming and convex programming. Thanks to development of efficient methods of GP problem solutions during the last decade, GP has been gaining popularity in education. At the same time, a number of types of non-linear optimization problems were shown to be equivalent to GP problems. We describe two general classes of problems that have GP counterparts: economic problems with objective functions characterized by constant elasticity of substitution and engineering problems of optimal selection of structural beam properties. In the latter problem, we allow for required compressive, tensile and shear stress tolerances.
To popularize ideas and methods of GP, seven years ago, we designed an online course «Introduction to Geometric Programming» offered through National Open University «Intuit». Here, we describe our experience of the course and including the online course in standard university education, as well as our plans for its further development on the basis of the online platform MyOpenMath.
Ключевые слова
геометрическое программирование, интернет-курс, система MyOpenMath geometric programming, online course, MyOpenMath platform
Введение
Геометрическое программирование (ГП) - сравнительно новый подход к решению нелинейных задач оптимизации специальной структуры, который редко в должном объёме включается в математические курсы для инженерных специальностей. Хотя история этого направления началась с применения его именно к задачам инженерного проектирования. Первая монография по ГП ([24]), автором которой является родоначальник этого направления К. Зенер, называется «Engineering Design by Geometric Programming». Последнее десятилетие были разработаны эффективные методы решения задач ГП и методы сведения довольно широкого класса нелинейных задач оптимизации к задачам ГП. Расширился и список областей исследований, в которых применяется ГП. С этими результатами можно ознакомиться в работах, приведённых в списке литературы ([11, 12, 13, 14, 18, 21]).
Статья имеет следующую структуру. Раздел 2 посвящён краткому обзору основных постановок задач ГП. В разделе 3 на примере экономической задачи оптимизации выпуска с целевой функцией с постоянной эластичностью замены приводится схема её сведения к задаче ГП. Задача выбора оптимальных параметров балки, у которой помимо напряжений сжатия/растяжения присутствуют напряжения сдвига, обсуждается в разделе 4. Приведён пример сведения частного случая этой задачи к задаче ГП. В разделе 5 рассказано об интернет-курсе «Введение в геометрическое программирование», который успешно используется уже 7 лет в рамках Национального Открытого Университета «ИНТУИТ».
Геометрическое программирование
История геометрического программирования началась в 1961 г., когда К. Зенер опубликовал статью [23], в которой привел примеры задач инженерного проектирования, которые можно сформулировать как задачи оптимизации обобщённых полиномов, и доказал, что оптимальное решение этих задач является решением специальной системы линейных уравнений. В 1967 году Даффин, Питерсон и Зенер опубликовали монографию [6], в которой впервые ввели термин геометрическое программирование для обозначения специального класса задач нелинейной оптимизации. Введение этого термина обусловлено тем, что в ранних исследованиях по ГП широко использовалось геометрическое неравенство Коши и его обобщения. Все имеющиеся на настоящий момент подходы к решению задач ГП базируется на теории двойственности, которая впервые была описана в работе Даффина и Питерсона [15].
В классической постановке задача ГП заключается в минимизации некоторого позинома при ограничениях, согласно которым значения других позиномов не должны превышать единицы:
Задача A 0о СО ^ min
при ограничениях
gkСО < 1, к = 1,..., р,
Xj > 0, j = 1,..., т,
где
т
9к(х) = ^ V*,
ie[fc] 7=1 к = 0,..., р, Cj > 0.
Функции дк (к = 0,..., р) - это обобщённые полиномы, состоящие из суммы
одночленов из индексного множества [&]. Каждый одночлен внутри полинома является произведением строго положительного коэффициента С1 и переменных х^ с показателями степени а^. Эти показатели степени (в отличие от обычного полинома) могут быть любыми вещественными числами. Такие полиномы называются позиномами. Область определения позинома, поскольку возможен дробный и/или отрицательный показатель, ограничена строго положительными вещественными числами.
Обозначим через п общее число одночленов, входящих в р + 1 позином. Тогда индексное множество I = [1,..., п] нумерует их последовательно так, что первый элемент позинома д0 имеет номер 1, а последний элемент позинома др -номер п. Будем обозначать через [&] индексное подмножество, соответствующее позиному дк:
I = [1] и [2] и ... и [р], [к] П [I] = 0 при [к] Ф [г].
Двойственная задача к задаче А (задача В) имеет нелинейную целевую функцию и линейные ограничения:
Задача В
<£) = Щ(сгМЩI^ ^ тах
при ограничениях
= к = 0, р, 10 = 1 (нормальность), = ^к, 1 = 1,..-,т (ортогональность), , 1к > 0, к = 0,..., р, I = 1,..., п.
Методы решения задач ГП являются либо прямыми - непосредственно решающими нелинейную прямую задачу А, либо двойственными - решающими эквивалентную двойственную задачу В. Заметим, что сначала были разработаны именно двойственные методы. Эти методы условно можно разбить на две группы. К первой группе относятся методы, в которых используются необходимые условия Куна-Таккера и достаточные условия оптимальности для двойственной позиномиальной задачи. Методы из второй группы используют линейность ограничений двойственной задачи и возможность её переформулировки, при которой число переменных будет равно размерности множества всех решений в линейных ограничениях. Эта переформулировка называется редуцированной двойственной задачей и была впервые предложена в [15]. В двойственных методах часто используется линеаризация, впервые описанная Даффином в [16].
Класс задач, для решения которых можно применять методы ГП, можно существенно расширить: в [6] показано, что любая корректно поставленная алгебраическая задача может быть преобразована в эквивалентную задачу со знакопеременными полиномами, которая затем при помощи преобразований, описанных в [17], преобразуется в эквивалентную позиномиальную задачу. Однако на практике выполнение этих преобразований требует применения различных математических приёмов, что мы продемонстрируем в следующих двух разделах этой статьи.
Функции с постоянной эластичностью замены
Традиционным подходом к решению задачи максимизации производственной функции с постоянным коэффициентом эластичности замещения при ограничении на ресурс является построение линейной аппроксимации целевой функции, после которой происходит применение методов линейного
программирования [19]. В работе [3] впервые было показано, что эта задача может быть преобразована в эквивалентную задачу ГП. Доказанный факт верен и для многих других функций с постоянной эластичностью замены.
Предполагается, что рассматривается следующая задача:
Задача E U(K, L) = (аКр + (1 - a)Lp)1/p ^ max
при ограничении
ркК + pLL < w,
где
U (К, L) - объём производимой продукции,
К - капитал, К >0,
L - труд, L >0,
0 < а < 1, ре 1],
рк - стоимость единицы капитала К, рк > 0,
рь - стоимость единицы труда L, рь > 0,
w - совокупный бюджет, w >0.
Имеются различные примеры применения этой модели для анализа реальных экономических сюжетов: задача о вторичной занятости, стратегия импортёра для повышения эффективности отрасли, поведении домашних хозяйств.
Под эластичностью в экономике понимают меру чувствительности одной переменной (в рассматриваемой модели - капитала К) к изменению другой (в рассматриваемом модели - труда L) в предположении неизменности значения некоторой функции (в рассматриваемом модели - объём производства U). Коэффициент эластичности а показывает, на сколько процентов изменится первый показатель при изменении второго на 1%. Для целевой функции задачи Е коэффициент эластичности а постоянен и верна формула (см., например, [8]):
и = , р е ]-ю;0[ U ]0;1[.
Рассмотрим сначала задачу E при 0 < р <1. Введём дополнительную переменную Т0 >0 и заменим целевую функцию минимизацией позинома:
Т-1/р ^ min
при ограничении
аКр + (1 - a)Lp > Т0. Разделим обе части этого ограничения на Т0 (> 0):
аКрТ-1 + (1 - a)LpT-1 > 1. (1)
Получили обратное ограничение задачи ГП, которое преобразуем в прямое ограничение, используя лемму из [6]. Согласно этой лемме, выполняется неравенство:
1/0(0 <g"(t;ß),
где для позинома
N
g(t) = £ Ui(t), Ui(t) = ... Cim
i=1
и положительных весов ß1t..., ßN, таких что Yli=1ßi = 1, соответствующим гармонически обратным называется позином:
N 2
ß) = Утлтл.
!Ui(t)
i=1
Возьмём положительные ß1 и ß2, такие что ß1 + ß2 = 1, получим для ограничения (1):
ß2 ß2
t-^WT-1 + < 1.
Рассмотрим бюджетное ограничение задачи E. Разделим обе его части на w
w 1ркК + w гр1Ь < 1. Таким образом, мы получили задачу ГП (р = 2, m = 3):
n-1/p
при ограничениях
V ^ min
в2 В2
^КРТ-1 + < 1,
к-1ркК + ш-1рь1 < 1. Преобразование задачи Е при р <0 аналогичное, но существенно проще: не потребуется преобразовывать обратное ограничение. В результате получим следующую задачу ГП (р = 2, т = 3):
n-1/p
при ограничениях
V ^ min
аКрТ-1 + (1 - а)ЬрТ-1 < 1, и/~1ркК + №~1рь1 < 1. Аналогичные преобразования могут быть проведены и с другими функциями, имеющими постоянный коэффициент эластичности замены.
4. Статически определимая балка
Уже в первой монографии, посвященной ГП [7], К. Зенер рассматривает задачу минимизации веса арки в гражданском строительстве и приводит её сведение к задаче ГП. При этом он отмечает, что «система напряжений арки чрезвычайно проста, ...она находится под напряжением чистого сжатия». Из теории известно, что это линейное напряжённое состояние, которое описывается достаточно простым уравнением. В развитие этих идей авторы рассматривают классическую задачу плоского напряжённого состояния, изучаемую в курсе сопротивления материалов: свободно опёртая однородная металлическая балка AB длиной I нагружена равномерно распределённой поперечной нагрузкой q (рис. 1). Балка имеет прямоугольный профиль шириной t и высотой h (рис. 2). Требуется найти балку минимальной массы M, удовлетворяющую условиям прочности (весом конструкции по сравнению с нагрузкой можно пренебречь):
Задача S M(t, h) = pith ^ min
при ограничении
Oiv < M,
где
p = const - плотность материала балки, p >0;
aIV - эквивалентное напряжение в балке, вычисленное по IV (энергетической) теории прочности:
OIV = Ja2 + 3Т^у;
[с] - допускаемое напряжение.
При этом компоненты ах и тху тензора напряжений вычисляются согласно теории Тимошенко [9].
Вопрос устойчивости стенки балки выносится за пределы рассмотрения.
л,
ЗИЕ
I 1 I
B
Рис. 1. Конструктивная схема закрепления балки и её нагружения, а также связанная с ней система координат
Ai
l
z
t
Рис. 2. Профиль поперечного сечения балки и обозначения его размеров
Очевидно, что минимизация массы М эквивалентна минимизации площади А профиля балки:
д0 (t, h) = А = th ^ min, которая по своему виду является позиномом.
Для авторов задача имеет чисто математический интерес, поэтому помимо естественных ограничений t >0 и h >0 на размеры профиля также накладываются удобные, с точки зрения вычислений, ограничения:
t<l, h<l,
которые с помощью элементарных преобразований записываются в виде позиномов (I > 0):
(gi(t, h) = l-1t< 1, lg2(t, h) = l-1h< 1. Остаётся лишь канонически записать прочностное ограничение. Для этого сначала необходимо при фиксированных размерах профиля балки определить точки локальных максимумов эквивалентного напряжения aIV. Прежде перехода к поиску этих точек отметим, что все выкладки удобно производить с использованием внутренней системы координат ((, () балки:
f ■= х/1 - 1/2, Т) ■= y/h, ( ■= Z/t. В этих обозначениях нормальные и касательные напряжения соответственно принимают вид
, ч ql2h /1 \ ч ql2hh /1 \
th3
где Iz = — - момент инерции профиля. Тогда
„ , 4l2h П) =
24 м
(1 +з -Ч2)2.
Заметим, что ащ является чётной функцией по обоим аргументам, поэтому достаточно найти точки локальных максимумов только внутри квадрата [0,1/2]2.
Применяя стандартную технику дифференцирования и поиска стационарных точек с последующим сравнением значений функции в найденных точках со значениями функции на границе области определения, приходим к выводу, что эквивалентное напряжение достигает своих локальных максимумов в точках (0,1/2) и (1/2 ,0), а также в симметричных им точках (0, — 1/2) и (— 1/2,0):
3 а12 373 а1
а„(0,1/2) = — 1/2) = ^^, 0^(1/2 , 0) = 1/2 , 0) = —
которые соответствуют наибольшим нормальному и касательному напряжениям (тут стоит сказать, что у наибольшего касательного напряжения появляется коэффициент V3). Полученная система прочностных ограничений записывается в виде позиномов:
„ ч 3^ а1 „ „ д4(ь, К)= — тЧг1^1 < 1.
Введём обозначения:
со: = I'1,
4 [ст]
3 а12 а1
С1:: = -Л Т-Т, С2: =
4 [а]' ~2' 4
Учитывая эти обозначения, система ограничений перепишется в виде:
с0Ь < 1, с0И < 1,
1~1к~2 < 1, ~1К~1 < 1,
\С2Ь
Приведём вектор коэффициентов сформулированной задачи ГП:
и матрицу экспонент
для
= {1, Со, Со, С1, С2}, А = (а^)52 = ^
0 —1 —1
01
1)'
Для решения этой задачи воспользуемся двойственностью. Поскольку прямая задача имеет пять мономов, двойственная функция V имеет пять переменных
(I = (¿1, ¿2, dз, ¿.4, й5):
С1 С2
о
учётом
„ ¿1
4-2/ \"3/ \"4/ \и5/ " '
Запишем условия нормальности и ортогональности неотрицательности двойственных переменных:
( й1 = 1, < й1 + й2 — й4 — = 0, ш1 + й3— 2й4 — й5 = 0; й1> 0, I = 1, .„,5.
Решение полученной системы уравнений можно представить в виде двухпараметрического семейства:
а = (1, й2, а3, а3 — й2,1 + 2й2 — а3), 0 <а2<а3< 1 + 2й2,
следовательно,
= 14т) Ы —[о].
По условию
г <1 ^ ц/1 < ц/ь = р, где р - среднее давление, действующее на верхнюю поверхность балки, причём на практике р « [ст], откуда
9 д
41[а]
« 1.
В такой ситуации очевидно, что двойственная функция V максимальна при с12 = с13 = 0. Поэтому минимальная площадь А* профиля балки равна
Л* = д0(Г, к*) = ^(1,0,0,0,1) =
На последнем этапе запишем условие существования оптимального решения:
3^3 а1 = ч
4 [ст]
которое совместно с ограничением д3 приводит к однопараметрическому семейству решений
к* = а-"=, ? = 19Л, 1 <а<^3.
• 3 а 4 [а]
В завершение следует отметить, что более корректными, с точки зрения применимости балочной теории, являются геометрические ограничения
£ < г/10, к < г/10,
приводящие нас к двойственной функции вида
^ /90 д \й2( 10ч^ 3^ Ч1
;(Ю = 1тщ) Ш ТЙ-
которая в случае < — максимальна уже при (й2, <!3) = (0,1). Тогда мы получим
.* 30 а1 , * ^ I * 300 а
А* = — 7", к* <—, С* = -т*-,
4 [ст] 10 4 [а]
" Л Ч 1
которое находится на границе геометрических ограничений. А в случае ] > —
задача решений не имеет, так как требуется хотя бы один размер профиля, превосходящий г/10.
^ ^ 1
в случае ■
решение
Интернет-курс по ГП
Для популяризации идей и методов ГП под руководством В.В. Бухваловой в рамках Национального Открытого Университета «ИНТУИТ» был разработан интернет-курс по геометрическому программированию «Введение в геометрическое программирование», который успешно используется уже на протяжении 7 лет [4, 5, 25]. За это время на курс записалось около 500 слушателей.
Курс состоит из семи лекций, в которых рассмотрены следующие темы: неравенство Коши и его обобщения, задачи ГП без ограничений и с ограничениями, теория двойственности, связь теории ГП с теориями линейного и выпуклого программирования, методы преобразования некоторых классов задач оптимизации в задачи ГП. Излагаемая теория демонстрируется на многочисленных примерах. Там, где это возможно, описываются методы решения задач ГП с использованием средств MS Excel.
Специфика интернет-курса нашла своё отражение в двух деталях. Во-первых, для каждой лекции разработаны практические задания в виде тестов и упражнений, позволяющие закрепить материал лекции. Во-вторых, для задач ГП, решение которых требует применение специальных методов, предлагается использовать созданный авторами пакет GeomProg. Установка этого пакета предельно проста, так как он создан как приложение к MS Excel (язык программирования VBA). Описанию пакета GeomProg посвящена последняя лекция курса. В существующей версии курса при процессе сдачи экзамена слушателю предлагаются задачи из фиксированного набора, подготовленного авторами курса.
Для решения задач ГП в пакете GeomProg реализован двойственный метод, предложенный в [22]. Суть этого метода состоит в том, что исходной задаче ГП с ограничениями в стандартной постановке ставится в соответствие пара эквивалентных задач (прямая и двойственная), которые являются задачами
замена позволяет устранить двойственностью - наличие
сохранения данных и
обобщённого линейного программирования. Такая вычислительные трудности, обычно связанные с неактивных ограничений и недифференцируемость.
Перечислим основные возможности пакета:
• решение задачи ГП с ограничениями;
• поддержка русского и английского языков;
• поддержка стандартных способов ввода-вывода, решения задачи;
• формирование отчёта по итерациям;
• формирование листа с отчётом о решении задачи;
• получение информации о времени решения задачи и количестве итераций.
К пакету GeomProg прилагается банк задач ГП, состоящий на настоящий
момент из 74 задач, отобранных из 29 источников. Для каждой задачи, включенной в банк, указываются полные библиографические данные её источника, условие задачи и решение. Поэтому банк можно использовать как для составления дополнительных заданий, так и для тестирования вновь создаваемого программного обеспечения. В качестве примера на рис. 3 приведён фрагмент листа с условиями задачи Attetkov [1 ] из банка задач. Полученное решение этой же задачи приведено на рис. 4.
в
Е Р
Имя задачи Айе1кда[1] Число переменных 3 Число ограничений_1_
информация о целевой функции
Решить задачу
Сохранить задачу в файле
информация об ограничении 1
Далее
Вернуться в главное меню
Рис. 3. Фрагмент листа с данными задачи Attetkov [1 ]
Рис. 4. Фрагмент листа с решением задачи Attetkov [1 ]
Наряду с продолжением расширения банка задач ГП, авторы планируют
создание программы-генератора случайных задач ГП с заданными свойствами. Именно такой подход является современным при создании интернет-курсов. В качестве платформы предполагается использовать систему MyOpenMath [2].
Литература
1. Бекишев Г.А., Кратко М.И. Элементарное введение в геометрического программирование - М.: Наука, 1980.
2. Бухвалова В.А., Бухвалова В.В. MyOpenMath: от генерации задач до полной сетевой поддержки курсов // Компьютерные инструменты в образовании -2015. № 2. - С. 49-62.
3. Бухвалова В.В., Рогульская А.С. Расширение области применимости методов геометрического программирования // Обозрение прикладной и промышленной математики - 2008. Т. 15, выпуск 2. - С. 270-273.
4. Бухвалова В.В., Рогульская А.С. О создании интернет-курса «Введение в геометрическое программирование» // Обозрение прикладной и промышленной математики - 2009. Т. 16, выпуск 3. - С. 457-458.
5. Бухвалова В.В., Рогульская А.С. Введение в геометрическое программирование - М. : Интернет-Университет Информационных Технологий - 2009.
6. Даффин Р., Питерсон Э., Зенер К. Геометрическое программирование - М.: Мир, 1972.
7. Зенер К. Геометрическое программирование и техническое проектирование -М.: Мир, 1973.
8. Плакунов М.К., Раяцкас Р.П. Производственные функции в экономическом анализе - Вильнюс: Минтис, 1984.
9. Тимошенко С.П. Сопротивление материалов - М.: Наука, 1965.
10. Филатов А.Р. Применение методов геометрического программирования при оптимизации балочных конструкций : дипломная работа - СПб:. СПбГУ, 2016.
11. Boyd S. at al. A Tutorial on Geometric Programming // Optimization and Engineering - 2007. Vol. 8, № 1. - P. 67-127.
12. Chiang M. Geometric Programming for Communication Systems // Foundations and Trends in Communications and Information Theory - August 2005. Vol. 2, № 1. -P. 1-156.
13. Chiang M. at al Geometric Programming for power control // IEEE Trans. Wireless Communications - 2006.
14. Creese R. Geometric Programming for Design and Cost Optimization (with Illustrative case study problems and solutions) - Morgan & Claypool Publishers, 2011.
15. Duffin R.J., Peterson E.L. Duality theory for geometric programming // SIAM J. Appl. Math. - 1966. Vol. 14, № 6. - P. 1307-1349.
16. Duffin R.J. Linearizing geometric programs // SIAM Review - 1970. Vol. 12 -P. 211-227.
17. Duffin R.J. Geometric programming with signomials // J. Optimization Theory and Applic. - 1973. Vol. 11 - P. 3-35.
18. Hoburg W., Abbeel P. Geometric Programming for Aircraft Design Optimization // AIAA Journal - September 15, 2014.
19. Hoff A. The Linear Approximation of the CES Function with n Input Variables // Marine Resource Economics - 2004. Vol. 19. - P. 295-306.
20. Lange K., Zhou H. MM algorithms for geometric and signomial programming // Math. Program., Ser. A - 2014. Vol. 143 - P. 339-356.
21. Martins J.R., Lambe A.B. Multidisciplinary Design Optimization: A Survey of Architectures // AIAA Journal - September 2013. Vol. 51, № 9. - P. 2049-2075.
22. Rajgopal J., Bricker D.L. Solving Posynomial Geometric Programming Problems via Generalized Linear Programming // Computational Optimization and Applications - 2002. Vol. 21. - P. 95-109.
23. Zener C. A Mathematical Aid in Optimizing Engineering Design // Proceedings of the National Academy of Science - 1961. Vol. 47. - P. 537-539.
24. Zener C. Engineering Design by Geometric Programming - NY: John Wiley, 1971.
25. Бухвалова В.В., Рогульская А.С. Интернет-курс «Введение в геометрическое программирование» // Национальный Открытый Университет «ИНТУИТ». URL: http://www.intuit.ru/studies/courses/539/395/info (дата обращения 24.12.2016).