Автор работы: Пользователь скрыл имя, 19 Сентября 2011 в 18:13, курсовая работа
Проникновение математики в экономическую науку связано с преодолением значительных трудностей. В этом отчасти была «повинна» математика, развивающаяся на протяжении нескольких веков в основном в связи с потребностями физики и техники. Но главные причины лежат все же в природе экономических процессов, в специфике экономической науки.
ВВЕДЕНИЕ…………………………………………………………………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
ПРИЛОЖЕНИЕ А………………………………………………………...35
xj≥0,
j=1,2,…,n.
Каноническая
задача линейного программирования
в матричной записи имеет вид
(формулы 1.5, 1.6):
Z(X)=CX → max(min), (1.5)
AX=A0, Y≥θ,
A=
Здесь:
Приведение общей задачи линейного программирования к канонической форме.
В
большинстве методов решения
задач линейного
Возьмем линейное неравенство a1x1+a2x2+...+anxn≤b и прибавим.
Это
может быть сделано следующим образом:
к его левой части некоторую величину
xn+1 , такую, что неравенство превратилось
в равенство a1x1+a2x2+...+anxn+xn+1=b.
При этом данная величина xn+1 является
неотрицательной.
1.3
Методы решения задач
Методы
решения задач линейного
С ростом мощности компьютеров необходимость применения изощренных методов снижается, поскольку во многих случаях время счета перестает быть лимитирующим фактором, поскольку весьма мало (доли секунд). Поэтому мы разберем лишь три метода.
Простой перебор. Возьмем некоторый многомерный параллелепипед, в котором лежит многогранник, задаваемый ограничениями. Как его построить? Например, если имеется ограничение типа 2Х1 + 5Х2 ≤ 10, то, очевидно, 0 ≤ Х1 ≤ 10/2 = 5 и 0 ≤ Х2 ≤ 10/2 = 5. Аналогичным образом от линейных ограничений общего вида можно перейти к ограничениям на отдельные переменные. Остается взять максимальные границы по каждой переменной. Если многогранник, задаваемый ограничениями, неограничен, как было в задаче о диете, можно похожим, но несколько более сложным образом выделить его "обращенную" к началу координат часть, содержащую решение, и заключить ее в многомерный параллелепипед.
Проведем перебор точек параллелепипеда с шагом 1/10n последовательно при n=2,3,…, вычисляя значения целевой функции и проверяя наличие ограничений. Из всех точек, удовлетворяющих ограничениям, возьмем ту, в которой целевая функция максимальна. Решение найдено! (Более строго выражаясь, найдено с точностью до 1/10n).
Направленный перебор.Начнем с точки, удовлетворяющей ограничениям (ее можно найти простым перебором). Будем последовательно (или случайно - т.н. метод случайного поиска) менять ее координаты на определенную величину ∆, каждый раз в точку с более высоким значением целевой функции. Если выйдем на плоскость ограничения, будем двигаться по ней (находя одну из координат по уравнению ограничения). Затем движение по ребру (когда два ограничения-неравенства переходят в равенства)… Остановка - в вершине линейного многогранника. Решение найдено! (Более строго выражаясь, найдено с точностью до ∆ ; если необходимо, в окрестности найденного решения проводим направленный перебор с шагом ∆/2 , ∆/4 и т.д.)
Симплекс-метод. Этот один из первых специализированных методов оптимизации, нацеленный на решение задач линейного программирования, в то время как методы простого и направленного перебора могут быть применены для решения практически любой задачи оптимизации. Он был предложен американцем Г. Данцигом в 1951 г. Симплекс-метод состоит в продвижении по выпуклому многограннику ограничений от вершины к вершине, при котором на каждом шаге значение целевой функции улучшается до тех пор, пока не будет достигнут оптимум.
1.4 Общая характеристика симплекс-
Симплекс
метод - это характерный пример итерационных
вычислений, используемых при решении
большинства оптимизационных задач. В
вычислительной схеме симплекс-метода
реализуется упорядоченный процесс, при
котором, начиная с некоторой исходной
допустимой угловой точки (обычно начало
координат), осуществляются последовательные
переходы от одной допустимой экстремальной
точки к другой до тех пор, пока не будет
найдена точка, соответствующая оптимальному
решению (рис.1.1).
Рисунок
1.1 – Переход от одной вершины к другой
Симплекс-метод, известный также в нашей литературе под названием метода последовательного улучшения плана, впервые разработал Г.Данциг в 1947 г. Этот метод позволяет переходить от одного допустимого базисного решения к другому, причем так, что значения целевой функции непрерывно возрастают. В результате оптимальное решение находят за конечное число шагов.
Симплекс метод - универсальный метод для решения линейной системы уравнений или неравенств и линейного функционала.
Общая идея симплексного метода (метода последовательного улучшения плана) для решения ЗЛП (задачи линейного программирования) состоит:
- умение находить начальный опорный план;
- наличие признака оптимальности опорного плана;
-умение
переходить к нехудшему опорному плану.
ІІ РЕШЕНИЕ ЗЛП СИМПЛЕКСНЫМ МЕТОДОМ
2.1
Примеры использования симплекс-метода
в экономике
Задачи ЛП нашли широкое применение в экономике. Рассмотрим это на примерах.
Пример 1. Рассматривается работа промышленного предприятия под углом зрения его рентабельности, причём приводится ряд мер с целью повышения этой рентабельности. Показатель эффективности - прибыль ( или средняя прибыль ), приносимая предприятием за хозяйственный год.
Пример 2. Группа истребителей поднимается в воздух для перехвата одиночного самолёта противника. Цель операции - сбить самолёт. Показатель эффективности - вероятность поражения цели.
Пример 3. Ремонтная мастерская занимается обслуживанием машин; её рентабельность определяется количеством машин, обслуженных в течение дня. Показатель эффективности - среднее число машин, обслуженных за день.
Пример 4. Группа радиолокационных станций в определённом районе ведёт наблюдение за воздушным пространством. Задача группы - обнаружить любой самолёт, если он появится в районе. Показатель эффективности - вероятность обнаружения любого самолёта, появившегося в районе.
Пример 5. Предпринимается ряд мер по повышения надёжности электронной цифровой вычислительной техники . Цель операции - уменьшить частоту появления неисправностей ( "сбоев" ) ЭЦВТ, или, что равносильно, увеличить средний промежуток времени между сдоями ( "наработку на отказ" ). Показатель эффективности - среднее время безотказной работы ЭЦВТ.
Пример 6. Проводится борьба за экономию средств при производстве определённого вида товара. Показатель эффективности - количество сэкономленных средств.
С помощью анализа модели на чувствительность определить параметр, от которого результат зависит больше и решить, каким способом возможно увеличение эффективности и на сколько, а так же многое другое.
Программа использования симплекс-метода предусмотрена для решения систем линейных неравенств табличным методом, а так же для попытки оптимизации различных экономических, социальных и т. д. проблем.
Симплекс-метод
может применяться на государственных
и частных предприятиях для улучшения
эффективности производства.
2.2
Алгоритм решения ЗЛП симплексным методом
Симплекс-метод
подразумевает последовательный перебор
всех вершин области допустимых значений
с целью нахождения той вершины,
где функция принимает
Первый шаг.В составленной таблице сначала необходимо просмотреть столбец со свободными членами. Если в нем имеются отрицательные элементы, то необходимо осуществить переход ко второму шагу, если же нет, то к пятому.
Второй
шаг.На втором шаге необходимо определиться,
какую переменную исключить из базиса,
а какую включить, для того, что бы произвести
перерасчет симплекс-таблицы. Для этого
просматриваем столбец со свободными
членами и находим в нем отрицательный
элемент. Строка с отрицательным элементом
будет называться ведущей. В ней находим
максимальный по модулю отрицательный
элемент, соответствующий ему столбец
- ведомый. Если же среди свободных членов
есть отрицательные значения, а в соответствующей
строке нет, то такая таблица не будет
иметь решений. Переменная в ведущей строке,
находящаяся в столбце свободных членов
исключается из базиса, а переменная, соответствующая
ведущему столбцу включается в базис.
В Таб.2.1 приведен пример симплекс-таблицы.
Таблица 2.1 –Пример симплекс-таблицы
|
Третий шаг. На третьем шаге пересчитываем всю симплекс-таблицу по специальным формулам.
Четвертый шаг.Если после перерасчета в столбце свободных членов остались отрицательные элементы, то переходим к первому шагу, если таких нет, то к пятому.
Пятый шаг.Если Вы дошли до пятого шага, значит нашли решение, которое допустимо. Однако, это не значит, что оно оптимально. Оптимальным оно будет только в том случае, если положительны все элементы в F-строке. Если же это не так, то необходимо улучшить решение, для чего находим для следующего перерасчета ведущие строку и столбец по следующему алгоритму. Первоначально, находим минимальное отрицательное число в строке F, исключая значение функции. Столбец с этим числом и будем ведущим. Для того, что бы найти ведущую строку, находим отношение соответствующего свободного члена и элемента из ведущего столбца, при условии, что они положительны. Минимальное отношение позволит определить ведущую строку. Вновь пересчитываем таблицу по формулам, т.е. переходим к шагу 3.
Шестой
шаг.Если невозможно найти ведущую строку,
так как нет положительных элементов в
ведущем столбце, то функция в области
допустимых решений задачи не ограничена
сверху и Fmax->∞. Если в строке F
и в столбце свободных членов все элементы
положительные, то найдено оптимальное
решение.
2.3
Решение задачи линейного
Идея симплекс-метода относительно проста. Пусть в задаче линейного программирования имеется п переменных и т независимых линейных ограничений, заданных в форме уравнений. Мы знаем, что оптимальное решение (если оно существует) достигается в одной из опорных точек (вершин ОДР), где по крайней мере k = n - m из переменных равны нулю. Выберем какие-то к переменных в качестве свободных и выразим через них остальные т базисных переменных. Пусть, например, в качестве свободных выбраны первые k = n - m переменныхx1, x2,…,xk,а
остальные m выражены через них(формула 2.1):
xk+1=αk+1.1x1+αk+1.2x2+ +αk+1.kxk+βk+1;
xk+2= αk+2.1x1+αk+2.2x2+ +αk+2.kxk+βk+2;(2.1)
……………………………………
xn=
αn1x1+αn2x2+
+αnkxk+βn.