Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Элементы математического программирования

Поиск

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 

 

Элементы математического программирования

 

 

Методические указания и контрольные задания

для студентов экономических специальностей БНТУ

 

 

Минск 2006

 

УДК 380.105 (075.8)

ББК 22.171

Л 26

 

Рецензенты:

 

В.Ф.Бубнов, А.Н.Рудый

 

 

Корзников А.Д., Матвеева Л.Д., Смирнов М.Б.

Л26 Элементы математического программирования: Методическое пособие для студентов экономических специальностей БНТУ/ Корзников А.Д., Матвеева Л.Д., Смирнов М.Б.. – Мн.: БНТУ, 2006. – 68 с.

 

Под общей редакцией А.Д.Корзникова

 

ISBN 985-479-172-6.

 

Данное методическое пособие включает в себя изложение теоретических методов решения основных задач математического программирования, а также контрольные задания по каждой теме для самостоятельного решения. Пособие состоит из восьми разделов, по каждому из которых предлагается 10 задач. В каждом разделе описывается теоретическое обоснование метода, формальный алгоритм и пример решения типовой задачи.

Пособие предназначено для студентов экономических специальностей заочного отделения БНТУ; оно может быть также полезно преподавателям, ведущим практические занятия по курсу математического программирова­ния.

 

 

Ó БНТУ 2006

 

 

КОНТРОЛЬНЫЕ ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

 

Задание 2. Геометрическим методом найти максимум и минимум функции Z для x, y ³ 0 при заданных ограничениях:

 

Варианты:

 

1. Z = 2x + y 2. Z = 3x + y

3x - 4y £ 4 y £ 1

-x + 6y £ 8 x - 2y £ 3

x + y ³ 1 2x + y ³ 1

 

3. Z = 2x - y 4. Z = x + y

2x + y £ 3 y ³ 2

x + y ³ 6 x + y £ 7

x - 3y £ 3 -x + 2y £ 2

 

5. Z = 4x + y 6. Z = 3x - y

x - 2y ³ 0 2x + 3y £ 13

4x - y £ 14 x ³ 2

3x + y ³ 7 5x - 3y £ 22

 

 

7. Z = 2x + y 8. Z = x + 5y

x ³ 2 3x - y ³ 3

4x - y £ 8 x - y £ 4

x - y ³ -1 x + y ³ 6

 

9. Z = 5x + y 10. Z = 3x

x - 4y ³ -3 x + y £ 7

4x - 3y £ 14 2x - y £ 11

3x + y ³ 4 4x + y ³ 19

Алгоритм Симплекс-метода

Исходные данные: задача в канонической форме; целевая функция мини­мизируется; найдено начальное базисное допустимое решение (опорный план),

то есть система уравнений (2) имеет базис и все правые части уравнений bi ³ 0 - неотрицательны; целевая функция выражена через свободные переменные.

При выполнении этих условий каждая итерация метода состоит из трех шагов:

Шаг 1. Имеющийся план проверяется на оптимальность. Если в Z – стро­ке нет отрицательных элементов, то имеющийся план оптимален и задача реше­на. Если отрицательные элементы есть, то план не оптимален. Выбираем любой отрицательный элемент Z – строки (как правило, максимальный по модулю) и считаем столбец, в котором он находится в качестве разрешающего. Пусть для определенности это столбец переменной хs.

Шаг 2. Выбор разрешающей строки. Пусть разрешающий столбец, вы­бранный на предыдущем шаге, это столбец переменной хs. Для каждой i -ой строки (i = 1,...,m) делим элементы столбца свободных членов “Значение” (напомним, что все они неотрицательные) на положительные элементы разрешающего столбца, стоящие в этой строке, и находим минимальное из полученных частных, т.е. находим

Пусть этот минимум достигается в строке r. Тогда r -ая строка является разрешающей, элемент ars - разрешающий элемент таблицы.

Шаг 3. Пересчет таблицы. Преобразованиями Жордана-Гаусса пересчи­тываем таблицу относительно разрешающего элемента ars, найденного на предыдущем шаге, для чего:

