Модели линейного программирования. Задача планирования производства

Автор работы: Пользователь скрыл имя, 15 Декабря 2011 в 12:46, курсовая работа

Описание

Развитие современного общества характеризуется повышением технического уровня, усложнением организационной структуры производства, углублением общественного разделения труда, предъявлением высоких требований к методам планирования и хозяйственного руководства. В этих условиях только научный подход к руководству экономической жизнью общества позволит обеспечить высокие темпы развития народного хозяйства.

Содержание

ВВЕДЕНИЕ 4
1 МОДЕЛИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 7
2 РЕШЕНИЕ ЗАДАЧИ.ЗАДАЧА ОПТИМАЛЬНОГО ИСПОЛЬЗОВАНИЯ РЕСУРСОВ 16
ЗАКЛЮЧЕНИЕ 25
ЛИТЕРАТУРА 27

Работа состоит из  1 файл

курсовик по мат методам.doc

— 660.00 Кб (Скачать документ)

                     …………………………………….

                     аk× x1 + аk2  × x2 + … + аkn  × xn £ bk,

                       аk+1,1  × x1 + аk+1,2  × x2 + … + аk+1,n  × xn = bk+1,

                     ……………………………………..

                     аm× x1 + аm2  × x2 + … + аmn  × xmn = bm, 

   Функция называется  целевой функцией задачи, а условия – ограничениями данной задачи.

   Совокупность значений переменных Х1, Х2, …, Хn, удовлетворяющих условиям задачи, называется допустимым решением, или планом. План X* = ( , , … ), при котором целевая функция задачи принимает экстремальное значение, называется оптимальным.

   1.3 Стандартная (симметричная) задача линейного программирования

   Стандартной задачей линейного программирования называют задачу, в которой требуется найти такие значения Х1, Х2, …, Хn, при которых функция цели принимает максимальное значение

   

   f(x) = ® max            (4)

   и которые удовлетворяют ограничениям 

     £ bi; (i = ),            (5)

   Хj ³ 0; (j = ).                (6)

   1.4 Каноническая (основная) задача линейного программирования

   Канонической  задачей называется задача, в которой требуется найти такой набор переменных Х1, Х2, …, Хn, который позволяет максимизировать функцию цели

   f(x) = ® max            (7)

   и удовлетворяет системе ограничений

   

     = bi; (i = ),            (8)

   Хj ³ 0; (j = ).                (9)

   1.5 Представление задачи линейного программирования в канонической форме

   Пусть требуется найти неотрицательные значения переменных Х1, Х2, …, Хn, для которых функция цели принимает максимальное значение

   f(x) = C1 Х1 + C2Х2 + …+ CnХn ® max

   при ограничениях

   

                         
 

   Хj ³ 0, (j =

). 
 

   Поскольку в ограничениях левая часть меньше, чем правая (или равна ей), чтобы перейти к строгому равенству, необходимо к левой части каждого неравенства добавить соответствующую переменную.

   Найти максимум функции цели

   f(x) = C1 Х1 + C2Х2 + …+ CnХn + …+ 0×Хn+1 + …+ 0×Хn+m ® max

   при ограничениях

     
 

   Хj ³ 0, (j =

).

   Пример. Записать следующую задачу в канонической форме:

               f(x) = -X1 + 2X2 - X3 + X4® min,

                             3X1 - X2 + 2X3 + 2X4 £ 10,

                            X1 + 2X2 + X3 - X4 ³ 8,

                            2X1 - X2 - X3 + X4 £ 6,

                            

                            -X1 + 3X2 + 5X3 - 3X4 = 15,

   Xj ³ 0, (j = 1 ¸ 4).

   Для записи задачи в канонической форме  поменяем знаки у всех коэффициентов  функции цели на противоположные. Тогда  задача будет заключаться в нахождении максимума целевой функции. Для  приведения ограничений – неравенств к системе уравнений необходимо приравнять левые и правые части ограничений путем введения дополнительных переменных. Если левая часть ограничения меньше, чем правая, необходимо добавить дополнительную переменную, если же левая часть ограничения больше, из нее следует вычесть некоторое, пока неизвестное, значение.

    f(x) = Х1 - 2Х2 + Х3 - Х4 + 0×Х5 + 0×Х6 + 0×Х7 ® max,

                      3X1 - X2 + 2X3 + 2X4 + X5 = 10,

                      X1 + 2X2 + X3 - X - X6       = 8,

                      2X1 - X2 - X3 + X4   + X= 6,

                    -X1 + 3X2 + 5X3 - 3X4    = 15,    Xj ³ 0.

   1.6 Свойства задачи линейного программирования

         1. Множество планов  задачи линейного программирования, если оно не пусто, образует  выпуклый многогранник. Любая точка  внутри области, ограниченной  этим многогранником, является допустимым  решением задачи.

         2. В одной из вершин многогранника решений целевая функция принимает максимальное значение (при условии, что функция ограничена сверху на множестве планов).

         3. Если максимальное  значение функция принимает более,  чем в одной вершине, то это  же значение она принимает в любой точке, являющейся выпуклой линейной комбинацией данных вершин.

   1.7 Решение задач линейного программирования симплекс-методом

   Если  условия задачи линейного программирования не противоречивы, то область ее допустимых решений образует выпуклый многогранник в n-мерном пространстве (многоугольник для двух переменных). При этом оптимальное решение, если оно существует, обязательно достигается в некоторой вершине многогранника (возможно, и более чем в одной).

   Таким образом, чтобы найти решение  задачи линейного программирования, достаточно перебрать лишь планы, соответствующие вершинам многогранника допустимых решений. Такие планы называют опорными. Однако в сложных задачах и число вершин может оказаться чрезмерно большим, вследствие чего нахождение всех опорных планов потребует огромного объема вычислений.

   Симплекс-метод  позволяет осуществить упорядоченный, направленный перебор вершин многогранника. После определения одной из вершин этот метод помогает установить, является ли найденный план оптимальным, то есть достигнут ли в этой вершине максимум целевой функции. Если план неоптимален, то производится переход к такой соседней вершине многогранника, которая обеспечивает большее (или в крайнем случае равное предыдущему) значение целевой функции.

     Симплекс-метод называют еще методом последовательного улучшения плана. Повторное применение указанной процедуры приводит за конечное число шагов к вершине, соответствующей оптимальному плану.

   Симплекс-метод  применяется к задаче, записанной в канонической форме (используем одну из двойственных задач линейного программирования):

   f(x) = 10Х1 + 14Х2 + 12Х3 + 0×Х4 + 0×Х5 + 0×Х6 ® max,

    4X1 + 2X2 + X3 + X4          = 180,

   3X1 + X2 + 3X + X5         = 210,

   X1 + 2X2 + 5X3        + X6 = 244.

   Для решения  задачи линейного программирования составим симплексную таблицу.

   
     Базис Б
      План Х    Коэффициенты  функции цели Сi    q = (Хi /
)min
   Х1    Х2    Х3    Х4    Х5    Х6
   
   Х2
