русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгоритм решения транспортной задачи методом потенциалов


Дата добавления: 2014-11-27; просмотров: 4204; Нарушение авторских прав


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

Основной задачей линейного программирования, решаемой методом потенциалов, является транспортная задача. Следует заметить, что название транспортных задач обусловлено тем, что вышеперечисленные методы вначале были разработаны к организации перевозки грузов. В настоящее время этим методом решаются многие другие задачи, не связанные с грузоперевозками. Например, распределение машинно-тракторного парка по видам работ, распределение посевных площадей сельскохозяйственных культур по наилучшим предшественникам или по группам почв и т.д.

Чтобы сформулировать общую постановку транспортной задачи, примем следующие условные обозначения:

· i - номер пункта отправления груза;

· j - номер пункта потребления груза;

· m - количество пунктов отправления;

· n - количество пунктов потребления груза;

· Ai - наименование i-го пункта отправления груза;

· ai - наличие груза в i-м пункте отправления;

· Bj - наименование j-го пункта потребления груза;

· bj - потребность j-го пункта в грузе;

· Xj - количество перевозимого груза из i-го пункта отправления в j-й пункт назначения;

· Cij - оценка переменных в целевой функции;

· Zmin - значение целевой функции.

Приняв условия обозначения, постановку транспортной задачи в общем виде можно сформулировать следующим образом. Имеется m пунктов отправления А1, А2,…Аm, на которых сосредоточено определенное количество груза а1, а2,…аm, и имеется n пунктов потребления груза В1, В2,…Вn с потребностью в этом грузе b1, b2…bn. Требуется определить такие маршруты перевозок, которые бы при всех неотрицательных переменных хij обеспечивали минимальное значение целевой функции Zmin.



В транспортных задачах различают ограничения (условия) по наличию груза в пунктах отправления и ограничение по потребностям в данном грузе пунктов назначения (потребления).

Математически ограничения по наличию груза в пунктах отправления запишутся следующим образом:

X11+X12+ …+X1n =a1
X21+X22+ …+X2n =a2

……………………………………
Xm1+Xm2+ …+Xmn=am

 

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

X11+X21+ …+Xm1 =b1
X12+X22+ …+Xm2 =b2
……………………………………
X1n+X2n+ …+ mn = bn

Целевая функция будет представлена выражением

Zmin = C11 X11 + C12 X12 + … + C1n X1n +C21 X21+C22X22 + … + Cmn Xmn.

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

Найти минимум функции

 

при условиях:

1) наличия груза в пунктах отправления
( i = 1,2,…,m);

2) потребности в грузе в пунктах назначения
(j = 1,2,…,n);

3) неотрицательности переменных

.

В транспортных задачах встречаются модели открытого и закрытого типа. Если общая сумма груза во всех пунктах отправления равна потребности в нем всех пунктов назначения, то такая модель называется закрытой. Закрытая модель транспортной задачи в структурной форме имеет следующий вид:

.

Если же такого равенства не наблюдается, то модель называется открытой. Открытая модель задачи описывается формулой

.

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

Алгоритм решения транспортных задач методом потенциалов разберем на конкретном примере.

Условие задачи:

В хозяйстве грубые корма заготовлены на трех участках в следующем объеме: на первом участке – 500 т (А1), на втором – 850 т (А2), на третьем – 600 т (А3). Заготовленные корма предстоит развезти по четырем фермам. Первой ферме требуется 400 т (В1), второй- 550 т (В2), третьей- 700 т (В3), четвертой – 300 т (В4). Расстояние от участков до ферм приведено в таблице 8. Себестоимость 1 тонно-километра в среднем по хозяйству составляет 10 рублей. Требуется определить такие маршруты перевозок грубых кормов, чтобы общие затраты на их перевозку с участков до ферм были бы минимальными.

 

 

Таблица 8. Расстояние от мест складирования корма до ферм, км

Места складирования корма Фермы
B1 B2 B3 B4
А1 3(c11) 4(c12) 2(c13) 9(c14)
А2 8(c21) 5(c22) 7(c23) 8(c24)
А3 5(c31) 6(c32) 4(c33) 4(c34)

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

Запишем данную задачу в виде системы уравнений, приняв за неизвестные возможное количество перевозимого груза с i-го участка на j-ую ферму:

Ограничения по количеству заготовленного грубого корма на участках:

X11+X12+X13+X14=500

X21+X22+X23+X24=850

X31+X32+X33+X34=600

Всего заготовлено грубых кормов 1950 т.

Ограничения по потребности ферм в грубых кормах:

X11+X21+X31=400

X12+X22+X32=550

X13+X23+X33=700

X14+X24+X34=300

Всего потребность ферм в грубых кормах равна 1950 т.

Целевая функция принимает следующий вид:

Zmin=3X11+4X12+2X13+9X14+8X21+5X22+7X23+8X24+5X31+6X32+4X33+4X34

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

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

Таблица 9. Форма таблицы для решения транспортной задачи

Участки   Фермы Количество кормов в местах складирования, т
B1 B2 B3 B4
Vj Ui V1 V2 V3 V4
А1 U1 X11 X12 X13 X14
А2 U2 X21 X22 X23 X24
А3 U3 X31 X32 X33 X34
Потребность ферм в кормах, т  

