- •9. Методы решения систем уравнений
- •9.1. Точные методы решения систем уравнений и реализация их в пакете MathCad
- •9.2. Приближенные методы решения систем уравнений
- •10. Обработка экспериментальных данных
- •10.1. Понятие об интерполяции
- •10.2 Понятие об аппроксимации
- •10.3. Реализация процедур локальной интерполяции и аппроксимации в пакете MathCad
- •11. Численное дифференцирование и интегрирование
- •12. Метод линейного программирования поиска оптимального решения
- •Лабораторная работа №4
- •Лабораторная работа № 5 обработка экспериментальных данных Цель работы
- •Задание к работе
- •Лабораторная работа № 6 решение задач численного интегрирования и дифференцирования Цель работы
- •Задание к работе
- •Лабораторная работа № 7 решение задач линейного программирования Цель работы
- •Задание на лабораторную работу
12. Метод линейного программирования поиска оптимального решения
Имеется широкий (и жизненно важный) класс задач, в которых приходится что-то оптимизировать (расходы, прибыль, наибольший объем продукции, минимальные издержки производства), при этом необходимо учитывать ограничения (доходы, дефицитность ресурсов – машин, людей, сырья, топлива, зарплаты). Приведем следующий пример:
После часа пик (зимнее утро, к примеру) расход электроэнергии падает и необходимо снижать нагрузку электрогенераторов. Как это делать? Можно отключить отдельные турбогенераторы, а можно оставить их в работе, изменив нагрузку. Диспетчер энергосистемы дает соответствующие команды, ориентируясь на средний расход топлива по системе, выброс с дымовыми газами вредных веществ в атмосферу, износ оборудования, степень готовности электростанций и дальше менять нагрузку и т.д. Переменные такой оптимизации могут быть и вещественными (мощность отдельного энергоблока, которая меняется, естественно, в разумных пределах, определяемых техническими условиями – ограничения в задаче) и целочисленными (число работающих блоков). В экономике оптимизационные задачи возникают в связи с многочисленностью возможных вариантов функционирования конкретного экономического объекта, когда возникает ситуация выбора варианта, наилучшего по некоторому правилу – например, иметь минимум затрат, максимум продукции.
В
задачах данного типа важно составить
математическую модель рассматриваемой
проблемы и выразить качество решения
с помощью функции нескольких переменных,
которая называется целевой
функцией
.
Для
нахождения оптимального результата
требуется осуществлять поиск экстремума
(наибольшего или наименьшего значения)
этой функции при ограничениях, наложенных
на ее переменные. Эти ограничения имеют
вид
(i
= 1,2, .., n),
где gi
—
заданные функции, а
—
некоторые действительные числа. Задачи
поиска экстремума целевой функции
называются задачами математического
программирования.
Если
целевая функция задачи
и все функции ограничений
— линейные, то соответствующая задача
являетсязадачей
линейного
программирования.
Если хотя бы одна из указанных функций
— нелинейная, то соответствующая задача
является задачей нелинейного
программирования. Обычно к задаче
линейного программирования сводится
т.н. транспортная
задача,
в которой необходимо составить оптимальный
план перевозок (минимум расходов) при
фиксированных расценках на каждый из
маршрутов.
В
общем виде задача линейного программирования
ставится следующим образом: найти вектор
,
максимизирующий линейную форму (целевой
функцией задачи)
,
(12.1)
и удовлетворяющий условиям:
(12.2)
(12.3)
Условия
(11.2) называются функциональными, а (11.3)
— прямыми ограничениями задачи. Вектор
,
компоненты которого удовлетворяют
функциональным и прямым ограничениям
задачи, называется планом или допустимым
решением задачи линейного программирования.
Все допустимые решения образуют область
определения задачи линейного
программирования, или область допустимых
решений. Допустимое решение, максимизирующее
целевую функцию
,
называется оптимальным планом задачи:
,
где
- оптимальное решение ЗЛП.
В пакете MathCAD решение задачи линейного программирования обычно ищется с помощью блока решений. Он открывается ключевым словом Given и завершается ключевым словом Maximize (или Minimize). Перед заголовком блока записываются следующие значения – выражение для целевой функции задачи, вектора и матрицы, необходимые для записи условий ограничения, значения начальных приближений для переменных оптимального плана. Внутри блока записываются условия функциональных и прямых ограничений задачи.
Приведем пример решения задачи линейного программирования на примере транспортной задачи в пакете MathCAD. Пусть на трех складах - А1, А2, АЗ хранится однотипная продукция в количестве соответственно 310, 250, 280 единиц. Эту продукцию необходимо доставить потребителям В1, В2, В3 по их заказам: 220, 370, 250 единиц соответственно. Стоимость перевозки одной условной единицы груза из каждого пункта отправления в каждый пункт назначения задается таблицей 12.1. На рис. 12.1 приведен фрагмент документа MathCAD, в котором решается данная задача.
Табл. 12.1. Тарифы перевозок
|
|
Потребители | ||
|
Склады |
В1 |
В2 |
В3 |
|
А1 |
10 |
8 |
6 |
|
А2 |
6 |
5 |
4 |
|
А3 |
3 |
4 |
5 |
|
Рис. 12.1 Пример решения задачи линейного программирования |

