Файл: пк для решения задач линейного программирования симплексным методом.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.11.2023
Просмотров: 58
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Симплекс-таблица заполняется в следующей последовательности: столбец i, строка С, столбец Бx, столбец Сб, столбец A0, столбцы A1,…,An. Так заполняются первые m строк.
В нулевой столбец (m+1)-й строки записывается значение линейной формы для имеющегося опорного плана. Это значение вычисляется по формуле
. (9)
В последующие клетки (m+1)-й строки записываются значения оценок векторов условий Aj (величины j), которые вычисляются по формуле
(10)
Базисные разности si=0.
Для проверки опорного плана на оптимальность просматриваем (m+1)-ю строку. При этом могут встретиться такие случаи:
1) Все разности j0. Тогда опорный план X0 является оптимальным и minZ=Z0.
2) Для некоторого фиксированного j j>0 и все коэффициенты xij0, . Тогда линейная форма не ограничена множеством допустимых решений задачи. В обоих случаях процесс вычисления на этом заканчивается.
3) Для некоторых индексов j имеются j>0 и для каждого такого j, по крайней мере, одно из чисел xij>0. Это свидетельствует о том, что опорный план не является оптимальным и его можно улучшить за счет введения в базис вектора, отвечающего одной из таких разностей. В базис необходимо ввести тот вектор, которому отвечает maxj. Если таких разностей несколько, то берут вектор с меньшим номером.
Пусть . Тогда в базис следует ввести вектор Ak на место вектора, которому отвечает минимальное значение выражения
. (11)
Необходимо вывести из базиса вектор Asr, новый базис будет состоять из векторов: As1,As2,…,Asr-1,Asr+1,…,Asm,Ak. В этом случае xrk называют разрешающим элементом симплексной таблицы. Столбец k и строка r называются разрешающими.
Все элементы новой симплексной таблицы с нулевого столбца по n-й и с первой строки по (m+1)-ю преобразовываются при переходе к новому опорному плану по следующим рекуррентным формулам:
(12)
Обычно симплексную таблицу преобразовывают следующим образом. Направляющую строку r делят на разрешающий элемент xrk. В новой симплексной таблице на месте разрешающего элемента получается единица: x =1, а на месте разрешающего столбца получается единичный вектор с единицей в направляющей строке. Остальные строки преобразовываются так: из той строки исходной таблицы, которую необходимо преобразовать, вычитаем преобразованную направляющую, умноженную на тот элемент строки, на месте которого следует получить нуль.
В результате преобразования нулевой симплекс-таблицы по формулам (12) получаем следующую таблицу, в которой содержится новый опорный план. Опять просматриваем (m+1)-ю строку. Если все j0, то опорный план оптимален. В противном случае переходим к новому опорному плану. Процесс продолжается до тех пор, пока придем либо к оптимальному плану, либо убедимся в неограниченности линейной формы. Алгоритм симплексного метода в виде блок-схемы представлен на Рисунке 1.
Рисунок 1 – Представление симплекс-метода в виде блок-схемы
2. ПРОЕТИРОВАНИЕ ПК ДЛЯ РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ СИМПЛЕКСНЫМ МЕТОДОМ
2.1 Тестовый вариант решения задачи линейного программирования симплекс-методом
Условие задачи: для изготовления цемента двух видов используется сырье трех видов. Запасы сырья известны и равны соответственно: 264, 136 и 266 т. Количество сырья каждого вида, необходимое для производства единицы цемента первоговида соответственно равны: 12, 4 и 3. Для цемента второго вида: 3, 5 и 14. Прибыль от реализации цемента первого вида составляет 6 у. е., от цемента второго вида – 4 у. е.
Найти максимальное значение целевой функции F(X) = 6x1 + 4x2.
Составить план, обеспечивающий наибольшую прибыль производству:
– записать математическую модель;
– решить задачу симплекс-методом;
Решение:
Математическая модель.
x1 – производство цемента первого вида;
x2 – производство цемента второго вида;
Решим прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы.
Определим максимальное значение целевой функции F(X) = 6x1+4x2 при следующих условиях (ограничениях).
12x1 + 3x2 ≤ 264;
4x1 + 5x2 ≤ 136 ;
3x1 + 14x2 ≤ 266.
Для построения первого опорного плана приведем систему неравенств к системе уравнений путем введения дополнительных переменных (переход к канонической форме).
12x1 + 3x2 + 1x3 + 0x4 + 0x5 = 264;
4x1 + 5x2 + 0x3 + 1x4 + 0x5 = 136;
3x1 + 14x2 + 0x3 + 0x4 + 1x5 = 266.
Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид:
Базисные переменные это переменные, которые входят только в одно уравнение системы ограничений и притом с единичным коэффициентом.
Решим систему уравнений относительно базисных переменных:
x3, x4, x5.
Полагая, что свободные переменные равны 0, получим первый опорный план: X1 = (0,0,264,136,266)
Таблица 2 – Первый опорный план в виде нулевой таблицы
План | Базис | В | x1 | x2 | x3 | x4 | x5 |
0 | x3 | 264 | 12 | 3 | 1 | 0 | 0 |
| x4 | 136 | 4 | 5 | 0 | 1 | 0 |
| x5 | 266 | 3 | 14 | 0 | 0 | 1 |
Индексная строка | F(X0) | 0 | -6 | -4 | 0 | 0 | 0 |
Переходим к основному алгоритму симплекс-метода.
Таблица 3 – Первая симплекс-таблица
План | Базис | В | x1 | x2 | x3 | x4 | x5 | min |
1 | x3 | 264 | 12 | 3 | 1 | 0 | 0 | 22 |
| x4 | 136 | 4 | 5 | 0 | 1 | 0 | 34 |
| x5 | 266 | 3 | 14 | 0 | 0 | 1 | 88.67 |
Индексная строка | F(X1) | 0 | -6 | -4 | 0 | 0 | 0 | 0 |
Итерация №0.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.
В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления
и из них выберем наименьшее:
Следовательно, 1-ая строка является ведущей. Разрешающий элемент равен 12 и находится на пересечении ведущего столбца и ведущей строки. Формируем следующую часть симплексной таблицы. Вместо переменной x3 в план 1 войдет переменная x1. Строка, соответствующая переменной x1 в плане 1, получена в результате деления всех элементов строки x3плана 0 на разрешающий элемент, равный 12. На месте разрешающего элемента в плане 1 получаем 1. В остальных клетках столбца x1 плана 1 записываем нули. Таким образом, в новом плане 1 заполнены строка x1 и столбец x1 . Все остальные элементы нового плана 1, включая элементы индексной строки, определяются по правилу прямоугольника. Для этого выбираем из старого плана четыре числа, которые расположены в вершинах прямоугольника и всегда включают разрешающий элемент 12
НЭ = СЭ - (А*В)/РЭ , где
СТЭ – элемент старого плана, РЭ – разрешающий элемент (12), А и В – элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ.
Таблица 4 – Вторая симплекс-таблица
План | Базис | В | x1 | x2 | x3 | x4 | x5 | min |
2 | x1 | 22 | 1 | 0.25 | 0.0833 | 0 | 0 | 88 |
| x4 | 48 | 0 | 4 | -0.3333 | 1 | 0 | 12 |
| x5 | 200 | 0 | 13.25 | -0.25 | 0 | 1 | 15.09 |
Индексная строка | F(X2) | 132 | 0 | -2.5 | 0.5 | 0 | 0 | 0 |
Итерация №1.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты. В качестве ведущего выберем столбец, соответствующий переменной x2, так как это наибольший коэффициент по модулю. Вычислим значения Di по строкам как частное от деления и из них выберем наименьшее:
Следовательно, 2-ая строка является ведущей. Разрешающий элемент равен 4 и находится на пересечении ведущего столбца и ведущей строки.
Формируем следующую часть симплексной таблицы. Вместо переменной x4 в план 2 войдет переменная x2 . Строка, соответствующая переменной x2 в плане 2, получена в результате деления всех элементов строки x4 плана 1 на разрешающий элемент РЭ=4. На месте разрешающего элемента в плане 2 получаем 1. В остальных клетках столбца x2 плана 2 записываем нули.
Таким образом, в новом плане 2 заполнены строка x2 и столбец x2 . Все остальные элементы нового плана 2, включая элементы индексной строки, определяются по правилу прямоугольника. Конец итераций: индексная строка не содержит отрицательных элементов – найден оптимальный план.
Таблица 5 – Окончательный вариант симплекс-таблицы
План | Базис | В | x1 | x2 | x3 | x4 | x5 |
3 | x1 | 19 | 1 | 0 | 0.1042 | -0.0625 | 0 |
| x2 | 12 | 0 | 1 | -0.0833 | 0.25 | 0 |
| x5 | 41 | 0 | 0 | 0.8542 | -3.31 | 1 |
Индексная строка | F(X3) | 162 | 0 | 0 | 0.2917 | 0.625 | 0 |
Оптимальный план можно записать так:
x1 = 19; x2 = 12;
F(X) = 6*19 + 4*12 = 162.
3. РАЗРАБОТКА ПК ДЛЯ РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ СИМПЛЕКСНЫМ МЕТОДОМ
3.1 Выбор языка программирования и среды разработки ПК для решения задач линейного программирования симплексным методом