Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Кутузов.docx
Скачиваний:
4
Добавлен:
25.09.2019
Размер:
344.72 Кб
Скачать

Структура пособия

В главе 1 разобран пример решения задачи линейного программирования. В главе 2 на том же примере показано, как получить целочисленное решение этой задачи. Глава 3 посвящена решению транспортной задачи, а глава 4 — ре­шению задачи о назначениях. В приложение А вынесены общие правила рабо­ты с пакетом WinQSB, рассмотрены возникающие при этом трудности и пути их преодоления. В приложении Б говорится о том, как в Excel установить сред­ство Поиск решения, используемое в настоящем пособии. И наконец, в при­ложении В вы найдете перечень программ, используемых в настоящее время при выработке управленческих решений, с указанием источников их получе­ния.

Глава 1

ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ

  1. Пример

Требуется определить план выпуска четырех видов продукции, обеспечи­вающий максимальную прибыль от ее реализации. На изготовление этой про­дукции расходуются трудовые ресурсы, сырье и финансы. С учетом рыночного спроса и производственно-технологических возможностей заданы предельные границы выпуска каждого вида продукции. Эти границы, наличие и нормы рас­хода ресурсов, а также маржинальная прибыль (разность между выручкой и пе­ременными издержками) на единицу продукции приведены в таблице:

Ресурсы

Продукт 1

Продукт 2

Продукт 3

Продукт 4

Наличие

Труд

1

2

1

2

19

Сырье

7

4

5

4

80

Финансы

5

7

9

8

100

Прибыль

70

60

110

140

Нижн. гр.

3

1

1

2

Верхн. гр.

5

-

3

4

Обозначив количество выпускаемых изделий через .ть -ГгЛ, -<Ч, а целевую функцию (валовую маржинальную прибыль) — через F, построим математиче­скую модель задачи:

F 70.V| + 6O.Y2 + 110x3 + 14 dr., —> max,

-v 1 + 2.Y2 + Д'з + 2.v,( <19, 3 < -t| < 5,

7.v 1 + 4.V2 + 5,v3 + 4.V4 <80, I < л,

5xi + 7.y2 + 9xj + 8.v4 < 100, 1 < лз < 3,

2 < X) < 4,

X|, x2, -тз, X| > 0.

Три неравенства, расположенные слева, будем в дальнейшем называть ограничениями, а четыре справа — граничными условиями (они показывают, в каких пределах могут изменяться значения переменных). В последней строке модели находятся условия неотрицательности. Они говорят о том, что количе­ство выпускаемых изделий не может быть отрицательным. Так как такие усло­вия присутствуют в большинстве моделей линейного программирования, мы привели их здесь для общности, хотя в данной задаче неотрицательность пере­менных вытекает из граничных условий.

  1. Решение с помощью пакета WinQsb

Запуск программы

Чтобы запустить программу для решения задач линейного и целочислен­ного программирования, щелкните кнопку Пуск, найдите программную группу WinQSB и выберите в ней программу Linear and Integer Programming.

Задание параметров задачи

