Где задают условие целочисленности переменных при решении задачи линейного программирования в excel

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

Если что-то непонятно — вы всегда можете написать мне в WhatsApp и я вам помогу!

Линейное программирование

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

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

Цель работы

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

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

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

Инструкция по использованию microsoft excel для решения задач линейного программирования

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

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

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

  • переменных,
  • целевой функции (ЦФ),
  • ограничений,
  • граничных условий;

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

  • коэффициенты ЦФ,
  • коэффициенты при переменных в ограничениях,
  • правые части ограничений;

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

  • формулу для расчета ЦФ,
  • формулы для расчета значений левых частей ограничений;

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

  • целевую ячейку,
  • направление оптимизации ЦФ;

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

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

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

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

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

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

Возможно эта страница вам будет полезна:

Одноиндексные задачи линейного программирования

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

Линейное программирование в Excel задачи с решением

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

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

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

Линейное программирование в Excel задачи с решением

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

Линейное программирование в Excel задачи с решением
Линейное программирование в Excel задачи с решением

правым частям ограничений соответствуют ячейки

Линейное программирование в Excel задачи с решением

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

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

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

Линейное программирование в Excel задачи с решением

Используя обозначения соответствующих ячеек в Excel (см. рис. 1.1), формулу для расчета ЦФ (1.2) можно записать как сумму произведений каждой из ячеек, отведенных для значений переменных задачи (ВЗ, СЗ, D3, ЕЗ), на соответствующую ячейку, отведенную для коэффициентов ЦФ (В6, С6, D6, Е6), то есть

Линейное программирование в Excel задачи с решением

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

Линейное программирование в Excel задачи с решением

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

символ : означает, что в формуле будут использованы все ячейки, расположенные между ячейками, указанными слева и справа от двоеточия (например, запись В6:Е6 указывает на ячейки В6, С6, D6 и Е6). После этого в целевой ячейке появится 0 (нулевое значение) (рис. 1.2).

Линейное программирование в Excel задачи с решением

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

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

• нажав кнопку «Линейное программирование в Excel задачи с решением«, вызовите окно «Мастер функций — шаг 1 из 2»;

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

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

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

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

Линейное программирование в Excel задачи с решением

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

Левые части ограничений задачи (1.1) представляют собой сумму произведений каждой из ячеек, отведенных для значений переменных задачи (ВЗ, СЗ, D3, ЕЗ), на соответствующую ячейку, отведенную для коэффициентов конкретного ограничения (В 10, СЮ, D10, ЕЮ — 1-е ограничение; В11, С11, D11, El 1 — 2-е ограничение и В12, С12, D12, Е12 — 3-е ограничение). Формулы, соответствующие левым частям ограничений, представлены в табл. 1.1.

Линейное программирование в Excel задачи с решением

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

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

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

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

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

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

Линейное программирование в Excel задачи с решением

Задание ЦФ

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

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

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

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

Линейное программирование в Excel задачи с решением

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

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

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

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

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

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

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

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

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

Линейное программирование в Excel задачи с решением

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

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

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

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

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

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

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

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

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

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

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

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

Линейное программирование в Excel задачи с решением

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

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

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

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

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

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

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

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

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

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

Линейное программирование в Excel задачи с решением

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

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

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

Линейное программирование в Excel задачи с решением

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

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

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

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

  • в поле «Ссылка на ячейку» введите адреса ячеек переменных задачи, то есть $В$3:$Е$3;
  • в поле ввода знака ограничения установите «целое»;
  • подтвердите ввод ограничения нажатием кнопки «ОК».
Линейное программирование в Excel задачи с решением

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

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

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

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

Линейное программирование в Excel задачи с решением

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

Линейное программирование в Excel задачи с решением

Экранные формы, задание переменных, целевой функции, ограничений и граничных условий двухиндексной задачи (1.5) и ее решение представлены на рис. 1.15, 1.16, 1.17 и в табл. 1.3.

Линейное программирование в Excel задачи с решением

Линейное программирование в Excel задачи с решением

Линейное программирование в Excel задачи с решением

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

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

Линейное программирование в Excel задачи с решением

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

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

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

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

Линейное программирование в Excel задачи с решением

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

Линейное программирование в Excel задачи с решением

Возможные ошибки при вводе условий задач линейного программирования

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

Как решить задачу линейного программирования в excel

Цель работы

Приобретение навыков решения задач линейного программирования (ЗЛП) в табличном редакторе Microsoft Excel. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

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

Инструкция по использованию microsoft excel для решения задач линейного программирования

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

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

  • • переменных,
  • • целевой функции (ЦФ),
  • • ограничений,
  • • граничных условий;

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

  • • коэффициенты ЦФ,
  • • коэффициенты при переменных в ограничениях,
  • • правые части ограничений;

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

  • • формулу для расчета ЦФ,
  • • формулы для расчета значений левых частей ограничений; с!) задать ЦФ (в окне «Поиск решения»):
  • • целевую ячейку,
  • • направление оптимизации ЦФ;

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

  • • ячейки со значениями переменных,
  • • граничные условия для допустимых значений переменных,
  • • соотношения между правыми и левыми частями ограничений. 2. Решить задачу:

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

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

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

Одноиндексные ЗЛП

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

Линейное программирование в Excel задачи с решением
  • Ввод исходных данных

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

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

Линейное программирование в Excel задачи с решением

В экранной форме на рис. 1 каждой переменной и каждому коэффициенту задачи поставлена в соответствие конкретная ячейка в Excel. Так, например, переменным задачи (1) соответствуют ячейки

Линейное программирование в Excel задачи с решением

коэффициентам ЦФ соответствуют ячейки

Линейное программирование в Excel задачи с решением
Линейное программирование в Excel задачи с решением

