Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Оптимизация в LINDO

..pdf
Скачиваний:
10
Добавлен:
12.11.2023
Размер:
4.57 Mб
Скачать

Далее, в;сскщш щрок отчета,приводится одна строка для каждого ограничения, включающая имя ограничения, его резерв (slack) или избыток (surplus) и его двойственную цену. SLACK OR SURPLUS - это значение дополнительной переменной, равное разности правой и левой частей ограничения. Эта величина в неравенствах «меньше или равно» называется резервом, а в неравенствах «больше или равно» - избытком. Если ограничение в точности удовлетворяется как равенство, то значение SLACK OR SURPLUS равно нулю. Если ограничение,^нарушено, что соответствует недопустимому решению, значение SLACK OR SURPLUS будет отрицательным. Это знание поможет найти невыполняемые ограничения в неразрешимой модели.

Двойственную цену (Dual price) можно интерпретировать как значение, на которое критерий; мог бы улучшиться при добавлении единицы в правой части ограничения. Ее цнорда называют .теневой иеной Iресурса1. потому что она показывает, сколько бы был.- готов ЛПР заплатить за дополнительную единицу ресурса. Двойственные цёны Имеют важное значение в линейннрс и квадратичных моделях, но обычно не предб'Жляют интереса для моделей целочисленного программирования.

Как и Reduced cost, двойственная цена действительна только в ограниченном диапазоне значения правой части, так как строго математически двойственная переменная - это производная оптимального значения критерия по правой части ограничения. Для определения этих диапазонов может быть использована команда Range.

Последняя строчка отчета показывает число итераций, или симплекспреобразований, требуемых для решения модели. В моделях целочисленного программирования LINDO будет также печатать, число ветвей, т.е. число переменных, которые решатель использовал. для ветвления до достижения решения.

Ranee____________ Alt + 1

Команда Range генерирует отчет о диапазонах (т.е. анализ чувствительности) для активной модели. Использование команды возможно только после решения модели. Этот отчет включает:

имена переменных с их текущими коэффициентами в целевой функции и допустимыми увеличениямии уменьшёншми этих коэффициентов,

номера строк (Условий) с их текущим правосторонним значением (RHS) и допустимыми увеличениями и уменьшениями этих значений.

Отчет о диапазонах уместен только для линейных моделей и практически не используется при решении квадратичных и целочисленных моделей.

Для ранее приведенной модели фирмы "Кама” вид отчёта показан на рис. 10. Интерпретация отчета* следующая: допустимое увеличение и уменьшение

коэффициентов каждой переменней в критерии - это значение, на которое могут быть увеличены или уменьшены коэффициенты без изменения базиса (значений ненулевых переменных). Так, из приведенного отчета следует, что увеличение коэффициента при переменной Х2 в критерии на величину, меньшую 11, или уменьшение его на величину, меньшую 3, не изменит базиса' и значений переменных XI и Х2. Таким образом, имеем следующий диапазон:

7 < значение коэффициента <^1

Допустимое увеличение и уменьшение правой части каждого ограничения - это значение, на которое могут быть увеличены или уменьшены правые части без смены базиса.

31

ЩRepoila W indow

 

 

 

| RflHGES IH WHICH THE BASIS

IS UNCHANGED:

 

t

 

 

 

 

1

 

 

OBJ COEFFICIENT

RANGES

 

 

CURRENT

j VARIABLE

ALLOWABLE

ALLOWABLE

 

 

COEF

INCREASE

DECREASE

i

X1

14.000000

6.000000

7.333333

|

X2

10.000000

11.000000

3.000000

:i:'

ROW

CURRENT

RIGHTHAND SIDE RANGES

\

ALLOWABLE

ALLOWABLE

}

2

RHS

INCREASE

DECREASE

 

19.000000

З.ЗЭЭЭЗЗ

2.666667

\

з

13.000000

0.888889

3.333333

:!

*

14.000000

INFINITY

5.000000

i

5

17.000000

INFINITY

2.000000

 

штштт

 

 

 

 

 

 

