
- •Содержание
- •Введение
- •Тема 1 Введение в линейное программирование
- •1.1 Исторический экскурс
- •1.2 Ограничения в модели линейного программирования
- •1.3 Графическое решение задачи линейного программирования
- •1.4 Графический анализ чувствительности
- •1.4.1 Изменение коэффициентов целевой функции
- •1.4.2 Стоимость ресурсов
- •Контрольные вопросы
- •Тема 2 Симплекс-метод
- •2.1 Общая постановка задачи линейного программирования
- •2.2 Некоторые свойства планов
- •2.3 Алгоритм симплекс-метода
- •Контрольные вопросы
- •Тема 3 Двойственная задача и анализ чувствительности
- •3.1 Постановка двойственной задачи
- •3.2 Основные теоремы о двойственности
- •3.3 Решение двойственных задач
- •3.4 Двойственный симплекс-метод
- •Контрольные вопросы
- •Тема 4 Анализ чувствительности оптимального решения
- •4.1 Матричное представление симплекс-таблиц
- •Анализ чувствительности
- •4.2.1 Изменения, влияющие на допустимость решения
- •4.2.2 Изменения, влияющие на оптимальность решения
- •Контрольные вопросы
- •Тема 5 Целочисленное линейное программирование
- •5.1 Метод ветвей и границ
- •Пример 5.1
- •5.2 Метод отсекающих плоскостей
- •Пример 5.2
- •6.1.2 Интерпретация метода потенциалов как симплекс-метода
- •6.1.3 Определение начального решения
- •6.1.4 Метод потенциалов
- •6.2 Задача о назначениях
- •Контрольные вопросы
- •Тема 7 Основы сетевого планирования
- •7.1 Основные понятия теории графов
- •Пример 7.1 График реконструкции промышленного цеха
- •7.2 Метод критического пути
- •Построение временного графика
- •Определение запасов времени
- •Контрольные вопросы
- •Тема 8 Задача о максимальном потоке
- •8.1 Постановка задачи о максимальном потоке
- •8.2 Решение задачи о максимальном потоке. Алгоритм Фалкерсона
- •8.3 Алгоритм Эдмондса-Карпа
- •Контрольные вопросы
- •Приложение а
- •Библиографический список
- •Заключение
6.2 Задача о назначениях
Задача о назначениях заключается в таком выборе распределения ресурсов по объектам, при котором минимизируется стоимость назначений. Предполагается, что каждый ресурс назначается ровно один раз и каждому объекту приписывается ровно один ресурс.
Возможные применения задачи о назначениях можно видеть в таблице 6.7.
Таблица 6.7
Ресурсы |
Объекты |
Критерии эффективности |
Рабочие |
Рабочие места |
Время |
Грузовые автомобили |
Маршруты |
Затраты |
Станки |
Участки |
Объем переработанной продукции |
Экипажи |
Рейсы |
Время простоя |
Коммивояжер |
Города |
Товарооборот |
Матрица стоимостей имеет вид
,
где cij – затраты, связанные с назначением i-го ресурса на j-й объект, i, j=1,…,n,; n – число объектов или ресурсов.
Обозначим
Таким образом, решение задачи можно записать в виде матрицы
.
Допустимое решение называется назначением. Оно строится путем выбора ровно одного элемента в каждой строке матрицы Х и ровно одного элемента в каждом столбце этой матрицы.
Математическая постановка задачи:
Задача о назначениях является частным случаем транспортной задачи, в которой аi=bj=1 ( i=1, … ,n; j=1, … ,n), поэтому ее можно решить с помощью метода потенциалов. Однако более эффективным является метод, учитывающий специфику математической модели и называемый венгерским методом. Рассмотрим его алгоритм:
Цель данного шага – получение максимально возможного числа нулевых элементов в матрице С. Для этого из всех элементов каждой строки вычитается минимальный элемент соответствующей строки, а затем из всех элементов каждого столбца вычитается минимальный элемент соответствующего столбца.
Если после выполнения первого шага в каждой строке и в каждом столбце матрицы С можно выбрать по одному нулевому элементу, то полученное решение будет оптимальным назначением.
Если допустимое решение, состоящее из нулей, не найдено, то надо провести минимальное число прямых через некоторые столбцы и строки матрицы С так, что все нули оказались вычеркнуты. Выбрать наименьший невычеркнутый элемент, этот элемент вычесть из каждого невычеркнутого элемента и прибавить к каждому элементу, стоящему на пересечении проведенных прямых.
Если после проведения третьего шага решения не будет найдено, то процедуру проведения прямых следует повторять до тех пор, пока не будет получено допустимое решение.
При применении рассмотренного алгоритма нужно иметь в виду следующее:
если исходная матрица С не является квадратной, то нужно ввести фиктивные ресурсы или фиктивные объекты так, чтобы матрица стала квадратной;
если какой либо ресурс не может быть назначен на какой-то объект, то соответствующая ему стоимость должна быть выбрана равной достаточно большому значению;
если исходная задача является задачей максимизации, то все элементы матрицы С следует умножить на (-1) и сложить их с достаточно большим числом так, чтобы матрица не содержала отрицательных элементов. Затем можно решить задачу минимизации;
если число линий, необходимое для того, чтобы вычеркнуть нулевые элементы, равно числу строк или столбцов квадратной матрицы, то существует назначение нулевой стоимости.