3.1. Делим разрешающую строку на разрешающий элемент. В результате, на месте элемента ars будет стоять а¢rs = 1.

3.2. Ко всем остальным строкам таблицы (включая Z - строку) прибав­ляем полученную разрешающую, умноженную на элемент (-ais), где i – номер изменяемой строки i =1,2,...,r-1,r+1,...,m. К Z – строке прибавляем разрешаю­щую строку, умноженную на (- cs). Иначе говоря, элементы новой таблицы (со штрихом) вычисляются по формулам:

а¢rj = arj / ars; - новые элементы разрешающей строки (j = 1, 2,..., n);

r = br / ars

а¢ij = aij - a¢rj× ais; - новые элементы i-й строки (i =1, 2,...,m; j = 1, 2,..., n);

i = bi - b¢r × ais

j = cj - a¢rj× cs; - новые элементы Z - строки (j = 1, 2,..., n);

Z¢ = Z - r × cs

В результате этих преобразований в столбце хs везде будут стоять нули кроме r -строки, где будет 1, т.е. хs будет новой базисной переменной, целевая функция будет выражена через новые свободные переменные, новый план Х¢ находится в столбце “Значение” и лучше предыдущего, так как значение целевой функции для нового плана равно -Z¢ < Z. Переходим к шагу 1 и повторяем всю процедуру для нового плана Х¢.

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

 

Решение задачи линейного программирования в общем случае. Рас­смотрим следующую задачу ЛП:

Z = - 3x1 + х2 ® min

2x1 – х2 ³ 2,

-x1 + 2х2 ³ 5,

x1 + х2 £ 10,

x1, х2 ³ 0.

Приведем ее к каноническому виду введением трех неотрицательных пе­ременных х3, х4, х5. Получим задачу:

 

Z = - 3x1 + х2 ® min

2x1 – х2 - х3 = 2,

-x1 + 2х2 - х4 = 5, (7)

x1 + х2 + х5 = 10,

x1, х2, х3, х4, х5 ³ 0.

При попытке решить эту задачу симплекс-методом возникает опреде­ленная трудность, связанная с тем, что нет очевидного начального базисного допустимого решения (опорного плана), так как переменные х3 и х4 не являют­ся базисными. Умножение первых двух уравнений на -1 также ничего не дает, поскольку соответствующее базисное решение (0, 0, -2, -5, 10) не будет до­пустимым. Пытаться просто перебирать базисные решения в попытке отыскать допустимое, нецелесообразно, так как неясно, имеет ли эта задача вообще допустимые решения.

Для решения проблемы применим метод искусственного базиса. Введем в первые два уравнения (третье не создает проблем) искусственные перемен­ные х6 ³ 0 и х7 ³ 0. В результате получим базис из переменных х6, х7, х5.

2x1 – х2 - х3 + х6 = 2,

-x1 + 2х2 - х4 + х7 = 5, (8)

x1 + х2 + х5 = 10,

 

Соответствующее базисное решение Х0 = (0, 0, 0, 0, 10, 2, 5) является до­пустимым для ограничений (8). Однако ограничения (7) и (8) не являются экви­валентными в том смысле, что любому допустимому решению системы ограни­чений (8), в котором хотя бы одна искусственная переменная отлична от нуля, нельзя поставить в соответствие допустимое решение системы ограничений (7). С целью исключения искусственных переменных из базисного решения систе­мы ограничений (8), т.е. для получения допустимого базисного решения систе­мы ограничений (7), используем алгоритм симплекс-метода. Для того, чтобы искусственные переменные стали свободными, необходимо, чтобы они были равны нулю (сейчас х6 = 2, х7 = 5). Поэтому введем искусственную целевую функцию

W = х6 + х7.

и будем ее минимизировать при ограничениях (8). Если удастся найти базисное допустимое решение при котором W = 0 (сейчас W = 7), то тогда х6 и х7 будут равны нулю, поскольку они неотрицательны, и мы получим базис из основных и дополнительных переменных.

Таким образом, задача разбивается на два этапа. На первом этапе мини­мизируется искусственная целевая функция W. Этот этап закончится либо нахождением опорного плана исходной задачи (7), либо тем, что минимизи­ровать функцию W до нуля не удастся, т.е. допустимых планов нет, а значит (ввиду теоремы 1) и нет вообще допустимых решений задачи.

