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

Пример. Задача целочисленного линейного программирования ( ЦЛП ).

Задачей ЦЛП называют следующую задачу оптимизации:

Постановки задач целочисленного программирования - student2.ru Постановки задач целочисленного программирования - student2.ru Постановки задач целочисленного программирования - student2.ru - целочисленно.

Здесь Постановки задач целочисленного программирования - student2.ru , Постановки задач целочисленного программирования - student2.ru , Постановки задач целочисленного программирования - student2.ru . Элементы матрицы Постановки задач целочисленного программирования - student2.ru и векторов Постановки задач целочисленного программирования - student2.ru и Постановки задач целочисленного программирования - student2.ru предполагаются целыми. На рис.1 приведен пример двумерной задачи ЦЛП.

Постановки задач целочисленного программирования - student2.ru

Рис.1. Четыре целочисленные точки, ближайшие к оптимуму задачи ЛП, недопустимы.

В некоторых приложениях дробные решения недопустимы, например, в приложении, где Постановки задач целочисленного программирования - student2.ru - число самолетов, назначаемых на маршрут Постановки задач целочисленного программирования - student2.ru . Задачи ЛП, формулируемые как задачи ЦЛП, как правило, по своей природе не допускают подхода, основанного на округлении. Один из эффектов округления - это потеря допустимости решения (см. рис.1).

Пример. (Задача коммивояжера (ЗК)). Коммивояжеру необходимо объехать Постановки задач целочисленного программирования - student2.ru городов Постановки задач целочисленного программирования - student2.ru , начиная с города 1, и посещая каждый город ровно 1 раз, по самому короткому маршруту.

Обозначим Постановки задач целочисленного программирования - student2.ru матрицу расстояний между городами. Сопоставим дуге Постановки задач целочисленного программирования - student2.ru переменную Постановки задач целочисленного программирования - student2.ru и, положив Постановки задач целочисленного программирования - student2.ru , если дуга Постановки задач целочисленного программирования - student2.ru содержится в обходе, и Постановки задач целочисленного программирования - student2.ru в противном случае, можно сформулировать ЗК следующим образом:

Постановки задач целочисленного программирования - student2.ru

(a) Постановки задач целочисленного программирования - student2.ru Постановки задач целочисленного программирования - student2.ru (4.1.1)

(б) Постановки задач целочисленного программирования - student2.ru Постановки задач целочисленного программирования - student2.ru

Постановки задач целочисленного программирования - student2.ru - целые Постановки задач целочисленного программирования - student2.ru

Равенства (а) выражают тот факт, что в каждую вершину входит ровно одна дуга, а равенства (б) - тот факт, что из каждой вершины выходит ровно одна дуга.

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

Наши рекомендации