Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_САиПР_2012_2013_к зачету.doc
Скачиваний:
25
Добавлен:
01.03.2025
Размер:
2.35 Mб
Скачать

Лекция 10. Дискретное программирование.

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

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

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

Найти

при условиях

(10.12)

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

Если множество D является конечным или счетным, то условие (10.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) методы случайного поиска и эвристические методы.

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

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

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

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

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

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

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

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

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

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

(10.13)

при

(10.14)

(10.15)

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

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

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

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

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

(10.16)

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

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

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

Одной из наиболее простых задач этого класса является задача о назначениях: найти такую перестановку (р1,р2,..., рn) из чисел 1,2,3,...,n,

при которой обеспечен по всем перестановкам (р1,р2,..., рn). Каждая такая перестановка может быть представлена точкой в п2- мерном евклидовом пространстве или в виде матрицы Хп

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

Хij = 1, если i-и механизм предназначен для jработы; хij = 0 — в противном случае.

Очевидно, что должно выполняться условие

(10.18)

Данные ограничения означают, что один механизм может быть предназначен для выполнения только одной работы. Тогда задача будет состоять в определении таких чисел ij}, при которых достигается минимум функционала min при ограничениях (10.18).

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

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

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

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

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

(10.19)

при условиях

; (10.20)

; (10.21)

, (10.22)

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

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

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

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

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

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

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