Математическое моделирование экономики

Автор работы: Пользователь скрыл имя, 10 Декабря 2011 в 21:15, курсовая работа

Описание работы

Математическая постановка задачи.
Дана неотрицательная матрица размера n×n, где элемент в i-й строке и j-ом столбце соответствует объемам продаж в j-м магазине i-м продавцом. Нужно найти такое соответствие работников магазинам, чтобы максимизировать объем продаж.
Тестовый пример.

Содержание работы

1. Постановка задачи ……………………………………………………………..2
2. Описание алгоритма …………………………………………………………...3
3. Решение поставленной задачи……………………………………………….. 6
4. Выводы по проделанной работе ……………………………………………..14
5. Список использованной литературы……………………………………….. 15

Файлы: 1 файл

курсовая ммэ.doc

— 259.50 Кб (Скачать файл)

Содержание 

1. Постановка  задачи ……………………………………………………………..2

2. Описание  алгоритма …………………………………………………………...3

3. Решение  поставленной задачи……………………………………………….. 6

4. Выводы по  проделанной работе ……………………………………………..14

5. Список  использованной литературы……………………………………….. 15 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

     Математическая постановка задачи.

Дана  неотрицательная матрица размера n×n, где элемент в i-й строке и j-ом столбце соответствует объемам  продаж в  j-м магазине i-м продавцом. Нужно найти такое соответствие работников магазинам, чтобы максимизировать объем продаж. 

     Тестовый пример.

В распоряжении компании имеется семь торговых точек  и семь продавцов. В течение нескольких месяцев  продавцы менялись рабочими местами и в конце концов коммерческий директор компании провел сравнение эффективности работы каждого продавца в каждой из семи рабочих точек исходя из количества проданных продуктов. Выяснилось, что эффективность работы в продавцов в разных торговых точках различна, она показана в следующей таблице: 

Продавец Торговые  точки, объем продаж (тыс.шт.)
  1 2 3 4 5 6 7
А 6 15 8 9 10 2 4
Б 9 5 4 10 5 8 14
В 7 8 3 9 7 6 2
Г 5 13 12 4 5 11 13
Д 8 10 11 8 9 7 4
Е 3 7 9 7 5 6 3
Ж 4 5 6 10 3 8 5
 

Как нужно  распределить продавцов по торговым точкам, чтобы добиться максимального объема продаж? 

2. Описание алгоритма 
 

     Венгерский алгоритм — алгоритм  оптимизации, решающий задачу  о назначениях за полиномиальное время. Он был разработан и опубликован Харолдом Куном в 1955 году. Автор дал ему имя «венгерский метод» в связи с тем, что алгоритм в значительной степени основан на более ранних работах двух венгерских математиков (Кёнига и Эгервари).

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

     Венгерский алгоритм состоит  из 3х этапов: 

Этап 1:

  • Формализация проблемы в виде транспортной таблицы по аналогии с решением транспортной задачи.
  • В каждой строке найти минимальный элемент и вычесть его из каждого элемента соответствующей строки.
  • В каждом столбце найти минимальный элемент и вычесть его из каждого элемента соответствующего столбца.

После этого получаем приведенную матрицу, т.е. такую матрицу, в каждой строке и каждом столбце которой есть хотя бы один ноль. Полученная матрица будет эквивалентна исходной задаче и оптимальное решение будет одним и тем же. Сущность Венгерского метода заключается в продолжении процесса приведения матрицы до тех пор, пока все подлежащие распределению единицы не попадут в клетки с нулевой стоимостью. Это означает, что итоговое значение приведенной целевой функции будет равно нулю. Так как существует ограничение на неотрицательность переменных, нулевое значение целевой функции является оптимальным. 

Этап 2:

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

  • Найти строку, содержащую только одно нулевое значение, и в клетку, соответствующую данному значению пометить. Если такие строки отсутствуют, допустимо начать с любого нулевого значения.
  • Вычеркнуть другие нулевые элементы данного столбца.
  • Продолжать выполнять первые два пункта, пока это не окажется невозможным.

Если  на данном этапе окажется, что есть несколько нулей, которым не соответствуют  назначения и которые являются незачеркнутыми, то необходимо:

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

Если  окажется, что таблица содержит неучтенные нули, повторить операции этапа 2. Если решение является допустимым, т.е. все элементы распределены в клетки, которым соответствует нулевое значение, то полученное решение одновременно является оптимальным. Если решение является недопустимым, осуществляется переход к этапу 3. 

Этап 3

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

В результате выполнения данных операций в таблице появится хотя бы один ноль. Необходимо возвратиться к этапу 2 и повторять алгоритм до тех пор, пока не будет получено оптимальное решение. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

3. Решение поставленной задачи 

     Венгерский алгоритм предполагает минимизацию целевой функции. Для решения данной задачи нужно максимизировать целевую функцию, что является особым случает Венгерского алгоритма. Решать такую задачу следует точно также, как в случае минимизации целевой функции, согласно трем этапам, однако сначала все элементы заданной матрицы умножаются на (-1). 

Этап 1 

Шаг 1: Умножаем каждый элемент данной таблицы на (-1) :

  1 2 3 4 5 6 7
А -6 -15 -8 -9 -10 -2 -4
Б -9 -5 -4 -10 -5 -8 -14
В -7 -8 -13 -9 -7 -6 -12
Г -5 -13 -12 -4 -5 -11 -13
Д -8 -10 -11 -8 -9 -7 -4
Е -3 -7 -9 -7 -5 -6 -3
Ж -4 -5 -6 -10 -3 -8 -5
 
 

Шаг 2: Делаем из данной матрицы приведенную, т.е. сделаем так, чтобы в каждой строке и в каждом столбце был хотя бы один нулевой элемент. В отдельном столбце выписываем минимальный элемент каждой строки (т.е. максимальный по абсолютной величине): 
 
 
 
 
 

  1 2 3 4 5 6 7 min
А -6 -15 -8 -9 -10 -2 -4 -15
Б -9 -5 -4 -10 -5 -8 -14 -14
В -7 -8 -13 -9 -7 -6 -12 -13
Г -5 -13 -12 -4 -5 -11 -13 -13
Д -8 -10 -11 -8 -9 -7 -4 -11
Е -3 -7 -9 -7 -5 -6 -3 -9
Ж -4 -5 -6 -10 -3 -8 -5 -10
 
 

Шаг 3: Вычитаем минимальный элемент из каждого элемента соответствующей строки, получим:

  1 2 3 4 5 6 7
А 9 0 7 6 5 13 11
Б 5 9 10 4 9 6 0
В 6 5 0 4 6 7 1
Г 8 0 1 9 8 2 0
Д 3 1 0 3 2 4 7
Е 6 2 0 2 4 3 6
Ж 6 5 4 0 7 2 5
 
 

Шаг 4: В отдельной строке выписываем минимальный элемент каждого столбца:

  1 2 3 4 5 6 7
А 9 0 7 6 5 13 11
Б 5 9 10 4 9 6 0
В 6 5 0 4 6 7 1
Г 8 0 1 9 8 2 0
Д 3 1 0 3 2 4 7
Е 6 2 0 2 4 3 6
Ж 6 5 4 0 7 2 5
min 3 0 0 0 2 2 0

Информация о работе Математическое моделирование экономики