Для ввода новой задачи нужно выбрать команду File ► New Problem. В открывшемся окне задаётся (рис. 1.1):

  • Название задачи — в поле Problem Title.

  • Количество переменных — в поле Number of Variables.

  • Количество ограничений— в поле Number of Constraints (в нашей за­даче — 3, без учета граничных условий).

  • Вариант оптимизации — максимизация (Maximization) или минимиза­ция (Minimization).

  • Форма задачи — матричная (Spreadsheet Matrix Form) или стандарт­ная (Normal Model Form). Стандартная форма хотя и нагляднее, но более

  • LP-ILP Problem Specification

  • Problem Title: |npoi

  • изводственныи план

  • Number of Constraints:

  • Number of Variables:

  • Objective Criterion

  • ii Maximization Г Minimization

  • Data Entry Format

  • '■ Spreadsheet Matrix Form Г Normal Model Form

  • Default Variable Type

  • ii Nonnegative continuous Г Nonnegative integer Г Binary (0.1)

  • Г Unsigned/unrestricted

  • :el Help

  • Рис. 1.1. Ввод параметров решения задачи линейного программирования

  • трудоемка для использования: в ней, кроме чисел (коэффициентов целевой функции и ограничений), требуется набирать на клавиатуре еще и буквы, обо­значающие переменные, а также знаки ограничений. Поэтому в дальнейшем мы будем использовать матричную форму. Однако после ввода данных эту форму легко изменить с помощью команды меню Format.

  • ® Тип переменных— непрерывные неотрицательные (Nonnegative con­tinuous), целые неотрицательные (Nonnegative integer), двоичные (Binary (0,1)) или свободные, то есть произвольного знака (Unsigned/unrestricted).

  • Ввод числовых данных

  • Если выбрана матричная форма задачи, откроется окно с таблицей для ввода данных: коэффициентов целевой функции и ограничений, правых частей ограничений, а также для выбора их знаков. Вид этого окна после ввода данных показан на рис. 1.2.

  • В строке Variable — установленные по умолчанию имена переменных. В строке Maximize (или Minimize) вводятся коэффициенты целевой функции. Обозначения С1, С2, СЗ и т. д. — это установленные по умолчанию названия ограничений. В соответствующих строках вводятся коэффициенты этих огра­ничений, за которыми следуют их знаки (в столбце Direction) и правые части (в

(к Производственный план

Variable —>

Х1

Х2

ХЗ

Х4

Direction R.

H. S.

Maximize

70

60

110

140

С1

1

2

1

2

<=

19

С2

7

4

5

4

<=

80

СЗ

5

7

9

8

<=

100

LowerBound

3

1

1

2

UpperBound

5

М

3

4

VariableType

Continuous

Continuous

Continuous

Continuous

Рис. 1.2. Задание коэффициентов целевой функции и ограничений

столбце R. Н. S.). Ниже— две строки для задания граничных ycMioBiiiiiLowerBound и UpperBound. В первой из них вводятся нижние грани­цы переменных, а во второй — верхние. По умолчанию все нижние границы равны 0, а все верхние равны бесконечности, которая обозначается большой ла­тинской буквой М. В строке Variable Туре указан заданный вами тип перемен­ных: Continuous (непрерывная), Integer (целая), Binary (двоичная) или Unre­stricted (свободная).

Вппманпе! В рассматриваемой версии WinQSB при вводе чисел, имею­щих дробную часть, используйте в качестве разделителя целой и дробной части точку, а не запятую. (Хотя в таблицах результатов, выдаваемых программой после окончания решения, вы увидите в качестве разделителя тот знак, который определяется настройками вашей операционной системы, скорее всего запя­тую.)

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

  1. Перемещаться по таблице— с помощью клавиши Tab или клавиш со стрелками.

  2. Выбрать ячейку таблицы — щелчком этой ячейки.

  3. Редактировать содержимое ячейки таблицы — после щелчка голубого поля над таблицей. При этом выбранная ячейка выделится цветом и можно ре­дактировать ее содержимое.

  4. Изменить знак ограничения — двойным щелчком знака. Если двойной щелчок выполнить несколько раз, знаки будут меняться циклически(<=,>=,=).

  5. Изменить тип переменной — двойным щелчком слова, обозначающего тип этой переменной в строке Variable Туре. При нескольких двойных щелч­ках названия типов будут меняться Lununi4ecKii(Continuous, Integer, Binary, Unrestricted).

С помощью указанных далее команд меню Edit можно изменить следую­щие параметры задачи:

  1. Название задачи — Problem Name.

  2. Имена переменных — Variable Names.

  3. Названия ограничений — Constraint Names.

  4. Вариант оптимизации целевой функции — Objective Function Criterion (максимизация меняется на минимизацию или наоборот).

  5. Количество ограничений — Insert a Constraint или Delete a Constraint (ограничения добавляются или удаляются).

  6. Количество переменных—• Insert a Variable или Delete a Variable (пе­ременные добавляются или удаляются).

Воспользуемся этими командами, чтобы в нашей задаче ввести русские названия переменных и ограничений (рис. 1.3).

С помощью перечисленных далее команд меню Format могут быть изме­нены:

  1. Форма задачи — Switch to Normal Model Form или Switch to Matrix Form (перейти в стандартную или матричную форму). Выбрав любую форму

к Производственный план

[Maximize Прод!

J70

Variable —>

Прод1

Прод2 j

ПродЗ

Прод4

Direction |R. H. S.

Maximize

70

60

110

140

Труд

1

2

1

2

<= 19

Сырье

7

4

5

4

<= 80

Финансы

5

7

9

8

<= 100

LowerBound

3

1

1

2

UpperBound

5

М

3

4

VariableType

Continuous

Continuous

Continuous

Continuous

Рис. 1.3. Измененные названия переменных и ограничений

задачи, вы можете построить задачу, двойственную к ней, с помощью команды Switch to Dual Form.

  1. Формат чисел — Number.

  2. Шрифт и ifeem — Font.

» Выравнивание — Alignment.

  1. Высота строк — Row Height.

  2. Ширина столбцов — Column Width.

Например, стандартная форма нашей задачи показана на рис. 1.4.

Вниманне! После ввода данных задачи не забудьте сохранить ее с помо­щью команды File ► Save Problem As.

Нахождение решения

Чтобы решить задачу, выберите в меню Solve and Analyze один из сле­дующих вариантов действий:

  1. Решить задачу— Solve the Problem. При этом задача решается сим­плексным методом, если все переменные определены вами как непрерывные, или методом ветвей и границ, если хотя бы одна из них определена как целая или двоичная. По окончании решения появится сообщение о том, что задача

(ь Производственный план

й

а

Maximize 70Прод1 ♦60Прод2*11ОПродЗЧ 40Прод4

Maximize

OBJ/Conslraint/VariableType/Bound

70Прод1+60Прод2+110ПродЗ+140Прод4 1Прод1+2Прод2+1ПродЗ+2Прод4<=19 7Прод1+4Прод2+5ПродЗ+4Прод4<=80 5Прод1+7Прод2+9ПродЗ+8Прод4<=100

Integer:

Binary:

Труд

Сырье

Финансы

Unrestricted:

Прод1

>=3, <=5 >=1. <=М >=1, <=3 >=2, <=4

Прод2

ПродЗ

Прод4

Рис. 1.4. Задача линейного программирования в стандартной форме

решена (The problem has been solved.) и либо получено оптимальное реше­ние (Optimal solution is achieved.), либо допустимых решении нет (However, the problem is infeasible!), либо целевая функция не ограничена (However, the problem is unbounded!). Щелкнув кнопку OK в окне с этим сообщением, вы увидите сводный отчет о решении, или анализ недопустимости (если нет допу­стимых решений), или анализ неограниченности (если не ограничена целевая функция). В дальнейшем можно открывать сводный отчет либо посредством меню Window, либо с помощью команды Results ► Combined Report.

  1. Решить с показом шагов — Solve and Display Steps. В этом случае показываются все итерации решения. Если все переменные определены как не­прерывные, задача решается симплексным методом и отображаются симплекс- таблицы с указанием переменных, вводимых в базнс и исключаемых из него. С помощью меню Simplex Iteration вы можете сами выбрать переменную, вво­димую в базис (Choose Entering Variable), а также перейти к следующей ите­рации (Next Iteration), к последней итерации (Go to the Last Tableau) или к концу решения с выводом сводного отчета (Nonstop to Finish). В дальнейшем можно открывать таблицу с последней итерацией либо посредством меню Win­dow, либо с помощью команды Results ► Final Simplex Tableau.

  2. Решить графическим методом — Graphic Method. При выборе этой команды откроется окно (рис. 1.5), в котором нужно указать, какая переменная будет отображаться на горизонтальной оси (X), а какая — на вертикальной (Y). Если в задаче более двух переменных, вам будет предложено положить осталь­ные переменные равными их значению в оптимальном решении (Set to optimal), или нулю (Set to zero) или тем значениям, которые вы сами зададите (Assign variables) (окно для задания значений откроется после щелчка кнопки ОК).

Анализ оптимального решения и его чувствительности

Сводный отчет, появляющийся после завершения вычислений, содержит наиболее полные сведения о найденном оптимальном решении (рис. 1.6). Кро­ме того, вы найдете в этом отчете информацию, необходимую для выполнения анализа чувствительности.

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

Прод1

Прод2

Other Variables '■ Set to optimal Г Set to zero Г Assign values

Рис. 1.5. Задание данных для графического метода решения

  1. Combined Report for Производственный план

12:36:09

| Tuesday^

August

10

2004

Decision

Solution

Unit Cost or

Total

Reduced

Basis

Allowable

Allowable

Variable

Value

Protil c(j)

Contribution

Cost

Status

Min. c(j)

Max. c(j)

1

Прод1

5,0000

70,0000

350,0000

0

basic

30,0000

M

2

Прод2

1.5000

60,0000

90,0000

0

basic

0

140.0000

3

ПродЗ

3,0000

110,0000

330,0000

0

basic

30,0000

M

4

Прод4

4,0000

140,0000

560,0000

0

basic

60,0000

M

Objective

Funclion

(Max.) =

1 330,0000

Lell Hand

Right Hand

Slack

Shadow

Allowable

Allowable

Constraint

Side

Direction

Side

or Surplus

Price

Min. RHS

Max. RHS

Т

Труд

19,0000

<=

19,0000

0

30,0000

18.0000

20,5714

¥

Сырье

72,0000

<=

80,0000

8,0000

0

72,0000

M

3

Финансы

94,5000

<=

100,0000

5,5000

0

94.5000

M

Рис. 1.6. Сводный отчет о решении задачи линейного программирования

целевой функции или правая часть только одного ограничения. Сведений о том, что произойдет при одновременном изменении нескольких входных данных за­дачи, сводный отчет не дает.

Сводный отчет состоит из двух таблиц. В первой таблице выводится сле­дующая информация, касающаяся переменных:

  1. В первых двух столбцах — номера и имена переменных.

  2. В столбце Solution Value— найденное решение (в нашем случае 5; 1,5; 3; 4 — оптимальный план выпуска продукции).

  3. В столбце Unit Cost or Profit c(j) — коэффициенты целевой функции (в данном случае — удельная маржинальная прибыль).

  4. В столбце Total Contribution— итоговый вклад в оптимальное значе­ние целевой функции, определяемый каждой переменной (произведение коэф­фициента целевой функции на оптимальное значение этой переменной). В нашем примере — это маржинальная прибыль от продажи каждого продукта.

  5. В столбце Reduced Cost— приведенные (нормированные) стоимо­сти — двойственные оценки, которые в нашем случае все равны нулю. Такая оценка может быть отлична от нуля только для переменной, имеющей в опти­мальном плане нулевое значение. Приведенная (нормированная) стоимость, взятая по абсолютной величине, показывает насколько, как минимум, нужно изменить коэффициент переменной в целевой функции, чтобы она стала поло­жительной (например, как повысить прибыльность изделия, чтобы выпускать его стало выгодно). Кроме того, она показывает, насколько ухудшится значение целевой функции, если сделать эту переменную равной 1, не меняя ее коэффи­циента в целевой функции (например, насколько снизится прибыль, если ввести в план производство единицы изделия, выпускать которое невыгодно). Нулевая нормированная стоимость у нулевой переменной говорит о наличии альтерна­тивных оптимальных решений.

  6. В столбце Basis Status — состояние переменных в последней сим­плекс-таблице: они могут быть либо базисными (basic), либо небазисными и равными своей нижней границе (at bound). (Нижняя граница переменных зада­на в строке LowerBound матричной формы задачи.)

® В столбцах Allowable Min. c(j) и Allowable Max. c(j) — границы интер­валов оптимальности, то есть пределы изменения коэффициентов целевой функции, при которых сохраняется прежнее оптимальное решение (М обозна­чает оо). В нашем примере такими интервалами будут: для 1-го вида продук­ции — [30, +со), для 2-го — [0, 140], для 3-го — [30, +оо) и для 4-го — [60, +оо).

  1. В последней строке таблицы — Objective Function,оптимальное значе­ние целевой функции (в нашей задаче максимальное значение валовой маржи­нальной прибыли — 1 330).

Вторая таблица сводного отчета содержит следующие сведения об огра­ничениях задачи:

  1. В первых двух столбцах — номера и названия ограничений.

  2. В столбце Left Hand Side — левые части ограничений, вычисленные при оптимальных значениях переменных. В нашей задаче — это количество ре­сурсов, которое будет израсходовано при оптимальном выпуске продукции.

  3. В столбце Direction — знаки ограничений.

  4. В столбце Right Hand Side — правые части ограничений.

  5. В столбце Slack or Surplus — остатки или избытки, вычисленные по правилу: «правая часть минус левая» для ограничений типа <= или «левая часть минус правая» для ограничений типа>=. Они могут показывать, например, ве­личину неиспользованного ресурса (для лимитирующих ограничений, то есть ограничений сверху) или превышение требуемого уровня (для ограничений- требований, то есть ограничений снизу). Если остаток или избыток равен нулю, то соответствующее ограничение является связанным (активным), а соответ­ствующий ресурс — дефицитным (используемым полностью). В противном случае ограничение несвязанное (неактивное), а ресурс недефицитен. В нашей задаче связано первое ограничение и дефицитны трудовые ресурсы.

  6. В столбце Shadow Price — теневые цены, двойственные оценки, пока­зывающие, на какую величину изменится оптимальное значение целевой функ­ции при увеличении на единицу правой части соответствующего ограничения, тогда как остальные данные неизменны (например при добавлении единицы соответствующего ресурса). Кроме того, теневая цена — это максимальная це­на, которую стоит платить за дополнительное количество дефицитного ресурса, чтобы приобретение было выгодным, или минимальная цена его продажи. Те­невая цена отлична от нуля только для связанных ограничений.

В столбцах Allowable Min. RHS и Allowable Max. RHS — границы интервалов устойчивости, то есть пределы изменения правых частей ограни­чений (в нашем примере — запасов ресурсов), при которых неизменны соот­ветствующие теневые цены и в оптимальном решении сохраняется прежний набор ненулевых переменных (в данном случае -— ассортимент продукции). В

нашем примере интервалами устойчивости будут: для трудовых ресурсов — [18, 20,6], для сырья — [72, +оо) и для финансов — [94,5, +оо).

После нахождения решения становится доступным меню Results. С его помощью можно узнать, сколько итераций и времени работы процессора по­трачено на поиск решения (Show Run Time and Iteration), а также впослед­ствии снова вызвать сводный отчет (Combined Report).

Все сведения о результатах решения и его чувствительности содержатся в сводном отчете. Однако можно вывести лишь некоторые из этих сведений в ви­де частных отчетов, вызываемых с помощью команд меню Results:

  1. Отчет по результатам — Solution Summary. Показывает оптималь­ные значения переменных и их итоговый вклад в оптимальное значение целе­вой функции, нормированные стоимости, а также состояние переменных: вхо­дят они в окончательный базис или нет.

  2. Отчет по ограничениям — Constraint Summary. Отображает левые и правые части ограничений, остатки или избытки, а также теневые цены.

  3. Анализ чувствительности при изменении коэффициентов целевой функции— Sensitivity Analysis for OBJ. Показывает нормированные стоимо­сти, а также пределы изменения коэффициентов целевой функции — границы интервалов оптимальности, внутри которых сохраняется оптимальное решение.

» Анализ чувствительности при изменении правых частей ограниче­ний— Sensitivity Analysis for RHS. Отображает теневые цены, а также преде­лы изменения правых частей ограничений — границы интервалов устойчиво­сти, внутри которых сохраняется базис решения и теневые цены.

Вннмание! Новый выбранный отчет всегда заменяет предыдущий (старый не сохраняется). Просмотрев сводный или частные отчеты, вы можете с помо­щью меню Window вернуться в окно с исходными данными. Данные можно изменить и решение повторить, получив при этом новый отчет.

Получение альтернативных решений

Когда получено оптимальное решение задачи и на экране — окно с ее ис­ходными данными, можно получить альтернативные решения с помощью ко­манды Solve and Analyze > Alternative Solution. Она открывает окно, содер­жащее два списка: в левом — текущий базис, а в правом — небазисные пере­менные вместе с двойственными оценками Cj-Zj, указанными в скобках (рис. 1.7).

Select Entering Variable from Non-

3asic Variables:

'Jon-basic and its Cj-Zj:

Прод1

Slack Труд [-30.00001

Прод2

Slack UB Прод! [-40.0000]

ПродЗ

Slack UB ПродЗ [-00.0000]

Прод4

Slack_Ct>jpbe

51аск_Финансы

Slack UB Прод4 [-00.0000]

Help

Note: Choose a non-basic variable with Cj-Zj = 0. if any. to enter the basis will not change the objective value.

Рис. 1.7. Получение альтернативных решений

В правом списке нужно выбрать переменную, которую следует ввести в базис. После щелчка кнопки ОК программа автоматически выберет перемен­ную, исключаемую из базиса, и найдет новое решение. Если вы выбрали неба­зисную переменную с Cj - Zj = 0, то значение целевой функции не изменится, то есть будет найдено альтернативное оптимальное решение. Если же вы вы­брали переменную с Cj - Zj ф 0, то значение целевой функции может изменить­ся. Предупреждение об этом появится после щелчка кнопки ОК.

Для продолжения вычислений необходимо в окне с предупреждением щелкнуть кнопку Да. Чтобы посмотреть новое решение, выберите любую фор­му отчета с помощью меню Results.

Альтернативное оптимальное решение, если оно есть, можно найти и про­ще, с помощью команды Results ► Obtain Alternate Optimal (при этом на экране может находиться либо отчет, либо окно с исходными данными). Эта команда сразу выдаст отчет с альтернативным решением. Однако она доступна, когда такое решение есть. О его наличии свидетельствует надпись (Note: Alter­nate Solution Exists!!) в сводном отчете рядом со значением целевой функции.

А нал т недопуст им ост и

Если оптимального решения нет из-за отсутствия допустимых решений, вместо сводного отчета автоматически выводится анализ недопустимости. Пример такого анализа показан на рис. 1.8.

В анализе недопустимости перечисляются ограничения, их знаки, правые части и теневые цены. Для каждого из ограничений указываются изменения правых частей ограничений, при которых решение может появиться. Предлага­ется добавить к правой части величину, большую, чем указано в столбце Add More Then This To RHS, но при этом не превышающую величины, указанной в столбце Add Up То This То RHS.

Не нужно вносить все предлагаемые изменения сразу, так как среди них могут быть и бесполезные. Некоторые изменения можно отвергнуть сразу, из практических соображений, поскольку они не соответствуют реальной ситуа­ции. Другие — пробовать по очереди, внося их и заново решая задачу, пока не появится решение. Окно с исходными данными для внесения изменений откры­вается с помощью меню Window. Это же меню, а также команду Re­sults ► Infeasibility Analysis можно использовать в дальнейшем, чтобы вер­нуться к анализу недопустимости.

Анализ н е о грач иченности

Если оптимального решения нет вследствие неограниченности целевой функции, вместо сводного отчета автоматически выводится анализ неограни­ченности. Пример такого анализа показан на рис. 1.9.

Г

л Infeasibility Analysis for LP Sample Problem

- [n

X

Infeasible

solution!!!

Make any of

the following

RHS changes

and solve Ihe

problem again.

10-02-2004

23:16:16

Constraint

Direction

Right Hand Side

Shadow

Price

Add More Than This To RHS

Add Up To This To RHS

1

2

3

C1 <= 5.0000 4,7500 0.4000 M C2 <= 0 0.2500 2,0000 5.0000 C3 >= 135,0000 0 -M -10,0000

» Unboundedness Analysts for LP Sample Problem

■■

X

Unbounded

solution!!!

Make any of

the following

changes and

solve it again.

10-02-2004

22:56:23

Constraint

Decision

Variable

Coefficient

A(i.j)

Subtract More Than This From A(i,j)

Or Add More Than This To A(i.j)

Change

the direction

of constraint

C3

II

Рис. 1.9. Пример анализа неограниченности

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

  1. Изменить знак ограничения — Change the direction of constraint.

® Вычесть величину, большую, чем указано, из коэффициента j-й пере­менной в i-м ограничении — Subtract More Than This From A(i,j).

  1. Или добавить величину, большую, чем указано, к коэффициенту j-й пе­ременной в i-м ограничении — Or Add More Than This To A(i,j).

Здесь так же, как и в случае анализа недопустимости, не нужно вносить все предлагаемые изменения сразу: среди них могут оказаться и бесполезные. Не­которые изменения можно отвергнуть сразу, из практических соображений, по­скольку они не соответствуют реальной ситуации. Другие — пробовать по оче­реди, внося их и заново решая задачу, пока не появится решение. Окно с исход­ными данными для внесения изменений открывается с помощью меню Window. Это же меню, а также команду Results ► Unboundedness Analysis можно использовать в дальнейшем, чтобы вернуться к анализу неограниченно­сти.

Параметрический анализ

Параметрический анализ позволяет выяснить, как изменяется оптимальное значение целевой функции при изменении ее коэффициентов или правых ча­стей ограничений. При этом предполагают, что изменяемые величины зависят от некоторого параметра (например времени), и находят, как от этого же пара­метра зависит оптимальное значение целевой функции.

Параметрический анализ можно выполнить после нахождения оптималь­ного решения с помощью команды Perform Parametric Analysis. Она находит­ся в меню Solve and Analyze, когда на экране открыто окно с исходными дан­ными задачи, или в меню Results, когда на экране— отчет, сводный или част­ный, о результатах решения. Эта команда открывает окно для выбора варианта параметрического анализа (рис. 1.10).

По умолчанию в этом окне выбран параметр Objective Function, предпо­лагающий анализ изменении коэффициентов целевой функции. Если вы хотите проанализировать изменение одного коэффициента, выберите в списке справа переменную, к которой он относится. После щелчка кнопки ОК появится таб­лица с результатами параметрического анализа.

Если же одновременно изменяются несколько коэффициентов, то нужно сделать следующее: в списке выбрать пункт Perturbation Vector, щелкнуть кнопку ОК и в открывшемся окне задать вектор изменения, показывающий, как изменяется каждый коэффициент целевой функции.

Пусть, например, целевая функция нашей задачи изменяется следующим образом: F = (70 + р).\] + 60,v? + (110 + 2р)д-3 + (140 + 3p)xi, где р — изменяю­щийся параметр. Вектор изменения в этом случае— (1, 0, 2, 3). Он состоит из коэффициентов параметра р и задается в окне, показанном на рис. 1.11. После щелчка в этом окне кнопки ОК появится таблица с результатами параметриче­ского анализа.

Если изменяются правые части ограничений, нужно выбрать параметр Right Hand Side (рис. 1.12). Если вас интересует изменение одного ограниче­ния, выберите в списке справа его название и щелкните кнопку ОК.

Если одновременно изменяются несколько ограничений, то в этом же списке выберите Perturbation Vector и щелкните ОК. В открывшемся окне за­дайте вектор изменения, показывающий, как изменяется правая часть каждого ограничения (в том числе и ограничений сверху в граничных условиях).

Рис. 1.10. Выбор варианта параметрического анализа

Objective Function Perturbati

Variable

Perturbalion Veclor

Прод1

1

Прод2

ПродЗ

2

Прод4

3

OK

Cancel

Help

Рис. 1.11. Задание вектора изменення коэффициентов целевой функции

Рис. 1.12. Выбор параметрического анализа правых частей ограничений

Пусть, например, в нашей задаче ограничения изменяются так:

л-] + 2л'2 + v< + 2л\| < 19 + ц, 3 <лг, <5,

1х\ + 4л-2 + 5х3 + 4л‘4 < 80, 1

5л-, + Ъг + 9,v3 + 8.y4 < 100 + 2ц, 1 <х3 < 3 - ц,

2 <л'4 <4,

где р — изменяющийся параметр.

Вектор изменения в этом случае — (1, 0, 2, 0,-1, 0) — состоит из коэффи­циентов параметра р в правых частях ограничений и тех граничных условий, где имеется ограничение сверху. Он задается в окне, показанном на рис. 1.13, где буквы UB (от слов Upper Bound), добавляемые спереди к имени перемен­ных, обозначают ограничения сверху для этих переменных в граничных усло­виях. После щелчка в этом окне кнопки ОК появится таблица с результатами параметрического анализа (рис. 1.14).

Right-Hand-Side Perturbation

Constraint

Perturbation Vector

Труд

1

Сырье

2

-1

Финансы

иВ_Прод!

иВ_ПродЗ

иВ_Прод4

Cancel

Help

Рис. 1.13. Задание вектора изменения правых частей ограничений

» Parametric Analysis for Производственный план --

light-Hand-Side

X

From

To

From

To

Leaving

Entering

Запде

jj (Vector)

p (Vector)

OBJ Value

OBJ Value

Slope

Variable

Variable

1

0

2,0000

1 330,0000

570,0000

-50,0000

ПродЗ

2

2,0000

Infinity

Infeasible

3

0

-0,5000

1 330,0000

695,0000

-50,0000

Прод2

81аск_иВ_Прод 1

4

-0,5000

-1,5000

695,0000

665,0000

30,0000

Прод1

Slack_UB_npofl4

5

-1.5000

-2,3333

665,0000

640,0000

30,0000

81аск_Финансы

81аск_иВ_ПродЗ

6

-2,3333

-4,0000

640,0000

550,0000

54,0000

Прод4

81аск_Финансы

7

-4,0000

-9,0000

550,0000

0

110,0000

ПродЗ

8

-9,0000

-Infinity

Infeasible

II

Рис. 1.14. Результаты параметрического анализа при изменении правых частей огра­ничений

В первых трех столбцах полученной таблицы — номера и границы интер­валов изменения параметра р. (Если бы рассматривалось изменение только од­ного коэффициента целевой функции или одной правой части ограничения, то это были бы интервалы изменения именно этого коэффициента или этой правой части, а не параметра р.) Интервалы расположены в следующей последователь­ности. Сначала идут интервалы по возрастанию параметра от р = 0 до +со, затем по убыванию — от р = 0 до -со (в таблице бесконечность обозначается словом Infinity).

В столбцах From OBJ Value и То OBJ Value— значения целевой функ­ции на границах интервалов изменения параметра р. В столбце Slope — угло­вой коэффициент целевой функции. Наконец, в последних столбцах Leaving Variable и Entering Variable — имена переменных, которые исключаются из базиса и вводятся в него при переходе к следующему по порядку интервалу из­менения параметра р.

В последних двух столбцах используются следующие обозначения. Буквы UB, добавляемые к именам переменных, обозначают ограничения сверху для этих переменных в граничных условиях, а слова Slack или Surplus перед названиями ограничений — дополнительные переменные, остаточные или из­быточные, используемые в симплексном методе для превращения ограничений- неравенств в равенства.

Если в столбце Leaving Variable указана переменная, а в столбце Entering Variable — нет, данный интервал изменения параметра р является последним, в котором имеется решение, а в следующем — решение отсутствует. Интерва­лы без допустимых решений обозначаются в столбце From OBJ Value словом Infeasible.

К результатам параметрического анализа можно возвращаться из других окон WinQSB посредством меню Window или с помощью команды Re­sults ► Show Parametric Analysis.

Решающая функция

Результаты предварительно выполненного параметрического анализа можно представить в графической форме с помощью команды Re­sults ► Graphic Parametric Analysis. При этом выводится график решающей функции, показывающий зависимость целевой функции от параметра р. (Если изменяется только один коэффициент целевой функции или правая часть одно­го ограничения, то показывается зависимость именно от этого коэффициента или этой правой части.)

Рассмотренные ранее результаты параметрического анализа (см. рис. 1.14), представлены графически на рис. 1.15.

Графический анализ чувствительности

Если выбран графический метод решения (см. рис. 1.5), то построенное графическое изображение (рис. 1.16) можно использовать для анализа чувстви­тельности модели. Для этого выберите команду Sensitivity ► Objective Func­tion and Constraints. Появится окно (рис. 1.17), в котором можно внести изме­нения в любые параметры задачи.

В списке, расположенном слева, нужно выбрать, что именно будет изме­няться: целевая функция (пункт OBJ) или ограничение (укажите его название). Затем в раскрывающихся списках выберите (или введите с клавиатуры) новые

Рис. 1.15. График решающей функции при изменении правых частей ограничений

Вектор изменения в этом случае — (1, 0, 2, 0,-1, 0) — состоит из коэффи­циентов параметра р в правых частях ограничений и тех граничных условий, где имеется ограничение сверху. Он задается в окне, показанном на рис. 1.13, где буквы UB (от слов Upper Bound), добавляемые спереди к имени перемен­ных, обозначают ограничения сверху для этих переменных в граничных усло­виях. После щелчка в этом окне кнопки ОК появится таблица с результатами параметрического анализа (рис. 1.14).

Right-Hand-Side Perturbation

Constraint

Perturbation Vector

Труд

1

Сырье

2

-1

Финансы

иВ_Прод!

иВ_ПродЗ

иВ_Прод4

Cancel

Help

Рис. 1.13. Задание вектора изменения правых частей ограничений

» Parametric Analysis for Производственный план --

light-Hand-Side

X

From

To

From

To

Leaving

Entering

Запде

jj (Vector)

p (Vector)

OBJ Value

OBJ Value

Slope

Variable

Variable

1

0

2,0000

1 330,0000

570,0000

-50,0000

ПродЗ

2

2,0000

Infinity

Infeasible

3

0

-0,5000

1 330,0000

695,0000

-50,0000

Прод2

81аск_иВ_Прод 1

4

-0,5000

-1,5000

695,0000

665,0000

30,0000

Прод1

Slack_UB_npofl4

5

-1.5000

-2,3333

665,0000

640,0000

30,0000

81аск_Финансы

81аск_иВ_ПродЗ

6

-2,3333

-4,0000

640,0000

550,0000

54,0000

Прод4

81аск_Финансы

7

-4,0000

-9,0000

550,0000

0

110,0000

ПродЗ

8

-9,0000

-Infinity

Infeasible

II

Рис. 1.14. Результаты параметрического анализа при изменении правых частей огра­ничений

В первых трех столбцах полученной таблицы — номера и границы интер­валов изменения параметра р. (Если бы рассматривалось изменение только од­ного коэффициента целевой функции или одной правой части ограничения, то это были бы интервалы изменения именно этого коэффициента или этой правой части, а не параметра р.) Интервалы расположены в следующей последователь­ности. Сначала идут интервалы по возрастанию параметра от р = 0 до +со, затем по убыванию — от р = 0 до -со (в таблице бесконечность обозначается словом Infinity).

В столбцах From OBJ Value и То OBJ Value— значения целевой функ­ции на границах интервалов изменения параметра р. В столбце Slope — угло­вой коэффициент целевой функции. Наконец, в последних столбцах Leaving Variable и Entering Variable — имена переменных, которые исключаются из базиса и вводятся в него при переходе к следующему по порядку интервалу из­менения параметра р.

В последних двух столбцах используются следующие обозначения. Буквы UB, добавляемые к именам переменных, обозначают ограничения сверху для этих переменных в граничных условиях, а слова Slack или Surplus перед названиями ограничений — дополнительные переменные, остаточные или из­быточные, используемые в симплексном методе для превращения ограничений- неравенств в равенства.

Если в столбце Leaving Variable указана переменная, а в столбце Entering Variable — нет, данный интервал изменения параметра р является последним, в котором имеется решение, а в следующем — решение отсутствует. Интерва­лы без допустимых решений обозначаются в столбце From OBJ Value словом Infeasible.

К результатам параметрического анализа можно возвращаться из других окон WinQSB посредством меню Window или с помощью команды Re­sults ► Show Parametric Analysis.

Решающая функция

Результаты предварительно выполненного параметрического анализа можно представить в графической форме с помощью команды Re­sults ► Graphic Parametric Analysis. При этом выводится график решающей функции, показывающий зависимость целевой функции от параметра р. (Если изменяется только один коэффициент целевой функции или правая часть одно­го ограничения, то показывается зависимость именно от этого коэффициента или этой правой части.)

Рассмотренные ранее результаты параметрического анализа (см. рис. 1.14), представлены графически на рис. 1.15.

Графический анализ чувствительности

Если выбран графический метод решения (см. рис. 1.5), то построенное графическое изображение (рис. 1.16) можно использовать для анализа чувстви­тельности модели. Для этого выберите команду Sensitivity ► Objective Func­tion and Constraints. Появится окно (рис. 1.17), в котором можно внести изме­нения в любые параметры задачи.

В списке, расположенном слева, нужно выбрать, что именно будет изме­няться: целевая функция (пункт OBJ) или ограничение (укажите его название). Затем в раскрывающихся списках выберите (или введите с клавиатуры) новые

Рис. 1.15. График решающей функции при изменении правых частей ограничений

Piic. 1.16. Графическое решение

Graphic Sensitivity Analysis

Труд Coefficients

Прод1 Прод2 R.H.S.

лЛ <= jlI

Cancel jHelpj

Труд

Draw OK

Рис. 1.17. Графический анализ чувствительности

значення для коэффициентов целевой функцин или ограничения, для правой части ограничения (в списке R.H.S.) или для величины целевой функции (в списке OBJ, появляющемся, если выбрано изменение целевой функции). После щелчка кнопки Draw (без закрытия окна) пли ОК (с закрытием окна) все вне­сенные изменения будут отражены в окне с графическим решением: появятсяновые линии, соответствующие новой целевой функции или новому ограниче­нию.

После многократного внесения изменений графическое изображение за­громождается множеством новых линий. Чтобы вернутся к исходному виду изображения, нужно выбрать команду Options > Redraw Graphic Solution.

С помощью команд меню Options можно также внести в изображение сле­дующие изменения:

  1. Изменение пределов отображения переменных и цветов изображе­ния — Change XY Ranges and Colors. В окне, открываемом этой командой, можно с помощью раскрывающихся списков определить, в каких пределах должно выводиться изображение переменных х и у, а также выбрать цвета раз­личных элементов изображения. Чтобы изменить текущий цвет элемента, щел­кайте в поле, показывающем этот цвет, пока не добьетесь нужного эффекта.

  2. Изменение переменных, отображаемых на горизонтальной и вертикальной оси — Change XY Variables. Эта команда вызывает окно (см. рис. 1.5), в котором можно выбрать, какие переменные будут отображаться на горизонтальной оси (X) и вертикальной (Y).

  • Решение с помощью программы Excel

Ввод числовых данных

Решим задачу, сформулированную в разделе 1.1, с помощью программы Excel. Для удобства ввода данных в электронную таблицу перепишем ограни­чения следующим образом:

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

  2. все ограничения разместим друг под другом так, чтобы коэффициенты при каждой переменной располагались в одном столбце;

  3. ограничения расположим в таком порядке, чтобы подряд шли ограни­чения одного знака, например, сначала со знаком <, а затем — со знаком >.

В результате этих преобразований каждое ограничение должно содержать только один знак неравенства. Слева от него —переменные с коэффициентами, справа — числа. (Не должно быть чисел слева от знака неравенства или пере­менных — справа.) Нахождение одинаковых переменных в одном столбце по­может заполнению соответствующих столбцов электронной таблицы.

F= 70.V| + 6O.V2 + 1 Юл'з + 140x4 —> max,

-V)

+

2.\'2 +

х} +

2х, < 19,

7.v,

+

4.\'2 +

3 +

4.Y4 < 80,

5.v,

+

7*2 +

3 +

8x4 < 100,

Х\

<5,

*3

<3,

*4 < 4,

-V)

