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

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

Оценка 5
doc
27.04.2020
Решение задач линейного программирования с использованием процессора Microsoft Excel
24. Решение задач линейного программирования с использованием процессора Microsoft Excel.doc

Практическая работа №2

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

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

Вид работы: фронтальный

Время выполнения: 2 часа

Теоретические сведения

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

Несколько слов о самом термине линейное программирование. Он требует правильного понимания. В данном случае программирование - это, конечно, не составление программ для ЭВМ. Программирование здесь должно интерпретироваться как планирование, формирование планов, разработка программы действий.

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

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

-      задача об оптимальном использовании ресурсов при производственном планировании;

-      задача о смесях (планирование состава продукции);

-      задача о нахождении оптимальной комбинации различных видов продукции для хранения на складах (управление товарно-материальными запасами или «задача о рюкзаке»);

-      транспортные задачи (анализ размещения предприятия, перемещение грузов).

Линейное программирование – наиболее разработанный и широко применяемый раздел математического программирования (кроме того, сюда относят: целочисленное, динамическое, нелинейное, параметрическое программирование). Это объясняется следующим:

-      математические модели большого числа экономических задач линейны относительно искомых переменных;

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

-      многие задачи линейного программирования, будучи решенными, нашли широкое применение;

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

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

В общем виде модель записывается следующим образом:

1.Целевая функция:

= c1x1 + c2x2 + ... + cnxn → max(min);

(1)

2.Система ограничений:

a11x1 + a12x2 + ... + a1nxn {≤ = ≥} b1,
a21x1 + a22x2 + ... + a2nxn {≤ = ≥} b2,

...

am1x1 + am2x2 + ... + amnxn {≤ = ≥} bm;

(2)

3.Условие неотрицательности:

xj ≥ 0,  

(3)

При этом aij, bi, cj () - заданные постоянные величины.

Задача состоит в нахождении оптимального значения функции (1) при соблюдении ограничений (2) и (3).

Систему ограничений (2) называют функциональными ограничениями задачи, а ограничения (3) - прямыми.

Вектор , удовлетворяющий ограничениям (2) и (3), называется допустимым решением (планом) задачи линейного программирования. План , при котором функция (1) достигает своего максимального (минимального) значения, называется оптимальным.

Задания к практической работе

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

Ход работы

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

1.         Ввести условие задачи:

a)    создать экранную форму для ввода условия задачи:

-        переменных,

-        целевой функции (ЦФ),

-        ограничений,

-        граничных условий.

b)    ввести исходные данные в экранную форму:

-        коэффициенты ЦФ,

-        коэффициенты при переменных в ограничениях,

-        правые части ограничений.

c)     ввести зависимости из математической модели в экранную форму:

-        формулу для расчета ЦФ,

-        формулы для расчета значений левых частей ограничений.

d)    задать ЦФ (в окне «Поиск решения»):

-        целевую ячейку,

-        направление оптимизации ЦФ.

e)     ввести ограничения и граничные условия (в окне «Поиск решения»):

-        ячейки со значениями переменных,

-        граничные условия для допустимых значений переменных,

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

2.         Решить задачу:

a)     установить параметры решения задачи (в окне «Поиск решения»);

b)    запустить задачу на решение (в окне «Поиск решения»);

c)     выбрать формат вывода решения (в окне «Результаты поиска решения»).

1.       Одноиндексные задачи ЛП

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

(1.1)

1.1.  Ввод исходных данных

Создание экранной формы и ввод в нее условия задачи

Экранная форма для ввода условий задачи (1.1) вместе с введенными в нее исходными данными представлена на рис.1.

Рисунок 1 - Экранная форма задачи (1.1) (курсор в ячейке F6)

В экранной форме на рис.1 каждой переменной и каждому коэффициенту задачи поставлена в соответствие конкретная ячейка в Excel. Имя ячейки состоит из буквы, обозначающей столбец, и цифры, обозначающей строку, на пересечении которых находится объект задачи ЛП. Так, например, переменным задачи (1.1) соответствуют ячейки B3 (x1), C3 (x2), D3 (x3), E3 (x4), коэффициентам ЦФ соответствуют ячейки B6 (c1=130,5), C6 (c2=20), D6 (c3=56), E6 (c4=87,8), правым частям ограничений соответствуют ячейки H10 (b1=756), H11 (b2=450), H12 (b3=89) и т.д.

