МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС» Институт ИТКН Кафедра Автоматизированных систем управления Курсовой проект по дисциплине: “Теория принятия решений” Вариант 44 Выполнил: Студент группы БИВТ-19-1 Кочур В. А. Принял: проф. Куприянов В. В. Москва - 2021 Оглавление 1. Задание на курсовой проект .................................................................................................3 2. Задача №1 ...............................................................................................................................4 Симплекс-метод .........................................................................................................................4 Блок-схема решения задачи линейного программирования симплекс методом ..............5 Решение минимума ...................................................................................................................6 Ответ............................................................................................................................................8 Решение максимума..................................................................................................................8 Ответ..........................................................................................................................................12 Экономическая интерпретация задачи .................................................................................12 3. Задача №2 .............................................................................................................................13 Приведение матричной игры к задаче линейного программирования ............................13 Блок-схема приведения матричной игры к задаче линейного программирования ........16 Решение ....................................................................................................................................17 Ответ..........................................................................................................................................17 Список используемых источников .............................................................................................18 1. Задание на курсовой проект 2. Задача №1 Симплекс-метод Симплекс-метод — алгоритм решения оптимизационной задачи линейного программирования путём перебора вершин выпуклого многогранника в многомерном пространстве. Сущность метода: построение базисных решений, на которых монотонно убывает линейный функционал, до ситуации, когда выполняются необходимые условия локальной оптимальности. Задача линейного программирования состоит в том, что необходимо максимизировать или минимизировать некоторый линейный функционал на многомерном пространстве при заданных линейных ограничениях. Заметим, что каждое из линейных неравенств на переменные ограничивает полупространство в соответствующем линейном пространстве. В результате все неравенства ограничивают некоторый выпуклый многогранник (возможно, бесконечный), называемый также полиэдральным комплексом. Уравнение W(x) = c, где W(x) — максимизируемый (или минимизируемый) линейный функционал, порождает гиперплоскость L(c). Зависимость от c порождает семейство параллельных гиперплоскостей. Тогда экстремальная задача приобретает следующую формулировку — требуется найти такое наибольшее c, что гиперплоскость L(c) пересекает многогранник хотя бы в одной точке. Заметим, что пересечение оптимальной гиперплоскости и многогранника будет содержать хотя бы одну вершину, причём их будет более одной, если пересечение содержит ребро или k-мерную грань. Поэтому максимум функционала можно искать в вершинах многогранника. Принцип симплекс-метода состоит в том, что выбирается одна из вершин многогранника, после чего начинается движение по его рёбрам от вершины к вершине в сторону увеличения значения функционала. Когда переход по ребру из текущей вершины в другую вершину с более высоким значением функционала невозможен, считается, что оптимальное значение c найдено. Последовательность вычислений симплекс-методом можно разделить на две основные фазы: 1. нахождение исходной вершины множества допустимых решений, 2. последовательный переход от одной вершины к другой, ведущий к оптимизации значения целевой функции. При этом в некоторых случаях исходное решение очевидно или его определение не требует сложных вычислений, например, когда все ограничения представлены неравенствами вида «меньше или равно» (тогда нулевой вектор совершенно точно является допустимым решением, хотя и, скорее всего, далеко не самым оптимальным). В таких задачах первую фазу симплекс-метода можно вообще не проводить. Симплексметод, соответственно, делится на однофазный и двухфазный. [1] Блок-схема решения задачи линейного программирования симплекс методом Решение минимума Найдём сначала минимум. Решим прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы. Определим минимальное значение целевой функции F(X) = -x1+2x2-x3-x4 при следующих условиях-ограничений. -x1+x2+x3=2 x1+x2+x4=4 Расширенная матрица системы ограничений-равенств данной задачи: -1 1 1 0 2 1 1 0 1 4 1. В качестве базовой переменной можно выбрать x3. 2. В качестве базовой переменной можно выбрать x4. Поскольку в системе имеется единичная матрица, то в качестве базисных переменных принимаем X = (3,4). Выразим базисные переменные через остальные: x3 = x1-x2+2 x4 = -x1-x2+4 Подставим их в целевую функцию: F(X) = -x1+2x2-(x1-x2+2)-(-x1-x2+4) или F(X) = -x1+4x2-6 -x1+x2+x3=2 x1+x2+x4=4 При вычислениях значение Fc = -6 временно не учитываем. Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид: -1 1 1 0 1 1 0 1 A= Базисные переменные — это переменные, которые входят только в одно уравнение системы ограничений и притом с единичным коэффициентом. Решим систему уравнений относительно базисных переменных: x3, x4 Полагая, что свободные переменные равны 0, получим первый опорный план: X0 = (0,0,2,4) Базисное решение называется допустимым, если оно неотрицательно. Базис B x1 x2 x3 x4 x3 2 -1 1 1 0 x4 4 1 1 0 1 F(X0) 0 1 -4 0 0 Переходим к основному алгоритму симплекс-метода. Итерация №0. 1. Проверка критерия оптимальности. Текущий опорный план неоптимален, так как в индексной строке находятся положительные коэффициенты. 2. Определение новой базисной переменной. В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент. 3. Определение новой свободной переменной. Вычислим значения Di по строкам как частное от деления: bi / ai1 и из них выберем наименьшее: min (- , 4 : 1 ) = 4 Следовательно, 2-ая строка является ведущей. Разрешающий элемент равен (1) и находится на пересечении ведущего столбца и ведущей строки. Базис B x1 x2 x3 x4 min x3 2 -1 1 1 0 - x4 4 1 1 0 1 4 F(X1) 0 1 -4 0 0 0 4. Пересчет симплекс-таблицы. Формируем следующую часть симплексной таблицы. Вместо переменной x4 в план 1 войдет переменная x1. Строка, соответствующая переменной x1 в плане 1, получена в результате деления всех элементов строки x4 плана 0 на разрешающий элемент РЭ=1. На месте разрешающего элемента получаем 1. В остальных клетках столбца x1 записываем нули. Таким образом, в новом плане 1 заполнены строка x1 и столбец x1. Все остальные элементы нового плана 1, включая элементы индексной строки, определяются по правилу прямоугольника. Для этого выбираем из старого плана четыре числа, которые расположены в вершинах прямоугольника и всегда включают разрешающий элемент РЭ. НЭ = СЭ - (А*В)/РЭ СТЭ - элемент старого плана, РЭ - разрешающий элемент (1), А и В - элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ. Представим расчет каждого элемента в виде таблицы: B 2-(4 • -1):1 x1 x2 -1-(1 • -1):1 1-(1 • -1):1 x3 x4 1-(0 • -1):1 0-(1 • -1):1 4:1 1:1 1:1 0:1 1:1 0-(4 • 1):1 1-(1 • 1):1 -4-(1 • 1):1 0-(0 • 1):1 0-(1 • 1):1 Получаем новую симплекс-таблицу: Базис B x1 x2 x3 x4 x3 6 0 2 1 1 x1 4 1 1 0 1 F(X1) -4 0 -5 0 -1 1. Проверка критерия оптимальности. Среди значений индексной строки нет положительных. Поэтому эта таблица определяет оптимальный план задачи. Окончательный вариант симплекс-таблицы: Базис B x1 x2 x3 x4 x3 6 0 2 1 1 x1 4 1 1 0 1 F(X2) -4 0 -5 0 -1 Оптимальный план можно записать так: x1 = 4, x2 = 0, x3 = 6, x4 = 0 F(X) = -1*4 + 2*0 -1*6 -1*0 = -10 Ответ F(x) -> min = -10 Решение максимума Найдём максимум. Решим прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы. Определим максимальное значение целевой функции F(X) = -x1+2x2-x3-x4 при следующих условиях-ограничений. -x1+x2+x3=2 x1+x2+x4=4 Расширенная матрица системы ограничений-равенств данной задачи: -1 1 1 0 2 1 1 0 1 4 1. В качестве базовой переменной можно выбрать x3. 2. В качестве базовой переменной можно выбрать x4. Поскольку в системе имеется единичная матрица, то в качестве базисных переменных принимаем X = (3,4). Выразим базисные переменные через остальные: x3 = x1-x2+2 x4 = -x1-x2+4 Подставим их в целевую функцию: F(X) = -x1+2x2-(x1-x2+2)-(-x1-x2+4) или F(X) = -x1+4x2-6 -x1+x2+x3=2 x1+x2+x4=4 При вычислениях значение Fc = -6 временно не учитываем. Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид: -1 1 1 0 1 1 0 1 A= Решим систему уравнений относительно базисных переменных: x3, x4 Полагая, что свободные переменные равны 0, получим первый опорный план: X0 = (0,0,2,4) Базис B x1 x2 x3 x4 x3 2 -1 1 1 0 x4 4 1 1 0 1 F(X0) 0 1 -4 0 0 Переходим к основному алгоритму симплекс-метода. Итерация №0. 1. Проверка критерия оптимальности. Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты. 2. Определение новой базисной переменной. В качестве ведущего выберем столбец, соответствующий переменной x2, так как это наибольший коэффициент по модулю. 3. Определение новой свободной переменной. Вычислим значения Di по строкам как частное от деления: bi / ai2 и из них выберем наименьшее: min (2 : 1 , 4 : 1 ) = 2 Следовательно, 1-ая строка является ведущей. Разрешающий элемент равен (1) и находится на пересечении ведущего столбца и ведущей строки. Базис B x1 x2 x3 x4 min x3 2 -1 1 1 0 2 x4 4 1 1 0 1 4 F(X1) 0 1 -4 0 0 0 4. Пересчет симплекс-таблицы. Формируем следующую часть симплексной таблицы. Вместо переменной x3 в план 1 войдет переменная x2. Строка, соответствующая переменной x2 в плане 1, получена в результате деления всех элементов строки x3 плана 0 на разрешающий элемент РЭ=1. На месте разрешающего элемента получаем 1. В остальных клетках столбца x2 записываем нули. Таким образом, в новом плане 1 заполнены строка x2 и столбец x2. Все остальные элементы нового плана 1, включая элементы индексной строки, определяются по правилу прямоугольника. Для этого выбираем из старого плана четыре числа, которые расположены в вершинах прямоугольника и всегда включают разрешающий элемент РЭ. НЭ = СЭ - (А*В)/РЭ СТЭ - элемент старого плана, РЭ - разрешающий элемент (1), А и В - элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ. Представим расчет каждого элемента в виде таблицы: B x1 x2 x3 x4 2:1 -1 : 1 1:1 1:1 0:1 4-(2 • 1):1 1-(-1 • 1):1 1-(1 • 1):1 0-(1 • 1):1 1-(0 • 1):1 0-(2 • -4):1 1-(-1 • -4):1 -4-(1 • -4):1 0-(1 • -4):1 0-(0 • -4):1 Получаем новую симплекс-таблицу: Базис B x1 x2 x3 x4 x2 2 -1 1 1 0 x4 2 2 0 -1 1 F(X1) 8 -3 0 4 0 Итерация №1. 1. Проверка критерия оптимальности. Текущий опорный план не оптимален, так как в индексной строке находятся отрицательные коэффициенты. 2. Определение новой базисной переменной. В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент по модулю. 3. Определение новой свободной переменной. Вычислим значения Di по строкам как частное от деления: bi / ai1 и из них выберем наименьшее: min (- , 2 : 2 ) = 1 Следовательно, 2-ая строка является ведущей. Разрешающий элемент равен (2) и находится на пересечении ведущего столбца и ведущей строки. Базис B x1 x2 x3 x4 min x2 2 -1 1 1 0 - x4 2 2 0 -1 1 1 F(X2) 8 -3 0 4 0 0 4. Пересчет симплекс-таблицы. Формируем следующую часть симплексной таблицы. Вместо переменной x4 в план 2 войдет переменная x1. Строка, соответствующая переменной x1 в плане 2, получена в результате деления всех элементов строки x4 плана 1 на разрешающий элемент РЭ=2. На месте разрешающего элемента получаем 1. В остальных клетках столбца x1 записываем нули. Таким образом, в новом плане 2 заполнены строка x1 и столбец x1. Все остальные элементы нового плана 2, включая элементы индексной строки, определяются по правилу прямоугольника. Представим расчет каждого элемента в виде таблицы: B x1 2-(2 • -1):2 x2 -1-(2 • -1):2 1-(0 • -1):2 2:2 2:2 8-(2 • -3):2 0:2 -3-(2 • -3):2 0-(0 • -3):2 x3 x4 1-(-1 • -1):2 0-(1 • -1):2 -1 : 2 1:2 4-(-1 • -3):2 0-(1 • -3):2 Получаем новую симплекс-таблицу: Базис B x1 x2 x3 x4 x2 3 0 1 1/ 1/ 2 x1 1 1 0 -1/ 2 1/ 2 F(X2) 11 0 0 5/ 2 3/ 2 2 1. Проверка критерия оптимальности. Среди значений индексной строки нет отрицательных. Поэтому эта таблица определяет оптимальный план задачи. Окончательный вариант симплекс-таблицы: Базис B x1 x2 x3 x4 x2 3 0 1 1/ 1/ 2 x1 1 1 0 -1/ 2 1/ 2 F(X3) 11 0 0 5/ 2 3/ 2 2 Оптимальный план можно записать так: x1 = 1, x2 = 3, x3 = 0, x4 = 0 F(X) = -1*1 + 2*3 -1*0 -1*0 = 5 Ответ F(X) -> max = 5 Экономическая интерпретация задачи Петя брал, берёт и будет брать деньги у Васи в долг частями. Когда-то Петя решил вернуть сумму x1, но взять также суммы x2, x3, и это будет равняться 2 тысячам. Затем Петя передумал и решил взять сумму x1 обратно и попросить в долг суммы x2, x4, что равняется в свою очередь 4 тысячам. На данный момент долг Пети составляет -x1+2x2-x3-x4. Очевидно, что Петя хочет чтобы решение было минимальным, а Вася решил нажиться на плохом материальном положении Пети и хочет максимальное решение. 3. Задача №2 Приведение матричной игры к задаче линейного программирования Игра т х п в общем случае не имеет наглядной геометрической интерпретации. Ее решение достаточно трудоемко при больших т и п, однако принципиальных трудностей не имеет, поскольку может быть сведено к решению задачи линейного программирования. Покажем это. Пусть игра т х п задана платежной Игрок А обладает стратегиями матрицей , игрок В — стратегиями ходимо определить оптимальные стратегии где . Необ- и , - вероятности применения соответствующих чистых стратегий Оптимальная стратегия удовлетворяет следующему ; требованию. Она обеспечивает игроку А средний выигрыш, не меньший, чем цена игры v, при любой стратегии игрока В и выигрыш, равный цене игры v, при оптимальной стратегии игрока В. Без ограничения общности полагаем v>0, этого можно добиться, сделав все элементы . Если стратегию игрок А применяет против любой чистой стратегии получает средний стратегий (т.е. матрицы игрока В, то он выигрыш, или математическое выигрыша платежной смешанную почленно умножаются на ожидание элементы j-того столбца соответствующие вероятности и результаты складываются). Для оптимальной стратегии все средние выигрыши не меньше цены игры v, поэтому получаем систему неравенств: (1) Каждое из неравенств можно разделить на число v > 0. Введем новые переменные: (2) Тогда система (1) примет вид: (3) Цель игрока А — максимизировать свой гарантированный выигрыш, т. е. цену игры v. Разделив на переменные равенство , удовлетворяют получаем, условию: что . Максимизация цены игры v эквивалентна минимизации величины 1/v, поэтому задача может быть сформулирована переменных следующим образом: определить значения , , так, чтобы они удовлетворяли линейным ограничени- ям (3) и при этом линейная функция (4) обращалась в минимум. Это задача линейного программирования. Решая задачу (3)— (4), получаем оптимальное решение оптимальную стратегию Для определения оптимальной стратегии . следует учесть, что игрок В стремится минимизировать гарантированный выигрыш, т. е. найти Переменные . удовлетворяют неравенствам (5) которые следуют из того, что средний проигрыш игрока В не превосходит цены игры, какую бы чистую стратегию ни применял игрок А. Если обозначить (6) то получим систему неравенств: (7) Переменные удовлетворяют условию Игра переменных свелась к следующей задаче. Определить значения , которые удовлетворяют системе неравенств (7) и максимизируют линейную функцию (8) Решение задачи линейного программирования (6), (7) определяет оптимальную стратегию . При этом цена игры Составив расширенные матрицы для задач (3), (4) и (7), (8), убеждаемся, что одна матрица получилась из другой транспонированием: Таким образом, задачи линейного программирования (3), (4) и (7), (8) являются взаимно-двойственными. Очевидно, при определении оптимальных стратегий в конкретных задачах следует выбрать ту из взаимно-двойственных задач, решение которой менее трудоемко, а решение другой задачи найти с помощью теорем двойственности. Блок-схема приведения матричной игры к задаче линейного программирования Решение Получаем игру с платежной матрицей: P= 2 7 12 5 6 10 8 10 8 В этой матрице первую строку можно отбросить как невыгодную (ее элементы меньше соответствующих элементов второй строки). Матрица примет вид: 7 12 6 10 Элементы первого столбца больше соответствующих элементов второго столбца, поэтому его можно отбросить. 10 8 Игра упростилась: 6 10 10 8 По формулам находим: 𝑝2 ∗ = 8−10 6+8−10−10 1 𝑝3 ∗ = 1 − = 3 𝑣= 6∗1 3 + 10∗2 3 = 1 , 3 2 , 3 = 26 3 =8 2 3 . Вывод: оптимальная стратегия производителя продукции 𝑆𝐴 ∗ 1 2 = (0; ; ) , 3 3 т. е. стратегия A1 не применяется, 1/3 продукции отправляется на склад (стратегия A2), 2/3 продукции дополнительно обрабатывается (стратегия A3), при 2 этом цена игры 𝑣 = 8 . 3 Ответ оптимальная стратегия производителя продукции 𝑆𝐴 ∗ 1 2 = (0; ; ) , т. е. стратегия A1 не 3 3 применяется, 1/3 продукции отправляется на склад (стратегия A2), 2/3 продукции 2 дополнительно обрабатывается (стратегия A3), при этом цена игры 𝑣 = 8 . 3 Список используемых источников 1. Ляшенко И.Н., Карагодова Е.А. Линейное и нелинейное программирование. «Вища школа», 1975. - 369 с. 2. Шапкин А.С., Мазаева Н.П. Математические методы и модели исследования операций: Учебник. – 2-е изд., перераб. и доп. – М.: Дашков и К, 2005. – 400 с. 3. Экономико-математические модели и прогнозирование рынка труда: Учеб. пособие. – М.: Вузовский учебник, 2005. – 144 с. 4. С.И. Шелобаев. Математические методы и модели в экономике, финансах, бизнесе: Учеб. пособие для вузов. – 2-е изд., перераб. и доп. – М.: ЮНИТИ, 2005. – 400 с.