Решение задачи линейного программирования С использованием Excel
Решение задач линейного программирования в Excel производитСя с помощью блока Solver, вызываемого командой меню Сервис —> Поиск решения.
Последовательность действий такова. Вводятся исходные данные в созданную для этого форму и зависимости из математической модели. Из меню Сервис открывается диалоговое окно Поиск решения, В котором вводятся ячейка целевой функции, ее назначение (максимум или минимум), изменяемые ячейки и добавляются ограничения. В опции Параметры должен стоять флажок у линейной модели.
Рассмотрим задачу, которую мы решали в системе MathGD Ввод исходных данных показан на рис. 6.7, зависимостей из математической модели — на рис. 6.8. Эти зависимости представляют собой левые части ограничений и целевую функцию Данную операцию можно выполнить с помощью функции СУММПРОИЗВ, где в первый массив вводя г ко эффициенты соответствующего ограничения, а во второй массив — переменные xl, х2, точнее ячейки, где мы им присвоили инициирующие значения — ячейки В10:С10. На рис. 6.9 представлены введенные функции.
А |
В |
С |
D |
Е |
F |
|
1 |
Переменные |
Левая часть |
Знак |
Правая част ь |
||
2 |
Наименование |
Х 1 |
Х2 |
|||
3 |
Коэф в целевой функции |
2 |
3 |
|||
4 |
||||||
5 |
Коэф. в 1 ограничении |
1 |
3 |
<= |
18 |
|
6 |
Коэф. во 2 ограничении |
2 |
1 |
<= |
16 |
|
7 |
Коэф в 3 ограничении |
0 |
1 |
<= |
5 |
|
8 |
Коэф. в 4 ограничении |
3 |
0 |
<= |
21 |
|
9 |
||||||
10 |
Xl* |
Х2* |
Целевая функция |
|||
И |
Оптим. значения |
Шах |
||||
Лист 1 |
Рис. 6.7. Ввод исходных данных |
Л |
В |
С |
D |
Е |
F |
|
1 |
Переменные |
Левая часть |
Знак |
Правая часть |
||
2 |
Наименование |
X 1 |
Х2 |
|||
3 |
Коэф. в целевой функции |
2 |
3 |
|||
4 |
||||||
5 |
Коэф. в 1 ограничении |
1 |
3 |
=СУММПРОИЗВ (В5:С5;В11:С11) |
<= |
18 |
6 |
Коэф. во 2 ограничении |
2 |
1 |
=СУММПРОИЗВ (Вб:СГ»;В11:С11) |
<= |
16 |
7 |
Коэф в3 ограничении |
0 |
1 |
-СУММ ПРОШВ (B7:C7JB11:C11) |
<= |
5 |
8 |
Коэф в 4 ограничении |
3 |
0 |
=СУММПРОИЗВ (В8:С8;В11:С11) |
<= |
21 |
9 |
||||||
10 |
Xl* |
Х2* |
Целевая ф>нкция |
|||
11 |
Оптим. значения |
-СУММПРОИЗВ (ВЗ:СЗ;В11 С11) |
Max |
|||
Лист 1 |
Рис. 6.8. Ввод зависимостей
1. Из меню Сервис откроем окно Поиск решения (рис. 6.9).
Поиск решения
Установить целевую ячейку: $D$11 Равной • максимальному значению
Выполнить Закрыть |
Минимальному значению Изменяя ячейки:
$В$11:$С$11 Ограничения: $В$11>=0 $С$11>=0 $D$5<=$F$5 $D$6<=$F$6 $D$7<=$F$7 SD$8<=$F$8 |
Предположить Добавить Изменить Удалить |
Параметры Восстановить Справка |
Рис. 6.9. Диалоговое окно Поиск решения
2. В поле Установить целевую ячейку введем $D$11.
3. Из группы Равной выберем переключатель • максимальному значению.
4. В поле области Изменяя ячейки введем ячейки с первоначальными значениями переменных — SBSl 1:$JL$1 1.
5 Нажав кнопку Добавить, откроем диал оговое окно Добавление ограничения (рис. 6.10).
Добавление ограничения
Огмена Добавить |
ОК |
Справка |
Рис. 6. J О. Диалоговое окно Добавление ограпичепия
6. Через данное окно введем ограничения в соответствии со знаком, который принят в модели В нашей задаче левые части ограничении должны быть меньше или равны правым частям ограничений и переменные должны быть положительными.
Открыв диалоговое окно Параметры поиска решение, можно изменить параметры Максимальное время или Предельное число итераций в том случае, если за заданное количество итераций задача не решена. Если не устраивает погрешность, введенная по умолчанию, ее также можно изменить. Для решения задачи линейного программирования должен быть установлен флажок Линеиная модель.
После нажатия кнопки ОК вновь появится диалоговое окно Поиск решення. По нажатии кнопки Выполнить на экран выводится окно Результаты поиска решения. Если решение не найдено, окно выведет соответствующее сообщение. Если решение найдено, выделим отчет по результатам, нажмем ОК, и результат р». тения задачи — на экране (рис. 6.11).
А |
В |
С |
D |
Е |
F |
|
1 |
Переменные |
Левая часть |
Знак |
Правая часть |
||
2 |
Наименование |
Х 1 |
Х2 |
|||
3 |
Коэф. в целевой функции |
2 |
3 |
|||
4 |
||||||
5 |
Коэф в 1 ограничении |
1 |
3 |
18 |
18 |
|
6 |
Коэф. во 2 ограничении |
2 |
1 |
16 |
<= |
16 |
7 |
Коэф. в 3 ограничении |
0 |
1 |
4 |
<= |
5 |
8 |
Коэф. в 4 ограничении |
3 |
0 |
16 |
<= |
21 |
9 |
||||||
10 |
Xl* |
Х2* |
Целевая функция |
|||
11 |
Оптим. значения |
24 |
Max |
|||
Лист 1 |