Постановка ОЗЛП и симплекс-метод.ppt
- Количество слайдов: 100
Антюхов В. И.
Тема 1. Нелинейное программирование Лекция 3. Решение задач линейного программирования Учебные вопросы: 1. Общая постановка задачи линейного программирования 2. Графический метод решения задачи линейного программирования 3. Симплекс-метод решения задачи
Лекция 3. Решение задач линейного программирования Учебный вопрос 1. Общая постановка задачи линейного программирования
Учебный вопрос 1. Общая постановка задачи линейного программирования • Большинство задач оптимизации в исследовании операций и моделировании относится к нелинейным • Однако решение нелинейных задач - сложная теоретическая и вычислительная проблема • Общих методов решения нелинейных задач не существует • Поэтому практически всегда для решения нелинейных задач используются приближенные методы решения
Учебный вопрос 1. Общая постановка задачи линейного программирования • Сущность приближенных методов решения нелинейных задач состоит в том, что исходная постановка задачи сводится к одной линейной или их совокупности, т. е. к задаче линейного программирования • Задачей линейного программирования называется оптимизационная задача, у которой и целевая функция и ограничения являются линейными
Учебный вопрос 1. Общая постановка задачи линейного программирования • Первые идеи линейного программирования восходят к Фурье • Однако осознание важности и утверждение линейного программирования как самостоятельной дисциплины произошло лишь в 1940 годах в работах Данцига, Канторовича, Купманса и фон Неймана
Учебный вопрос 1. Общая постановка задачи линейного программирования • По мере разработки новых методов решения задач и их представления в виде программ для ЭВМ, по мере совершенствования самих вычислительных машин, линейное программирование становится все более мощным инструментом исследования и оптимизации функционирования систем самой различной природы
Учебный вопрос 1. Общая постановка задачи линейного программирования • Построение математической модели любой задачи линейного программирования начинается с ответов на следующие вопросы: 1) что взять в качестве управляющих переменных? 2) какие ограничения должны быть наложены на эти переменные? 3) какова цель, для достижения которой решается задача?
Постановка ОЗЛП • Задачам линейного программирования соответствуют модели, описываемые с помощью линейных соотношений • Чтобы пользоваться общими методами и алгоритмами решения, все довольно разнообразные постановки задач линейного программирования сводят к одной так называемой канонической постановке • Задачу с канонической постановкой принято называть основной или общей задачей линейного программирования (ОЗЛП)
Постановка ОЗЛП • Найти такой набор значений управляемых параметров X 0 = {x 1, x 2, …, xn}, который обращает в минимум значение целевой функции: U = C 1 x 1+C 2 x 2+…+Cnxn при ограничениях: a 11 x 1+a 12 x 2+…+a 1 nxn=b 1 a 21 x 1+a 22 x 2+…+a 2 nxn=b 2 ………………………… am 1 x 1+am 2 x 2+…+amnxn=bn, x 1, x 2, …, xn≥ 0
Другие формы записи ОЗЛП • Минимизировать U = Cjxj при ограничениях: aijxj = bi, i =1, m; xj ≥ 0; j = 1, n • Минимизировать U= C x при ограничениях: Ax = b, x ≥ 0, где: C=(C 1, C 2, …, Cn) – вектор-строка; x = (x 1, x 2, …, xn) – вектор-столбец; A - матрица; B = (b 1, b 2, …, bn) – вектор-столбец; 0 – вектор-столбец нулей
Другие формы записи ОЗЛП • Минимизировать U= C x при ограничениях: P 1 x 1+P 2 x 2+…+Pnxn = P 0 x ≥ 0, где: Pj – столбец j матрицы A, j=1, n
Другие формы записи ОЗЛП • Первоначальная запись условий задач линейного программирования может отличаться от рассмотренной тем, что: - требуется не минимизировать, а максимизировать целевую функцию; - все или некоторые ограничения имеют форму неравенств; - на часть переменных не наложено требование неотрицательности
Задача максимизации функции • Например, задача максимизации функции: U = C 1 x 1+C 2 x 2+C 3 x 3+C 4 x 4 при ограничениях: a 11 x 1+a 12 x 2+a 13 x 3 = b 1 a 21 x 1+a 22 x 2+a 23 x 3+a 24 x 4 ≤ b 2 a 31 x 1+a 32 x 2+a 33 x 3+a 34 x 4 ≥ b 3 x 3 ≥ 0; x 4 ≥ 0 после сведения к каноническому виду будет записываться так:
Задача максимизации функции (после сведения к каноническому виду) U=-C 1(x 7 -x 8)+C 2(x 9 -x 10)+C 3 x 3+C 4 x 4+0 x 5 -0 x 6, при ограничениях: a 11(x 7 -x 8)+a 12(x 9 -x 10)+a 13 x 3 = b 1 a 21(x 7 -x 8)+a 22(x 9 -x 10)+a 23 x 3+a 24 x 4+x 5 = b 2 a 31(x 7 -x 8)+a 32(x 9 -x 10)+a 33 x 3+a 34 x 4 -x 6 = b 3 x 3, x 4, x 5, x 6, x 7, x 8, x 9, x 10≥ 0
Другие формы записи ОЗЛП • К общей задаче линейного программирования сводятся многие распределительные задачи, связанные с управлением в государственной противопожарной службе: - определение состава сил и средств; - использование автотранспортных средств; - размещение баз снабжения и др.
• • Пример общей задачи линейного программирования Для технического обслуживания и ремонта трех типов средств пожаротушения имеются четыре мастерских Мастерская типа j (j = 1, 2, 3, 4) может принять одновременно aij средств пожаротушения типа i (i =1, 2, 3) и произвести их обслуживание и ремонт при стоимости cij Каждый тип средств пожаротушения представлен bi единицами Требуется найти, сколько потребуется мастерских каждого типа, чтобы обслужить все средства пожаротушения за один прием и с минимальными затратами
Пример общей задачи линейного программирования • Задаче соответствует: - целевая функция: U=C 1 x 1+C 2 x 2+C 3 x 3+C 4 x 4 - и ограничения: a 11 x 1+a 12 x 2+a 13 x 3+a 14 x 4 ≥ b 1 a 21 x 1+a 22 x 2+a 23 x 3 +a 24 x 4 ≥ b 2 a 31 x 1+a 32 x 2+a 33 x 3+a 34 x 4 ≥ b 3, x 1, x 2, x 3, x 4 ≥ 0
Пример общей задачи линейного программирования • Набор значений управляемых параметров X, удовлетворяющий ограничениям, называется допустимым решением (планом) задачи линейного программирования • Допустимое решение, при котором целевая функция обращается в минимум, носит название оптимального решения
Условия решения задачи линейного программирования • Если число неизвестных параметров n меньше числа независимых ограничений r (n < r), то задача линейного программирования не имеет решения • При n = r и определителе системы ограничений, отличном от нуля, имеется единственное решение и задачи оптимизации нет • Если n > r, то n - r неизвестным можно придать произвольные значения, а остальные r неизвестных выразить через них и, таким образом найти множество решений. Именно в этом случае возникает задача оптимизации
Условия решения задачи линейного программирования • Неизвестные, которым могут быть приданы произвольные значения, называют свободными переменными • Неизвестные, которые выражаются через свободные переменные (их число r), называются базисными переменными • Допустимое решение, в котором все свободные переменные (неизвестные) равны нулю, принято называть базисным
Условия решения задачи линейного программирования • Если в базисном решении содержится ровно r положительных компонентов, то его называют невырожденным, если меньше - вырожденным • В теории линейного программирования показано, что поиск оптимального решения нужно проводить только среди базисных решений
Условия решения задачи линейного программирования • Таким образом, чтобы решить задачу линейного программирования, необходимо определить: - имеет ли задача допустимые решения; - принимает ли целевая функция экстремум; - каково экстремальное значение целевой функции
Условия решения задачи линейного программирования • Для решения задач линейного программирования разработан целый ряд методов • Наиболее универсальным методом является симплекс-метод
Лекция 3. Решение задач линейного программирования Учебный вопрос 2. Графический метод решения задачи линейного программирования
Графический метод решения задачи линейного программирования • В основе решения задачи линейного программирования лежат две теоремы: 1. Теорема о структуре множества допустимых решений задачи линейного программирования 2. Теорема об экстремуме линейной формы задачи линейного программирования
Теорема о структуре множества допустимых решений задачи линейного программирования • Множество D, определяемое системой ограничений в задаче линейного программирования, есть выпуклое множество • Множество D называется выпуклым, если для любых двух точек xi, xi+1 D справедливо соотношение: xi+(1‑ )xi+1 D, где 0 1 • Другими словами, если точки xi, xi+1 D, то и любая точка x, находящаяся на прямой между этими точками также принадлежит D
Теорема о структуре множества допустимых решений задачи линейного программирования • Множество D, содержащее все свои граничные точки называется замкнутым • Точка x D называется граничной, если в любой, сколь угодно малой ее окрестности, существуют точки не принадлежащие D • Таким образом, множество решений задачи линейного программирования представляет собой выпуклое замкнутое множество • Если это множество к тому же и ограничено, то оно называется выпуклым многогранником
Теорема о структуре множества допустимых решений задачи линейного программирования • Крайняя точка n‑мерного многогранника это такая точка, в которой сходятся n его граней • Многогранник имеет конечное множество вершин и любая точка x, принадлежащая многограннику, может быть представлена как линейная комбинация множества вершин • Это означает, что множество опорных планов полностью определяет структуру множества допустимых решений задачи линейного программирования
Теорема об экстремуме линейной формы задачи линейного программирования • Линейная форма U = cjxj , j=[1, n], определенная на выпуклом многограннике aijxj bi, i = [1, m], xi 0 достигает экстремума в вершине этого многогранника • На интуитивном уровне доказательство теоремы сводится к следующему:
Теорема об экстремуме линейной формы задачи линейного программирования • Целевая функция U представляет собой n -1 гиперплоскость (линейная форма) в n‑пространстве и достигающую экстремума только на границе n‑мерного многогранника U • Если эта форма не является параллельной ни одной из граней или ребер многогранника, то экстремум может находится только в одной из его вершин
Теорема об экстремуме линейной формы задачи линейного программирования • Таким образом, решение задачи линейного программирования находится на границе допустимого множества и для нахождения решения задачи линейного программирования необходимо перебрать граничные точки допустимого множества • Значения переменных на границе, соответствующие максимальному значению целевой функции, и будут является решением • Очевидно, что задача максимизации U при какихлибо ограничениях эквивалентна задаче минимизации функции – U • При этом: max U = min(- U)
Графический метод решения задачи линейного программирования • В некоторых простейших случаях задачи линейного программирования допускают графический метод решения, который позволяет также глубже понять структуру задачи и методы ее решения
Графический метод решения задачи линейного программирования • Графический метод решения задачи линейного программирования возможен если удовлетворяются следующие условия. 1. Число неизвестных переменных в задаче не больше трех (n < 3). В этом случае целевая функция и область допустимых решений могут быть изображены на плоскости - для задачи с двумя неизвестными, либо в пространстве - для задачи с тремя неизвестными (ограничения могут быть как равенствами так и неравенствами) 2. Когда число переменных на два или три больше чем число ограничений. В первом случае имеет место двумерная, а во втором трехмерная интерпретация задачи линейного программирования (ограничения задаются только в виде равенств)
Графический метод решения задачи линейного программирования • Вторая графическая интерпретация позволяет преобразовать n-мерную область допустимых решений, где n - число неизвестных, в двумерную выпуклую область с n гранями и найти оптимум целевой функции в этой области • В графических примерах удобно пользоваться понятием «Градиент» и «Линия уровня» •
Графический метод решения задачи линейного программирования • Линией уровня линейного выражения называют место точек, удовлетворяющих заданному значению правой части • В пространстве R 2 линия уровня - это прямая, в трехмерном R 3 - плоскость, в n-мерном Rn - (n‑ 1)-мерная гиперплоскость • Все линии уровня задачи линейного программирования параллельны • Градиент линейного выражения - это вектор из коэффициентов при неизвестных в левой части • Например, градиент выражения Z=2 X 1+3 X 2 равен (2, 3) • Все градиенты перпендикулярны к своим линиям уровня. Будучи, изображенными в виде векторов, они указывают направление наиболее быстрого увеличения правой части
Пример для графического решения задачи линейного программирования • Предприятие готовится к выпуску двух различных модификаций средств пожаротушения, предназначенных для тушения пожаров в однотипных зданиях • При производстве каждого средства пожаротушения используется набор из пяти типов комплектующих • Расход комплектующих на производство средств пожаротушения каждой модификации показан в таблице на следующем слайде
Пример для графического решения задачи линейного программирования Модифи- Тип комплектующих кация 1 2 3 4 5 1 2 2 1 2 1 0 0 1
Пример для графического решения задачи линейного программирования • Количество комплектующих каждого типа, выделенных на производство средств пожаротушения обоих модификаций, равно 250, 150, 250, 110 и 110 единиц соответственно • Известно, что средство пожаротушения первой модификации способно эффективно действовать на пожаре с вероятностью равной 0. 4, а средство пожаротушения первой модификации - с вероятностью равной 0. 6
Пример для графического решения задачи линейного программирования • Необходимо определить объемы производства средств пожаротушения обоих модификаций, обеспечивающих эффективное тушение пожара • В качестве управляемых переменных Xj возьмем число средств пожаротушения j‑й модификации, которое должно выпустить предприятие
Пример для графического решения задачи линейного программирования • Для производства X 1 систем первой модификации требуется 2 X 1 комплектующих первого типа • Для производства X 2 систем второй модификации требуется X 2 комплектующих того же типа (см. введенную выше таблицу с исходными данными) • Отсюда следует ограничивающее неравенство: 2 X 1+X 2 250 • Рассуждая аналогично для комплектующих второго типа получим ограничивающее неравенство: 2 X 1 + 2 X 2 300 • Для комплектующих третьего типа ограничивающее неравенство имеет вид: X 1+2 X 2 250 • Количество комплектующих четвертого и пятого типов ограничено величиной 110 единиц: X 1 110, X 2 110 • На переменные накладываются также ограничения X 1, X 2 0
Пример для графического решения задачи линейного программирования • Из постановки задачи следует, что цель производства средств пожаротушения заключается в создании потенциальных возможностей для более эффективного тушения пожаров • Поскольку средство пожаротушения первой модификации способно эффективно действовать на пожаре с вероятностью равной 0. 4, а второй - с вероятностью 0. 6, целевая функция задачи задается выражением: max. U = 0. 4 X 1+ 0. 6 X 2
Пример для графического решения задачи линейного программирования • С учетом вышеизложенного, исходная задача в терминах линейного программирования имеет вид: • Целевая функция U =0. 4 X 1+0. 6 X 2, • Ограничения.
Пример для графического решения задачи линейного программирования • Требуется найти X 1*, X 2* при которых целевая функция достигает максимума
Пример для графического решения задачи линейного программирования • Первый шаг при использовании графического метода связан с построением области допустимых решений • Область допустимых решений находится по направлению, совпадающему с градиентом линии уровня соответствующего ограничения, если оно имеет знак больше или равно ( ), по противоположному направлению, если ограничение имеет знак меньше или равно ( )
Пример для графического решения задачи линейного программирования • Условия неотрицательности переменных ограничивают данную область положительным квадрантом системы прямоугольных координат X 1, X 2 • Остальные границы пространства решений отображаются линиями уровня, построенными по уравнениям, которые получаются при замене знака меньше или «равно» на знак «равно» в ограничениях исходной задачи • Выполнив указанные преобразования и отобразив их результаты графически, получим область допустимых решений
Пример для графического решения задачи линейного программирования • Для рассматриваемого примера эта область отображена на рис. 1. (область АВСДЕFG) • Цифры в кружках на рисунке указывают номер ограничения задачи, отображаемого соответствующей прямой • Как видно из рис. 1 a. она представляет собой выпуклый многоугольник • Ограничения можно строить просто используя метод построения прямой по отрезкам
Пример для графического решения задачи линейного программирования • Приравнивая x 1=0 в первом ограничении находим x 2=250 • Затем принимаем x 2=0, и находим x 1=125 • Отложив по осям точки x 1, x 2 соответственно 125 и 250, соединим их • В результате получаем отрезок, соответствующий первому ограничению
Пример для графического решения задачи линейного программирования • Так как ограничение имеет вид « » , то штриховка направлена левее отрезка • Аналогично можно построить и другие ограничения (на рис. 1 а линии ограничений пронумерованы в соответствии с их порядком в системе ограничений)
Пример для графического решения задачи линейного программирования • Целевая функция задачи линейного программирования для случая двух переменных отображается на графике семейством параллельных прямых (ее построение показано на рис. 1 б) • Для того, чтобы определить точку оптимума задачи необходимо знать: 1) угол наклона этого семейства к осям координат; 2) направление возрастания (убывания) целевой функции • Для выяснения первого вопроса (определение точки оптимума) зададим целевой функции произвольные значения, например Z 1=24 и построим прямую 0. 4 X 1+0. 6 X 2=24 (построить целевую функцию можно также используя метод построения прямой по отрезкам)
Пример для графического решения задачи линейного программирования • Для ответа на второй вопрос (направление возрастания (убывания) целевой функции) найдем градиент • Он равен (0. 4, 0. 6) • Отобразим его на линии уровня целевой функции стрелкой • Теперь становится очевидным, что целевая функция растет при ее приближении к точке D области допустимых решений и именно в этой точке находится оптимальное решение задачи • Точка D есть крайняя точка, в которой область допустимых значений пересекается с целевой функцией при возрастании последней • Осталось определить координаты точки D и величину целевой функции в этой точке
Пример для графического решения задачи линейного программирования • На рис. 1 б видно, что из пяти неравенств задачи два, а именно второе и третье превращаются в точке D в равенства • Воспользуемся этим фактом для решения задачи, рассчитав величину переменных X 1 и X 2 из системы линейных уравнений:
Пример для графического решения задачи линейного программирования • В результате решения этой системы получили X 1=50, X 2=100 • Теперь можно рассчитать и величину целевой функции в точке D • Она оказывается равной 80 • Таким образом, используя выделенное количество комплектующих каждого из пяти типов, можно построить 50 средств пожаротушения первой модификации и 100 единиц второй • Это количество средств пожаротушения окажется эффективным для тушения 80 пожаров
Пример для графического решения задачи линейного программирования • Любое другое соотношение между производством средств пожаротушения первой и второй модификации в рамках заданных ограничений окажется хуже в том смысле, что количество потенциально возникающих пожаров будет меньше
Пример для графического решения задачи линейного программирования • Таким образом алгоритм решения задачи графическим способом в случае когда число переменных не больше трех следующий: 1. На основании ограничений строится область допустимых решений D. Причем если имеет место знак «+» то штриховка левее (ниже) прямой, в противном случае - правее (выше), а если ограничение имеет вид равенства, то штриховка отсутствует 2. Строится прямая в координатах переменных задачи линейного программирования, соответствующая целевой функции Z (для этого выбирается произвольное значение целевой функции)
Пример для графического решения задачи линейного программирования 3. Строится вектор нормали N к целевой функции Z. Вектор нормали указывает направление возрастания целевой функции 4. Перемещаем прямую Z = const в направлении N так, что бы она оставалась перпендикулярной N до тех пор, пока эта прямая не выйдет на границу множества D
Пример для графического решения задачи линейного программирования • Таким образом, обобщенный графический метод решения задач линейного программирования заключается в выполнении следующего алгоритма: 1. Представляем задачу линейного программирования в стандартной канонической форме (предварительно проверяется условие n ‑k 3) 2. Определяются координатные переменные (основное условие для их выбора линейная независимость) 3. Некоординатные переменные выражаются через координатные 4. Из условий неотрицательности некоординатных переменных получаем систему ограничений неравенств, содержащих только координатные переменные
Пример для графического решения задачи линейного программирования 5. В системе координатах переменных строим допустимое множество решений D, определяемое полученными ограничениями 6. Выражаем целевую функцию в координатных переменных 7. Строим целевую функцию Z 8. Строим вектор нормали N к целевой функции Z 9. Двигая целевую функцию в направлении вектора нормали, находим оптимальное решение как граничную точку допустимого множества
Лекция 3. Решение задач линейного программирования Учебный вопрос 3. Симплекс-метод решения задачи
Симплекс-метод • Согласно симплекс-методу оптимальный план достигается направленным перебором наборов базисных и свободных переменных • Определяется начальный набор • Затем каждый раз в наборе производится замена одной базисной переменной на свободную переменную, приводящую к улучшению плана • Заменяемые переменные не повторяются
Симплекс-метод • Так как число возможных наборов базисов ограничено (не более Cnm), то итерационный процесс конечен • Опытным путем установлено, что для большей части задач число итераций составляет от 1, 5 m до 3 m (где m – число уравнений-ограничений)
Симплекс-метод • Все преобразования, реализующие симплекс-метод, проводятся не с самими уравнениями и целевой функцией, а с таблицами, составленными из коэффициентов при переменных и из свободных членов (см. таблицу на следующем слайде)
Симплекс-метод i j 0 1 2 … n 0 U c 1 c 2 … cn 1 b 1 a 12 … a 1 n 2 b 2 a 21 a 22 … a 2 n … … … m bm am 1 am 2 … amn
Алгоритм решения задачи на основе симплексметода • Алгоритм решения задачи на основе симплекс-метода представляется последовательностью следующих шагов: • Шаг 1. Приведение задачи к каноническому виду • Шаг 2. Построение начального плана • Шаг 3. Проверка оптимальности плана: 1. Если «да» , то возможны два варианта: а) получен оптимальный план и в этом случае - «Оформление полученных результатов» и конец алгоритма; б) задача не имеет решения и выдача сообщения «Задача не имеет решения» ; 2. Если «нет» (то есть некоторые коэффициенты имеют отрицательные значения) – переход на шаг 4.
Алгоритм решения задачи на основе симплексметода • Шаг 4. Проверка «Разрешающий элемент выбран? » : - если «да» - переход на шаг 5; - если «нет» - выдача сообщения: «Целевая функция не ограничена» и конец алгоритма • Шаг 5. Выполнение процедуры полного исключения с выбранным разрешающим элементом и переход на шаг 3
Алгоритм решения задачи на основе симплексметода • Рассмотрим выполнение этих шагов алгоритма симплекс-метода на примере следующей постановки задачи.
Постановка задачи • Для технического обслуживания и ремонта трех типов средств пожаротушения имеются четыре мастерских • Мастерская типа j (j = 1, 2, 3, 4) может принять одновременно aij средств пожаротушения типа i (i =1, 2, 3) и произвести их обслуживание и ремонт при стоимости cij • Каждый тип средств пожаротушения представлен bij единицами • Требуется найти, сколько потребуется мастерских каждого типа, чтобы обслужить все средства пожаротушения за один прием и с минимальными затратами • Исходные данные к задаче приведены в таблице на следующем слайде
Постановка задачи i j 0 1 2 3 4 0 U 4 4 3 2 1 24 1 2 4 0 2 18 3 2 0 2 3 18 0 4 3 1
Решение задачи • Шаг 1. Приведение задачи к каноническому виду • В зависимости от того, какой начальный вид имеет задача, применяют те или иные рассмотренные ранее преобразования • В рассматриваемой задаче необходимо избавиться от неравенств • Введем дополнительные переменные x 5, x 6 и x 7 • Целевая функция и ограничения примут следующий вид: U = 4 x 1 + 4 x 2 +3 x 3 +2 x 4 +0 x 5 +0 x 6 + 0 x 7 1 x 1 + 2 x 2 +4 x 3 +0 x 4 -1 x 5 -0 x 6 + 0 x 7 = 24 3 x 1 + 2 x 2 +0 x 3 +2 x 4 +0 x 5 -1 x 6 + 0 x 7 = 18 0 x 1 + 4 x 2 +3 x 3 +1 x 4 +0 x 5 +0 x 6 - 1 x 7 = 18 x 1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0, x 4 ≥ 0 • Каждой дополнительной переменной можно придать смысл числа мастерских фиктивного типа, которые обслуживают средства пожаротушения, создающие превышение над заданным числом bi
Решение задачи • Шаг 2. Построение начального плана • Для построения начального плана систему уравнений необходимо преобразовать так, чтобы базисные переменные остались по одной в каждом уравнении, а коэффициенты при них стали равны единице • Тогда после приравнивания остальных (свободных) переменных нулю сразу получим начальный план: X(1) = (x(1)1, x(1)2, …, x(1)j, …, x(1)m, 0, 0, …, 0), где x(1)1 = β(1)1, x(1)2 = β(1)2, …, x(1)m = β(1)m; β(1)i – значения преобразованных свободных членов b i; j/ - порядковый номер базисной переменной в плане
Решение задачи • Этому плану будет соответствовать значение целевой функции:
Решение задачи • Начальный план (базис) может строиться различными способами • Одним из общих способов является введение искусственных переменных • В каждое уравнение ограничений, где нет базисной переменной, вводится искусственная переменная xn+k (k = 1, 2, …, m) с единичным коэффициентом • К целевой функции все искусственные переменные xn+k присоединяются с общим коэффициентом М, значение которого выбирается достаточно большим (M >> max cj)
Решение задачи • Доказано, что такой прием правомочен • Если существует хотя бы одно допустимое решение, то в процессе оптимизации каждая из введенных переменных xn+k обратится в нуль • Если же допустимых решений нет, то симплексные преобразования закончатся на решении, содержащем по меньшей мере одну искусственную переменную • Наша задача не содержит в явном виде единичный базис
Решение задачи • Введем искусственные переменные x 8, x 9 и x 10 • Модель примет вид: U = 4 x 1+ 4 x 2+3 x 3+2 x 4+0 x 5+0 x 6+ +0 x 7+Мx 8+Мx 9+Мx 10 x 1+2 x 2+4 x 3+0 x 4 -1 x 5 -0 x 6+0 x 7+1 x 8+0 x 9+0 x 10 = 24 3 x 1+2 x 2+0 x 3+2 x 4+0 x 5 -x 6+0 x 7+0 x 8+1 x 9+0 x 10= =18 0 x 1+4 x 2+3 x 3+1 x 4+0 x 5+0 x 6 -1 x 7+0 x 8+0 x 9+1 x 10= = 18 xj =0, j = 1, 2 , …, 10
Решение задачи • При записи начальной симплекс-таблицы, соответствующей этой модели, производят исключение искусственных переменных в целевой функции • Для этого необходимо выразить каждую базисную переменную в уравненияхограничениях через свободные переменные, подставить в целевую функцию и привести подобные члены
Решение задачи • Более просто данная процедура реализуется путем вычитания из целевой функции уравнений-ограничений, обе части которых предварительно умножаются на М • Новые значения коэффициентов целевой функции находятся как
Решение задачи • В дальнейшем по ним оценивается построенный план • Левый элемент нулевой строки содержит значение целевой функции (U = 60 M) • Столбец свободных членов содержит значения базисных неизвестных
Решение задачи j i 0 1 2 3 4 4 -4 M 4 -8 M 3 -7 M 2 -3 M 5 M 6 M 7 M 8 0 9 0 10 0 U 60 M 0 1 24 1 2 4 0 -1 0 0 2 18 3 2 0 -1 0 0 1 0 3 18 0 4 3 1 0 0 -1 0 0 1
Решение задачи • Приравняв небазисные переменные x 1, x 2, x 3, x 4, x 5, x 6 и x 7 нулю, получим значения базисных составляющих начального плана x 8 = 24, x 9 = 18 и x 10 = 18 • План обеспечивает значение целевой функции U = 60 M
Решение задачи • Шаг 3. Проверка оптимальности плана • Чтобы проверить, является ли полученный план оптимальным или нет, необходимо произвести анализ значений коэффициентов при свободных переменных в целевой функции (в строке 0 симплексной таблицы). • Каждый коэффициент в строке 0 определяет положительное (если его значение больше нуля) или отрицательное (если его значение меньше нуля) приращение целевой функции U при увеличении на единицу соответствующей ему небазисной переменной
Решение задачи • Если значения коэффициентов положительны, то, увеличивая какую-то свободную переменную сверх нуля (вводя ее в базисные переменные), мы не сможем уменьшить значение целевой функции • Следовательно, либо получен оптимальный план и нужно переходить на шаг 6 (при отсутствии искусственных переменных в плане), либо задача не имеет решения (при наличии искусственных переменных в плане)
Решение задачи • Если же некоторые коэффициенты имеют отрицательные значения, то при увеличении одной из соответствующих им свободных переменных можно добиться улучшения плана • План x(1) не является оптимальным (γ 1, γ 2, γ 3 и γ 4 < 0)
Решение задачи • Шаг 4. Выбор разрешающего элемента для улучшения плана • Включению в план подлежит та из свободных переменных xs, для которой оценка γs отрицательна и имеет наибольшее абсолютное значение: γs < 0, γs = maxj| γj|. • Это обеспечивает (но не всегда) сокращение числа итераций
Решение задачи • Теперь остается выяснить, какая базисная переменная должна исключаться из плана • Тем самым мы определим, с каким значением будет введена свободная переменная • Чем больше значение xs, тем меньше значение U • Однако нельзя забывать об ограничениях
Решение задачи • Из ограничений следует, что необходимо выводить ту переменную xr, у которой минимальное положительное значение отношения свободного члена к коэффициенту при переменной в столбце s:
Решение задачи • Величина βi /αis определяет максимально допустимое значение базисной переменной xs в каждом ограничении • Так, по условиям рассматриваемой задачи (s = 2): - исходя из возможностей обслуживания средств пожаротушения первого типа, можно взять x 1 = 24/2 = 12; - исходя из возможностей обслуживания средств пожаротушения второго типа x 2 = 18/2 = 9; - исходя из возможностей обслуживания средств пожаротушения третьего типа x 3 = 18/4 = 4, 5. • В целом максимально допустимым значением, очевидно, может быть x 3 = 4, 5 (это узкое место).
Решение задачи • Если для столбца S не окажется ни одной базисной переменной с положительным значением отношения βi /αis, то, значит, целевая функция не ограничена снизу • Строку r, столбец s и элемент ars принято называть разрешающими • В рассматриваемой задаче разрешающим элементом будет элемент a 32 • Для элемента a 32: γ 2 = 4 – 8 M, β 3 /α 32 = 4, 5
Решение задачи • Шаг 5. Выполнение процедуры полного исключения с разрешающим элементом αrs • Переход к новой симплекс-таблице обеспечивается выполнением процедуры полного исключения, широко используемой при решении систем линейных уравнений • Все элементы разрешающей строки s делятся на значение разрешающего элемента αrs
Решение задачи • Чтобы исключить переменную, которой соответствует коэффициент αrs, в остальных строках i (i = 0, 1, 2, …, m, i ≠r), вычитают из каждой из них строку с αrs, умноженную на значение коэффициента αis
Решение задачи • В результате получится новая таблица со значениями элементов: αrs/ = 1; αrj / = αrj / αrs; αij / = αij -(αrj / αrs)* αis, i = 0, 1, 2, …, m; j = 0, 1, 2, …, n; i ≠r; i ≠s.
Решение задачи • Целевая функция подвергается тем же самым преобразованиям, что и ограничения задачи • Поэтому целевая функция оказывается всегда выраженной через свободные переменные • Реализация шагов 3, 4 и 5 представляет собой одну итерацию по улучшению плана • Далее, начиная с шага 3, должна выполняться следующая итерация
Решение задачи • Так как вводить искусственные переменные, исключенные из базиса на очередной итерации, в какой-то из последующих базисов не имеет смысла, то преобразование соответствующих им столбцов излишне • Результаты первой итерации для рассматриваемой задачи представлены в таблице на следующем слайде
Решение задачи j i 0 1 2 3 4 5 6 7 8 9 10 0 U 24 M 18 4 -4 M 0 -M 1 -M M M 1 -M 0 0 2 М-1 1 15 1 0 5/2 -1 0 1/2 1 0 -1/2 2 9 3 0 -3/2 1 0 -1 1/2 0 1 -1/2 3 4. 5 0 1 3/4 1/4 0 0 -1/4 0 0 1/4
Решение задачи • Значение целевой функции при полученном плане уменьшилось до U(2) = -24 M-18 • После трех итераций все искусственные переменные (x 8, x 9 и x 10) окажутся исключенными из плана (см. таблицу на очередном слайде) • Целевая функция примет значение U(4) = 38
Решение задачи j i 0 1 2 3 4 5 6 7 0 U-38 0 -4 -4 М 0 11/3 2/3 10/9 13/ /9(4/3 )М 1 4 0 0 1 -1/3 1/9 2 5 1 0 0 1/3 -1/6 -5/18 2/9 3 1. 5 0 1/2 1/4 -1/12 -1/3 8 9 10
Решение задачи • Но план не оптимален • Для получения оптимального плана потребуется еще две итерации • Последней итерации соответствует таблица на следующем слайде
Решение задачи j i 0 1 2 3 4 5 6 7 0 U-36 1/4 1/2 0 0 9/12 35/36 0 1 9 9/4 -3/2 0 0 -3/4 -1/2 1 2 9 3/2 1 0 -2/3 0 3 6 -1/4 1/2 1 0 -1/12 0 0 8 9 10
Решение задачи • Шаг 6. Оформление полученных результатов • Полученные результаты представляются обычно в табличном виде (см. таблицу) Номер j Элементы решения xj Оценки cj 1 2 3 4 0 0 6 9 4 4 3 2
Решение задачи • Эффективность оптимального решения равна 36 единиц • Как следует из таблицы, оптимальным для решаемой задачи будет план: x(6) = {x 1 = 0, x 2 = 0, x 3 = 6, x 4 = 9} • При этом затраты составят U(6) = 36 единиц и дополнительно еще может быть обслужено 9 средств пожаротушения, так как x 7 = 9
Решение задачи • Даже для таких простых исходных данных, как в рассматриваемом примере, оптимальное решение не было сначала очевидным • С увеличением размерности симплекстаблицы об угадывании решения и говорить не приходится – его можно найти только, применяя математические методы


