Search
Write a publication
Pull to refresh

Решаем прямую задачу линейного программирования  симплексным методом, с использованием симплексной таблицы

Условие

Фирма производит и продает два вида товаров - чулки и носки. От продажи 1 пары чулок прибыль составляет 10 руб, и 4 руб от продажи 1 пары носков. Каждое изделие последовательно обрабатывается на 3-х технологических участках с затратами времени, приведенными в таблице

Изделие

Время обработки  одного изделия, ч.

Удельная прибыль, руб

      

1 участок

2 участок

3 участок

      

чулки

0,02

     0,03

0,03

     10

носки

0,01

     0,01

0,02

     4

В следующем месяце фирма ежедневно будет располагать следующими ресурсами времени на каждом из участков - 60 ч на первом, 70 ч на втором и 100 ч на третьем.

Сколько производить продукции каждого вида чтобы прибыль была максимальной?

Теория

Введение: Линейное программирование (ЛП) является мощным инструментом оптимизации, используемым для решения широкого спектра задач в экономике, производстве и других областях. Прямая задача линейного программирования заключается в максимизации или минимизации линейной функции цели при условиях, выраженных системой линейных ограничений. Симплексный метод - один из эффективных методов решения таких задач.

Теория симплексного метода: Симплексный метод является итерационным алгоритмом, основанным на последовательном перемещении от одной допустимой угловой точки (вершины) к другой с целью достижения оптимального решения. Он широко применяется благодаря своей эффективности на практике.

Основные шаги симплексного метода:

  1. Составление симплексной таблицы: Исходная задача формулируется в виде симплексной таблицы, включающей коэффициенты целевой функции и ограничений.

  2. Выбор входящей переменной (столбца): Выбор переменной, которая увеличит значение целевой функции. Это переменная, нарушающая оптимальность текущего решения.

  3. Выбор выходящей переменной (строки): Определение переменной, которая войдет в базис и улучшит текущее решение.

  4. Пересчет таблицы: Обновление симплексной таблицы, чтобы отразить изменения в базисе переменных.

  5. Проверка условия останова: Повторение шагов 2-4 до тех пор, пока не будет достигнуто оптимальное решение или определено, что решение неограничено.

Преимущества симплексного метода:

  • Способен решать большие и сложные задачи линейного программирования.

  • Эффективен в случае, когда решение существует в вершинах выпуклого многогранника.

Заключение: Симплексный метод является мощным инструментом для решения прямых задач линейного программирования. Понимание его теории и шагов решения с использованием симплексной таблицы помогает исследователям, инженерам и менеджерам эффективно оптимизировать ресурсы и принимать обоснованные решения в различных областях промышленности и бизнеса.

Решение

Решим прямую задачу линейного программирования  симплексным методом, с использованием симплексной таблицы.

     Определим максимальное значение целевой функции F(X) = 10x1+4x2 при следующих условиях-ограничениях:

      0,02x1+0,01x2≤60

      0,03x1+0,01x2≤70

      0,03x1+0,02x2≤100

     Для построения первого опорного плана  систему неравенств приведем к системе  уравнений путем введения дополнительных переменных (переход к канонической форме):

      0,02x1 + 0,01x2 + 1x3 + 0x4 + 0x5 = 60

      0,03x1 + 0,01x2 + 0x3 + 1x4 + 0x5 = 70

      0,03x1 + 0,02x2 + 0x3 + 0x4 + 1x5 = 100

     Матрица коэффициентов A = a(ij) этой системы уравнений  имеет вид: 

     Базисные  переменные это переменные, которые  входят только в одно уравнение системы  ограничений и притом с единичным  коэффициентом.

     Решим систему уравнений относительно базисных переменных:

     x3, x4, x5,

     Полагая, что свободные переменные равны 0, получим первый опорный план:

     х1 = (0,0,60,70,100)

 План

 Базис

 В

 x1

 x2

 x3

 x4

 x5

 0

 x3

 60

 0,01

 0,01

 1

 0

 0

   

 x4

 70

 0,03

 0,01

 0

 1

 0

   

 x5

 100

 0,03

 0,03

 0

 0

 1

Индексная строка

 F(X0)

 0

 -10

-4

 0

 0

 0

  Переходим к основному алгоритму симплекс-метода

     Итерация  №0.

     Текущий опорный план неоптимален, так как  в индексной строке находятся  отрицательные коэффициенты

     В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент.

     Вычислим  значения Di по строкам как частное от деления и из них выберем наименьшее: 

     Следовательно, 2-ая строка является ведущей:

Базис

 В

 x1

 x2

 x3

 x4

 x5

 min

 x3

 60

 0,02

 0,01

 1

0

 0

 3000

 x2

 70

 0,03

 1,01

 0

 1

 0

 7000/3

 x5

 100

 0,03

 0,02

 0

 0

 1

10000/3

 F(X2)

 0

 -10

 -4

 0

0

 0

 0

      Формируем следующую часть симплексной таблицы. Вместо переменной х4 в план 1 войдет переменная х1. Получаем новую симплекс таблицу:

Базис

 В

 x1

 x2

 x3

 x4

 x5

 x3

 40/3

0

 1/300

 1

-2/3

 0

 x1

 7000/3

1

 1/3

 0

100/3

 0

 x5

 30

0

 0,02

 0

-1

 1

 F(X2)

 0

0

 -2/3

 0

1000/3

 0

     Итерация  №1.

     Текущий опорный план неоптимален, так как  в индексной строке находятся  отрицательные коэффициенты

     В качестве ведущего выберем столбец, соответствующий переменной x2, так как это наибольший коэффициент.

     Вычислим  значения Di по строкам как частное от деления 

     и из них выберем наименьшее: 

     Следовательно, 3-ая строка является ведущей

Базис

 В

 x1

 x2

 x3

 x4

 x5

 min

 x3

 40/3

 0

100/3

 1

 -2/3

 0

 4000

 x1

 7000/3

 1

1/3

 0

 100/3

 0

 7000

 x5

 30

 0

1/100

 0

 -1

 1

 3000

 F(X3)

 70000/3

 0

-2/3

 0

1000/3

0

 0

      Формируем следующую часть симплексной таблицы. Вместо переменной х5 в план 2 войдет переменная х2. Получаем новую симплекс таблицу:

Базис

 В

 x1

 x2

 x3

 x4

 x5

 x3

 10/3

0

0

 1

-1/3

 -1/3

 x1

 4000/3

1

 0

 0

200/3

 -100/3

 x2

 3000

0

1

 0

-100

 100

 F(X2)

 76000/3

0

0

 0

800/3

 200/3

      Конец итераций: найден оптимальный план. Индексная строка не содержит отрицательных элементов.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.