Ввод зависимостей из математической модели в экранную форму

Зависимость для ЦФ

В ячейку F6, в которой будет отображаться значение ЦФ, необходимо ввести формулу, по которой это значение будет рассчитано. Согласно (1.1) значение ЦФ определяется выражением

.

(1.2)

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

.

(1.3)

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

=СУММПРОИЗВ(B$3:E$3;B6:E6),

(1.4)

где символ $ перед номером строки 3 означает, что при копировании этой формулы в другие места листа Excel номер строки 3 не изменится;

символ : означает, что в формуле будут использованы все ячейки, расположенные между ячейками, указанными слева и справа от двоеточия (например, запись B6:E6 указывает на ячейки B6, C6, D6 и E6). После этого в целевой ячейке появится 0 (нулевое значение) (рис.2).

Рисунок 2 - Экранная форма задачи (1.1) после ввода всех необходимых формул (курсор в ячейке F6)

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

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

·       нажав кнопку «», вызовите окно «Мастер функций»–«шаг 1 из 2»;

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

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

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

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

Рисунок 3 - Ввод формулы для расчета ЦФ в окно «Мастер функций»

Зависимости для левых частей ограничений

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

Таблица 1

Формулы, описывающие ограничения модели (1.1)

Левая часть ограничения

Формула Excel

 или

=СУММПРОИЗВ(B$3:E$3;B10:E10)

 или

=СУММПРОИЗВ(B$3:E$3;B11:E11)

 или

=СУММПРОИЗВ(B$3:E$3;B12:E12)

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

·       поместить курсор в поле целевой ячейки F6 и скопировать в буфер содержимое ячейки F6 (клавишами «Ctrl-Insert»);

·       помещать курсор поочередно в поля левой части каждого из ограничений, то есть в F10, F11 и F12, и вставлять в эти поля содержимое буфера (клавишами «Shift-Insert») (при этом номер ячеек во втором массиве формулы будет меняться на номер той строки, в которую была произведена вставка из буфера);

на экране в полях F10, F11 и F12 появится 0 (нулевое значение) (см. рис.2).

Проверка правильности введения формул

Для проверки правильности введенных формул производите поочередно двойное нажатие левой клавиши мыши на ячейки с формулами. При этом на экране рамкой будут выделяться ячейки, используемые в формуле (рис.4 и 5).

Рисунок 4 - Проверка правильности введения формулы в целевую ячейку F6

Рисунок 5 - Проверка правильности введения формулы в ячейку F12 для левой части ограничения 3

Задание ЦФ

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

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

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

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

Рисунок 6 - Окно «Поиск решения» задачи (1.1)

Ввод ограничений и граничных условий

Задание ячеек переменных

В окно «Поиск решения» в поле «Изменяя ячейки» впишите адреса $B$3:$E$3. Необходимые адреса можно вносить в поле «Изменяя ячейки» и автоматически путем выделения мышью соответствующих ячеек переменных непосредственно в экранной форме.

Задание граничных условий для допустимых значений переменных

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

·       Нажмите кнопку «Добавить», после чего появится окно «Добавление ограничения» (рис.7).

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

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

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

Рисунок 7 - Добавление условия неотрицательности переменных задачи (1.1)

Задание знаков ограничений , , =

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

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

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

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

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

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

Окно «Поиск решения» после ввода всех необходимых данных задачи (1.1) представлено на рис.6.

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

1.2.  Решение задачи

Установка параметров решения задачи

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

Рисунок 8 - Параметры поиска решения, подходящие для большинства задач ЛП

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

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

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

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

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

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

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

Запуск задачи на решение

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

После запуска на решение задачи ЛП на экране появляется окно «Результаты поиска решения» с одним из сообщений, представленных на рис.9, 10 и 11.