>3,

•V2

> 1,

V3

> 1,

*4 > 4,

Х|,Х2,

*3, *4 > 0.

Руководствуясь этой алгебраической формой модели, введем на лист Excel числовые данные (рис. 1.18). При этом условия неотрицательности переменных вводить не нужно, так как они задаются с помощью соответствующего пара­метра средства Поиск решения.

В первой строке таблицы располагается заголовок, во второй — наимено­вания продуктов. Третья строка отведена для значений переменных, которые после вычислений появится в ячейках ВЗ:ЕЗ, выделенных с помощью рамки, образованной внешней границей ячеек. Можно, конечно, оставить эти ячейки пустыми, но лучше ввести какие-нибудь небольшие числа, например единицы, которые позволят проверить правильность вводимых формул (будут видны от­личные от нуля результаты вычислений). В четвертой строке в ячейках В4:Е4 заданы коэффициенты целевой функции, а ячейка F4, выделенная внешней гра­ницей и цветом заливки, зарезервирована для вычисления значения целевой функции. Строки с 6-й по 15-ю содержат коэффициенты, знаки и правые части ограничений. В столбце Лев.часть будут вычисляться левые части ограниче­ний, а в столбце Разница — разность правых и левых частей.

Предложенная форма таблицы удобна для выполнения расчетов, анализа

