Автор работы: Пользователь скрыл имя, 30 Января 2014 в 21:03, курсовая работа
Производственное объединение реализует n видов промышленной продукции на мировом рынке в условиях конкуренции со стороны других фирм. Известно, что объем реализации i-го вида продукции зависит линейно от цены единицы этого вида продукции pi : Vi = ai*pi+bi : чем меньше цена, тем больший объем продукции можно реализовать.
Министерство общего
и профессионального
Самарский Государственный Аэрокосмический
университет
Пояснительная записка
к курсовому проекту по курсу
“Теория принятия решений”
Задача определения оптимальной цены
реализации продукции.
Вариант 98
Выполнил: студентка 632 гр.
Фиалко А. М.
Руководитель проекта: Есипов Б.А.
Самара 2006
Постановка задачи
Вариант 98
Производственное объединение реализует n видов промышленной продукции на мировом рынке в условиях конкуренции со стороны других фирм. Известно, что объем реализации i-го вида продукции зависит линейно от цены единицы этого вида продукции pi : Vi = ai*pi+bi : чем меньше цена, тем больший объем продукции можно реализовать.
Возможности объединения по изготовлению продукции i-го вида ограничены величиной di, а сумма возможностей ограничена d0.
Определить оптимальный набор цен, по которым следует реализовывать все виды продукции при условии получения наибольшей стоимости реализованной продукции.
Параметры:
a1 = -1.5
a2 = -2.1
a3 = -0.67
b1 = 8500
b2 = 7900
b3 = 13200
d1 = 4900
d2 = 5100
d3 = 11300
d0 = 15000
РЕФЕРАТ
Курсовая работа.
Пояснительная записка: 13 стр., 2 таблицы, 4 источника.
Ключевые слова: КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ, НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ, МЕТОД БАРАНКИНА И ДОРФМАНА, МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ, ЦЕЛЕВАЯ ФУНКЦИЯ, ОГАРНИЧЕНИЯ – НЕРАВЕНСТВА, ОПТИМАЛЬНОЕ РЕШЕНИЕ.
Исследована задача
Содержание
Vi – объем реализации i-го вида продукции,
pi – цена единицы i-го вида продукции,
di – объем производства i-го вида продукции,
d0 – общий объем производства продукции,
ai, bi – коэффициенты в заданном уравнении,
i = 1,2,3.
Здесь ai, bi, di, d0 являются постоянными величинами, а pi – управляемые переменные, которые нужно подобрать таким образом, чтобы реализовать все виды продукции с получением наибольшей стоимости. Управляемых переменных 3, а ограничений – 10.
Тогда математическая модель имеет вид:
F = a1p12 + b1p1 + a2p22 + b2p2 + a3p32 + b3p3-> max
Эта задача относится к классу задач квадратичного программирования.
Данная задача принадлежит
к типу задач квадратичного
Вообще, основной недостаток методов нелинейного программирования заключается в том, что с их помощью не удается найти глобальный экстремум при наличии нескольких локальных экстремумов. Поэтому метод считается теоретически разработанным, если найдены соотношения, являющиеся необходимыми и достаточными условиями оптимума, и алгоритмы поиска экстремума с доказательством их сходимости. Этим требованиям удовлетворяют только методы, рассматриваемые в разделе квадратичного программирования, частично методы решения задач с сепарабельными функциями и в значительно меньшей степени прямые методы.
Задача нелинейного
Рассмотрим задачу математического программирования:
, (1а)
(2а)
(3а)
, , (4а)
здесь F(x) – целевая функция, выражение (2) – ограничения равенства, выражение (3) – ограничения неравенства, x – вектор переменных, Dj – некоторые множества.
Если хотя бы одна из функций F(x), φi(x) - нелинейная, то это модель задачи нелинейного программирования. Решение подобных задач возможно только для некоторых классов функций F(x), φi(x), и когда Dj - множество действительных чисел
Задача квадратичного программирования = частный случай задачи нелинейного программирования, в которой целевая функция = сумма линейной и квадратичной функции, а все ограничения линейны:
, (5а)
, (6а)
(7а)
или в матричном виде (P,x,B – векторы-столбцы):
, (8а)
, (9а)
(10а)
В выражении (8а) матрица С должна быть симметричной и положительно полуопределенной – это гарантирует выпуклость целевой функции (5а). Известно, что для задачи выпуклого нелинейного программирования справедлива теорема Куна-Таккера, выражающая необходимые условия того, что точка x0 является решением задачи нелинейного программирования:
(11а)
(12а)
где Ф=Ф(x,λ) – функция Лагранжа.
Теоретически наиболее широко и детально в нелинейном программировании разработан раздел выпуклого программирования, называемый квадратичным.
Методы квадратичного программирования можно разделить на три группы:
К первой группе можно отнести метод Баранкина и Дорфмана. Для поиска опорного решения в нашей задаче мы будем использовать именно его, т.к. данная целевая функция представляет собой сумму линейной и квадратичной функции, а все ограничения линейные.
Задача формулируется следующим образом (в матричном виде):
P’x+x’Cx -> min,
Ax £ b,
x ³ 0
Исходя из теоремы Куна-Таккера, обозначим:
В данном случае условия Куна – Таккера запишутся в виде:
Ax + y = b; (1)
2Cx - v + A’l = -p; (2)
x ³ 0, Y ³ 0, V ³ 0, l ³ 0; (3)
xV + Yl = 0.
Отметим, что последнее равенство (4) может выполняться только для допустимого базисного решения системы, которое характеризуется той особенностью, что из
2(n + m) ограниченных по знаку переменных x, V, Y, l самое большое N переменных, где N = n + m – число равенств в этой системе, отличны от нуля.
Идея метода Баранкина и Дорфмана заключается в том, что процедура последовательного отыскания решения начинается с базисного решения системы (1)-(3), которое не обязательно удовлетворяет условию (4). Затем с использованием симплекс-метода добиваются равенства нулю выпуклой функции xv + yl.
а) алгоритм:
Для удобства изложения все переменные представим в виде 2N – мерного вектора
Z = ||x,y,v, l|| .
Можно поставить в соответствии каждому вектору z вектор z’, определяемый соотношением
Z’ = ||v, l,x,y||,
такой, что
z’I=zi+N, z’I+N=zi,
i = 1,2,..,N,
xV+Yl = 1/2zz’.
С помощью этих векторов, условия (1) – (4) запишутся в виде:
A |
E |
0 |
0 |
z = |
B |
(5) | |||||
|
2C |
0 |
-E |
AT |
-p |
T(z) = zz’ = 0, z ³ 0.
Исходя из некоторого допустимого базисного решения системы (5), совершим последовательность симплекс преобразований, с помощью которых будем уменьшать выпуклую функцию T(z) = zz’, пока не достигнем значения T = 0.
Допустим, имеется некоторое допустимое базисное решение системы (5). Симплекс – таблица в данном случае должна задавать входящие в базис переменные zg как функцию от N небазисных переменных zvh=th, не входящих в базис:
, g=1,2,..,2N.
эту запись можно использовать и для небазисных переменных из числа zg. Для этого симплекс-таблица дополняется строками, все элементы которой (кроме одного, равного единице) равны нулю. В этих строках для небазисной переменной zg = tj будет dgh = 0, h =j, a dgj = 1. функциональную зависимость (6) можно записать в векторном виде:
.
При небазисных переменных th = 0 формула (7) перепишется в виде
Z = d0 ≥ 0, T=d0d’0.
Далее tj=θ>0 и z = d0+ θdj. Увеличиваем переменную tj пока некоторая j-ая из базисных переменных не обратится в нуль. Она определяется из условия:
при dgi<0.
Тогда новое базисное решение: z’ = d0 + θidj, а величина T соответственно
Tj = T + θjkj, где
Kj=2αj+ θjβj, где
αj=djd’0 и βj=djd’j.
Очевидно, что kj<0. Если таких несколько, то выбирается то, которому соответствует наименьшее отрицательное произведение θjkj.
б) вычислительная схема
После определения допустимого базисного решения строят симплексную и дополнительную таблицы в виде табл.1.
Симпл x1=z1 d10 d11 … d1,N
Табл …
…
ym=zN dN,0 dN,1 … dN,N
V1=zN+1 dN+1,0 dN+1,1 … dN+1,N
…
…
λm=z2N d2N,0 d2N,1 … d2N,N
дополнительная
α0
таблица
таблица 1.
В отличие от стандартной симплекс-таблицы здесь добавлена таблица для дополнительных переменных α 0, α j, βj, θj, kj, которые вычисляются по следующим формулам:
α 0 = T = d0d’0=2∑di0di+N,0
При α 0 = 0 сразу получаем оптимальное решение. В противном случае дополнительно находим:
α j = ∑(dijdi+N,0 + di+N,jdi,0), j = 1,…,N.
Далее для j , для которых α j < 0, определяются:
βj = 2∑dijdi+N,j ;
при dgj < 0.
Для определения элемента j вычисляются:
Kj = 2 α j + βjθj .
В качестве заменяющего столбца выбирается такой, для которого отрицательное произведение θj Kj наименьшее. Элемент dgj , по которому определено θj , становится опорным, и из базиса удаляется соответствующая ему g-я переменная, которая встает на место переменной заменяющего столбца. Затем все его элементы делятся на опорный, который при этом становится равным единице. Тем самым получаем заменяющий столбец с новыми элементами. Для получения остальных столбцов новой таблицы, из соответствующих столбцов старой вычитаем уже построенный заменяющий столбец, умноженный на элемент, стоящий на пересечении преобразуемого столбца старой таблицы и заменяющей строки.
В настоящее время подобные задачи легко решаются при помощи современных ЭВМ. Для решения данной задачи воспользуемся пакетом программ Gino. Но прежде решим ее вручную.
Решение задачи.
Поиск решения задачи начинается с приведения составленной целевой функции к минимуму:
L’ = 1.5p12 -8500p1 + 2.1p22 - 7900p2 + 0.67p32 - 13200p3-> min