Математическое моделирование экономики
Содержание
1. Постановка
задачи ……………………………………………………………
2. Описание
алгоритма ……………………………………………………
3. Решение
поставленной задачи……………………………
4. Выводы по
проделанной работе ……………………………
5. Список
использованной литературы……………
1.
Постановка задачи
Математическая постановка
Дана
неотрицательная матрица
Тестовый пример.
В распоряжении
компании имеется семь торговых точек
и семь продавцов. В течение нескольких
месяцев продавцы менялись рабочими
местами и в конце концов коммерческий
директор компании провел сравнение эффективности
работы каждого продавца в каждой из семи
рабочих точек исходя из количества проданных
продуктов. Выяснилось, что эффективность
работы в продавцов в разных торговых
точках различна, она показана в следующей
таблице:
| Продавец | Торговые точки, объем продаж (тыс.шт.) | ||||||
| 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.
Описание алгоритма
Венгерский алгоритм —
Венгерский алгоритм может
Венгерский алгоритм состоит
из 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 |
Шаг 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 |

- Математическое моделирование экономических процессов методом наименьших квадратов
- Математическое моделирование экономических систем
- Математическое моделирование экономических систем
- Математическое описание и исследование одномерных автоматических систем с типовыми законами управления
- Математическое описание и расчет центробежного насоса
- Математическое описание САР
- Математическое описание составных элементов САУ
- Математическое моделирование теплового состояния здания
- Математическое моделирование теплового состояния здания
- Математическое моделирование технологических объектов управления
- Математическое моделирование течений жидкостей и газов в кольцевом канале
- Математическое моделирование трехмерного распределения
- Математическое моделирование управления торговым кредитом на промышленном предприятии
- Математическое моделирование физических процессов