т

А

"

С

о

Е

F

G

Н I 1

j 1

1

Производственный план

2

Продукт

П1

П2

пз

П4

3

Произведенное к-во

1

1

1

1

Прибыль

4

Удельная прибыль

70,00р.

60,00р.

110,00р. 140,00р.

5

Ограничения

Расход ресурсов

Лев.часть!

Прав.часть! Разница

б

ТРУД

1

2

1

2

1<

19

7

Сырье

7

4

5

4

<

80

8

Финансы

5,00р.

7,00р.

9,00р.

8,00р.

<

100,00р.

9

Мах.П1

1

|<

5

10

Мах.ПЗ

1

<

3

11

Мах.П4

1

<

4

12

Мин.П1

1

>

3

13

Мин.П2

1

>

1

14

Мин.ПЗ

1

>

1

15

Мин.П4

1

1>

2

16

Рис. 1.18. Ввод числовых данных для решения задачи линейного программирования

результатов и документирования модели. Наглядность обеспечивается соответ­ствующим форматированием: использованием заголовков, жирного шрифта, подчеркивания текста, рамок по границам ячеек, выделения цветом и различ­ных видов выравнивания. При этом денежные величины следует представлять в денежном или финансовом формате (в котором к числу автоматически добав­ляется обозначение денежной единицы). Фон всех пустых ячеек вокруг нашей модели сделан темным (выбран соответствующий цвет заливки), что помогает сконцентрировать внимание на значимых частях модели.

