Алгоритм решения задач симплексным методом
Министерство сельского хозяйства РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
Пермская государственная сельскохозяйственная академия
имени Ак. Д. Н. Прянишникова
Курсовая работа
по дисциплине «Методы оптимизации»
на тему: «Алгоритм решения задач симплексным методом»
Руководитель:
Старший преподаватель
кафедры ИТАП
______________
Исполнитель: подпись, дата
Студент группы ПИ-31Б
______________
подпись, дата
г. Пермь, 2011.
Содержание
Введение…………………………………………………………
1 Описание симплексного
метода..…………...……………………………...…
2 Алгоритм решения задач симплексным методом……………………...…………..9
2.1 Графический метод……………………………………………………………….
2.2 Табличный симплекс
– метод……………………………………………….…...
2.3 Модифицированный симплекс – метод.………………………………………...25
2.4 Алгоритм метода
искусственного базиса………………...
2.5 Двойственный симплекс-метод………………..……………………
3 Решение реальной производственной задачи…………………………………….32
3.1 Постановка задачи………………………………………………………………
3.2 Решение задачи………………………………………………………………
Заключение……………………………………………………
Список используемой литературы………………………………………………….
Введение
Многие задачи, с которыми приходится иметь дело в повседневной практике, являются многовариантными. В условиях рыночных отношений среди множества возможных вариантов приходится отыскивать наилучшие - с учетом ограничений, налагаемых на природные, экономические и технологические возможности. В связи с этим возникла необходимость применять для анализа и синтеза экономических ситуаций и систем математические методы и современную вычислительную технику.
Методы и модели линейного программирования широко применяются при оптимизации процессов во всех отраслях народного хозяйства: при разработке производственной программы предприятия, распределении ее по исполнителям, при размещении заказов между исполнителями и по временным интервалам, при определении наилучшего ассортимента выпускаемой продукции, в задачах перспективного, текущего и оперативного планирования и управления, при планировании грузопотоков, определении плана товарооборота и его распределении, в задачах развития и размещения производительных сил, баз и складов систем обращения материальных ресурсов и т. д. Особенно широкое применение методы и модели линейного программирования получили при решении задач экономии ресурсов (выбор ресурсосберегающих технологий, составление смесей, раскрой материалов), производственно-транспортных и других задач.
В данной курсовой работе будет рассмотрен алгоритм решения задач с применением симплексного метода.
Перед нами стоит несколько задач: введение понятия «симплексный метод», обозначение условий применения данного метода на практике, особенности решения, а также алгоритм решения задач различными способами (графический, алгоритмический, матричный) и предоставление практического решения реальной производственной задачи.
1 Описание симплексного метода
Симплекс - выпуклый многоугольник в n-мерном пространстве с n + 1 вершинами, не лежащими в одной гиперплоскости. Симплексы выделены в отдельный класс потому, что в n-мерном пространстве n точек всегда лежат в одной гиперплоскости(гиперплоскость делит пространство на два полупространства). Так что симплекс - это простейший многоугольник, содержащий некоторый объем n-мерного пространства.
Симплексный метод решения задач линейного программирования (симплекс-метод)1 - вычислительная процедура, основанная на принципе последовательного улучшения решений - перехода от одной базисной точки к другой, для которой значение целевой функции больше (эти операции фиксируются в симплексной таблице).
Задача линейного программирования (далее ЛП) состоит в необходимости максимизировать или минимизировать некоторый линейный функционал на многомерном пространстве при заданных линейных ограничениях.
Исходя из этого, симплекс-метод можно представить как алгоритм решения оптимизационной задачи линейного программирования путём перебора вершин выпуклого многогранника в многомерном пространстве. Также симплексным методом является вычислительная процедура, основанная на принципе последовательного улучшения решений при переходе от одной базисной точки (базисного решения) к другой. При этом значение целевой функции улучшается.
Базисным решением является одно из допустимых решений, находящихся в вершинах области допустимых значений. Проверяя на оптимальность вершину за вершиной симплекса, можно прийти к искомому оптимуму. Именно на этом принципе основан симплекс-метод.
В графической интерпретации
Данный метод является методом целенаправленного перебора опорных решений задачи линейного программирования. Он позволяет за конечное число шагов либо найти оптимальное решение, либо установить, что оптимальное решение отсутствует.
При решении задач линейного программирования все ограничения, имеющие вид неравенств, преобразуют в равенство путем:
1) Добавления неотрицательной остаточной переменной в левую часть неравенства вида « ≤ ».
2) Вычитания неотрицательной избыточной переменной из левой части неравенств вида « ≤ ».
Избыточные и достаточные переменные называют свободными.
Кроме того, все элементы правой части bi делают неотрицательными, либо умножая для этого i-ое уравнение на -1, если bi < 0, либо используя эквивалентность следующих отношений:
(1.1)
Запишем целевую функцию:
F(X) =c1x1+c2x2+...+cnxn => max, (1.2)
Где F(X) – целевая функция.
ci – коэффициенты при переменных.
xn – базисные переменные.
Система ограничений и условие неотрицательности будут выглядеть следующим образом:
a11x1 + a12x2 + . . . + a1nxn ≤ b1
a21x1 + a22x2 + . . . + a2nxn ≤ b2
. . . . . . . . . . . . . . . . . . . . . . . . .
am1x1 + am2x2 + . . . + amnxn ≤ bm
xj ≥ 0, (j = 1, 2, . . . n)
Запишем представленную систему ограничений в канонической форме:
a11 x 1+a12 x 2+...+a1n x n = b1
a21 x 1+a22 x 2+...+a2n x n = b2 (1.5)
. . . . . . . . . . . . . . . . . . . . .
am1 x 1+am2 x 2+...+amn x n = bm
Пусть A = (aij) — матрица m*n, b = (b1, … , bm)T — вектор-стоблец,
Используя матричные операции, запишем стандартную и каноническую задачу ЛП в матричном виде:
max cx:
max cx:
Матрица A = (aij) (i = 1, … , m; j = 1, 2, . . . n), составленная из коэффициентов системы (1.5), называется симплекс-таблицей.
Таблица 1.1. Начальная симплекс-таблица.
Базисные Переменные |
Свободные Переменные |
X1 |
....... |
Xi |
....... |
Xm |
|
X1 |
B1 |
1 |
....... |
0 |
....... |
0 |
X2 |
B2 |
0 |
....... |
0 |
....... |
0 |
..... |
..... |
..... |
..... |
..... |
..... |
..... |
Xi |
Bi |
0 |
....... |
1 |
....... |
0 |
..... |
..... |
..... |
..... |
..... |
..... |
..... |
Xm |
Bm |
0 |
....... |
0 |
....... |
1 |
F(X) |
C0 |
0 |
....... |
0 |
....... |
0 |
Решение Х системы уравнений, в котором все небазисные переменные равны нулю, называется базисным решением. Если все компоненты базисного решения неотрицательны, то оно называется допустимым базисным решением, или опорным планом. При этом сама база также называется допустимой.
Переход от текущей базы к соседней называется итерацией.
Алгоритм симплекс-метода:
- Определить число и состав базисных и свободных переменных.
- Выразить базисные переменные через свободные переменные.
- Выразить целевую функцию через свободные переменные.
- Построить начальную симплекс-таблицу.
- Проверить решение на оптимальность: если в F-строке (кроме С0) все Сj=0, то получено оптимальное решение: X=(B1,...,Bm,0,...,0), F=C0. Если же существует Cj<0, то решение можно улучшить, но предварительно надо проверить факт существования решения.
- Проверить существование решения: рассмотрим все столбцы, у которых Сj<0, если существует хотя бы один столбец, у которого все коэффициенты Aij<0, то задача решения не имеет, т.к. множество допустимых решений D не ограничено и целевая функция неограниченно возрастает. Если таких столбцов нет, то переходим к следующему этапу. Выбрать свободную переменную, которую надо ввести в базис (выбор разрешающего столбца): это столбец с минимальным значением Сj (пусть это k-й столбец). Выбрать базисную переменную, которую надо вывести из базиса (выбор разрешающей строки). Рассмотрим k-й столбец и все его элементы, которые больше нуля, т.е. Aik>0. Для всех этих элементов находим отношение Bi/Aik и выбираем строку, которая соответствует минимальному значению этого отношения (пусть это i-я строка). Соответствующая i-я переменная Xi выводится из базиса, при нескольких одинаковых отношениях берем любую строку. Элемент Aik называется разрешающим элементом.
- Пересчитать симплекс-таблицу.
- составляем новую симплекс-таблицу, заменив в составе базисных переменных Xi на Xk;
- заполняем сначала новую k-ю строку, записывая в нее элементы старой i-ой строки, поделенные на разрешающий элемент;
- после заполнения k-ой строки заполняем оставшиеся строки. Для этого k-ю строку умножаем последовательно на такие числа, чтобы после сложения ее с каждой строкой старой таблицы в k-ом столбце получить везде ноль (кроме единицы в k-ой строке).
- После заполнения новой симплекс-таблицы алгоритм возвращается к 5-му пункту.
Конец работы алгоритма:
- либо когда в F-строке все коэффициенты (кроме С0) будут больше нуля, тогда получаем оптимальное решение;
- либо когда существует столбец, у которого Cj<<0 и все коэффициенты Aij<<0, в этом случае решения не существует.
2 Алгоритм решения задач симплексным методом
Формализованный алгоритм симплекс-метода состоит из двух основных этапов:
1) построение опорного плана;
2) построение оптимального плана.
Алгоритм симплекс-метода рассмотрим на примере реальной задачи.
Пусть предприятие может изготавливать изделия четырех видов: U1, U2, U3, U4. Для изготовления каждого изделия требуется определенный вид оборудования. Известно, сколько времени требуется на изготовление каждого изделия на каждом оборудовании и какая прибыль может быть получена при реализации каждого изделия. Требуется так распределить изделия по видам оборудования, чтобы предприятие имело максимальную прибыль.
Таблица 2.1. Распределение изделий по видам оборудования.
U 1 |
U2 |
U3 |
U4 |
bj | |
|
O1 |
3 |
5 |
2 |
7 |
15 |
O2 |
4 |
3 |
3 |
5 |
9 |
O3 |
5 |
6 |
4 |
8 |
30 |
сj |
40 |
50 |
30 |
20 |
Где bj - ресурсы оборудования Oi;
aij - время изготовления j-ого изделия на i-ом оборудовании;
cj - прибыль от одного изделия Uj;
xj - количество j-ых изделий, которое необходимо выпустить на предприятии.
F(x)= 40x1 + 50х2 + 30х3 + 20х4→
max
3x1 + 5x2 + 2x3 + 7x4 ≤ 15
4x1 + 3x2 + 3x3 + 5x4 ≤
9
5x1 + 6x2 + 4x3 + 8x4 ≤ 30
Система неравенств преобразуется к равенствам, если к каждому из неравенств ввести фиктивные изделия, остаточные переменные x5, x6, x7, которые используют оставшийся ресурс оборудования. При этом время изготовления фиктивных изделий на соответствующем оборудовании принимается равным:
a15=1, a25=0, a35=0
a16=0, a26=1, a36=0
a17=0, a27=0, a37=1
Тогда система равенств и условие неотрицательности запишется в виде:
3*x1 + 5*x2 + 2*x3 + 7*x4 + 1*x5 + 0*x6 + 0*x7 = 15
4*x1 + 3*x2 + 3*x3 + 5*x4 + 0*x5 + 1*x6 + 0*x7 = 9 (2.3)
5*x1 + 6*x2 + 4*x3 + 8*x4 + 0*x5 + 0*x6 + 1*x7 = 30
Целевая функция запишется следующим образом:
При этом: с5 = c6 = c7 = 0
Таким образом, задача распределения продукции по видам оборудования сводится к нахождению таких значений переменных xj (j от 1 до n), которые удовлетворяют системе равенств вида (2.3), дополнительным ограничениям (2.4) и максимизируют прибыль предприятия вида (2.5).
Решение общей распределительной задачи выполняется в два этапа:
1-ый этап. Находим любое решение (как правило, неоптимальное), удовлетворяющее ограничениям (2.3) и (2.4) или убеждаемся, что решения не существует. Этот этап называется определением опорного плана (базиса).
2-ой этап. Производим последовательное улучшение данного плана до получения оптимального. В некоторых задачах опорный план не трудно определить, в противном случае используют специальные методы получения опорного плана (метод искусственного базиса).
В нашем случае базис выражается легко, его составляют дополнительно введенные свободные переменные x5, x6, x7. Выразим их через остальные и результат запишем в форме Таккера2:
x5 = 15 - (3x1 + 5x2 + 2x3 + 7x4)
x6 = 9 - (4x1 + 3x2 + 3x3 + 5x4)
x7 = 30- (5x1 + 6x2 + 4x3 + 8x4)
В нашем случае x5, x6, x7 называются базисными и соответственно x1, x2, x3, x4 небазисными переменными. Для получения опорного плана надо приравнять к нулю небазисные переменные, тогда получим:
Х = (0; 0; 0; 0; 15; 9; 30)
Опорный план получен, и первый этап решения задачи завершен.
На втором этапе (улучшение опорного плана) можно использовать несколько способов, однако на практике чаще всего используют симплекс-метод.
1) Выражение целевой
функции через небазисные
Y = 40x1 + 50x2 + 30x3 + 20x4
Записать целевую функцию в форме Таккера:
Y = 0 - (-40x1 - 50x2 - 30x3 - 20x4)
2) Проверка базисного решения
на оптимальность. Если в
3) Проверка задачи на наличие решения. Если при какой-либо небазисной переменной, имеющей отрицательный коэффициент целевой функции, окажется, что столбец коэффициентов при этой же переменной в системе ограничений состоит из одних неположительных чисел, то максимум целевой функции равен бесконечности, и говорят, что целевая функция не ограничена.
4) Выбор из небазисных переменных той, которая способна при введении её в базис увеличить значение целевой функции. Наиболее часто на практике в качестве такой переменной выбирают ту, которой соответствует наибольший отрицательный коэффициент целевой функции. Следовательно, в базис вводится x2.
5) Определение, какая из
6) Выражение вводимой в базис переменной через выводимую и другие небазисные переменные.
x2 = 3 - (3/5x1 + 2/5x3 + 7/5x4 + 1/5x5)
7) Выражение остальных базисных переменных х6, х7 и целевой функции через новые небазисные переменные х1, х3, х4, х5:
x6 = 0 - (11/5x1 + 9/5x3 + 4/5x4 - 3/5x5)
x7 = 12 - (1/5x1 + 8/5x3 - 2/5x4 - 6/5x5)
Y = 150 - (-10x1 - 10x3 + 50x4 + 10x5)
8) Повторение операций пунктов 2) - 7) до тех пор, пока не будет найдено оптимальное решение.
Для того, чтобы решить задачу симплексным методом, необходимо выполнить следующее:
1) Привести задачу к каноническому виду;
2) Найти начальное опорное решение с "единичным базисом" (если опорное решение отсутствует, то задача не имеет решения ввиду несовместимости системы ограничений);
3) Вычислить оценки разложений векторов по базису опорного решения и заполнить таблицу симплексного метода;
4) Если выполняется признак единственности оптимального решения, то решение задачи заканчивается;
5) Если выполняется условие существования множества оптимальных решений, то путем простого перебора находят все оптимальные решения.
Первый этап. Дана целевая функция, для которой необходимо найти наибольшее или наименьшее значение, если значения всех неизвестных неотрицательные:
Строится исходная оптимизационная модель. Далее исходная матрица условий преобразуется в приведенную каноническую форму, которая среди всех других канонических форм выделяется тем, что:
а) правые части условий (свободные члены bi) являются величинами неотрицательными;
б) сами условия являются равенствами;
в) матрица условий содержит полную единичную подматрицу.
Если свободные члены отрицательные, то обе части неравенства умножаются на – 1, а знак неравенства меняется на противоположный. Для преобразования неравенств в равенства вводятся дополнительные переменные, которые, обычно, обозначают объем недоиспользованных ресурсов. В этом и состоит их экономический смысл.
Наконец, если после добавления дополнительных переменных, матрица условий не содержит полную единичную подматрицу, то вводятся искусственные переменные, которые не имеют никакого экономического смысла. Они вводятся исключительно для того, чтобы получить единичную подматрицу и начать процесс решения задачи при помощи симплексного метода.
В оптимальном решении задачи все искусственные переменные (ИП) должны быть равными нулю. Для этого вводят искусственные переменные в целевую функцию задачи с большими отрицательными коэффициентами (-М) при решении задачи на max, и с большими положительными коэффициентами (+М), когда задача решается на min. В этом случае даже незначительное ненулевое значение искусственной переменной будет резко уменьшать (увеличивать) значение целевой функции. Обычно М в 1000 раз должно быть больше, чем значения коэффициентов при основных переменных.
Второй этап. Строится исходная симплекс-таблица и отыскивается некоторое начальное базисное решение. Множество переменных, образующих единичную подматрицу, принимается за начальное базисное решение. Значения этих переменных равны свободным членам. Все остальные небазисные переменные равны нулю.
Третий этап. Проверка базисного решения на оптимальность осуществляется при помощи специальных оценок коэффициентов целевой функции. Если все оценки коэффициентов целевой функции отрицательны или равны нулю, то имеющееся базисное решение – оптимальное. Если хотя бы одна оценка коэффициента целевой функции больше нуля, то имеющееся базисное решение не является оптимальным и должно быть улучшено.
Четвертый этап. Переход к новому базисному решению. Очевидно, что в оптимальный план должна быть введена такая переменная, которая в наибольшей степени увеличивает целевую функцию. При решении задач на максимум прибыли в оптимальный план вводится продукция, производство которой наиболее выгодно. Это определяется по максимальному положительному значению оценки коэффициента целевой функции.
Столбец симплексной таблицы с этим номером на данной итерации называется генеральным столбцом.
Далее, если хотя бы один элемент генерального столбца аij строго положителен, то отыскивается генеральная строка (в противном случае задача не имеет оптимального решения).
Для отыскания генеральной строки все свободные члены (ресурсы) делятся на соответствующие элементы генерального столбца (норма расхода ресурса на единицу изделия). Из полученных результатов выбирается наименьший. Соответствующая ему строка на данной итерации называется генеральной. Она соответствует ресурсу, который лимитирует производство на данной итерации.
Элемент симплексной таблицы, находящийся на пересечении генеральных столбца и строки, называется генеральным элементом.
Затем все элементы генеральной строки (включая свободный член), делятся на генеральный элемент. В результате этой операции генеральный элемент становится равным единице. Далее необходимо, чтобы все другие элементы генерального столбца стали бы равны нулю, т.е. генеральный столбец должен стать единичным. Все строки (кроме генеральной) преобразуются следующим образом. Полученные элементы новой строки умножаются на соответствующий элемент генерального столбца и полученное произведение вычитается из элементов старой строки.

- Алгоритм решения уравнения в полных дифференциалах
- Алгоритм сортировки
- Алгоритм та програма інтерполювання функції при рівномірному розміщенні вузлів за допомогою інтерполяційного многочлена Лагранжа
- Алгоритм умножения
- Алгоритм управления конфликтом: виды, стадии протекания, методы разрешения
- Алгоритм управления конфликтом. Методы разрешения конфликта
- Алгоритм управления развитием инвестиционного потенциала организации
- Алгоритм разработки, принятия и реализации управленческих решений
- Алгоритм разработки, принятия и реализации управленческих решений
- Алгоритм распределения ресурсов в проекте
- Алгоритм расчета метода дисконтирования денежного потока
- Алгоритм реализации психолого-педагогических исследований
- Алгоритм решения задачи
- Алгоритм решения задач симплексным методом