Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы оптимизации / КурсЛекций.doc
Скачиваний:
226
Добавлен:
04.06.2015
Размер:
12.28 Mб
Скачать

5.2 Задача о назначениях

Задача о назначениях заключается в таком выборе распределения ресурсов по объектам, при котором минимизируется стоимость назначений. Предполагается, что каждый ресурс назначается ровно один раз и каждому объекту приписывается ровно один ресурс.

Возможные применения задачи о назначениях можно видеть в таблице 5.7.

Таблица 5.7

Ресурсы

Объекты

Критерии эффективности

Рабочие

Рабочие места

Время

Грузовые автомобили

Маршруты

Затраты

Станки

Участки

Объем переработанной продукции

Экипажи

Рейсы

Время простоя

Коммивояжер

Города

Товарооборот

Матрица стоимостей имеет вид

,

где cij–затраты, связанные с назначением i-го ресурса на j-й объект, ij=1,…,n,; n – число объектов или ресурсов.

Обозначим

Таким образом, решение задачи можно записать в виде матрицы

.

Допустимое решение называется назначением. Оно строится путем выбора ровно одного элемента в каждой строке матрицы Х и ровно одного элемента в каждом столбце этой матрицы.

Математическая постановка задачи:

Задача о назначениях является частным случаем транспортной задачи, в которой аi=bj=1 ( i=1, … ,n; j=1, … ,n), поэтому ее можно решить с помощью метода потенциалов. Однако более эффективным является метод, учитывающий специфику математической модели и называемый венгерским методом. Рассмотрим его алгоритм:

  1. Цель данного шага – получение максимально возможного числа нулевых элементов в матрице С. Для этого из всех элементов каждой строки вычитается минимальный элемент соответствующей строки, а затем из всех элементов каждого столбца вычитается минимальный элемент соответствующего столбца.

  2. Если после выполнения первого шага в каждой строке и в каждом столбце матрицы С можно выбрать по одному нулевому элементу, то полученное решение будет оптимальным назначением.

  3. Если допустимое решение, состоящее из нулей, не найдено, то надо провести минимальное число прямых через некоторые столбцы и строки матрицы С так, что все нули оказались вычеркнуты. Выбрать наименьший невычеркнутый элемент, этот элемент вычесть из каждого невычеркнутого элемента и прибавить к каждому элементу, стоящему на пересечении проведенных прямых.

  4. Если после проведения третьего шага решения не будет найдено, то процедуру проведения прямых следует повторять до тех пор, пока не будет получено допустимое решение.

При применении рассмотренного алгоритма нужно иметь в виду следующее:

  • если исходная матрица С не является квадратной, то нужно ввести фиктивные ресурсы или фиктивные объекты так, чтобы матрица стала квадратной;

  • если какой либо ресурс не может быть назначен на какой-то объект, то соответствующая ему стоимость должна быть выбрана равной достаточно большому значению;

  • если исходная задача является задачей максимизации, то все элементы матрицы С следует умножить на (-1) и сложить их с достаточно большим числом так, чтобы матрица не содержала отрицательных элементов. Затем можно решить задачу минимизации;

  • если число линий, необходимое для того, чтобы вычеркнуть нулевые элементы, равно числу строк или столбцов квадратной матрицы, то существует назначение нулевой стоимости.

Контрольные вопросы

  1. Как открытую транспортную задачу свести к закрытой?

  2. Какими методами можно найти начальное допустимое решение для транспортной задачи?

  3. Каким образом при решении транспортной задачи методом потенциалов в текущей итерации находят вводимую в базис переменную?

  4. Каким образом в транспортной задаче в текущей итерации находят исключаемую из базиса переменную?

  5. Можно ли решить задачу о назначениях методом потенциалов?

  6. Если при решении задачи о назначениях венгерским методом при вычеркивании нулей окажется, что вычеркнуты все строки и столбцы, что это означает?

Соседние файлы в папке Методы оптимизации