Оформление таблицы облегчают следующие кнопки на вкладке Главная (в старых версиях Excel— на панели форматирования): Объединить и поме­стить в центре — для центрирования заголовка, занимающего несколько яче­ек, Финансовый числовой формат (в старых версиях Денежный формат) — для задания финансового формата, Увеличить разрядность или Уменьшить разрядность — для задания нужного числа десятичных знаков.

Для отображения знаков ограничений можно либо воспользоваться кноп­кой Символы на вкладке Вставка, либо ввести их с клавиатуры. Во втором случае нужно сначала переключить клавиатуру на английский язык, ввести знак > или <, а затем подчеркнуть его с помощью кнопки Подчеркнутый. Знак = вводится также с клавиатуры.

После составления таблицы подберите ширину ее столбцов в соответствии с содержимым ячеек. Для этого выделите весь лист, щелкнув кнопку Выделить все — прямоугольник в верхнем левом углу листа (над цифрой 1 и левее буквы А). Затем дважды щелкните правую границу заголовка любого столбца (верти­кальную черточку между заголовками любых столбцов, например между бук­вами А и В). (Чтобы при этом столбец А не расширился до размера заголовка, необходимо всегда объединять те ячейки первой строки, в которой он находит­ся, с помощью кнопки Объединить и поместить в центре.)

Ввод формул

В ячейки таблицы введем следующие формулы:

Ячейка Формула Копировать в

F4

16

112

F6:F 15

17:111

113:115

=СУММПРОИЗВ($В$3:$Е$3;В4:Е4)

=H6-F6

=F12-H12

Чтобы ввести, например, формулу для вычисления целевой функции:

  1. Щелкните ячейку F4.

  2. Введите с клавиатуры знак равенства.

  3. В левой части строки формул раскройте список функций и щелкните имя функции СУММПРОИЗВ. Если ее там нет, выберите в списке функций пункт Другие функции. В открывшемся окне в категории Математические найдите функцию СУММПРОИЗВ и дважды щелкните ее имя.

  4. Введите аргументы функции СУММПРОИЗВ (рис. 1.19).

  5. Щелкните кнопку ОК.

Сразу после ввода формулы в ячейке F4 появится 380, так как формула вычисляется с переменными, которые мы положили равными единице (легко проверить, просуммировав числа в 4-й строке — в этом преимущество значе­ний переменных, равных единице).

Другой возможный способ ввода формулы доступен в Excel 2010 и 2007. Введите в ячейку знак равенства, а затем начальные буквы названия функции, например «су». Для прокрутки появившегося списка функций, имеющих под­ходящие названия, используйте клавишу Стрелка вниз, затем дважды щелкни­те в списке нужную функцию — в ячейку будет введено ее имя с открывающей

Аргументы функции

mr*i

СУММПРОИЗВ

Массив1 |$Б$3:$Е$3 [fSi]

= {i;i;i;i}

