- •Алгоритмы решения общей задачи линейного программирования
- •Графический метод
- •Этапы решения задач линейного программирования графическим методом
- •Решение задач линейного программирования в ms excel
- •Симплекс-метод решения задач линейного программирования
- •I опорное решение.
- •II опорное решение.
- •III опорное решение.
- •Транспортная задача. Алгоритм решения методом поиска минимального элемента
- •Основные свойства транспортной задачи
- •Построение опорного плана транспортной задачи
- •Метод Северо-Западного угла (Северо-Западный метод)
- •Метод минимального элемента.
ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ. ВИДЫ ЗАДАЧ. ПОСТАНОВКА ЗАДАЧИ.
Линейное программирование — математическая дисциплина, посвященная теории и методам решения задач об экстремумах линейных функций на множествах n-мерного векторного пространства, задаваемых системами линейных уравнений и неравенств.
Линейное программирование является частным случаем выпуклого программирования, которое в свою очередь является частным случаем математического программирования. Одновременно оно — основа нескольких методов решения задач целочисленного и нелинейного программирования. Одним из обобщений линейного программирования является дробно-линейное программирование.
Многие свойства задач линейного программирования можно интерпретировать также как свойства многогранников и таким образом геометрически формулировать и доказывать их.
Термин «программирование» нужно понимать в смысле «планирования». Он был предложен в середине 1940-х годов Джорджем Данцигом, одним из основателей линейного программирования, еще до того, как компьютеры были использованы для решения линейных задач оптимизации.
Линейное программирование (далее ЛП) – задачи, в которых критерий оптимальности задается в виде линейной формы от входящих в него переменных, на эти переменные накладываются ограничения в виде линейных уравнений или линейных неравенств.
Основные задачи ЛП:
Задачи оптимизации межотраслевых потоков
Задачи об оптимальном выпуске продукции.
Транспортные задачи.
Подробнее рассмотрим задачу об оптимальном выпуске продукции.
Требуется составить такой план выпуска продукции, который был бы технологически осуществлен по имеющимся ресурсам всех видов, удовлетворял бы задаваемым ограничениям на выпуске каждого вида продукции и в то же время приносил наибольшую прибыль предприятию.
Математическая модель любой задачи линейного программирования включает в себя:
максимум или минимум целевой функции (критерий оптимальности);
систему ограничений в форме линейных уравнений и неравенств;
требование неотрицательности переменных.
Для решения задач ЛП используют графический метод и симплекс-метод.
Математическая формулировка задачи линейного программирования
Нужно максимизировать (минимизировать)
при условиях
при
.
Иногда на xi также накладывается некоторый набор ограничений в виде равенств, но от них можно избавиться, последовательно выражая одну переменную через другие и подставляя ее во всех остальных равенствах и неравенствах (а также в функции f).
Такую задачу называют "основной" или "стандартной" в линейном программировании.
Алгоритмы решения общей задачи линейного программирования
Наиболее известным и широко применяемым на практике для решения общей задачи линейного программирования (ЛП) является симплекс-метод. Несмотря на то, что симплекс-метод является достаточно эффективным алгоритмом, показавшим хорошие результаты при решении прикладных задач ЛП, он является алгоритмом с экспоненциальной сложностью. Причина этого состоит в комбинаторном характере симплекс-метода, последовательно перебирающего вершины многогранника допустимых решений при поиске оптимального решения.
Первый полиномиальный алгоритм, метод эллипсоидов, был предложен в 1979 г. советским математиком Л.Хачияном, разрешив таким образом проблему, долгое время остававшуюся нерешенной. Метод эллипсоидов имеет совершенно другую, некомбинаторную, природу, нежели симплекс-метод. Однако в вычислительном плане этот метод оказался неперспективным. Тем не менее сам факт полиномиальной сложности задач привел к созданию целого класса эффективных алгоритмов ЛП - методов внутренней точки, первым из которых был алгоритм Н. Кармаркара, предложенный в 1984 г. Алгоритмы этого типа используют непрерывную трактовку задачи ЛП, когда вместо перебора вершин многогранника решений задачи ЛП осуществляется поиск вдоль траекторий в пространстве переменных задачи, не проходящих через вершины многогранника. Метод внутренних точек, который, в отличие от симплекс-метода, обходит точки из внутренней части области допустимых значений, использует методы логарифмических барьерных функций нелинейного программирования , разработанные в 60-х гг. Fiacco и McCormick.
МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Графический метод
Математические основы решения задачи линейного программирования графическим способом
Для понимания всего дальнейшего полезно знать и представлять себе геометрическую интерпретацию задач линейного программирования, которую можно дать для случаев n =2 и n =3.
Наиболее наглядна эта интерпретация для случая n =2, т.е. для случая двух переменных Х1 и Х2 . Пусть нам задана задача линейного программирования в стандартной форме
Возьмём на плоскости декартову систему координат и каждой паре чисел (Х1, Х2) поставим в соответствие точку на этой плоскости.
Oбратим
прежде всего внимание на ограничения
X1>=0
и X2>=0
. Они из всей плоскости вырезают лишь
её первую четверть (см. рис. 1). Рассмотрим
теперь, какие области соответствуют
неравенствам вида
.
Сначала рассмотрим область, соответствующую
равенству
. Как Вы, конечно, знаете, это прямая
линия. Строить её проще всего по двум
точкам. Дальше через эти две точки можно
по линейке провести прямую линию (см.
рисунок 2)
Эта
построенная прямая разбивает всю
плоскость на две полуплоскости. В одной
её части
,
а в другой наоборот
. Узнать, в какой полуплоскости какой
знак имеет место проще всего посмотрев,
какому неравенству удовлетворяет
какая-то точка плоскости, например,
начало координат, т.е. точка (0,0).
Каждое неравенство этой системы геометрически определяет полуплоскость с граничной прямой аi1х1 + аi2х2 ≤ bi i = 1, m. Условия неотрицательности определяют полуплоскости соответственно с граничными прямыми x1 = 0; х2 = 0.. Система совместна, поэтому полуплоскости, как выпуклые множества, пересекаясь, образуют общую часть, которая является выпуклым множеством и представляет собой совокупность точек, координаты каждой из которых составляют решение данной системы. Совокупность этих точек называют многоугольником решений. Это может быть точка, отрезок, луч, замкнутый многоугольник, неограниченная многоугольная область. Таким образом, геометрически задача линейного программирования представляет собой отыскание такой точки многогранника решений, координаты которой доставляют линейной функции минимальное значение, причем допустимыми решениями служат все точки многогранника решений.
