
- •Примеры постановки и решения задач в Mathcad и Excel «Решение систем линейных алгебраических уравнений (слау)»
- •Решение систем уравнений в Mathсad:
- •Решение линейных алгебраических систем слау в Excel
- •«Решение задач линейного программирования (лп)»
- •«Решение транспортной задачи (тз) )»
- •«Решение задачи о назначениях (зн»
- •Решение задачи х.1
«Решение задач линейного программирования (лп)»
Методы линейного программирования получили широкое распространение при решении практических задач, связанных с составлением оптимальных производственных планов, графиков обслуживания потребителей, оптимальным распределением ресурсов, транспортных потоков, размещением оборудования, с составлением различного рода смесей и т.д.
Основные сведения
В большинстве оптимизационных задач зависимости между переменными xiлинейны. Линейность математической модели предполагает наличие у нее свойств пропорциональности и аддитивности.
Свойство пропорциональностьозначает то, что вклад каждой переменной в целевую функцию ЦФ и общий объем потребления соответствующих ресурсов прямо пропорционален уровню (величине) этой переменной.
Аддитивностьзаключается в том, что целевая функция ЦФ представляет собой сумму вкладов от различных переменных. Аналогично левая часть каждого ограничения должна представлять собой сумму расходов, каждое слагаемое которой пропорционально величине соответствующей переменной. Если, например, фирма, производит два конкурирующих вида продукции, увеличение сбыта одного из которых отрицательно сказывается на объеме реализации другого, то такая модель не обладает свойством аддитивности.
Математическая модель задачи линейного программирования (ЛП) в достаточно общем случае формулируется следующим образом:
F=c1x1+c2x2+... + cnxn min(илиmax); (F- целевая функция ЦФ)
при следующих ограничениях на вектор искомых переменных x={xi}:
a11 x1 + a12 x2 + ... + a1n xn (=, ) b1
a21 x1 + a22 x2 + ... + a2n xn (=, ) b2
………………. .
am1 x1 + am2 x2 + ... + amn xn (=, ) bm
xj 0, j=1, 2, ... n
Для решения задач ЛП различных типов с помощью компьютерных средств удобно использовать математический пакет Mathcadи табличный процессорExcel.Ниже рассматриваются примеры решения типовых задач ЛП с применением этих программных средств.
В среде Mathcad решение задачи ЛП находится в рамках так называемых вычислительных блоков (начинаются с ключевого словаGiven) с использованием встроенных функцийMminimizeилиMaximizeдля минимизации или минимизации целевой функции. В прилагаемых примерах приведены решения нескольких типовых задач, в которых показано, что и как должно быть введено для получения решения. Целевую функцию и ограничения можно записывать в виде отдельных выражений, а также и в векторно-матричной форме, которая является лишь более удобной и компактной формой записи условий задачи ЛП.
В пакете Excel задачи ЛП решают с помощью встроенной функции «Поиск решения».
А. Одноиндексные задачи ЛП
Пример А.1. Решение одноиндексной задачи ЛП в Mathcad
Пример А.2. Решение одноиндексной задачи ЛП в Mathcad
Пример А.3. Задача планирования объемов производства
Задача №1. Фирма производит изделия двух видов A1 и A2 с помощью последовательной обработки каждой из них в трех цехах. Исходные данные задачи приведены в таблице:
Названия цехов
|
Нормы затрат времени на 1 изделие, час/сут
|
Объем ресурсов, час/сут | |
изделие А1 |
изделие А2 | ||
В1 |
0,1 |
0,2 |
12 |
В2 |
0,2 |
0,1 |
10 |
В3 |
0,3 |
0,3 |
21 |
Прибыль на одно изделие, у.е. |
65 |
80 |
|
Определить количества xj, j = 1,2 , изделий Aj , которые необходимо изготовить для достижения максимальной прибыли
F = 65·x1 + 80·x2, (3.1)
т.е. найти оптимальный план суточного выпуска изделий А1 и А2. Это типичная задача производственного планирования.
Отметим, что значения x1и x2не могут быть выбраны произвольно, так как существуют ограничения на суточное время работы в цехах. Эти ограничения записываются в виде:
0,1·х1+ 0,2·х2≤ 12
0,2·х1+0,1·х2 ≤10
0,3·х1+ 0,3·х2 ≤ 21 (3.2)
Кроме того значения x1и x2не могут быть отрицательными:
x1 ≥ 0; x2 ≥ 0; (3.3)
Требуется найти такое неотрицательное решение x1, x2системы линейных неравенств (3.2), при котором целевая функция (3.1) принимает максимальное значение.
Решение одноиндексной Задачи №1 в системе Mathcad
Целевая функция F:
F(x) := 65x1 + 80x2
Описание ограничений в матричном виде:
- матрица Мсодержит коэффициенты при неизвестных в левой части ограничений, а векторv- правые части исходных неравенств:
M:=v:=
(3.2)
Решим задачу с помощью вычислительного блока
Given ... Maximize
Для формирования нулевого приближения полагаем значение х2равным нулю (инициализация решения)
x2 := 0
Given
M*x ≤ v x ≥ 0
Таким образом, точка максимума целевой функции F имеет координаты x1 = 20, x2 = 50, а значение ее значение в точке максимума:
.
Решение одноиндексной Задачи 1 в пакете Excel
Для решения оптимизационных задач в табличном процессоре Excelиспользуется пункт «Поиск решения» (Solver – Решатель) в меню «Сервис» на панели инструментов. Если этого пункта нет, то необходимо установить соответствующую надстройку. Для этого в менюСервиснужно выбрать пунктНадстройкии в диалоговом окне установить флажок слева от надписи «Поиск решения». В меню «Сервис» появится пункт «Поиск решения».
Решение.В соответствии сисходнымиданнымиЗадачи 1составим и заполним вExcel следующую таблицу
Числа в ячейках столбца «Ограничения»подсчитаны с помощью формул. Формула=СУММПРОИЗВ(В3:С3;$B$7:$C$7)-D3введена в ячейкуF3и продолжена в ячейкиF4:F5таблицы.
Эта формула также скопирована в F6, но без вычитаемогоD6. Выделим ячейкуF6 с целевой функцией и вызовем Решатель «Сервис/ Поиск решения». В диалоговом окне укажем: «Установить целевую ячейку:»$F$6, «максимальное значение», «Изменяя ячейки:»$B$7:$C$7, «Ограничения:»$F$3:$F$5 <= 0.
Так как все ограничения имеют одинаковые знаки «<=», тоздесьони введены блоком. Заметим, что количества xj , j = 1, 2 изделий являютсяцелымичислами. Поэтому необходимо наложить еще одно ограничение:$B$7:$C$7=целое(целочисленная оптимизация).
В окне «Параметры» установим флажки «Линейная модель» и «Неотрицательные значения». Запустим «Выполнить».
Поиск решениявернет результат: х1= 20; х2= 50. Целевая функция равна Fmax = 5300. Этот результат поиска максимума функции F совпадает с результатами, полученными ранее с помощью пакета Mathcad.
Пример А.4. Задача о сплавах
Задача №2. Для изготовления сплава из меди, олова и цинка в качестве сырья используют два сплава тех же металлов, отличающихся составом и стоимостью. Данные об этих сплавах приведены в таблице:
Компоненты сплава |
Содержание компонентов в сплаве №i, % | |
Сплав № 1 |
Cплав № 2 | |
Медь |
10 |
10 |
Олово |
10 |
30 |
Цинк |
80 |
60 |
Стоимость1 кг, у.е. |
5 |
4 |
Полученный сплав должен содержать не более 2 кг меди, не менее 3 кг олова, а содержание цинка может составлять от 7,2 до 12,8 кг.
Определить количества xj, j = 1, 2 сплавов каждого вида, обеспечивающие получение нового сплава с минимальными затратами на сырье.
Эта задача математически формулируется следующим образом.
Требуется найти минимумцелевой функции
F = 5·x1+ 4·x2, (6.1)
при следующих ограничениях:
0,1x1+ 0,1x2≤2,
0,1x1+ 0,3x2≥3,
0,8x1+ 0,6x2≥7,2 (6.2)
0,8x1+ 0,6x2≤12,8
x1,x2≥0
Эти неравенства описывают ограничения, накладываемые на количество того или иного металла в полученном сплаве.
Решение Задачи №2 в Mathcad
Целевая функция:
F(x):= 5x1+4x2
Предварительно поменяв знаки второго и третьегонеравенств (6.2) на противоположные, опишем ограничения с помощью матрицМиv:
M:=v:=
Решим задачу с помощью вычислительного блока Given...minimize.
Инициализация решения:
x2:= 0
Given
M* x ≤ v x ≥ 0
Minimize(F,
x)=
Т.е, точка минимума целевой функции F имеет координаты x1 = 2, x2= 9.333333
Значение функции F в точке минимума:
Решение Задачи №2 в среде EXCEL
В соответствии с данными Задачи 2составим и заполним в Excel следующую таблицу:
В этой таблице ячейкам В2иВ3присвоены имена х и у соответственно с помощью команд «Вставка/ Имя► Присвоить…».
В ячейки В2иВ3занесены нулевые значения. В ячейкиВ6,В9-В12введены формулы, указанные в таблице 8.1 справа от соответствующих ячеек.
Выделим ячейку B6 с формулой для целевой функцией и вызовем Решатель «Сервис/ Поиск решения». В диалоговом окне укажем: «Установить целевую ячейку:»$B$6, «минимальное значение», «Изменяя ячейки:»$B$2:$B$3, «Ограничения:»$B$9 <= 2;$B$10 >=3;$B$11 >=7,2;$B$12 <=12,8(рис. 8.1).
Рис. 8.1
В окне «Параметры» установим флажки «Линейная модель» и «Неотрицательные значения». Запустим «Выполнить». Поиск решения вернет результат: х = 2; y = 9,333333333. Целевая функция равна Fmin = 47,33333333. Этот результат поискаминимумафункции F совпадает с результатами, полученными ранее в системеMathcad.
Б. Пример двухиндексной задачи ЛП (о загрузке оборудования).
Задача 3 Имеются три землеройные машины вида М1, М2, М3. Нужно выполнить три вида землеройных работ (А, В, С) в количестве: А – 6000 м3; В – 5000 м3; С –8000 м3. Все необходимые данные приведены в следующей таблице:
Машины |
Производит. Pijм3/ч |
Стоимость 1 часа Cij, грн./ч |
Ресурсы времени Ti, ч. | ||||
A |
B |
C |
A |
B |
C | ||
М1 |
30 |
20 |
40 |
2 |
4 |
3 |
200 |
М2 |
20 |
30 |
50 |
3 |
2 |
2 |
150 |
М3 |
40 |
40 |
20 |
5 |
3 |
6 |
150 |
Объем работ Vi, м3/ |
6000 |
5000 |
8000 |
|
|
|
|
Нужно найти оптимальный план загрузкимашин, обеспечивающий минимальные суммарные денежные затраты на выполнения всего объема работ при заданном ресурсе времени.
Решение
Построение математической модели задачи.
Обозначим через Xij– время работыi– ой машины наj– ом виде работ (i=1, 2, 3;j= 1, 2, 3).
Целевая функцияZ(ЦФ) выражает затраты денежных средств на выполнение работ:
Z = 2X11 + 4X12 + 3X12 + 3X21 + 2X22+ 2X23 +5X31 + 3X32 + 6X33 min
или
Здесь Cij– стоимость 1 часа работыi– ой машины наj– ом виде работ.
Ограничения:
Объем работ должен быть выполнен
30X11+ 20X21+ 40X31= 6000;
20X12+ 30X22+ 40X32= 5000;
40X13 + 50X23 + 20X33 = 8000.
или
Здесь Рij– производительностьi– ой машины наj– ом виде работ.
Ограничения на ресурс времени.
X11+X12+X13150;
X21+X22 +X23200;
X31+X32+X33150.
или
Неотрицательность плана работ.
Xij0 (i=1, 2, 3;j= 1, 2, 3)
Решение Задачи 3 в Mathcad