Рис. 10

 

Parametrics

A lt+ 2

 

 

Щ

jfcg

Ш

1

y;•: HlS

«11

Команда LINDO Parametrics автоматизирует процесс параметрирования только для правых частей ограничений (LINDO не поддерживает эту функцию для коэффициентов целевой функции). Команда Parametrics будет генерировать отчет и/или график детального изменения значения критерия как функции изменения определенных правосторонних значений. Достаточно определить новое значение правой части ограничения, и LINDO будет изменять текущее правостороннее значение □о шагам до нового значения, показывая значение критерия на каждом шаге. Перед использованием команды Parametrics необходимо решить модель с исходными значениями правых частей.

Вызов команды Parametrics приводит к появлению диалогового окна (рис. 11).

Рис. 11

32

Сначала выбирается параметризуемое ограничение. Его можно ввести непосредственно в поле Parametric Row или двойным щелчком на выбранном имени в списке строк под этим полем. Тогда UNDO покажет ниже списка тип введенного ограничения (<=, = или >=), а в поле New RHS Value текущее значение его правой части. Если в нашем примере мы выберем строку 2, то диалоговое окно примет вид как на рис. 12.

Рис. 12

Теперь в поле New RHS Value нужно изменить текущее значение правой части на то, до которого требуется провести параметрирование. .Далее с помощью флажков в правой половине окна выбирается тип отчета (Report Туре): текстовый или графический, или оба. Для графического отчета можно выбрать его размерность: 2- мерный или 3-мерный. Генерация параметрического отчета начнется после нажатия кнопки ОК. Текстовый отчет будет послан в окно отчетов, а графический - в отдельное окно.

Для иллюстрации введем в поле New RHS Value значение 7 и закажем оба отчета. Полученный текстовый отчет приведен на рис. 13.

|TL^ Reports Window

 

 

- Г*-.-■-

--

-------*

в й ;

.........

 

 

 

 

 

 

 

 

 

 

m

] RIGHTHA N D S I D E

P A R A M E T R I C S

REPORT FOR

ROU: 2

 

 

 

 

 

 

UAR

 

U A R

PIVOT

RIIS

DUAL

PRICE

OBJ

 

 

OUT

 

IN

R O M

i UAL

BEFORE

PIUOT

UAL

 

 

 

 

 

 

T9 . 0 0 0 0

1 . 5 0 0 0 0

100 . 000

Ш

i SLK

5

SLK

3

5

1 6 . 9333

1 . 5 0000

9 6 . 0000

 