Если опорный план найдется, то на втором этапе решаем задачу симп­лекс-методом. Проиллюстрируем описанный выше метод искусственного бази­са, применив его к решению задачи (7).

Этап 1. Составим исходную симплекс-таблицу для задачи (8). Все вычис­ления будем проводить также и для целевой функции Z. Тогда после заверше­ния первого этапа получим целевую функцию Z, выраженную через свободные переменные.

 

Базис х1 х2 х3 х4 х5 х6 х7 Значение
x6 х7 x5 2 -1 -1 0 0 1 0 -1 2 0 -1 0 0 1 1 1 0 0 1 0 0  
- Z -3 1 0 0 0 0 0  
- W 0 0 0 0 0 1 1  

 

Для того, чтобы начать минимизацию функции W, ее надо выразить через свободные переменные. Для этого, из W - строки вычтем первую и вторую строки. Получим

Таблица 1.

Базис х1 х2 х3 х4 х5 х6 х7 Значение
x6 х7 x5 2 -1 -1 0 0 1 0 -1 2 0 -1 0 0 1 1 1 0 0 1 0 0  
- Z -3 1 0 0 0 0 0  
- W -1 -1 1 1 0 0 0 -7

 

Так как в W – строке есть отрицательные элементы, то выбираем в качест­ве разрешающего любой из первых двух столбцов, например первый. Посколь­ку min{2/2, 10/1} = 1 достигается в первой строке, то разрешающая строка – первая и разрешающий элемент а11 = 2. Пересчитывая таблицу относительно этого элемента, получим новую таблицу:

Таблица 2.

Базис х1 х2 х3 х4 х5 х7 Значение
x1 х7 x5 1 -½ -½ 0 0 0 0 3/2 -½ -1 0 1 0 3/2 ½ 0 1 0  
- Z 0 -½ -3/2 0 0 0  
- W 0 -3/2 ½ 1 0 0 -6

 

Так как переменная х6 вышла из базиса, то в дальнейшем ее не исполь­зуем (вычеркиваем столбец х6). Теперь разрешающим столбцом будет второй, разрешающей строкой – вторая и после пересчета получим (поскольку искусственная переменная х7 выйдет из базиса, столбец х7 также вычеркиваем):

Таблица 3.

Базис х1 х2 х3 х4 х5 Значение
x1 х2 x5 1 0 -2/3 -1/3 0 0 1 1/3 -2/3 0 0 0 1 1 1  
- Z 0 0 -5/3 -1/3 0  

 

Этап 1 успешно завершен, так как искусственные переменные выведены из базиса и мы получили опорный план Х0 = (3, 4, 0, 0, 3) исходной задачи (7), к которому можно применить алгоритм симплекс-метода. На втором этапе W - строка уже не нужна и мы ее вычеркиваем.

 

 

Этап 2. Таблица 3.

Базис х1 х2 х3 х4 х5 Значение
x1 х2 x5 1 0 -2/3 -1/3 0 0 1 -1/3 -2/3 0 0 0 1 1 1  
- Z 0 0 -5/3 -1/3 0  

 

Целевую функцию Z можно уменьшить (сейчас Z = -5) если ввести в базис х3 или х4.

Выбираем третий столбец в качестве разрешающего, т.к. –5/3 < -1/3. Разрешающей строкой будет третья, т.к. только в ней есть положительный эле­мент разрешающего столбца. Разрешающий элемент а33 = 1. Пересчитывая таблицу, получим:

Таблица 4.

Базис х1 х2 х3 х4 х5 Значение
x1 х2 x3 1 0 0 1/3 2/3 0 1 0 -1/3 1/3 0 0 1 1 1  
- Z 0 0 0 4/3 5/3  

 

Поскольку в Z – строке таблицы 4 нет отрицательных элементов, то новый план Х1 = (5, 5, 3, 0, 0) является оптимальным и Zmin = Z(5,5) = -10.

Задача решена полностью.

 

КОНТРОЛЬНЫЕ ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