Строка Vj и столбец Ui в данной таблице предназначены для записи значений потенциалов занятых клеток по столбцу и по строке. В правом верхнем углу каждой клетки записывается оценка целевой функции.

Существует несколько способов построения первого опорного плана: способ северо-западного угла, способ предпочтение наименьшей (при решении на минимум целевой функции) или наибольшей (при решении на максимум целевой функции) оценки по строке; способ двойного предпочтения и т.д. Наиболее часто применяется способ северо-западного угла. Он предполагает начало построения первого опорного плана с заполнения левой верхней клетки таблицы без учета величины оценки. В данной задаче количество грубых кормов на первом участке составляет 500 т, а первой ферме требуется 400 т (таблица 10). Следовательно, потребность первой фермы будет удовлетворена за счет кормов, имеющихся на первом участке.

Таблица 10. Первый опорный план (оценки L)

Участки Потенциалы заполненных клеток Фермы Количество кормов в местах складирования, т
B1 B2 B3 B4
Vj Ui V1=3 V2=4 V3=6 V4=6
А1 U1=0                
        -     +        
               
А2 U2=1                
        +     -        
               
А3 U3=-2                
                       
               
Потребность ферм в кормах, т  

Оставшиеся 100 т корма будут перевезены на вторую ферму. Итак, наличие кормов на первом участке распределено полностью. Приступаем к распределению кормов, заготовленных на втором участке, где имеется 850 т. Второй ферме для полного удовлетворения в кормах недостает 450 т. Этот недостаток покрывается за счет кормов второго участка. Оставшиеся 400 т кормов на втором участке отдаем третей ферме, так как ее потребность больше остатка, но третьей ферме до полного покрытия потребности недостает 300 т кормов. Недостаток потребности третьей фермы покрывается за счет кормов, заготовленных на третьем участке. Оставшиеся 300 т кормов на третьем участке будут переданы на четвертую ферму. Итак, все заготовленные корма на участках распределены в соответствии с их потребностями.

Значение целевой функции в первом опорном плане равно 9050 т/км.

Zmin=3·400+4·100+5·450+7·400+4·300+4·300=9050 т/км.

В построенном опорном плане количество занятых клеток должно быть не менее чем m+n-1, где m - количество строк, n - количество столбцов. Если количество занятых клеток меньше, чем сумма строк и столбцов без единицы, то план является вырожденным, т.е. не имеющим решения. Для устранения вырожденности одну из свободных клеток принимают за условно занятую. В условно занятую клетку записывают ноль грузоперевозок и считают эту клетку занятой.

Полученный опорный план проверяют на оптимальность. При решении задачи на минимум план будет оптимальным тогда, когда все характеристики свободных клеток, рассчитанные по формуле Lij=Cij ‑ (Vi+Ui), будут положительными или равными нулю. В данной формуле Lij - характеристика свободной клетки, которая указывает, как изменяется значение целевой функции при перемещении одной единицы груза в данную свободную клетку. Положительная характеристика указывает на увеличение значения целевой функции, отрицательная − на ее уменьшение, а наличие нулевых характеристик свидетельствует о наличии маршрутов перевозки грузов, при которых значение целевой функции остается неизменной. Cij - оценка занятой клетки, Vj - потенциал занятой клетки по j-му столбцу, Ui - потенциал занятой клетки по i-ой строке. Потенциалы занятых клеток рассчитываются по формуле Cij=Vj+Ui.

Рассчитаем потенциалы занятых клеток для первого опорного плана по данной формуле, приняв значение U1=0:

C11=V1+U1; 3=V1+0; V1= 3

C12=V2+U1; 4=V2+0; V2= 4

C22=V2+U2; 5=4+U2; U2= 1

C23=V3+U2; 7=V3+1; V3= 6

C33=V3+U3; 4=6+U3; U3=-2

C34=V4+U3; 4=V4+(-2); V4= 6

Значения рассчитанных потенциалов записывают в соответствующие строку и столбец таблицы.

Подставляя найденные параметры в формулу Lij=Cij-(Vi+Ui), рассчитаем характеристики свободных клеток для первого опорного плана:

L13=C13-(V3+U1)=2-(6+0)=-4 L24= C24-(V4+U2)=8-(6+1)= 1

L14= C14-(V4+U1)=9-(6+0)= 3 L31= C31-(V4+U3)=5-(3-2) = 4

L21= C21-(V1+U2)=8-(3+1)= 4 L32= C32-(V2+U3)=6-(4-2) = 4

Полученный опорный план не является оптимальным, так как данная задача решается на минимум и одна из характеристик имеет отрицательное значение (L13=-4). Следовательно, полученный план необходимо улучшать. Улучшение плана осуществляется путем построения замкнутого контура и перемещения объема грузоперевозок по его вершинам.