правым частям ограничений соответствуют ячейки

Линейное программирование в Excel задачи с решением

Линейное программирование в Excel задачи с решением
  • Ввод зависимостей из математической модели в экранную форму

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

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

Линейное программирование в Excel задачи с решением

Используя обозначения соответствующих ячеек в Excel (см. рис. 1), формулу для расчета ЦФ (2) можно записать как сумму произведений каждой из ячеек, отведенных для значений переменных задачи (ВЗ, СЗ, D3, ЕЗ), на соответствующую ячейку, отведенную для коэффициентов ЦФ (В6, С6, D6,E6):

Линейное программирование в Excel задачи с решением

После этого в целевой ячейке появится 0 (нулевое значение) (рис. 2).

Линейное программирование в Excel задачи с решением

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

Левые части ограничений задачи (1) представляют собой сумму произведений каждой из ячеек, отведенных для значений переменных задачи(ВЗ, СЗ, D3, ЕЗ), на соответствующую ячейку, отведенную для коэффициентов конкретного ограничения (B10, С10, D10, Е10 — 1-е ограничение; В11, C11,D11, Е11 — 2-е ограничение и В12, С12, D12, Е12 — 3-е ограничение). Формулы, соответствующие левым частям ограничений, записать самостоятельно. Проверка правильности введения формул

Для проверки правильности введенных формул производите поочередно двойное нажатие левой клавиши мыши на ячейки с формулами. При этом на экране рамкой будут выделяться ячейки, используемые в формуле. Дальнейшие действия производятся в окне «Поиск решения», которое вызывается из меню «Сервис». Решение задачи

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

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

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

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

Параметр «Допустимое отклонение» служит для задания допуска на отклонение от оптимального решения в целочисленных задачах. При указании большего допуска поиск решения заканчивается быстрее. Параметр «Сходимость» применяется только при решении нелинейных задач. Установка флажка «Линейная модель» обеспечивает ускорение поиска решения линейной задачи за счет применение симплекс-метода. Подтвердите установленные параметры нажатием кнопки «ОК». Запуск задачи на решение

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

После запуска на решение задачи линейного программирования на экране появляется окно «Результаты поиска решения» с одним из сообщений:

• Сообщение об успешном решении задачи

• Сообщение при несовместной системе ограничений задачи

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

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

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

Линейное программирование в Excel задачи с решением

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

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

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

Линейное программирование в Excel задачи с решением

• В окне «Поиск решения» (меню «Сервис»—►»Поиск решения»), нажмите кнопку «Добавить» и в появившемся окне «Добавление ограничений» введите ограничения целочисленности. Сравните результаты.

Получите у преподавателя индивидуальные задания.

Примеры решения экономических задач Задача 1.

Средства очистки пола оценивают по следующим трем показателям:

  • • очищающие свойства;
  • • дезинфицирующие свойства;
  • • раздражающее воздействие на кожу.

Каждый из этих показателей измеряется по линейной шкале от 0 до 100. Продукт на рынке должен иметь по крайней мере 60 ед. очищающих свойств и по крайней мере 60 ед. дезинфицирующих свойств по соответствующей шкале. При этом раздражающее воздействие на кожу должно быть минимальным. Конечный продукт должен быть смесью трех основных очистителей, характеристики которых приведены в таблице.

Линейное программирование в Excel задачи с решением

Составим математическую модель задачи. Пусть Линейное программирование в Excel задачи с решением — доля очистителя Линейное программирование в Excel задачи с решением в конечном продукте, Линейное программирование в Excel задачи с решением — доля очистителя Линейное программирование в Excel задачи с решением в конечном продукте, Линейное программирование в Excel задачи с решением — доля очистителя Линейное программирование в Excel задачи с решением в конечном продукте.

Целевая функция: Линейное программирование в Excel задачи с решением (т.е. минимизируем раздражающее воздействие на кожу конечного продукта).

Ограничения:

Линейное программирование в Excel задачи с решением

Решение задачи с помощью MS Excel.

Линейное программирование в Excel задачи с решением

Заполним таблицу, содержащую исходные данные. Заполним диалоговое окно

«Поиск решения».

Линейное программирование в Excel задачи с решением

Щелкнув по кнопке ОК, мы получаем на месте исходной таблицы — таблицу с найденными оптимальными значениями. В результате в таблице получим значение целевой функции — 31,4 ед. раздражающего воздействия на кожу при

Линейное программирование в Excel задачи с решением

(т.е. очистители Линейное программирование в Excel задачи с решением нужно брать в долях 30%, 10% и 60% соответственно).

Линейное программирование в Excel задачи с решением

Задача 2.

Фирме требуется уголь с содержанием фосфора не более 0,03% и с примесью пепла не более 3,25%. Доступны 3 сорта угля Линейное программирование в Excel задачи с решением по следующим ценам (за тонну):

Линейное программирование в Excel задачи с решением

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

Решение задач математического программирования с помощью надстройки «Поиск решения» ЭТ Excel

Задачи линейного программирования, целочисленного программирования и ряд задач нелинейного программирования могут быть решены с помощью стандартного прикладного программного обеспечения. Например, в ЭТ MS Excel для этого имеется модуль «Поиск решения», вызываемый командой меню «Сервис/Поиск решения». Для активизации данного модуля необходимо выполнить команду «Сервис/Надстройки» и установить флажок напротив строки меню «Поиск решения».

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

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

  1. Суммарный объем капитала составляет 100 000 $;
  2. доля средств, вложенная в один из объектов, не может превышать 25%;
  3. более 40% всех средств должны быть вложены в долгосрочные активы;
  4. доля высокорисковых активов не может превышать трети от суммарного объема.

Таблица 1 — Информация об объектах инвестирования

Линейное программирование в Excel задачи с решением