Задание 3. Решить задачу линейного программирования симплекс-методом (x, y ³ 0).

 

Варианты:

 

1. Z = x - 2y ® min 2. Z = -x + y ® min

3x + y ³ 8 3x - 2y ³ 7

4x + 5y £ 29 x + 2y £ 13

x + 4y ³ 10 x - 2y £ 1

 

3. Z = 2x + y ® max 4. Z = x - y ® max

-x + 2y ³ 3 -2x + 3y £ 5

-x + y £ 1 x + 2y ³ 8

3x - 2y £ 3 3x - y £ 10

 

 

5. Z = 2x + y ® max 6. Z = x + y ® max

x - y £ 0 x - y ³ 0

3x - 2y £ 3 -x + 2y £ 4

5x - 4y ³ 1 -3x + 4y ³ 2

 

7. Z = 5x + 2y ® max 8. Z = 2x + 4y ® max

3x + y ³ 9 3x + y ³ 8

2x + y ³ 7 -x + 3y ³ 4

5x + 2y £ 17 x + 2y £ 11

 

9. Z = 2x + y ® max 10. Z = x - y ® min

-x + 5y £ 4 x + 3y £ 7

x - y £ 4 2x - y £ 7

x + y ³ 2 5x + y ³ 7

 

ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД

 

Рассмотрим задачу линейного программирования в общей форме:

Z = c1 x1 + c2 x2 +...+ cn xn ® max (1)

при ограничениях:

y 1³0 a11 x1 + a12 x2 +...+ a1n xn £ b1

y 2³0 a21 x1 + a22 x2 +...+ a2n xn £ b2

....................................... (2)

y k³0 ak1 x1 + ak2 x2 +...+ akn xn £ bk

y k+1 ak+1 1 x1 + ak+1 2 x2 +...+ ak+1 n xn = bk+1

.......................................

y m am1 x1 + am2 x2 +...+ amn xn = bm,

xj ³ 0, j = 1,..., l; l £ n (3)

Каждому i -му ограничению из (2) соответствует переменная y i так назы­ваемой двойственной задачи к задаче (1) – (3) (показана слева от соответст­вующего ограничения).

Двойственная задача имеет вид:

W = b1 y1 + b2 y2 +...+ bm xm ® min (4)

при ограничениях:

x1 ³ 0 a11 y1 + a21 y2 +...+ am1 ym ³ c1

x2 ³ 0 a12 y1 + a22 y2 +...+ am2 ym ³ c2

....................................... (5 )

xl ³ 0 a1l y1 + a2l y2 +...+ aml ym ³ cl

xl+1 a1 l+1 y1 + a2 l+1 y2 +...+ a m l+1 ym = cl+1

.......................................

xn a1n y1 + a2n y2 +...+ amn ym = cn,

yi ³ 0, i = 1,..., k; k £ n (6)

Задачи (1) – (3) и (4) – (6) образуют пару задач, называемую в линейном программировании двойственнойпарой.

Сравнивая две задачи, видим, что двойственная задача по отношению к исходной (прямой) содержит те же самые коэффициенты aij, bi, cj и состав­ляется согласно следующим правилам:

1. Целевая функция (1) исходной задачи задается на максимум, а целевая функция (4) двойственной задачи – на минимум.

2. Матрица АТ, составленная из коэффициентов при неизвестных в системе ограничений (5) двойственной задачи получается из матрицы А прямой задачи транспонированием (т.е. заменой строк столбцами):

       
   
 


а11 а12... а1n a11 a21... am1

A = а21 а22... а2n AT = a12 a22... am2

.........................

аm1 аm2... аmn a1n a2n... amn

 

3. Число переменных в двойственной задаче (4)–(6) равно числу ограниче­ний в системе (2) прямой задачи, а число ограничений в системе (5) двойствен­ной задачи равно числу переменных в прямой задаче.

4. Коэффициентами при неизвестных в целевой функции (4) двойственной задачи являются свободные члены в системе (2) прямой задачи и наоборот.

