
- •Лекция 3. Математическое программирование
- •3.1. Структура оптимизационных задач
- •3.2. Содержательные постановки задач, приводящие к моделям линейного программирования.
- •3.3. Математические постановки задач, приводящие к моделям линейного программирования
- •Лекция 7. Содержательные постановки задач линейного программирования. Методы решения задач линейного программирования
- •7.1. Численные методы математического программирования
- •Лекция 4. Решение задач линейного программирования симплекс-методом
- •Лекция 5. Двойственная задача линейного программирования
- •Лекция 7. Транспортные задачи линейного программирования
- •7.1. Постановка задачи
- •7.2. Методы составления начального опорного плана
- •7.3. Понятие потенциала и цикла
- •7.4. Критерий оптимальности базисного решения транспортной задачи. Методы отыскания оптимального решения
- •8.5. Усложненные задачи транспортного типа
- •Лекция 8. Задача о назначениях
- •Дискретное программирование.
- •8.1. Постановка задачи дискретного программирования
- •8.2. Математические модели задач дискретного программирования
- •8.3. Метод ветвей и границ для задачи целочисленного программирования
Дискретное программирование.
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), то задача называется полностью целочисленной, в противном случае, если J≠N - частично целочисленной.
Задача о ранце. Одной из наиболее распространенных задач целочисленного программирования является так называемая задача о ранце.
Рассмотрим постановку данной задачи. Турист готовится к длительному переходу в горах. В рюкзаке он может нести груз, масса которого не более W. Этот груз может включать в себя п видов предметов, каждый предмет типа j, массой wj ,j= 1,2,..., n. Для каждого вида предмета турист определяет его ценность Ej во время перехода. Задача заключается в определении количества предметов каждого типа, которые он должен положить в рюкзак, чтобы суммарная ценность снаряжения была максимальной.
Обозначим через хj количество предметов j-го типа в рюкзаке.
Тогда математическая модель задачи такова:
(8.16)
при ограничениях
xj
-целое,
i=
1,2,..., т.
(8.17)
Задача о коммивояжере. Имеется (n + 1) город. Задана матрица
С = ||cij || расстояний между городами. Выезжая из исходного города Aij , коммивояжер должен побывать во всех остальных городах по одному разу и вернуться в город Аij. Требуется определить, в каком порядке следует объезжать города, чтобы суммарное пройденное расстояние было минимально.
Введем переменные:
Xij — 1, если коммивояжер переезжает из населенного пункта А, в А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.