Новосибирский Государственный Университет
Опубликован: 06.11.2008 | Доступ: свободный | Студентов: 3337 / 1209 | Оценка: 4.24 / 3.67 | Длительность: 14:37:00
Специальности: Математик
Лекция 6:

Дискретное программирование

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >

Пример математической модели дискретного программирования (транспортная задача )

Имеется m пунктов поставщиков A_1,A_2,...,A_m и n пунктов назначения (потребителей) B_1,B_2,...,B_n.

a_i — количество груза в тоннах, сосредоточенное в пункте A_i(i=1,2,...,m) ;

b_j — количество груза, ожидаемое в пункте B_j(j=1,2,...,n).

Принимаем условие

a_1+a_2+...+a_m=b_1+b_2+...+b_n ( 6.16)
,

означающее, что суммарный запас груза равен суммарной потребности в нем.

c_{ij}стоимость перевозки одной тонны груза из пункта A_i в пункт B_j.

x_{ij} — количество тон груза, перевезенное из пункта A_i в пункт B_j.

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

Неизвестными в нашей задаче являются mn неотрицательных чисел x_{ij}(i=1,...,m;j=1,...,n). Сведем их в таблицу 6.1, назовем ее матрицей перевозок.

Таблица 6.1. Матрица перевозок
B_1 B_2 ... B_n
A_1 x_{11} x_{12} ... x_{1n} a_1
A_2 x_{21} x_{22} ... x_{2n} a_2
... ... ... ... ... ...
A_m x_{m1} x_{m2} ... x_{mn} a_m
b_1 b_2 ... b_n

Запишем соотношение для пунктов поставщиков A_1,A_2,...,A_m и пунктов потребителей B_1,B_2,...,B_n.


Будем называть уравнение 0I горизонтальными уравнениями, а 0II – вертикальными. Перевозка из A_i и B_j стоит c_{ij}x_{ij}, общая стоимость всех перевозок будет

S=\sum\limits_{i,j}c_{ij}x_{ij} ( II)
,

где суммирование производится по всем i=1,...m и всем j=1,...n. Таким образом, мы пришли к следующей задаче линейного программирования:

Дана система уравнений I и линейная функция II. Требуется среди неотрицательных решений системы найти такое, которое минимизирует функцию II.

Метод северо-западного угла

Разберем метод на примере.

Пусть есть 3 пункта отправления

A_1,A_2,A_3

и 4 пункта назначения

B_1,B_2,B_3,B_4.

Запасы в пунктах отправления:

a_1=60,a_2=80,a_3=100.

Потребности:

b_1=40,b_2=60,b_3=80,b_4=60.

Занесем данные в таблицу.

Таблица 6.2.
B_1 B_2 B_3 B_4 Запасы
A_1 40 60
A_2 80
A_3

Потребности

40

60

80

60
100

Потребности пункта B_1-b_1=40 удовлетворены полностью и поэтому столбец, соответствующий B_1, можно временно исключить из рассмотрения, то есть переходим к таблице 3.

Таблица 6.3.

A_1
B_2

20

B_3 B_4

a\prime =60-40=20 (так как переслали в B_1 )
A_2 80
A_3 100
60 80 60

Отметим, что и в таблице 6.3 сумма всех потребностей по-прежнему равна сумме всех запасов. К Таблице 6.3 применим тот же прием и попытаемся удовлетворить потребности b_2=60 пункта B_2.(в таблице 6.3 пункт B_2 играет роль первого) запасами a_1^{\prime}=20 пункта A_1. Очевидно, что потребности эти удается удовлетворить лишь частично, так как b_2 > a_1^{\prime}. При этом потребности B_2 сократятся до b_2^{\prime}=40, а запасы A_1 окажутся исчерпаны полностью. В силу этого строку, отвечающую A_1, из таблицы 6.3 можно временно удалить. Получим новую таблицу – таблицу 6.4, в которой имеются уже два пункта отправления A_2 и A_3 и три пункта назначения B_2,B_3,B_4.

Таблица 6.4.
B_2 B_3 B_4
A_2 40 80
A_3 100
40 80 60

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

x_{11}=40, x_{12}=20, x_{22}=40, x_{23}=40, x_{33}=40,x_{34}=60.

Вписав их в таблицу 6.2, получим таблицу 6.5.

Таблица 6.5.
B_1 B_2 B_3 B_4
A_1 40 20
A_2 40 40
A_3 40 60

Условимся называть те клетки таблицы 6.5, в которые вписаны значения неизвестных, — базисными, а остальные клетки — свободными. Если считать, что значения неизвестных x_{ij}, которые отвечают свободным клеткам, равны нулю, то получившийся набор значений всех неизвестных дает допустимое решение рассматриваемой задачи.

Действительно, легко проверить, что сумма значений неизвестных в каждой строке таблицы равна запасу в соответствующем пункте отправления, а в каждом столбце – потребности в соответствующем пункте назначения. Поэтому уравнения I, II удовлетворяются.

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

  • Задачи планирования перевозок.
  • Задачи размещения и специализации.
  • Задачи логического проектирования.
  • Задачи теории расписаний.
  • Другие прикладные задачи.
< Лекция 5 || Лекция 6: 1234 || Лекция 7 >
Данил Комардин
Данил Комардин

мне задали дистанционное задание на сертификат,но я не могу его найти