Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентация_ЗЛП_НТ_2013.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.65 Mб
Скачать

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

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

Многие задачи системного анализа, такие как распределение ресурсов, задачи сетевого планирования и управления, календарного планирования, описываются математическими моделями дискретного программирования.

Рассмотрим общую задачу максимизации.

Найти

при условиях

(8.12)

где D - некоторое множество R(n)

Если множество D является конечным или счетным, то условие (8.12) - это условие дискретности, и данная задача является задачей дискретного программирования (ЗДП). Чаще всего условие дискретности разделено по отдельным переменным следующим образом:

где D - конечное (или счетное) множество.

Если вводится ограничение х; - целые числа (j=l,2,..., n), то приходят к задачам целочисленного программирования (ЦП), которое является частным случаем дискретного программирования.

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

найти max (x1-3x2 +3х3) при условиях

где х1, х2, х3 ≥ 0, xj - целые числа (j = 1,2, 3). Игнорируя условие целочисленности, находим оптимальный план симплекс-методом:

x1опт=0.5; x2опт=0,x3опт=4.5.

Проверка показывает, что никакое округление компонент этого плана не дает допустимого решения, удовлетворяющего ограничениям этой задачи. Искомое целочисленное решение задачи x1пт =2, x2опт=0, x3опт=5.

Таким образом, для решения задачи дискретного программирования (ЗДП) необходимы специальные методы. Методы решения ЗДП по принципу подхода к проблеме делят на три группы: 1) методы отсечения или отсекающих плоскостей; 2) метод ветвей и границ; 3) методы случайного поиска и эвристические методы.

8.2. Математические модели задач дискретного программирования

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

1) задачи с неделимостями;

2) экстремальные комбинаторные задачи;

3) задачи на несвязных и на невыпуклых плоскостях;

4) задачи с разрывными целевыми функциями.

Рассмотрим существо некоторых из них.

Задачи с неделимостями. Математические модели задач с неделимостями основаны на требовании целочисленности переменных {xi}, вытекающем из физических условий практических задач.

К таким задачам относится задача об определении оптимальной структуры производственной программы, где 1, х2,..., хп} - объемы выпуска продукции.

Эта задача заключается в отыскании

(8.13)

при

(8.14)

(8.15)

Если J =N = (1,2,..., n), то задача называется полностью целочисленной, в противном случае, если JN - частично целочисленной.

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

Рассмотрим постановку данной задачи. Турист готовится к длительному переходу в горах. В рюкзаке он может нести груз, масса которого не более W. Этот груз может включать в себя п видов предметов, каждый предмет типа j, массой wj ,j= 1,2,..., n. Для каждого вида предмета турист определяет его ценность Ej во время перехода. Задача заключается в определении количества предметов каждого типа, которые он должен положить в рюкзак, чтобы суммарная ценность снаряжения была максимальной.

Обозначим через хj количество предметов j-го типа в рюкзаке.

Тогда математическая модель задачи такова:

(8.16)

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

xj -целое, i= 1,2,..., т. (8.17)

Задача о коммивояжере. Имеется (n + 1) город. Задана матрица

С = ||cij || расстояний между городами. Выезжая из исходного города Aij , коммивояжер должен побывать во всех остальных городах по одному разу и вернуться в город Аij. Требуется определить, в каком порядке следует объезжать города, чтобы суммарное пройденное расстояние было минимально.

Введем переменные:

Xij1, если коммивояжер переезжает из населенного пункта А, в Аj; хij - 0 - в противном случае.

Математическая модель задачи имеет следующий вид: найти

(8.19)

при условиях

; (8.20)

; (8.21)

, (8.22)

где ui, uj - произвольные целые и неотрицательные числа.

Условие (8.20) означает, что коммивояжер выезжает из каждого города один раз, а условие (8.21)- что он въезжает один раз в каждый город.

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

Покажем, что для любого цикла, начинающегося в Aij можно найти ui удовлетворяющие условию (8.22). Пусть ui =p, если коммивояжер посещает город Аi на р-м этапе. Отсюда следует, что

ui- иj ≤ п - 1 для всех i и j, и, таким образом, условие (8.22) выполняется при xij = 0.

При хij = 1 условие (8.22) выполняется как строгое равенство:

ui-uj+nxij=p-(p+1)+n = n-1.