Чтобы начать построение контура, просматривают значения характеристик свободных клеток и среди них выбирают наибольшую по модулю, при решении на минимум − среди отрицательных, а при решении на максимум − среди положительных характеристик. В свободной клетке, соответствующей выбранной характеристике, ставят знак (+) и из нее начинают построение прямоугольного замкнутого контура. Ведут прямую линию до занятой клетки. В занятой клетке ее поворачивают на 90о и ведут прямую линию к следующей занятой клетке. В ней также ее поворачивают на 90о с тем расчетом, чтобы вернуться к свободной клетке, из которой начинали построение прямоугольного контура. Проходить через занятую клетку, не поворачивая в ней линию на 900, можно только в том случае, если не представляется возможности вернуться к свободной клетке, из которой начиналось построение контура.

К построению контура предъявляются следующие требования:

· все вершины контура (кроме одной, из которой контур начинал строиться) должны лежать в занятых клетках);

· все углы контура должны быть прямыми;

· количество вершин контура должно быть четным.

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

Грузооборот во втором опорном плане по сравнению с первым уменьшился на 400 т/км. Правильность расчета значения целевой функции можно проверить, если вычесть из значения целевой функции предыдущего плана произведение характеристики свободной клетки, из которой начинали строить прямоугольный контур (L13=-4) на величину перемещаемого груза (X13=100), при этом получим значение целевой функции второго опорного плана: 9050-(4×100)=8650.

 

Таблица 11. Второй опорный план

Участки Потенциалы заполненных клеток Фермы Количество кормов в местах складирования, т
B1 B2 B3 B4
Vj Ui V1=3 V2=0 V3=2 V4=2
А1 U1=0                
  -           +        
                 
А2 U2=5                
                       
                 
А3 U3=2                
  +           -        
               
Потребность ферм в кормах, т  

Значение целевой функции во втором опорном плане равно:

Zmin=3·400+2·100+5·550+7·300+4·300+4·300=8650 т/км.

Исследуем новый опорный план на оптимальность. Потенциалы занятых клеток в новом опорном плане примут значения:

C11=V1+U1 3=V1+0 V1=3 C22=V2+U2 5=V2+5 V2=0

C13=V3+U1 2=V3+0 V3=2 C33=V3+U3 4=2+U3 U3=2

C23=V3+U2 7=2+U2 U2=5 C34=V4+U3 4=V4+2 V4=2

Рассчитаем характеристики свободных клеток:

L12=C12 ‑ (V2+U1)=4‑(0+0)=4 L24=C24 ‑ (V4+U2)=8‑(2+5)=1

L14=C14 ‑ (V4+U1)=9‑(2+0)=7 L31=C31 ‑ (V1+U3)=5‑(3+2)=0

L21=C21 ‑ (V1+U2)=8‑(3+5)=0 L32=C32 ‑ (V2+U3)=6‑(0+2)=4

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

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

В соответствии с оптимальным планом грубые корма с первого участка будут перевезены 400 т на первую ферму и 100 т на третью ферму, со второго участка 550 т будут перевезены на вторую ферму и 300 т на третью. С третьего участка корма в равных долях будут распределены между третьей и четвертой фермами.

Наличие в оптимальном плане нулевых характеристик свободных клеток (L21=0; L31=0) свидетельствует о наличии других маршрутов перевозки грубых кормов с участков на фермы, при которых значение целевой функции остается неизменной. В данном случае возможны перевозки кормов со второго и третьего участков на первую ферму. Если предположить возможную перевозку грубого корма с третьего участка на первую ферму, то получим новый опорный план

Таблица 12. Третий опорный план

Участки Потенциалы заполненных клеток Фермы Количество кормов в местах складирования, т
B1 B2 B3 B4
Vj Ui V1=3 V2=4 V3=6 V4=6
А1 U1=0                
                       
               
А2 U2=1                
                       
               
А3 U3=-2                
                       
             
Потребность ферм в кормах, т  

Потенциалы занятых клеток в новом опорном плане примут значения:

C11=V1+U1 3=V1+0 V1=3 C22=V2+U2 5=V2+5 V2=0

C13=V3+U1 2=V3+0 V3=2 C31=V1+U3 5=3+U3 U3=2

C23=V3+U2 7=2+U2 U2=5 C34=V4+U3 4=V4+2 V4=2

Характеристики свободных клеток Lij в третьем опорном плане примут следующие значения:

L12 = C12 ‑ (V2+U1)=4-(0+0)=4 L24 = C24 ‑ (V4+U2)=8-(2+5)=1

L14 = C14 ‑ (V4+U1)=9-(2+0)=7 L32 = C32 ‑ (V2+U3)=6-(0+2)=4

L21 = C21 ‑ (V1+U2)=8-(3+5)=0 L33 = C33 ‑ (V3+U3)=4-(2+2)=0

Все характеристики свободных клеток в третьем опорном плане положительные, следовательно, план является оптимальным. Значение целевой функции данного опорного плана равно 8650 т/км

Zmin = 3·100+2·400+5·550+7·300+5·300+4·300=8650 т/км.

Оптимальный план третьего опорного плана альтернативен оптимальному плану второго опорного плана.




<== предыдущая лекция | следующая лекция ==>
Задание для самостоятельной работы | Задание для самостоятельной работы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.13 сек.