V abh max;
2k (ab (a b)h ) C зад ; a, b, h 0.
В этой постановке требуется определить размеры бака a,b,h, стоимость которого не должна превышать Cзад, чтобы его объем V был максимальным. Для решения задачи принимаем следующие значения:
K= 10 т. р/м2, Сзад=100 т.р.
Тогда математическая модель примет вид:
V |
abh |
|
max; |
|
|
20 |
(ab |
|
(a |
b ) h ) |
100 ; |
a , b , h |
0 . |
|
|
||
Решим данную задачу с использованием средств
EXCEL.
Решение задачи нелинейного программирования отличается от решения задачи линейного программирования следующим:
- назначаются начальные значения искомых перемен-
ных xj0
- в окне Параметры поиска решения не надо вводить Линейная модель.
Начальные значения xj0 желательно назначать близкими к ожидаемым оптимальным значениям, что ускорит решение задачи. Обязательным является требование к целевой функции которая в начальной точке должна быть не равна нулю (иначе возможно деление на ноль при вычислении Fk).
Необходимо сделать форму для ввода условий задачи (рис. 49), в которую далее вводятся
-зависимости для объема и стоимости (ячейки С8, С9);
-начальные значения xj0 (ячейки В3, С3, D3). В данном случае в качестве начальных значений выбираются единичные;
140
-значение правой части ограничения (ячейка E9).
Вячейках, в которых будет представлен результат (B3:D3), перед решением задачи надо назначить число знаков после запятой. В нашем примере назначаем в ячейках 2 знака после запятой.
|
|
ПЕРЕМЕННЫЕ |
|
|
|
a |
b |
h |
|
значения |
1 |
1 |
|
1 |
нижн. гр |
|
ЗАВИСИМОСТИ |
|
|
|
|
|
|
|
|
обозначение |
величина |
знак |
правая часть |
объем |
V |
=B3^C3^D3 |
макс |
|
стоимость C |
=20^(B3^C3+(B3+C3)^D3) |
<= |
100 |
|
Рис. 49
Далее вызывается программа Поиск решения и в появившемся диалоговом окне вводится ячейка для целевой функции (С8), направление поиска (максимизация), изменяемые ячейки (B3:D3). Затем выбирается пункт Добавить и в появившемся окне Добавление ограничений вводятся огра-
ничения B3>=B4; C3>=C4; D3>=D4, C9<=E9. После ввода всех ограничений в окне поиска решения выбирается команда Параметры и осуществляется переход в диалоговое окно Параметры поиска решения. В нем назначаются параметры поиска решения.
Следует отметить, что при поиске оптимального решения смысл этих параметров знать необязательно, так как их значения, применяемые по умолчанию, обеспечивают нормальное решение практических задач. В противном случае все сведения можно получить вызвав Справку.
После ввода всех исходных данных и параметров производится решение задачи. Результаты решения представлены на рис. 50.
141
Рис. 50 После успешного завершения поиска оптимального ре-
шения на экране появляется диалоговое окно Результаты поиска решения. С помощью этого диалогового окна можно вы-
звать отчеты трех типов: результаты, устойчивость и преде-
лы. Отчеты анализа по результатам и пределам аналогичны таким же отчетам для задач линейного программирования. Отчет по устойчивости представлен на рис. 51. и состоит из двух таблиц.
Изменяемые ячейки |
Результат |
Нормир. |
|
|
|
||
Ячейка |
Имя |
значение |
градиент |
$B$4 |
значения а 1.29 |
0.00 |
|
$C$4 |
значения b 1.29 |
0.00 |
|
$D$4 |
значения h 1.29 |
0.00 |
|
Ограничения |
Результ. |
Лагранжа |
|
|
|
||
Ячейка |
Имя |
значение |
Множитель |
$C$10 |
С величина 100.00 |
0.03 |
|
|
|
Рис. 51 |
|
В первой таблице приводятся значения для перемен-
ных:
результат решения задачи; 142
-нормированный градиент - величина, приводимая при выборе некоторых методов в диалоговом окне Параметры поиска решения;
Во второй таблице приводятся значения для ограниче-
ний:
-величина стоимости;
-множитель Лагранжа, показывающий, как изменится целевая функция при изменении правой части в ограничении на единицу.
Для задач линейного программирования можно произвести также параметрический анализ, решая их при различных значениях параметров. Алгоритм выполнения параметрических расчетов аналогичен схеме, рассмотренной при решении задач линейного программирования, поэтому в данном разделе разбираться не будет. На рис. 52. приведен итоговый сценарий, построенный в результате решения рассматриваемой задачи нелинейного программирования при различных значениях стоимости: 100, 200, 300, 400, 500 [4].
ИТОГОВЫЙ СЦЕНАРИЙ |
|
|
|
|
|
|
|
Текущие значения с=100 |
с=200 |
с=300 |
с=400 |
с=500 |
|
Изменяемые ячейки |
|
|
|
|
|
|
$B$4 |
2.89 |
1.29 |
1.83 |
2.24 |
2.58 |
2.89 |
$C$4 |
2.89 |
1.29 |
1.83 |
2.24 |
2.58 |
2.89 |
$D$4 |
2.89 |
1.29 |
1.83 |
2.24 |
2.58 |
2.89 |
Ячейкирезультата |
|
|
|
|
|
|
$C$9 |
24.06 |
2.15 |
6.09 |
11.18 |
17.21 |
24.06 |
$C$10 |
500.00 |
100.00 |
200.00 |
300.00 |
400.00 |
500.00 |
Примечание: в столбце Текущие значения приведены данные в изменяемыхячейкахна момент создания отчета Итоговый сценарий.
Рис. 52
Решение нелинейных целочисленных задач
Решение целочисленных задач нелинейного программирования производится аналогично решению обычных нелинейных задач, но с наложением дополнительного требования целочисленности переменных. Решение таких задач рассмот-
143
рим на примере рассматриваемой задачи определения параметров бака максимального объема, потребовав, чтобы все параметры бака принимали целочисленные значения.
Таблица исходных данных при переходе от непрерывной задачи к целочисленной не меняется (рис. 49). Дальнейшая последовательность ввода исходных данных совпадает с последовательностью, рассмотренной для непрерывной задачи. Однако при добавлении ограничений к введенным ранее ограничениям необходимо добавить требования целочисленности: В4, С4 и D4 целое. Результат решения представлен на рис. 53.
Рис. 53
Из всех отчетов по анализу оптимального решения для рассматриваемых целочисленных задач может быть получен только один Отчет по результатам. В нем нет какой-либо новой информации, поэтому рассматривать его не имеет смысла.
Сравнив результаты решения непрерывной и целочисленной задач, мож-но вычислить показатель ухудшения значения целевой функции
fнепр fц 2.15 2.0 6.98.
fнепр 2.15
144