Файл: пензенский государственный университет политехнический институт.docx
Добавлен: 30.11.2023
Просмотров: 196
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Основные положения, выносимые на защиту:
Эквивалентные преобразования моделей задач линейного программирования
Анализ моделей и алгоритмов решения задач о назначениях
Анализ эквивалентных преобразований моделей задач о назначениях
Модель и алгоритм решения задачи с приоритетными назначениями
Эквивалентные преобразования моделей задач линейного программирования
Преобразования модели задачи линейного программирования называют эквивалентными, если они не влекут изменения оптимального решения задачи. Эквивалентные преобразования моделей задачи линейного программирования состоят в следующем [1]:
-
смена направления целевой функции при изменении ее знака:
fmax (x) fmin (x) ;
-
преобразование i-го ограничения-неравенства в ограничение- равенство путем введения дополнительных неотрицательных неизвестных:
ai1x1 ai2 x2 ... ainxn bi ai1x1 ai2 x2 ... ainxn si bi, si 0;
-
замена в целевой функции и во всех ограничениях неизвестной, не подчиненной условию неотрицательности, разностью двух новых неотрицательных неизвестных:
xj
xq xp,
xj 0 xq 0,
x
p
0.
Вычислительный аппарат линейного программирования основан на эквивалентных преобразованиях моделей задач. Две модели полагают эквивалентными, если одна получена из другой с помощью эквивалентных преобразований. Задачи линейного программирования, модели которых получены с помощью эквивалентных преобразований, имеют одно и то же оптимальное решение либо обе не ограничены. Это означает, что если существует алгоритм нахождения оптимального решения одной из задач, то он может быть применен для решения эквивалентной ей.
-
Простейшая линейная модель задачи о назначениях и ее особенности
Задача о назначениях является частным случаем транспортной задачи, которая, в свою очередь, является задачей линейного программирования. В простейшей постановке задача о назначениях формулируется следующим образом. Имеется nработ, каждую из которых может выполнить любой из n
исполнителей. Известны трудовые затраты
cij
на выполнение i-м
исполнителем j-й работы,
cij 0
( i1, n,
j 1, n), Каждому исполнителю
может быть назначена только одна работа, и каждая работа может быть выполнена только одним исполнителем. Нужно распределить работы так, чтобы они были исполнены с минимальными затратами.
Математическая модель простейшей линейной задачи о назначениях имеет вид:
nn f(X) cijxij min, i1 j1 | (1) |
n xij 1, j 1, n, i1 | (2) |
n xij 1, i 1, n, j1 | (3) |
xij{0,1}, i, j 1, n, | (4) |
где
X (xij)
– матрица бинарного отношения R, описывающего
назначение исполнителю работы:
xij
1, если (i, j) R,
0, если (i, j) R.
Простейшей линейной модели задачи о назначениях присущи следующие особенности:
-
целевая функция стремится к минимуму; -
модель закрытая, т.е. количество работ равно количеству исполнителей;
-
матрица
X (xij)
бинарного отношения R, называемая матрицей
назначений, обладает тем свойством, что в каждой строке и в каждом столбце этой матрицы имеется ровно одна единица, остальные элементы матрицы являются нулями;
-
все элементы матрицы затрат С (сij)
неотрицательны;
-
ограничения задачи описываются только уравнениями; -
свободные члены всех уравнений равны единице.
Анализ алгоритмов решения простейшей линейной задачи о назначениях
Задача о назначениях, описываемая простейшей линейной моделью, относится к классу целочисленных задач линейного программирования, поэтому для ее решения можно использовать универсальные алгоритмы линейного и целочисленного программирования.
К универсальным алгоритмам линейного программирования относится симплекс-метод. Вычислительная процедура симплекс-метода основана на элементарных преобразования систем линейных уравнений и представляет собой последовательный перебор допустимых базисных решений. Существуют различные модификации симплекс-метода. В частности, симплексный метод с искусственным базисом применяется, когда затруднительно построить начальное допустимое базисное решение. В этом случае в базис вводят искусственные переменные, причем для дальнейшего удаления их из базиса последние вводятся в целевую функцию с достаточно большими по модулю отрицательными коэффициентами, которые имеют смысл штрафа за введение искусственных переменных. Двойственный симплекс-метод применяется, когда начальное базисное решение не удовлетворяет критерию допустимости в части неотрицательности значений неизвестных. Простейшая линейная задача о назначениях может быть решена с использованием алгоритмов решения транспортной задачи, частным случаем которой она является, например, метода потенциалов, который также является модификацией симплекс-метода.
Для нахождения решения простейшей линейной задачи о назначениях также могут быть использованы алгоритмы целочисленного программирования, в частности, метод ветвей и границ. Суть данного метода заключается в последовательном разбиении множества допустимых решений на подмножества, для каждого из которых определенным образом устанавливается оценка достижения экстремума. Поиск решения продолжается каждый раз в том подмножестве (по той ветке), в котором потенциально может лежать лучшее решение.
Описанные выше фундаментальные алгоритмы позволяют получить точное решение за конечное число итераций. Однако ввиду особой
структуры задачи о назначениях применение данных алгоритмов требует значительных временных затрат для задач большой размерности. Поэтому для нахождения оптимального решения задачи с простейшей линейной моделью обычно применяют стандартные алгоритмы, учитывающие специфику ее ограничений и целевой функции, например, венгерский метод и метод Мака.
Стандартные алгоритмы поиска оптимального решения задачи о назначениях базируются на ряде теорем.
Теорема 1. Оптимальное решение задачи о назначениях не изменится, если к любой строке или столбцу матрицы затрат C прибавить (или вычесть) постоянную величину.
Теорема 2. Пусть все элементы матрицы затрат C неотрицательны. Если с помощью эквивалентных преобразований матрицы затрат C можно построить новую матрицу с нулевыми элементами и эти нулевые элементы соответствуют допустимому решению, то такое решение будет оптимальным.
Сущность венгерского метода заключается в эквивалентных преобразованиях матрицы затрат, установленных теоремой 1, до тех пор, пока все подлежащие распределению назначения не попадут в клетки с нулевыми затратами (теорема 2). Венгерский метод – это эффективный полиномиальный метод решения. Вместе с тем венгерский метод основан на
довольно трудных и нетривиальных комбинаторных свойствах матриц (проведение минимального числа прямых, вычеркивающих нулевые элементы, само по себе является сложной оптимизационной задачей), в связи с чем его довольно трудно программировать.
Метод Мака имеет преимущество более простого интуитивного обоснования и предполагает в качестве начального допустимого базисного решения рассматривать минимальные элементы в каждой строке. Эквивалентные преобразования, установленные теоремой 1, используются, чтобы распределить минимальные элементы строк по разным столбцам, образуя оптимальный выбор [2]. Метод Мака чаще используется при решении задач о назначениях большой размерности, поскольку позволяет устранить проблемы, возникающие при реализации венгерского метода.
Разработана программа поиска решения простейшей линейной задачи о назначениях средствами математического пакета «Mathcad» (листинг 1).
Листинг 1 – Алгоритм поиска оптимального решения простейшей линейной задачи о назначениях