Построим экономико-математическую модель задачи.

Искомые переменные — объемы средств, вложенные в активы: Линейное программирование в Excel задачи с решениемЛинейное программирование в Excel задачи с решением.

Прибыль, которую получит инвестор, задается целевой функцией:

Линейное программирование в Excel задачи с решением

Сформируем ограничения:

Ограничения на суммарный объем активов —

Линейное программирование в Excel задачи с решением

Ограничение на размер доли каждого актива

Линейное программирование в Excel задачи с решением

Необходимость долгосрочного инвестирования (например, более 3 лет)

Линейное программирование в Excel задачи с решением

Учет необходимости снижения риска —

Линейное программирование в Excel задачи с решением

Естественное экономическое ограничение — неотрицательность искомых переменных —

Линейное программирование в Excel задачи с решением

Для решения задачи выполним следующие шаги.

  • На рабочем листе представим необходимую для решения информацию, согласно рисунку 1.

Ячейки В13, Н9-Н11 должны содержать формулы, отражающие зависимость между искомыми переменными и условиями задачи. В данном случае целесообразно использовать функцию Суммпроизв(…), аргументами которой являются диапазоны B4-G4 и диапазоны соответствующих параметров.

Линейное программирование в Excel задачи с решением

Рисунок 1 — Исходные данные для решения ЗЛП

  • Выполнить команду Сервис/Поиск решения и заполнить все поля диалогового окна:

Указать адрес ячейки (В 13), содержащей целевую функцию, указать тип целевой функции,

В поле «изменяя ячейки» указать адреса всех искомых переменных (от В4 до G4).

Затем последовательно заполнить все ограничения (Пример на рисунке 2.)

Линейное программирование в Excel задачи с решением

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

Линейное программирование в Excel задачи с решением

Далее, если это необходимо, устанавливаются особые значения параметров (кнопка «Параметры»).

Линейное программирование в Excel задачи с решением

Результаты отражаются на рабочем листе. Результаты решения представлены на рисунке 5.

Линейное программирование в Excel задачи с решением

Рисунок 5 — Результаты решения задачи

На рисунке 6 представлена структура инвестиционного портфеля.

Линейное программирование в Excel задачи с решением

На основе решения проводится анализ, и принимаются соответствующие управленческие решения.

Технология решения транспортной задачи

1. На рабочем листе представим необходимую для решения информацию, согласно рисунку 7.

Ячейки В15 содержит формулу Суммпроизв(…), аргументами которой являются диапазоны В4-Е6 и В9-Е11. Ячейки F9-F11 должны содержать формулы, отражающие зависимость между искомыми переменными и условиями задачи. В данном случае целесообразно использовать функцию Сумм(…), аргументами которой являются диапазоны В9-Е9, В10-Е 10 и В11 -Е11. Аналогично определяются формулы в В12-Е 12.

Линейное программирование в Excel задачи с решением

Рисунок 7 — Исходные данные для решения ЗЛП

  • Выполнить команду Сервис/Поиск решения и заполнить все поля диалогового окна:

Указать адрес ячейки (В 15), содержащей целевую функцию, указать тип целевой функции (минимум),

В поле «изменяя ячейки» указать адреса всех искомых переменных (от В9 до Е11).

Затем последовательно заполнить все ограничения (Пример на рисунке 8.)

Линейное программирование в Excel задачи с решением

Если возникли ошибки ввода, то изменить или добавить ограничение можно с помощью командных кнопок «Добавить, изменить, удалить». Результаты отражаются на рабочем листе. Результаты решения представлены на рисунке 9.

Линейное программирование в Excel задачи с решением

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

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

Линейное программирование в Excel задачи с решением

доходе I. Найти максимальное значение функции полезности.

Построим математическую модель задачи потребительского выбора:

Линейное программирование в Excel задачи с решением

где Линейное программирование в Excel задачи с решением — число потребляемых товаров или благ, Линейное программирование в Excel задачи с решением — потребительский набор, Линейное программирование в Excel задачи с решением — функция полезности потребителя.

Набор, который является решением задачи потребительского выбора, называется оптимальным потребительским набором, или точкой локального рыночного равновесия потребителя. Поставленная задача — задача потребительского выбора — является задачей нелинейного программирования.

  • На рабочем листе представим необходимую для решения информацию, согласно рисунку 10.

Ячейки В5, В6 должны содержать формулы, отражающие зависимость между искомыми переменными и условиями задачи. В данном случае ячейка В5 содержит формулу «=D2B2+E2C2», а ячейка В6 содержит формулу «=2В2Л(3/4)(С2-4)А(1/4)».

Линейное программирование в Excel задачи с решением

Рисунок 10 — Исходные данные для решения ЗНП

  • Выполнить команду Сервис/Поиск решения и заполнить все поля диалогового окна:

Линейное программирование в Excel задачи с решением

Аналитическое решение задачи нелинейного программирования.

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

Для решения классической задачи нелинейного программирования применим метод множителей Лагранжа, для этого составим функцию Лагранжа:

Линейное программирование в Excel задачи с решением

Найдем точки экстремума функции Лагранжа.

Линейное программирование в Excel задачи с решением

Приравняем каждое уравнение к 0:

Линейное программирование в Excel задачи с решением

С помощью преобразований — разделим первое уравнение системы на второе, перейдем к системе:

Линейное программирование в Excel задачи с решением

Подставим второе уравнение в первое и построим аналитические функции спроса:

Линейное программирование в Excel задачи с решением

Максимальное значение функции полезности-

Линейное программирование в Excel задачи с решением

Решением задачи потребительского выбора будет набор Линейное программирование в Excel задачи с решениемЛинейное программирование в Excel задачи с решением

