Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_МиМ в экономике_текст.doc
Скачиваний:
80
Добавлен:
05.11.2018
Размер:
16.27 Mб
Скачать

7.5. Применение модели транспортной задачи при решении различных экономических задач

Наряду с задачами транспортировки грузов модель транспортной задачи находит широкое применение в различных видах экономической деятельности. Целый ряд задач линейного программирования, базирующихся на модели транспортной задачи, не имеют ничего общего с транспортировкой груза. Поэтому в зависимости от конкретной задачи величины сij, ai, bj и переменные xij могут иметь различный экономический смысл. Например, это может быть однопродуктовая модель оптимального размещения промышленного производства, в основе которой лежит открытая модель транспортной задачи.

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

Пусть имеется n работников и n рабочих мест (работ). Известно, что i-й работник затрачивает на j-ю работу tij единиц времени (i= j=).

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

Обозначим через хij число, равное единице, если i-й работник назначен на j-ю работу, и нулю, если для j-й работы выбран другой работник, т.е.

(8)

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

.

Условия, гарантирующие прикрепление каждого исполнителя к одной работе, записываются в виде:

(9)

Условия, гарантирующие закрепление за каждой работой одного исполнителя, имеют вид:

(10)

Вместо условия (8), накладывающего ограничения на значение переменных, запишем:

Модель задачи о назначениях является частным случаем модели транспортной задачи. В ней m=n, а все ai=bj=1. Любая транспортная задача с целыми ai и bj всегда имеет целочисленное решение, причем в данном случае единственным возможным целым является единица. Поэтому условие (3) оказывается лишним.

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

На практике может возникнуть ситуация, когда число работников (m) отлично от числа работ (n). Тогда, как и для транспортной задачи, можно рассматривать открытые модели задачи о назначениях. Если число работников меньше числа работ (m<n), то вводят n-m фиктивных работников. Время выполнения фиктивными работниками работ принимается равным нулю. В случае m>n вводят m-n фиктивных работ, а время выполнения фиктивных работ полагают очень большим (М).

Тема 8. Модели и методы дискретного программирования

8.1. Постановка задачи дискретного программирования

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

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

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

(1)

(2)

(3)

(4)

В случае, когда задача имеет ограничения целочисленности для всех переменных (n1=n), т.е. значения всех переменных в оптимальном плане должны быть целыми числами, она называется полностью целочисленной. Если задача имеет ограничения целочисленности только для некоторых переменных (n1<n), она называется частично целочисленной.

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

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

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

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

Турист, отправляющийся в длительный поход, может взять с собой n предметов. Известно, что каждый предмет вида j имеет массу аj, кг (j=). Для переноски предметов используется рюкзак, в который можно поместить груз массой не более b, кг. Ограничение на общую массу предметов является естественным, так как, во-первых, рюкзак может не выдержать слишком большой массы и, во-вторых, двигаться с тяжелым рюкзаком в походе затруднительно. По каждому предмету вида j задана его ценность с точки зрения незаменимости в походе - сj (j=). Требуется определить количество предметов каждого вида, которое турист может положить в рюкзак, чтобы суммарная ценность груза была максимальной.

Обозначим через хj (j=) - количество предметов j-го вида. Тогда математическая модель задачи будет иметь вид:

(5)

(6)

(7)

(8)

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

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

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