- •Системный анализ и принятие решений
- •14.1. Постановка задачи 87
- •Лекция 1. Введение в методологию системного анализа
- •1.1. Предмет и содержание курса. Основные определения
- •1.2. Классификация систем
- •1.3. Сущность системного подхода
- •Лекция 2. Задачи системного анализа
- •2.1. Характеристика задач системного анализа
- •Внедрение результатов анализа.
- •2.2. Основные приемы формализации задач системного анализа
- •2.3. Внедрение результатов анализа
- •2.4. Примеры задач системного анализа
- •Методика по Оптнеру
- •Лекция 3. Основные понятия и определения теории принятия решений
- •3.1. Основные принципы теории принятия решений
- •3.2. Постановка задач принятия оптимальных решений
- •3.3. Этапы принятия решений
- •Лекция 4. Построение (выбор) моделей системы
- •4.1. Классификация видов моделирования систем
- •4.2. Возможности и эффективность моделирования систем на вычислительных машинах
- •Лекция 5. Математическое программирование
- •5.1. Структура оптимизационных задач
- •5.2. Математические постановки задач, приводящие к моделям линейного программирования
- •Лекция 6. Содержательные постановки задач линейного программирования. Методы решения задач линейного программирования
- •6.1. Содержательные постановки задач, приводящие к моделям линейного программирования.
- •6.2. Численные методы математического программирования
- •Лекция 7. Решение задач линейного программирования симплекс-методом
- •Симплекс-таблица
- •Лекция 8. Двойственная задача линейного программирования
- •Лекция 9. Транспортные задачи линейного программирования
- •9.1. Постановка задачи
- •9.2. Методы составления начального опорного плана
- •9.3. Понятие потенциала и цикла
- •9.4. Критерий оптимальности базисного решения транспортной задачи. Методы отыскания оптимального решения
- •8.5. Усложненные задачи транспортного типа
- •Лекция 10. Дискретное программирование.
- •10.1. Постановка задачи дискретного программирования
- •10.2. Математические модели задач дискретного программирования
- •10.3. Метод ветвей и границ для задачи целочисленного программирования
- •Лекция 11. Нелинейное программирование
- •11.1. Постановка задачи нелинейного программирования
- •11.2.Решение задач нелинейного программирования в системе matlab
- •Лекция 12. Динамическое программирование
- •Лекция 13. Принятие решений в условиях неопределенности. Введение в матричные игры.
- •14.1. Основные понятия теории игр. Введение в матричные игры
- •14.2. Формальное описание матричной антагонистической игры
- •Лекция 14. Решение игр в смешанных стратегиях
- •14.1. Постановка задачи
- •14.2. Основные понятия теории статистических решений
- •15.3. Выбор критерия принятия решения
- •14.3.1. Критерий Лапласа
- •15.3.2. Критерий Вальда
- •14.3.3. Критерий Гурвица
- •14.3.4. Критерий Cэвиджа
Лекция 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), то задача называется полностью целочисленной, в противном случае, если J≠N - частично целочисленной.
Задача о ранце. Одной из наиболее распространенных задач целочисленного программирования является так называемая задача о ранце.
Рассмотрим постановку данной задачи. Турист готовится к длительному переходу в горах. В рюкзаке он может нести груз, масса которого не более 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. Требуется определить, в каком порядке следует объезжать города, чтобы суммарное пройденное расстояние было минимально.
Введем переменные:
Xij — 1, если коммивояжер переезжает из населенного пункта А, в А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.