5. Если переменная xj ³ 0, то j- ое ограничение в системе (5) двойственной задачи является неравенством “ ³ ”. Если же переменная xj может иметь любой знак, то j -ое ограничение в системе (5) представляет собой уравнение.

Каждая из задач двойственной пары (1) – (3) и (4) – (6) фактически яв­ляется самостоятельной задачей линейного программирования и может быть решена независимо одна от другой. Однако при определении симплексным методом оптимального плана одной из задач, тем самым находится решение и другой задачи. Существующие зависимости между решениями прямой и двойственной задач характеризуются сформулированными ниже теоремами двойственности.

Теорема 1. (Основная теорема двойственности). Если одна из пары двойственных задач имеет оптимальный план, то и другая имеет оптимальный план причем значения целевых функций задач при их оптимальных планах сов­падают, т.е. Zmax = Wmin.

Если же целевая функция одной из задач не ограничена (для исходной (1) – (3) – сверху, для двойственной (4) – (6) – снизу), то другая задача вообще не имеет допустимых решений.

Теорема 2. (Вторая теорема двойственности). Для того, чтобы два до­пустимых решения и пары двойствен­ных задач были их оптимальными решениями, необходимо и достаточно, чтобы они удовлетворяли системам уравнений:

(7)

Замечание. Соотношения (7) верны только для ограничений в виде неравенств и для неотрицательных переменных.

 

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

Опишем алгоритм двойственного симплекс-метода. Рассмотрим задачу линейного программирования в канонической форме.

 

(8)

(9)

(10)

 

Пусть матрица ограничений А содержит единичную подматрицу порядка m и первые m переменных являются базисными. Среди чисел есть отрицательные. Вектор есть решение системы (9). Однако, это решение не является планом задачи (8) – (10), поскольку среди его компонент есть отрицательные числе (т.е. не выполняются ограничения (10)). Исключим базисные переменные из целевой функции z:

.

Предположим, что

Шаг 1. Составить исходную симплексную таблицу.

 

№ строки Базис x1 xm xm+1 xk xn b
1 l m x1 xl xm 1 0 0 0 0 1 a1m+1 alm+1 amm+1 ak a*lk amk a1n aln amn b1 bl bm
m+1 -z 0 0 dm+1 dk dn -do

 

Шаг 2. Выяснить, имеется ли хотя бы одно отрицательное число среди элементов столбца b. Если нет, то перейти к шагу 8. Иначе – к шагу 3.

Шаг 3. Если отрицательных чисел в столбце b несколько, то выбрать наименьшее. Пусть, для определенности, это число . Строка с номером l – ведущая.

Шаг 4. Среди элементов ведущей строки l находят отрицатель­ные. Если таковых нет, то исходная задача не имеет решения. В противном случае перейти к шагу 5.

Шаг 5. Вычислить . Столбец с номером k – ведущий, - ведущий элемент.

Шаг 6. С помощью ведущего элемента провести одну итерацию метода Жордана-Гаусса.

Шаг 7. Построить новую симплексную таблицу и перейти к шагу 2.

Шаг 8. Задача линейного программирования (8) – (10) решена. По последней симплексной таблице выписать оптимальный план и минимальное значение целевой функции задачи (8) – (10).

Замечание. Если среди чисел есть отрицательные, то следует в системе ограничений (9) преобразовать свободные члены bj в неотрица­тельные, умножив на (-1) строки, содержащие отрицательные свободные члены и решать задачу (8) – (10) методом искусствен­ного базиса.

 

Пример. Решить задачу линейного программирования:

Z = 6x1 + 9x2 + 3x3 ® min

-x1 + 2x2 + x3 ³ 2

3x1 + x2 – x3 ³ 1 (11)

xj ³ 0, j = 1, 2, 3.

 

Решение. Составим для задачи (11) двойственную:

W = 2y1 + y2 ® max

-y1 + 3y2 £ 6

2y1 + y2 £ 9 (12)

y1 - y2 £ 3

y1, y2 ³ 0

Для решения задачи (11) двойственным симплекс-методом приведем ее к каноническому виду. Для этого умножим первое и второе ограничения на (-1) и добавим соответствен­но неотрицательные дополнительные переменные x 4 ³ 0, x5 ³ 0:

