Главная страница
Навигация по странице:

  • Теорема 4.2

  • Теорема 4.3

  • 4.4. Альтернативный вариант оформления симплекс-метода Запишем задачу линейного программирования (4.1)

  • Утверждение.

  • 4.5. Симплекс-анализ

  • Езу9у. Учебное пособие Рекомендовано методическим советом Уральского федерального университета в качестве учебного пособия для студентов вуза, обучающихся по направлениям подготовки


    Скачать 5.85 Mb.
    НазваниеУчебное пособие Рекомендовано методическим советом Уральского федерального университета в качестве учебного пособия для студентов вуза, обучающихся по направлениям подготовки
    АнкорЕзу9у
    Дата03.11.2022
    Размер5.85 Mb.
    Формат файлаpdf
    Имя файла978‑5‑7996-2956-4_2020.pdf
    ТипУчебное пособие
    #769125
    страница11 из 21
    1   ...   7   8   9   10   11   12   13   14   ...   21
    Теорема 4.1 (правило перехода к новой вершине). Если хотя бы одна оценка

    j
    , jJ разложения вектора A
    j
    по базису допустимого решения отрицательна

    j
    < 0 (положительна ∆
    j
    > 0), а при соответствующей переменной x
    j
    есть хотя бы один положительный коэффициент α
    ij
    > 0, то CX
    2
    > CX
    1
    в задаче на максимум
    (CX
    2
    < CX
    1
    в задаче на минимум).
    Таким образом, можно найти новое базисное решение, на котором значе- ние целевой функции будет больше в задаче на максимум и меньше в задаче на минимум.
    Чтобы обеспечить наибольшее изменение целевой функции при переходе от одного базисного решения к другому, векторы, исключаемый (выводимый)

    94
    из базиса и вводимый в базис допустимого решения, согласно (4.12) необходимо выбирать из условий:
    в задаче на максимум max{
    ,
    } max{
    ,
    };
    j
    j
    j
    Z j J
    j J

    ∉ =
    −θ ∆ ∉
    (4.13)
    в задаче на минимум min{
    ,
    } min{
    ,
    }.
    j
    j
    j
    Z j J
    j J

    ∉ =
    −θ ∆ ∉
    (4.14)
    В упрощенном варианте вектор, вводимый в базис допустимого решения, выбирается из условий:
    в задаче на максимум min{ ,
    };
    j
    j J
    ∆ ∉
    (4.15)
    в задаче на минимум max{ ,
    }.
    j
    j J
    ∆ ∉
    (4.16)
    Теорема 4.2 (правило неограниченности целевой функции). Если существует вектор A
    j
    , для которого оценка ∆
    j
    ≤ 0 и при соответствующей переменной x
    j
    нет ни одного положительного коэффициента (все α
    ij
    ≤ 0,
    1, ),
    i
    m
    =
    то в задаче на максимум целевая функция не ограничена в области допустимых решений, т. е. max Z(X) = + ∞.
    Аналогично, если существует A
    j
    : ∆
    j
    ≥ 0 и для любого
    1,
    i
    m
    =
    α
    ij
    ≤ 0 (в задаче на минимум), то min Z(X) = −∞.
    Теорема 4.3 (правило оптимальности решения). Допустимое базисное решение задачи линейного программирования является оптимальным, если для любого вектора A
    j
    оценка разложения по базису допустимого решения неотрицательная (неположительная), то есть:
    • все ∆
    j
    ≥ 0 в задаче на максимум;
    • все ∆
    j
    ≤ 0 в задаче на минимум.
    Признак единственности оптимального решения. Оптимальное решение задачи линейного программирования является единственным, если для любого вектора A
    j
    , не входящего в базис, оценка вектора отлична от нуля, то есть:
    0,
    {
    1,
    2, , }.
    j
    j m
    m
    n
    ∆ ≠ ∀ ∈
    +
    + 
    Здесь в базис входят первые m векторов.
    Условие существования множества оптимальных решений. Задача линей- ного программирования имеет бесконечное множество оптимальных решений, если при оптимальном решении оценка хотя бы одного вектора, не входящего в базис, равна нулю, т. е. существует
    {
    1,
    2, , }:
    0.
    j
    j m
    m
    n

    +
    +
    ∆ =


    95
    4.3. Алгоритм решения задачи симплексным методом
    Для решения задачи симплексным методом применяется следующий а л г о р и т м:
    1. Привести задачу линейного программирования к каноническому виду.
    2. Найти первое допустимое решение с базисом из единичных векторов и коэффициенты разложений векторов по этому базису. Если это сделать труд- но, то использовать метод искусственных переменных, который изложен в сле- дующем пункте.
    3. Если базисное решение найти невозможно, то задача не имеет решения ввиду несовместности системы ограничений.
    4. Вычислить оценки разложений векторов по базису допустимого решения и заполнить симплекс-таблицу.
    5. Если выполнено правило оптимальности (теорема 4.3), то найденное решение оптимальное.
    6. Если найденное решение задачи единственное, то решение задачи за- канчивается.
    7. Если выполняется условие существования множества оптимальных ре- шений, то найти все оптимальные решения.
    8. Проверить, существует ли ∆
    j
    < 0 (∆
    j
    > 0) и
    1,
    i
    m
    ∀ =
    a
    ij
    ≤ 0. Если да, то
    Z
    max
    = + ∞(Z
    min
    = −∞).
    9. Если не выполняются условия шагов 4–8, то выбрать любой небазисный столбец, где ∆
    j
    < 0, следуя условиям (4.13)–(4.14) или (4.15)–(4.16), и зафикси- ровать его номер l.
    10. Определить для выбранного столбца параметр θ
    0l
    , т. е. найти строку, где
    i
    il
    b a
    минимально по всем i таким, что a
    il
    > 0, и зафиксировать ее номер k.
    Элемент a
    kl
    выбрать за разрешающий и вернуться к п. 4.
    Алгоритм конечен, так как при каждой новой итерации осуществляется переход к новой вершине многоугольника решений, а вершин конечное число.
    Пример 4.1. Решить симплексным методом следующую задачу линейного программирования:
    ( )
    1 3
    4 1
    2 3
    4 1
    2 3
    7 4
    max,
    2 6,
    2 1;
    0,
    1, 4.
    j
    Z X
    x
    x
    x
    x x
    x
    x
    x x
    x
    x
    j
    =
    +



    +




    +

    ≤ −


    =

    96
    Решение. Приведем задачу линейного программирования к каноническо- му виду. Для этого сначала умножим обе части второго неравенства системы ограничений на (−1):
    1 2
    3 2
    1 | ( 1).
    x x x
    +

    ≤ −
    × −
    Получим неравенство с положительной правой частью:
    1 2
    3 2
    1.
    x x x


    +

    Далее вводим дополнительные (Д) переменные x
    5
    и x
    6
    :
    Д
    1 2
    3 4
    5 1
    2 3
    6 2
    6,
    2 1;
    0,
    1, 4.
    j
    x x
    x x
    x
    x x
    x
    x
    x
    j


    +


    +

     − − +


    

    =
    Итак, задача принимает вид:
    ( )
    1 3
    4 7
    4
    max,
    Z X
    x
    x
    x
    =
    +


    1 2
    3 4
    5 1
    2 3
    6 2
    6,
    2 1;
    x x
    x x x
    x x
    x
    x

    +

    +
    =

    − − +

    =

    (4.17)
    0,
    1, 6.
    j
    x
    j

    =
    Используя метод Гаусса — Жордана, приведем систему ограничений (4.17) к равносильной разрешенной системе уравнений (табл. 4.2). Для сохранения неотрицательности правых частей уравнений вводим параметр θ
    j
    . Получим первое базисное решение X
    1
    = (0, 0, 1, 0, 6, 0) с базисом (A
    5
    , A
    3
    ).
    Таблица 4.2
    Шаг Базис A
    1
    A
    2
    A
    3
    A
    4
    A
    5
    A
    6
    B
    θ
    3
    Базисное решение
    1
    A
    5 1
    –1 2
    –1 1
    0 6
    3
    –2
    –1
    1
    0 0
    –1 1
    1
    2
    A
    5 5
    1 0
    –1 1
    2 4
    X
    1
    = (0, 0, 1, 0, 4, 0)
    A
    3
    –2
    –1 1
    0 0
    –1 1
    Далее вычислим оценки разложений векторов по базису допустимого ре- шения по формулам (4.6)–(4.7):
    0 0,1 4
    ( ) ( )
    ,1 0 4 1 1 1;
    CB
    ∆ =
    =

    = ⋅ + ⋅ =
    1 1
    1
    (0,1) (5, 2) 7 0 5 1 ( 2) 7 9;
    CA c
    ∆ =
    − =
    ⋅ − − = ⋅ + ⋅ − − = −

    97 2
    2 2
    (0,1) (1, 1) 0 0 1 1 ( 1)
    1;
    CA c
    ∆ =
    − =
    ⋅ − − = ⋅ + ⋅ − = −
    3 3
    3
    (0,1) (0,1) 1 0 0 1 1 1 0;
    CA c
    ∆ =
    − =

    − = ⋅ + ⋅ − =
    4 4
    4
    (0,1) ( 1,0) 4 0 ( 1) 1 0 4 4;
    CA c
    ∆ =
    − =
    ⋅ −
    + = ⋅ − + ⋅ + =
    5 5
    5
    (0,1) (1,0) 0 0 (1) 1 0 0;
    CA c
    ∆ =
    − =

    − = ⋅
    + ⋅ =
    6 6
    6
    (0,1) (2, 1) 0 0 2 1 ( 1) 0 1.
    CA c
    ∆ =
    − =
    ⋅ − − = ⋅ + ⋅ − − = −
    Теперь можем составить симплексную таблицу (табл. 4.3).
    Таблица 4.3
    Базис
    C
    баз
    B
    7 0
    1
    –4 0
    0
    θ
    1
    θ
    2
    θ
    6
    A
    1

    A
    2
    A
    3
    A
    4
    A
    5
    A
    6
    A
    5 0
    4
    5
    1 0
    –1 1
    2 4/5 4
    2
    A
    3 1
    1
    –2
    –1 1
    0 0
    –1
    Z(X)

    j
    1
    –9
    –1 0
    4 0
    –1
    В первом столбце «Базис» записываются векторы, входящие в базис допу- стимого решения. Порядок записи соответствует номерам разрешенных неиз- вестных в уравнениях-ограничениях. Во втором столбце «C
    баз
    » записываются коэффициенты целевой функции при базисных неизвестных в том же порядке.
    В последней строке с оценками ∆
    j
    в столбце «B» записывается значение целе- вой функции Z(X
    1
    ) = CB. Заметим, что оценки единичных векторов, входящих в базис, всегда равны нулю.
    Начальное базисное решение не является оптимальным, так как в рассма- триваемой задаче на максимум векторам A
    1
    , A
    2
    , A
    6
    соответствуют отрицатель- ные оценки ∆
    1
    = −9, ∆
    2
    = −1, ∆
    6
    = −1 (признак оптимальности не выполняется).
    В данном случае можно найти новое решение, при котором значение целевой функции не уменьшится. Приращение целевой функции находится по форму- ле (4.13). Находим
    ( )
    ( )
    ( )
    4 36
    max max
    9 , 4 1 , 2 1
    5 5
    j
    j
    Z


    ∆ =
    − ⋅ −
    − ⋅ −
    − ⋅ −
    =




    при j = 1.
    Таким образом, вместо вектора A
    5
    в базис следует ввести вектор A
    1
    . За раз- решающий элемент принимаем число 5 (единственный положительный элемент этого столбца) (табл. 4.3). Выполняем преобразования Гаусса — Жордана.
    Приходим к табл. 4.4 с новым базисным решением
    2 4
    13
    , 0, , 0, 0, 0 ,
    5 5
    X


    = 



    базисом (A
    1
    , A
    3
    ), значением целевой функции
    2
    ( ) 41 5.
    Z X =
    В оценочной стро-

    98
    ке все оценки ∆
    j
    ≥ 0,
    1, 4,
    j =
    следовательно, полученное допустимое базисное решение является оптимальным.
    Таблица 4.4
    Базис
    C
    баз
    B
    7 0
    1
    –4 0
    0
    A
    1
    A
    2
    A
    3
    A
    4
    A
    5
    A
    6
    A
    1 7
    4/5 1
    1/5 0
    –1/5 1/5 2/5
    A
    3 1
    13/5 0
    –3/5 1
    –2/5 2/5
    –1/5
    Z(X)

    j
    41/5 0
    4/5 0
    11/5 4/5 13/5
    Так как исходная задача имеет четыре неизвестных, то в ответе две допол- нительные неизвестные не записываем.
    Итак,
    41
    max ( )
    5
    Z X =
    при
    4 13
    , 0, , 0 .
    5 5
    X



    = 



    4.4. Альтернативный вариант
    оформления симплекс-метода
    Запишем задачу линейного программирования (4.1)(4.3) в компактном виде и рассмотрим для определенности задачу на максимум:
    1 1 2 2
    ( )
    max,
    n n
    Z X c x c x
    c x
    =
    +
    + +


    (
    )
    1 1
    ,
    ,
    ij j
    i
    n
    j
    a x b
    i
    m
    =
    =
    =

    (4.18)
    (
    )
    1,
    0
    j
    j
    n
    x
    =

    Будем считать, что r(A) = m < n, b
    i
    ≥ 0
    ( 1, ).
    i
    m
    =
    Введем новую переменную x
    0
    = c
    1
    x
    1
    + c
    2
    x
    2
    + … + c
    n
    x
    n
    . Рассмотрим две системы линейных уравнений:
    (
    )
    1
    ( 1, ),
    (I)
    0 1,
    n
    ij j
    i
    j
    j
    a x b
    i
    m
    x
    j
    n
    =

    =
    =


     ≥
    =



    99
    и
    (
    )
    0 1
    1 0,
    (II)
    ( 1, ),
    0 1, .
    n
    j j
    j
    n
    ij j
    i
    j
    j
    x
    c x
    a x b
    i
    m
    x
    j
    n
    =
    =


    =



    =
    =


     ≥
    =




    Утверждение. Совокупность действительных чисел
    0 1
    ( , , , )
    n
    x x
    x
     


    является решением системы (II) в том и только в том случае, если набор
    1
    ( , , )
    n
    x
    x



    — ре- шение системы (I), причем
    0
    x CX
    = 

    — значение целевой функции на некотором решении
    1
    ( , , )
    n
    X
    x
    x
    =




    системы (I).
    Это утверждение позволяет свести исходную задачу к задаче нахождения решения
    0 1
    ( , , , )
    n
    x x
    x
     


    системы (II) с максимальным (минимальным) значением компоненты
    0
    x
    4.5. Симплекс-анализ
    Пусть система линейных уравнений (I) приведена к единичному базису.
    Для определенности будем считать, что x
    1
    , x
    2
    , …, x
    m
    — базисные переменные, а x
    m+1
    , x
    m+2
    , …, x
    n
    — свободные. Тогда система уравнений (II) будет эквивалентна системе:
    0 1 1 1
    1 1
    1,
    1 1
    1 1
    ,
    1 1
    0,
    ,
    ;
    m m
    m
    m
    n n
    m
    m
    n n
    m
    m m
    m
    mn n
    m
    x
    c x
    c x
    c x
    c x
    x
    x
    x
    x
    x
    x
    +
    +
    +
    +
    +
    +

    − −

    − −
    =


    + α
    + + α
    = β




    + α
    + + α
    = β







     





    (4.19)
    0,
    1, ,
    j
    x
    j
    n

    =
    где
    0,
    1, .
    i
    i
    m
    β ≥ ∀ =
    Составим симплекс-таблицу (табл. 4.5), соответствующую системе урав- нений (4.19).
    В первом столбце указываются базисные переменные (БП) системы (4.19).
    В следующих столбцах записывают коэффициенты при неизвестных x
    j
    ,
    0, .
    j
    n
    =
    Понятно, что коэффициенты при x
    0
    (кроме коэффициента целевой функции) не изменяются при преобразованиях матрицы системы. Коэффициенты первого

    100
    уравнения системы (4.19) записываются отдельной строкой. На самом деле это коэффициенты целевой функции (кроме коэффициента при x
    0
    ), записанные
    с противоположными знаками. В дальнейшем будем называть эту строку стро-
    кой целевой функции или Z-строкой. Коэффициенты каждого из остальных уравнений (ограничений) записываются в отдельную строку. Значения правых частей этих уравнений записаны в столбце «B».
    Таблица 4.5
    БП
    x
    0
    x
    1
    x
    2

    x
    m
    x
    m+1

    x
    n
    B
    Z = x
    0
    → max
    1
    c
    1
    c
    2

    c
    m
    c
    m+1

    c
    n
    0
    x
    1 0
    1 0

    0
    α
    1, m+1

    α
    1n
    β
    1
    x
    2 0
    0 1

    0
    α
    2, m+1

    α
    2n
    β
    2










    x
    m
    0 0
    0

    1
    α
    m, m+1

    α
    mn
    β
    m
    Умножим строки ниже Z-строкина c
    1
    , …, c
    m
    соответственно и прибавим к Z-строке, получим табл. 4.6.
    Таблица 4.6
    БП
    x
    0
    x
    1
    x
    2

    x
    m
    x
    m+1

    x
    n
    B
    Z = x
    0
    → max
    1 0
    0

    0 1
    m
    c
    +


    n
    c
    β
    0
    x
    1 0
    1 0

    0
    α
    1, m+1

    α
    1n
    β
    1
    x
    2 0
    0 1

    0
    α
    2, m+1

    α
    2n
    β
    2










    x
    m
    0 0
    0

    1
    α
    m, m+1

    α
    mn
    β
    m
    В результате система (4.19) преобразуется в разрешенную относительно
    x
    0
    , x
    1
    , …, x
    m
    :
    0 1
    1 0
    1 1,
    1 1
    1,
    1
    ,
    1 1
    ,
    ,
    ;
    m
    m
    n n
    m
    m
    n n
    m
    m m
    m
    mn n
    m
    x
    c x
    c x
    x
    x
    x
    x
    x
    x
    +
    +
    +
    +
    +
    +
    +
    + +
    = β


    + α
    + + α
    = β




    + α
    + + α
    = β





     
     





    (4.20)
    0,
    1, .
    j
    x
    j
    n

    =
    Итак, получено первое допустимое базисное решение системы (4.20):
    0
    X
    = (β
    0
    , β
    1
    , β
    2
    , …, β
    m
    , 0, …, 0). Очевидно, что это базисное решение системы
    (4.19). Из (4.20) находим:

    101 0
    0 1
    1 1
    1 1,
    1 1
    1
    ,
    1 1
    ,
    ,
    ;
    m
    m
    n n
    m
    m
    n n
    m
    m
    m m
    m
    mn n
    x
    c x
    c x
    x
    x
    x
    x
    x
    x
    +
    +
    +
    +
    +
    +
    = β −



     =β −α
    − − α




    = β − α
    − − α





    

    0,
    1, .
    j
    x
    j
    n

    =
    Пусть в задаче на максимум все
    0.
    m j
    c
    +


    Тогда
    0 0
    x ≤ β
    и увеличить значе- ние целевой функции за счет увеличения свободных неизвестных x
    m+1
    , …, x
    m
    невозможно.
    Таким образом, (β
    0
    , β
    1
    , β
    2
    , …, β
    m
    , 0, …, 0) — оптимальное решение, причем
    x
    0
    = β
    0
    — оптимальное (максимальное) значение целевой функции.
    1   ...   7   8   9   10   11   12   13   14   ...   21


    написать администратору сайта