Автор работы: Пользователь скрыл имя, 10 Мая 2013 в 21:59, курсовая работа
Потенциальная возможность математического моделирования любых экономических объектов и процессов не означает, разумеется, ее успешной осуществимости при данном уровне экономических и математических знаний, имеющейся конкретной информации и вычислительной технике. И хотя нельзя указать абсолютные границы математической формализации экономических проблем, всегда будут существовать еще неформализованные проблемы, а также ситуации, где математическое моделирование недостаточно эффективно.
ВВЕДЕНИЕ…………………………………………………………………4
І ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ СИМПЛЕКСНОГО МЕТОДА РЕШЕНИЯ ЗЛП…………………………………………………….…6
1.1 Теория линейного программирования……………………………...6
1.2 Общий вид задач линейного программирования………………….8
1.3 Методы решения задач линейного программирования…………..10
1.4 Общая характеристика симплекс-метода……………………………12
ІІ РЕШЕНИЕ ЗЛП СИМПЛЕКСНЫМ МЕТОДОМ………………..…..14
2.1 Примеры использования симплекс-метода в экономике…………14
2.2 Алгоритм решения ЗЛП симплексным методом……………………15
2.3 Решение задачи линейного программирования симплекс-
методом…………………………………………………………………...17
2.4 Двойственная задача………………………………………………....23
ІІІ КОМПЬЮТЕРНАЯ РЕАЛИЗАЦИЯ СИМПЛЕКС-МЕТОДА ПРИ РЕШЕНИИ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ……….....28
3.1 Описание программного продукта……………………………...…28
3.2 Тестирование программного продукта………………….…………30
ВЫВОДЫ………………………………………………………………….32
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ………………………….34
Базисными переменными при этом будутxl,xk+1,xk+2,…,xr-1, xr-1,…,xr.
Предположим, что уравнения типа (2.2) для нового набора базисных и свободных переменных составлены. Тогда можно выразить через новые свободные переменные и линейную функцию Z.Если все коэффициенты при переменных в этой формуле положительны, то мы нашли оптимальное решение: оно получится, если все свободные переменные положить равными нулю. Если среди коэффициентов при переменных есть отрицательные, то процедура улучшения решения продолжается: система вновь разрешается относительно других базисных переменных, и так далее, пока не будет найдено оптимальное решение, обращающее функцию Z в минимум.
Пример 2. Пусть имеется задача линейного программирования с ограничениями-неравенствами:
-5x1-x2+2x3≤2;
-x1+x3+x4≤5; (2.5)
-3x1+5x4≤7.
Требуется минимизировать линейную функцию
Z=5x1-2x3
Приводя неравенства к стандартному виду (≥0) и вводя добавочные переменныеy1,y2,y3переходим к условиям-равенствам:
y1=5x1+x2-2x3+2
y2=x1-x3-x4+5 (2.5)
y3=3x1-5x4+7
Число переменных (n = 7) на 4 превышает число уравнений (т = 3). Значит, четыре переменные могут быть выбраны в качестве свободных.
Пусть в качестве свободных переменных выступаютx1,x2,x3,x4. Положим их равными нулю и получим опорное решение:
x1=x2=x3=x4=0;
y1=2, y2=5, y3=7.
При этих значениях переменных Z= 0.
Это решение не оптимально, поскольку в линейной функции Z коэффициент приx3отрицателен. Значит, увеличиваяx3можно уменьшить Z.
Попробуем увеличиватьx3.Из выражений (2.5) видно, что вy1и y2переменнаяx3входит с отрицательным коэффициентом, значит, при увеличенииx3соответствующие переменные могут стать отрицательными.
Определим, какая из этих переменных (y1илиy2)раньше обратится в нуль при увеличенииx3Очевидно, что этоy1она станет равной нулю приx3=1, а величинаy2— только приx3= 5.
Выбирается переменная у, и вводится в число свободных вместоx3Чтобы разрешить систему (2.5) относительноx3, y2, y3поступим следующим образом. Разрешим первое уравнение (2.5) относительно новой базисной переменнойx3:
x3=5/2*x1+1/2*x2-1/2*y1+1
Это выражение подставляется вместоx3во второе уравнение:
x3=5/2*x1+1/2*x2-1/2y1+1;
y2=-3/2*x1-1/2*x2+1/2*y1-x4+4;
y3=3x1-5x4+7.
Что касается третьего уравнения, то оно, как не содержащееx3не изменится. Система (2.2) приведена к виду со свободными переменнымиx1, x2, y1, x4и базиснымиx3, y2, y3.
Положим теперь свободные переменные равными нулю. Функция приобретает значение Z=-2, что меньше (лучше), чем прежнее значение Z= 0.
Это решение все еще не оптимально, так как коэффициент приx2в выражении (2.7) отрицателен, и переменнаяx2может быть увеличена. Это увеличение, как это видно из системы (2.6), может сделать отрицательнойy2(в первое уравнениеx2входит с положительным коэффициентом, а в третьем — отсутствует).
Поменяем местами переменныеx2 и y2— первую исключим
из числа свободных, а вторую — включим. Для этого разрешим второе уравнение (2.6) относительноx2и подставимx2в первое уравнение. Получим следующий вид системы (2.5):
x3=x1-y2-x4+5
y2=-3x1-2y2+y1-2x4+8 (2.7)
y3=3x1-5x4+7
Выразим Z через новые свободные переменные:
Z=3x1+2y2-y1+2x4-8+y1-2=3x1+2y
Полагаяx1=y1=y2=x4=0 , получим Z = -10.
Это решение является оптимальным, так как коэффициенты при всех свободных переменных в выражении (2.8) неотрицательны. Итак, оптимальное решение ОЗ найдено (2.9):
x1*=0, x2*=8, x3*=5, x4*=0, y1*=0, y2*=0, y3*=7. (2.9)
При таких значениях переменных линейная функция Z принимает минимальное значение (2.10):
Zmin=-10 (2.10)
Заметим, что в рассмотренном примере нам не пришлось искать опорное решение: оно сразу же получилось, когда мы положили свободные переменные равными нулю. Это объясняется тем, что в уравнениях (2.5) все свободные члены были неотрицательны и, значит, первое же попавшееся решение оказалось опорным. Если это окажется не так, можно будет прийти к опорному решению с помощью такой же процедуры обмена местами некоторых базисных и свободных переменных, повторно решая уравнения до тех пор, пока свободные члены не станут неотрицательными
2.4 Двойственная задача
Использование идей двойственности в сочетании с общей идеей симплекс-метода позволило разработать еще один метод решения задач ЛП - двойственный симплекс-метод. Впервые этот метод был предложен Лемке в 1954г. Решение задачи ЛП двойственным симплекс-методом сводится к отысканию оптимального плана прямой задачи последовательным переходом от одного базиса к другому.
Задача
ЛП в канонической форме имеет вид:
максимизировать L(x) = сумма от j=1 до n (сjчj)
при условиях:
сумма от j=1 до n (аjXj)=bv, (v=1,2,....m)
или
сумма от j=1 до n (АjXj)=b, xj>=0, j=1,2,...n
Составим
двойственную задачу по условиям прямой
задачи и определим области допустимых
решений ДП:
Прямая задача Двойственная задача
maxZ=x1-3x3-3x4-MR1-MR2
y1: x1+2x3-2x4+x5=4
y2: 3x1-4x3+4x4+R1=11
y3: x1+x3-x4-x6+R2=0
minW=4y1+12y2
x1: y1+3y2+y3≥1
x3: 2y1-4y2+y3≥-3
-2y1+4y2-y3≤3(1)
X4: -2y1+4y2-y3≥3 (2)
X5: y1≥0
X6: -y3≥0 => y3≤0
R1: y2≥-M
R2: y3≥-M
Итак, получено: y1≥0,y2≤≥0 ,y3≤0.
2. Приведём запись двойственной задачи
к канонической форме. На основании полученных
ОДР двойственных переменных введём необходимые
подстановки:y2=y4-y5; y3=-ỹ3;
ỹ3,y4,y5≥0
Для удобства решения свернём ограничения
(1) и (2) в одно со знаком равенства, а также
введем в ограничения и целевую функцию
избыточные, остаточные и искусственные
переменные.
minW=4y1+12y4-12y5+MR1+MR2
y1+3y4-3y5-ỹ3-y6+R1=1 (3)
-2y1+4y4-4y5+ỹ3+R2=3 (4)
3. Решим ДЗ симплекс методом:
Из (3) выразим: R1=1-y1-3y4+3y5+ỹ3+y6
Из (4) выразим:R2=3+2y1-4y4+4y5-ỹ3
W+y1(-4-M)+y4(-12+7M)+y5(12-
Создаём симплекс-таблицы:
Таблица 2.2 – симплекс-таблица №1
W |
y1 |
y4 |
y5 |
ỹ3 |
y6 |
R1 |
R2 |
ПЧ | |
W |
1 |
-4-M |
7M-12 |
12-7M |
0 |
-M |
0 |
0 |
4M |
R1 |
0 |
1 |
3 |
-3 |
-1 |
-1 |
1 |
0 |
1 |
R2 |
0 |
-2 |
4 |
-4 |
1 |
0 |
0 |
1 |
3 |
B-1(0)= B(0)=
Таблица 2.3 – симплекс-таблица №2
W |
y1 |
y4 |
y5 |
ỹ3 |
y6 |
R1 |
R2 |
ПЧ | |
W |
1 |
-10/3M |
0 |
0 |
7/3M-4 |
4/3M-4 |
-7/3M+4 |
0 |
5/3M+4 |
y4 |
0 |
1/3 |
1 |
-1 |
-1/3 |
-1/3 |
1/3 |
0 |
1/3 |
R2 |
0 |
-10/3 |
0 |
0 |
7/3 |
4/3 |
-4/3 |
1 |
5/3 |
B-1(1)=
B(1)=
Таблица 2.4 – симплекс-таблица №3
W |
y1 |
y4 |
ỹ5 |
ỹ3 |
y6 |
R1 |
R2 |
ПЧ | |
W |
1 |
-40/7 |
0 |
0 |
0 |
-12/7 |
-7/3M+4 |
-M+12/7 |
48/7 |
y4 |
0 |
-1/7 |
1 |
-1 |
0 |
-1/7 |
1/3 |
1/7 |
4/7 |
ỹ3 |
0 |
-10/7 |
0 |
0 |
1 |
4/7 |
-4/3 |
-3/7 |
5/7 |
Симплекс-таблица
№3 – оптимальная, т. к. коэффициенты приНБП≥0
minW=48/7, maxZ=minW=48/7,
y1*=0, y2*=y4*-y5*=4/7, y3*=-5/7
Двухфазовый симплекс метод, иначе называют методом искусственного базиса:
Если в условии задачи линейного программирования не все ограничения представлены неравенствами типа «≤», то далеко не всегда нулевой вектор будет допустимым решением. Однако каждая итерация симплекс-метода является переходом от одной вершины к другой, и если неизвестно ни одной вершины, алгоритм вообще не может быть начат.
Процесс нахождения исходной вершины не сильно отличается от однофазного симплекс-метода, однако может в итоге оказаться сложнее, чем дальнейшая оптимизация. Из изложенного выше не прозвучало отчетливо почему если ограничения отличается от <= не всякий 0-вектор будет допустимым решением. В самом деле пусть i - уравнение имеет вид Ai1X1+...AinXn>=Bi но просто можно изменить знаки записав -Ai1X1- ... AinXn<=-Bi и тем самым привести все неравенства к канонической форме. Это было бы нельзя сделать если бы на вектор B было наложено условие неотрицательностиBi>=0 Но в формулировке выше ограничения вектор B отсутствуют. (это очевидная неточность для теоретической статьи в энциклопедии, где все предпосылки должны формулироваться полно) Если бы все было так просто и легко, непонятно зачем изобретали двухфазный метод... Кроме того по этой же причине классический симплекс метод не годится для решения задачи Min F (точнее не годится в случае положительности всех коэфф целевой функции, т.к. тогда метод не сделает ни одной итерации).
ІІІ КОМПЬЮТЕРНАЯ РЕАЛИЗАЦИЯ СИМПЛЕКС-МЕТОДА ПРИ РЕШЕНИИ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
3.1 описание программного продукта
Методы линейного программирования оказались весьма эффективными для решения задач из различных областей человеческой деятельности. Исключительно важное значение приобретает использование таких методов и средств при решении задач оптимального проектирования, в которых необходимо учитывать огромное количество ограничивающих факторов, что связано с большим объемом вычислений. Разработанный программный комплекс позволяет решать следующие задачи:
•
порождение начального
•
поиск оптимального плана и
экстремума нецелочисленной
•
поиск оптимального плана и
экстремума полностью
•
поиск оптимального плана и
экстремума частично
При проектировании
был использован принцип
Рассмотрим
особенность функционирования