Международный институт "ИНФО-Рутения" Н.А. Филина МАТЕМАТИЧЕСКИЕ МЕТОДЫ ИССЛЕДОВАНИЯ В ЭКОНОМИКЕ Методическое пособие для студентов заочной (дистанционной) формы обучения Под ред. д.т.н., проф. Н.Т. Катанаева Москва 2006 Ф 53 Филина Н.А. Математические методы исследования в экономике: Методическое пособие. Под ред. д.т.н., проф. Н.Т. Катанаева. – М.: МИИР, 48 с., 2006. В сборник методических пособий включен материал по основным разделам курса "Математические методы исследования в экономике" - оптимизации плана производства, оптимальному смешению, оптимальному раскрою, оптимальному финансированию, транспортным задачам и задачам о назначении. По каждой теме даются теоретический материал и примеры решения задач при помощи программы Microsoft Excel пакета Microsoft Office и математической системы Mathcad. Автором подробно изложены и показаны на примерах принципы решения оптимизационных задач в Microsoft Excel и Mathcad. Рекомендуется для студентов экономических специальностей. Подготовлено и издается по заказу Международного института "ИНФО-Рутения" Печатается в авторской редакции. Подписано в печать 11.05.2006. Сдано в производство 11.05.2006. Формат бумаги 6090/16 Бум. множ. Гарнитура Times. Усл.печ.л. 3,25 Уч.изд.л. 3,0 Тем. план 2006 г. Тираж 500 Заказ № 1980 ООП МИИР, 109280, Москва, ул. Автозаводская, д. 16. © Филина Н.А., 2006. © МИИР, 2006. СОДЕРЖАНИЕ Оптимизация плана производства .............................................................. 4 Оптимальное смешение ............................................................................ 16 Оптимальный раскрой ............................................................................... 22 Оптимальное планирование финансов .................................................... 27 Транспортная задача ................................................................................. 33 Задача о назначениях ............................................................................... 40 Литература ................................................................................................. 46 3 ОПТИМИЗАЦИЯ ПЛАНА ПРОИЗВОДСТВА Общая постановка задачи: Необходимо определить план производства одного или нескольких видов продукции, который обеспечивает наиболее рациональное использование имеющихся ресурсов. Такой план должен быть оптимальным с точки зрения выбранного критерия - максимума прибыли, минимума затрат и т.д. Модель: n c j x j max (1) a ij x j b i , i 1,..., m (2) j 1 n j 1 (3) x j 0, j 1,..., n, где: n - количество выпускаемых видов продукции; m - количество используемых видов ресурсов; aij - объем затрат i-го ресурса на выпуск единицы j-й продукции; bi - имеющееся количество i-го ресурса; cj - прибыль от реализации единицы j-й продукции; xj - объем выпуска j-го вида продукции. Выражение (1) является целевой функцией и отражает максимизацию прибыли предприятия от реализации продукции. Выражение (2) - система специальных ограничений, в данном случае - на фактически имеющиеся объемы ресурсов. Выражение (3) - система общих ограничений на неотрицательность переменных. В случае, если требуется решить задачу на минимизацию затрат на производство и реализацию продукции, целевая функция модели будет выглядеть так: n c j x j min, (4) j 1 где: n - количество выпускаемых видов продукции; cj - затраты на производство и реализацию единицы j-й продукции; xj - объем выпуска j-го вида продукции. Пример решения задачи: Предприятие производит 2 вида продукции с использованием двух видов ресурсов - сырья и рабочей силы. Затраты ресурсов на изготовление 1 т каждого вида продукции и запасы ресурсов указаны в следующей таблице: 4 Ресурс Сырье, т Трудозатраты, ч Расход ресурса на продукцию 1 3 14 Расход ресурса на продукцию 2 5 12 Запас ресурса 120 400 Прибыль, получаемая предприятием от реализации 1 т первого и второго вида продукции составляет соответственно 30 и 35 руб./т. Требуется найти максимальную прибыль предприятия. Решение: Пусть x1 - объем выпуска продукции вида 1 в тоннах, x2 - объем выпуска продукции вида 2 в тоннах. Тогда задача может быть описана в виде следующей модели линейного программирования: 30x1 35x 2 max 3x1 5x 2 120 14x1 12x 2 400 (5) x1 0 x 2 0. Такую задачу можно решить при помощи надстройки Поиск решения программы Microsoft Excel пакета Microsoft Office. В целях нахождения решения задачи с помощью этого модуля необходимо предварительно составить в книге Microsoft Excel таблицу, содержащую исходные данные. Для этого необходимо сначала загрузить программу Microsoft Excel, а затем внести в таблицу имеющиеся данные следующим образом: Рис. 1 Далее необходимо сохранить книгу под каким-либо именем, например, "задача 1.xls". 5 Добавим в таблицу еще одну строку (например, строку 6), в которую будут вноситься получаемые в ходе решения результаты. Объем выпуска продукции вида 1 будем предполагать получить в ячейке В6, продукции вида 2 - в ячейке С6, а искомую прибыль - в ячейке Е6. Для решения задачи необходимо также выделить столбец (в данном примере - столбец D), в который будут введены формулы для расчета значений левой части ограничений. Формула вводится также и в ячейку, в которой будет рассчитана прибыль предприятия (ячейка Е6). Нужно обратить внимание на то, что в формулах используются не числа или символьные обозначения, а координаты ячеек таблицы, в которых хранятся эти числа и переменные. Рис. 2 Для запуска процедуры оптимизации в меню Сервис необходимо выбрать пункт Поиск решения. В поле Установить целевую ячейку вводятся координаты ячейки (Е6), которую необходимо максимизировать, минимизировать или установить равной какому-либо числу. Поле нужного варианта оптимизации необходимо выделить указателем. В поле Изменяя ячейки вводятся координаты ячеек (разделенные запятыми или объединенные в интервал двоеточием), в которых содержатся значения переменных - объемов выпуска продукции вида 1 и вида 2. Изменяемые ячейки должны быть прямо или косвенно связаны с целевой ячейкой. Можно использовать автоматический поиск таких ячеек с помощью кнопки Предположить. В поле Ограничения необходимо ввести все граничные условия задачи: 6 Рис. 3 При этом ограничения на неотрицательность переменных можно ввести путем установки флажка Неотрицательные значения в окне Параметры. В случае, если решаемая задача является задачей линейного программирования, лучше отметить это в окне Параметры соответствующим флажком: 7 Рис. 4 Запуск процесса оптимизации производится нажатием кнопки Выполнить. По окончании счета появляется диалоговое окно Результаты поиска решения. Нажав в нем соответствующую кнопку, можно сохранить найденное решение или восстановить исходные значения. Изменения при этом коснутся как целевой ячейки, так и влияющих ячеек. В этом же диалоговом окне можно указать необходимые типы отчетов, которые будут размещены на отдельных листах книги. Отчет Результаты отражает исходные и результирующие значения целевой и влияющих ячеек, а также сведения о наложенных ограничениях. 8 Рис. 5 Отчет Пределы отражает наибольшее и наименьшее значения влияющей ячейки при фиксированных и удовлетворяющих всем ограничениям остальных. Рис. 6 Отчет Устойчивость содержит информацию о двойственных оценках для каждого ограничения, а так же о границах устойчивости по значениям коэффициентов целевой функции и правых частей ограничений. 9 Рис. 7 В рассматриваемом примере двойственные оценки 1-го и 2-го видов ресурсов составляют соответственно 3,82 и 1,32. Это означает, что при увеличении запаса первого ресурса на 1 т максимальное значение целевой функции увеличится на 3,82 тыс. руб., при увеличении на 1 т запаса второго ресурса - на 1,32 тыс. руб. Поскольку допустимое уменьшение коэффициента целевой функции 1-го вида продукции составляет 9 тыс. руб., а его допустимое увеличение - 10,83 тыс. руб., границы устойчивости по этому коэффициенту составляют интервал от 21 до 40,83 тыс. руб. Это означает, что если прибыль, получаемая от реализации 1 т продукции вида 1, будет являться любым числом, принадлежащим этому интервалу, количество этого вида продукции в оптимальном плане не изменится. Таким же образом можно определить границы устойчивости по имеющимся количествам ресурсов: если количество второго ресурса (трудозатрат) попадет в интервал от 288 до 560 часов, двойственная оценка этого ресурса не изменится. При необходимости, установив флажок Показывать результаты итераций в окне Параметры, можно приостанавливать процесс оптимизации после каждой итерации и просматривать ее результаты. Окно Параметры позволяет варьировать также максимальное время, предельное число итераций, относительную погрешность, допустимое отклонение, тип модели, метод поиска и т.д. Такая необходимость может возникнуть в случае, если по каким-либо причинам найти оптимальное значение целевой ячейки сразу не удается. Полученные результаты решения рассматриваемой задачи выглядят так: 10 Рис. 8 Итак, максимальная прибыль предприятия будет составлять 988,24 тыс. руб. Для ее достижения предприятию необходимо производить 16,47 т продукции вида 1 и 14,12 т продукции вида 2. Рис. 9 11 Не менее удобным представляется решение этой задачи с помощью математической системы Mathcad, поскольку эта система позволяет оперировать привычными символами и формами записи математических выражений. Для этого, запустив указанный программный продукт, необходимо в открывшемся окне документа набрать математическую модель задачи, которая для данного примера будет выглядеть так: Рис. 10 В первой строке записано выражение для нахождения значения целевой функции F (x1, x2). Знаком ":=" в системе Mathcad обозначается оператор присваивания левой части функции или уравнения значения ее правой части. В отличие от него, знак "=" используется в системе Mathcad только для вывода результатов вычислений. Вторая и третья строка обуславливают присвоение переменным x1 и x2 их начальных значений. Блок ограничений в системе Mathcad открывается служебным словом Given. Далее записываются все ограничения, накладываемые на переменные условиями задачи. В целях нахождения искомого решения задачи необходимо выбрать из списка функцию Maximize и ввести требуемые аргументы (см. рис. 11). После ввода знака выполнения вычислительных операций получим значения аргументов функции, при которых функция достигает максимума при данных условиях. 12 Для получения максимального значения функции нужно присвоить переменным полученные значения и выполнить процедуру вычисления. Система позволяет получить и графическое отображение решения задачи. Рис. 11 Сплошной линией на рисунке отражены ограничения, а пунктирной - линия уровня целевой функции. ЗАДАЧИ Задача 1.1 Малое предприятие занимается сборкой мебели из поступающих комплектующих. В настоящее время на предприятии собирают шкафы - двух- и трехстворчатые, которые затем продаются по 3 тыс. руб. и 4 тыс. руб. соответственно. Каждый шкаф собирается из основы, полок и дверцей. На двухстворчатый шкаф требуется 1 основа вида "А", 2 дверцы и 10 полок, на трехстворчатый - 1 основа вида "Б", 3 дверцы и 15 полок. Всего на 13 складе имеется 110 основ вида "А", 100 основ вида "Б", 400 дверцей и 2000 полок. Какую максимальную прибыль может извлечь предприятие от продажи собранных шкафов? Задача 1.2 Цех хлебозавода по производству муки заключил контракт с мини-пекарней о поставке ежедневно 300 кг ржаной и пшеничной муки, причем пшеничной - не менее 50%. Зерно, поступающее в цех, проходит в нем обмолот, помол и упаковку муки. Трудозатраты (в человеко-часах) на указанные операции представлены в таблице: Операция Обмолот Помол Упаковка Ржаная мука 0,1 0,1 0,05 Пшеничная мука 0,1 0,08 0,05 Имеющийся ресурс 30 27 200 Себестоимость одного килограмма ржаной муки составляет 14 рублей, а пшеничной - 18 рублей. Требуется найти оптимальный план производства продукции, позволяющий цеху выполнить условия контракта с наименьшими затратами. Задача 1.3 Предприятие открывает новую линию по пошиву джинсовой одежды. Предполагается шить джинсовые брюки, рубашки, юбки, жилетки и кепки. В неделю на предприятие поступает определенное количество ткани, застежек-молний, пуговиц и декоративных деталей, которые расходуются на пошив изделий в следующем количестве: Ткань (кв. м) Молнии (шт.) Пуговицы (шт.) Декор (шт.) Брюки Рубашки Юбки Жилетки Кепки 2,5 1 1 6 2 0 7 4 1,5 1 2 6 1,5 2 5 0 0,5 0 2 2 Ресурс на неделю 1800 800 1500 4000 Раскрой каждого изделия занимает 0,3 человеко-часа, пошив - 0,5 человеко-часов. Всего на раскрой может быть затрачено 500 человеко-часов в неделю, на пошив - 700 человеко-часов. Готовые изделия могут быть проданы по следующим ценам: брюки - по 700 рублей, рубашки - по 500 рублей, юбки и жилетки - по 400 рублей, кепки - по 200 рублей. Какую максимальную прибыль за неделю может получить предприятие? 14 Задача 1.4 Фирма заключила контракт на поставку Университету 50 компьютеров 1-й базовой комплектации, 200 компьютеров 2-й комплектации и 100 - 3-й. Фирма собирает компьютеры из комплектующих и устанавливает на них программное обеспечение. Затраты труда и фонд рабочего времени отражаются в таблице: Операция Сборка Установка программ Затраты труда на один компьютер (чел-ч) по видам комплектации 1-й вид 2-й вид 3-й вид 0,8 0,5 0,5 1,5 1,2 1,0 Фонд рабочего времени (чел-ч) 150 400 Себестоимость каждого компьютера составляет $1000, $800 и $650 соответственно. Однако после подписания столь выгодного контракта руководство фирмы пришло к выводу, что фирма не в состоянии выполнить его условия своими силами. Фирма обратилась к конкурентупредпринимателю с предложением купить часть готовых к работе компьютеров у него. Предприниматель дал свое согласие, установив цену за один компьютер 1-й комплектации - $1200, 2-й - $900 и 3-й $700. Как фирме выполнить условия контракта с наименьшими затратами? 15 ОПТИМАЛЬНОЕ СМЕШЕНИЕ Общая постановка задачи: Найти наилучший с точки зрения минимизации затрат или максимизации прибыли способ смешения исходных ингредиентов для получения смеси с заданными свойствами. Однопродуктовая модель: n c j x j min j 1 n a ij x j b i , i 1,..., m (6) j 1 x j 0, j 1,..., n , где: n - количество исходных ингредиентов; m - количество компонент в смеси; aij - доля i-й компоненты в j-м ингредиенте; bi - минимально допустимое количество i-й компоненты в смеси; cj - стоимость единицы j-го ингредиента; xj - количество j-го ингредиента, входящего в смесь. Многопродуктовая модель: s n (p k c j ) x kj max k 1j1 n (a ij bik ) x kj 0, i 1,..., m, k 1,..., s j1 (7) n d rkj x kj 0, k 1,..., s, r 1,..., w j1 x kj 0, j 1,..., n , k 1,..., s, где: n - количество исходных ингредиентов; m - количество компонент в смеси; s - количество смесей; w - количество условий на содержание ингредиентов в смесях; xkj - количество j-го ингредиента, входящего в смесь k; aij - доля i-й компоненты в j-м ингредиенте; bik - минимально допустимая доля i-й компоненты в смеси; cj - стоимость единицы j-го ингредиента; 16 drkj - коэффициент, отражающий r-е условие на содержание j-го ингредиента в k-й смеси; pk - стоимость единицы k-й смеси. Пример решения задачи: В состав рациона кормления животных входят сено, силос и концентраты. Содержание питательных веществ и минимально необходимые нормы их потребления приведены в таблице: Сено Силос Концентраты Нормы потребления Белок, г/кг 40 20 160 2000 Кальций, г/кг 5 4 4 120 Витамины, у.е./кг 2 1 2 40 Цена за 1 кг, р. 300 200 500 Определить рацион, стоимость которого была бы минимальной, если предельные нормы суточной выдачи сена - не более 18 кг, силоса - 24 кг, концентратов - 16 кг. Решение: обозначим за x1 количество сена, за x2 - количество силоса, за x3 - количество концентратов в оптимальном рационе. Тогда: 300x1 200x 2 500x 3 min 40x1 20x 2 160x 3 2000 5x1 4 x 2 4 x 3 120 2 x1 1x 2 2 x 3 40 (8) 0 x1 18 0 x 2 24 0 x 3 16 Подготовим в Microsoft Excel таблицу для решения задачи: Рис. 12 17 Поскольку Microsoft Excel позволяет путем установки соответствующего флажка автоматически определять неотрицательность переменных, добавление ограничений на неотрицательность в модель при решении задачи в Microsoft Excel не является обязательным. Введем в таблицу формулы для расчета левых частей ограничений и целевой ячейки: Рис. 13 Ограничения в этом примере записываются так: Рис. 14 18 Запустим модуль Поиск решения и произведем расчеты в том же порядке, что и в предыдущем примере. Рис. 15 Решение задачи в системе Mathcad будет выглядеть так: Рис. 16 19 В данном случае необходимо использовать функцию Minimize, поскольку при решении задачи необходимо определить минимальную стоимость рациона. В ходе расчетов получим следующие результаты: оптимальный суточный рацион должен содержать 20 кг силоса и 10 кг концентратов. При этом стоимость рациона будет составлять 9000 руб. ЗАДАЧИ Задача 2.1 Группа спортсменов по рекомендации врача принимает пищевые добавки. Существует три вида добавок, удовлетворяющих всем требованиям - А, В и С, цена за упаковку которых составляет соответственно 500, 600 и 700 рублей. В этих пищевых добавках содержатся питательные вещества и витамины пяти видов (I, II, III, IV, V), нормы потребления и содержание в добавках которых приведены в таблице (в ед.): I II III IV V А 5 3 2 2 0 В 0 3 4 7 1 С 2 3 0 5 5 Норма потребления 19 15 6 16 10 Нормы потребления необходимо соблюдать точно. Требуется выполнить рекомендации врача с минимальными затратами. Задача 2.2 Руководство птицефабрики имеет возможность закупать корма трех видов. Из этих кормов птицы должны получать питательные вещества (П1, П2, П3 и П4), требуемое количество которых и содержание в кормах (в ед.) приведены в таблице: Питательные вещества П1 П2 П3 П4 К1 3 2 8 4 Корма К2 5 2 1 3 Нормы потребления К3 0 4 2 5 20 равно 16 не менее 24 не менее 25 не менее 33, но не более 40 Цены за 1 т кормов составляют соответственно 1000, 900 и 800 рублей. Какие корма и в каком количестве следует закупать, чтобы затраты птицефабрики оказались минимальными? Задача 2.3 Пищевой комбинат производит фруктовые джемы из персиков, абрикосов и апельсинов. Дневной запас фруктов составляет 100 кг персиков, 80 кг абрикосов и 60 кг апельсинов. Кроме фруктов в джем входит сахар, запас которого считается неограниченным. Цены на фрукты и их содержание в джемах указаны в таблице: Джем Д1 Д2 Д3 Цена за 1 кг (руб.) персики 20 30 10 40 Содержание фруктов (в %) абрикосы апельсины 30 0 10 20 40 10 30 30 Килограмм сахара стоит 15 рублей. Затраты на изготовление килограмма каждого джема составляют 20 рублей. Готовый джем Д1 завод продает по 50 рублей за 1 кг, Д2 и Д3 по 60 рублей за 1 кг. Какова максимальная дневная чистая прибыль комбината? Задача 2.4 Предприятие производит хлопья для завтрака "Три злака" №1, №2 и №3, в состав которых входят овсяные, пшеничные и кукурузные хлопья. Всего в распоряжение предприятия в неделю поступает 450 кг овсяных, 300 пшеничных и 800 кг кукурузных хлопьев по цене 20, 25 и 22 рубля за 1 кг соответственно. Рецептура хлопьев "Три злака" требует соблюдения при смешивании следующих пропорций: "Три злака" №1 "Три злака" №2 "Три злака" №3 Требуемые пропорции не менее 50% кукурузных, не более 30% овсяных не менее 60% кукурузных не более 40% пшеничных, не более 20% овсяных Продажная цена (руб. за 1 кг) 40 60 50 Какова максимальная чистая прибыль предприятия в неделю? 21 ОПТИМАЛЬНЫЙ РАСКРОЙ Общая постановка задачи: выбрать один или несколько способов раскроя и определить, какое количество материала следует раскраивать, применяя каждый из выбранных способов. Такая задача решается в два этапа. На первом этапе определяются рациональные способы раскроя материала, на втором этапе формулируется и решается задача линейного программирования. Рациональным (парето-оптимальным) называют такой способ раскроя, при котором увеличение числа заготовок одного вида возможно только за счет сокращения числа заготовок другого вида. Именно с нахождения всего множества рациональных способов раскроя начинают решение любой задачи этого типа. На втором этапе, в зависимости от вопросов, поставленных в условии задачи, обычно применяют одну из трех основных моделей линейного программирования: Модель с минимизацией расхода материалов: p x i min i 1 p a ik x i b k , k 1,..., q (9) i 1 x i 0, i 1,..., p Модель с минимизацией отходов: p c i x i min i 1 p a ik x i b k , k 1,..., q (10) i 1 x i 0, i 1,..., p Модель с максимизацией комплектов: y max p xi d i 1 p a ik x i b k y, k 1,..., q (11) i 1 x i 0, i 1,..., p y 0, 22 где: i - индекс способа раскроя; k - индекс вида заготовки; aik - количество заготовок вида k, полученных при раскрое единицы материала i-м способом; bk - число заготовок вида k в комплекте; d - количество материала; xi - количество единиц материала, раскраиваемых по i-му способу (интенсивность использования способа раскроя); ci - величина отхода, полученного при раскрое единицы материала по i-му способу; y - число комплектов заготовок. Пример решения задачи: При изготовлении парников используются металлические стержни. Материал для их изготовления поставляется в виде исходных стержней длинной 220 см. Из них необходимо получить 80 стержней длиной 120 см, 120 стержней длиной 100 см и 102 стержня длиной 70 см. Какое минимальное количество материала следует разрезать? Решение: Найдем все рациональные способы раскроя исходного материала на стержни длиной 120, 100 и 70 см. Таких способов пять: Способы раскроя 1 2 3 4 5 120 см 1 1 0 0 0 100 см 1 0 2 1 0 70 см 0 1 0 1 3 Отходы, см 0 30 20 50 10 Обозначим за x1 количество исходных стержней, разрезаемых по способу 1, за x2 - количество исходных стержней, разрезаемых по способу 2 и т.д. Используя модель линейного программирования с минимизацией расхода материала, получим: x1 x 2 x 3 x 4 x 5 min x1 x 2 80 x1 2 x 3 x 4 120 (12) x 2 x 4 3x 5 102 x i 0; i 1,..., 5. Подготовим таблицу в Microsoft Excel, содержащую исходные данные задачи, введем формулы для расчета целевой функции и левой части ограничений, заполним форму модуля Поиск решения: 23 Рис. 17 С помощью модуля Поиск решения найдем, что для получения необходимого количества различных стержней нужно разрезать 134 исходных стержня, причем 80 исходных стержней нужно разрезать по 1-му способу, 20-по третьему и 34 по пятому способу: Рис. 18 Те же результаты можно получить, используя для расчетов систему Mathcad. В этом случае решение будет записано как показано на рис. 19. 24 Необходимо обратить внимание, что ограничения-равенства, встречающиеся в данном примере, содержат знак =, вводящийся с панели операторов отношений. Этот знак нельзя путать со знаками = (вывод результатов вычисления) и := (оператор присваивания). Рис. 19 ЗАДАЧИ Задача 3.1 Один из цехов фабрики по пошиву изделий из кожи раскраивает поступающие заготовки для получения 5 видов деталей одним из трех возможных способов. Из одной заготовки получают: Способ раскроя I II III A 10 6 4 Детали C 3 4 5 B 5 8 7 25 D 7 5 3 E 2 2 4 Требуется получить не менее 48 деталей вида А, не менее 32 деталей вида В, не менее 45 деталей вида С, не менее 17 деталей вида D и не менее 24 деталей вида Е. Какое минимальное количество заготовок нужно раскроить? Задача 3.2 Для пошива одной из моделей юбок Дом моды известного дизайнера закупил 100 рулонов ткани. Каждое изделие комплектуется из одного переднего полотнища, одного заднего полотнища, пояса и двух карманов. При использовании различных способов раскроя одновременный выход деталей из одного рулона составляет: Способ раскроя 1 2 3 4 5 6 Переднее полотнище Заднее полотнище 5 0 4 1 3 3 2 3 1 4 0 6 Пояс 3 5 2 1 6 5 Карман 2 4 4 8 7 6 Необходимо определить, какое максимальное количество юбок можно выкроить из имеющегося материала. Задача 3.3 На лесопилку поступают доски длиной 10 м. По контракту лесопилка должна поставить клиенту не менее 100 досок длиной 5 м, не менее 200 досок длиной 4 м и не менее 300 досок длиной 3 м. Как работникам лесопилки выполнить условия контракта, разрезав наименьшее количество досок? Задача 3.4 В цех поступила партия стержней длиной 110 и 80 см. Для дальнейшего производства требуется 50 стержней длиной 25 см и 50 стержней длиной 35 см. Как разрезать имеющиеся стержни, чтобы сократить отходы до минимума? 26 ОПТИМАЛЬНОЕ ПЛАНИРОВАНИЕ ФИНАНСОВ Общая постановка задачи: определить виды вкладов, которые стоит использовать с целью минимизации размера целевого фонда или с целью получения максимального дохода. Модель для решения задачи минимизации размера целевого фонда: y min y x j 0, t 0 jGt (1 r j ) x j x j d t , t 1,..., T 1 jQt jGt (13) (1 r j ) x d t , t T jQt y 0; x j 0, j 1,..., n. Модель для решения задачи максимизации дохода: z max x j ut , t 0 jGt x j (1 rj )x j u t , t 1,..., T 1 jGt jQt (14) (1 rj )x j z 0, t T jQt z 0; x j 0, j 1,..., n, где: y - размер целевого вклада, создаваемого в момент времени 0; t - текущий момент времени, t = 0,…,T; dt - размер выплаты по займу, которую надо произвести в момент времени t = 1,…,T; j - индекс срочного вклада, j = 1,…,n; vj - момент времени вложения по срочному вкладу j; wj - срок выплаты по срочному вкладу j; rj - процент по вкладу j; xj - объем вложений по срочному вкладу j; Gt - множество индексов j, когда по вкладу j сделано вложение в момент времени t; Qt - множество индексов j, когда по вкладу j получена выплата в момент времени t; 27 z - размер дохода, который может получить вкладчик в момент времени T; ut - размер вклада в момент времени t, t = 0,…,T-1. Пример решения задачи. Компании необходимо выплатить поставщику оборудования 750 тыс. рублей. Из них 150 тыс. нужно выплатить через 2 месяца, а остальные 600 тыс. - через 6 месяцев после установки. Компанией принято решение образовать целевой фонд для получения дополнительных средств к моменту выплаты. Существующие возможные способы вложения денег представлены в таблице: Тип вклада A B C D Срок вклада (мес.) 1 2 3 6 Процент по вкладу 1,5 3,5 6,0 11,0 Необходимо минимизировать размер целевого фонда. Решение: Составим таблицу, отражающую возможности вложения и возврата денег по месяцам: Вклады A1 A2 A3 A4 A5 A6 B1 B3 B5 C1 C4 D1 1 1 1 1 1 2 1,015 1 Начало месяца 3 4 5 1,015 1 1,035 1 1,015 1 1,06 1 6 7 1,015 1 1,015 1,035 1 1,035 0,06 1,11 1,015 1 где: Ai - размер вклада типа A в месяце i; Bi - размер вклада типа B в месяце i; Ci - размер вклада типа C в месяце i; Di - размер вклада типа D в месяце i. Задача может быть описана следующей моделью: 28 y min y A1 B1 C1 D1 0 1,015A1 A 2 0 1,015A 2 1,035B1 A3 B3 150 1,015A3 1,060C1 A 4 C4 0 1,015A 4 1,035B3 A5 B5 0 (15) 1,015A5 A6 0 1,015A6 1,035B5 1,060C4 1,110D1 600 y0 Ai 0, i 1,..., 6 Bi 0, i 1,3,5 Ci 0, i 1,4 D1 0 Таблица исходных данных и форма Поиск решения в Microsoft Excel: Рис. 20 Решение задачи в Microsoft Excel выглядит так: 29 Рис. 21 Итак, минимальный размер целевого фонда, позволяющий сделать необходимые выплаты, составляет 679 тыс. руб. Для получения такого результата нужно использовать типы вкладов В и С. Такой же результат можно получить и с помощью программы Mathcad: Рис. 22 30 Функция minimize возвращает вектор значений переменных, являющихся аргументами целевой функции, при которых ее значение будет минимальным. В первой колонке – порядковый номер переменной, начиная с нулевого, по очередности упоминания. Во второй – соответствующие значения переменных. При необходимости, присвоив переменным полученные значения, можно рассчитать и значение целевой функции. ЗАДАЧИ Задача 4.1 Предпринимателю требуется для закупки товара 10000 рублей через 3 месяца. Сберегательный банк предлагает предпринимателю внести определенную сумму денег по одному из типов вкладов: А (сроком на 1 месяц под 2%) или В (сроком на 3 месяца под 6%). Необходимо определить тип вклада, который позволит получить требуемые средства в течение трех месяцев, вложив минимальную сумму денег. Задача 4.2 Гражданин О. Бендер хочет приобрести некий мебельный гарнитур, стоимость которого 100 тыс. рублей. Администрация аукциона согласна на выплату в рассрочку, с условием, что 20 тыс. руб. О. Бендер выплатит через 2 месяца, а остальную сумму - через 4 месяца. Однако О. Бендер, справедливо полагая, что найти требуемую сумму ему не удастся, хочет получить средства путем вложения денег по одному из типов вклада: А (сроком на 1 месяц под 1,5%), В (сроком на 2 месяца под 3,5%) или С (сроком на 4 месяца под 8%). Какую сумму и по какому типу вклада нужно вложить О. Бендеру, чтобы через 4 месяца купить гарнитур? Задача 4.3 Уезжая в длительную заграничную командировку, некий бизнесмен решил вложить в банк имеющуюся у него наличность в размере 50 тысяч рублей, воспользовавшись одним из способов: Тип вклада A B C Срок вклада (мес.) 1 2 4 31 Процент по вкладу 1,5% 3,5% 8,0% Какую максимальную сумму денег сможет получить бизнесмен, вернувшись в Россию через 4 месяца? Задача 4.4 Студент Иванов 31 мая получил стипендию, равную 5000 рублей. Воспользоваться полученными деньгами студент планирует не ранее 1 сентября. У студента имеется возможность инвестировать полученные средства по одному из вариантов: Тип вклада A B Срок вклада (мес.) 1 3 Процент по вкладу 2% 6% Каким способом инвестирования стоит воспользоваться, чтобы получить 1 сентября максимальное количество наличных средств? 32 ТРАНСПОРТНАЯ ЗАДАЧА Общая постановка задачи: определить маршруты доставки различных объемов продукции от производителей к потребителям, минимизируя затраты на их транспортировку. Модель: m n cij x ij min j 1i 1 m x ij a i , i 1,..., n (16) j 1 n x ij b j , j 1,..., m i 1 x ij 0, где: ai - величина предложения продукции в пункте i; bj - величина спроса на продукцию в пункте j; cij - затраты на транспортировку единицы продукции из пункта i в пункт j; xij - количество продукции, перевозимое из пункта i в пункт j. n m i 1 j 1 В случае, если a i b j , транспортная задача называется замкнутой или сбалансированной. В противном случае имеется либо n m i 1 j 1 перепроизводство продукции, когда a i b j , либо ее дефицит: n m i 1 j 1 a i b j. Задача с перепроизводством или дефицитом продукции должна быть обязательно сведена к замкнутому виду. При перепроизводстве n m i1 j1 вводят фиктивного m+1-го потребителя, причем b m1 a i b j . Тогда замкнутая задача имеет вид: 33 m n n j 1i 1 i 1 c ij x ij c i, m 1y i min m x ij y i a i , i 1,..., n j 1 n x ij b j , j 1,..., m (17) i 1 n y i b m 1 i 1 x ij 0, y i 0, i 1,..., n , j 1,..., m, где: сi,m+1 - штраф за единицу нереализованной продукции в пункте i; yi - количество продукции, нереализованное в пункте i. В случае дефицита продукции действуют аналогично, вводя фикm n j 1 i 1 тивного n+1-го производителя, a n 1 b j a i . Тогда замкнутая задача имеет вид: m n m j 1i 1 j 1 c ij x ij c n 1, j y j min n x ij y j b j , j 1,..., m i 1 m x ij a i , i 1,..., n (18) j 1 m y j a n 1 j 1 x ij 0, y j 0, i 1,..., n , j 1,..., m, где: сn+1,j - штраф за единицу недопоставленной продукции в пункт j; yj - количество продукции, недопоставленное в пункт j. В условии транспортной задачи могут встречаться также дополнительные условия, например, запреты, ограничения на пропускные способности, фиксированные перевозки, введение новых мощностей и т.д. 34 Пример решения задачи: Компания, занимающаяся добычей железной руды, имеет четыре карьера. Производительность карьеров составляет 170, 130, 190 и 200 тыс. т ежемесячно. Железная руда из карьеров направляется на три обогатительные фабрики, мощности которых составляют 250, 150 и 270 тыс. т в месяц. Транспортные затраты (в тыс. руб.) на перевозку 1 тыс. т руды с карьеров на фабрики указаны в таблице: Карьер 1 Карьер 2 Карьер 3 Карьер 4 Фабрика 1 7 5 4 3 Фабрика 2 3 4 5 2 Фабрика 3 5 6 6 5 Определите план перевозок железной руды на обогатительные фабрики, который обеспечивает минимальные совокупные транспортные издержки. Решение: В данной задаче количество руды, вырабатываемой в месяц четырьмя карьерами, на 20 тыс. т больше, чем мощностные возможности трех фабрик за тот же временной период. Сведем задачу к замкнутому виду, добавив фиктивного четвертого потребителя. Модель рассматриваемой задачи выглядит так: 7 x11 3x12 5x13 5x 21 4 x 22 6 x 23 4x 31 5x 32 6x 33 3x 41 2x 42 5x 43 min x11 x12 x13 y1 170 x 21 x 22 x 23 y 2 130 x 31 x 32 x 33 y3 190 x 41 x 42 x 43 y 4 200 (19) x11 x 21 x 31 x 41 250 x12 x 22 x 32 x 42 150 x13 x 23 x 33 x 43 270 y1 y 2 y3 y 4 20 x ij 0, i 1,..., 4, j 1,..., 3 yi 0, i 1,..., 4 Заметим, что в целевую функцию не введены штрафы за нереализацию продукции в связи с их отсутствием в условии задачи. Введем исходные данные в таблицу Microsoft Excel: 35 Рис. 23 Решим задачу при помощи модуля Поиск решения: Рис. 24 Решим эту же задачу при помощи математической системы Mathcad: 36 Рис. 25 Присвоив переменным полученные в ходе оптимизации значения, получим значение целевой функции равным 2710, что полностью совпадает с решением, полученным при помощи Microsoft Excel. Это означает, что минимальные совокупные транспортные издержки в данной задаче равны 2710 тыс. руб. При этом значения переменных отражают количество руды (в тыс. т), перевозимое из карьера, определяемого первым индексом переменной, на фабрику, номер которой определяется вторым индексом. 37 ЗАДАЧИ Задача 5.1 Отдел грузовых перевозок компании "Русские железные дороги" получил 3 заказа на перевозку специально оборудованными составами нефтепродуктов по территории европейской части России. Заказчику в Москве требуется 5 составов, в Санкт-Петербурге - 4 состава, в Воронеже - 3 состава. В настоящий момент времени все свободные составы компании находятся в других городах - по 5 в Ярославле и Орле и 2 в Липецке. Время, затрачиваемое на перегон состава из одного города в другой, указано в таблице (в часах). Ярославль Орел Липецк Москва 6 7 9 Санкт-Петербург 5 14 16 Воронеж 15 8 4 Необходимо определить такой план доставки составов заказчикам, в соответствии с которым их перегон займет минимальное количество времени. Задача 5.2 Четыре фермерских хозяйства, находящиеся в Рязанской, Владимирской, Тверской и Смоленской областях, направляют выращиваемые овощи и фрукты на переработку и консервацию на один из трех заводов, которые расположены в Москве, Туле и Ярославле. Затраты на перевозку 1 т продукции представлены в таблице (в рублях): Рязанское Владимирское Тверское Смоленское Москва 500 400 400 600 Тула 700 800 700 600 Ярославль 800 300 400 700 В сезон Рязанское хозяйство производит 40 т продукции в неделю, Владимирское - 50 т, Тверское - 60 т, Смоленское - 70 т, в то время как завод в Москве может переработать в неделю 100 т продукции, в Туле - 50 т, в Ярославле - 40 т. Составьте план перевозок продукции из фермерских хозяйств на заводы с минимальными транспортными расходами, учитывая, что в связи с ремонтом трассы Москва-Рязань в неделю по ней можно перевезти не более 20 т продукции. 38 Задача 5.3 Транспортная компания "На колесах" заключила контракт с тремя мебельными фабриками на поставку высококачественной древесины, производимой одним из пяти поставщиков. Транспортные затраты на 1 тыс. м3 древесины содержатся в таблице: Поставщик I Поставщик II Поставщик III Поставщик IV Поставщик V Фабрика А 350 400 500 580 120 Фабрика В 400 590 380 240 220 Фабрика С 300 740 440 390 290 Потребности фабрики А составляют 120 тыс. м3 в месяц, фабрики В - 140 тыс. м3, фабрики С - 110 тыс. м3, в то время как каждый из поставщиков вырабатывает в тот же период 75 тыс. м3 древесины. Затраты на погрузку и разгрузку 1 тыс. м3 древесины составляют 30 руб. Технические возможности не позволяют перевозить древесину от поставщика V на фабрику В. Каковы минимальные затраты компании на выполнение условий контракта? Задача 5.4 Маркетинговый отдел литейного завода прогнозирует спрос на производимые заводом детали в начале следующего года: январь - 10 тыс. шт., февраль - 14 тыс. шт., март - 16 тыс. шт., апрель - 12 тыс. шт. При работе в одну смену можно изготавливать 12 тыс. деталей в месяц. Затраты на производство одной детали составляют 200 рублей. Если завод будет работать и во вторую смену, это позволит производить дополнительно 3 тыс. деталей в месяц, но затраты на производство одной детали во вторую смену составят уже 250 рублей. Хранение детали на складе обходится заводу в 10 рублей в месяц. Определите, сколько деталей нужно изготавливать каждый месяц, чтобы удовлетворить спрос с минимальными затратами. 39 ЗАДАЧА О НАЗНАЧЕНИЯХ Общая постановка задачи: требуется распределить n работ между n рабочими так, чтобы затраты на выполнение работ были минимальными или эффективность использования рабочей силы была максимальной. Модель задачи в случае минимизации затрат о назначениях выглядит так: n n c ij x ij min j 1i 1 n x ij 1, j 1,..., n (20) i 1 n x ij 1, i 1,..., n j 1 x ij 0, i 1,..., n , j 1,..., n , где: сij - затраты на выполнение i-м рабочим j-й работы; xij - переменная модели: xij=1, если i-й рабочий назначен на работу j, xij = 0, если i-й рабочий не назначен на работу j. В случае максимизации эффективности использования рабочей силы за сij обозначают коэффициент, показывающий эффективность выполнения i-м рабочим j-й работы, и задача решается на максимизацию целевой функции. Если количество рабочих не равно количеству работ, задача является открытой или несбалансированной и требует приведения к замкнутому виду путем введения недостающих рабочих или работ в необходимом количестве, для которых все сij = 0. Пример: Фирма получила заказ на разработку пяти программных продуктов. Для выполнения заказа решено привлечь пятерых наиболее опытных программистов. Каждый из них должен написать одну программу. В таблице приведены оценки времени в днях, необходимого программистам для выполнения каждой из этих работ: Галкин Палкин Малкин Чалкин Залкинд Программа1 Программа2 Программа3 Программа4 Программа5 46 59 24 62 67 47 56 32 55 70 44 52 19 61 60 47 59 17 64 73 43 65 20 60 75 40 Как распределить работы между программистами, чтобы общее количество человеко-дней, затраченное на выполнение заказа, было минимальным? Составим модель линейного программирования, отражающую условие: 46x11 59x12 24x13 62x14 67 x15 47x 21 56x 22 32x 23 55x 24 70x 25 44x 31 52x 32 19x 33 61x 34 60x 35 47 x 41 59x 42 17 x 43 64x 44 73x 45 43x 51 65x 52 20x 53 60x 54 75x 55 min 5 x ij 1, j 1,..., 5 (21) i 1 5 x ij 1, i 1,..., 5 j1 1 x ij , i 1,... 5; j 1,..., 5 0 Решим задачу при помощи Microsoft Excel: Рис. 26 41 При решении задач о назначении особый интерес вызывает способ ввода ограничений при заполнении формы модуля Поиск решения: Рис. 27 Проведенные расчеты показывают, что минимальное количество человеко-дней для выполнения заказа составляет 234. Назначение программиста для создания программы определяется наличием на пересечении строки и столбца значения 1. Рис. 28 42 Для решения задачи в Mathcad необходимо сначала задать целевую функцию, присвоить переменным их стартовые значения, а затем ввести ограничения, как показано на рис. 29. Рис. 29 Результатом вычислений с использованием функции minimize являются следующие значения переменных: x15 1 x 24 1 x 32 1 x 43 1 x 51 1 Значения остальных переменных равны нулю. Полученное решение означает, что Галкину будет поручено выполнение работы 5, Палкину – работы 4, Малкину – работы 2, Чалкину – работы 3, Залкинду – работы 1. Полученное решение не совпадает с решением этой задачи, полученным при помощи Microsoft Excel. Однако, присвоив переменным x 15 , x 24 , x 32 , x 43 , x 51 значения, полученные в процессе оптимизации, выясним, что значение целевой функции в данном случае равно 234. 43 При решении задачи в Microsoft Excel значение целевой функции тоже равно 234. Это свидетельствует о наличии как минимум двух альтернативных решений задачи, при которых общее количество затраченных человеко-дней будет минимальным. ЗАДАЧИ Задача 6.1 В Центральном административном округе города Москвы открываются 4 магазина торговли по предварительным заказам - в районах Басманный, Замоскворечье, Мещанский и Таганский. Идея проекта состоит в том, что товары хранятся на четырех централизованных складах, находящихся в Северном, Северо-Восточном, Южном и Западном административных округах, и несколько раз в день по мере поступления заказов доставляются в магазины небольшими партиями. Время, затрачиваемое на доставку продукции со складов в магазины, приведено в таблице (в минутах): Северный Северо-Восточный Южный Западный Басманный 20 15 35 30 Замоскворечье 30 25 15 20 Мещанский 15 20 30 20 Таганский 30 20 20 30 Руководство сети магазинов должно решить вопрос прикрепления магазинов к складам так, чтобы каждый склад обслуживал только один магазин, а время доставки товаров было минимальным. Задача 6.2 Фирма получила заказ на срочный перевод четырех книг с итальянского языка. Фирма может располагать услугами 5 переводчиков, способных выполнить работу такого уровня. Время в днях, за которое каждый переводчик справится с работой, приведено в таблице: Иванов Петров Сидоров Андреев Васильев Книга 1 10 8 12 14 11 Книга 2 25 12 18 23 20 Книга 3 14 16 17 15 18 Книга 4 25 28 33 30 28 Фирма использует повременную оплату труда. Переводчики имеют разную квалификацию, поэтому за день работы фирма платит 44 Иванову 700 рублей в день, Петрову - 800 рублей в день, Сидорову 600, Андрееву - 500, Васильеву - 550. Поскольку по оценке фирмы качество переводов в итоге будет примерно одинаковым, руководство фирмы просит Вас составить такое распределение работ, которое позволит минимизировать затраты на переводы. Задача 6.3 Компания "Евростройтур" организует экскурсионные автобусные туры по странам Европы. Компания получила 4 новых автобуса и предполагает направить их на маршруты во Францию, Италию, Чехию и Испанию. Каждый автобус обслуживают 2 водителя. Компанией приглашены 8 водителей, в различной степени знакомых с дорогами европейских стран (в % от экскурсионного маршрута): Александр Алексей Валентин Василий Николай Виктор Андрей Юрий Франция 56 56 63 96 44 74 23 89 Италия 43 38 94 89 62 85 59 45 Чехия 85 99 54 65 63 42 37 53 Испания 68 70 84 24 72 68 92 78 Необходимо распределить водителей так, чтобы общий показатель освоения маршрутов был максимальным. 45 ЛИТЕРАТУРА 1. Аронович А.Б., Афанасьев М.Ю., Суворов Б.П. Сборник задач по исследованию операций. - М.: Издательство Московского университета, 1997. - 256 с. 2. Афанасьев М.Ю., Суворов Б.П. Исследование операций в экономике: Учебное пособие. - М.: Экономический факультет МГУ, ТЕИС, 2002. - 312 с. 3. Гарнаев А.Ю. Excel, VBA, Internet в экономике и финансах. СПб.: БХВ-Петербург, 2003. - 816 с. 4. Партыка Т.Л., Попов И.И. Математические методы. – М.: Форум – Инфра-М, 2005. – 464 с. 5. Салманов О.Н. Математическая экономика с применением Mathcad и Excel. - СПб.: БХВ-Петербург, 2003. - 464 с. 6. Цисарь И.Ф., Нейман В.Г. Компьютерное моделирование экономики. - М.: "Диалог-МИФИ", 2002. - 304 с. 7. Microsoft Office 2000 Шаг за шагом: Практическое пособие / Перевод с английского . – М: Издательство ЭКОМ, 2000 – 792 с. 46 ДЛЯ ЗАМЕТОК 47 ДЛЯ ЗАМЕТОК 48