Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
YYYYYY_YY_YY_1.doc
Скачиваний:
11
Добавлен:
03.03.2016
Размер:
242.69 Кб
Скачать

Задачи о назначении.

Пусть имеются m исполнителей которые должны быть назначены на выполнение n работ.

Известна матрица C. С – затраты при назначении i – исполнителя на выполнение j – вида работ C = Cij

Произвести назначение таким образом, чтобы каждый исполнитель выполнял только 1 работу, и каждая работа выполнялась только 1 исполнителем. При этом затраты должны быть минимальными.

Возможные постановки:

Ai – Экономисты. (i = 1,m) Bj – Работа. (j = 1,n) Cij – Затраты.

Ai – Строительные механизмы. Bj –Площади. Cij – производительность.

Математическая модель.

Предположим m=n. Введем целочисленное обозначение пусть Xij 1- i-ый на j—ю , 0 в противном случае. Получим матрицу из элементов 0 и 1. Так как исполнитель может быть назначен на одну работу и одна работа может быть выполнена только одним исполнителем в каждой строке и столбце только одна 1. Система ограничение все = 1 (по строкам и столбцам) Х –(0 ;1) Z=двойная сумма СijXij ->min =>Задача о назначениях является частной Т.З. , где ai и bj=1 причем r=m+n-1=2n-1>n –решение всегда выраждена.

Теоремы на которых основаны решения задачи о Назначениях.

Т. Кенинга Если элементы матрицы С, разделить на два класса , на основании свойства R , то минимальное число линий содержащих все элементы со свойством R = максимальному числу таких элементов со свойством R, не какие два из которых не лежат на одной прямой.

Теорема: Решения задачи о назначениях не изменится если к матрице прибавить или отнять из каждого столбца иил каждой строки одно и тоже число.

С=¦Сij¦

C1=¦Cij-Ui+Vj¦ - док-ть что Х не изменится.

Z1(X)=(Cij-Ui+Vj)Xij=CijXij-UiXij+VjXij=Z(x)-UiXij +VjXij = > Z1(x)=Z(x)- Ui+Vj – очевидно что решение не изменилосьXij=1

Изменилось только значение функции

  1. Если можно найти такую матрицу назначений функции Х, для которой значение функции Z будет равно=0 то Х является оптимальным решением данной задачи. Если Xij>=0; Сij>=0, то произведение их Сij*Xij>=0 сумма их тоже >=0. Очевидно что самое минимальное число 0, Х – будет являться решением задачи. => назначение производится по 0.

Алгоритм решения.

  1. Все действия выполняются с матрицей С

  2. Из каждой строки матрицы вычитается минимальный элемент этой строки

  3. Так же и столбец

  4. Минимальным числом линий вычеркиваем все 0, если число линий = n то произодим назначение.

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

Задача коммивояжера.

Постановка задачи:

Известно что комиваяжер выезжает из города и должен посетить A1, A2, A3,…, AKгородов и вернутся в город A1. Известно расстояние Cij между городами Ai – Bj причем известно CijCji.

Cij = Cjj = . Спланировать маршрут таким образом, чтобы расстояние L для этого маршрута (I1, I2 , I3,…, Ik) было кротчайшим.

Математическая модель этой задачи:

х11+х12+…+х1k =1

x21+x22+…+x2k =1

xk1+xk2+…+xkk = 1

x11+ +x21 +xk1 = 1

x12+ x22+ xk2 = 1

x1k+ x2k+ +xkk = 1

Z = CijXijmin

Маршрут – это цикл.