Возможно эти страницы вам будут полезны:

  1. Решение задач по математическому программированиюПримеры решения задач по математическому программированиюЗаказать работу по математическому программированиюПомощь по математическому программированиюЗадачи математического программированияЗадача линейного программированияРешение задач по линейному программированиюМетоды решения задач линейного программированияГрафическое решение задач линейного программированияГрафический метод решения задач линейного программированияЗаказать работу по линейному программированиюПомощь по линейному программированиюКонтрольная работа по линейному программированиюКурсовая работа по линейному программированию

РЕШЕНИЕ
ЗАДАЧ ЛИНЕЙНОГОПРОГРАММИРОВАНИЯ С
ИСПОЛЬЗОВАНИЕМ
Microsoft
Excel

ЦЕЛЬ
РАБОТЫ

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

ПОРЯДОК
ВЫПОЛНЕНИЯ РАБОТЫ

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

ИНСТРУКЦИЯ
ПО ИСПОЛЬЗОВАНИЮ
Microsoft
Excel
ДЛЯ
РЕШЕНИЯ ЗЛП

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

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

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

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

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

  • граничных
    условий;

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

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

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

  • правые
    части ограничений;

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

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

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

d)
задать
ЦФ

окне «Поиск
решения»
):

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

  • направление
    оптимизации ЦФ;

e)
ввести
ограничения и граничные условия

окне «Поиск
решения»
):

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

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

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

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

a)
установить
параметры решения задачи

окне «Поиск
решения»
);

b)
запустить
задачу на решение

окне «Поиск
решения»
);

c)
выбрать
формат вывода решения

окне «Результаты
поиска решения»
).

Одноиндексные
ЗЛП

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

(1)

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

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

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

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

В
экранной форме на рис. 1 каждой переменной
и каждому коэффициенту задачи поставлена
в соответствие конкретная ячейка в
Excel. Так, например, переменным задачи
(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) и т.д.

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

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

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

. (2)

Используя
обозначения соответствующих ячеек в
Excel (см. рис. 1), формулу для расчета ЦФ
(2) можно записать как сумму
произведений
каждой
из ячеек, отведенных для значений
переменных задачи (B3,
C3, D3, E3
),
на соответствующую ячейку, отведенную
для коэффициентов ЦФ (B6,
C6, D6,E6
):
=СУММПРОИЗВ(B$3:E$3;B6:E6).

После
этого в целевой ячейке появится 0 (нулевое
значение) (рис. 2).

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

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

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

2-е ограничение и B12,
C12, D12, E12 –
3-е
ограничение). Формулы,
соответствующие
левым частям ограничений, записать
самостоятельно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Сообщение
    об успешном решении задачи

  • Сообщение
    при несовместной системе ограничений
    задачи

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

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

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

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

После
этого в экранной форме появляется
оптимальное решение задачи (рис.3).

Рис.
3. Экранная форма задачи (1) после получения
решения.

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

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

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

Рис.
4. Решение задачи (1) при условии
целочисленности ее переменных.

  • В
    окне «Поиск
    решения»
    (меню
    «Сервис»«Поиск
    решения»
    ),
    нажмите кнопку «Добавить»
    и
    в появившемся окне «Добавление
    ограничений»
    введите
    ограничения целочисленности.

Сравните
результаты.

Получите
у преподавателя индивидуальные задания.

Примеры
решения экономических задач

Задача
1.

Средства
очистки пола оценивают по следующим
трем показателям:

  • очищающие
    свойства;

  • дезинфицирующие
    свойства;

  • раздражающее
    воздействие на кожу.

Каждый
из этих показателей измеряется по
линейной шкале от 0 до 100.

Продукт
на рынке должен иметь по крайней мере
60 ед. очищающих свойств и по крайней
мере 60 ед. дезинфицирующих свойств по
соответствующей шкале. При этом
раздражающее воздействие на кожу должно
быть минимальным. Конечный продукт
должен быть смесью трех основных
очистителей, характеристики которых
приведены в таблице.

очититель

Очищающие
свойства

Дезинфицирующие
свойства

Раздражающие
свойства

А

90

30

70

В

65

85

50

С

45

70

10

Составим
математическую модель задачи. Пусть x1
– доля очистителя А в конечном продукте,
x2
– доля очистителя В в конечном продукте,
x3
– доля очистителя С в конечном продукте.

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

70x1
+ 50x2
+ 10x3
→ min
(т.е.
минимизируем раздражающее воздействие
на кожу конечного продукта).

Ограничения:

90x1
+ 65x2
+ 45x3
≥ 60; (очищающие свойства)

30x1
+ 85x2
+ 70x3
≥ 60; (дезинфицирующие свойства)

x1
+ x2
+ x3
= 1 (сумма долей должна составлять единое
целое)

x1
≥ 0; x2
≥ 0; x3
≥ 0 (условия неотрицательности).

Решение
задачи с помощью MS Excel.

Заполним
таблицу, содержащую исходные данные.
Заполним диалоговое окно «Поиск
решения»
.

Щелкнув
по кнопке ОК, мы получаем на месте
исходной таблицы – таблицу с найденными
оптимальными значениями. В результате
в таблице получим значение целевой
функции – 31,4 ед. раздражающего
воздействия на кожу при x1=0,3;
x2=0,1
и x3=0,6
(т.е. очистители А, В, С нужно брать в
долях 30%, 10% и 60% соответственно).

Задача
2.

Фирме
требуется уголь с содержанием фосфора
не более 0,03% и с примесью пепла не более
3,25%. Доступны 3 сорта угля А, В, С по
следующим ценам (за тонну):

Сорт
угля

содержание
примеси фосфора

содержание
примеси пепла

цена

А

0,06

2,0

30

В

0,04

4,0

30

С

0,02

3,0

45

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Начало работы

