- •Лабораторный практикум
- •По дисциплине «Математические методы в экономике»
- •Часть 1.Линейное и дискретное программирование
- •Для подготовки студентов по направлениям 080500 - менеджмент и 080100 - экономика
- •Лабораторный практикум по дисциплине «Математические методы в экономике» . Часть 1.Линейное и дискретное программирование. Уч. Пособие. М.: фгоу впо ргау - мсха им. К.А. Тимирязева, - 124 с.
- •Содержание
- •Введение
- •Лабораторная работа № 1 «Запись условий задач линейного программирования»
- •Соответствие решений канонической, исходной и однородной форм задач линейного программирования
- •Алгоритм перехода от исходной формы к канонической форме
- •Лабораторная работа № 2 «Переход от задачи в канонической форме к задаче в однородной форме»
- •Эквивалентность различных форм задач линейного программирования
- •Лабораторная работа № 3 «Графический метод решения задач линейного программирования»
- •2 Область допустимых решений и допустимое решение
- •3 Линия уровня
- •4 Вектор – градиент
- •5 Оптимальное решение
- •6 Возможные варианты графического решения для двух переменных
- •Лабораторная работа № 4-5 «Решение задач линейного программирования на основе фундаментальной теоремы»
- •1 Теоремы о выпуклых множествах и области допустимых решений
- •2 Фундаментальная теорема
- •3 Применение фундаментальной теоремы для неограниченной области допустимых решений
- •2 Случай
- •4 Обобщенная фундаментальная теорема линейного программирования
- •5 Решение задач на основе фундаментальной теоремы
- •Лабораторная работа № 6 «Получение исходного опорного решения»
- •1 Общие сведения
- •2 Переход от однородной формы или исходной формы общей задачи линейного программирования к канонической форме
- •3 Переход от исходного базисного решения к исходному опорному решению
- •4 Получение исходного опорного решения м-задачи.
- •Правила перехода к м-задаче от исходной формы (основной) задачи
- •Контрольные вопросы
- •Лабораторная работа №7 - 12 «Решение общей задачи линейного программирования симплексным методом»
- •Алгоритм симплексного метода в полных таблицах при решении задач на максимум целевой функции.
- •Глоссарий основных понятий
- •Рекомендуемая литература
2 Фундаментальная теорема
Если область допустимых решений задачи линейного программирования непустая, выпуклая ограниченная, то задача всегда имеет оптимальное решение, совпадающее хотя бы с одной из вершин области допустимых решений или с одним из опорных решений системы ограничений задачи.
3 Применение фундаментальной теоремы для неограниченной области допустимых решений
Попробуем применить фундаментальную теорему для неограниченной области допустимых решений.
Область допустимых решений – неограниченная выпуклая с конечным числом вершин А,В,С.
а) Ограничим нашу область допустимых решений, построив дополнительное ограничение Х1 + Х2 ≤ М, где М – любое положительное число. Полученная задача с ограниченной областью допустимых решений на основании фундаментальной теоремы имеет хотя бы одно оптимальное решение. Пусть это точка В.
б) Ограничим нашу область допустимых решений, построив дополнительное ограничение Х1 + Х2 ≤ 2М. Полученная новая задача с ограниченной областью допустимых решений на основании фундаментальной теоремы имеет хотя бы одно оптимальное решение – точку В. И так далее, дополнительных ограничений можно построить «k».
Таким образом, все ограниченные нами задачи имеют оптимальное решение, причем оно достигается в одной и той же точке – точке В.
2 Случай
а) Ограничим нашу область допустимых решений, построив дополнительное ограничение Х1 + Х2 ≤ М, где М – любое положительное число. Полученная задача с ограниченной областью допустимых решений на основании фундаментальной теоремы имеет оптимальное решение.
П
усть
это отрезок [Х1*,
Х2*].Область
допустимых решений – неограниченная
выпуклая с конечным числом вершин А, В,
С, Х1*,
Х2*.
б) Ограничим нашу область допустимых решений, построив дополнительное ограничение Х1 + Х2 ≤ 2 М. Полученная новая задача с ограниченной областью допустимых решений А, В, С, Х3*, Х4* на основании фундаментальной теоремы имеет оптимальное решение - отрезок [Х3*, Х4*]. И так далее, дополнительных ограничений можно построить «k».
Таким образом, все ограниченные нами задачи имеют оптимальное решение, причем оно достигается на разных отрезках, первая на отрезке [Х1*, Х2*], вторая на отрезке [Х3*, Х4*] и т.д.
Вывод.
Если оптимальное решение при изменении дополнительного ограничения не изменяется, то оно сохраняется и при k = М → ∞.
В этом случае целевая функция ограниченной нами области допустимых решений окажется постоянной и конечной.
Если оптимальное решение при изменении дополнительного ограничения изменяется, то целевая функция оказывается неограниченной, и оптимальное решение возможно получить только за счет построения дополнительного ограничения.
4 Обобщенная фундаментальная теорема линейного программирования
Если оптимальное решение задачи линейного программирования существует, то оно совпадает хотя бы с одним опорным решением системы ограничений или с одной из вершин области допустимых решений.
Фундаментальная
теорема позволяет заменить поиск
оптимального решения среди бесконечного
числа допустимых решений на поиск
оптимального решения среди конечного
числа опорных решений, так как опорных
решений не больше числа сочетаний из
числа всех переменных совместной системы
по числу линейно независимых ограничений,
то есть оценка числа опорных решений
записывается в виде
.
Для перебора оптимальных решений
необходимо применять преобразования,
позволяющие переходить от одного
опорного решения к другому, высчитывая
и запоминая значения целевой функции.
Перебрав все опорные решения и сравнив
все значения целевой функции Z,
выбираем среди них оптимальное. Опорное
решение, соответствующее оптимальному
значению целевой функции, на основе
фундаментальной теоремы является
оптимальным решением задачи.
Преобразования, позволяющие переходить от одного опорного решение к другому, называются симплексными преобразованиями однократного замещения.
Симплексные преобразования однократного замещения применяются к задачам, записанным в канонической форме, приведенным к единичному базису с неотрицательными свободными членами. Выражение целевой функции преобразовывается, все члены, кроме свободного члена, переносятся в левую часть выражения целевой функции.
а11 х1 + а12 х2 + … + а1m хm + хm+1 = а10
а21 х1 + а22 х2 + … + а2m хm + хm+2 = а20
… … … … …
аm1 х1 + аm2 х2 + … + аmm хm + хm+m = аm0
хj 0; j = 1,2,…,n (n = m + m)
Z - c1 х1 - c2 х2 - … - cm хm +0 хm+1 - … + 0 хm+m = c0
Алгоритм симплексных преобразований однократного замещения
Заполняется исходная таблица с выделенным опорным решением, то есть с единичной подматрицей и неотрицательными свободными членами, и преобразованной целевой функции.
Исходная таблица для симплексных преобразований
пер.баз |
Z |
X1 |
X2 |
… |
Xj* |
… |
Xm |
Xm+1 |
Xm+2 |
… |
Xi |
… |
Xn |
ai0 |
К∑ |
|
хm+1 |
0 |
a11 |
a12 |
… |
a1j* |
… |
a1m |
1 |
0 |
… |
0 |
… |
0 |
a10 |
∑1 |
|
хm+2 |
0 |
a21 |
a22 |
… |
a2j* |
… |
a2m |
0 |
1 |
… |
0 |
… |
0 |
a20 |
∑2 |
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
хi* |
0 |
аi*1 |
аi*2 |
… |
аi*j* |
… |
аi*m |
0 |
0 |
… |
1 |
… |
0 |
аi*0 |
∑i* |
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
хn |
0 |
am1 |
am2 |
… |
amj* |
… |
amm |
0 |
0 |
… |
0 |
… |
1 |
am0 |
∑m |
|
Z |
1 |
-c1 |
-c2 |
… |
-cj* |
… |
-cm |
0 |
0 |
… |
0 |
… |
0 |
c0 |
∑ |
|
Составляются все возможные сочетания опорных решений.
Один из столбцов свободных переменных выбирается за разрешающий, обозначается j*.
Вычисляются симплексные отношения, то есть неотрицательные отношения свободных членов к строго положительным элементам разрешающего столбца.
По минимальному симплексному отношению выбирается разрешающая строка, обозначается i*.
На пересечении разрешающей строки и разрешающего столбца находится разрешающий элемент, обозначается
.
Разрешающий столбец определяет
переменную, вводимую в базис, а разрешающая
строка определяет переменную, выводимую
из базиса.
Проверяем: получается ли у нас новое опорное решение. Если получается, то переходим к пункту 7, если нет, то переходим к пункту 3.
Выполняем пересчет таблицы и заполняем новую таблицу:
разрешающую строку делим на разрешающий элемент, заменяем в этой строке базисную переменную;
все элементы разрешающего столбца – нули, кроме элемента, стоящего на месте разрешающего. Этот элемент равен единице;
все остальные элементы таблицы преобразуются по правилу прямоугольника, то есть по формуле:
Примечание. Если возникает неопределенность при выборе разрешающей строки, то есть минимальные симплексные отношения равны, то условимся за разрешающую брать строку с меньшим номером.