Рисунок 9 - Сообщение об успешном решении задачи

Рисунок 10 - Сообщение при несовместной системе ограничений задачи

Рисунок 11 - Сообщение при неограниченности ЦФ в требуемом направлении

Иногда сообщения, представленные на рис.10 и 11, свидетельствуют не о характере оптимального решения задачи, а о том, что при вводе условий задачи в Excel были допущены ошибки, не позволяющие Excel найти оптимальное решение, которое в действительности существует (см. ниже подразд.5).

Если при заполнении полей окна «Поиск решения» были допущены ошибки, не позволяющие Excel применить симплекс-метод для решения задачи или довести ее решение до конца, то после запуска задачи на решение на экран будет выдано соответствующее сообщение с указанием причины, по которой решение не найдено. Иногда слишком малое значение параметра «Относительная погрешность» не позволяет найти оптимальное решение. Для исправления этой ситуации увеличивайте погрешность поразрядно, например от 0,000001 до 0,00001 и т.д.

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

Рисунок 12 - Экранная форма задачи (1.1) после получения решения

2.       Целочисленное программирование

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

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

·       В окне «Поиск решения» (меню «Данные»®»Поиск решения»), нажмите кнопку «Добавить» и в появившемся окне «Добавление ограничений» введите ограничения следующим образом (рис.14):

-      в поле «Ссылка на ячейку» введите адреса ячеек переменных задачи, то есть $B$3:$E$3;

-      в поле ввода знака ограничения установите «целое»;

-      подтвердите ввод ограничения нажатием кнопки «OK».

Рисунок 13 - Решение задачи (1.1) при условии целочисленности ее переменных

Рисунок 14 - Ввод условия целочисленности переменных задачи (1.1)

На рис.13 представлено решение задачи (1.1), к ограничениям которой добавлено условие целочисленности значений ее переменных.

3.       Двухиндексные задачи ЛП

Двухиндексные задачи ЛП вводятся и решаются в Excel аналогично одноиндексным задачам. Специфика ввода условия двухиндексной задачи ЛП состоит лишь в удобстве матричного задания переменных задачи и коэффициентов ЦФ.

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

Таблица 2

Исходные данные транспортной задачи

Тарифы, руб./шт.

1-й музей

2-й музей

3-й музей

Запасы, шт.

1-й склад

2

9

7

25

2-й склад

1

0

5

50

3-й склад

5

4

100

35

4-й склад

2

3

6

75

Потребности, шт.

45

90

50

 

Целевая функция и ограничения данной задачи имеют вид

(1.5)

Экранные формы, задание переменных, целевой функции, ограничений и граничных условий двухиндексной задачи (1.5) и ее решение представлены на рис.15, 16, 17 и в табл.3.

Рисунок 15 - Экранная форма двухиндексной задачи (1.5) (курсор в целевой ячейке F15)

Таблица 3

Формулы экранной формы задачи (1.5)

Объект математической модели

Выражение в Excel

Переменные задачи

C3:E6

Формула в целевой ячейке F15

=СУММПРОИЗВ(C3:E6;C12:E15)

Ограничения по строкам

в ячейках F3, F4, F5, F6

=СУММ(C3:E3)

=СУММ(C4:E4)

=СУММ(C5:E5)

=СУММ(C6:E6)

Ограничения по столбцам

в ячейках С7, D7, E7

=СУММ(C3:C6)

=СУММ(D3:D6)

=СУММ(E3:E6)

Суммарные запасы и потребности

в ячейках H8, G9

=СУММ(H3:H6)

=СУММ(C9:E9)

Рисунок 16 - Ограничения и граничные условия задачи (1.5)

Рисунок 17 - Экранная форма после получения решения задачи (1.5) (курсор в целевой ячейке F15)

4.       Задачи с булевыми переменными

Частным случаем задач с целочисленными переменными являются задачи, в результате решения которых искомые переменные xj могут принимать только одно из двух значений: 0 или 1. Такие переменные в честь предложившего их английского математика Джорджа Буля называют булевыми. На рис.18 представлена экранная форма с решением некоторой двухиндексной задачи с булевыми переменными.