{(

X2

SLK

.5

h r

1 1 . 3333

З .ЭЗЭЗЭ

79. 3339

Ш

i

 

 

 

 

7 . 0 0 0 0 0

7 . 0 0000

Л 9 . 0000

Ш

•i

 

 

 

 

 

 

 

 

'Ш.Т

 

 

 

 

 

 

 

т

Ш

 

 

 

 

 

 

 

 

 

Рис. 13

Как видно, параметрический отчет показывает для каждого симплекспреобразования вводимые (var in) и выводимые переменные (var out), направляющую

33

строку (pivot row), правосторонние значения (rhs vai) и как они изменяются от текущего значения до нового, двойственную цену (dual price)1и значение критерия (obj val) для соответствующего значения правой части.

Примечание. LINDO использует • обозначение SLK для дополнительных переменных, вводимых в неравенства. Номер такой переменной - это номер строки соответствующего условия в модели.

Каждая строка отчета представляет собой точку излома в кусочно-линейной (или кусочно-квадратичной в квадратичной модели) зависимости между значением критерия и правой части (точка излома - момент смены базиса). Графический отчет наглядно иллюстрирует эту зависимость (рис.14).

^ R H S Paramedics Graph

______

Г

\RHS Parametrics for Row: 2

Рис. 14

Если взять две соседние строки отчета, то приращение критерия вычисляется как произведение двойственной оценки во второй строке на разность значений правых частей в этих строках, что следует из смысла теневых цен. Так, например, изменение правой части с 16.3333 до 11.3333 приводит к уменьшению критерия на

(16.3333 - 11.3333)^3.3333 = 16.6667

и новое значение критерия будет (96 - 16.6667) = 79.3333.

Очевидно, что команда Parametrics позволяет исследовать непосредственно изменения в правой части только одного ограничения. Однако простая модификация модели делает возможным параметрировать одновременно несколько ограничений в линейной модели. Для этого в условия вводится дополнительный столбец (переменная изменений) и дополнительное ограничение, правая часть которого и будет парамЬтризироваться UNDO. При этом будут одновременно изменяться значения правых частей тех исходных ограничений, в которые вошла переменная изменений. Например, пусть исходная модель имеет вид

34

10X+25Y->max

X<30

Y<40

3X + Y < 85

Для одновременного параметрирования 1 и 2 ограничения- с разной величиной изменения модифицируем модель следующим образом:

10X+25Y->max X + 22 < 30 Y -Z<40 ЗХ + Y < 85:

Z = t

При t = 0 имеем исходную модель, при t = 5 правая :ласть 1-го ограничения уменьшается на 10, а второго - увеличивается на 5. Таким^образом, лараметрируя только t, получаем желаемое параметрирование необходимого числа ограничений.

Команда Parametrics может быть применена для линейных и квадратичных моделей, но не применима для целочисленных моделей:

Statistics_________Alt + 3

Команда Statistics посылает небольшой отчет в окно отчетов. Этот отчет дает сводную статистику активной модели.

Первая строка содержит:

число строк, включая строку критерия;

число переменных;

число всех целых переменных, в скобках - из них бинарных;

QCP - индекс первого реального ограничения в квадратичной модели (О показывает, что модель не квадратичная).

Вторая строка содержит:

число ненулевых коэффициентов во всей модели;

число ненулевых коэффициентов в ограничениях, в скобках - из них число коэффициентов, равный +1 или -1;

плотность модели, определенную как:

(число ненулевых элементов) / [(число строк) * (число столбцов + 1)].

Третья строка содержит абсолютные значения минимальных н максимальных ненулевых элементов соответственно.

В четвертой строке представлены:

смысл целевой функции (MIN или МАХ);

число ограничений «меньше или равно», «равно» и «больше или равно »;

оценка верхней границы числа ограничений с обобщенной.верхней границей (GUBS) ~ ограничения, не имеющие общих переменных;

оценка нижней границы числа верхних границ переменных (VUBS). Для примера, ограничение XI + Х2 - ХЗ - 0 содержит следующие выводы:

из ХЗ = 0 следует XI = О из ХЗ = 0 следует Х2 = 0.

Последняя строка содержит:

число столбцов, имеющих только один ненулевой коэффициент;

число лишних столбцов, т.е. идентичных некоторым другим столбцам кроме, возможно, границ.

35

Окно отчета для нашей моделипредставлено нарис. 15.

Reports Window

 

 

 

 

 

 

 

 

a

4 R0US=

5

BARS-

2 INTEGER UARS«

0(

 

0 ® 0/1)

QCP=

0

!: NONZEBOS*

 

12 CONSTRAINT N0N2=

6(

1 = *-1) DENSITY-0.800

|j SMALLEST AND

LARGEST ELEMENTS IN ABSOLUTE UALUE®

1.00000

 

19.0000

il 0BJ=MAX,

NO.

<,=,>:

4

0

0, GUBS

<=

2 UUBS

>-

0

 

i!SINGLE COLS®

0 REDUNDANT C0LS=

0

 

 

 

 

 

Рис. 15

Команда Statistics может быть использована для проверки возможных ошибок в модели. Например, если в каком-нибудь ограничении имя переменной будет записано с ошибкой, то в отчете появится столбец с единичным ненулевым элементом, которого не должно быть.,Или если неправильно поставлена или пропущена десятичная точка в коэффициенте, то эта ошибка может-быть обнаружена в отчете при анализе самого большого или самого маленького по абсолютной величине значения среди коэффициентов.

Peruse__________ A lt+ 4

Команда Peruse может быть использована для просмотра или анализа отдельных частей решения модели и/или структуры. Pemse-отчеты генерируются в текстовом и/шш графическом формате. Возможность сфокусироваться на отдельных частях модели и ее решения с помощью Peruse - это очень полезное средство в больших моделях, где попытка внимательно рассмотреть всю модель или решение может оказаться сверхсложной задачей.

Чтобы использовать все возможности команды Peruse, можно сначала запустить команду Solve для активной модели (хотя это и не обязательно). Далее, по команде Peruse UNDO выдаст диалоговое окно настройки параметров (рис. 16).

Команда Peruse будет выдавать отчет или по столбцам, или по строкам. В левой части диалогового окна даны параметры управления отчетом (Report Parameters). В зависимости от желаемого типа отчета выбирается кнопка Columns (столбцы) или Rows (строки) в группе Orientation. Далее нужно выбрать данные, включаемые в отчет, с помощью установки флажков в группе View Items. Список элементов этой группы с их интерпретацией в зависимости от выбора ориентации отчета приведен в табл. 5.

Факультативное поле Condition (optional) может понадобиться для ввода условия, которое отфильтрует нежелательные столбцы или строки, исключив их из отчета.

Оставшиеся параметры определяют формат отчета. С помощью группы Report Typesможно выбрать текстовый отчет, графический или оба. Текстовый отчет выводится в окно отчетов. Графический отчет располагается в отдельном окне. При выборе текстового отчета становится доступной группа опций Text Report Format, которая позволяет включать в отчет, если нужно, заголовки столбцов (Include Headers) и вставлять в числа разграничительные запятые (Comma Delimited). Если выбран графический отчет, то можно включить только одну кнопку из группы Graph Туре, определяющей вид графика: area диаграмма с областями, bar - столбиковая диаграмма, pie - секторная диаграмма, line или point - график из линий или точек , а также указать размерность пространства для графика (2D или 3D) в группе Graph Style. При этом доступно и поле Graph Title, куда можно ввести свой заголовок графика.

36

Рис. 16

Таблица 5

Name

Primal

Dual

Rim

Upper bound Lower bound

Type

Nonzeros

Имя переменной

 

Имя строки

 

 

 

 

 

Недостаток/избыток

Значение переменной

(значение дополнитель­

 

 

 

 

ной переменной)

 

Относительная

оценка

Двойственная

пере­

переменной

 

менная (теневая пена)

Коэффициент в крите­

Значение правой части

рии при переменной

условия

 

 

Верхняйтраница

 

- о

_

 

Нижняя граница

•-'

 

 

«С»

для

непрерывной,

«<» - меньше или равно,

«F»

для

свободной,

«=»

равно,

«>» -

«I»

для целого

 

больше пли равно

Число

ненулевых

'Число

ненулевых

элементов

 

 

^элементов

 

В качестве примера приведен графический отчет Peruse (рис. 17) для задачи о фирме "Кама” при параметрах команда, установленных в диалоговом окне Peruse Model (см, рис. 16). На графике показаны переменные и их относительные оценки (dual), которые равны нулю, так как обе переменные - базисные.

37

Как уже упоминалось, можно ограничивать объем выводимых данных с помощью условия фильтрования. Это средство используется, когда исследуются большие модели и полный отчет может быть громоздким.

Условное выражение вычисляется для всех строк и столбцов. Если выражение истинно, то строка или столбец попадают в отчет, иначе они пропускаются.

При. записи

условий используются

восемь

символов, которые

соответствуют восьми элементам группы View Items:

 

 

Name

N

 

 

Primal

P

 

 

Dual

D

 

 

Rim

R

 

 

Upper bound

U

 

 

Lower bound

L

 

 

Type

T

 

 

Nonzeros

7

 

В дополнение к этим символам табл. 6 показывает различные операции, которые могут быть применены к ним при конструировании условных выражений.

 

Таблица 6

%

Метка-заполнитель, используется в формировании

шаблонов имен переменных

 

rf

Суммирование

-Вычитание

/Деление

*

Умножение

___

A

Степень

 

LOG(x)

 

Натуральный логарифм

___

38

Окончание табл. 6

ЕХР(х)

Экспонента

ABS(x)

Абсолютное значение х

.AND.

Логическое И

.OR.

Логическое ИЛИ

.NOT.

Логическое НЕ

>Сравнение, больше чем

<Сравнение, меньше чем

=Сравнение,.равно ; .

#Сравнение, не равно

___ Q_________

Скобки для определения приоритетов операций

 

Например, если в отчете не нужны переменные (primal), равные нулю, то условие следует записать в виде Р >0.

Picture________ Alt+ 5

Команда Picture показывает модель в матричной форме. Она обычно используется для получения визуальной картины модели. Можно получить текстовое или графическое представления матрицы ненулевых коэффициентов.

Просмотр модели в матричной форме может быть полезен в двух случаях. Вопервых, при отладке модели помогает анализ картины ненулевых коэффициентов. Большинство моделей линейного программирования имеют явно повторяющуюся структуру. Неправильно введенные секции модели будут «бросаться в глаза» в ненулевой картине. Во-вторых, ненулевая матрица может быть полезна для распознания специальной структуры модели. Например, если картина матрицы показывает строго блочно-диагональную структуру, то могут оказаться весьма эффективными алгоритмы декомпозиции.

Для получения картины ненулевой матрицы запускают команду Picture в окне модели. Появляющееся диалоговое окно Nonzero Picture позволяет задать вид картины (рис. 18).

Рис. 18

39

Для переупорядочения столбцов и строк следует выбрать опцию Lower Triangular, иначе - None. В первом случае UNDO переупорядочит строки и столбцы так, что максимальное число ненулевых элементов будет под диагональю матрицы. Модель, у которой наибольшее количество ненулевых элементов находится под диагональю, с большой вероятностью будет относительно просто решаться. Кнопки в группе Picture Туре дают возможность выбрать графический отчет, текстовый отчет или оба. Текстовый отчет запишется в окно отчетов. Графический отчет располагается

вотдельном окне.

Втекстовом отчете имена переменных печатаются вертикально сверху вниз в начале отчета, имена строк - слева, а значения правых частей - справа. Матрица нерулевых коэффициентов располагается между ними. Коэффициенты, которые имеют цеЬые значения в диапазоне от 1 до 9, печатаются без изменений. Другие значения коэффициентов представлены буквами, которые определяют диапазон по табл. 7.

 

 

Таблица 7

g U g g

l

 

Z

.000000

.000001

Y

.000001

.000009

,,Х-

.000010

.000099

W

.000100

.000999

V

.001000

.009999

и

.010000

.099999

т

.100000

.999999

А

1.000001

10.000000

В ’

10.000001

100.000000

С

100.000001

1000.000000

D

! .1000.000001

10000.000000

Е

10000.000001

100000.000000

F

100000.000001

1000000.000000

G

> 1000000

 

Текстовая версия отчета ненулевой картины модели согласуется с параметром ширины терминала, который может переустанавливаться командой EditjOptions. Таким образом, если ширина картины превышает ширину терминала, отчет может быть продолжен на дополнительных страницах.

В графической версии отчета ненулевой.картины приводятся имя модели, ее размерность и, если пространство позволяет, имена строк слева и имена переменных сверху матрицы. Отрицательные коэффициенты представлены красными прямоугольниками, а положительные голубыми. Если в прямоугольнике есть свободное пространство, то также будет показано действительное значение коэффициента. Различие между графической и текстовой версией отчета ненулевой картины в том, что графическая версия не имеет значений правых частей и направления цели, но она включает точные числа наибольших коэффициентов.

Для иллюстрации возьмем модель небольшой транспортной задачи с ограничениями пропускной способности по двум коммуникациям (рис. 19).

Выбрав в диалоговом окне команды оба отчета, получим их в виде, представленном на рис. 20.

40