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

  • 1. Постановка и особенности задач дискретного программирования

  • Алгоритм Гомори

  • 1. Постановка и особенности задач дискретного


    Скачать 177.02 Kb.
    Название1. Постановка и особенности задач дискретного
    Дата15.12.2020
    Размер177.02 Kb.
    Формат файлаpdf
    Имя файлаlect.pdf
    ТипЗадача
    #160820
    страница1 из 3
      1   2   3
    Оглавление. Постановка и особенности задач дискретного программировании 4 2. Методы отсечения 7 3. Задача о ранце 15 Метод ветвей и границ Список использованной литературы 31
    Дискретное программирование сформировалось как самостоятельная и важная часть математического программирования в конце х годов. Основная задача дискретного программирования – выбор наилучшего варианта из конечного, возможно, очень большого их числа. Возникающие при этом экстремальные задачи имеют ряд особенностей, которые не встречаются в таких стандартных задачах математического программирования, как линейные, выпуклые или многокритериальные задачи.
    1. Постановка и особенности задач дискретного
    программирования
    Под
    задачей дискретного программирования дискретной оптимизации) понимается задача математического программирования )
    ( )
    ,
    ,
    min
    0
    G
    x
    x
    f
    x
    f

    =
    (множество допустимых решений которой конечно, те.

    <
    =

    N
    G
    0
    , где
    G
    - число элементов множества G. В силу конечности G все допустимые решения можно пронумеровать вычислить
    ( )
    N
    i
    x
    f
    i
    ,...,
    2
    ,
    1
    ,
    =
    , и найти наименьшее значение. Однако такой метод полного перебора при решении задачи реализовать невозможно, так как N может оказаться настолько большим, что этот перебор невыполним на ЭВМ любой мощности. Во многих задачах условия дискретности отделены от других условий, те. если
    (
    )
    n
    x
    x
    x
    x
    ,...,
    ,
    2 1
    =
    , то
    (
    )
    j
    kj
    j
    j
    j
    j
    x
    x
    x
    G
    x
    ,...,
    ,
    2 1
    =

    ,
    2

    j
    k
    . Поэтому
    n
    n
    j
    j
    n
    j
    k
    G
    N
    2 1
    1

    =
    =


    =
    =
    , отсюда видно, что с ростом числа переменных объем вычислительной работы резко возрастает.
    4
    В качестве примера задачи дискретного программирования рассмотрим задачу частично целочисленного линейного программирования – одну из наиболее часто встречающихся в приложении и наиболее изученных задач. Задача формулируется следующим образом, (1.2)
    i
    j
    n
    j
    ij
    b
    x
    a


    =
    1
    ,
    n
    i
    ,...,
    2
    ,
    1
    =
    , (1.3)
    0

    j
    x
    ,
    n
    j
    ,...,
    2
    ,
    1
    =
    (целые,
    n
    n
    j

    =
    1
    ,...
    2
    ,
    1
    . (Если
    n
    n
    <
    1
    , то задача называется частично целочисленной, если
    n
    n
    =
    1
    - полностью целочисленной. Среди задач рассматриваемого класса выделяются задачи с булевыми переменными }
    n
    n
    j
    x
    j

    =

    1
    ,...,
    2
    ,
    1
    ,
    1
    ,
    0
    Особенности задач

    Нерегулярность. Дискретные задачи математического программирования входят в класс нерегулярных задач. Регулярные задачи математического программирования характеризуются следующими условиями- для каждой точки
    G
    x

    можно определить некоторым образом понятие непустой окрестности
    G
    G
    x

    ;
    - можно указать достаточно эффективно проверяемые необходимые и достаточные условия локальной оптимальности на основании этих условий локальный оптимум целевой функции на G может быть найден при помощи конечного (или бесконечного) сходящегося процесса- локальный оптимум целевой функции совпадает с глобальным
    К регулярным относятся задачи линейного и выпуклого программирования. К нерегулярным, наряду с дискретными, относятся многоэкстремальные задачи, в которых локальный экстремум может не совпадать с глобальным. Дискретные задачи характеризуются тем, что область допустимых решений невыпукла и несвязна, а это делает невозможным решение их с помощью стандартных методов, применяемых для решения регулярных задач математического программирования.
    Трудности при определении окрестности В задачах регулярного математического программирования значительная часть методов основана наследующем исходном положении если точки
    G
    x

    1
    и
    G
    x

    2
    близки, то значения
    ( )
    1
    x
    f
    и
    ( )
    2
    x
    f
    также близки. В задачах дискретной оптимизации это положение не имеет места. Поэтому близость двух точек может быть оценена лишь по значениям функции в них. Например, под окрестностью булевого вектора
    (
    )
    n
    x
    x
    x
    x
    ,...,
    ,
    2 будем понимать все векторы, получаемые из
    x
    заменой любой единицы нулем или любого нуля единицей. Рассмотрим задачу стремя переменными 3
    2 2
    1

    +
    +
    x
    C
    x
    C
    x
    ,
    2 3
    2 1

    +
    +
    x
    x
    x
    ,
    3 2
    1
    C
    C
    <
    <
    ,
    { Оптимальное решение очевидно
    (
    )
    ( )
    3 2
    0
    ,
    1
    ;
    1
    ;
    0
    C
    C
    x
    f
    x
    +
    =
    =
    . Вектор
    (
    )
    0
    ;
    1
    ;
    0 1
    =
    x
    находится в окрестности вектора
    ( )
    2 1
    0
    ,
    C
    x
    f
    x
    =
    . Ясно, что разность
    ( ) ( )
    3 1
    0
    C
    x
    f
    x
    f
    =

    может быть сделана сколь угодно большой при помощи выбора величины Трудности нахождения допустимого целочисленного плана в задаче (1.2)-(1.5). Предположим, что рассматривается задача частично целочисленного линейного программирования общего вида. Вопрос о существовании допустимого решения сводится к выяснению, разрешима
    6
    ли система линейных равенств и неравенств в целых неотрицательных числах. Известно, что это трудоемкая вычислительная задача. Поэтому в общей задаче рассматриваемого класса поиск допустимого решения может оказаться столь же трудоемким, как и поиск оптимального решения.
    Невозможность выполнения большого перебора на ЭВМ Многие из методов решения задач дискретной оптимизации основаны на идее перебора вариантов, качество алгоритмов оценивается числом точек
    x
    , для которых вычислялись значения
    ( )
    x
    f
    или значения некоторых других функций. Объем вычислительной работы резко возрастает с ростом числа переменных. Поэтому перебор большого числа вариантов принципиально невозможен ни при каком быстродействии ЭВМ. Методы отсечения

    Выделим следующие (основные) методы решения задач дискретного программирования- метод отсечения для задач (частично) целочисленного линейного программирования- комбинаторные методы- приближенные методы.
    Первые попытки решения задач целочисленного линейного программирования сводились к отбрасыванию условия целочисленности, решению линейной задачи и округлению полученного решения. Можно привести простой пример, который показывает неприемлемость такого подхода 3
    3 2
    1

    +

    x
    x
    x
    ,
    4 2
    3 2
    1


    +
    x
    x
    x
    ,
    2 3
    4 2
    1


    x
    x
    ,
    3 2
    3 3
    2 1

    +
    +

    x
    x
    x
    ,
    0
    ,
    ,
    3 целые
    Игнорируя условие целочисленности, получим оптимальное решение линейной задачи
    2 1
    4
    ,
    0
    ,
    2 1
    3 2
    1
    =
    =
    =
    x
    x
    x
    . Никакие округления компонент этого решения не дают даже целочисленного плана. Оптимальное решение целочисленной задачи имеет вид
    5
    ,
    2
    ,
    2 3
    2 Описанный подход основан на идее сведения решения нерегулярной задачи к решению конечной последовательности регулярных задач, неудача связана с прямолинейным применением идеи сведения. Применительно к задаче целочисленного линейного программирования идея регуляризации позволяет свести решение этой задачи к решению последовательности специальным образом построенных линейных задач. Она состоит в следующем. Если полученное решение удовлетворяет условию целочисленности, то процесс окончен. В противном случае к ограничениям исходной задачи добавляется новое линейное ограничение, обладающее двумя свойствами- полученный нецелочисленный план ему не удовлетворяет- любой целочисленный план ему удовлетворяет.
    Решается задача с дополнительно введенным ограничением, процесс повторяется дополучения целочисленного решения. Идея отсечения приводит к трем проблемам- нахождение универсального правила формирования отсечений;
    - доказательство конечности процесса отсечения- борьба с чрезмерным разрастанием размерности задач при добавлении ограничений.
    Только решение этих проблем может привести к универсальному и реализуемому в вычислительном отношении алгоритму. Р. Гомори удалось решить эти проблемы
    В дальнейшем выявилась большая непредсказуемость в поведении различных алгоритмов отсечения. Для некоторых вариантов алгоритма
    Гомори существуют задачи, в которых число отсечений быстро растет с ростом размерности задачи и ростом коэффициентов, а в текущих симплекс-таблицах появляются весьма большие числа.
    Методы отсечения не нашли широкого применения при решении прикладных задач последующим причинам- определение того, какое отсечение (из большого их числа) есть сильнейшее, есть сложная в вычислительном отношении задача- методы отсечения приспособлены в основном для решения чисто целочисленных задач, которые составляют лишь малую часть задач, встречающихся в приложениях- методы отсечения не приспособлены для решения задач со слабо заполненными матрицами.
    Алгоритм Гомори
    Приведем в качестве примера один из алгоритмов Гомори для решения полностью целочисленной задачи линейного программирования. Рассмотрим полностью целочисленную задачу линейного программирования
    j
    n
    j
    j
    x
    c
    Z

    =
    =
    1
    max(min)
    ; (2.1)
    m
    i
    b
    x
    a
    i
    j
    n
    j
    ij
    ,...,
    1
    ,
    1
    =
    =

    =
    , (2.2)
    n
    j
    x
    j
    ,...,
    1
    ,
    0
    =

    , (целые. (Алгоритм Гомори состоит из следующих этапов
    Решается задача (2.1) – (2.3) с отброшенным условием целочисленности.
    2.
    Полученное оптимальное решение (если оно существует) проверяется на целочисленность. Если условие целочисленности выполняется по всем переменным, то оптимальное решение задачи (2.1) – (2.4) совпадает с оптимальным решением задачи
    (2.1) – (2.3). Если это условие не выполняется хотя бы для одной переменной, то переходят к третьему этапу. Если задача (2.1) – (2.3) оказывается неразрешимой, то задача (2.1) – (2.4) тоже не имеет решения.
    3.
    Строится дополнительное ограничение, отсекающее часть области, в которой содержится оптимальное решение задачи (2.1) –
    (2.3) и не содержится ни одного допустимого решения задачи (2.1) – (Последний этап предусматривает возвращение к ЗЛП с отброшенным условием целочисленности, нос расширенной системой ограничений, в которую включено дополнительное ограничение, полученное на третьем шаге. К расширенной системе ограничений вновь применяется симплексная процедура. Если найденное таким образом решение будет опять нецелым, то формируется новое дополнительное ограничение и процесс вычислений повторяется.
    Алгоритм Гомори позволяет за конечное число шагов прийти к оптимальному целочисленному решению, если оно существует.
    С геометрической точки зрения каждому дополнительному линейному ограничению в мерном пространстве соответствует определенная гиперплоскость, отсекающая от многогранника решений некоторую его часть, включая и оптимальную на данном этапе нецелочисленную вершину. При этом все точки с целочисленными координатами, в том числе и искомая оптимальная, остаются в усеченном многограннике. Так как множество целых точек усеченного многогранника совпадает с множеством целых точек исходного многогранника, то понятно, что если оптимальное решение ЗЛП на усеченном многограннике
    10
    удовлетворяет условию целочисленности, то оно является оптимальным целочисленным решением и исходной задачи. Через несколько операций отсечения искомая целочисленная точка оказывается сначала на границе, а затем становится оптимальной вершиной неоднократно усеченного многогранника решений.
    Может оказаться, что многогранник решений не содержит ни одной целочисленной точки. В этом случае, сколько бы ни вводили дополнительных ограничений, целочисленного допустимого решения получить нельзя.
    Основное в алгоритме – составление дополнительного ограничения, те. отсекающей гиперплоскости, которая называется правильным отсечением Правильное отсечение должно удовлетворять следующим условиям 1) быть линейным 2) отсекать найденное оптимальное нецелочисленное решение задачи (2.1) – (2.3); 3) не отсекать ни одной из целочисленных точек задачи (2.1) – (Рассмотрим, как можно сформировать правильное отсечение. После каждой итерации система ограничений имеет вид }
    { }
    БП
    x
    x
    b
    x
    i
    j
    СП
    x
    ij
    i
    i
    j


    =


    ,
    α
    , (где
    { }
    БП
    - множество базисных переменных.
    Если выполняется условие оптимальности задачи, то находим оптимальное решение. Если все компоненты оптимального плана целочисленны, то задача решена. Предположим, что некоторые
    0
    β
    - нецелые. Пусть компонента
    0
    i
    - нецелая. Рассмотрим
    0
    i
    - равенство системы (2.1.5), для которой выполняется условие оптимальности, те }



    =
    СП
    x
    j
    j
    i
    i
    i
    j
    x
    x
    0 0
    0
    α
    β
    . (Найдем целую и дробную часть коэффициентов
    0
    i
    β
    и
    j
    i
    0
    α
    :
    [ ]
    { }
    0 0
    0
    i
    i
    i
    β
    β
    β
    +
    =
    , (2.7)
    [ ]
    { }
    { }
    СП
    x
    j
    j
    i
    j
    i
    j
    i

    +
    =
    ,
    0 0
    0
    α
    α
    α
    11
    Так как, по предположению,
    0
    i
    β
    нецелое, то
    { }
    0 0
    >
    i
    β
    . Кроме того,
    { }
    0 0

    j
    i
    α
    . Подставив выражение (2.7) в равенство (2.6), получим ]
    [ ]
    { }
    { }
    { }
    { }
    )
    (
    )
    (
    0 0
    0 0
    0
    j
    СП
    x
    j
    i
    i
    j
    СП
    x
    j
    i
    i
    i
    x
    x
    x
    j
    j





    +

    =
    α
    β
    α
    β
    . (Так как первое слагаемое равенства (2.8) есть целое число, то, для того чтобы
    0
    i
    x
    было целым, необходимо, чтобы второе слагаемое также было целым числом, те. величина }
    { }
    {
    }
    j
    x
    j
    i
    i
    i
    x
    L
    СП
    j



    =
    0 должна быть целым числом. Так как
    0
    i
    x
    - координата допустимого целочисленного решения задачи (2.1) – (2.4), то
    0
    i
    L
    - всегда целое число. Легко показать, что
    0 0

    i
    L
    . Таким образом, любое допустимое решение задачи (2.1) – (2.4) должно удовлетворять неравенству }
    { }
    { }
    0 0




    j
    СП
    x
    j
    i
    i
    x
    j
    α
    β
    . (Справедлива теорема.
    Неравенство (2.9) определяет правильное отсечение Гомори, те
    1) является линейным
    2) отсекает найденное оптимальное нецелочисленное решение задачи
    (2.1)–(2.3);
    3) не отсекает ни одного целочисленного плана задачи (2.1) – (Если после очередной итерации окажется, что в оптимальном плане задачи (2.1) – (2.3) имеется несколько нецелых координат, то для построения отсекающей гиперплоскости целесообразно выбрать строку, содержащую свободный член с наибольшей дробной частью.
    Признаком отсутствия целочисленности решения служит появление в симплексной таблице хотя бы одной строки с дробным свободным
    12
    членом и целыми остальными коэффициентами, так как в этом случае соответствующее уравнение не имеет решения в целых числах. Пример 2.1. Решить задачу 1
    max
    x
    x
    Z
    +
    =
    ;
    3 3
    2 1

    +

    x
    x
    ,
    3 3
    2 1


    x
    x
    ,
    0
    ,
    2 1
    целые
    x
    x


    Р е ш е ни е. В результате решения задачи без учета условия целочисленности переменных получаем оптимальный план
    ( )
    (
    )
    0
    ;
    0
    ;
    2
    /
    3
    ;
    2
    /
    3 1
    =

    нц
    x
    , содержащийся в таблице Таблица 2.1
    БП
    Б
    с
    0
    А
    1
    x
    2
    x
    3
    x
    4
    x
    1 1 0 0 2
    x
    1 3/2 0 1 3/8 1/8 1
    x
    1 3/2 1 0 1/8 3/8
    j
    j
    c
    z

    3 0 0 1/2 Таблица 2.2
    БП
    Б
    с
    0
    А
    1
    х
    2
    х
    3
    х
    4
    х
    5
    х
    1 1 0 0 0 2
    x
    1 3/2 0
    1 3/8 1/8 0
    1
    x
    1 3/2 1
    0 1/8 3/8 0
    -
    -
    4 0
    0 1
    3
    -1
    j
    j
    c
    z

    3 0
    0 1/2 1/2 0
    2
    x
    1 4/3 0
    1 1/3 0
    1/24 1
    x
    1 1
    1 0
    0 0
    1/8 4
    x
    0 4/3 0
    0 1/3 1
    -1/3
    j
    j
    c
    z

    7/3 0
    0 1/3 В полученном плане две компоненты нецелые. Поскольку они равны по величине, сформируем правильное отсечение (2.9), например, по
    13
    строке
    { } { }
    { }
    4 8
    /
    3 8
    /
    1 2
    /
    3 4
    3



    x
    x
    . Эквивалентное уравнение имеет вид
    4 3
    5 4
    3
    =

    +
    x
    x
    x
    . Дополняя табл. 2.1 строкой для этого уравнения и столбцом для новой переменной
    5
    x
    , получаем расширенную задачу, записанную в табл. 2.2. В этой же таблице в результате симплексного преобразования найден оптимальный нецелочисленный план )
    (
    )
    0
    ;
    3
    /
    4
    ;
    0
    ;
    3
    /
    4
    ;
    1 2
    =

    нц
    x
    расширенной задачи. Продолжаем процедуру отсечения.
    Новое правильное отсечение (2.9) сформируем, например, по
    2
    x
    - строке
    { } { }
    {
    }
    0 24
    /
    1 3
    /
    1 3
    /
    4 5
    3



    x
    x
    или
    8 8
    5 3

    +
    x
    x
    . Эквивалентное этому неравенству уравнение принимает вид
    8 8
    6 Вновь расширяем задачу, добавляя строку для нового уравнения и столбец для переменной
    6
    x
    . В результате табл. 2.2 преобразуется в табл. Таблица 2.3
    БП
    Б
    с
    0
    А
    1
    x
    2
    x
    3
    x
    4
    x
    5
    x
    6
    x
    1 1 0 0 0 0 2
    x
    1 4/3 0
    1 1/3 0
    1/24 0
    1
    x
    1 1
    1 0
    0 0
    1/8 0
    4
    x
    0 4/3 0
    0 1/3 1
    -1/3 0
    -
    -
    8 0
    0
    [ ]
    8 0
    1
    -1
    j
    j
    c
    z

    7/3 0
    0 1/3 0
    1/6 0
    2
    x
    1 1
    1
    x
    1 1
    4
    x
    0 1
    3
    x
    0 1
    j
    j
    c
    z

    2 0
    0 0
    0 1/8 После очередной итерации получен оптимальный план
    ( )
    (
    )
    0
    ;
    0
    ;
    1
    ;
    1
    ;
    1
    ;
    1 ц новой расширенной задачи. Все компоненты этого плана – целые числа. Максимальное значение целевой функции выражается целым числом ц, а поэтому решение задачи закончено. Итак, для исходной задачи получили
    ( )
    1
    ,
    1
    =

    x
    ,
    2
    =

    Z
    14
    Упражнения для самостоятельной работы. Дать геометрическую интерпретацию приведенного решения задачи. Решить задачи методом отсечения:
    а)
    (max)
    3 2
    3 2
    1
    x
    x
    x
    f
    +
    +
    =
    ; б)
    (min)
    2 3
    2 1
    x
    x
    x
    f
    +
    +
    =
    ;
    25 3
    4 6
    3 2
    1

    +
    +
    x
    x
    x
    ,
    3 2
    3 2
    1

    +
    +
    x
    x
    x
    ,
    15 2
    3 5
    3 2
    1

    +
    +
    x
    x
    x
    ,
    1 2
    2 целые целые 0
      1   2   3


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