Аналитический метод решения задач математического программирования Аналитическое решение задач математического программирования 1. Метод неопределенных множителей Лагранжа. Пусть задача имеет вид: Z = F(X) ═> min φ(X) ≥0 (3.1) X={x1, x2,…,xn} Определение. Функция L(x1, x2,…,xn, λ1,λ2,…,λn) =F(x1, x2,…,xn) + Σλi φ i(X), (3.2) где λ1,λ2,…,λn множители Лагранжа называется функцией Лагранжа задачи (3.1). Определение. Седловой точкой функции Лагранжа задачи математического программирования называется точка (X*,λ*) в пространстве переменных размерностью (N*M), в которой для функции Лагранжа выполняются условия: L (X,λ*)≤ L (X*,λ*)≤ L (X*,λ) для всех X≥0 и λ ≥0 Аналитические методы решения задач математического программирования 2. Необходимое условие экстремума функции Лагранжа есть: dL dL 0 и 0 для всех xi и λi d xi d λi Дифференцируя (3.2) по всем переменным получим соотношения: L x , λ 0 при j 0 x , λ 0 x при x j 0 i 0 i 0 xj L xj L L x , λ 0 при x , λ 0 λ при λ λi λi (3.3) Соотношения (3.3) удобно представить в виде системы уравнений дополняющих нежесткостей: x L j λ x , λ 0 xj L i x , λ 0 λi (3.4) Аналитические методы решения задач математического программирования Теорема. Если функция Лагранжа задачи (3.1) имеет седловую точку (X*, λ*), в неотрицательном ортанте xi≥ 0, λi ≥ 0, то вектор Х* является решением этой задачи. Аналитические методы решения задач математического программирования 5. Примеры решения задач. Задача 1. Я собираюсь разместить 100 ден. ед. в банк. Банк предлагает два вида срочных вкладов: - сроком на 1 год под 20% годовых - сроком на 2 года под 25% годовых Мои предпочтения в использовании денег описываются функцией полезности: Z = F(x) = (3/5)tln(x) где: t – период времени использования денег; х – сумма денег. Вопрос. Как мне с большей пользой распорядиться деньгами? Аналитические методы решения задач математического программирования Задача 1. (Решение) 1.1. Формализация задачи. Пусть х1 и х2 суммы денег, которые я предполагаю разместить по вкладам 1 и 2. Размеры вкладов ограничены моим ресурсом: х1 + х2 ≤ 100 Как я могу воспользоваться деньгами: при t =0, (100 - х1 - х2) с пользой z0 =(3/5)0ln (100 - х1 - х2); при t =1, (1+0.2)*х1 с пользой z1 =(3/5)1ln(1.2x1); при t =2, (1+0.25)2*x2 с пользой z2 =(3/5)2ln(1.5625x2) В результате задача принимает вид: 1 2 3 3 Z ln100 x1 x2 ln1.2 x1 ln1.56 x2 max 5 5 x1 x2 100 1 0 2 0 x x Аналитические методы решения задач математического программирования Задача 1.(Решение, продолжение) Функция Лагранжа имеет вид: Z ln 100 x1 x2 1 2 3 3 ln 1.2 x1 ln 1.56 x2 λ 100 x1 x2 5 5 Составляются уравнения дополняющих нежесткостей в виде: x1 100 x2 100 1 x1 x 2 1 x1 3 5 x1 x λ100 x x 0 1 2 2 λ 9 λ 25 x2 0 (3.3) 0 Из вида функции следуют следующие ограничения: x1>0; x2>0; (x1+х2-100) >0 откуда – λ=0 Решение системы уравнений (3.3) есть: X1 =30.61; x2 =18.37; x0=51.02; λ=0 Аналитические методы решения задач математического программирования Задача 2. (Ограничения равенства) Предприятию на двух участках необходимо изготовить 20 изделий. Затраты на изготовление Х1 изделий на участке 1 есть 5*Х12(руб), а на изготовление Х2 изделий на участке 2 – 10Х2+5Х22(руб). Найти план выпуска изделий с минимальными затратами. Аналитические методы решения задач математического программирования Задача 2. (Решение) 1. Формализация задачи. Z=F(x1,x2) = 5*Х12 + 10Х2+5Х22 ═> min х1+x2 = 20 (ограничение 1) x1≥0; x2 ≥0; Ограничение 1 заменяется на два: х1+x2 – 20 ≥ 0 -х1 -x2 + 20 ≥ 0 Аналитические методы решения задачи математического программирования Задача 2.(Продолжение решения) Функция Лагранжа задачи имеет вид: L(x1,x2,λ1,λ2) = 5*Х12 +10Х2+5Х22 + λ1(х1+x2 –20) + λ2(х1-x2+20) Уравнения дополняющих нежесткостей: х1(10x1 + λ1 – λ2) = 0 х2(10x2 + 10 + λ1 – λ2) =0 λ1(х1+x2 – 20) = 0 -λ2(х1+x2 – 20) = 0 λ 1>0 и λ2>0, т.к по условию (х1+x2 – 20) = 0 Аналитические методы решения задач математического программирования Задача 2. (Продолжение решения) Складывая последние два уравнения, получим: (λ1 - λ2) (х1+x2 – 20) = 0 Рассматриваем два случая: Случай 1. (λ1 - λ2) = 0. Тогда х1(10x1 ) = 0 х2(10x2 + 10) =0 10x1 = 0 10x2 + 10 = 0, или x1 = 0 x2 = -10 (Не удовлетворяет смыслу задачи) Случай 2. (λ1 - λ2) ≠ 0. Тогда х1(10x1 + λ1 – λ2) = 0 х2(10x2 + 10 + λ1 – λ2) =0 (х1+x2 – 20) = 0 Если х1>0; x2>0, то имеем (10x1 + λ1 – λ2) = 0 (10x2 + 10 + λ1 – λ2)=0 (х1+x2 – 20) = 0 Вычитая из первого уравнения второе, получим: 10х1 -10х2 = 10 х1 = 10.5 x1 + х2 = 20 х2 = 9.5 Аналитические методы решения задач математического программирования 4. Теорема Куна-Таккера. Теорема формулирует необходимые условия существования решения задачи МП. Теорема. Точка Х* может являться решением задачи математического программирования F(X) min/max gi(X)≤0 при i=1,2,…,m hj(X)=0 при j=1,2,…,k если в ней выполняются следующие условия: 1. Условие стационарности: grad(gi(X*,λ,μ)=0 2. Условие дополняющих нежесткостей: λigi(X*)=0 4. Условия принадлежности решения границе: hj(X) = 0 4. Условие нетривиальности: все λi и μj ≠ 0 При этом: λi ≥0 соответствует минимуму целевой функции; λi ≤0 соответствует максимуму целевой функции. Аналитические методы решения задач математического программирования 3. Экономический смысл множителей Лагранжа. 3.1. Качественная интерпретация множителя Лагранжа. λi*φi(x1,x2,…,xn)=0 -условие дополняющей нежесткостей. λ i ≠ 0 - оптимальное решение лежит на границе φi(x1,x2,…,xn)=0 Экономический смысл – i-ый ресурс расходуется полностью. Его увеличение приведет к повышению эффективности системы. λ i = 0 – оптимальное решение не принадлежит границе φi(x1,x2,…,xn)=0 Экономический смысл – запас i-го ресурса избыточен. Его уменьшение не приведет к снижению эффективности системы. Аналитические методы решения задач математического программирования 3.2. Количественная интерпретация множителя Лагранжа . Зависит от контекста экономической задачи. Пример. Задача об оптимизации выпуска продукции. λ i > 0 означает, что данный ресурс F(X) ═> max будет израсходован полностью и это ограφi(x)≤ bi ничивает повышение производства. xi ≥ 0, i=1,2,…,n Вопрос. Как изменится оптимальное решение при небольшом изменении запаса этого ресурса? Тогда: Х={x1(b),x(b),…,xn(b)}; F(X)=F(X(b)=F(b); φ(X(b))=φ(b) dF/dbi =Σ(dF/dxi)(dxi/dbi); dφ/dbi=Σ(dφ/dxi)(dxi/dbi) В седловой точке: L(X(b), λ) =F(X(b)); dF(X*)/dbi = λi* Прирост производства за счет увеличения ресурса bi пропорционален λi. dF = λi*dbi одновременно dF = сi*dbi Если сi цена ресурса i, то увеличение его запаса выгодно, если λidbi>cidbi λi – предельная цена ресурса, при которой производство остается прибыльным.