Пример решения задачи линейного программирования




Лабораторная работа №1

Решение задач линейного программирования с использованием Microsoft Excel

Цель работы

Приобретение навыков решения задач линейного программирования (ЛП)в табличном редакторе Microsoft Excel.

Порядок выполнения работы

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

Пример решения задачи линейного программирования

Рассмотрим пример нахождения решения для следующей задачи ЛП

В экранной форме на рис. 3.1 каждой переменной и каждому коэффициенту задачи поставлена в соответствие конкретная ячейка в Excel. Имя ячейки состоит из буквы, обозначающей столбец, и цифры, обозначающей строку, на пересечении которых находится объект задачи ЛП. В ячейку F6, в которой будет отображаться значение целевой функции (ЦФ), необходимо ввести формулу, по которой это значение будет рассчитано. Согласно (3.1) значение ЦФ определяется выражением

Используя обозначения соответствующих ячеек в Excel (см. рис. 3.1), формулу для расчета ЦФ (3.2) (ячейка F6) можно записать как сумму произведений каждой из ячеек, отведенных для значений переменных задачи (B3, C3, D3, E3), на соответствующую ячейку, отведенную для коэффициентов ЦФ (B6, C6, D6, E6), то есть

Чтобы задать формулу (3.3) необходимо в ячейку F6 ввести следующее выражение и нажать клавишу "Enter"

где символ "$" перед номером строки 3 означает, что при копировании этой формулы в другие места листа Excel номер строки 3 не изменится; символ ":" означает, что в формуле будут использованы все ячейки, расположенные между ячейками, указанными слева и справа от двоеточия. После этого в целевой ячейке появится 0 (нулевое значение) (рис. 3.2).

 

Примечание 1.1. Существует другой способ задания функций в Excel с помощью режима "Вставка функций", который можно вызвать из меню "Вставка" или при нажатии кнопки "fx" на стандартной панели инструментов. Так, например, формулу (3.4) можно задать следующим образом:

• курсор в поле F6;

• выбрав меню "Вставка"→ "Функция..." (или нажав кнопку "fx"), вызовите окно "Мастер функций – шаг 1 из 2";

• выберите в окне "Категория" категорию "Математические";

• в окне "Функция" выберите функцию "СУММПРОИЗВ";

• в появившемся окне "СУММПРОИЗВ" в строку "Массив 1" введите выражение B$3:E$3, а в строку "Массив 2" — выражение B6:E6 (рис. 3.3);

• после ввода ячеек в строки "Массив 1" и "Массив 2" в окне "СУММПРОИЗВ" появятся числовые значения введенных массивов (см. рис. 3.3), а в экранной форме в ячейке F6 появится текущее значение, вычисленное по введенной формуле, то есть 0 (так как в момент ввода формулы значения переменных задачи нулевые).

Левые части ограничений задачи (3.1) представляют собой сумму произведений каждой из ячеек, отведенных для значений переменных задачи (B3, C3,D3, E3), на соответствующую ячейку, отведенную для коэффициентов конкретного ограничения (B10, C10, D10, E10 — 1-е ограничение; B11, C11, D11, E11— 2-е ограничение и т.д. Формулы, соответствующие левым частям первых двух ограничений, представлены в табл. 3.1.

Как видно из табл. 3.1, формулы, задающие левые части ограничений задачи (3.1), отличаются друг от друга и от формулы (3.4) в целевой ячейке F6 только номером строки во втором массиве. Этот номер определяется той строкой, в которой ограничение записано в экранной форме. Поэтому для задания зависимостей для левых частей ограничений достаточно скопировать формулу из целевой ячейки в ячейки левых частей ограничений.

Дальнейшие действия производятся в окне «Поиск решения», которое вызывается из меню "Сервис" (рис. 3.4):

• поставьте курсор в поле "Установить целевую ячейку";

• введите адрес целевой ячейки $F$6 или сделайте одно нажатие левой клавиши мыши на целевую ячейку в экранной форме — это будет равносильно вводу адреса с клавиатуры;

• введите направление оптимизации ЦФ, щелкнув один раз левой клавишей мыши по селекторной кнопке "максимальному значению";

• в окно "Поиск решения" в поле "Изменяя ячейки" впишите адреса $B$3:$E$3.

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

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

• Нажмите кнопку "Добавить" после чего появится окно "Добавление ограничения" (рис. 3.5).

• В поле "Ссылка на ячейку" введите адреса ячеек переменных $B$3:$E$3. Это можно сделать как с клавиатуры, так и путем выделения мышью всех ячеек переменных непосредственно в экранной форме.

• В поле знака откройте список предлагаемых знаков и выберите ≥.

• В поле "Ограничение" введите адреса ячеек нижней границы значений переменных, то есть $B$4:$E$4. Их также можно ввести путем выделения мышью непосредственно в экранной форме.

• Нажмите кнопку "Добавить" в окне "Добавление ограничения".

• В поле "Ссылка на ячейку" введите адрес ячейки левой части конкретного ограничения, например $F$10. Это можно сделать как с клавиатуры, так и путем выделения мышью нужной ячейки непосредственно в экранной форме.

• В соответствии с условием задачи (3.1) выбрать в поле знака необходимый знак.

• В поле "Ограничение" введите адрес ячейки правой части рассматриваемого ограничения, например $H$10.

• Аналогично введите ограничения: $F$11>=$H$11, $F$12<=$H$12.

• Подтвердите ввод всех перечисленных выше условий нажатием кнопки OK.

Окно "Поиск решения" после ввода всех необходимых данных задачи (3.1)представлено на рис. 3.4.

Если при вводе условия задачи возникает необходимость в изменении или удалении внесенных ограничений или граничных условий, то это делают, нажав кнопки "Изменить" или "Удалить" (см. рис. 3.4).

Задача запускается на решение в окне "Поиск решения". Но предварительно для установления конкретных параметров решения задач оптимизации определенного класса необходимо нажать кнопку "Параметры" и заполнить некоторые поля окна "Параметры поиска решения" (рис. 3.6).

Параметр "Максимальное время" служит для назначения времени (в секундах), выделяемого на решение задачи. В поле можно ввести время, не превышающее 32767 секунд (более 9 часов).

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

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

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

Параметр "Сходимость" применяется только при решении нелинейных задач.

Установка флажка "Линейная модель" обеспечивает ускорение поиска решения линейной задачи за счет применение симплекс-метода.

Подтвердите установленные параметры нажатием кнопки "OK".

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

После запуска на решение задачи ЛП на экране появляется окно "Результаты поиска решения" с одним из сообщений, представленных на рис. 3.7, 3.8 и 3.9.

Иногда сообщения, представленные на рис. 3.8 и 3.9, свидетельствуют не о характере оптимального решения задачи, а о том, что при вводе условий задачи в Excel были допущены ошибки, не позволяющие Excel найти оптимальное решение, которое в действительности существует.

Если при заполнении полей окна "Поиск решения" были допущены ошибки, не позволяющие Excel применить симплекс-метод для решения задачи или довести ее решение до конца, то после запуска задачи на решение на экран будет выдано соответствующее сообщение с указанием причины, по которой решение не найдено.

В окне "Результаты поиска решения" представлены названия трех типов отчетов: "Результаты "Устойчивость "Пределы". Они необходимы при анализе полученного решения на чувствительность. Для получения же ответа (значений переменных, ЦФ и левых частей ограничений) прямо в экранной форме просто нажмите кнопку "OK". После этого в экранной форме появляется оптимальное решение задачи (рис. 3.10).

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: