- •Институт холода и биотехнологий
- •Основы научных исследований, организации и планирования эксперимента Учебно-методическое пособие
- •Санкт-Петербург
- •Введение
- •1. Методология математического моделирования технологических машин и оборудования пищевых производств
- •1.1. Основные понятия планирования эксперимента (активный эксперимент)
- •Полный факторный эксперимент для построения модели зависимости качества измельчения от конструктивных параметров рабочих органов
- •Планирование эксперимента для построения модели зависимости качества измельчения от конструктивных параметров рабочих органов
- •1.2. Особенности обработки данных при пассивном эксперименте
- •Системы нормальных уравнений для различных форм связи
- •Замена переменных для линеаризации моделей
- •Данные пассивного эксперимента о выходе продукции
- •Корреляционная матрица
- •Результаты математико-статистической обработки
- •2. Решение задачи оптимизации технологических машин и оборудования пищевых производств методами линейного программирования
- •2.1. Алгоритм решения простых задач условной оптимизации
- •2.2. Решение задачи линейной оптимизации средствами Excel и Mathcad
- •Условия задачи линейного программирования
- •3. Варианты домашних заданий
- •Экспериментальные данные по испытаниям трубчатого теплообменника
- •Список литературы
- •Содержание
- •Институт холода и биотехнологий
- •Учебно-методическое пособие
2.2. Решение задачи линейной оптимизации средствами Excel и Mathcad
Задача линейного программирования, которая является частным случаем задачи оптимизации, записывается следующим образом:
F = CjXj max (min, сonst),
аij Xj bi,
dj Xj Dj,
i = 1, m; j = 1, n.
Задача линейного программирования является достаточно распространенной задачей принятия оптимальных решений. Аналитический метод решения задач линейного программирования заключается в следующем:
– найти вершины области допустимых решений (ОДР) как точки пересечения ограничений;
– определить последовательно значения целевой функции в вершинах.
Вершина, в которой целевая функция приобретает оптималь-ное (максимальное или минимальное) значение, считается оптимальной вершиной. Координаты этой вершины и являются искомыми оптимальными значениями переменных.
Решение данной задачи рассмотрим на примере задачи распределения ресурсов. Если финансы, оборудование, сырье и даже людей считать ресурсами, то значительное число задач можно рассматривать как задачи распределения ресурсов. Достаточно часто математической моделью таких задач является задача линейного программирования.
Рассмотрим следующий пример. Требуется определить, в каком количестве надо выпускать продукцию четырех типов (Прод1, Прод2, Прод3, Прод4), для изготовления которой требуются ресурсы трех видов: трудовые, сырье, финансы. Количество ресурса каждого вида, необходимое для выпуска единицы продукции данного типа, называется нормой расхода. Нормы расхода, прибыль, получаемая от реализации единицы каждого типа продукции, а также наличие располагаемого ресурса приведены в табл. 2.1.
Таблица 2.1
Условия задачи линейного программирования
№ пп |
A |
B |
C |
D |
E |
F |
G |
1 |
Ресурс |
Прод1 |
Прод2 |
Прод3 |
Прод4 |
Знак |
Наличие |
2 |
Прибыль |
60 |
70 |
120 |
130 |
Мax |
– |
3 |
Трудовые |
1 |
1 |
1 |
1 |
|
16 |
4 |
Сырье |
6 |
5 |
4 |
3 |
|
110 |
5 |
Финансы |
4 |
6 |
10 |
13 |
|
100 |
Составим математическую модель, для чего введем следующие обозначения:
Хj – количество выпускаемой продукции j-го типа, j =14 ;
bi – количество располагаемого ресурса i-гo вида, i = 13 ;
aij – норма расхода i-гo ресурса для выпуска единицы продукции j-гo типа;
сj – прибыль, получаемая от реализации единицы продукции j-гo типа.
Затем приступим к составлению модели. Как видно из табл. 2.1, для выпуска единицы Прод1 требуются шесть единиц сырья, значит, для выпуска всей продукции Прод1 необходимо 6xi единиц сырья, где xi – количество выпускаемой продукции Прод1. С учетом того что для других видов продукции зависимости аналогичны, ограничение по сырью будет иметь вид
6х1 + 5х2 + 4х3 + 3х4 110.
В данном ограничении левая часть равна величине требуемого ресурса, а правая показывает количество имеющегося ресурса.
Аналогично можно составить ограничения для остальных ресурсов и написать зависимость для целевой функции. Тогда математическая модель задачи будет иметь вид
F = 60x1 + 70x2 + 120x3 + 130x4 max;
x1 + x2 + x3 + x4 16;
6x1 + 5x2 + 4x3 + 3x4 110;
4x1 + 6x2 + 10x3 + 13x4 100;
xj 0; j = 14.
Для аналитического решения задач линейного программирования разработан специальный алгоритм направленного перебора вершин. Этот алгоритм обеспечивает переход от одной вершины к другой в таком направлении, при котором значение целевой функции от вершины к вершине улучшается. Данный метод называют симплекс-методом. Вычисления, обеспечивающие определение значения целевой функции и переменных в одной вершине, называют итерацией.
Алгоритм симплекс-метода сводится к следующему:
1) записать задачу в канонической форме;
2) разделить переменные на базисные и свободные;
3) выразить базисные переменные через свободные переменные;
4) проверить неотрицательность базисных переменных;
5) выразить функцию цели f через свободные переменные;
6) вычислить полученное базисное решение и функцию цели f на нем, приравняв к нулю свободные переменные.
Если все коэффициенты свободных переменных имеют один знак, то задача решена.
Если нет, то определить включаемую в число базисных новую переменную.
Вернуться к п. 3 и повторять все этапы, пока не будет получен необходимый результат.
Реализация симплекс-метода в Excel осуществлена с использованием надстройки «Поиск решения».
Для решения задачи необходимо:
– создать форму для ввода условий задачи;
– указать адреса ячеек, в которые будет помещен результат решения (изменяемые ячейки);
– ввести исходные данные;
– ввести зависимость для целевой функции;
– ввести зависимости для ограничений;
– указать назначение целевой функции (установить целевую ячейку);
– ввести ограничения;
– ввести параметры решения для задачи линейного программирования.
Реализация симплекс-метода в пакете Mathcad может быть осуществлена с помощью операторов символьных вычислений.
Систему ограничений записывают после набора оператора Given. Для записи знака равенства в уравнениях необходимо использовать комбинацию клавиш «Ctrl» и «=». Далее необходимо использовать оператор Find (x1, x2, …, xM) , в скобках которого указаны все базисные переменные, а стрелка набирается при помощи клавиш «Ctrl» и «>». Аналитическое решение получают с помощью команды «Live Symbolics» из меню.
Пример:
Given
2 * х1 + 4 * х2 – 2*х3 + у1 = 400
0.6 * x1 + 0.2 * x2 + y2 = 65
2 * x1 + 4 * x2 + y3 = 1000
x3 + y4 = 250
–0.5 * x1 – 0.5 * x3 + 0.25 * y1 + 100
Find (x2,y2 y3 y4) –0.5 * x1 – 0.1 * x3 + 0.05 * y1 + 45
–2 * x3 + y1 + 600
–1 * x3 + 250
Полученные описанными методами значения переменных доставляют наибольшее (наименьшее) значение целевой функции и являются решением поставленной задачи линейной оптимизации технологической машины, оборудования или процесса пищевых производств.