Массив2 |в4:Е4 [!Зё|

= {70;60;110;м0}

МассивЗ | [ЁЗШ

= массив

= 380

Возвращает сумму произведений диапазонов или массивов.

Массив^ маса'1в1;масо4в2;...

от 2 до 255 массивов, соответствующие

компоненты которых* нужно сначала перемножить, а затем сложить

полученные произведения. Все массивы должны иметь одинаковую

Значение: 380

Справка по этой функции

1 ок

[ Отмена ]

Рис. 1.19. Ввод аргументов функции СУММПРОИЗВ

круглой скобкой, в нашем случае =СУММПРОИЗВ(. После задания аргумен­тов, которые нужно разделять точкой с запятой (;), вводимой с клавиатуры, нажмите клавишу Enter (или кнопку Ввод в строке формул) — закрывающая круглая скобка будет добавлена автоматически, а в ячейке отобразится резуль­тат вычислений. Увидеть формулу можно в строке формул, выделив соответ­ствующую ячейку.

Функция СУММПРОИЗВ позволяет вычислить сумму произведений двух массивов, первый из которых содержит значения переменных, а второй — ко­эффициенты целевой функции. Чтобы указать соответствующие диапазоны, нужно их выделить. Если они закрыты окном для ввода аргументов, его можно перетащить с помощью мыши, потянув за строку заголовка, или воспользовать­ся кнопками свертывания, расположенными справа от полей ввода (они позво­ляют временно сворачивать окно).

Ссылка на первый диапазон должна быть абсолютной, со знаками доллара перед каждой буквой и цифрой: $В$3:$Е$3 (чтобы изменить относительную ссылку на абсолютную, нажмите клавишу F4 непосредственно после ввода этой ссылки). Если сразу этого не сделать, то в дальнейшем понадобится снача­ла выделить ссылку, а затем нажать клавишу F4. Ссылка на второй диапазон В4:Е4, напротив, должна быть относительной: это понадобится в дальнейшем при копировании формулы.

После ввода формулы для вычисления целевой функции необходимо за­дать формулы левых частей ограничений. Для этого скопируйте формулу пз ячейки F4 в ячейки F6:F15. Чтобы копировалась только сама формула (без формата ячейки, к которому относятся, например, рамка, заливка и обозначение денежной единицы), нужно воспользоваться специальной вставкой. Для этого щелкните ячейку F4 правой кнопкой мыши и в контекстном меню выберите команду Копировать, затем выделите диапазон F6:F15, щелкните его правой кнопкой мыши и в контекстном меню выберите:

® в Excel 2010 — параметр вставки Формулы;

® в предыдущих версиях Excel — команду Специальная вставка (затем в открывшемся окне выберите параметр формулы и щелкните кнопку ОК).

При копировании относительная ссылка В4:Е4 будет меняться, указывая на массивы коэффициентов соответствующих ограничений, а абсолют­ная $В$3:$Е$3 останется неизменной. Для проверки формулы в ячейке доста­точно дважды щелкнуть эту ячейку. Формула будет отображена на экране, ссылки на ячейки выделены цветом, а сами ячейки — обведены рамками соот­ветствующих цветов (после просмотра нажмите клавишу Esc).

Аналогично, с помощью копирования, вводятся формулы в ячейки 16:115 для вычисления разницы между правыми и левыми частями ограничений. Для ограничений со знаком < из правой части ограничения вычитается левая, а для ограничений со знаком > — из левой правая (для ограничений со знаком = вы­читать можно из правой части левую или из левой правую — все равно). Таким образом, если ограничения выполняются п план допустим, разница всегда бу­дет неотрицательной.

После ввода формул вы можете подставлять в ячейки ВЗ:ЕЗ любые значе­ния (количество выпускаемой продукции), получая соответствующую величину прибыли в ячейке F4 и объем израсходованных ресурсов в столбце Лев.часть. Столбец Разница покажет, допустим ли соответствующий производственный план (в этом случае разница неотрицательна), какие ресурсы дефицитны (для них разница равна нулю) и каков остаток недефицнтных ресурсов.

Вид нашей модели после ввода формул показан на рис. 1.20. Ясно, что, план, предполагающий выпуск одной единицы каждого продукта, недопустим, так как нарушаются ограничения Мин.ГИ и МИН.П4 (разница отрицательна).

т

А

В

С

■>

Е

F

G

Н

1

J

1

Производственный план

2

Продукт

П1

П2

пз

П4

3

Произведенное к-во

1

1

1

1

Прибыль

4

Удельная прибыль

70,00р.

60,00р.

110,00р.

140,00р.

380,00р.

5

Ограничения

Расход ресурсов

Лев.часть

| Прав.часть

Разница

6

труд

1

2

1

2

6

<

19

13

7

Сырье

7

4

5

4

20

<

80

60

8

Финансы

5,00р.

7,00р.

9,00р.

8,00р.

29,00р.

<

100,00р.

71,00р.

9

Мах.П1

1

1

<

5

4

10

Мах.ПЗ

1

1

<

3

2

11

Мах.П4

1

1

<

4

3

12

Мин.П1

1

1

>

3

-2

13

Мин.П2

1

1

>

1

0

14

Мин.ПЗ

1

1

>

1

0

15

Мин.П4

1

1

>

2

-1

16

Рис. 1.20. Модель с введенными формулами

Проверка и документирование модели

После ввода модели на лист Excel ее необходимо проверить п задокумен­тировать. Для проверки задаются различные значения переменных (в нашем случае— в ячейках ВЗ:ЕЗ), чтобы выявить возможные ошибки вычислений. Если, например, для заведомо допустимых значений переменных нарушаются какие-то ограничения, появляются странные значения левых частей ограниче­ний или целевой функции, то, скорее всего, в числах или формулах модели есть ошибки.

Чтобы задокументировать созданную модель, нужно сохранить ее изобра­жение не только с числами, как на рис. 1.20, но и с формулами (рис. 1.21). Для этого сначала сделайте копию листа с моделью, чтобы на этой копии сохранить изображение формул модели. Наиболее простой способ копирования заключа­ется в следующем. Удерживая нажатой клавишу Ctrl, перетащите ярлычок с названием листа по строке ярлычков (движущаяся стрелочка над строкой пока­жет, где будет вставлена копия) и затем отпустите кнопку мыши (раньше, чем клавишу Ctrl).

Чтобы на полученной копии листа отображались формулы, выберите:

в Excel 2010 — вкладку Формулы ► Показать формулы;

т

А

В

С

Е

F

Н

""1" ТП

1

Производственный план

2

Продукт

П1

П2

ПЗ

П4

3

Произведенное к-во

1

1

1

1

Прибыль

4

Удельная прибыль

70

60

110

140

=СУММПРОИЗВ($В$3:$Е$3;В4:Е4)

5

Ограничения

Расход ресурсов

Лев.часть

| Прав.часть

Разница

б

труд

1

2

1

2

=СУММПРОИЗВ($В$3:$Е$3;Вб:Еб)

<

19

=H6-F6

7

Сырье

7

4

5

4

=СУММПРОИЗВ($В$3:$Е$3;В7:Е7)

<

80

=H7-F7

8

Финансы

5

7

9

8

=СУММПРОИЗВ($В$3:$Е$3;В8:Е8)

<

100

=H8-F8

9

Мах.П1

1

=СУММПРОИЗВ($В$3:$Е$3;ВЭ:Е9)

<

5

=H9-F9

10

Мах.ПЗ

1

=СУММПРОИЗВ($В$3:$Е$3;В10:Е10)

<

3

=H10-F10

11

Мах.П4

1

=СУММПРОИЗВ($В$3:$Е$3;В11:Е11)

<

4

=H11-F11

12

Мин.П1

1

=СУММПРОИЗВ($В$3:$Е$3;В12:Е12)

>

3

=F12-H12

13

Мин.П2

1

=СУММПРОИЗВ($В$3:$Е$3;В13:Е13)

>

1

=F13-H13

14

Мин.ПЗ

1

=СУММПРОИЗВ($В$3:$Е$3;В14:Е14)

>

1

=F14-H14

15

Мин.П4

1

=СУММПРОИЗВ($В$3:$Е$3;В15:Е15)

>

2

=F15-H15

16

Рис. 1.21. Модель с отображением формул

  1. в Excel 2007 — вкладку Формулы ► Зависимости формул > Показать формулы;

  2. в предыдущих версиях Excel — меню Сервис ► Параметры ► Форму­лы.

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

На рис. 1.22 показано использование имен диапазонов в формулах модели. Это позволяет сделать формулы понятнее. Рекомендуется всегда использовать имена для документирования сложных моделей.

Чтобы получить такое изображение нужно сначала создать имена диапазо­нов. Можно преобразовать в имена существующие заголовки строк и столбцов. Для этого их выбирают вместе с соответствующими диапазонами значений.

В нашем примере начнем с присвоения имен строкам. Для этого на листе с отображением формул, показанном на рис. 1.21, выделите одновременно два диапазона строк вместе с соответствующими заголовками: АЗ:Е4 и А6:Е15. (При выборе этих несмежных диапазонов не забудьте удерживать нажатой кла­вишу Ctrl.)

и

А

»

с 1 о

Е

F

|G| II

1 И |

1

Производственный план

2

Продукт

...

(1?

ПЗ

Г14

3

Произведенное к-во

1 Ч

1 11

Прибыль

4

Удельная прибыль

70

60

110 1140

^-СУММПРОИЗЩПронэиоденное К по;Уделышп прибыль)

5

Ограничения

Расход ресурсов

Леп.частъ

1 1Г1рао.часть

Разница

6

труд

1

2

1

2

=СУММПРОИЗВ(Г1роизведенное к во;Труд)

!< 119

=Пров.часть-Лев.часть

7

Сырье

7

-1

5

4

=СУММПРОИЗВ{Произиеденное к во;Сырье)

"1< 'so

=Пров.чааь-Лев.часть

8

Финансы

/

9

8

=СУММПРОИЗВ(Произведенное к по;Финансы)

!< |ioo

=Проо.часть-Лев.часть

9

Мах.П1

1

=СУММПРОИЗВ(Ороизпеденное к во;Мах.П1)

!< ’5

=Пров.часть-Лев.часть

10

Мах.ПЗ

1

=СУММПРОИЗВ(Произведенное к во;Мах.Г13)

< 3

=Пров.часть-Лев.часть

11

Мах.П4

1

^СУММПРОИЗВ(Произпеденное к во;Мах.П4)

!<«

^Лров.част^ Лев.часть

12

Мин.П1

1

=СУММЛРОИЗВ(Произведенное к во;Мин.П1)

1>з

=Лев.часть-Пров.часть

13

Мик.П2

1

=СУММПРОИЗО(Произведенное к во;Мим.П2)

!> Ii

=Лев.часть Пров.часть

14

Мин.ПЗ

1

=СУММПРОИЗВ(Произведониое к по;Мин.ПЗ)

!>|i

=Лев.часть-Пров.часть

13

Мии.П4

1

=СУММПРОИЗВ(Произведенное к во;Мин.1И)

"l> 12

=Лев.часть-Пров.часть

16

Рис. 1.22. Использование имен диапазонов

Далее выберите:

  1. в Excel 2010 и 2007 — вкладку Формулы ► Создать из выделенного;

  2. в предыдущих версиях Excel — меню Вставка ► Имя ► Создать.

В открывшемся окне будет правильно указано расположение заголовков — в столбце слева, поэтому щелкните кнопку ОК (при другом расположении за­головков этот параметр можно изменить).

Теперь присвоите имена столбцам. Удерживая нажатой клавишу Ctrl, вы­делите одновременно два диапазона столбцов: F5:FI5, Н5:Н15 и выполните те же самые действия (и на этот раз в открывшемся окне будет правильно указано расположение заголовков — в строке выше).

Созданные таким образом имена будут относиться только к диапазонам чисел, без заголовков. Посмотреть список этих имен можно, щелкнув стрелочку рядом с полем Имя у левого края строки формул. Выбрав любое из них, вы увидите выделенным соответствующий диапазон.

Чтобы созданные имена отображались в формулах, выделите все ячейки с формулами: F4, F6:F 15, 16:115 (удерживая нажатой клавишу Ctrl). Затем выбе­рите:

  1. в Excel 2010 и 2007— вкладку Формулы ► стрелку рядом с кнопкой Присвоить имя ► Применить имена;

  2. в предыдущих версиях Excel — меню Вставка ► Имя ► Применить.

В открывшемся окне выделите все перечисленные имена, прокручивая список и щелкая их мышыо, а затем щелкните кнопку ОК.

Чтобы имена были видны полностью, используйте автоматический подбор ширины столбцов (щелкните сначала кнопку Выделить все, а затем дважды — правую границу заголовка любого столбца).

Вызов средстви Поиск решения

Для поиска оптимального решения воспользуемся средством Поиск ре­шения. Чтобы его вызвать, выберите:

  1. в Excel 2010 и 2007— вкладку Данные ► Поиск решения (в группе Анализ);

  2. в предыдущих версиях Excel — меню Сервис > Поиск решения.

Если команда Поиск решения отсутствует, необходимо активировать или установить соответствующую надстройку (см. приложение Б).

Если вы работаете в Excel 2010, откроется окно, показанное на рис. 1.23.

В предыдущих версиях Excel, это окно выглядит иначе (рис. 1.24).

Указание целевой функции и изменяемых ячеек

Далее будут перечислены параметры, задаваемые при заполнении окна средства Поиск решения в Excel 2010, а в скобках— названия этих же пара­метров в предыдущих версиях Excel.

В окне Параметры поиска решения (Поиск решения) вы должны за­дать следующие параметры:

  1. Оптимизировать целевую функцию (Установить целевую ячей­ку) — для указания ячейки с целевой функцией.

  2. До (Равной)—для выбора варианта оптимизации (максимизация, ми­нимизация или подбор заданного значения).

  3. Изменяя ячейки переменных (Изменяя ячейки) — для указания яче­ек со значениями переменных.

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

Добавление ограничений

Ограничения задаются в поле В соответствии с ограничениями (Огра­ничения). Для ввода ограничений нажмите кнопку Добавить. Откроется окно Добавление ограничения (рис. 1.25), в котором два поля ввода:

  1. Ссылка на ячейки (Ссылка на ячейку) — для указания ячейки или

Оптимизировать целевою функцию: 5F54

До: (о) Максимум Q Минимум Q Значения: Изменяя ячейки переменных:

S8$3:SES3

Ш

В соответствии с ограничениями:

SFS12:SFS15 >= SHSi2:SH5l5 iF56:5Fsil <= SHS6:SH5li

Добавить

Изменить

Удалить

Сбросить

Загрузить/сохранить

[71 Сделать переменные без ограничений неотрицательными

Выберите метод решения:

Метод решения

Для гладких нелинейных задач используйте поиск решения нелинейных задач методом ОПГ, для линейных задач - поиск решения линейных задач симплекс-методом, а для негладких задач - эволюционный поиск, решения.

Справка

Найти решение

Закрыть

Рис. 1.23. Окно средства Поиск решения в Excel 2010

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

  1. Ограничение — для указания ячейки или диапазона ячеек, содержа­щих правые части ограничений. Если в поле Ссылка на ячейки (Ссылка на ячейку) указан диапазон ячеек, то и в поле Ограничение тоже должен быть

Поиск решения

Установить целевую ячейку:

ЦТ]

ш

Равной: (3) максимальному значению Означению: [0_

0 минимальному значению Изменяя ячейки:

|$Б$3:$Е$3

(^] [ Предположить ]

Ограничения:

$F$12:$F$15 >= $Н$12:$Н$15

Добавить

Закрыть

Параметры

Восстановить

Удалить

Справка

Рнс. 1.24. Окно средства Поиск решения в Excel 2007 и предыдущих версиях

Добавление ограничения

Ссылка на ячеики:

Ограничение:

Добавить

0;гмена

ОК

Рис. 1.25. Добавление ограничения

диапазон, причем той же размерности.

В раскрывающемся списке (между этими полями) можно выбрать:

  1. знак <=, =, >=;

  2. цел — целое число;

  3. бин в Excel 2010 (или двоим в предыдущих версиях)— бинарное (двоичное) значение: число 0 или 1;

  4. раз (только в Excel 2010)— разные целые числа от 1 до N (где N — число переменных).

Последние три варианта используются при целочисленном решении (см. далее гл. 2).

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

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

Задание дополнительных параметров поиска решения

Кроме целевой функции и ограничений, необходимо задать условия неот­рицательности переменных и выбрать метод решения. В Excel 2010 это делает­ся том же окне, где задавалась целевая функция (см. рис. 1.23). Там необходимо выбрать параметры:

  1. Сделать переменные без ограничений неотрицательными — что­бы задать условия неотрицательности для переменных, не имеющих нижних граничных условий;

» Поиск решения линейных задач симплекс-методом (в раскрываю­щемся списке Выберите метод решения) — чтобы использовался метод ли­нейного программирования.

Числа в модели необходимо масштабировать, если наибольшее из них от­личается от наименьшего более чем в 107 раз (иначе ошибки округления не поз­волят найти правильного решения). Даже если кажется, что в задаче такой раз­ницы чисел нет, все равно, для профилактики, следует предусмотреть возмож­ность такого масштабирования. Чтобы оно выполнялось автоматически в Excel 2010, щелкните кнопку Параметры и в появившемся окне выберите па­раметр Использовать автоматическое масштабирование (рис. 1.26).

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

Параметры | ? || S3 |

Все методы | Поиск решения нелинейных задач методом ОПГ | Эе 4 | ►

1очность ограничения:

0 Использовать автоматическое масштабирование

  1. Показывать результаты итераций

  • Решение с целочисленными ограничениями

П Игнорировать целочисленные ограничения Целочисленная оптимальность (%):

  • Пределы решения

Максимальное время (в секундах): Число итераций:

Эволюционные и целочисленные ограничения Максимальное число подзадач:

Максимальное число допустимых решений:

ОК

Рис. 1.26. Дополнительные параметры поиска решения в Excel 2010

В предыдущих версиях Excel все три перечисленные выше параметра за­даются в одном окне, вызываемом кнопкой Параметры (рис. 1.27).

В этом окне нужно установить три флажка:

  • Линейная модель — для использования симплекс-метода;

  • Неотрицательные значения — чтобы все переменные были неотри­цательными;

  • Автоматическое масштабирование — чтобы масштабировать числа, если разница между ними велика.

Значения других параметров, как правило, задавать или менять не нужно.

Параметры поиска решения

ши

Максимальное время:

100 I секунд ( ОК

Предельное чиспо итераилй:

100 | [ Отмена

Относительная погрешность:

0,000001 | [ Загрузить модель... ]

Допустимое отклонение:

5 |% | Сохранить модель... ]

Сходимость:

0,0001 | [ Справка

[71 Линейная модель

[71 Автоматическое масштабирование

[7] Неотрицательные значения П Показывать результаты итераций Оценки Разности Метод поиска

(О) линейная (О) прямые ■£) Ньютона

О квадратичная О центральные (_) сопряженных градиентов

Рис. 1.27. Дополнительные параметры поиска решения в Excel 2007 (и предыдущих

версиях)

Чаще всего их изменяют при решении задач целочисленного программирова­ния, когда необходимо сократить чрезмерное время решения (см. далее гл. 2).

Если хотите видеть, как в ходе решения меняются значения переменных и целевой функции, нужно задать еще один параметр— Показывать результа­ты итераций (см. рис. 1.26 и 1.27). При этом после каждой итерации поиск ре­шения приостанавливается и на листе показываются текущие значения, а в по­явившемся окне можно выбрать либо продолжение показа итераций, либо оста­новку с возможностью сохранения найденного промежуточного решения.

Сохранение или загрузка параметров модели

Если на листе — только одна модель, то для сохранения параметров поис­ка решения достаточно сохранить книгу с этим листом. При открытии окна по­иска решения вы всегда увидите там значения заданных параметров -— заново их вводить не нужно, пока существует лист с моделью. Однако если на листе — несколько моделей (или вариантов одной модели) с разными параметрами по­иска решения, то нужно сохранять эти параметры на листе, а затем загружать оттуда в окно поиска решения. Это делается следующим образом:

В Excel 2010 кнопку щелкните Загрузить/сохранить в окне средства Поиск решения (см. рис. 1.23). В Excel предыдущих версий сначала щелкните кнопку Параметры в окне средства Поиск решения, а затем в окне парамет­ров — кнопку Сохранить модель или Загрузить модель (см. рис. 1.27).

  1. В открывшемся окне введите ссылку:

  • для сохранения — на верхнюю ячейку вертикального диапазона пу­стых ячеек, в котором хотите разместить информацию о сохраняемых па­раметрах поиска решения;

  • для загрузки — на весь диапазон ячеек, в котором содержится информация о загружаемых параметрах поиска решения (этот диапазон легко найти: он состоит из заполненных ячеек, появившихся на пустом месте, которое ранее вы отвели для сохранения).

  1. В Excel 2010 щелкните кнопку Сохранить (или Загрузить), в Excel предыдущих версий — кнопку ОК.

  2. Если выбрана загрузка, появится еще одно окно, где в Excel 2010 можно щелкнуть кнопку:

  • Заменить — для замены текущих параметров поиска решения, на загружаемые;

  • Объединить— для объединения текущих параметров с загружаемыми (при этом целевая функция и ячейки переменных берутся из загружаемого набора параметров, а ограничения объединяются: к текущим добавляются загружаемые).

В Excel предыдущих версий — только щелкните кнопку ОК.

Нахождение решения

Задав все необходимые параметры поиска решения, вы можете приступать к вычислениям. Для этого в Excel 2010 щелкните кнопку Найти решение, а в Excel предыдущих версии — кнопку Выполнить. На листе появятся результа­ты вычислений и одновременно — окно Результаты поиска решения с сооб­щением о том, найдено решение или нет (рис. 1.28 или 1.29). (Для больших мо­делей процесс оптимизации может длиться достаточно долго. В этом случае в строке состояния можно увидеть информацию о ходе вычислений: выполнен­ное число итераций и текущее значение целевой функции.)

Если это окно появилось, это еще не означает, что решение найдено. В случае благополучного завершения вычислений сообщение будет содержать следующие два предложения: «Решение найдено. Все ограничения и усло­вия оптимальности выполнены». Если решения найти не удалось, сообщение

Решение найдено. Все ограничения и условия зптимальности выполнены.

Отчеты

Результаты

0 Сохранить найденное решение

Устойчивость

Пределы

О Восстановить исходные значения

1~1 Вернуться в диалоговое окно параметров

П Отчеты со

Сохранить сценарий-

Решение найдено. Все ограничения и условия оптимальности выполнены.

Если используется модуль ОПГ, то найдено по крайней мере локально оптимальное решение. Если используется модуль поиска решений линейных задач симплекс-методом, то найдено глобально оптимальное решение.

Рис. 1.28. Сообщение о результатах поиска решения в Excel 2010

Результаты поиска решения

Решение найдено. Eice ограничения и условия оптимальности выполнены.

(S) Сохранить найденное решение © Восстановить исходные значения

Отмена

Тип отчета

Результаты

Устойчивость

Пределы

ОК

Отмена

Справка

LoxpaHiiTb сценарии...

Рис. 1.29. Сообщение о результатах поиска решения в Excel 2007 (и более ранних вер­сиях)

может выглядеть по-разному, в зависимости от причин неудачи. В Excel 2003 возможные варианты сообщений и советы по исправлению модели можно по­лучить, введя в справочной системе слова Поиск решения и затем перейдя в раздел Разрешение вопросов, возникающих при поиске решения. При ра­боте в Excel 2007 аналогичную информацию можно найти в Интернете по адре­су: office.microsoft.com/ru-ru/excel-help/HP005203541.aspx. Работая в Excel 2010,

вы можете найти соответствующую информацию (к сожалению, на английском языке) в Интернете по адресу: www.solver.com/excel2010/solverhelp.htm.

В окне с сообщением о результатах, если решение найдено, можно выде­лить в списке один или несколько типов отчетов: Результаты, Устойчивость, Пределы, которые появятся на отдельных листах. Кроме того можно выбрать следующие параметры:

  1. Сохранить найденное решение — для сохранения на листе найден­ного решения.

  2. Восстановить исходные значения — для восстановления исходного вида листа.

  3. Вернуться в диалоговое окно параметров (только в Excel 2010) — чтобы вернуться в окно поиска решения, изменить параметры и повторить вы­числения.

  4. Отчеты со (только в Excel 2010) — для выдачи отчетов в компактном виде. Чтобы отобразить подробную информацию в таких отчетах нужно нажать кнопку (+), а чтобы скрыть — кнопку (-).

Если решение найти не удалось, то в Excel 2003 и 2007 отчеты недоступ­ны. В Excel 2010 в этом случае можно выбрать отчеты другого типа, помогаю­щие выяснить, где допущена ошибка.

Если отсутствуют допустимые решения, сообщение о результатах будет в Excel 2010 выглядеть, как показано на рис. 1.30. В любом из возможных отче­тов, Допустимость или Границы допустимости, будут указаны ограничения, из-за которых, возможно, не удалось найти допустимых решений. Отчет Допу­стимость более полный: он анализирует все ограничения, включая и гранич­ные условия, и поэтому для его получения может потребоваться больше време­ни. Отчет же Границы допустимости не анализирует граничные условия и, следовательно, выводится быстрее.

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

В ходе поиска не удалось найти допустимого решения.

0 Сохратггь найденное решение О Восстановить исходные значения

Допустимость Границы допустимости

П Вернуться в диалоговое окно параметров □ Ответы со

Сохранить сценарий..

ОК

Отмена

В ходе поиска не удалось найти допустимого решения.

В коде поиска решения не удается найти точку, для которой выполняются все ограничения.

Рис. 1.30. Сообщение об отсутствии допустимых решений в Excel 2010

Результаты поиска решения

Условия линейности, необходимые для этой

линейной оптимизации, не выполнены. Отчеты

0 Сохранить найденное решение О Восстановить исходные значения

  1. Вернуться в диалоговое окно параметров

Сохранить сценарий..

Условия линейности, необходимые для этой линейной а оптимизации, не выполнены.

У Создайте отчет о линейности, чтобы выяснить, где затруднение, или « переключитесь на модуль ОПГ.

Рис. 1.31. Сообщение о нарушении линейности в Excel 2010

Анализ оптимального решения

На рис. 1.32 показано, как на листе выглядят результаты вычислений. В ячейках ВЗ:ЕЗ выводится оптимальный производственный план, в ячейке F4 — получаемая максимальная прибыль. В строках 6-8, содержащих ограничения на ресурсы, в столбце Лев.часть— количество использованных ресурсов, а в столбце Разница— их остаток после выполнения оптимального плана. Если разница равна нулю, то соответствующий ресурс будет использован полностью, то есть является дефицитным. В строках 9-15, содержащих граничные условия, в столбце Лев.часть— значения переменных в оптимальном решении, а в столбце Разница — разность между этими значениями и заданными для пере­менных верхними или нижними границами. Если разница равна нулю, то соот­ветствующая переменная принимает свое граничное значение.

Ту же информацию, но в несколько иной форме, можно увидеть, если вы решили вывести отчет Результаты. При этом в книге появится новый лист, показанный на рис. 1.33. В его верхней части содержится общая информация о ходе решения, заданных параметрах и достигнутых результатах. Кроме того, в графе Целочисленное указан тип полученного числового значения: Цело­численное, Бинарное, Продолжить (последнее слово обозначает

т

А

в

С

D

Е

F

G

н

'

J

1

Производственный план

2

Продукт

П1

П2

пз

П4

3

Произведенное к-во

5

1,5

3

4

Прибыль

4

Удельная прибыль

70,00р. 1 60,00р. I 110,00р.

140,00р.

1330,00р.

5

Ограничения

Расход ресурсов

Лев.часть |

Прав.часть

Разница

б

Труд

1

2

1

2

19

<

19

0

7

Сырье

7

4

5

4

72

<

80

8

8

Финансы

5,00р.

7,00р.

9,00р.

8,00р.

94,50р.

<

100,00р.

5,50р.

9

Мах.П1

1

5

<

5

0

10

Мах.ПЗ

1

3

<

3

0

11

Мах.П4

1

4

<

4

0

12

Мин.П1

1

5

>

3

2

13

Мин.П2

1

1,5

>

1

0,5

14

Мин.ПЗ

1

3

>

1

2

13

Мин.П4

1

4

>

2

2

16

Рис. 1.32. Результаты решения задачи линейного программирования

Microsoft Excel 14.0 Отчет о результатах

Результат: Решение найдено. Все ограничения и условия оптимальности выполнены. Модуль поиска решения

Модуль: Поиск решения линейных задач симплекс-методом Время решения: 0,015 секунд.

Число итераций: 8 Число подзадач: О

Ячейка целевой функции (Максимум)

Ячейка

Имя

Исходное значение

Окончательное значение

$F$4

Удельная прибыль Прибыль

1330,00р.

1330,00р.

чейки переменных

Ячейка

Имя

Исходное значение

Окончательное значение

Целочисленное

$в$з

Произведенное к-во П1

5

5

Продолжить

$с$з

Произведенное к-во П2

1,5

1,5

Продолжить

$D$3

Произведенное к-во ПЗ

3

3

Продолжить

$Е$3

Произведенное к-во П4

4

4

Продолжить

!граничения

Ячейка

Имя

Значение ячейки

Формула

Состояние

Допуск

$F$12

Мин.П1 Лев.часть

5

$F$12>=$H$12

Без привязки

2

$FSl3

Мин.П2 Лев.часть

1,5

$F$13:-=$H$13

Без привязки

0,5

$F$14

Мин.ПЗ Лев.часть

3

$F$14>=$H$M

Без привязки

2

$F$15

Мин.П4 Лев.часть

4

$F$L5>=SH$13

Без привязки

2

$F$5

Труд Лев.часть

19

$F$6<=$H$6

Привязка

0

$F$7

Сырье Лев.часть

72

$F$7<-$H$7

Без привязки

8

$F$8

Финансы Лев.часть

94,50р.

$F$8<=$H$8

Без привязки

5,5

$F$9

Мах.П1 Лев.часть

5

$F$9<=$H$9

Привязка

0

$F$10

Мах.ПЗ Лев.часть

3

$F$KK=$H$10

Привязка

0

$F$11

Мах.П4 Лев.часть

4

$F$11<=$H$11

Привязка

0

Рис. 1.33. Отчет о результатах в Excel 2010

вещественное число — недостаток перевода). В предыдущих версиях Excel этой информации нет, а в остальном вид отчета отличается незначительно — лишь используемой терминологией. (В дальнейшем за термином Excel 2010, в скобках указывается термин, используемый в предыдущих версиях.) Вид огра­ничений указан в графе Состояние (Статус). Ограничения, у которых Допуск (Разница) равен нулю, обозначаются словом Привязка (связанное), а осталь­ные— Без привязки (не связан.).

Содержимое любого отчета можно свободно форматировать, распечаты­вать или копировать. Например, в отчете, показанном на рис. 1.33 некоторые строки были удалены, а содержимое некоторых столбцов выравнено по центру. Для удобства форматирования можно восстановить линии сетки, для чего вы­берите:

® в Excel 2010 — вкладку Вид ► Сетка;

  1. в Excel 2007 — вкладку Вид ► Показать или скрыть ► Сетка;

  2. в предыдущих версиях Excel — меню Сервис ► Параметры ► Сетка.

Анализ чувствительности

Если, задавая параметры поиска решения, вы указали, что задача должна решаться симплекс-методом (она линейна), но при этом не требовали, чтобы какие-либо переменные были целыми или двоичными, то можно получить от­четы Устойчивость и Пределы.

Отчет об устойчивости содержит основную информацию для анализа чув­ствительности модели. Этот отчет показывает, насколько чувствительно найденное решение к изменениям параметров модели (коэффициентов целевой функции и правых частей ограничений). При этом предполагается, что значе­ния всех параметров, за исключением какого-то одного, остаются неизменны­ми. На рис. 1.34 показано, как этот отчет выглядит в Excel 2010. Он состоит из двух таблиц, заголовки которых отличаются в разных версиях программы. (При описании отчета, как и раньше, дается вариант из Excel 2010, за которым в скобках — вариант из предыдущих версий.)

Microsoft Excel 14.0 Отчет об устойчивости

Ячейки переменных

Окончательное Приведенн. Целевая функция Допустимое

Допустимое

Ячейка

Имя

Значение

Стоимость

Коэффициент

Увеличение

Уменьшение

$в$з

Произведенное к-во П1

5

0

70

1Е+30

40

$с$з

Произведенное к-во П2

1,5

0

50

80

60

$D$3

Произведенное к-во ПЗ

3

0

110

1Е+30

80

$Е$3

Произведенное к-во П4

4

0

140

1Е+30

80

граничения

Окончательное

Тень

Ограничение

Допустимое

Допустимое

Ячейка

Имя

Значение

Цена

Правая сторона

Увеличение

Уменьшение

$F$12

Мин.П1 Лев.часть

5

0

3

2

1Е430

$F$13

Мин.П2 Лев.часть

1,5

0

1

0,5

1Е+30

$F$M

Мин.ПЗ Лев.часть

3

0

1

2

1Е+30

$F$15

Мин.П4 Лев.часть

4

0

2

2

1Е+30

$F$6

Труд Лев.часть

19

30

19

1,571428571

1

$F$7

Сырье Лев.часть

72

0

80

1Е430

8

$F$8

Финансы Лев.часть

94,50р.

0

100

1Е+30

5,5

$F$9

Мах.П1 Лев.часть

5

40

5

1

2

$F$10

Мах.ПЗ Лев.часть

3

80

3

1

2

$F$11

Мах.П4 Лев.часть

4

80

4

0,5

2

Рис. 1.34. Отчет об устойчивости в Excel 2010

В таблице Ячейки переменных (Изменяемые ячейки) выводится сле­дующая информация:

  1. В первых двух столбцах перечислены ячейки, в которых находятся зна­чения переменных, и имена этих ячеек. (Имя любой ячейки образуется из заго­ловков модели: объединяются ближайший текст слева и ближайший текст сверху.)

  2. В столбце Окончательное Значение (Результ. Значение)— найденное оптимальное решение (5; 1,5; 3; 4).

  3. В столбце Приведенн. Стоимость (Нормир. Стоимость)— приве­денные (нормированные) стоимости — двойственные оценки, которые в нашем случае все равны нулю. Такая оценка может быть отлична от нуля только для переменной, имеющей в оптимальном плане нулевое значение. Приведенная (нормированная) стоимость, взятая по абсолютной величине, показывает насколько, как минимум, нужно изменить коэффициент переменной в целевой функции, чтобы она стала положительной (например, как повысить прибыль­ность изделия, чтобы выпускать его стало выгодно). Кроме того, эта оценка (но уже с учетом знака) показывает, насколько ухудшится значение целевой функ­ции, если сделать эту переменную равной 1, не меняя ее коэффициента в целе­вой функции (например, насколько снизится прибыль, если ввести в план про­изводство единицы изделия, выпускать которое невыгодно). Абсолютную ве­личину приведенной (нормированной) стоимости, если она отлична от нуля, вы увидите также в одном из столбцов Допустимое увеличение или Допустимое уменьшение, при этом в другом столбце будет стоять бесконечность (вместо символа +со в Excel выводится 1Е+30, что означает 10+3°).

  4. В столбце Целевая функция Коэффициент (Целевой Коэффициент) — коэффициенты целевой функции.

  5. В последних двух столбцах — допустимые изменения коэффициентов целевой функции, при которых сохраняется прежнее оптимальное решение. При увеличении и уменьшении коэффициентов целевой функции на указанные величины можно получить интервалы оптимальности, которые показывают, в каких пределах могут меняться коэффициенты целевой функции, чтобы сохра­нялось найденное оптимальное решение. В нашем примере такими интервала­ми будут: для 1-го вида продукции — [30, +сю), для 2-го — [0, 140], для 3-го — [30, +оо) и для 4-го — [60, +оо). (Нулевые значения в этих столбцах — признак наличия альтернативных оптимальных решений.)

Во второй таблице — Ограничения выводится следующая информация:

  1. В первых двух столбцах перечислены ячейки, в которых вычисляются левые части ограничений, и их имена.

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

  3. В столбце Тень Цена (Теневая Цена) — теневые цены, двойственные оценки, показывающие, на какую величину изменится целевая функция при увеличении на единицу правой части ограничения, в то время, как остальные данные неизменны (например при добавлении единицы соответствующего ре­сурса). Теневая цена имеет и еще один смысл: это максимальная цена, которую стоит платить за дополнительное количество дефицитного ресурса, чтобы при­обретение было выгодным, или минимальная цена его продажи. Теневая цена отлична от нуля только для связанных ограничений.

  4. В столбце Ограничение Правая сторона (Ограничение Правая часть) — правые части ограничений (запасы ресурсов или граничные значения переменных).

  5. В последних двух столбцах — допустимые изменения правых частей ограничений (запасов ресурсов или граничных значений переменных), при ко­торых неизменны соответствующие теневые цены и в оптимальном решении сохраняется прежний набор ненулевых переменных (например не меняется ас­сортимент продукции). При увеличении и уменьшении правых частей ограни­чений на указанные величины можно получить интервалы устойчивости. В нашем примере такими интервалами будут: для трудовых ресурсов — [18, 20,6], для сырья — [72, +со) и для финансов — [94,5, +ю).

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

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

Ячейка

Целевая функция Имя

Значение

$F$4

Удельная прибыль Прибыль

1330,00р.

Ячейка

Переменная

Игля

Значение

Нижний

Предел

Целевая функция Результат

Верхний

Предел

Целевая функция Результат

$В$3

Произведенное к-во П1

5

3

1190

5

1330

$С$3

Произведенное к-во П2

1,5

1

1300

1,5

1330

$D$3

Произведенное к-во ПЗ

3

1

1110

3

1330

$Е$3

Произведенное к-во П4

4

2

1050

4

1330

Рис. 1.35. Отчет о пределах в Excel 2010

В разных версиях Excel этот отчет выглядит практически одинаково.

После нахождения оптимального решения можно исследовать различные альтернативные варианты решения, изменяя значения переменных в окрестно­сти найденных оптимальных значений (в ячейках ВЗ:ЕЗ). При этом повторно вызывать средство Поиск решения не нужно: все формулы модели пересчиты­ваются автоматически.

Кроме того, можно проследить, как отразится на оптимальном значении целевой функции (в нашем случае прибыли) изменение параметров модели:

  1. правых частей ограничений (запаса ресурсов);

  2. коэффициентов целевой функции (удельной прибыли);

  3. коэффициентов ограничений (норм расхода ресурсов),

После каждого такого изменения необходимо вновь использовать Поиск решения для повторной оптимизации. При этом не нужно вводить какие-либо новые данные: достаточно лишь вызвать Поиск решения и щелкнуть кнопку Найти решение (Выполнить). (Все настройки средства Поиск решения со­храняются для каждой модели при сохранении книги Excel.)