- •Математика в экономике Учебное пособие
- •Оглавление
- •Предисловие
- •Программа дисциплины Цели и задачи освоения учебной дисциплины
- •Содержание дисциплины
- •I. Линейное программирование
- •1.1. Общая задача линейного программирования Задачи математического и линейного программирования
- •Математические модели простейших экономических задач Задача использования ресурсов
- •Задача о составлении рациона питания
- •Каноническая форма задачи линейного программирования
- •Приведение общей задачи линейного программирования к канонической форме
- •Задачи для самостоятельного решения
- •1.2. Графический метод решения задач линейного программирования Задача с двумя переменными
- •Графический метод решения задач линейного программирования с п переменными
- •Задачи для самостоятельного решения
- •1.3. Основные положения о решении злп
- •Теоремы о взаимосвязи опорных решений и угловых точек области допустимых решений
- •1.4. Симплексный метод решения задач линейного программирования Симплекс-метод
- •Симплексные таблицы
- •Задачи для самостоятельного решения
- •1.5. Теория двойственности Виды математических моделей двойственных задач
- •Общие правила составления двойственных задач
- •Первая теорема двойственности
- •Вторая теорема двойственности
- •Задачи для самостоятельного решения
- •1.6. Транспортная задача линейного программирования
- •Формулировка транспортной задачи
- •Математическая модель транспортной задачи
- •Опорное решение транспортной задачи
- •Необходимое и достаточное условия разрешимости транспортной задачи
- •Метод вычеркивания
- •Методы построения начального опорного решения Метод северо-западного угла
- •Метод минимальной стоимости
- •Переход от одного опорного решения к другому
- •Распределительный метод
- •Метод потенциалов
- •Особенности решения транспортных задач с неправильным балансом
- •Алгоритм решения транспортной задачи методом потенциалов
- •Транспортная задача по критерию времени
- •Задачи для самостоятельного решения
- •Глава II. Теория игр
- •2.1. Математические модели конфликтных ситуаций
- •2.2. Чистые и смешанные стратегии Основная теорема теории игр
- •Основная теорема теории игр
- •Геометрическая интерпретация игры 2x2, игры 2xп.
- •Общие методы решения конечных игр. Сведение их к задачам линейного программирования
- •Игры с «природой».
- •Задачи для самостоятельного решения
- •Глава III. Теория массового обслуживания
- •3.1. Марковский случайный процесс
- •Понятие о марковском процессе
- •Потоки событий. Простейший поток.
- •Граф состоянии. Размеченный граф состояний
- •Уравнения Колмогорова для вероятностей состояния
- •Финальные вероятности состояний
- •3.2. Системы массового обслуживания
- •Смо с отказами
- •Смо с неограниченным ожиданием
- •Формулы для установившегося режима
- •Смо с ожиданием и с ограниченной длиной очереди
- •Формулы для установившегося режима
- •Задачи для самостоятельного решения
- •Глава IV. Целочисленное программирование
- •4.1 Общая формулировка задачи целочисленного программирования Общая формулировка задачи
- •Графический метод решения задач
- •Прогнозирование эффективного использования производственных площадей
- •Метод Гомори
- •Задачи для самостоятельного решения
- •Глава V. Нелинейное программирование
- •5.1. Задачи нелинейного программирования
- •Общая постановка задачи нелинейного программирования
- •Графический метод решения задач нелинейного программирования с двумя переменными
- •Задача с нелинейной целевой функцией и нелинейной системой ограничений
- •5.2. Метод множителей Лагранжа. Постановка задачи
- •Расчет экономико-математической модели при нелинейных реализациях продукции.
- •5.3. Дробно-линейное программирование Математическая модель задачи
- •Алгоритм решения.
- •Сведение экономико-математической модели дробно-линейного программирования к задаче линейного программирования
- •Задачи для самостоятельного решения
- •Глава VI. Динамическое программирование
- •6.1. Постановка задачи динамического программирования
- •Некоторые экономические задачи, решаемые методами динамического программирования Оптимальная стратегия замены оборудования
- •Оптимальное распределение ресурсов
- •Распределение инвестиций для эффективного использования потенциала предприятия
- •Нахождение рациональных затрат при строительстве трубопроводов и транспортных артерий
- •Задачи для самостоятельного решения
- •Глава VII. Сетевые модели
- •7.1. Основные понятия сетевой модели Основные понятия
- •Расчет временных параметров сетевого графика
- •Построение сетевого графика и распределение ресурсов
- •Учет стоимостных факторов при реализации сетевого графика
- •Обоснование привлекательности проекта по выпуску продукции
- •Минимизация сети
- •Алгоритм решения
- •Нахождение кратчайшего пути
- •Задача замены автомобильного парка
- •Задачи для самостоятельного решения
- •Тест для самоконтроля
- •Список используемой литературы
- •Список рекомендуемой литературы Основная литература:
- •Дополнительная литература:
- •Ключ к тесту для самоконтроля
Алгоритм решения транспортной задачи методом потенциалов
Порядок решения транспортных задач методом потенциалов.
Проверяют выполнение необходимого и достаточного условия разрешимости задачи. Если задача имеет неправильный баланс, то вводят фиктивного поставщика или потребителя с недостающими запасами или запросами и нулевыми стоимостями перевозок.
Строят начальное опорное решение и проверяют правильность его построения, для чего подсчитывают количество занятых клеток (их должно быть т+п—1) и убеждаются в линейной независимости векторов-условий (методом вычеркивания).
3. Строят систему
потенциалов, соответствующих опорному
решению. Для этого решают систему
уравнений
Для того чтобы найти частное решение системы, одному из потенциалов (обычно тому, которому соответствует большее число занятых клеток) задают произвольно некоторое значение (чаще нуль). Остальные потенциалы однозначно определяются по формулам:
при
>
0, если известен потенциал
,
и
при
>
0, если известен потенциал
.
4. Проверяют,
выполняется ли условие оптимальности
для свободных клеток таблицы. Для этого
вычисляют оценки для всех свободных
клеток по формулам
и те оценки, которые больше нуля,
записывают в левые нижние углы клеток.
Если для всех свободных клеток
<
0, то вычисляют значение целевой функции,
и решение задачи заканчивается, так как
полученное решение является оптимальным.
Если же имеется хотя бы одна клетка с
положительной оценкой, то опорное
решение не является оптимальным.
5. Переходят к
новому опорному решению, на котором
значение целевой функции будет меньше.
Для этого находят клетку таблицы задачи,
которой соответствует наибольшая
положительная оценка
.
Строят цикл, включающий в свой состав
данную клетку и часть клеток, занятых
опорным решением. В клетках цикла
расставляют поочередно знаки «+» и «-»,
начиная с «+» в клетке с наибольшей
положительной оценкой.
Осуществляют сдвиг (перераспределение
груза) по циклу на величину θ=
.
Клетка
со знаком «-», в которой достигается
,
остается пустой. Если минимум достигается
в нескольких клетках, то одна из них
остается пустой, а в остальных проставляют
базисные нули, чтобы число занятых
клеток оставалось равным т+п1.
Возвращаются к пункту 3.
Пример 16. Решить транспортную задачу, данные в таблице:
bj ai |
100 |
100 |
300 |
300 |
100 |
1 |
2 |
3 |
1 |
200 |
2 |
3 |
4 |
6 |
300 |
3 |
4 |
7 |
12 |
Решение. 1. Проверяем выполнение необходимого и достаточного условия разрешимости задачи. Находим суммарные запасы поставщиков и запросы потребителей:
=
100 + 200 + 300 = 600,
=
100 + 100 + 300 + 300 = 800.
Задача с неправильным балансом. Вводим четвертого, фиктивного поставщика с запасами а4 = 800 — 600 = 200 и нулевыми стоимостями перевозки единиц груза.
2. Составляем начальное опорное решение методом минимальной стоимости. Записываем матрицу стоимостей С:
Находим в этой матрице наименьшие на каждом шаге стоимости и направляем в клетку, которая соответствует этим стоимостям, максимально допустимые объемы перевозок грузов. При этом исключаем на каждом шаге одного поставщика или одного потребителя. Кружочками в матрице С указаны минимальные элементы, а цифрами рядом со строками и столбцами — порядок исключения из рассмотрения поставщиков и потребителей. Напомним, что запасы фиктивного поставщика вывозятся в последнюю очередь.
Полученное решение Х1 имеет т + п — 1=4 + 4— 1 = 7 базисных переменных. Опорное решение является вырожденным, так как одна из его координат равна нулю.
bj ai |
100 |
100 |
300 |
300 |
100 |
1 100 |
2 |
3 |
1 |
200 |
2 0 |
3 100 |
4 100 |
6 |
300 |
3 |
4 |
7 200 |
12 100 |
200 |
0 |
0 |
0 |
0 200 |
Вычислим значение целевой функции на этом опорном решении F(X1)=100·1+0·2+100·3+100·4+200·7+100·12+200·0=3400.
3. Для проверки
оптимальности опорного решения необходимо
найти потенциалы. По признаку оптимальности
в каждой занятой опорным решением клетке
таблицы транспортной задачи сумма
потенциалов равна стоимости (
).
Записываем систему уравнений для
нахождения потенциалов:
Система состоит из семи уравнений и имеет восемь переменных. Система неопределенная. Одному из потенциалов задаем значение произвольно: пусть и2 = 0. Остальные потенциалы находятся однозначно:
Значения потенциалов записываем рядом с запасами или запросами соответствующих поставщиков и потребителей в таблицу. Система уравнений для нахождения потенциалов достаточно проста, обычно ее решают устно, глядя на таблицу задачи, ее занятые клетки и известные потенциалы. Любой неизвестный потенциал, соответствующий занятой клетке, равен находящейся в этой клетке стоимости минус известный потенциал, соответствующий этой же клетке.
v1=2 v2=3 v3=4 v4=9
|
bj a |
100 |
100 |
300 |
300 |
u1=-1 |
100 |
1 100 |
2
0 |
3
0 |
1
7 |
u2=0 |
200 |
2 0 |
3 100 |
4 100 |
6
3 |
u3=3 |
300 |
3
2 |
4
2 |
7 200
|
12 100 |
u4=-9 |
200 |
0
- |
0
- |
0
- |
0 200
|
4. Проверяем опорное
решение Х1
на
оптимальность. С этой целью вычисляем
оценки
для всех незаполненных клеток таблицы
(для всех занятых клеток
=0):
Положительные оценки записываем в левые нижние углы соответствующих клеток таблицы, вместо отрицательных ставим знак «—». Начальное опорное решение не является оптимальным, так как имеются положительные оценки.
5. Переходим к
новому опорному решению. Находим клетку
таблицы, которой соответствует наибольшая
положительная оценка:
=max{7,3,2,2}=7
для клетки (1,4). Для этой клетки строим
цикл. Ставим в нее знак «+», присоединяем
ее к занятым клеткам и применяем метод
вычеркивания. После проведения
вычеркиваний в таблице остаются только
образующие цикл клетки. Цикл изображен
в таблице. В угловых точках цикла
расставляем поочередно знаки «+» и «-»,
начиная с «+» в клетке (1, 4). В клетки,
отмеченные знаком «+», прибавляется
груз θ, а из клеток, отмеченных знаком
«-», вычитается такой же по величине
груз. Определяем величину груза θ,
перераспределяемого по циклу. Она равна
значению наименьшей из перевозок в
клетках цикла, отмеченных знаком «-»,
θ=
{100,100,100}=100.
Осуществляем сдвиг по циклу на величину
θ=100. Получаем второе опорное решение
Х2:
v1=2
v2=3
v3=4
v4=9
|
bj ai |
100 |
100 |
300 |
300 |
u1=-1 |
100 |
1 0 |
2
0 |
3
0 |
1 100
|
u2=0 |
200 |
2 100 |
3 1 - |
4 - |
6
- |
u3=3 |
300 |
3
2 |
4
2 |
7 300
|
12
- |
u4=-9 |
200
|
0
0 |
0
1 |
0
2 |
0 200
|
В данном случае минимум перевозок в клетках, отмеченных знаком «-», достигался сразу в трех клетках, поэтому для того, чтобы число занятых клеток опорного решения было по-прежнему равно т+п—1=7, в клетки с номерами (1, 1) и (2, 3) поставлены нулевые базисные перевозки. Следует освобождать клетку с большей стоимостью перевозки, т.е. клетку (3, 4). Вычисляем значение целевой функции на втором опорном решении: F(X)=0·1+100·1+100·2+100·3+0·4+300·7+200·0=2700.
6. Проверяем второе опорное решение Х2 на оптимальность. Находим потенциалы и оценки. Решение не является оптимальным, так как имеются положительные оценки Δ31=2, Δ32=2, Δ42=1 и Δ43=2. Наибольшая из них равна 2 одновременно для трех клеток (3, 1), (3, 2) и (4, 3). В одну из них, пусть в клетку (3, 2), ставим знак «+». Для этой клетки строим цикл и находим величину груза по циклу: θ= {100,300}=100. Осуществляем сдвиг по циклу на величину θ=100. Получаем третье опорное решение Х3.
v1=1
v2=0
v3=3
v4=1
|
bj ai |
100 |
100 |
300 |
300 |
u1=0 |
100 |
1 0 |
2
- |
3
0 |
1 100
|
u2=1 |
2 |
2 100 |
3
- |
4 100 |
6
- |
u3=4 |
300 |
3
2 |
4 100
|
7 200
|
12
- |
u4=-1 |
200
|
0
0 |
0
- |
0
2 |
0 200
|
Вычисляем значение целевой функции на третьем опорном решении:
F(X3)= 0·1 + 100·1 + 100·2 + 100·4 + 100·4 + 200·7 + 200·0 =2500.
7. Решение не является оптимальным, так как имеются положительные оценки Δ31=2 и Δ43=2. Ставим знак «+» пусть в клетку (3, 1), Для этой клетки строим цикл и находим величину груза для перераспределения по циклу: θ= {100,200}=100. Осуществляем сдвиг по циклу на величину θ=100. Получаем четвертое опорное решение Х4:
v1=1 v2=0 v3=3 v4=1
|
bj ai |
100 |
100 |
300 |
300 |
u1=-2 |
1 |
1 0 |
2
0 |
3
2 |
1 100
|
u2=-3 |
200 |
2
|
3
- |
4 200 |
6
- |
u3=0 |
300 |
3 100
|
4 100
|
7 100
|
12
- |
u4=-3 |
200
|
0
0 |
0
1 |
0
4 |
0 200 |
Вычисляем значение целевой функции на четвертом опорном решении: F(Х4) = 0·l + 100·1 +200·4+ 100·3 + 100·4+ 100·7 + 200·0 =2300.
8. Проверяем решение Х4 на оптимальность. Находим потенциалы и оценки. Они приведены в таблице. Положительными являются оценки Δ13=2, Δ42=1 и Δ43=4. Для клетки (4, 3), которой соответствует наибольшая оценка, строим цикл и находим величину груза для перераспределения по циклу: θ= {200,0,100}=0. Осуществляем сдвиг по циклу на величину θ=0. Получаем пятое опорное решение Х5:
v1=3 v2=4 v3=7 v4=3
|
bj ai |
100 |
100 |
300 |
300 |
u1=-6 |
100 |
1
- |
2
- |
3
- |
1 100
|
u2=-3 |
200 |
2
- |
3
- |
4 200 |
6
- |
u3=0 |
300 |
3 100
|
4 100
|
7 100
|
12
- |
u4=-7 |
200
|
0
- |
0
- |
0
- |
0 200
|
Решение Х5 является оптимальным, так как все оценки отрицательные. Значение целевой функции F(X5) = F(X4) = 2300.
Ответ: min
F(Х)=2300
при Х*=
.
Транспортная задача с ограничениями на пропускную способность
Пусть требуется при решении транспортной задачи ограничить перевозки от поставщика с номером l к потребителю с номером k. Возможны ограничения двух типов: 1) хlk ≥ а; 2) хlk ≤ b, где а и b — постоянные величины.
1. Если хlk≥а, то необходимо прежде, чем решать задачу, сократить (уменьшить) запасы l -го поставщика и запросы k-го потребителя на величину а (зарезервировать перевозку хlk=а). После решения задачи в оптимальном решении следует увеличить объем перевозки хlk на величину а.
2. Если хlk ≤ b, то необходимо вместо k -го потребителя с запросами bk, ввести двух других потребителей. Один из них с номером k должен иметь запросы b'k = b, а другой с номером п + 1 - запросы bn+1 = bk- b. Стоимости перевозок для этих потребителей остаются прежними, за исключением стоимости сl(n+1), которая принимается равной сколь угодно большому числу М (М>>1). После получения оптимального решения величины грузов, перевозимых к (п+1)-му потребителю, прибавляются к величинам перевозок k-го потребителя. Так как сl(n+1)= М -самая большая стоимость перевозки, то в оптимальном решении клетка с номером (l,n+1) останется пустой, хl(n+1) = 0 и объем перевозки хlk не превзойдет b.
Пример 17. Решить транспортную задачу, исходные данные которой приведены в таблице, при дополнительных условиях: объем перевозки груза от 1-го поставщика 2-му потребителю должен быть не менее 100 единиц (х12 ≥100), а от 3-го 1-му не более 200 единиц (х31 ≤ 200).
bj ai |
500 |
400 |
300 |
200 |
1 |
5 |
6 |
300 |
2 |
6 |
7 |
500 |
3 |
7 |
8 |
Решение. Для того чтобы в оптимальном решении объем перевозки х12 был не менее 100 единиц, при решении задачи будем предполагать, что запасы 1-го поставщика а1 и запросы 2-го потребителя b2 меньше фактических на 100 единиц. После получения оптимального решения объем перевозки х12 увеличим на 100 единиц.
Для того чтобы удовлетворить требованию х31 ≤ 200, вместо 1-го потребителя введем двух других. Один из них под прежним первым номером имеет запросы b1 = 200 единиц и прежние стоимости перевозок единиц груза. Другому присвоим четвертый номер. Его запросы равны b4 = 500 — 200 = 300 единиц и стоимости перевозок единиц груза те же, что и у 1-го потребителя, за исключением с34, которую примем равной сколь угодно большому числу М, т.е. с34=М. После нахождения оптимального решения задачи объемы перевозок для 4-го потребителя необходимо прибавить к соответствующим объемам перевозок для 1-го потребителя.
В результате указанных преобразований таблица исходных данных задачи будет иметь вид, представленный в таблице:
bj ai |
200 |
300 |
300 |
300 |
100 |
1 |
5 |
6 |
1 |
300 |
2 |
6 |
7 |
2 |
500 |
3 |
7 |
8 |
М |
Далее задачу решаем обычным методом потенциалов. Проверяем выполнение необходимого и достаточного условия существования решения задачи. Находим суммарные запасы поставщиков и запросы потребителей: а1 + а2 + а3= 100 + 300 + 500 = 900;
b1 + b2 + b3 + b4 = 200 + 300 + 300 + 300 = 1100.
Задача с неправильным балансом. Вводим фиктивного поставщика с запасами а4 = 1100 - 900 = 200.
Составляем начальное опорное решение Х1 методом минимальной стоимости. Записываем матрицу стоимостей С:
Кружочками в матрице С отмечены минимальные элементы, а цифрами рядом со строками и столбцами ― порядок исключения из рассмотрения поставщиков и потребителей.
v1=1 v2=0 v3=1 v4=1
|
bj ai |
200 |
300 |
300 |
300 |
u1=0 |
100 |
1 100 |
5
- |
6
- |
1
0 |
u2=1 |
300 |
2 100 |
6
- |
7
- |
2 200
|
u3=7 |
500 |
3
5 |
7 300
|
8 200
|
М
- |
u4=-1 |
200 |
0
0 |
0
- |
0 100
|
0 100
|
Полученное решение X1 имеет т + n — 1=4 + 4— 1 = 7 базисных переменных. Вычисляем значение целевой функции на этом опорном решении: F(X1) = 100·1+100·2+200·2+300·7+200·8+100·0+100·0=4400.
Для проверки оптимальности опорного решения находим потенциалы. Записываем систему уравнений для нахождения потенциалов и решаем ее:
Система состоит, из семи уравнений и имеет восемь переменных. Так как число неизвестных на единицу больше числа уравнений, то одному из потенциалов можно задать значение произвольно: пусть и1 =0. Остальные потенциалы однозначно находятся из системы уравнений:
Значения потенциалов
приведены в таблице. Находим оценки для
свободных клеток таблицы:
Опорное
решение неоптимальное, так как имеется
положительная оценка Δ31
= 5 для клетки (3, 1). Отмечаем эту клетку
знаком «+». Находим цикл для улучшения
опорного решения. Определяем величину
груза для перераспределения по циклу
θ=
{100,
200, 100} = 100. Осуществляем сдвиг по циклу
на величину θ=100. Получаем второе опорное
решение Х2.
v1=1 v2=5 v3=6 v4=1
|
bj ai |
200 |
300 |
300 |
300 |
u1=0 |
100 |
1 100 |
5
0 |
6
0 |
1
0 |
u2=1 |
300 |
2 0 |
6
0 |
7
0 |
2 300
|
u3=2 |
500 |
3 100 |
7 300
|
8 100
|
М
- |
u4=-6 |
200 |
0
- |
0
- |
0 200
|
0 0
|
В таблице также записаны потенциалы и оценки для свободных клеток. Решение Х2 оптимальное, так как все оценки неположительные. Запишем оптимальное решение исходной задачи. Для этого увеличим объем перевозки х12 на 100 единиц и объединим объемы перевозок 4-го потребителя, с объемами перевозок 1-го потребителя.
Получим Х*=
.
Вычислим значение целевой функции на этом решении:
F (X*) =100·1+100·5+300·2+100·3+300·7+100·8=4400.
Ответ: min F(X) = 4400 при X* = .
В некоторых задачах требуется запретить перевозки от отдельных поставщиков отдельным потребителям. В таких случаях либо зачеркивают клетку таблицы транспортной задачи, либо назначают соответствующую этой клетке стоимость перевозки единицы груза сколь угодно большой, равной М >> 1. В остальном задача решается обычным способом. Для разрешимости данной задачи необходимо существование начального опорного решения.

i
00
00
00