Рисунок 18 - Решение двухиндексной задачи с булевыми переменными

Помимо задания требования целочисленности (см. подразд. 2) при вводе условия задач с булевыми переменными необходимо:

·       для наглядности восприятия ввести в экранную форму слово «булевы» в качестве характеристики переменных (см. рис.18);

·       в окне «Поиск решения» добавить граничные условия, имеющие смысл ограничения значений переменных по их единичной верхней границе (рис.19).

Рисунок 19 - Добавление условия единичной верхней границы значений переменных двухиндексной задачи с булевыми переменными

Вид окна «Поиск решения» для задачи с булевыми переменными, представленной на рис.18, приведен на рис.20.

Рисунок 20 - Окно «Поиск решения» для задачи с булевыми переменными, представленной на рис.18

5.       Возможные ошибки при вводе условий задач ЛП

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

6.       Варианты

Используя MS Excel, найти решение для модели ЛП, соответствующей заданному варианту (табл.5).

Таблица 1.5

Варианты задач к практической работе №2

№ варианта

Математическая модель

1

№ варианта

Математическая модель

2

3

4

5

6

№ варианта

Математическая модель

7

8

9

10

11

№ варианта

Математическая модель

12

Контрольные вопросы

1.         Каковы основные этапы решения задач ЛП в MS Excel?

2.         Каков вид и способы задания формул для целевой ячейки и ячеек левых частей ограничений?

3.         В чем смысл использования символа $ в формулах MS Excel?

4.         В чем различие использования в формулах MS Excel символов ; и :?

5.         Почему при вводе формул в ячейки ЦФ и левых частей ограничений в них отображаются нулевые значения?

6.         Каким образом в MS Excel задается направление оптимизации ЦФ?

7.         Какие ячейки экранной формы выполняют иллюстративную функцию, а какие необходимы для решения задачи?

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

9.         Поясните общий порядок работы с окном «Поиск решения».

10.      Каким образом можно изменять, добавлять, удалять ограничения в окне «Поиск решения»?

11.      Какие сообщения выдаются в MS Excel в случаях: успешного решения задачи ЛП; несовместности системы ограничений задачи; неограниченности ЦФ?

12.      Объясните смысл параметров, задаваемых в окне «Параметры поиска решения».

13.      Каковы особенности решения в MS Excel целочисленных задач ЛП?

14.      Каковы особенности решения в MS Excel двухиндексных задач ЛП?

Каковы особенности решения в MS Excel задач ЛП с булевыми переменными?


Скачано с www.znanio.ru

Практическая работа №2 Тема:

Практическая работа №2 Тема:

Ввести условие задачи: a) создать экранную форму для ввода условия задачи : - переменных, - целевой функции (ЦФ), - ограничений, - граничных условий

Ввести условие задачи: a) создать экранную форму для ввода условия задачи : - переменных, - целевой функции (ЦФ), - ограничений, - граничных условий

СУММПРОИЗВ( B $3: E $3; B 6: E 6 ), (1

СУММПРОИЗВ( B $3: E $3; B 6: E 6 ), (1

СУММПРОИЗВ(B$3:E$3;B12:E12)

СУММПРОИЗВ(B$3:E$3;B12:E12)

В окно «Поиск решения» в поле «Изменяя ячейки» впишите адреса $

В окно «Поиск решения» в поле «Изменяя ячейки» впишите адреса $

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

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

Рисунок 12 - Экранная форма задачи (1

Рисунок 12 - Экранная форма задачи (1

Потребности, шт. 45 90 50

Потребности, шт. 45 90 50

Рисунок 16 - Ограничения и граничные условия задачи (1

Рисунок 16 - Ограничения и граничные условия задачи (1

Рисунок 20 - Окно «Поиск решения» для задачи с булевыми переменными, представленной на рис

Рисунок 20 - Окно «Поиск решения» для задачи с булевыми переменными, представленной на рис

Математическая модель 7 8 9 10

Математическая модель 7 8 9 10

Математическая модель 12

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