Фирма производит три вида продукции (A, B, C), для выпуска каждого требуется определенное время обработки на всех четырех устройствах.
Вид продукции | Время обработки, ч. | Прибыль, у.е. | |||
I | II | III | IV | ||
A | |||||
B | |||||
C |
Рассчитать оптимальный план производства, если допустимое время работы на устройствах I, II, III, IV составляет соответственно 84, 42, 21 и 42 часа.
Экономико-математическая модель задачи имеет вид:
Целевая функция: func:=3*A+6*B+4*C.
Ограничения: 1∙А+6∙B+3∙C<=84
3∙A+1∙B+3∙C<=42
1∙A+3∙B+2∙C<=21
2∙A+3∙B+4∙C<=42
A,B,C – неотрицательные (> =0)
A,B,C – целочисленные.
Здесь A,B,C – количество производимой продукции каждого вида.
Приведем решение в системе Maple с использованием библиотеки simplex:
> func:=3*A+6*B+4*C;
> ogran:={1*A+6*B+3*C<=84, 3*A+1*B+3*C<=42, 1*A+3*B+2*C<=21, 2*A+3*B+4*C<=42};
> rez:=maximize(func, ogran, NONNEGATIVE);
> rez:=evalf(rez,3);
> F:=subs(rez,func);
Решение в системе Maple с использованием библиотеки Optimization:
>restart;
>with(Optimization);
[ImportMPS, Interactive, LPSolve, LSSolve, Maximize, Minimize, NLPSolve, QPSolve]
>func:=3*A+6*B+4*C;
3A+6B+4C
>ogran:={1*A+6*B+3*C<=84, 3*A+1*B+3*C<=42, 1*A+3*B+2*C<=21, 2*A+3*B+4*C<=42};
{1A+6B+3C<=84, 3A+1B+3C<=42, 1A+3B+2C<=21, 2A+3B+4C<=42};
>LPSolve(func, ogran, assume={nonnegative, integer},maximize);
[54., [A=12, B=3, C=0]]
Следует отметить, что библиотека simplex не предусматривает параметра для наложения ограничения целочисленности на переменные. Поэтому результаты оптимизации различаются. Таким образом, при необходимости получения целочисленного решения оптимизационных задач использование библиотеки Optimization предпочтительно.
Пример 3. Решить задачу нелинейного программирования, используя библиотеку Optimization.
Предприятие выпускает два вида продукции. Для изготовления продукции требуется ресурсы трех видов. С учетом брака расход ресурсов на единицу производимой продукции j-го вида определяется выражением: aij+kij xj, а прибыль в зависимости от объемов производства равна рj+ ljxj где
xj– | искомый объем производства продукции j-го вида, |
aij– | норма расхода i-го ресурса на производство единицы продукции j-го вида, |
kij– | коэффициент изменения расхода соответствующего ресурса с учетом выпуска бракованных изделий, |
рj- | прибыль от единицы продукции j-го вида , |
lj – | коэффициент изменения прибыли, влияющий на объем производства продукции. |
Требуется найти такие объемы производства продукции, при которых прибыль максимальна.
Исходные данные к задаче приведены в таблице 1.
Таблица 1. Исходные данные
Ресурс(i) | Запас ресурса | Норма расхода ресурсов aij на продукцию вида j | Коэффициент изменения норм расхода ресурсов kij на продукцию вида j | ||
0,1 | 0,05 | ||||
0,2 | 0,2 | ||||
0,1 | 0,15 | ||||
Прибыль (ден. ед.) | |||||
Коэффициент изменения прибыли | -0,08 | -0,1 |
Составим математическую модель задачи.
При заданных значениях параметров целевая функция имеет вид:
f(x1,x2)=(100-0.8x1)x1+ (120-0.1x2)x2 à max,
или
f(x1,x2)=100x1-0.8x12+120x2-0.1x22 à max.
Ограничения по ресурсам имеют вид:
(15+0.1x1)x1+(18+0.05x2)x2 ≤ 1350
(12+0.2x1)x1+(16+0.2x2)x2 ≤1400
(17+0.1x1)x1+(14+0.15x2)x2 ≤ 1580
или
15x1+0.1x12+18x2+0.05x22 ≤ 1350
12x1+0.2x12+16x2+0.2x22 ≤ 1400
17x1+0.1x12+14x2+0.15x22 ≤ 1580
X1 ≥ 0, x2 ≥ 0
Поскольку требуется рассчитать объемы производства продукции в усл. ед., ограничение целочисленности не накладывается.
Решение в системе Maple с использованием библиотеки Optimization:
>restart:with(Optimization);
>func:=100*x1-0.08*x1^2+120*x2-0.1*x2^2;
>ogran:={15*x1+0.1*x1^2+18*x2+0.05*x2^2<=1350,12*x1+0.2*x1^2+16*x2+0.2*x2^2<=1400, 17*x1+0.1*x1^2+14*x2+0.15*x2^2<=1580};
>rez:=NLPSolve(func,organ,assume=nonnegative,maximize);
>rez:=evalf(rez,3);
Максимальная прибыль в размере 7220 ден. ед.будет получена при объеме производства продукции первого вида, составляющем 32,6 усл.ед, продукции второго вида 34,7 усл.ед.
Таким образом, используя возможности СКМ Maple можно с успехом рассчитывать экономические модели разных видов.
Лекция 9