Автор работы: Пользователь скрыл имя, 10 Декабря 2011 в 21:15, курсовая работа
Математическая постановка задачи.
Дана неотрицательная матрица размера n×n, где элемент в i-й строке и j-ом столбце соответствует объемам продаж в j-м магазине i-м продавцом. Нужно найти такое соответствие работников магазинам, чтобы максимизировать объем продаж.
Тестовый пример.
1. Постановка задачи ……………………………………………………………..2
2. Описание алгоритма …………………………………………………………...3
3. Решение поставленной задачи……………………………………………….. 6
4. Выводы по проделанной работе ……………………………………………..14
5. Список использованной литературы……………………………………….. 15
Шаг 5: Вычитаем минимальный элемент из каждого элемента соответствующего столбца, получим:
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
А | 9 | 0 | 7 | 6 | 3 | 11 | 11 |
Б | 2 | 9 | 10 | 4 | 7 | 4 | 0 |
В | 3 | 5 | 0 | 4 | 4 | 5 | 1 |
Г | 5 | 0 | 1 | 9 | 6 | 0 | 0 |
Д | 0 | 1 | 0 | 3 | 0 | 2 | 7 |
Е | 3 | 2 | 0 | 2 | 2 | 1 | 6 |
Ж | 3 | 5 | 4 | 0 | 5 | 0 | 5 |
Этап
2
Шаг 6: Найдем строку, содержащую только одно нулевое значение, и пометим эту клетку. (Если такие строки отсутствуют, допустимо начать с любого нулевого значения.). В данном случае это строка А, помечаем клетку А2, зачеркиваем нулевое значение в столбце 2, т.е. Г2.
Далее делаем аналогично. Берем
строку с одним нулевым
Берем строку с одним нулевым
элементом В и помечаем
Рассмотрим строку Г: т.к.
Строка Д имеет три нулевых значений, а строка Е имеет только один ноль, но он вычеркнут. Переходим к строке Ж: Ж6 вычеркнута, поэтому помечаем единственный оставшийся ноль Ж4. Т.к в столбце 4 больше нет нулевых значений, то ничего не вычеркиваем.
Видим, что таблице остались незачеркнутые нули. Тогда выбираем строку с единственным нулевым значением, в данном случае 1. Помечаем ноль Д1, а оставшееся нулевое значение в строке Д5 вычеркиваем.
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
А | 9 | 0 | 7 | 6 | 3 | 11 | 11 |
Б | 2 | 9 | 10 | 4 | 7 | 4 | 0 |
В | 3 | 5 | 0 | 4 | 4 | 5 | 1 |
Г | 5 | 1 | 9 | 6 | 0 | ||
Д | 0 | 1 | 3 | 2 | 7 | ||
Е | 3 | 2 | 2 | 2 | 1 | 6 | |
Ж | 3 | 5 | 4 | 0 | 5 | 5 |
На данном
этапе мы можем осуществить только
шесть нулевых назначения, тогда
как требуемое их количество равно
семи. Полученное распределение является
недопустимым. Переходим к этапу
3.
Этап
3
Шаг 7: Проведем минимальное количество прямых, проходящих через нулевые значения. Прямые можно проводить по столбцам, по строкам, но не по диагонали:
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
А | 6 | 0 | 7 | 6 | 3 | 11 | 11 |
Б | 2 | 9 | 10 | 4 | 7 | 4 | 0 |
В | 3 | 5 | 0 | 4 | 4 | 5 | 1 |
Г | 5 | 1 | 9 | 6 | 0 | ||
Д | 0 | 1 | 3 | 2 | 7 | ||
Е | 3 | 2 | 2 | 2 | 1 | 6 | |
Ж | 3 | 5 | 4 | 0 | 5 | 5 |
Шаг 8: Найдем минимальный элемент из тех, через которые не проходят прямые. В данном случае это единица. Вычитаем это минимальное значение из каждого элемента, через который не проходят прямые (А1-В1, Е1, А4:В6, Е4-Е6), прибавляем минимальное значение к элементам, которые расположены на пересечении прямы (Г2, Д2, Ж3 и т.п.),а остальные элементы оставляем без изменения. Получим такую таблицу:
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
А | 5 | 0 | 7 | 5 | 2 | 10 | 11 |
Б | 1 | 9 | 10 | 3 | 6 | 3 | 0 |
В | 2 | 5 | 0 | 3 | 3 | 4 | 1 |
Г | 5 | 1 | 2 | 9 | 6 | 0 | 1 |
Д | 0 | 2 | 1 | 3 | 0 | 2 | 8 |
Е | 2 | 2 | 0 | 1 | 1 | 0 | 6 |
Ж | 3 | 6 | 5 | 0 | 5 | 0 | 6 |
В результате
применения данной процедуры в таблице
появляется один новый ноль. Необходимо
возвратиться к этапу 2 и повторять
алгоритм до тех пор, пока не будет
получено оптимальное решение.
Шаг 9 (аналогичен шагу 6 этапа 2): Рассмотрим строку с единственным нулевым значением А, пометим клетку А2; т.к. в столбце 2 больше нет нулевых значений перейдем к следующей строке.
Смотрим строку Б и помечаем элемент Б7, больше нулевых элементов в 7 столбце нет.
Рассмотрим строку В, пометим нулевой элемент В3, вычеркнем нулевой элемент Е3, стоящей в 3 столбце.
Рассмотрим строку Г, помечаем ноль Г6, вычеркиваем нули Е6 и Ж6.
В строке Д два нулевых
Осталась строка Д, т.к. там
два нулевых значения, то выбираем
столбец в одним нулевым
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
А | 5 | 0 | 7 | 5 | 2 | 10 | 11 |
Б | 1 | 9 | 10 | 3 | 6 | 3 | 0 |
В | 2 | 5 | 0 | 3 | 3 | 4 | 1 |
Г | 5 | 1 | 2 | 9 | 6 | 0 | 1 |
Д | 0 | 2 | 1 | 3 | 0 | 2 | 8 |
Е | 2 | 2 | 0 | 1 | 1 | 0 | 6 |
Ж | 3 | 6 | 5 | 0 | 5 | 0 | 6 |