[an error occurred while processing this directive] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Часть I. Компьютерный практикум |
Часть I. Компьютерный практикумПакет Excel содержит программу (надстройку) Поиск решения, позволяющую реализовывать модели линейной, нелинейной и дискретной оптимизации. Если в меню Сервис отсутствует команда Поиск решения необходимо выполнить следующие действия:
После этого в меню Сервис появится новая команда Поиск решения. 1. Задача линейного программирования (ЗЛП), компьютерная реализация стандартными офисными средствами (в среде пакета Excel)Оптимизационные (экстремальные) модели в экономике возникают при практической реализации принципа оптимальности в управлении [12]. Выбор оптимального управленческого поведения в конкретной производственной ситуации связан с проведением экономико-математического моделирования и решением задачи оптимального программирования, в простейшем случае - задачи линейного программирования. В наиболее общем виде задача (модель) линейного программирования записывается следующим образом: требуется найти максимум (или минимум) линейной целевой функции f(x1, x2, …, xn) = c1x1 + c2x2 + … + cnxn при ограничениях a11x1 + a12x2 + … + a1nxn {≤, =, ≥} b1 a21x2 + a22x2 + … + a2nxn {≤, =, ≥} b2 … am1x1 + am2x2 + … + amnxn {≤, =, ≥} bm xj ≥ 0, j = 1, 2, …, n, где aij, bi, cj (i = 1, 2, ..., m, j = 1, 2, ..., n) - заданные постоянные величины. Иногда невозможно получить решение по оптимизационной модели: область допустимых решений может оказаться пустым множеством (система ограничений задачи противоречива) или целевая функция является неограниченной на области определения. Первый случай связан с некорректностями в постановке экономической задачи и (или) разработанной ЭММ. Например, имеющимся объемом ресурсов заведомо невозможно выполнить даже те минимальные объемы работ, которые закладываются в ограничения как необходимые минимальные плановые задания. Если в данной ситуации все же необходимо найти решение задачи, то следует построить непустое множество допустимых решений, исключив одно или несколько ограничений, т.е. фактически соблюсти принцип альтернативности. Второй случай обычно означает, что ЭММ разработана некорректно, и некоторые существенные ограничения в ней отсутствуют. 1.1. Технология компьютерной реализации ЗЛППервым шагом при работе с командой (программой, надстройкой) Сервис/Поиск решения является создание специального (рабочего) листа, т.е. специальная запись ЭММ в терминах электронной таблицы (ЭТ) Excel [8,10,18]. Для этого необходимо создать в рабочем листе Excel целевую ячейку, в которой записывается целевая функция модели, а также одну или несколько изменяемых (переменных) ячеек, которые, как правило, отвечают управляющим переменным в модели и значения которых могут изменяться для достижения экстремума (максимума или минимума) целевой функции. Для успешного поиска решения необходимо, чтобы каждая из переменных ячеек влияла на целевую ячейку (другими словами, формула в целевой ячейке должна опираться в вычислениях на значения переменных ячеек). В противном случае при выполнении команды Поиск решения появляется сообщение об ошибке Результаты целевой ячейки не сходятся. Ограничения модели определяются с помощью значений соответствующих ячеек, которые должны находиться в определенных пределах или удовлетворять граничным условиям. Ограничения могут налагаться как на целевую, так и на переменные ячейки (по два ограничения для каждой изменяемой ячейки с указанием верхнего и нижнего пределов, а также до ста дополнительных). Таким образом, на специальном листе должны содержаться ячейки, в которых вычисляются ограничиваемые величины. Тип каждого из ограничений модели (≤, =, ≥) задается (вводится) в специальном окне диалога при выполнении команды Поиск решения. Численные значения самих ограничений включать в специализированный лист необязательно - они также вводятся в специальном окне диалога при выполнении команды Поиск решения. В режиме Параметры окна диалога Поиск решения задается тип модели (линейная или нелинейная). После команды Выполнить диалогового окна Поиск решения осуществляется поиск оптимального решения - в итоге появляется диалоговое окно Результаты поиска решения. В режиме Справки этого диалогового окна содержатся сведения об итоговых сообщениях процедуры поиска решения. Например, в случае несовместности системы ограничений Excel будет выдавать сообщение Поиск не может найти подходящего решения. Если же решение задачи отсутствует вследствие неограниченности целевой функции на множестве допустимых решений, то Excel будет выдавать сообщение Значения целевой ячейки не сходятся. При успешном завершении решения задачи появляется диалоговое окно Результат поиска решения. Решение найдено. С помощью рубрики Результаты этого диалогового окна можно получить отчет по результатам решения, рубрики Устойчивость и Пределы позволяют провести дополнительный экономико-математический анализ оптимального плана и получить отчеты по устойчивости и по пределам. 1.2. Примеры задач линейного программированияЗадача линейного программирования в том или ином виде интерпретируется как задача об оптимальном использовании ограниченных производственных ресурсов. Приведем два варианта возможных постановок этой экономической задачи. В первом примере приводится подробное описание технологии получения оптимального решения средствами Excel, во втором примере раскрываются лишь основные технологические этапы. Пример 1. Задача об оптимальном использовании ограниченных ресурсов. Фабрика имеет в своем распоряжении определенное количество производственных ресурсов: трудовые, денежные средства, сырье, оборудование, производственные площади и т.п. Допустим, например, ресурсы трех видов - трудовые, сырье и оборудование имеются в количестве соответственно 80 чел./дней, 480 кг, 130 станко/часов. Фабрика может выпускать ковры четырех видов. Информация о количестве единиц каждого ресурса, необходимых для производства одного ковра каждого вида (о нормах расхода производственных ресурсов), и доходах, получаемых предприятием от реализации единицы каждого вида товаров, приведена в следующей таблице. Таблица
Требуется составить такой план выпуска продукции, при котором будет получен максимальный доход от реализации продукции (сбыт всей выпущенной продукции обеспечен). Экономико-математическая модель Обозначим через X1, X2, X3, X4 объемы производства соответствующего вида продукции (количество ковров каждого типа). Целевая функция - это математическая запись критерия оптимальности, т.е. выражение, которое необходимо максимизировать f(x) = 3X1 + 4X2 + 3X3 + X4. Ограничения по ресурсам: 7X1 + 2X2 + 2X3 + 6X4 ≤ 80 5X1 + 8X2 + 4X3 + 3X4 ≤ 480 2X1 + 4X2 + X3 + 8X4 ≤ 130 X1, X2, X3, X4 ≥ 0 Решение. Приведем подробное описание технологии получения решения приведенной ЗЛП. Обозначим: M1 - один щелчок левой кнопки мыши; М2 - двойной щелчок левой кнопки мыши. Прежде чем приступить к решению задачи студенту необходимо на сервере создать папку под своим именем. Порядок работы:
Далее необходимо последовательно выполнить следующую работу.
Рис. 1.1
Рис. 1.2
Порядок сохранения таблицы следующий. В строке Меню указатель мыши на имя Файл → M1. В развернутом меню команда Сохранить как → M1. Появляется диалоговое окно Сохранение документа. Путем перебора папок в строке Папка должна быть установлена папка с фамилией студента. Далее курсор переведите в строку Имя файла и присвойте ему имя. Далее нажать кнопку Сохранить.
Рис. 1.3
Рис. 1.4
Примечание: Адреса ячеек во все диалоговые окна удобно вводить не с клавиатуры, а протаскивая мышь по ячейкам, чьи адреса следует ввести.
Рис. 1.5
Примечание. Содержимое ячеек F7-F9 необходимо проверить. Они обязательно должны содержать информацию, как это показано для примера на рис. 1.5 (в качестве примера представлено содержимое ячейки F7). В строке Меню указатель мыши на имя Сервис → M1. В развернутом меню команда Поиск решения → M1. Появляется диалоговое окно Поиск решения (рис. 1.6).
Рис. 1.6
Рис. 1.7 На экране появится диалоговое окно Поиск решения с введенными условиями (рис. 1.8).
Рис. 1.8
Рис. 1.9
Через непродолжительное время появится диалоговое окно Результаты поиска решения и исходная таблица с заполненными ячейками В3:Е3 для значений Xi и ячейка F4 с максимальным значением целевой функции (рис. 1.10).
Рис. 1.10 Полученное решение означает, что максимальный доход 150 тыс. руб. фабрика может получить при выпуске и реализации 30 ковров второго вида и 10 ковров третьего вида. При этом трудовые ресурсы и фонд рабочего времени оборудования будут использованы полностью, а из 480 кг пряжи (ресурс «сырье») будет использовано 280 кг. Пример 2. Задача об оптимальном использовании ограниченных ресурсов. На участок строящейся дороги необходимо вывезти 20000 м3 каменных материалов. В районе строительства имеются три карьера с запасами 8000 м3, 9000 м3 и 10000 м3. Для погрузки материалов используются экскаваторы, имеющие производительность 250 м3/смену в карьерах А, Б и 500 м3/смену в карьере В. Эти карьеры обеспечивают каменными материалами также ряд других строящихся объектов. На погрузку материалов для рассматриваемого участка выделен для экскаваторов общий лимит 60 машино-смен с правом использовать его по усмотрению строителей. Транспортные затраты на перевозку материалов характеризуются следующими показателями: на перевозку 1000 м3 материалов из карьера А требуется 100 автомобиле-смен, из карьера Б - 135 автомобиле-смен, из карьера В - 170 автомобиле-смен. Требуется составить оптимальный план перевозок, обеспечивающий минимальные транспортные затраты. Экономико-математическая модель Для удобства записи модели примем за единицу измерения количества материалов 10000 м3. Обозначим через х1 объем добычи материалов в карьере А, х2 - в карьере Б, х3 — в карьере В. С учетом сказанного математически задача может быть записана следующим образом: min f(x1, x2, x3) = 1000x1 + 1350х2 + 1700х3 при ограничениях: x1 + x2 + x3 = 2,0 40х1 + 40х2 + 20x3 ≤ 60 0 ≤ x1 ≤ 0,8 0 ≤ х2 ≤ 0,9 0 ≤ х3 ≤ 1,0. Решение. Приведенная ЭММ является моделью задачи линейного программирования (ЗЛП). Она может быть реализована симплекс-методом. Получим решение средствами пакета Excel. Ниже на рис. 1.11 приведена одна из возможных форм специального листа (рабочей таблицы) для рассматриваемой модели.
Рис. 1.11
Рис. 1.12. Диалоговое окно Поиск решения На рабочем листе не показаны промежуточные формулы для ячеек F5:F7, G5:G7, H5:H7, которые являются произведением изменяемых ячеек для X и соответствующих ячеек для коэффициентов ЦФ и функциональных ограничений. После команды Сервис/Поиск решения необходимо оформить диалоговое окно как это показано на рис. 1.12. После нажатия клавиши Выполнить в диалоговом окне Поиск решения осуществляется реализация модели. Ниже в таблице приведены результаты решения задачи. ЗАДАЧА ОБ ОПТИМАЛЬНОМ ИСПОЛЬЗОВАНИИ ОГРАНИЧЕННЫХ РЕСУРСОВ
То есть оптимальные значения переменных х1 = 0,8; х2 = 0,2; x3 = 1,0. Таким образом, из карьера А следует вывезти 8000 м3, из карьера Б - 2000 м3, из карьера В - 10000 м3 каменных материалов. При этом транспортные затраты будут минимальны и равны 2770 автомобиле-смен. 1.3. Специальные задачи линейного программирования, примеры компьютерной реализацииНиже приводятся примеры специальных ЗЛП - транспортной задачи и задачи о назначениях, которая интерпретируется как частный случай транспортной задачи (в разделе 2.2 задача о назначениях рассматривается как пример задачи дискретной оптимизации). Пример. Перед менеджером нефтяной компании «Магнум» стоит задача создания схемы поставки нефтепродуктов от четырех нефтеперерабатывающих комплексов компании к пяти регионам страны. Одним из основных условий поставленной задачи является минимизация стоимости перевозок, при этом все мощности нефтеперерабатывающих комплексов должны быть реализованы и все потребности регионов должны быть удовлетворены. Мощности поставщиков и мощности потребителей, а также стоимость перевозок нефтепродуктов представлены в следующей таблице (в условных единицах).
Экономико-математическая модель В данном случае мощности поставщиков нефтепродуктов и потребности регионов в них совпадают, т.е. имеем дело с закрытой моделью транспортной задачи (см., например, [12]). Решение. Ввод условий задачи состоит из следующих основных этапов.
Рассмотрим более подробно каждый из этих этапов.
Для этого необходимо выполнить резервирование изменяемых ячеек: в блок ячеек B3:F6 вводится «1». Таким образом, резервируется место, где после решения задачи будет находиться распределение поставок, обеспечивающее минимальные затраты на перевозку груза (нефтепродуктов).
Введение условия реализации мощностей поставщиков, т.е.
где ai - мощность i-го поставщика; xij — объем поставки груза от i-го поставщика к j-му потребителю; n — количество потребителей. Для этого необходимо выполнить следующие операции:
Аналогичные действия выполнить для ячеек А4, А5, А6, т.е. ввести условия реализации мощностей всех поставщиков (для всех строк). Эти действия можно реализовать иначе:
Введение условия удовлетворения запросов потребителей, т.е.
где b – мощность j-го потребителя; m - количество поставщиков. Для этого необходимо выполнить следующие операции:
Последовательность этих действий выполнить для ячеек C7-F7, или же:
Таким образом, введены ограничения для всех поставщиков и всех потребителей.
В конкретном примере осуществляется ввод мощностей четырех нефтеперерабатывающих предприятий (ячейки А11:А14), потребности регионов в их продукции (B10:F10), а также удельные затраты по доставке нефтепродуктов от конкретного поставщика потребителю (блок B11:F14) (рис. 1.13).
Рис. 1.13. Ввод исходных данных и граничных условий
Для вычисления значения целевой функции, соответствующей минимальным суммарным затратам на доставку груза, необходимо зарезервировать ячейку и ввести формулу для ее вычисления:
где Сij — стоимость доставки единицы груза от i-го поставщика к j-му потребителю; xij — объем поставки груза от i-го поставщика к j-му потребителю. Для этого:
В задаче целевая функция представляет собой произведение удельных затрат на доставку груза (расположенных в блоке ячеек B11:F14) и объемов поставок для каждого потребителя (содержимое ячеек B3:F6). Для этого:
Рис. 1.14. Назначение целевой функции
В поле ячейки В15 появится некоторое числовое значение, равное произведению единичных поставок на удельные коэффициенты затрат по доставке грузов (число 77 в данной задаче, рис. 1.14).
Для осуществления этого этапа необходимо выполнить следующий перечень операций:
Ввести ограничение задачи. В матрицу перевозок, содержащую исходные данные по задаче, необходимо ввести условие реализации мощностей всех поставщиков. Для этого:
Далее вводится ограничение, которое реализует условие удовлетворения мощностей всех потребителей. Для этого:
Рис. 1.15. Ввод зависимостей из математической модели
Далее необходимо установить ограничения на решение задачи. Для этого:
Рис. 1.16. Установление параметров задачи
После выполнения всех вышеуказанных действий на экран выводится окно Результаты поиска решения (рис. 1.17).
Рис. 1.17. Решение найдено
При нажатии Лист 1 происходит возврат в программу к исходным данным. В матрице перевозок содержатся оптимальные объемы поставок грузов от поставщика потребителям, дающие минимум затрат на доставку. Значение целевой функции содержится в ячейке В15 и для конкретной задачи равно 7800 (рис. 1.18).
Рис. 1.18. Задача решена Из вышеизложенного можно сделать следующий вывод: минимум затрат на доставку нефтепродуктов, равный 7800 условных денежных единиц, будет обеспечен при следующем плане поставок:
При данной схеме поставок мощности всех поставщиков будут реализованы и спросы всех потребителей будут удовлетворены. Рассмотрим задачу о назначениях, которая в этом случае интерпретируется и реализуется как частный случай транспортной задачи. Пример. На коммерческом предприятии имеется m работников A1, А2, ..., Ai, ..., Аm, каждый из которых может выполнять одну из имеющихся m видов работ: В1, В2, ..., Вj, ..., Вm. Известно, что один и тот же работник может выполнять разливные виды работ с разной производительностью труда (Сij) в зависимости от опыта работы, квалификации, индивидуальных особенностей. В связи с этим возникает проблема распределения работников по должностям таким образом, чтобы производительность труда в коллективе была максимальной. Экономико-математическая модель. Обозначим через xij назначение i-го работника на j-должность. Так как количество работников равно количеству должностей и один работник может занимать только одну должность, то xij может принимать только два значения: 1 (если работник назначается на данную должность) или 0 (если не назначается). Тогда суммарная производительность труда работников (целевая функция) имеет следующий вид:
при ограничениях
xij ≥ 0, i = 1, …, m; j = 1, …, m, Умножая целевую функцию на -1, задача распределения по должностям может быть приведена к транспортной задаче, в которой объем запасов каждого поставщика и объем потребностей каждого потребителя равны 1. Числовой пример. Перед менеджером фирмы «Стар» стоит задача распределения четырех работников по вакантным должностям по условиям результатов контрольных испытаний. Производительность труда по отдельным видам работ, показанная каждым из работников, приведена в таблице. Одним из основных условий поставленной задачи является максимизация производительности труда в коллективе при условии, что каждый работник может быть назначен только на одну работу.
Решение. Ввод условий задачи состоит из следующих основных этапов:
Рассмотрим более подробно каждый из этих этапов.
Для этого необходимо выполнить резервирование изменяемых ячеек: в блок ячеек В3:Е6 вводятся «1». Таким образом, резервируется место, где после решения задачи будет находиться распределение рабочих по должностям, обеспечивающее максимальную производительность труда.
Введение условия назначения работника только на одну должность, т.е.
где хij — назначение i-го работника на j-ую должность; m — количество вакантных должностей. Для этого необходимо выполнить следующие операции:
Аналогичные действия выполнить для ячеек А4, А5, А6, т.е. ввести условия реализации мощностей всех поставщиков (для всех строк). Эти действия можно реализовать иначе:
Введение условия заполнения вакантной должности, т.е.
Для этого необходимо выполнить следующие операции:
Последовательность этих действий выполнить для ячеек C7:F7, или же:
Таким образом, введены ограничения по назначению работника только на одну должность и условию заполнения всех вакантных мест.
В конкретном примере осуществляется ввод условной мощности работника фирмы (в ячейки А11:А14 вводится «1»), потребности в заполнении вакантной должности («1» - в В10:Е10), ввод производительности труда конкретного работника при проведении контрольных испытаний по каждой должности (блок В11:Е14) (рис. 1.19).
Рис. 1.19. Ввод исходных данных
Для вычисления значения целевой функции, соответствующей максимальной суммарной производительности труда, необходимо зарезервировать ячейку и ввести формулу для ее вычисления:
где Сij — производительность труда i-го работника при занятии j-й должности; xij - назначение i-го работника на j-должность. Для этого:
В задаче целевая функция представляет собой произведение производительности труда работников (расположенных в блоке ячеек В11:В14) и назначения работников на должности (содержимое ячеек В3:Е6). Для этого:
В поле ячейки В16 появится некоторое числовое значение, равное произведению «1» на производительность каждого работника на конкретной должности (число 67 в данной задаче) (рис. 1.20).
Рис. 1.20. Назначение целевой функции
Для осуществления этого этапа необходимо выполнить следующий перечень операций:
Далее вводится ограничение, которое реализует условие заполнения вакантной должности. Для этого:
Рис. 1.21. Ввод зависимостей из математической модели
Далее необходимо установить ограничения на решение задачи. Для этого:
После выполнения всех вышеуказанных действий на экран выводится окно Результаты поиска решения.
При нажатии Лист 1 происходит возврат в программу к исходным данным. В Матрице назначений содержится схема распределения работников по должностям (1 - назначен, 0 - не назначен), дающая максимальную суммарную производительность труда. Значение целевой функции содержится в ячейке В16 и для конкретной задачи равно 22 (рис. 1.22).
Рис. 1.22. Задача решена Вывод: максимум производительности труда, равный 22 условных единицы, будет достигнут при назначении:
2. Модели нелинейной и дискретной оптимизации, компьютерная реализация стандартными офисными средствами (в среде пакета Excel)Рассмотрим некоторые примеры нелинейных и дискретных типовых оптимизационных экономических задач, их экономико-математические модели и методы компьютерной реализации в среде пакета Excel. 2.1. Особенности компьютерной реализацииЗадача (модель) нелинейного программирования (НЛП) формулируется так же, как и общая задача оптимального программирования со следующими требованиями к целевой функции (ЦФ) и допустимой области: ЦФ f(х1, х2, ..., хn) и (или) одна из функций gi (x1, х2, ..., хn) являются нелинейными: min(max) f(x1, x2, …, xn)
У произвольной задачи НЛП некоторые или все свойства, характерные для задач ЛП, отсутствуют [12]. Вследствие этого задачи НЛП несравнимо сложнее задач ЛП, и для них не существует общего универсального метода их решения (аналогично симплексному методу). Есть целый ряд методов решения задач НЛП, некоторые из них рассмотрены в [12]. В пакете Excel реализован [8] метод множителей Лагранжа, идея которого заключается в преобразовании задачи условной оптимизации в задачу безусловной оптимизации, решение которой производится методами поиска - градиентными методами (методы первого порядка) или методами Ньютона (методы второго порядка). Наиболее распространенными являются градиентные методы. Следует, на наш взгляд, согласиться с Б.Курицким [8], что для практического решения задачи оптимизации суть этих методов знать не обязательно. Однако необходимо помнить, что существующие методы дают возможность находить только локальные оптимумы (помимо случаев, когда задачи обладают соответствующими свойствами выпуклости и вогнутости [7,12]). Если же есть подозрение, что в допустимой области ЦФ может иметь несколько оптимумов, то эту область следует разбить на ряд областей и в каждой из них определить свои локальные оптимумы, а затем из всех локальных оптимумов выбрать глобальный. В таком практическом подходе задача поиска глобального оптимума сводится к решению ряда задач, в которых ищется свой (локальный) оптимум. Следует отметить, что в подавляющем большинстве практических задач оптимизации существует только один оптимум [8]. Решение задачи НЛП (реализация модели нелинейной оптимизации) средствами Excel отличается от решения ЗЛП следующим:
В Excel признаком достижения оптимума является величина относительного приращения ЦФ на каждой итерации . Оптимум считается достигнутым, если выполняется условие Δfk ≤ Δfзад, где Δfзад - точность, назначаемая при решении задачи (Параметры). Примером задачи НЛП является модель оптимального формирования портфеля ценных бумаг (модель Марковица минимального риска). В этой модели приняты следующие обозначения [17]: xj, - доля капитала, потраченная на покупку ценных бумагу j-го вида (весь выделенный капитал принимается за 1); mj — средняя ожидаемая доходность j-й ценной бумаги, (mj называют эффективностью j-й ценной бумаги); νj - дисперсия случайной доходности j-й ценной бумаги, ( называют риском j-й ценной бумаги). В предположении о некоррелированности ценных бумаг (их независимости) модель Марковица имеет вид: Найти xj, , минимизирующие риск портфеля ценных бумаг (2.1) при условии, что обеспечивается заданное значение эффективности портфеля mp, т.е. (2.2) и условии, что весь выделенный для инвестиций капитал в целях моделирования принимается за 1, т.е. (2.3) (2.4) В модели (2.1)-(2.4) нелинейной является ЦФ. Задачи оптимизации, в результате решения которых искомые значения переменных должны быть целыми числами, называются задачами (моделями) целочисленного (дискретного) программирования: min(max) f(x1, x2, …, xn)
xj - целые неотрицательные Если множество индексов = {1, 2, ..., n}, то задачу называют полностью целочисленной, если , то - частично целочисленной. Существуют различные методы решения задач дискретного программирования (дискретной оптимизации). Наиболее часто используемым методом является метод ветвей и границ. Именно этот метод реализован в программе Поиск решения пакета Excel. Дискретная оптимизация средствами Excel проводится аналогично решению соответствующих непрерывных задач. Основное отличие заключается во вводе при оформлении диалогового окна Поиск решения требования целочисленности соответствующих переменных (при этом в режиме Параметры устанавливается тип задачи - линейная или нелинейная). Исходя из требования целочисленности в случае дискретной оптимизации возможен вызов только одного Отчета по результатам. Достаточно часто при моделировании экономических процессов используется особый случай дискретности задачи - булевость переменных, т.е. переменные могут принимать значения 0 или 1. Характерным примером этого случая является задача о назначениях (приводится в качестве примера задачи дискретной оптимизации и для иллюстрации механизма учета в Excel булевости переменных). Пример 1. Имеется n видов работ и n исполнителей этих работ. Известны экономические оценки эффекта Сij, , от назначения i-го исполнителя на j-й вид работ. Распределите исполнителей по видам работ так, чтобы суммарный эффект от назначений был максимальным. Экономико-математическая модель Введем необходимые обозначения, пусть
Тогда математически задачу о назначениях можно записать в виде:
(на каждую работу должен быть назначен исполнитель) (все исполнители должны получить назначение) (*) Для реализации этой ЭММ средствами Excel ограничение (*) в рабочей таблице Excel следует записать в виде:
Этот прием используется во всех дискретных задачах с булевыми переменными. Отметим некоторые особые случаи приведенной задачи. 1. Если по той или иной причине некоторое назначение является недопустимым, то соответствующий элемент матрицы (Сij)n×n принимается равным (-М), т.е. его значение заведомо меньше любого другого значения. После этого в ходе решения мы сможем избежать данного назначения автоматически. 2. Если матрица (Сij)n×n не является квадратной, то по аналогии открытой транспортной задачи в модели задачи о назначениях следует записать либо ограничение (число исполнителей m больше числа работ n), или (число исполнителей m меньше числа работ n). Рассмотрим некоторые типовые задачи (модели) нелинейной и дискретной оптимизации. 2.2. Примеры задач нелинейной и дискретной оптимизацииВ примере 1 приводится подробное описание технологии получения оптимального решения задачи дискретной оптимизации средствами Excel, в остальных примерах раскрываются лишь основные технологические этапы. Пример 2. Задача производства неделимой продукции (оптимизация производственной программы мебельного предприятия). Мебельное предприятие выпускает три вида наборов мебели, книжные полки и тумбу под телевизоры. Характеристики каждого вида продукции приведены в таблице 2.1. При условии получения максимальной прибыли объем товарной продукции должен составить не менее 459,31 тыс. руб. Ситуация со сбытом продукции сложилась следующая. Книжными полками рынок насыщен, поэтому торговые организации уменьшили объем договоров до 10 тыс. шт. Тумбы для телевизоров могут быть реализованы в объемах от 4 до 7 тыс. шт., наборы мебели 2 - от 7 до 10 тыс. шт. Спрос на наборы мебели 1 и 3 неограничен и требуется не менее 10 тыс. шт. Предприятие имеет технологическое оборудование, число единиц которого и нормы затрат времени оборудования каждой группы на изготовление единицы каждого вида продукции приведены в табл. 2.2. Предприятие работает в две смены с эффективным временем работы каждой машины в 3945 ч. (коэффициент сменности 1,9). Оптимизируйте производственную программу предприятия (составьте план выпуска продукции, максимизирующий прибыль предприятия). Таблица 2.1
Таблица 2.2
Экономико-математическая модель. Обозначим через X1, Х2, Х3, Х4, Х5 объем продукции каждого типа (шт.). Каждая машина работает в две смены с эффективным временем работы 3945 ч. Определим фонд времени работы оборудования каждого типа:
Целевая функция — математическая запись критерия оптимальности "максимум прибыли от реализации", т.е. необходимо максимизировать f() = 2,4X1 + 4,5Х2 + 8,9X3 + 0,06X4 + 0,45X5. Ограничение по объему товарной продукции: 7,2X1 + 14,3X2 +26,9X3 + 0,243X4 + 1,5X5 ≥ 459,31 тыс. руб. Ограничения по фонду времени работы оборудования: 0,068X1 + 0,096X2 + 0,207X3 + 0,018X4 + 0,042X5 ≤ 7890 0,045X1 + 0,080X2 + 0,158X3 + 0,011X4 + 0,035X5 ≤ 7890 0,132X1 + 0,184X2 + 0,428X3 + 0,020X4 + 0,060X5 ≤ 3945 0,057X1 + 0,082X2 + 0,230X3 + 0,010X4 + 0,028X5 ≤ 7890 0,063X1 + 0,090X2 + 0,217X3 + 0,010X4 + 0,033X5 ≤ 7890 0,170X1 + 0,280X2 + 0,620X3 + 0,020X4 + 0,096X5 ≤ 15780 Ограничения по сбыту продукции: X1 ≥ 10000 7000 ≤ X2 ≤ 10000 X3 ≥ 10000 X4 ≤ 10000 4000 ≤ X4 ≤ 7000 X1, X2, X3, X4, X5 ≥ 0 X1, X2, X3, X4, X5 целые. Решение. Подготовим рабочий лист Excel (рис. 2.1). Основные этапы получения оптимального решения отражены на рис. 2.2-2.4.
Рис. 2.1. Рабочий лист с введенными данными
Рис. 2.2. Введение ограничений целочисленности переменных
Рис. 2.3. Введены все условия для решения задачи
Рис. 2.4. Решение найдено. Все ограничения и условия оптимальности выполнены Таблица 2.3. РЕЗУЛЬТАТЫ ПОИСКА ПРЕДСТАВЛЕНЫ РЕЗУЛЬТАТЫ ПОИСКА ОПТИМАЛЬНОГО РЕШЕНИЯ ЗАДАЧИ
Выводы. Для получения максимальной прибыли необходимо произвести: наборов мебели 1 вида 10002 шт., наборов мебели 2 вида 10000 шт., наборов мебели 3 вида 10490 шт., тумбы под телевизор 4000 шт. Книжные полки в этом месяце не следует производить. Задача о ранце. В терминах задачи о ранце (рюкзаке) формулируются многие задачи загрузки в некоторую емкость тех или иных предметов. Пример 3. Организация арендует баржу грузоподъемностью 83 т, на которой предполагает перевозить груз, состоящий из предметов четырех типов. Веса и стоимости предметов равны соответственно 24 т, 22 т, 16 т, 10 т и 96 у.е., 85 у.е., 50 у.е., 20 у.е. Требуется погрузить на баржу груз максимальной стоимости. Экономико-математическая модель Введем необходимые обозначения: пусть хj (j = 1,2,3,4) — число предметов j-го типа, которое следует погрузить на баржу. Тогда ЭММ задачи о подборе для баржи допустимого груза максимальной ценности запишется следующим образом: max f(x1, х2, х3, х4) = 96х1 + 85х2 + 50х3 + 20х4, 24x1 + 22х2 + 16х3 + 10х4 ≤ 83, хj (j = 1,2,3,4) - целые неотрицательные. Решение. Приведенная ЭММ является моделью задачи целочисленного линейного программирования (ЦЛП). Для реализации этой модели средствами Excel в диалоговом окне режима Поиск решения с помощью кнопки Добавить следует ввести ограничение целочисленности переменных (целые числа в изменяемых ячейках). Специализированный (рабочий) лист может быть подготовлен в виде, представленном на рис. 2.5. Формулы этого листа очевидны. Диалоговое окно, отвечающее приведенному выше рабочему листу, представлено на рис. 2.5. Результаты реализации разработанной ЭММ приведены ниже в таблице Таблица 2.4 РЕЗУЛЬТАТЫ РЕШЕНИЯ ЗАДАЧИ О РАНЦЕ
Рис. 2.5. Начальная рабочая таблица и диалоговое окно Таким образом, рекомендуемое управленческое решение с позиций принятого критерия оптимальности — следует погрузить три предмета первого типа и один предмет четвертого типа. В этом случае стоимость груза составит 308 у.е., и одна тонна грузоподъемности будет не использована (ее можно использовать на другие цели). Пример 4. Задача о рациональном раскрое строительных материалов. Часть заемных оборотных средств предприятия иммобилизована в запасы пиломатериалов: на складе имеется партия бруса, содержащая 300 штук длиной 7,5 м каждый и партия бруса, содержащая 500 штук длиной 5 м каждый. Из этого материала можно изготовить оконные блоки, в каждый из которых входит две детали по 2,5 м и три детали длиной 2 м каждая. Как оптимально использовать заемные средства, если предположить, что спрос на оконные рамы неограничен? Экономико-математическая модель Оконный блок - некоторый комплект продукции или ассортиментный набор (2, 3). Понятно, что в этой задаче о раскрое критерий оптимальности - «максимум выпуска (реализации) комплектной продукции». Построим возможные способы (карты) раскроя исходного материала, с этой целью составим таблицу:
Введем необходимые обозначения: xij - число брусьев из i-й партии (i = 1, 2), которое следует раскроить j-м способом. Рассмотрим соотношения:
и
Обозначим через Z - минимальное из этих соотношений (это и будет количество комплектной, ассортиментной продукции). С учетом этого ЭММ имеет вид - max Z при ограничениях: x11 + х12 + х13 + х14 = 300, х21 + х22 + х23 = 500,
xij, Z - целые неотрицательные. Решение. Приведенная ЭММ является моделью задачи целочисленного линейного программирования (ЦЛП). Для удобства записи сделаем замену двухиндексных переменных хij, и Z на одноиндексные переменные уj так как это показано в таблице раскроя (Z = y8). С учетом этих обозначений ЭММ задачи для записи ее в рабочей таблице ППП Excel будет иметь вид: max (0y1 + 0y2 + 0y3 + 0y4 + 0y5 + 0y6 + 0y7 + 1y8) при ограничениях: 1y1 + 1y2 + 1y3 + 1y4 + 0y5 + 0y6 + 0y7 + 0y8 = 300 0y1 + 0y2 + 0y3 + 0y4 + 1y5 + 1y6 + 1y7 + 1y8 = 500 3y1 + 2y2 + 1y3 + 0y4 + 2y5 + 1y6 + 0y7 - 2y8 ≥ 0 0y1 + 1y2 + 2y3 + 3y4 + 0y5 + 1y6 + 2y7 - 3y8 ≥ 0 yj, j = 1, 8 — целые неотрицательные. Основные этапы компьютерной реализации этой модели представлены на рис. 2.6. Начальная рабочая таблица и диалоговое окно Поиск решения совмещены и находятся в верхней части рисунка, результаты решения приведены в табличном виде (Отчет по результатам не приводится).
РЕЗУЛЬТАТЫ РЕШЕНИЯ
Рис. 2.6. Основные этапы решения задачи о раскрое материалов средствами Excel Ниже в таблице приведены указания на ячейки-формулы. ФОРМУЛЫ РАБОЧЕЙ ТАБЛИЦЫ
Таким образом, реализуя приведенную модель средствами ППП Excel (см. рис. 2.6), получим решение: y4 = x14 = 300; y5 = x21 = 380; у7 = х23 =120; у8 = Z= 380 (оптимальные значения остальных переменных равны нулю). Следовательно, в данной хозяйственной ситуации максимальное количество ассортиментных наборов, равное 380 шт. можно изготовить и реализовать, если:
В этом случае мы получим максимальную выручку для целей погашения кредита (займа). Пример 5. Задача оптимального формирования портфеля ценных бумаг [17]. Необходимо сформировать оптимальный портфель Марковица (минимального риска) трех ценных бумаг с эффективностями и рисками: (4, 10), (10, 40), (40, 80). Нижняя граница доходности портфеля задана равной 15. Экономико-математическая модель Введем необходимые обозначения, пусть хj (j = 1, 2, 3) - число предметов j-го типа, которое следует погрузить на баржу. Тогда математическая модель задачи о подборе для баржи допустимого груза максимальной ценности запишется следующим образом (см. пункт 2.1, 2,1):
4x1 + 10x2 + 40х3 ≥ 15 x1 + x2 + x3 = 1 xj ≥ 0, j = 1, 2, 3. Решение. Приведенная ЭММ является моделью задачи нелинейного программирования. Специальный (рабочий) лист может быть подготовлен в виде, представленном на рис. 2.7, формулы этого листа приведены в ячейках.
Рис. 2.7. Рабочий лист Диалоговое окно, отвечающее приведенному выше рабочему листу, представлено на рис. 2.8.
Рис. 2.8. Диалоговое окно Реализуя приведенную модель средствами ППП Excel (рис. 2.9), будем иметь оптимальный портфель Марковица: x1 = 0,5213, х2 = 0,2078, х3 = 0,2709, т.е. доли ценных бумаг оказались равными 52,13 %; 20,78 % и 27,09 %. При этом минимальный риск - 23,79, доходность портфеля оказалась равной заданной - 15.
Рис. 2.9. Результаты решения При решении приведенных выше типовых задач сознательно использовались разнообразные подходы к оформлению рабочей таблицы Excel и результатов решения. В каждой конкретной ситуации студенты вольны выбрать свой подход — с позиций содержательности, наглядности, удобства, дизайна. Результаты могут быть дополнительно представлены Отчетом по результатам или его фрагментом, кроме того, достаточно часто их целесообразно сопровождать графической иллюстрацией с помощью Мастера диаграмм (как это сделано в примере 5). 3. Задачи для самостоятельной работы и самопроверкиСоставьте модель и получите решение следующих задач о смесях. 3.1. Постановка задачи. Стандартом предусмотрено, что октановое число автомобильного бензина А-76 должно быть не ниже 76, а содержание серы в нем — не более 0,3%. Для изготовления такого бензина на заводе используется смесь из четырех компонентов. Данные о ресурсах смешиваемых компонентов, их себестоимости и их октановом числе, а также о содержании серы приведены в таблице.
Определите, сколько тонн каждого компонента следует использовать для получения 1000 т автомобильного бензина А-76, чтобы его себестоимость была минимальной. Ответ: оптимальное решение (поведение) в данной ситуации определяется вектором объемов смешиваемых компонент (571,429 т; 0; 142,857 т; 285,714 т), оценка затрат - 57142,86 ден.ед. 3.2. Получите решение задачи о смесях (3.1), если себестоимость смешиваемых компонент составит соответственно 40, 45, 60 и 70 ден.ед./т. Все остальные характеристики и числовые данные неизменны. Ответ: оптимальное решение (поведение) в данной ситуации определяется вектором объемов смешиваемых компонент (550 т; 50 т; 100 т; 300 т), оценка затрат - 51250,0 ден.ед. 3.3. Получите решение задачи о смесях (3.1), если себестоимость смешиваемых компонент составит соответственно 40, 35, 60 и 90 ден.ед./т. Все остальные характеристики и числовые данные неизменны. Ответ: оптимальное решение (поведение) в данной ситуации определяется вектором объемов смешиваемых компонент (0; 600 т; 100 т; 300 т), оценка затрат - 54000,0 ден.ед. 3.4. Получите решение задачи о смесях (3.1), если себестоимость смешиваемых компонент составит соответственно 40, 35, 60 и 55 ден.ед./т. Все остальные характеристики и числовые данные неизменны. Ответ: оптимальное решение (поведение) в данной ситуации определяется вектором объемов смешиваемых компонент (0; 600 т; 100 т; 300 т), оценка затрат - 43500,0 ден.ед. 3.5. Получите решение задачи о смесях (3.1), если себестоимость смешиваемых компонент составит соответственно 40, 35, 50 и 90 ден.ед./т. Все остальные характеристики и числовые данные неизменны. Ответ: оптимальное решение (поведение) в данной ситуации определяется вектором объемов смешиваемых компонент (0; 333,333 т; 500 т; 166,667 т), оценка затрат - 51666,67 ден.ед. Составьте модель и получите решение следующих задач о ранце. 3.6-3.10. Постановка задачи. Организация арендует баржу грузоподъемностью В. На этой барже предполагается перевозить груз n типов. Вес и стоимость единицы груза соответственно равны p1, р2, ..., рn и c1, с2, ..., сn. Необходимо погрузить на баржу груз максимальной стоимости. Числовые данные для задач 3.6-3.10 представлены в таблице (в усл. ед. измер.):
Ответ: оптимальное решение определяется вектором, компоненты которого задают количество предметов соответствующего типа, которое следует погрузить на баржу. Задача 3.6. Оптимальное решение — 2, 2, 0, 0, 2, максимальная стоимость груза - 174 у.е. Задача 3.7. Оптимальное решение - 1, 12, 0, 0, максимальная стоимость груза - 1060 у.е. Задача 3.8. Оптимальное решение - 0, 0, 3, 0, 7, максимальная стоимость груза - 330 у.е. Задача 3.9. Оптимальное решение - 0, 7, 0, 1, максимальная стоимость груза - 449 у.е. Задача 3.10. Оптимальное решение - 0, 0, 1, 12, максимальная стоимость груза - 1388 у.е. Составьте модель и получите решение следующих задач об инвестициях. 3.11-3.15. Постановка задачи. Предлагается n инвестиционных проектов, тщательная экономическая экспертиза которых позволяет получить для каждого из проектов достаточно убедительные экономические оценки ожидаемого эффекта от их реализации c1, с2, ..., сn и необходимых капиталовложений p1, р2, ..., рn. Общий объем возможных инвестиций ограничен величиной В. Необходимо так распорядиться имеющимися финансовыми ресурсами, чтобы максимизировать суммарный эффект от инвестиций. Числовые данные для задач 3.11—3.15 представлены в таблице (в усл.ед. измер.):
Ответ: оптимальное решение определяется вектором, компоненты которого задаются булевыми переменными: 1 или 0 (1-соответствующий проект следует финансировать, 0 — не следует). Задача 3.11. Оптимальное решение - 0, 1, 1, 1, 1, максимальный эффект - 210 у. е. Задача 3.12. Оптимальное решение - 1, 1, 0, 1, 1, максимальный эффект - 215 у.е. Задача 3.13. Оптимальное решение - 1, 1, 1, 0, 1, максимальный эффект - 280 у.е. Задача 3.14. Оптимальное решение - 1, 1, 0, 0, 1, максимальный эффект - 175 у.е. Задача 3.15. Оптимальное решение — 1, 0, 1, 0, 1, максимальная эффект - 175 у.е. Составьте модель и получите решение следующих задач об оптимальном распределении выпуска продукции по технологиям производства. 3.16-3.20. Постановка задачи. Предприятие располагает двумя способами производства данного вида продукции. В течение рассматриваемого периода времени необходимый объем продукции равен В = Х1 + Х2, где Х1 и Х2 — объемы производства по соответствующему технологическому способу. Затраты производства S при каждом способе зависят от объемов нелинейно:
Необходимо так распределить объем производства между технологическими способами, чтобы минимизировать общие затраты производства. Числовые данные для задач 3.16-3.20 представлены в таблице (в условных ед. измерения):
Ответ: оптимальное решение определяется вектором, компоненты которого задают объемы выпуска продукции по технологиям производства. Задача 3.16. Оптимальное решение - 66,5; 33,5, минимальные затраты производства составят 6841,25 у.е. Задача 3.17. Оптимальное решение - 39,9; 60,1, минимальные затраты производства составят 12147,95 у.е. Задача 3.18. Оптимальное решение - 49,75; 50,25, минимальные затраты производства составят 5157,875 у.е. Задача 3.19. Оптимальное решение - 50,0; 50,0, минимальные затраты производства составят 5102,0 у.е. Задача 3.20. Оптимальное решение - 50,25; 49,75, минимальные затраты производства составят 5181,875 у.е. Составьте модель и получите решение следующих задач о назначениях [16]. 3.21. Постановка задачи. В распоряжении некоторой компании имеется 6 торговых точек и 6 продавцов. Из прошлого опыта известно, что эффективность работы продавцов в различных торговых точках неодинакова. Коммерческий директор компании произвел оценку деятельности каждого продавца в каждой торговой точке. Результаты этой оценки представлены в таблице.
Как коммерческий директор должен осуществить назначение продавцов по торговым точкам, чтобы достичь максимального объема продаж? Ответ: Оптимальное решение определяется матрицей назначений Х = (xij), результаты решения содержатся в следующей таблице
3.22. Решите задачу 3.21 при условии, что назначение х14 недопустимо, т.е. вместо элемента 83 в матрице объемов продаж можно принять, например, число (-100). Ответ: Оптимальное решение определяется матрицей назначений Х = (xij), результаты решения содержатся в следующей таблице
3.23. Решите задачу 3.21 при условии, что имеется только 5 продавцов, т.е. шестая строка в матрице объемов продаж отсутствует. Ответ: оптимальное решение определяется матрицей назначений Х = (xij), результаты решения содержатся в следующей таблице
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[an error occurred while processing this directive] |