Этап. Заполнение окна Поиск решения
РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ.
ОПТИМИЗАЦИЯ МЕТОДОМ ПОИСКА РЕШЕНИЯ
Цель работы:научиться использовать процессор Excel для решения задач оптимизации
Содержание работы:
1. Создание формы для ввода условий задачи, ввод в неё исходных данных и зависимостей из математической модели.
2. Ввод данных из формы в окно Excel Поиск решения из меню Сервис.
3. Задание параметров поиска и решение задачи.
Порядок выполнения работы:
1. Изучить методические указания.
2. Выполнить задания.
3. Оформить отчет и ответить на контрольные вопросы.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
Задача линейного программирования в общем случае формулируется следующим образом:
Определить максимум (минимум) целевой функции F max(min) при заданной системе ограничений (2) и граничных условий (3):
Fmax(min) =A1*X1+A2*X2+...+An*Xn (1)
{B11*X1+B12*X2+...+B1n*Xn<=C1
{B21*X1+B22*X2+...+B2n*Xn<=C2 (2)
{Bn1*X1+Bn2*X2+...+Bnn*Xn<=Cn
Xi>=0, i=1...n (3)
Программа Поиск решения является инструментом оптимизации. С помощью этой программы можно найти оптимальное или заданное значение некоторой ячейки путем подбора значений нескольких ячеек, удовлетворив нескольким граничным условиям.
Целевая ячейка — это ячейка, для которой нужно найти максимальное, минимальное или заданное значения.
Изменяемые ячейки — это ячейки, от которых зависит значение целевой ячейки. Целевая ячейка должна содержать формулу, прямо или косвенно зависящую от изменяемых ячеек. Поиск решения подбирает значения изменяемых ячеек до тех пор, пока не будет найдено решение.
Ограничение — это условие, накладываемое на некоторую ячейку. Ограничения могут быть наложены на любые ячейки таблицы, включая целевую ячейку и изменяемые ячейки.
Чтобы запустить процедуру поиска решения, надо:
1. В меню Сервис выбрать команду Поиск решения. Откроется диалоговое окно Поиск решения (Рис. 23).
2. В поле Установить целевую ячейку ввести ссылку на ячейку, в которой нужно получить максимальное, минимальное или заданное значения.
3. В поле Изменяя ячейки ввести ссылки на изменяемые ячейки. (Если щелкнуть по кнопке Предположить, то Поиск решения самостоятельно определит изменяемые ячейки).
4. Для задания ограничений щелкнуть по кнопке Добавить.
Рисунок 23 Диалоговое окно Поиск решения
5. В открывшемся диалоговом окне следует: (Рис. 24)
• в поле Ссылка на ячейку ввести ссылку на ячейку, содержащую формулу, которая определяет ограничение; формула должна прямо или косвенно зависеть от одной или нескольких изменяемых ячеек;
• во втором поле выбрать оператор ограничения (>,<,= и т.д.);
• в поле Ограничение ввести значение ограничения.
Рисунок 24 Диалоговое окно Добавление ограничения
6. Для задания следующего ограничения щелкнуть по кнопке Добавить и повторить операции пункта 5.
7. Когда все ограничения будут заданы, щелкнуть по кнопке ОК, чтобы вернуться в диалоговое окно Поиск решения.
8. Изменять и удалять ограничения можно с помощью кнопок Изменить и Удалить.
9. С помощью кнопки Параметры можно задать: максимальное время решения; предельное число итераций; относительную погрешность; допустимое отклонение; сходимость; метод поиска.
Если известно, что решаемая задача линейная (т.е. зависимости между переменными линейны), то следует включить режим Линейная модель: процесс решения значительно ускорится.
Для возврата в диалоговое окно Поиск решения щелкнуть по кнопке ОК.
10. Для инициализации процедуры поиска решения щелкнуть по кнопке Выполнить. Полученные результаты будут выведены на рабочий лист.
После завершения процедуры решения в диалоговом окне Результаты поиска решения можно выполнить один из следующих вариантов:
• сохранить найденное решение или восстановить исходные значения на рабочем листе;
• сохранить параметры поиска решения в виде модели;
• сохранить решение в виде сценария;
• просмотреть любой из встроенных отчетов.
Текущие установочные параметры для поиска решения можно сохранить в виде модели. Для этого надо в диалоговом окне Параметры поиска решения щелкнуть по кнопке Сохранить модель и указать на рабочем листе область для сохранения модели (можно указать только верхнюю ячейку области).
При сохранении модели запоминаются целевая ячейка, изменяемые ячейки, ограничения и параметры поиска решения.
Чтобы впоследствии загрузить модель, надо щелкнуть по кнопке Загрузить модель в диалоговом окне Параметры поиска решения. (Диалоговое окно Параметры поиска решения открывается при щелчке по кнопке Параметры в диалоговом окне команды Сервис >• Поиск решения).
Найденные решения (значения изменяемыхячеек) можно сохранить в качестве сценария. Для этого нужно:
1. В диалоговом окне Результаты поиска решения выбрать Сохранить сценарий.
2. В поле Название сценария ввести имя сценария. Просмотреть сценарии можно с помощью команды Сервис > Сценарии.
С помощью программы Поиск решения можно создать три типа отчетов по результатам, полученным при успешном завершении процедуры решения.
Каждый отчет создается на отдельном листе текущей рабочей книги.
Для создания отчета надо в диалоговом окне Результаты поиска решения выбрать нужный тип отчета в поле Тип отчета. Можно выбрать сразу несколько типов (при выделении нескольких строк используется клавиша <Ctrl>).
Типы отчетов:
• Результаты — отчет содержит целевую ячейку, список изменяемых ячеек, их исходные и конечные значения, ограничения и сведения о них.
• Устойчивость — отчет содержит сведения о степени зависимости модели от изменений величин, входящих в формулы, применяемые в задаче (формулы модели и формулы ограничений).
• Пределы — выводится целевая ячейка и ее значение, а также список изменяемых ячеек, их значений, нижних и верхних пределов и целевых результатов.
Модель линейного программирования дает возможность определить наиболее выгодную производственную программу выпуска нескольких видов продукции при заданных ограничениях на ресурсы.
Рассмотрим применение процессора Excel для решения ЗЛП на примере.
Задача 1. МП выпускает товары Х1,Х2,Х3,Х4, получая от реализации каждого прибыль в 60,70,120,130 руб. соответственно. Затраты на производство приведены в таблице.
Определить:
1)Максимум прибыли в зависимости от оптимального распределения затрат.
2)Минимум ресурсов, необходимых для получения максимальной прибыли.
Затраты | X1 | X2 | X3 | X4 | Всего |
Трудовые | |||||
Сырьевые | |||||
Финансы |
Составим математическую модель процесса по описанию задачи:
60Х1+70Х2+120Х3+130Х4 = Fmax – целевая функция прибыли.
{Х1+Х2+Х3+Х4 <= 16
{6Х1+5Х2+4Х3+Х4 <= 110 - ограничения модели
{4Х1+6Х2+10Х3+13Х4 <= 100
Хj >=0 - граничные условия модели, так как количество производимых товаров не может быть отрицательной величиной.
Решение задачи средствами Excel состоит из 3 этапов:
1. Создание формы для ввода условий задачи, ввод в неё исходных данных и зависимостей из математической модели.
2. Ввод данных из формы в окно Excel Поиск решения из меню Сервис.
3. Задание параметров поиска и решение задачи.
Этап. Создание формы
а). Составление формы в виде:
A | B | C | D | E | F | G | H | |
Переменная | X1 | X2 | X3 | X4 | Формула | Знак | Св.член | |
Значение | ||||||||
Коэф. ЦФ | =СУММПРОИЗВ (В$2:Е$2;В3:Е3) | max | ||||||
Трудовые | =СУММПРОИЗВ (В$2:Е$2;В4:Е4) | <= | ||||||
Сырьевые | =СУММПРОИЗВ (В$2:Е$2;В5:Е5) | <= | ||||||
Финансы | =СУММПРОИЗВ (В$2:Е$2;В6:Е6) | <= |
б)Запись в ячейки В3:Е3 коэффициентов целевой функции F (1), в В4:Е6 коэффициентов из системы ограничений (2) и в ячейки Н4:Н6 - свободных членов из системы (2).
в) Ввод формул с помощью fx - Мастера функций.
Для ввода формулы в целевую ячейку (целевой функции): щелкнуть левой клавишей мыши по ячейке F3, затем по значку Мастера функций fx на панели инструментов, в появившемся окне "Мастер функций, Шаг 1" выбрать категорию "Математические", далее выбрать функцию СУММПРОИЗВ, нажать клавишу ОК, в окне "Мастер функций Шаг 2" в поле Массив 1 ввести с клавиатуры В2:Е2 (ячейки, в которых будут варьироваться Х1..Х4), в поле Массив 2 ввести В3:Е3 (коэффициенты целевой функции ЦФ).
Примечание.Можно вводить В2:Е2 не с клавиатуры, а поставить курсор в окно Массив 1, а затем протащить курсор при нажатой левой клавише мыши по ячейкам В2:Е2, имена ячеек сами запишутся в окно. Аналогично поступить с полем Массив 2.
Нажать клавишу ОК, в ячейку F3 запишется формула 60*Х1+70*Х2+120*Х3+ 130*Х4
в виде СУММПРОИЗВ(В2:Е2;В3:Е3).Чтобы не вводить формулы в другие ячейки, необходимо изменить тип адресации для ячеек В2:Е2с относительной на абсолютную$B$2:$E$2,установив курсор перед нужным адресом B2 и нажав функциональную клавишуF4, затем повторить эти действия для адреса E2. Формула примет следующий вид:
СУММПРОИЗВ($В$2:$Е$2;В3:Е3)
После внесенных изменений необходимо скопировать формулу в ячейки F4:F6 c помощью маркера заполнения. Для этого необходимо выделить ячейку F3, содержащую нужную формулу, установить указатель мыши на черный квадратик в правом нижнем углу ячейки (он примет форму черного крестика) и протащить с помощью левой кнопки мыши на весь требуемый диапазон.
В результате копирования мы увидим следующие формулы:
- в ячейке F4 - СУММПРОИЗВ($В$2:$Е$2;В4:Е4),
- в ячейке F5 - СУММПРОИЗВ($В$2:$Е$2;В5:Е5),
- в ячейке F6 - СУММПРОИЗВ($В$2:$Е$2;В6:Е6).
этап. Заполнение окна Поиск решения
Выбрать в пункте меню Сервис команду Поиск решения, поставить курсор в поле целевой функции, выделить ячейку F3в форме (или ввести F3 с клавиатуры), поставить переключатель в положение "Максимальному значению" (см. Рис. 23).
В поле "Изменяя ячейки" ввести $В$2:$Е$2(с клавиатуры или протащив мышью).
Нажать клавишу "Добавить", в окне "Добавление ограничения» в поле "Ссылка на ячейку" ввести F4, выбрать через "стрелка вниз" знак "<=", в поле справа ввести Н4(Рис. 24).
Аналогично через "Добавить" ввести F5<=H5, F6<=H6 для системы ограничений (2), а также B2>=0, C2>=0, D2>=0 и Е2>=0 для граничных условий Хi>=0.
Также необходимо добавить ограничения для получения целочисленных величин по количеству товаров: B2=цел, C2=цел, D2=цел и Е2=цел.
После ввода последнего граничного условия вместо "Добавить" нажать клавишу ОК, появится окно "Поиск решения".
Для изменения или удаления ограничений и граничных условий используются клавиши Изменить, Удалить.
Этап. Параметры поиска.
В окне "Поиск решения" нажать клавишу "Параметры", выбрать по умолчанию Максимальное время - 100 с.(может быть до 2^15=32767 c.> 4 час.), число итераций- 100 (для большинства задач это количество просчётов подходит с большим запасом), установить флажок в строке "Линейная модель", нажать ОК, в появившемся окне Поиск Решения нажать Выполнить (Рис. 25).
Рисунок 25 Диалоговое окно Параметры поиска решения
Результаты поиска решения с таблицей результатов:
A | B | C | D | E | F | G | H | |
Переменная | X1 | X2 | X3 | X4 | Формула | Знак | Св.член | |
Значение | ||||||||
Коэф. ЦФ | max | |||||||
Трудовые | <= | |||||||
Сырьевые | <= | |||||||
Финансы | <= |
т.е. оптимальный план Х(Х1,Х2,Х3,Х4)=(10,0,6,0)
при минимальном использовании ресурсов
-Трудовые - 16 (У1)
-Сырьевые - 84 (У2)
-Финансы - 100 (У3)
даёт максимум прибыли F в 1320 руб.
Вывод: Максимальная прибыль F в 1320 руб. получается при выпуске только товаров Х1 и Х3 в количестве 10 и 6 штук соответственно, товары Х3 и Х4 выпускать не нужно (это приведёт к снижению прибыли). Трудовые (У1) и финансовые (У3) ресурсы используются полностью, по сырьевым ресурсам (У2) есть запас в 110-84=26 ед.
Кроме того, это означает, что изменение трудовых (У1) и финансовых (У3) ресурсов приведёт к изменению прибыли F, а изменение сырьевых ресурсов (У2) - нет.
Разности между плановыми ресурсами и использованными являются двойственными переменными У1, У2 и У3 сопряжённой задачи линейного программирования. В данном случае У1=У3=0, а У2=26 ед. Таким образом, ресурс У2 можно уменьшить на 26 ед., тогда план по сырью тоже будет оптимальным.
Задание
1. Составить собственную математическую модель задачи линейного программирования, прибавив к каждому коэффициенту рассмотренного примера свой номер № варианта, т.е.Аi=Ai+№, Вij=Bij+№, Ci=Ci+№. Сохранить в виде модели установочные параметры.
2. Рассчитать максимальную прибыль и оптимальный план выпуска товаров для её достижения. Определить минимально необходимое количество ресурсов.
3. Выполнить то же, увеличив все ресурсы в 2 раза, сравнить результаты пунктов 2 и 3. Создать отчет по результатам.
4. Для производства двух видов продукции А и В можно использовать сырье трех видов. При этом на изготовление единицы продукции вида А расходуется а1 кг. сырья первого вида, а2 кг сырья второго вида и а3 кг сырья третьего вида. На изготовление единицы продукции вида В расходуется в1 кг сырья первого вида, в2 кг. сырья второго вида и в3 кг сырья третьего вида. На складе имеется всего сырья первого вида с1кг ,сырья второго вида с2кг и третьего вида с3 кг. От реализации единицы готовой продукции вида Апредприятие имеет прибыль x тыс.руб., от реализации единицы готовой продукции вида В прибыль составляет j тыс.руб. Определить максимальную прибыль от реализации всей продукции видов А и В .
1. a1 =20, a2=15, a3=14; b1=28, b2=9, b3=1;
c1=758, c2=526, c3=541; x=10, j=2.
2. a1=15, a2=15, a3=9; b1=33, b2=25, b3=3;
c1=571, c2=577, c3=445; x=8, j=6;
3. a1=11, a2=13, a3=13; b1=21, b2=15, b3=3 c1=741,c2=741,c3=822;x=5,j=3
4. a1=14,a2=12,a3=8;b1=8,b2=4,b3=2
c1=624,c2=541,c3=376,x=7, j=3
5. a1=19,a2=16,a3=19;b1=26,b2=17,b3=8
c1=868,c2=635,c3=853;x=5, j=4
6. a1=14,a2=15,a3=20;b1=40,b2=27,b3=4
c1=1200, c2=993,c3=1094;x=5, j=5
7. a1=9,a2=15,a3=15;b1=27,b2=15,b3=3
c1=606,c2=802,c3=840;x=11, j=6
8. a1=13,a2=13,a3=11;b1=23,b2=11,b3=1
c1=608,c2=614,c3=575;x=5, j=7
9. a1=8,a2=14,a3=14;b1=7,b2=8, b3=1
c1=417, c2=580, c3=591; x=5, j=5
10. a1=19, a2=16, a3=19; b1=31, b2=9, b3=1
c1=1121, c2=706, c3=1066; x=16, j=19.
Контрольные вопросы
1. Сформулировать основную задачу линейного программирования. Записать математическую модель ЗЛП.
2. Для чего предназначена надстройка Поиск решения?
3. Что понимают под целевой ячейкой, изменяемыми ячейками?
4. Основные этапы решения ЗЛП с помощью процессора Excel.
5. Как сохранить установочные параметры для поиска решения в виде модели?
6. Какие существуют виды отчетов и как их создать? Продемонстрировать на примере.