Автор работы: Пользователь скрыл имя, 22 Января 2014 в 13:54, курсовая работа
Проникновение математики в экономическую науку связано с преодолением значительных трудностей. В этом отчасти была «повинна» математика, развивающаяся на протяжении нескольких веков в основном в связи с потребностями физики и техники. Но главные причины лежат все же в природе экономических процессов, в специфике экономической науки.
Большинство объектов, изучаемых экономической наукой, может быть охарактеризовано кибернетическим понятием – сложная система.
ВВЕДЕНИЕ 3
І ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ СИМПЛЕКСНОГО МЕТОДА РЕШЕНИЯ ЗЛП 5
1.1 Теория линейного программирования 5
1.2 Общий вид задач линейного программирования 7
1.3 Методы решения задач линейного программирования 10
1.4 Общая характеристика симплекс-метода 12
ІІ РЕШЕНИЕ ЗЛП СИМПЛЕКСНЫМ МЕТОДОМ 14
2.1 Примеры использования симплекс-метода в экономике 14
2.2 Алгоритм решения ЗЛП симплексным методом 16
2.3 Решение задачи линейного программирования симплекс-методом 19
2.4 Двойственная задача 25
ІІІ КОМПЬЮТЕРНАЯ РЕАЛИЗАЦИЯ СИМПЛЕКС-МЕТОДА ПРИ РЕШЕНИИ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 30
3.1 описание программного продукта 30
ЗАКЛЮЧЕНИЕ 34
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) все свободные члены были неотрицательны и, значит, первое же попавшееся решение оказалось опорным. Если это окажется не так, можно будет прийти к опорному решению с помощью такой же процедуры обмена местами некоторых базисных и свободных переменных, повторно решая уравнения до тех пор, пока свободные члены не станут неотрицательными
Использование идей двойственности в сочетании с общей идеей симплекс-метода позволило разработать еще один метод решения задач ЛП - двойственный симплекс-метод. Впервые этот метод был предложен Лемке в 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 (точнее не годится в случае положительности всех коэфф целевой функции, т.к. тогда метод не сделает ни одной итерации).
Методы линейного
• порождение начального базисного допустимого решения;
• поиск оптимального
плана и экстремума
• поиск оптимального плана и экстремума полностью целочисленной задачи линейного программирования;
• поиск оптимального
плана и экстремума частично
целочисленной задачи
При проектировании был использован принцип модульного программирования, что упрощает отладку программы и позволяет расширять ее функциональные возможности. Алгоритмическая часть программы имеет модульно-иерархическую структуру, в которой каждый модуль является самостоятельной частью программы и взаимодействует с другими модулями в порядке, установленном разработчиками. Методы решения задач линейной оптимизации, реализованные в программно-алгоритмическом комплексе, основаны на построении симплекс-таблиц, поэтому в структуре программы все алгоритмические модули связаны с модулем, организующим решение задачи линейного программирования симплекс-методом. Входными данными для этого модуля является целевая функция с указанием типа экстремума (максимум или минимум) и ограничения, накладываемые на управляемые переменные. Ограничения задаются в виде уравнений или неравенств. Далее управление передается второму модулю, где формируется начальное допустимое базисное решение. Второй, третий и четвертый модули на каждой итерации реализуемого метода вызывают модуль построения симплекс-таблиц, которому они передают текущий результат. Связь между модулями организована через внешние структуры данных. Так, например, для задания линейного критерия оптимальности, вектора управляемых переменных, вектора ограничений и матрицы ограничений используются одномерные и двумерные статические массивы, а симплекс-таблица в памяти ЭВМ представлена как двумерный динамический массив, способный изменять свою размерность, удаляя или добавляя строки и столбцы к симплекс-таблице.
Рассмотрим особенность функционирования программного комплекса. Для организации диалога с пользователем применяется стандартный графический интерфейс Windows, построенный на основе библиотеки визуальных компонентов VCL (VisualComponentLibrary), поставляемой вместе с пакетом Delphi. При разработке программы использовалась MDI-технология (MultipleDocumentInterface – многодокументный пользовательский интерфейс), что позволяет пользователю работать сразу с несколькими задачами линейного программирования. В программе реализована активная форма диалога, позволяющая выбирать режимы: расчет, просмотр и редактирование информации, получение справки и т.д.
Главное меню содержит следующие пункты: файл, правка, вид, вычисления, окно, справка. Все пункты главного меню вызывают подменю. В начале работы программы некоторые пункты запрещены и становятся разрешенными только по мере выбора других пунктов меню (например, меню «Правка», «Вычисления» и т. д.).
В программе предусмотрена
возможность настройки
3.2 Тестирование программного продукта
Рисунок 3.1 – Поиск максимизирующего прибыль плана производства
Рисунок 3.2 - Поиск максимизирующего прибыль плана производства
Рисунок 3.3 – Оптимальный план производства
Описанная в курсовой работе задача линейного программирования и методы ее решения – только отдельный пример огромного множества задач линейного программирования.Особенностью задач линейного программирования является то, что экстремума целевая функция достигает на границе области допустимых решений. Классические же методы дифференциального исчисления связаны с нахождением экстремумов функции во внутренней точке области допустимых значений.
Линейное программирование представляет собой наиболее часто используемый метод оптимизации. Линейное программирование является одной из основных частей того раздела современной математики, который получил название математического программирования.
Задачи линейного программирования решаются несколькими методами:
1. графический метод;
2. симплекс-метод;
3. двойственный симплекс-метод.
При построении симплексного метода предполагалось, что все опорные планы невырожденные, что обеспечивало получение оптимального плана за конечное количество шагов. В случае вырожденного плана вычисления производят аналогично, но в этом случае возможен возврат к старому базису, что приводи к так называемому зацикливанию.
В основу модифицированного
симплекс – метода положены такие особенности
линейной алгебры, которые позволяют в
ходе решения задачи работать с частью
матрицы ограничений. Иногда метод называют
методом обратной матрицы. В целом, метод отражает традиционные
черты общего подхода к решению задач
линейного программирования, включающего
в себя канонизацию условий задачи, расчёт
симплекс-разностей, проверку условий
оптимальности.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