Z = 6x1 + 9x2 + 3x3 ® min

x1 - 2x2 - x3 + x4 = -2

-3x1 - x2 + x3 + x5 = -1 (13)

xj ³ 0, j = 1, 2,..., 5.

Базисными переменными здесь являются переменные х 4 и х 5. Поскольку все коэффициенты с j ³ 0, то критерий оптимальности для этого базисного ре­шения выполнен, однако само решение Х = (0, 0, 0, -2, -1) содержит отрица­тельные переменные, то есть не является допустимым. Естественно попытаться вывести отрицательные (не являющиеся допустимыми) переменные из базиса, сохранив при этом неотрицательность коэффициентов последней строки, так как в этом случае полученное допустимое решение будет являться и оптималь­ным. Такой подход является содержанием двойственного симплекс-метода. Проиллюстрируем его на примере решения задачи (13).

Составим исходную симплекс-таблицу.

 

Базис х1 х2 х3 х4 х5 Значение (bi)
x 4 x 5 1 -2 -1* 1 0 -3 -1 1 0 1 -2 -1
- Z 6 9 3 0 0  

 

Вычисляем Из базиса будем выводить пе­ременную x4. Следовательно, первая строка таблицы является разрешающей. Среди элементов разрешающей строки находим отрицательные а 12 = -2; a 13 = -1.

Определяем Столбец, в кото­ром достигается этот минимум, соответствует переменной х 3. Этот столбец является разрешающим и разрешающим элементом является элемент а 13 = -1. Это делается для того, чтобы элементы последней строки остались неотрицательными. Проводим одну итерацию метода Жордана-Гаусса относи­тельно этого элемента, т.е. из базиса исключаем переменную х 4 и включаем в базис переменную х 3. Новая симплекс-таблица имеет вид:

 

Базис х1 х2 х3 х4 х5 Значение (bi)
х 3 x 5 -1 2 1 -1 0 -2 -3* 0 1 1 -3
- Z 9 3 0 3 0 -6

 

Элемент b 2 = -3 < 0. Следовательно, разрешающей является вторая строка таблицы. Как и ранее, находим

Следовательно второй столбец – разрешающий, переменную х 2 включаем в базис, переменную х 5 исключаем из базиса. Пересчитывая таблицу относи­тельно элемента а 22 = -3, получаем новую таблицу:

 

Базис х1 х2 х3 х4 х5 Значение (bi)
х 3 x 2 -7/3 0 1 -1/3 2/3 2/3 1 0 -1/3 -1/3  
- Z 7 0 0 4 1 -9

 

Среди элементов столбца “Значение” нет отрицательных чисел. В Z – строке также нет отрицательных чисел. Следовательно, найден оптимальный план: Х * = (0; 1; 0), при этом Z* = Zmin = 9. По последней симплекс-таблице находим решение двойственной задачи (9). Для этого выясняем, какие перемен­ные задачи (10) входили в исходный базис. В первоначальной таблице это – х 4, х 5. В последней симплекс-таблице находим элементы Z – строки, соответст­вующие этим базисным переменным (с 4 = 4, с 5 = 1) и прибавляем к ним соот­ветствующие коэффициенты исходной целевой функции (с 4 = с 5 = 0). В ре­зультате получаем Y * = (4; 1), W * = W max = 9.

 

КОНТРОЛЬНЫЕ ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

Задание 4. Решить задачу линейного программирования двойственным симплекс-методом.

Варианты

 

1. 2.

3. 4.
   
5. 6.
7. 8.
9. 10.

 

V. ТРАНСПОРТНАЯ ЗАДАЧА

 

Общая постановка транспортной задачи состоит в определении оптималь­ного плана перевозок некоторого однородного груза из m пунктов отправления А 1, А 2,..., А m в n пунктов назначения B1, B 2,..., B n. При этом в качестве критерия оптимальности берется либо минимальная стоимость перевозок всего груза, либо минимальное время его доставки.

Математическая модель транспортной задачи имеет вид: , (14)

(15)

(16)

(17)

 