В данном разделе мы рассмотрим, как можно решить производственную задачу в
программе Microsoft Excel версий 2007, 2010, 2013 или 2016. Если у вас более старая
версия программы Microsoft Excel, то перейдите в другой раздел.

Итак, запустим Microsoft Excel, и перейдем на вкладку «Данные». Справа должна располагаться
кнопка «Поиск решения», как на картинке:

Если же этой кнопки нет, то необходимо включить соответствующую надстройку. Для этого откроем
меню файл, и выберем пункт «Параметры»:

В открывшемся меню необходимо выбрать пункт «Надстройки»:

Затем в правой части, внизу, необходимо выбрать из выпадающего списка «Надстройки Excel», если
они еще не выбраны, и нажать кнопку «Перейти»:

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

Спасибо за ваши закладки и рекомендации

Пример решения ЗЛП в Excel 2010

Возьмем ту же задачу, которую мы решали в предыдущем разделе, и попытаемся решить с помощью компьютера:

Ресурс Изделие A Изделие B Изделие C Сколько ресурса на складах
R1 1 2 3 35
R2 2 3 2 45
R3 3 1 1 40
Прибыль 4 5 6  

Как мы помним из предыдущего раздела, наши ограничения и целевая функция выглядят
следующим образом

$$begin{array}{l}
left{ {begin{array}{*{20}{c}}
{{x_A} + 2{x_B} + 3{x_C} le 35}\
{2{x_A} + 3{x_B} + 2{x_C} le 45}\
{3{x_A} + {x_B} + {x_C} le 40}
end{array}} right.\
{x_A},{x_B},{x_C} ge 0\
F({x_A},{x_B},{x_C}) = 4{x_A} + 5{x_B} + 6{x_C} to max
end{array}$$

Мы будем заносить данные в следующие ячейки листа Excel:

Итак, начнем заполнение. В верхние три ячейки нужно занести ответ, то есть,
количество производимых изделий A, B и C. Так как ответ мы не знаем (а иначе
зачем бы мы задачу решали), то пока занесем туда три нуля:

Занесем левые и правые части ограничений в соответствующие ячейки. Например,
для первого ограничения ${x_A} + 2{x_B} + 3{x_C} le 35$ нам нужно занести в ячейку
A2 формулу «=A1+2*B1+3*C1», а в ячейку B2 — правую часть ограничения — 35. Точно
так же занесем и два других ограничения. Не стоит пугаться, что в ячейках A2-A4
пока будут нули — это естественно, так как пока наше «решение» состоит в том,
чтобы не производить ни одного изделия. Должно получиться следующее (красным
цветом выделено значение ячейки A4, то есть, третье ограничение $3{x_A} + {x_B} + {x_C} le 40$):

Точно так же, в ячейку A5 занесем формулу для целевой функции $F({x_A},{x_B},{x_C}) = 4{x_A} + 5{x_B} + 6{x_C}$ —
в Excel это будет формула «=4*A1+5*B1+6*C1». Точно так же, не обращаем внимания,
что результатом будет 0 — это естественно, ведь целевая функция представляет из
себя прибыль предприятия, а раз мы ничего не производим, то естественно, получаем
нулевую прибыль:

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

В поле «Оптимизировать целевую функцию» записываем A5, так как именно в ячейке A5
у нас записана целевая функция. На следующей строке выбираем «Максимум», так как нам
необходимо максимизировать целевую функцию, то есть, прибыль. В поле «Изменяя ячейки
переменных» записываем A1:C1, так как в ячейках A1, B1 и C1 у нас количество
производимых товаров, которые необходимо подобрать. В поле «Выберите метод решения»
выбираем «Поиск решения линейных задач симплекс-методом». Теперь необходимо задать
ограничения. Для этого нажимаем на кнопку «Добавить», и пишем (для первого ограничения)
следующее:

То есть, говорим, что значение ячейки A2 (первое ограничение) должно быть «меньше
или равно» значению ячейки B2 (правой части первого ограничения). Нажимаем OK, и
ограничение добавится в список. Таким же образом добавляем два других ограничения,
а также еще три ограничения — что наши переменные должны быть больше или равны
нулю. Должно получиться следующее:

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

Нажимаем OK, и видим решение в ячейках A1, B1, C1:

В ячейке A1 мы видим число 10 — число изделий A, которые необходимо произвести,
в ячейке A2 — число 5 — число изделий B, которые необходимо произвести, а в ячейке
A3 — число 5 — число изделий C, которые необходимо произвести. То есть, мы получили
решение (10;5;5) — такое же, как и в предыдущем разделе. Кроме того, в ячейке A5
мы видим максимальное значение целевой функции — тоже, такое же, как и в предыдущем
разделе. Задача решена верно.

Конечно, мы решили задачу совсем без оформления. Если вам нужно решить такую
задачу для сдачи в университет, то вы можете оформить ее, например, так:

Итоги

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

Далее: 2.1.4. Решение ЗЛП в Excel 2003, 2.1.5. Целочисленное решение ЗЛП

Полезное по теме

  • Примеры решений задач ЛП в Excel
  • Выполненные контрольные по линейному программированию
  • Заказать решение своих задач

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

Цель работы: изучение математической
модели задачи целочисленного программирования, освоение технологии решения
задач целочисленного программирования в табличном процессоре Excel.

Содержание
лабораторной работы

Дана
задача целочисленного линейного программирования. Требуется найти решение
задачи методом «ветвей и границ» с помощью встроенной функции «Поиск решения»
табличного процессора Excel.

Задача

Для
выполнения работ , ,  сельскохозяйственное предприятие может
приобрести тракторы марок  и , стоимость соответственно  и  ден. ед.
каждый. С использованием новой техники необходимо выполнить не менее  условных единиц работы , не менее  условных
единиц работы  и не менее  условных единиц работы . За рассматриваемый промежуток времени с
использованием трактора марки  можно выполнить  условных единиц работы ,  –
работы  или  –
работы ; с использованием трактора марки  –  условных
единиц работы ,  –
работы  или  –
работы . Требуется найти оптимальный вариант
приобретения тракторов, чтобы затраты на новую технику были минимальные.

Исходные данные

                                                  

                                             

                                          

Решение

Пусть
 – количество тракторов марки ,  –
марки , которые планируется приобрести,  – общие затраты на новую технику.

Математическая
модель задачи представлена следующим образом:

Решаем
задачу целочисленного линейного программирования через встроенную функцию
«Поиск решений» в табличном процессоре Excel с использованием условия
ограничения целое.

Для
решения ЗЛП в процессоре Excel необходимо:

  1. Создать форму для
    ввода условий задачи.
  2. Указать адреса
    ячеек, в которые будет помещён результат решения (изменяемые ячейки).
  3. Ввести исходные
    данные.
  4. Ввести
    зависимость для целевой функции.
  5. Ввести
    зависимости для ограничений.
  6. Указать
    назначение целевой функции (установить целевую ячейку).
  7. Ввести
    ограничения.
  8. Ввести параметры
    для решения ЗЛП.
  9. Ввести условие
    целочисленности
    переменных. Добавляя ограничение, следует выбрать
    опцию целое в раскрывшемся списке «Ограничение». Получим
    ограничение целочисленности.
  10. Нажать левой
    кнопкой мыши «Выполнить».

Занесём
данные задачи и формулы целевой функции и ограничений в ячейки:

Заполним
математическую модель:

Также
в параметрах решения поставим галочки «Линейная модель» и «Неотрицательные
значения».

Получено
следующее оптимальное решение:

Отчёт
по результатам:

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

В
ответе получились целые значения: , . Значение целевой функции находится в
ячейке E4: .

Таким
образом, оптимальным будет вариант, при котором приобретаются 4 трактора
марки  и 9 тракторов марки .

Затраты
на новую технику составят 86 ден. ед.

Решаем
задачу целочисленного линейного программирования через встроенную функцию
«Поиск решений» в табличном процессоре Excel без использования условия ограничения
«целое».

Получено
следующее оптимальное решение:

В
результате получили решение: , . Значение целевой функции находится в
ячейке E4: .

Как
видно, ответ получился не целочисленным (значения  и  не целые числа).

Для
получения целочисленного ответа воспользуемся методом ветвей и границ.

Так
как обе переменные принимают нецелые значения, то любая из них может быть
выбрана в качестве переменной, продолжающей процесс ветвления.

Выбор,
например, переменной , порождает две подзадачи,
связанные с условием  или  или .

Так
как , имеем две подзадачи 1.1 и 1.2
(обозначения вершин дерева ветвления):

            1.1                                                                1.2

                                 

                               

                                                         

Порождённые
подзадачи содержат все допустимые целочисленные решения исходной задачи,
т. е. исходное множество допустимых целочисленных решений остаётся
неизменным в процессе ветвления.

Добавим
ограничение  в подзадачу 1.1 и решим её с помощью
встроенной функции «Поиск решения» без условия целочисленности.

В
результате решения подзадачи 1.1 получили решение: , . Значение целевой функции находится в
ячейке E4: .

Добавим
ограничение  в подзадачу 1.2 и решим её с помощью
встроенной функции «Поиск решения» без условия целочисленности.

В
результате решения подзадачи 1.2 получили решение: , . Значение целевой функции находится в
ячейке E4: .

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

Проведём
ветвление вершины 1.1. Как видно, ответ получился не целочисленным (значения  не целое число). Выбор переменной  порождает две подзадачи: 2.1 и 2.2 с
дополнительными ограничениями соответственно, т. е.  или .

            2.1                                                                2.2

                                 

                               

,                                              ,   

Порождённые
подзадачи содержат все допустимые целочисленные решения исходной задачи,
т. е. исходное множество допустимых целочисленных решений остаётся
неизменным в процессе ветвления.

Добавим
ограничение  в задачу 2.1 и решим её с помощью
встроенной функции «Поиск решения» без условия целочисленности.

В
результате решения подзадачи 2.1 заметим, что первое ограничение не
выполняется, получено пустое множество допустимых решений.

Добавим
ограничение  в задачу 2.2 и решим её с помощью
встроенной функции «Поиск решения» без условия целочисленности.

В
результате решения подзадачи 2.2 получили решение: , . Значение целевой функции находится в
ячейке E4: .

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

Итак,
найдено оптимальное решение задачи: , .

К
нему привела цепочка задач: .

Таким
образом, оптимальным будет вариант, при котором приобретаются 4 трактора
марки  и 9 тракторов марки . Затраты на новую технику составят
86 ден. ед.

Сравнение
результатов решения с использованием ограничения «целое» и без его
использования даёт один и тот же результат, что позволяет сделать вывод о
правильности вычислений.

Изобразим
схематически ход решения задачи.

0.

Ответ:
, .

Значение
целевой функции: .

1.1

Ответ:
, .

Значение
целевой функции: .

1.2

Ответ:
, .

Значение
целевой функции: .

2.1

,   

Ответ:

пустое
множество допустимых решений.

2.2

,   

Ответ:

, .
Значение целевой функции: .


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

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

Целочисленное
программирование – раздел математического программирования, в котором на все
или некоторые переменные дополнительно накладывается ограничение
целочисленности.

  1. Какие методы
    решения задачи целочисленного линейного программирования Вы знаете?

Для
решения задач целочисленного программирования разработа­ны специальные методы.
К ним относятся метод отсечений (метод Го­мори) и метод «ветвей
и границ»
.

В
основе метода Гомори заложена идея, состоящая в том, что сна­чала решается
задача линейного программирования без уче­та условий целочисленности. Если
полученное таким образом реше­ние целочисленное, то оно принимается за
оптимальный план задачи. Если решение нецелочисленное, то система ограничений
дополняется условием, которое отсекает от множества планов задачи
нецелочисленный оптимальный план, но при этом сохраняет целочис­ленные вершины
множества планов. Затем решается задача линейного программирования с
дополнительным условием. Если полученное та­ким образом решение целочисленное,
то оно оптимально и для исходной задачи.

Если
же и после этого не для всех переменных выполняется условие целочисленности, то
вводится новое условие-отсечение. Усло­вия-отсечения выбираются таким образом,
чтобы за конечное число шагов прийти к целочисленному решению, если оно у
данной задачи существует. Один из алгоритмов построения таких условий-отсечений
был предложен Гомори.

  1. Каким образом
    формируются подзадачи в методе «ветвей и границ»?

Метод
«ветвей и границ» – это метод направленного перебора множества вариантов
решений задачи. В качестве верхней границы на множестве планов рассматривают
значение целевой функции без условий целочисленности. Пусть  – целочисленная переменная, значение  которой в оптимальном решении исходной
задачи является дробным. Рассмотрим интервал . Он
не содержит допустимых целочисленных компонент решения. Поэтому допустимое
целое значение  должно удовлетворять одному из
неравенств:  или . Два
последних неравенства разбивают область допустимых решений для переменной  на две подобласти. То есть исходная
задача разветвилась на две подзадачи, каждая из которых решается отдельно как
ЗЛП с целевой функцией исходной задачи.

  1. Каким условиям
    должны удовлетворять подзадачи в методе «ветвей и границ»?

Пусть
 – целочисленная переменная, значение  которой в оптимальном решении исходной
задачи является дробным. Рассмотрим интервал . Он
не содержит допустимых целочисленных компонент решения. Поэтому допустимое
целое значение  должно удовлетворять одному из
неравенств:  или .

  1. Что является первым оптимальным
    решением, организующим процесс ветвления?

Сначала
решается задача линейного программирования без учёта условий целочисленности.
Если полученное оптимальное решение оказывается допустимым для целочисленной
задачи, то его следует зафиксировать как наилучшее. Иначе задача разбивается на
две подзадачи.

  1. Сформулируйте
    математическую модель задачи целочисленного линейного программирования.

Математическая
модель задачи целочисленного линейного программирования имеет вид:

Здесь
Z – множество целых чисел. Если , то задачу называют полностью
целочисленной
, если , то частично
целочисленной
.

Библиографическое описание:


Селюкова, С. А. Целочисленное решение задач линейного программирования методом ветвей и границ с помощью Excel / С. А. Селюкова, Г. П. Селюкова. — Текст : непосредственный // Молодой ученый. — 2016. — № 12 (116). — С. 372-375. — URL: https://moluch.ru/archive/116/31884/ (дата обращения: 15.04.2023).



В большинстве экономико-математических моделей, сформулированных как задачи линейного программирования, часть или все компоненты вектора-решения должны выражаться в целых числах, т. е. быть целочисленными. К ним относятся, например, задачи, в которых переменные означают количество единиц неделимой продукции, число станков при закупке оборудования, количество домов при очередности строительства и т. д. [3, c. 180]

С другой стороны, это могут быть задачи, в которых при моделировании используются логические (булевы) переменные со значениями 1 и 0, что означает, например, взимать или не взимать арендную плату, создавать или не создавать дополнительный пункт производства и т. д. Покажем особенности фактора целочисленности на следующем примере, который в учебных целях генерируется на компьютере в виде индивидуальных заданий. Оптимальное решение в примере, в принципе, не может быть получено каким-либо округлением решения соответствующей задачи линейного программирования.

Для решения рассмотренного класса задач математического программирования, как правило, используется универсальный метод решения под названием «метод ветвей и границ». [2, с. 158]

Продемонстрируем основные идеи этого метода на примере решения задачи целочисленного линейного программирования (ЦЛП).

Эти задачи включают в себя требования целочисленности ко всем искомым переменным. Они относятся к классу задач полностью целочисленного линейного программирования (задача ЦЛП). В свою очередь, эти задачи являются частным случаем задачи частично целочисленного линейного программирования (ЧЦЛП). [2, с. 160]

При решении задач частично-целочисленного линейного программирования методом ветвей и границ на определенных этапах решаются вспомогательные задачи линейного программирования (ЛП), для которых применяется симплекс-метод.

Рассмотрим развернутую экономико-математическую модель задачи.

Система переменных: x1, x2

Система ограничений: 2x1 + x2 ≤ 9

5x1 + 4x2 ≤ 29

Целевая функция: F = 27x1 + 21x2 → max

Решение задачи осуществляется симплексным методом [1, с. 176] с помощью сервисной функции MS Excel «Поиск решения».

Описание шагов алгоритма «метода ветвей и границ»

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

Вспомогательная задача № 1 получается из данной задачи целочисленного линейного программирования путём игнорирования требования целочисленности. Решим задачу симплексным методом с помощью Excel. В результате получим: х1=2,3, х2=4,3, Fmax=154 (схема 1).

2.Очередное ветвление вспомогательной задачи на две вспомогательные подзадачи нижнего уровня.

Так как вышеполученное решение нецелочисленное, то оно дает верхнюю границу F = 154 для максимума целевой функции искомого оптимального решения исходной задачи.

В этом случае одна из переменных, имеющих дробное значение, в данном случае x1, берется за основу для разбиения (ветвления) данной вспомогательной задачи № 1 на вспомогательные подзадачи под номерами 1.1 и 1.2 по нижеприведенной методике:

Так как 2 < x1=2,3 < 3, то:

задача 1.1. → задача 1.2.

2×1 + x2 ≤ 9 → 2×1 + x2 ≤ 9

5×1 + 4×2 ≤ 29 → 5×1 + 4×2 ≤ 29

х1<=2 → х>=3

х1>=0, х2>=0х1>=0, х2>=0

F = 27×1+21×2 → max → F = 27×1+21×2 → max

При решении подзадачи 1.1. в Excel добавим ограничение х1<=2

В результате получим:

х1=2, х2=4,75 Fмах=153,75.

153,75 — уточненная верхняя граница

При решении подзадачи 1.2. в Excel добавим ограничение х2>=3

В результате получим:

х1=3, х2=3, Fмах=144

Таким образом, получим первый целочисленный рекорд.

  1. Проверка оптимальности текущего целочисленного рекорда после очередного ветвления на основе формулировки критерия оптимальности текущего целочисленного рекорда по методу ветвей и границ:Текущий целочисленный рекорд объявляется оптимальным решением исходной задачи в том и только том случае, если при данном состоянии дерева решений на концах других ветвей не существует верхних границ, превосходящих значение рекорда.

В данном случае критерий не выполняется, так как 153,75 больше 144.

  1. Ветвление следует продолжить по подзадаче № 1.1, которая дает наибольшую на данный момент верхнюю границу из подзадач, находящихся на концах ветвей. В качестве основы для ветвления выбирается дробное значение переменной х2 = 4,75.

Так как 4 < x1=4,75 < 5 то

задача 1.1.1. → задача 1.1.2.

2×1+x2≤9 → 2×1+x2≤9

5×1+4×2≤29 → 5×1+4×2≤29

х2<=4 → х2>=5

х1<=2 → х1<=2

х1>=0, х2>=0х1>=0, х2>=0

F=27×1+21×2 → max → F=27×1+21×2 → max

При решении подзадачи 1.1.1. в Excel добавим ограничение х2<=4

В результате получим:

х1=2, х2=4, Fмах=138

При решении подзадачи 1.1.2. в Excel добавим ограничение х2>=5

В результате получим:

х1=1,8, х2=5, Fмах=153,6

153,6 — уточненная верхняя граница.

  1. Проверка оптимальности текущего целочисленного рекорда после очередного ветвленияпоказывает, что критерий вновь не выполняется, так как 153,6 больше 138.
  2. Продолжаем ветвление по подзадаче 1. Рассмотрим подзадачу 1.3.В качестве основы для ветвления выбирается дробное значение переменной х2 =4,3.

Так как 3 < x2=4,3 < 4 то

задача 1.3. → задача 1.4.

2×1+x2≤9 → 2×1+x2≤9

5×1+4×2≤29 → 5×1+4×2≤29

х2<=4 → х2>=5

х1>=0, х2>=0х1>=0, х2>=0

F=27×1+21×2 → max → F=27×1+21×2→ max

При решении подзадачи 1.3. в Excel добавим ограничение х2<=4

В результате получим:

х1=2,5, х2=4, Fмах=151,5

При решении подзадачи 1.4. в Excel добавим ограничение х2>=5

В результате получим:

х1=1,8, х2=5, Fмах=153,6

  1. Продолжим ветвление по подзадаче 1.4.

В качестве основы для ветвления выбирается дробное значение переменной х1 = 1,8.

Так как 1 < x1=1,8 < 2, то задача 1.4.1. → задача 1.4.2.

2×1+x2≤9 → 2×1+x2≤9

5×1+4×2≤29 → 5×1+4×2≤29

х2>=5 х2>=2

х1<=1 х1<=2

х1>=0, х2>=0 → х1>=0, х2>=0

F=27×1+21×2 →max → F=27×1+21×2 → max

При решении подзадачи 1.4.2. — поиск не может найти подходящего решения.

При решении подзадачи 1.4.1. в Excel добавим ограничение х2<=1.

В результате получим: х1=1, х2=6, Fмах=153

Таким образом, значение 153 является новым текущим целочисленным рекордом, отменяющим прежний рекорд 144.

Оптимальным решением этой задачи будет Fмах=153, при х1=1, х2=6.

Следует отметить, что никаким округлением решения вспомогательной задачи № 1 (х1=2,3, х2=4,3) в принципе невозможно получить оптимальное решение х1=1, х2=6.

Рис. 1. Алгоритм «метода ветвей и границ» Дерево решений

Литература:

  1. Гармаш А. Н., Орлова И. В. Математические методы в управлении: Учебное пособие. — М.: Вузовский учебник: ИНФРА-М, 2014. — 272 — c.
  2. Математическое моделирование экономических процессов в сельском хозяйстве / Гатаулин А. М., Гаврилов Г. В., Сорокина Т. М. и др.; Под ред. А. М. Гатаулина. — СПБ.: ООО «ИТК ГРАНИТ», 2009. — 432 с.
  3. Савиных В. Н. Математическое моделирование производственного и финансового менеджмента [Текст]: учеб. пособие / В. Н. Савиных. — Новосибирск: СГГА, 2007. — 219 с.
  4. Алексеев Г. В. Численное экономико-математическое моделирование и оптимизация [Электронный ресурс]: учебное пособие / Алексеев Г. В., Холявин И. И.— С.: Вузовское образование, 2013. 195— c. — Режим доступа: http://www.iprbookshop.ru/16905. — ЭБС «IPRbooks».

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

Понравилась статья? Поделить с друзьями:
  • Где задается критерий по которому подводятся итоги excel
  • Где есть рамки для word
  • Где в рабочем окне microsoft excel можно сразу увидеть сумму выделенных ячеек
  • Где есть поиск решения в excel
  • Где в программе microsoft word