Пример использования симплекс-метода
Описание решения прямой задачи линейного программирования симплексным методом с использованием симплексной таблицы. Выражение искусственных переменных. Определение минимального значения целевой функции. Формирование всех частей симплексной таблицы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 15.01.2015 |
Размер файла | 16,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Примеры использования симплекс-метода
Решим прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы. Поскольку в правой части присутствуют отрицательные значения, умножим соответствующие строки на (-1). Определим минимальное значение целевой функции
F(X) = x1 + 2x2
при следующих условиях ограничений.
- 2x1 + x2?2 x1 + x2?3 x1 - 2x2?2.
Для построения первого опорного плана систему неравенств приведем к системе уравнений путем введения дополнительных переменных (переход к канонической форме). В 1-м неравенстве смысла (?) вводим базисную переменную x3 со знаком минус. В 2-м неравенстве смысла (?) вводим базисную переменную x4 со знаком минус. В 3-м неравенстве смысла (?) вводим базисную переменную x5.
-2x1 + 1x2-1x3 + 0x4 + 0x5 = 2 1x1 + 1x2 + 0x3-1x4 + 0x5 = 3 1x1-2x2 + 0x3 + 0x4 + 1x5 = 2
Введем искусственные переменные x: в 1-м равенстве вводим переменную x6; в 2-м равенстве вводим переменную x7;
-2x1 + 1x2-1x3 + 0x4 + 0x5 + 1x6 + 0x7 = 2 1x1 + 1x2 + 0x3-1x4 + 0x5 + 0x6 + 1x7 = 3 1x1-2x2 + 0x3 + 0x4 + 1x5 + 0x6 + 0x7 = 2
Для постановки задачи на минимум целевую функцию запишем так:
F(X) = x1+2x2+Mx6+Mx7 > min
За использование искусственных переменных, вводимых в целевую функцию, накладывается так называемый штраф величиной М, очень большое положительное число, которое обычно не задается. Полученный базис называется искусственным, а метод решения называется методом искусственного базиса. Причем искусственные переменные не имеют отношения к содержанию поставленной задачи, однако они позволяют построить стартовую точку, а процесс оптимизации вынуждает эти переменные принимать нулевые значения и обеспечить допустимость оптимального решения.
Из уравнений выражаем искусственные переменные:
x6 = 2+2x1-x2+x3 x7 = 3-x1-x2+x4
которые подставим в целевую функцию:
F(X) = x1 + 2x2 + M(2+2x1-x2+x3) + M(3-x1-x2+x4) > min или F(X) = (1+M)x1+(2-2M)x2+(M)x3+(M)x4+(5M) > min
Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид:
-2 |
1 |
-1 |
0 |
0 |
1 |
0 |
|
1 |
1 |
0 |
-1 |
0 |
0 |
1 |
|
1 |
-2 |
0 |
0 |
1 |
0 |
0 |
Базисные переменные это переменные, которые входят только в одно уравнение системы ограничений и притом с единичным коэффициентом. Экономический смысл дополнительных переменных: дополнительные перемены задачи ЛП обозначают излишки сырья, времени, других ресурсов, остающихся в производстве данного оптимального плана. Решим систему уравнений относительно базисных переменных: x6, x7, x5.
Полагая, что свободные переменные равны 0, получим первый опорный план: X1 = (0,0,0,0,2,2,3)
Базисное решение называется допустимым, если оно неотрицательно.
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
|
x6 |
2 |
-2 |
1 |
-1 |
0 |
0 |
1 |
0 |
|
x7 |
3 |
1 |
1 |
0 |
-1 |
0 |
0 |
1 |
|
x5 |
2 |
1 |
-2 |
0 |
0 |
1 |
0 |
0 |
|
F(X0) |
5M |
-1-M |
-2+2M |
-M |
-M |
0 |
0 |
0 |
линейный программирование симплексный переменная
Переходим к основному алгоритму симплекс-метода. Итерация №0.
1. Проверка критерия оптимальности. Текущий опорный план неоптимален, так как в индексной строке находятся положительные коэффициенты.
2. Определение новой базисной переменной. В качестве ведущего выберем столбец, соответствующий переменной x2, так как это наибольший коэффициент.
3. Определение новой свободной переменной. Вычислим значения Di по строкам как частное от деления: bi / ai2 и из них выберем наименьшее:
min (2 : 1 , 3 : 1 , - ) = 2
Следовательно, 1-ая строка является ведущей.
Разрешающий элемент равен (1) и находится на пересечении ведущего столбца и ведущей строки
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
min |
|
x6 |
2 |
-2 |
1 |
-1 |
0 |
0 |
1 |
0 |
2 |
|
x7 |
3 |
1 |
1 |
0 |
-1 |
0 |
0 |
1 |
3 |
|
x5 |
2 |
1 |
-2 |
0 |
0 |
1 |
0 |
0 |
- |
|
F(X1) |
5M |
-1-M |
-2+2M |
-M |
-M |
0 |
0 |
0 |
0 |
4. Пересчет симплекс-таблицы.
Формируем следующую часть симплексной таблицы. Вместо переменной x6 в план 1 войдет переменная x2.
Строка, соответствующая переменной x2 в плане 1, получена в результате деления всех элементов строки x6 плана 0 на разрешающий элемент РЭ=1. На месте разрешающего элемента в плане 1 получаем 1. В остальных клетках столбца x2 плана 1 записываем нули.
Таким образом, в новом плане 1 заполнены строка x2 и столбец x2. Все остальные элементы нового плана 1, включая элементы индексной строки, определяются по правилу прямоугольника. Для этого выбираем из старого плана четыре числа, которые расположены в вершинах прямоугольника и всегда включают разрешающий элемент
РЭ. НЭ = СЭ - (А*В)/РЭ
СТЭ - элемент старого плана, РЭ - разрешающий элемент (1), А и В - элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ.
Представим расчет каждого элемента в виде таблицы:
B |
x 1 |
x 2 |
x 3 |
x 4 |
x 5 |
x 6 |
x 7 |
|
2 : 1 |
-2 : 1 |
1 : 1 |
-1 : 1 |
0 : 1 |
0 : 1 |
1 : 1 |
0 : 1 |
|
3-(2 * 1):1 |
1-(-2 * 1):1 |
1-(1 * 1):1 |
0-(-1 * 1):1 |
-1-(0 * 1):1 |
0-(0 * 1):1 |
0-(1 * 1):1 |
1-(0 * 1):1 |
|
2-(2 * -2):1 |
1-(-2 * -2):1 |
-2-(1 * -2):1 |
0-(-1 * -2):1 |
0-(0 * -2):1 |
1-(0 * -2):1 |
0-(1 * -2):1 |
0-(0 * -2):1 |
|
(0)-(2 * (-2+2M)):1 |
(-1-M)-(-2 * (-2+2M)):1 |
(-2+2M)-(1 * (-2+2M)):1 |
(-M)-(-1 * (-2+2M)):1 |
(-M)-(0 * (-2+2M)):1 |
(0)-(0 * (-2+2M)):1 |
(0)-(1 * (-2+2M)):1 |
(0)-(0 * (-2+2M)):1 |
Получаем новую симплекс-таблицу
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
|
x2 |
2 |
-2 |
1 |
-1 |
0 |
0 |
1 |
0 |
|
x7 |
1 |
3 |
0 |
1 |
-1 |
0 |
-1 |
1 |
|
x5 |
6 |
-3 |
0 |
-2 |
0 |
1 |
2 |
0 |
|
F(X1) |
4+M |
-5+3M |
0 |
-2+M |
-M |
0 |
2-2M |
0 |
Итерация №1.
1. Проверка критерия оптимальности. Текущий опорный план неоптимален, так как в индексной строке находятся положительные коэффициенты.
2. Определение новой базисной переменной. В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент.
3. Определение новой свободной переменной. Вычислим значения Di по строкам как частное от деления: bi / ai1 и из них выберем наименьшее:
min (-, 1 : 3, - ) = 1/3
Следовательно, 2-ая строка является ведущей.
Разрешающий элемент равен (3) и находится на пересечении ведущего столбца и ведущей строки
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
min |
|
x2 |
2 |
-2 |
1 |
-1 |
0 |
0 |
1 |
0 |
- |
|
x7 |
1 |
3 |
0 |
1 |
-1 |
0 |
-1 |
1 |
1/3 |
|
x5 |
6 |
-3 |
0 |
-2 |
0 |
1 |
2 |
0 |
- |
|
F(X2) |
4+M |
-5+3M |
0 |
-2+M |
-M |
0 |
2-2M |
0 |
0 |
4. Пересчет симплекс-таблицы.
Формируем следующую часть симплексной таблицы.
Вместо переменной x7 в план 2 войдет переменная x1. Строка, соответствующая переменной x1 в плане 2, получена в результате деления всех элементов строки x7 плана 1 на разрешающий элемент РЭ=3
На месте разрешающего элемента в плане 2 получаем 1. В остальных клетках столбца x1 плана 2 записываем нули.
Таким образом, в новом плане 2 заполнены строка x1 и столбец x1. Все остальные элементы нового плана 2, включая элементы индексной строки, определяются по правилу прямоугольника.
Представим расчет каждого элемента в виде таблицы
B |
x 1 |
x 2 |
x 3 |
x 4 |
x 5 |
x 6 |
x 7 |
|
2-(1 * -2):3 |
-2-(3 * -2):3 |
1-(0 * -2):3 |
-1-(1 * -2):3 |
0-(-1 * -2):3 |
0-(0 * -2):3 |
1-(-1 * -2):3 |
0-(1 * -2):3 |
|
1 : 3 |
3 : 3 |
0 : 3 |
1 : 3 |
-1 : 3 |
0 : 3 |
-1 : 3 |
1 : 3 |
|
6-(1 * -3):3 |
-3-(3 * -3):3 |
0-(0 * -3):3 |
-2-(1 * -3):3 |
0-(-1 * -3):3 |
1-(0 * -3):3 |
2-(-1 * -3):3 |
0-(1 * -3):3 |
|
(0)-(1 * (-5+3M)):3 |
(-5+3M)-(3 * (-5+3M)):3 |
(0)-(0 * (-5+3M)):3 |
(-2+M)-(1 * (-5+3M)):3 |
(-M)-(-1 * (-5+3M)):3 |
(0)-(0 * (-5+3M)):3 |
(2-2M)-(-1 * (-5+3M)):3 |
(0)-(1 * (-5+3M)):3 |
Получаем новую симплекс-таблицу:
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
|
x2 |
8/3 |
0 |
1 |
-1/3 |
-2/3 |
0 |
1/3 |
2/3 |
|
x1 |
1/3 |
1 |
0 |
1/3 |
-1/3 |
0 |
-1/3 |
1/3 |
|
x5 |
7 |
0 |
0 |
-1 |
-1 |
1 |
1 |
1 |
|
F(X2) |
52/3 |
0 |
0 |
-1/3 |
-12/3 |
0 |
1/3-M |
12/3-M |
Размещено на Allbest.ru
Подобные документы
Построение математической модели. Выбор, обоснование и описание метода решений прямой задачи линейного программирования симплекс-методом, с использованием симплексной таблицы. Составление и решение двойственной задачи. Анализ модели на чувствительность.
курсовая работа [100,0 K], добавлен 31.10.2014Составление производственного плана трех видов изделий при определенных возможностях машин. Написание алгоритма решения задачи симплексным методом: описание переменных, констант, нахождение разрешающего элемента, вычисление таблицы методом прямоугольника.
методичка [237,2 K], добавлен 25.09.2010Нахождение минимума целевой функции для системы ограничений, заданной многоугольником. Графическое решение задачи линейного программирования. Решение задачи линейного программирования с использованием таблицы и методом отыскания допустимого решения.
курсовая работа [511,9 K], добавлен 20.07.2012Графическое решение задач. Составление математической модели. Определение максимального значения целевой функции. Решение симплексным методом с искусственным базисом канонической задачи линейного программирования. Проверка оптимальности решения.
контрольная работа [191,1 K], добавлен 05.04.2016Описание симплекс метода решения задачи линейного программирования. Решение задачи методом Литла на нахождение кратчайшего пути в графе, заданном графически в виде чертежа. Из чертежа записываем матрицу расстояний и поэтапно находим кратчайший путь.
задача [390,4 K], добавлен 10.11.2010Алгоритм решения задач линейного программирования симплекс-методом. Построение математической модели задачи линейного программирования. Решение задачи линейного программирования в Excel. Нахождение прибыли и оптимального плана выпуска продукции.
курсовая работа [1,1 M], добавлен 21.03.2012Разработка программы, решающей базовую задачу линейного программирования симплекс-методом с помощью симплекс-таблиц. Выбор языка программирования и среды разработки, программные модули и их взаимодействие между собой. Листинг разработанной программы.
курсовая работа [415,8 K], добавлен 08.09.2013Постановка задачи линейного программирования. Решение системы уравнений симплекс-методом. Разработка программы для использования симплекс-метода. Блок-схемы основных алгоритмов. Создание интерфейса, инструкция пользователя по применению программы.
курсовая работа [1,7 M], добавлен 05.01.2015Разработка структурной диаграммы программного модуля для целочисленного решения задачи линейного программирования с использованием симплекс-метода. Краткое описание всех уровней диаграммы с назначением всех ее блоков. Язык программирования Visual C#.
курсовая работа [874,7 K], добавлен 27.02.2013Обеспечение наибольшей прибыли от реализации выпускаемой продукции мебельной фабрики. Решение задачи в среде MS Excel. Выполнение преобразования симплексной таблицы методом Жордана-Гаусса. Применение метода динамического программирования и сечения Гомори.
курсовая работа [58,9 K], добавлен 28.10.2014