®Х4
   180    4    2    1    1    0    0    180/2 = 90 min
   
Х5
   210    3    1    3    0    1    0    210/1 =210
   Х6    244    1    2    5    0    0    1    244/2 =122
        -10    -14    -12    0    0    0       ключевая строка

   В первом столбце вписаны базисные неизвестные, второй содержит коэффициенты при базисных неизвестных в целевой  функции, в третьем – правые части  уравнений системы ограничений. Далее записана матрица из коэффициентов левой части системы ограничений ( ). В верхней строке над неизвестными записаны соответствующие им коэффициенты в целевой функции. В последней строке записывается значение целевой функции при данном опорном плане, которое вычисляется по формуле f(x) = , и далее – оценки неизвестных, найденные по формуле Dj = - Cj. Если среди оценок Dj есть отрицательные, то опорный план не является оптимальным и значение целевой функции можно улучшить.  

   Для этого нужно пересчитать  симплексную  таблицу, выбрав соответствующим образом ключевой элемент, стоящий на пересечении ключевой строки и ключевого столбца, причем берется столбец с наибольшей по абсолютной величине отрицательной

оценкой.

   Для определения ключевой строки находим отношения правых частей уравнений к положительным элементам ключевого столбца. Полученные значения q записываются в последний столбец симплексной таблицы. Из них выбирается наименьшая величина, которая указывает на ключевую строку.

   Пересчет  таблицы производится по следующему правилу: элементы ключевой строки делятся  на ключевой элемент. Далее, с помощью  метода Жордана Гаусса проводят пересчет таблицы таким образом, чтобы  элементы ключевого столбца имели единицу на месте ключевого элемента и нули на месте всех остальных элементов. Для этого вычтем из элементов третьей строки соответствующие элементы первой строки, а из элементов второй строки – элементы первой строки, поделенные на два (на ключевой элемент).

   

   Переменная, соответствующая ключевой строке, выводится из базиса, а переменная, соответствующая ключевому столбцу, вводится вместо нее в  базис.

   Для каждого шага итерации строится своя симплексная таблица:

   Б    Х    10    14    12    0    0    0    q
   Х1    Х2    Х3    Х4    Х5    Х6
   
Х2
   90    2    1    1/2    1/2    0    0     90 : 1/2 = 180
   
Х5
   120    1    0    5/2    -1/2    1    0    1   20 : 5/2 = 48
   
Х3
®Х6
   64    -3    0    4    -1    0    1    64 : 4 = 16 min
   f(x) = 1260    18    0    -5    7    0    0     
               Отрицательная оценка     

Информация о работе Модели линейного программирования. Задача планирования производства