
- •1 Определение и математическая формулировка.
- •2.1 Примеры задач целочисленного программирования.
- •3.Задача о гармоничном составе экспедиции
- •4. Задачи с многократными альтернативами
- •5.1 Задачи цп: порожденные задачи, ослабленные задачи (задачи с ослабленными ограничениями), общая схема решения.
- •6.1 Метод отсекающих плоскостей: постановка и общая схема решения, метод Гомори для полностью целочисленных задач лп.
- •6.2 Метод Гомори (алгоритм отсечения)
- •8. Метод ветвей и границ.
- •9. Построение ослабленных задач
- •10. Практические аспекты решения задач целочисленного программирования
3.Задача о гармоничном составе экспедиции
1. Задача о гармоничном составе экспедиции
Группа исследователей намеревается отправиться в экспедицию, причём желательно, чтобы количество участников было максимально. Однако, некоторые из них не ладят друг с другом, и если одно из лиц, входящих в конфликтную пару, отправится в экспедицию, то другому придётся остаться дома.
Такую задачу чаще всего формулируют как задачу “0-1”, если переменные определяется следующим образом: =1, если j-е лицо отправляется в экспедицию, =1, если j-е лицо не отправляется в экспедицию.
Тогда задача формулируется так:
Максимизировать
ц.ф.
При ограничении
Где h, k – пары конфликтующих лиц.
,
- целое.
Существует
обобщённая задача, в которой каждому
лицу j
вводится в соответствие оценка полезности
,
и тогда ц.ф. (которая, кстати, максимизируется)
выглядит так:
.
Существует ещё одно обобщение этой задачи. Считается, что несовместная группа состоит из множества лиц, тогда если S – множество несовместных лиц, а |S| - число элементов этого множества, то обобщение задачи достигается добавлением ограничения следующего вида:
,
что
означает, что по крайней мере одно из
лиц, входящее в конфликтную группу,
должно остаться дома.
Задача об эффективной экспедиции
В этой задаче стараются минимизировать количество участников экспедиции. Однако экспедиции предстоит выполнить несколько обязательных работ, поэтому для её успеха необходимо, чтобы для каждой из таких работ в составе экспедиции было хотя бы одно лицо, которое может эту работу выполнить.
Определим
так же как в предыдущей задаче, а через
обозначим множество лиц, способных
выполнить i
-ю работу,
тогда задача формулируется так:
Минимизировать
ц.ф.
При ограничении
,
- целое.
Задача о доставке
Цель состоит в выборе такого количества маршрутов, при котором обслуживается каждый клиент, и суммарная длина маршрута, а следовательно и стоимость перевозки, была минимальна. При этом на каждом маршруте работает только одно транспортное средство.
Пусть = 1, если j-й маршрут выбран, = 0, если нет.
Сформируем матрицу
,
каждый j
–й столбец которой имеет элементы
,
если клиент обслуживается на маршруте
и
,
если не обслуживается.
Тогда если обозначить
через
стоимость
доставки по маршруту j,
вся задача формулируется следующим
образом:
Минимизировать ц.ф. вида:
При ограничениях
И при условии
и целое.
При этом - единичный вектор.
Пусть количество единиц транспорта не больше k, тогда к задаче добавляется ограничение
.
Стандартная формулировка задачи предполагает:
что в матрице нет полностью нулевых столбцов (т.е. маршрут обслуживает хотя бы одного клиента).
Равенство означает, что каждый клиент обслуживается раз в день.
4. Задачи с многократными альтернативами
Пусть в задаче существуют следующие ограничения:
…
Предположим, что из существующих групп ограничений по крайней мере q должны выполняться, а остальные (r-q) могут соблюдаться или нет.
Поставим в
соответствие каждому вектору
некоторый вектор
такой же размерности (размерность
векторов для различных k
может быть разной).
Компоненты вектора
должны иметь достаточно большую величину,
чтобы для всех векторов
в рассматриваемой задаче всегда
выполнялось следующее соотношение:
Тогда ограничение
,
(***)
где
- булева переменная,
будет иметь вид:
,
если
. (*)
и
,
если
. (**)
Для того, чтобы
выполнялись хотя бы q
неравенств вида (*), по крайней мере q
переменных
должны иметь нулевое значение. Этого
добиваются, вводя ограничение вида
(***) для
,
а так же условия:
,
причём в последнем выражении знак можно заменить на =, что сути задачи не изменит.
Задача с булевыми переменными и полиномиальными функциями
Найти минимум
целевой функции вида:
при
ограничениях вида:
;
0
или 1 для всех i.
Здесь
и
– полиномы.
Полиномы и можно заменить эквивалентной задачей ЛП с булевыми переменными следующим образом:
а) Все ненулевые
переменной
заменить на первую степень.
б) Каждое произведение
вида
заменить булевой переменной
,
которая должна удовлетворять условиям:
и
.
Здесь |Q|
-- число элементов в множестве Q.
Вычислив эту переменную мы и получим задачу ЛП.
Задачи ЦП с ограниченными переменными. Задачи ЦП с булевыми переменными
Допустим, что на
каждую целочисленную
переменную
исходной задачи наложено ограничение
,
при этом Uj
– конечное
число. Тогда
можно заменить линейным выражением
вида:
,
где каждая переменная
является булевой переменной, а r
– равно единственному числу, для которого
.
Широко используются ещё два способа замены целочисленной переменной взвешенной суммой булевых переменных. При этом все веса либо принимаются равными 1, что приводит к обычной сумме различных переменных, число которых равно Uj , либо считаются положительными числами вида 1, 2, 3, … , Uj и вводится дополнительное ограничении, в соответствии с которым сумма булевых перменных, ассоциированных с этими весами на должна превышать 1.