Здесь c ij - тарифы перевозки единицы груза из i – го пункта отправления А i в j – ый пункт назначения B j, bj - потребность в грузе в j – ом пункте на­значения, ai – запасы груза в i – ом пункте отправления.

Наличие линейных уравнений (15) и (16) обеспечивает доставку необхо­димого количества груза в каждый из пунктов назначения и вывоз всего имею­щегося груза из всех пунктов отправления. При этом, ввиду (17), исключаются обратные перевозки. Задача (14) – (17) является частным случаем задачи линей­ного программирования, однако, в силу своей специфики решается специаль­ным методом.

Если выполняется так называемое условие баланса

, (18)

то такая транспортная задача называется закрытой. Если условие баланса (18) не выполняется, то задача называется открытой.

Теорема 1. Для разрешимости транспортной задачи необходимо и доста­точно, чтобы выполнялось условие баланса (5).

Если то вводится фиктивный (n + 1) - ый пункт назначения с потребностью и соответствующие тарифы полагают рав­ными нулю, т.е. c i n+1 = 0 (i = 1,2,..., m). Аналогично, при вводится фиктивный, (m+1) – ый пункт отправления с запасами груза , при этом тарифы на перевозку из этого пункта также полагают равными нулю, c m+1 j = 0.

Для решения задачи (14) – (17) применяется метод потенциалов, который по существу, является другой формой симплекс-метода.

Опишем алгоритм метода. Исходные данные транспортной задачи запишем в таблице

bj ai b 1 b 2 ... b n
a 1 c 11 c 12 ... c 1n
a 2     c 21   c 22 ...   c 2n
... ... ... ...
a m     c m1   c m2 ...   c mn

 

1. Построение начального опорного плана. Система ограничений (16)-(17) содержит m×n неизвестных и m+ n уравнений, связанных отношением (18). Невырожденный опорный план задачи содержит m + n – 1 положительных пе­ревозок или компонент. Таким образом, если каким-либо способом получен не­вырожденный опорный план задачи, то в матрице (xij) значений его компонент положительными являются только m + n – 1, а остальные равны нулю.

Клетки, в которых находятся отличные от нуля перевозки, называются за­нятыми, остальные – незанятыми. Занятые клетки соответствуют базисным не­известным, и для невырожденного опорного плана их количество равно m + n-1.

Для построения начального опорного плана применим метод минималь­ной стоимости.

Выбираем клетку с минимальной стоимостью (если их несколько, возь­мем любую из них). Пусть, например, . Тогда в клетку (l, k) записы­вают число . При этом, если , то значение bk уменьшают на al и «закрывают» строку с номером l, так как ресурсы l -го поставщика исчерпаны. Если , то значение al уменьшают на bk и «закрывают» столбец с номером k, что означает удовлетворение спроса k- го потребителя. Если же al = bk, то «закрывают» строку или столбец по выбору.

Вышеописанную процедуру повторяют для оставшейся транспортной таблицы до тех пор, пока не будут закрыты все строки и столбцы.

2. Построение системы потенциалов. Система потенциалов строится для невырожденного опорного плана и имеет вид:

где - стоимость перевозки единицы груза занятой (базисной) клетки в i – ой строке и j -ом столбце.

Вычисление потенциалов удобно проводить по таблице, положив равным нулю один из потенциалов и затем последовательно находя все остальные по­тенциалы вычитанием из стоимостей базисных клеток уже известных потен­циалов. Потенциалы поставщиков записывают справа, а потенциалы потре­бителей - внизу транспортной таблицы.

3. Проверка опорного плана на оптимальность. Для каждой свободной клетки вычисляют оценки

Если , то опорный план оптимален и задача решена. В противном случае план не является оптимальным, следовательно, его нужно улучшить.

4. Построение цикла и нахождение нового опорного плана. Среди отрица­тельных оценок выбираем наименьшую. Пусть

В клетке (l, k) нарушено условие оптимальности. Для улучшения опорно­го плана необходимо в клетку (l, k) отправить некоторое количество груза, превратив ее тем самым в базисную. Эта операция эквивалентна действию по замене базиса в симплекс-методе.

Клетку (l, k) отмечают



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 310; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.72.55 (0.011 с.)