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

3. Задачи, продолжающие тему линейного программирования

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

3.1. Задача об оптимальных назначениях

3.1.1. Постановка задачи. В составе фирмы имеются n работников, которых предполагается назначить на выполнение m работ, в общем случае n m. Если n>m, менеджер фирмы ранжирует работников по их квалификации по всем m работам. На каждую j-ую работу назначается работник с наивысшей квалификацией по этой работе, остальные (nm) работников увольняется.

Если n<m, исходя из тех же соображений некоторых работников можно назначить на выполнение нескольких работ, объявив их одной большой работой.

Приходим к оставшемуся варианту, когда = m, n работников фактически надо назначить на выполнение m работ, но так, чтобы суммарная эффективность их работы для фирмы была наибольшей. При этом предполагается, что каждый работник может выполнять любую работу, но с различными эффективностями. Для определённости положим работу производственной, имеющей утверждённые нормативы выработки. Тогда эффективность работы будем считать производительностью труда. Можно построить квадратную матрицу А производительностей труда:

,

- производительность труда i-го работника при выполнении j-ой работы

Надо найти такой набор из n элементов матрицы А, сумма которых будет наибольшей. Но не всякий набор из n элементов нас устроит. По смыслу каждый работник должен выполнять одну работу, каждая работа выполняется одним работником. Если вдуматься в эти требования, то они означают: никакие два элемента из набора не должны находиться в одной строке или в одном столбце. В математике такой набор называется множеством из независимых элементов. Например, матрица порядка 3 имеет 6 различных множеств независимых элементов:

Квадратная матрица порядка n имеет n! различных множеств независимых элементов.

3.1.2. Решение задачи об оптимальных назначениях. Эта задача может быть трансформирована в стандартную задачу линейного программирования. Она также решается методами теории графов. Известны специальные алгоритмические методы решения, например, метод Эгервари. Учитывая современные возможности компьютерной техники и программирования, предпочтительно решать её методом прямого организованного перебора всех множеств независимых элементов.

Рассмотрим сущность метода на примере матрицы производительностей труда порядка 4. Будем перебирать подряд все элементы, например, первой строки матрицы, полагая их первыми элементами множеств независимых элементов. Пусть выбран первый элемент первой строки. Тогда другие элементы множества независимых элементов, включающего этот элемент, не могут находиться в первой строке или в первом столбце исходной матрицы. Для перебора других элементов множества независимых элементов остаётся подматрица порядка 3 исходной матрицы. Повторим ту же процедуру к первой строке подматрицы порядка 3, получим 3 подматрицы порядка 2. Каждая подматрица порядка 2 имеет только 2 множества независимых элементов. Таким образом, для первого элемента первой строки исходной матрицы получили 6 различных множеств независимых элементов.

Теперь выбираем второй элемент первой строки исходной матрицы. Удаляя из неё первую строку и второй столбец, получаем подматрицу порядка 3, к которой применяем ту же процедуру. Получаем новые 6 множеств независимых элементов. Перебрав все 4 элемента первой строки исходной матрицы, имеем 24 различных множеств независимых элементов.

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

Итак:

“Звёздочками” (*) отмечены наибольшие значения суммы по каждой из четырёх групп множеств независимых элементов. Наибольшее значение суммы равно 30 для набора (9,6,8.7). Этот набор чисел образуют элементы, находящиеся на определённых местах в матрице А производительностей труда. Фиксируя места (номера строк и столбцов):

,

получаем возможность сформулировать решение задачи об оптимальных значениях:

- первый работник назначается на выполнение второй работы;

- второй работник назначается на выполнение первой работы;

- третий работник назначается на выполнение третьей работы;

- четвёртый работник назначается на выполнение четвёртой работы.