- •1. Цели и задачи системного анализа
- •1.1. Определения системного анализа
- •1.2. Понятие сложной системы
- •1.3. Характеристика задач системного анализа
- •1.4. Особенности задач системного анализа
- •1.5. Прогнозирование и планирование
- •2. Характеристика этапов системного
- •2.1. Процедуры системного анализа
- •2.2. Анализ структуры системы
- •2.3. Сбор данных о функционировании системы
- •2.4. Построение моделей систем
- •2.5. Проверка адекватности моделей
- •2.6. Определение целей системного анализа
- •2.7. Формирование критериев
- •2.8. Генерирование альтернатив
- •2.9. Реализация выбора и принятия решений
- •3. Построение моделей систем
- •3.1. Понятие модели системы
- •3.2. Способы описания систем
- •3.3. Анализ и синтез - методы исследования систем
- •3.4. Декомпозиция и агрегирование
- •4. Эксперимент – средство построения
- •4.1. Характеристика эксперимента
- •4.3. Обработка экспериментальных данных
- •4.4. Вероятностное описание событий и процессов
- •4.5. Описание ситуаций с помощью нечетких моделей
- •4.6. Характеристика и классификация статистической
- •5. Математическое программирование
- •5.1. Математические постановки задач, приводящие
- •5.2 Задача линейного программирования
- •5.3. Решение задач линейного программирования
- •5.5. Дискретное программирование
- •6. Выбор или принятие решений
- •6.1. Характеристика задач принятия решений
- •6.2. Критериальный способ описания выбора
- •6.3. Выбор в условиях неопределенности
- •6.4. Концепция риска в задачах системного анализа
- •6.5. Принятие решений в условиях стохастической
- •6.6. Выбор при нечеткой исходной информации
- •6.8. Коллективный или групповой выбор
5.2 Задача линейного программирования
Постановка задачи линейного программирования. Задачи линейного программирования (ЗЛП) - простейший тип оптимизационных задач. Постановка данной задачи выглядит следующим образом.
Имеется множество переменных X = (х1 , х2,..., хп). Целевая функция линейно зависит от управляемых параметров:
Имеются ограничения, которые представляют собой линейные формы:
Задача линейного программирования формулируется так: определить максимум линейной формы
F(x1, x2.,. ., хп) = max(clx1 + с2х2 +... + спхп)
при условии, что точка (x1 , x2 ,..., хп) принадлежит некоторому множеству D которое определяется системой линейных неравенств
Любое множество значений, которое удовлетворяет системе неравенств задачи линейного программирования, является допустимым решением данной задачи.
Задачу линейного программирования удобно представлять в векторной форме, тогда она будет выглядеть:
max F(x) = max (cТ x),
АХ≤ Р0,
Х≥ 0,
где с = (c1 , c2,..., сп) представляет собой n - мерный вектор, составленный из коэффициентов целевой функции, причем ст-транспонированная вектор-строка; Х = (x1 , x2 ,..., хп) – n-мерный вектор переменных решений; Р0 – m-мерный вектор свободных членов ограничений; матрица А размером (m х п) - матрица, составленная из коэффициентов всех линейных ограничений.
Простые ЗЛП допускают геометрическую интерпретацию, позволяющую непосредственно из графика получить решение и проиллюстрировать идею решения более сложных задач линейного программирования.
Каноническая форма задачи линейного программирования. Любую задачу линейного программирования можно свести к некоторой стандартной форме с ограничениями, записанными в виде уравнений. Это достигается путем введения свободных переменных во все ограничения. Свободная переменная учитывает разницу между правой и левой частями неравенства. Пусть хп+1 -дополнительная переменная, которая численно равна
хп+2 - дополнительная переменная, которая численно равна
и т.д.
В результате получаем новую систему ограничений:
Целевая функция будет иметь вид
max F(x) = max(cTx)
при условии
АХ1 + ВХ2=Р0,
Х1 > 0,
X1 > 0,
где X1 - вектор первоначальных переменных; Х2 - вектор свободных переменных; В - единичная матрица т х п.
Такую форму записи называют канонической формой задачи линейного программирования. В канонической форме ограничения записываются в виде равенств.
При записи задачи линейного программирования в стандартной или канонической форме число линейно независимых уравнений, как правило, меньше числа переменных (на практике всегда т < п, где т - число уравнений). Отметим некоторые свойства, касающиеся системы ограничений:
уравнения линейно независимы, если ни одно из них не может быть получено из остальных путем алгебраических преобразований, т.е. никакие из них не являются следствием остальных;
если число независимых уравнений больше числа переменных, то такая система не имеет решения и называется несовместимой;
если число независимых уравнений равно числу переменных, то такая система имеет единственное решение, которое либо оптимально, если все компоненты положительны, либо недопустимо, если хотя бы одна из компонент отрицательна;
если удается найти множество неотрицательных значений Х= (x1 х2,..., хп), которое является решением системы т линейных уравнений с п+т неизвестными, то такое решение называют базисным, а ненулевые переменные - базисными переменными.
Пример задачи линейного программирования. Рассмотрим двухмерную задачу линейного программирования.
Пусть требуется найти максимум линейной формы
max F(x1, x2) = max(x1 + 2x2)
при условии
x1+х2 ≤120,
0 ≤ х1 ≤ 100,
0≤ x2≤75.
Изобразим область, описываемую совокупностью ограничений на плоскости (рисунок 5.1). Переменные х1 и х2 неотрицательные, поэтому множество точек, являющихся возможными решениями задачи, находятся в I квадранте. Заменим знак в х1+ х2 ≤ 120 на знак равенства, получим уравнение прямой: х1 + х2 = 120. Эта прямая делит плоскость на две полуплоскости. Все точки одной полуплоскости удовлетворяют неравенству х] + х2 > 120, другой - неравенству х1 + х2 < 120.
Построив аналогичные прямые х1 =100 и х2 = 75, получим многоугольник, множество точек которого удовлетворяет всем неравенствам системы ограничений. Этот многоугольник и представляет собой область допустимых решений D.
Из множества точек (х1 x2) многоугольника необходимо выбрать такую, в которой функция F(х1 ,x2) = (х1 + 2х2) принимает максимальное значение.
Рис. 5.1. Геометрическая интерпретация задачи линейного программирования
Для некоторого фиксированного значения F* линейная функция F*(x1, х2) = (x1 + 2х2) представляет собой прямую линию. Задаваясь различными значениями F* получим семейство параллельных прямых. Увеличение значений линейной функции соответствует перемещению прямой параллельно самой себе вверх. Следовательно, как видно из рисунка 6.1, максимальное значение целевой функции на допустимом множестве точек соответствует прямой, проходящей через точку z пересечения прямых x1 + х2= 120 и х2= 75.
Решив эту систему, получим x1 = 45. Тогда максимальное значение функции F = max(x1 + 2x2) =195.