Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретное программирование.doc
Скачиваний:
6
Добавлен:
12.08.2019
Размер:
489.47 Кб
Скачать

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

Имеется пунктов поставщиков и пунктов назначения (потребителей) .

— количество груза в тоннах, сосредоточенное в пункте ;

— количество груза, ожидаемое в пункте .

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

(6.16)

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

— стоимость перевозки одной тонны груза из пункта в пункт .

— количество тон груза, перевезенное из пункта в пункт .

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

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

Таблица 6.1. Матрица перевозок

...

...

...

...

...

...

...

...

...

...

...

Запишем соотношение для пунктов поставщиков и пунктов потребителей .

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

(II)

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

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

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

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

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

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

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

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

.

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

Таблица 6.2.

Запасы

40

60

80

Потребности

40

60

80

60

100

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

Таблица 6.3.

20

(так как переслали в )

80

100

60

80

60

Отметим, что и в таблице 6.3 сумма всех потребностей по-прежнему равна сумме всех запасов. К Таблице 6.3 применим тот же прием и попытаемся удовлетворить потребности пункта .(в таблице 6.3 пункт играет роль первого) запасами пункта . Очевидно, что потребности эти удается удовлетворить лишь частично, так как . При этом потребности сократятся до , а запасы окажутся исчерпаны полностью. В силу этого строку, отвечающую , из таблицы 6.3 можно временно удалить. Получим новую таблицу – таблицу 6.4, в которой имеются уже два пункта отправления и и три пункта назначения .

Таблица 6.4.

40

80

100

40

80

60

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

.

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

Таблица 6.5.

40

20

40

40

40

60

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

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

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

  • Задачи планирования перевозок.

  • Задачи размещения и специализации.

  • Задачи логического проектирования.

  • Задачи теории расписаний.

  • Другие прикладные задачи.