Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Задачи для самостоятельного решенияПоиск на нашем сайте Задачи для самостоятельного решения 1. Найти с помощью алгоритма Басакера-Гоуэна и алгоритма Клейна поток величины m = 4 с минимальной стоимостью.
[1] 2 a a) t s
[2] 3 a с) t
4. ЗАДАЧИ О НАЗНАЧЕНИЯХ 4.1. Классическая задача о назначениях Задано n работ и n исполнителей, причем каждую из работ может выполнять любой из исполнителей. Стоимость выполнения i-ой работы j-ым исполнителем определяется величиной cij ≥ 0. Требуется распределить исполнителей на выполнение работ так, чтобы все работы были выполнены, каждый исполнитель выполнял только одну работу, и стоимость выполнения всех работ была бы минимальной. Построим математическую модель для данной задачи. Пусть
Тогда задача может быть сформулирована в виде следующей задачи булевого программирования:
Можно привести еще одну интерпритацию постановки задачи. Построим полный двудольный граф G=(V1UV2 , E), вершины первой доли которого соответсвуют исполнителям, второй – работам. Припишем ребру (vi , uj), vi Приведем алгоритм решения задачи, использующий в качестве вспомогательного алгоритм Форда-Фалкерсона нахождения максимального потока в сети. Начальный шаг. Находим в каждом строке матрицы стоимостей Легко показать, что решения задач для исходной и для приведенной матриц совпадают. Нулевые элементы приведенной матрицы называются допустимыми. Если бы можно было выбрать по одному нулевому элементу в каждом столбце и каждой строке, то это и было бы оптимальным назначением. Задачу выбора нулевых клеток можно решить с помощью алгоритма нахождения максимального потока. Шаг 1. Для приведенной матрицы строим сеть с (2n + 2)-мя вершинами: источником s, множеством вершин S = {s1 , … , sn}, соответсвующими строкам матрицы стоимостей, множеством вершин T = {t1 , …, tn}, соответсвующими столбцам матрицы стоимостей, и стоком t . Источник s соединяем дугой с каждой вершиной si , каждую вершину tj соединяем дугой со стоком t . Добовляем дугу (si, tj ) тогда и только тогда, когда Шаг 2. Находим максимальный поток в сети из s в t. Если величина найденного потока равна n, то решение задачи получено. В оптимальном назначении xij = 1 огда и только тогда, когда дуга (si, tj ) существует и поток по ней равен 1. Если максимальный поток меньше n, то переходим на шаг 3. Шаг 3. Необходимо преобразовать сеть, добавив какую-либо новую дугу (или дуги). Естественно, следует добавить такую дугу, которая увеличивала бы поток, а соответсвующий ей элемент Пусть при нахождении максимального потока на последнем шаге алгоритма вершины множества Шаг 4. Вычитаем элемент Шаг 5. Переходим к шагу 1 с матрицей, полученной на шаге 4. В результате работы алгоритма в матрице стоимостей на каждой итерации появляется хотя бы один новый ноль (на месте элементов равных Пример.Решить задачу о назначении со следующей матрицей стоимостей:
Начальный шаг. Приводим матрицу С сначала по строкам, затем − по столбцам. Приведенная матрица C’ имеет вид
Итерация 1. Строим для приведенной матрицы C’ сеть
Пропускные способности всех дуг полагаем равными 1. Находим максимальный поток в полученной сети. На последней итерации алгоритма Форда-Фалкерсона получим: s s1 s2 s3 s4 t1 t2 t3 t4 t v (-,∞) (t4-,1)
(s+,1) (s+,1)
(s3+,1)
Значение максимального потока v = 2. Это меньше 4, поэтому необходимо преобразовать сеть. Имеем: S “ = {1, 3, 4}, T “= {1, 2, 3}. Находим
Итерация 2. Получим следующую сеть:
Находим максимальный поток в сети. На последней итерации алгоритма Форда-Фалкерсона получим: s s1 s2 s3 s4 t1 t2 t3 t4 t v (-,∞) (t4-,1)
(s+,1)
(s3+,1)
Имеем: v = 3 < 4, S ” = {1,3}, T”= {1,2,3}. Находим
Итерация 3. Строим сеть. Максимальный поток в сети равен 4. Следовательно, решение получено. На сети соответствующие дуги с единичным потоком выделены. Получаем назначение: x12 = 1, x23 = 1, x34 = 1, x41 = 1. Значение целевой функции равно 13. Примечания. 1. Можно рассматривать задачу о назначениях, в которой количество исполнителей больше числа работ. В этом случае матрицу дополняют нулями до квадратной матрицы и решают задачу обычным методом. 2. В некоторых случаях задачу о назначении необходимо решать на максимум. Тогда поступают следующим образом: находят
|
||
|
Последнее изменение этой страницы: 2024-07-06; просмотров: 41; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.176 (0.008 с.) |