Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Графическое решение задачи распределения ресурсовСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Пусть для двух видов продукции П1 и П2 требуются трудовые, материальные и финансовые ресурсы. Наличие ресурсов каждого вида и их нормы расхода, необходимые для выпуска единицы продукции, приведены в табл. 5.1.
Таблица 5.1
составим математическую модель задачи.
ìx1+4x2 £ 14 ï3x1+4x2 £ 18 (5.11) í6x1+2x2 £ 27 îx1 ³ 0, x2 ³ 0.
математическая модель представляет собой систему линейных неравенств. Значит ОДР нашей задачи выпуклый многоугольник. Для удобства построения неравенства можно записать в форме, аналогичной уравнениям в отрезках:
ìx1/14+x2/7/2 £ 1 ïx1/6+x2/9/2 £ 1 (5.12) íx1/9/2+x2/27/2 £ 1 îx1 ³ 0, x2 ³ 0.
Если мы хотим найти оптимальное решение, то должны принять целевую функцию. Допустим, мы хотим, чтобы решение было оптимальным в смысле максимизации суммарного выпуска. Тогда целевая функция:
F=x1+x2 ® max (5.13)
Эту зависимость представим в виде x2= F-x1. Из графика данного уравнения (Рис. 5.1) следует, что tga = -1, при этом a =135о, а величина F равна отрезку, отсекаемому прямой функции цели на оси координат. Если прямую перемещать параллельно самой себе в направлении, указанном стрелками, то эта величина будет возрастать. Очевидно, что оптимальным решением будут координаты точки С (x*1; x*2). При этом F=F*. На основании рассмотренного, можно сделать исключительно важный вывод: оптимальным решением являются координаты вершин ОДР. А из этого вывода следует метод решения задачи линейного программирования.
метод решения задачи линейного программирования:
À Найти вершины ОДР, как точки пересечения ограничений. Á Определить последовательно значения целевой функции в вершинах. Â Вершина, в которой целевая функция приобретает оптимальное значение, является оптимальной вершиной. Ã Координаты оптимальной вершины являются оптимальными значениями искомых переменных.
Если направление целевой функции совпадает с направлением одной из сторон, то у задачи будет, по крайней мере, два решения. В таком случае говорят, что задача имеет альтернативные решения. А это значит, что одно и то же оптимальное значение целевой функции может быть получено при различных значениях переменных.
Тот факт, что оптимальное решение находится на вершине ОДР, дает еще два очень важных вывода:
À если оптимальным решением являются координаты вершин ОДР, значит, сколько вершин имеет ОДР, столько оптимальных решений может иметь задача. Á поскольку чем больше ограничений, тем больше вершин, то, следовательно, чем больше ограничений, тем больше оптимальных решений.
Как видно на Рис. 5.1, вершина, координаты которой являются оптимальным решением, определяется углом наклона прямой, описывающей целевую функцию. Значит, каждая вершина будет соответствовать оптимальному решению для некоторой целевой функции. Поясним это на рассмотренном ранее примере. Раньше мы находили оптимальное решение по максимизации суммарного выпуска F1=x1+x2 ® max. Найдем оптимальные решения еще для четырех целевых функций:
F2=x2 ® max (максимизация выпуска продукции П2) F3=x1 ® max (максимизация выпуска продукции П1) F4=4x1+8,5x2 ® max (максимизация прибыли) F5=(1+3+6)x1 + (4+4+2)x2 = 10х1+10х2 ® max (минимизация используемых ресурсов).
Для каждой целевой функции, так же как и для F1, можно построить линию целевой функции и определить вершину, в которой целевая функция будет иметь оптимальное значение. Результаты решения задачи по пяти целевым функциям сведем в таблицу 5.2, из анализа которой можно сделать вывод: координаты каждой вершины могут быть оптимальным решением в некотором смысле.
Таблица 5.2
Симплексный метод
Симплексный метод или метод последовательного улучшения плана является одним из основных методов решения задач ЛП. название симплексный метод берет от слова «симплекс», которым создатель метода Р. Данциг обозначил наложенное на переменные x1, x2... xn ограничение x1+x2+... +xn=1.
þ В математике симплексом в k -мерном пространстве называется совокупность k+1 вершин.
Так для плоскости при k=2 симплексом будет треугольник; в пространстве при k=3 симплексом будет тетраэдр, имеющий 4 вершины. С учетом этого понятия аналитический метод решения задачи ЛП называют симплекс-методом. Он основан на алгоритме направленного перебора вершин. Этот алгоритм обеспечивает переход от одной вершины к другой в таком направлении, при котором значение целевой функции от вершины к вершине улучшается.
þ Определение значения целевой функции и переменных в одной вершине считается итерацией.
Число итераций в реальных задачах может измеряться сотнями. Вручную, с помощью симплекс-метода, могут быть решены задачи, содержащие не более 10 итераций. Поэтому в реальных задачах применяют ЭВМ и пакеты прикладных программ (ППП). Метод решения задач ЛП с помощью симплексных таблиц изложен на конкретном примере. Пусть требуется найти неотрицательное решение системы линейных неравенств:
ì4x1+9x2 £ 56 (5.14) í5x1+3x2 £ 37 î-x1+2x2 £ 2
обращающее в максимум линейную форму:
¦=3x1+4x2 (5.15)
Вначале перейдем от системы неравенств (5.14) к системе уравнений, добавив к левым частям неравенств неотрицательные переменные x3, x4, x5. Мы получим:
ì4x1+9x2+x3+0 . x4+0 . x5=56 (5.16) í5x1+3x2+0 . x3+x4+0 . x5=37 î-x1+2x2+0 . x3+0 . x4+ x5=2
¦= 3x1+4x2+0 . x3+0 . x4+0 . x5 (5.17)
перепишем теперь систему (5.16) в виде системы 0 -уравнений:
ì0=56 - (4x1+9x2+1 . x3+0 . x4+0 . x5) (5.18) í0=37 - (5x1+3x2+0 . x3+1 . x4+0 . x5) î0=2 - (-x1+2x2+0 . x3+0 . x4+1 . x5)
¦=0 - (-3x1-4x2-0 . x3-0 . x4-0 . x5) (5.19)
заметим, что система (5.18) может быть записана в виде одного векторного равенства:
0=B-(A1x1+A2x2+A3x3+A4x4+A5x5),
где вектор-столбец В имеет своими компонентами свободные члены, а векторы A1, A2,..., A5 - коэффициенты при соответствующих переменных x1, x2, x3, x4, x5. Иными словами:
Линейная форма имеет вид: ¦=3x1+4x2+0 . x3+0 . x4+0 . x5.
Векторы A3, A4, A5 образуют базис. Это означает, что, присвоив х1=0, х2=0, получаем из (5.16) первое базисное решение: x1=0; x2=0; x3=56; x4=37; x5=2. При этом значение линейной формы ¦=0. На основании (5.18) строим первую симплексную таблицу.
Симплексная таблица строится следующим образом:
В заглавной строке пишем последовательно векторы B, A1, A2, A3, A4 , A5. Слева добавляем колонку «Базисные векторы», рядом с ней колонку «С», в которой поставлены коэффициенты при базисных переменных в линейной форме, в данном случае величины С3, С4, С5. В последней строке, называемой индексной, и обозначаемой через ¦ j-Сj, проставляются числа, равные значению линейной формы, в соответствием с уравнением (j=1, 2, 3, 4, 5). В итоге мы имеем таблицу 5.3.
Таблица 5.3.
Это первая симплексная таблица, соответствующая первому базисному решению: x1=0; x2=0; x3=56; x4=37; x5=2. Значение линейной формы, равное нулю, мы записываем в первой клетке индексной строки. Т.к. мы решаем задачу на максимум, то из выражения линейной формы видно, что имеет смысл увеличить x1 или x2. Действительно, коэффициенты при этих переменных в скобках отрицательны (а по существу положительны), и если мы положим x1>0 или x2>0, то значение ¦ увеличится. Но эти же коэффициенты с их знаками стоят в индексной строке. Итак, мы приходим к следующему выводу: наличие в индексной строке отрицательных чисел при решении задачи на максимум свидетельствует о том, что нами оптимальное решение не получено, и то, что от табл. 5.3 надо перейти к следующей. Переход к новой таблице, т.е. к новой улучшенной программе осуществляем следующим способом: в индексной строке находим наибольшее по абсолютному значению отрицательное (а при задаче на минимум - наибольшее положительное) число. В нашем примере этим числом будет - 4. Найденное число определяет ведущий или ключевой столбец. Затем мы делим свободные члены на положительные элементы ведущего столбца и выбираем из полученных отношений наименьшее. Наименьшее отношение определяет ведущую строку. В данном случае имеем:
Таким образом, ведущей строкой будет строка A5. На пересечении ведущего столбца и ведущей строки стоит разрешающий элемент. В нашем случае - это число 2. Теперь мы приступаем к составлению второй таблицы или второго плана. Вместо единичного вектора A5 мы в базис вводим вектор A2. Переход к новому базису, как это известно, эквивалентен элементарному преобразованию матрицы, элементами которой служат числа табл. 5.3. А именно: в новой таблице элемент строки, соответствующий элементу ведущей строки прежней таблицы, равен этому элементу ведущей строки, разделенному на разрешающий элемент. чтобы получить любой другой элемент новой симплексной таблицы, нужно от соответствующего элемента прежней таблицы отнять произведение элемента ведущей строки на элемент ведущего столбца, разделенное на разрешающий элемент. Например, элементу 4 (табл. 5.3) будет соответствовать элемент табл. 5.4:
Таким образом, мы переходим ко второй таблице (таблица 5.4). Указанные выше преобразования относятся к столбцам B, A1, A2, A3, A4 , A5.
Таблица 5.4.
Из табл. 5.4 видно, что значение линейной формы возросло и теперь равно 4. Однако наличие в индексной строке отрицательных чисел свидетельствует о том, что это значение еще можно увеличить. Переходим к следующей симплексной таблице. число «5» определяет ведущий столбец. Находим ведущую строку. Для этого определяем:
Итак, разрешающим элементом будет 13/2. Вектор A4 выводим из базиса и вводим вместо него вектор A1. Пересчет коэффициентов осуществляем по указанным выше правилам и получаем таблицу 5.5.
Таблица 5.5
В индексной строке нет отрицательных элементов. Следовательно, мы получим оптимальную программу. Оптимальное решение:
x1=68/13; x2=47/13; x3=33/13; x4 = x5 = 0. Анализ симплекс-таблиц
Математическая модель является прекрасным средством получения ответов на широкий круг вопросов, возникающих при планировании, проектировании и в ходе управления производством. Так на этапе планирования целесообразно находить варианты плана при различных вариантах номенклатуры, ресурсов, целевых функций и т.д. При оперативном управлении решается достаточно широкий и важный круг вопросов, которые возникают при ежедневном обеспечении производственного процесса. Мы рассмотрим лишь те вопросы оперативного управления, которые могут быть решены с помощью моделей, уже составленных при планировании. «Что будет, если пять человек из числа трудовых ресурсов отвлекут на другие работы? Что будет, если сырья поставят на 20% меньше? Какую продукцию следует выпускать, если изменились цены?» Рассмотрим, как находить ответы на эти вопросы на конкретном примере. Допустим, предприятие должно выпускать продукцию четырех видов: П1,П2,П3,П4, используя для этого три вида ресурсов. Располагаемые ресурсы, нормы расходов материалов и прибыль приведены в Таблице 5А.
ТАБЛИЦА 5А
ìx1 + x2 + x3+ x4 £ 16 ï6x1 + 5x2 + 4x3+ 3x4 £ 110 (5.20) í4x1 + 6x2 + 10x3+ 13x4 £ 100 îxj ³ 0, j ³ 1,4.
F = 60x1 + 70x2 + 120x3 + 130x4 ® max
От системы неравенств (5.20) перейдем к системе уравнений. Для этого, в каждое неравенство добавим по одной дополнительной переменной: yi ³ 0, i ³ 1,m. Тогда получим систему уравнений:
ìx1 + x2 + x3+ x4 + y1 =16 ï6x1 + 5x2 + 4x3+ 3x4 + y2 =110 (5.21) í4x1 + 6x2 + 10x3+ 13x4 + y3 =100 îxj ³ 0, j = 1,4; yi ³ 0, i = 1,3.
F = 60x1 + 70x2 + 120x3 + 130x4 ® max Затем перепишем систему (5.21) в следующем виде:
ì y1 =16 - (x1 + x2 + x3+ x4) ï y2 =110 - (6x1 + 5x2 + 4x3+ 3x4) (5.22) í y3 =100 - (4x1 + 6x2 + 10x3+ 13x4) îF = 0 - (-60x1 - 70x2 - 120x3 - 130x4)
Систему (5.22) можно представить в виде Таблицы 5В, которую составляют следующим образом: свободные переменные, заключенные в скобки, выносят в верхнюю строку таблицы. В остальные столбцы записывают свободные члены и коэффициенты перед свободными переменными. Эта, так называемая симплекс таблица, служит основой для решения задач линейного программирования. В этой таблице переменные, являющиеся свободными, в данном случае x1, x2, x3, x4 по условию равны 0. Поскольку свободные переменные равны 0, то из системы (5.22) видно, что базисные переменные y1, y2, y3, а также целевая функция F, которую записывают снизу, равны свободным членам. Значит y1=16, y2=110, y3=100, F=0.
ТАБЛИЦА 5В
Напомним, что в системе (5.21) общее число переменных N=n+m, где n - число основных переменных, m - число дополнительных переменных. Все переменные можно подразделить с одной стороны на основные и дополнительные, а с другой - на базисные и свободные.
þ Свободными переменными будем называть такие, которые равны 0.
Из теории известно, что n переменных в допустимом решении должны быть равны 0, т.е. столько же переменных, сколько и основных. Однако, из этого ни в коей мере не следует, что нулю равны все основные переменные. Если из общего числа переменных N=n+m будут свободными n переменных, то очевидно, что m переменных будут базисными, т.е. не равны нулю. С учетом введенных терминов можно сказать, что целью решения задачи ЛП является нахождение базисных и свободных переменных. Для задачи ЛП, записанной в виде симплекс таблицы, можно сформулировать признаки допустимого и оптимального решений. Решение является допустимым, если в симплекс таблице в столбце свободных членов все значения, относящиеся к базисным переменным будут неотрицательными. Оптимальное значение, как мы знаем, может либо минимизировать, либо максимизировать значение целевой функции. В связи с этим, для оптимальных значений есть два признака: один для случая минимизации целевой функции, другой - для случая максимизации. Целевая функция имеет минимальное значение, если, во-первых, решение является допустимым, т.е. свободные члены будут неотрицательными, а во=вторых, все элементы в строке целевой функции (свободный член не рассматривается) будут неположительными. При этом целевая функция равна свободному члену. Таким образом можно сделать вывод, что в Табл. 5В получено оптимальное решение нашей задачи для случая минимизации целевой функции. Действительно, если x1= x2= x3= x4 = 0 мы никакой продукции не выпускаем и при этом прибыль F=0. Дополнительные переменные y1, y2, y3, показывающие объем неиспользованных ресурсов, равны, соответственно: 16, 110,100, т.е. тому ресурсу, который имеется в наличии. В самом деле, мы ничего не выпускаем, но не тратим ресурсы. Следовательно, данные в Табл. 5В соответствуют такой вершине ОДР, в которой целевая функция принимает минимальное значение. Признак максимизации целевой функции формируется следующим образом: целевая функция имеет максимальное значение, если, во-первых, решение является допустимым, а во-вторых, все элементы в строке целевой функции (свободный член не рассматривается) будут неотрицательными. Поскольку Табл. 5В не удовлетворяет данному признаку, то необходимо перейти к другой вершине ОДР. Переход от одной вершины к другой, производится по определенному алгоритму симплекс-метода, который заключается в обмене переменных.
þ Каждый переход от одной вершины к другой, который называется итерацией, состоит в том, что одна базисная переменная приравнивается к нулю, т.е. переходит в свободную, а одна свободная переменная переводится в базисную.
На каждой итерации проверяют удовлетворение признаков допустимого и оптимального решений. Такая процедура продолжается до тех пор, пока не будут удовлетворены оба признака. Применительно к нашей задаче переходим к следующей симплекс-таблице, полученной после первой итерации. Переход к новой таблице осуществляем следующим способом: в индексной строке, где находится целевая функция находим наибольшее по абсолютному значению отрицательное число. Найденное число определяет ведущий столбец. Затем мы делим свободные члены на положительные элементы ведущего столбца и выбираем из полученных отношений наименьшее. Наименьшее отношение определяет ведущую строку. В нашем случае имеем:
Таким образом, ведущим столбцом будет столбец х3, а ведущей строкой будет строка y3. На пересечении ведущего столбца и ведущей строки будет разрешающий элемент. В нашем случае это число 10. Таким образом, ведущей строкой будет строка y3, обозначим ее через Ar. Ведущим столбцом будет столбец х4, обозначим его через Ak, и, следовательно, разрешающий элемент Ark = 10. Теперь приступаем к составлению второй таблицы. В этой таблице элементы направляющей строки равны этому элементу ведущей строки, деленному на разрешающий элемент, и находятся в соотношении:
Элементы любой другой строки j находят из соотношения:
Т.е. чтобы получить любой другой элемент новой симплексной таблицы, нужно от соответствующего элемента прежней таблицы отнять произведение элемента ведущей строки на элемент ведущего столбца, разделенное на разрешающий элемент. После этих преобразований новая симплексная таблица после первой итерации примет вид Таблицы 5С.
ТАБЛИЦА 5С
В Табл. 5С в индексной строке только один отрицательный элемент, следовательно, ведущим столбцом будет х1, а ведущую строку определяем по наименьшему отношению:
Т. о. Ведущей строкой будет y1, а разрешающим элементом число 0,6. Применительно к нашей задаче последняя симплекс-таблица, полученная после второй итерации, будет иметь вид:
ТАБЛИЦА 5D
Из этой таблицы видно, что в столбце свободных членов все элементы положительные. Значит решение является допустимым. В строке целевой функции все элементы тоже положительные. Следовательно, это решение оптимальное и максимизирует целевую функцию. При этом оптимальным планом будут следующие величины: х1*=10, х3*=6 (значит, они - базисные) и х2*=х4*=0 (т.к. они свободные). При этом целевая функция F=1320. Вот результат решения задачи. Однако, с помощью симплекс-таблицы можно узнать еще много полезных сведений. Так их этой же таблицы видим, что свободные переменные y1=y3=0, а базисная переменная y2=26. А это значит, что в оптимальном плане резервы трудовых ресурсов и оборудования равны нулю. Иными словами, эти ресурсы используются полностью. Вместе с тем резерв ресурсов сырья y2=26, что свидетельствует о том, что имеются излишки сырья. Вот какие полезные сведения можно получить из окончательной симплекс-таблицы.
Решение транспортных задач
В качестве примера приведем решение транспортной задачи ЛП с помощью таблицы. Транспортная таблица состоит из m строк и n столбцов. В правом верхнем углу каждой клетки будем ставить стоимость Сij перевозки единицы груза из Ai в Bj, а в центр клетки поместим перевозку Xij.
Таблица 5.6
Таблица 5.7
Составим опорный план. Можно применить метод «северо-западного угля». Пусть пункт В1 подал заявки на 18 единиц груза. Удовлетворим ее из запасов А1. После этого в нем остается еще 30-18=12 единиц груза. Отдадим их пункту В2. Но заявка этого пункта еще не удовлетворена. Выделим остаток 27-12 из запасов А2 и т.д. рассуждая аналогичным образом, составим таблицу 5.8. Полученный план перевозок является опорным, но вряд ли он является оптимальным в смысле стоимости перевозок.
þ Напомним, что прямая, которая имеет с областью, по крайней мере, одну общую точку, притом так, что вся область лежит по одну сторону от этой прямой, называется опорной по отношению к этой области.
Таким образом, задача ЛП на геометрическом языке может быть сформулирована так: среди прямых уровня функции цели ¦ найти опорную по отношению к ОДР и притом так, чтобы вся область лежала со стороны больших значений ¦. Наш план - не оптимальный. Сразу видно, что его можно улучшить, если произвести в нем «циклическую перестановку», уменьшив перевозки в «дорогой» клетке (2.3) со стоимостью 12. но зато, увеличив перевозки в «дешевой» клетке (2.4) со стоимостью 6. чтобы план оставался опорным, мы должны при этом сделать одну из свободных клеток базисной, а одну из базисных - свободной. Сколько единиц груза можем мы перенести по циклу следующему циклу: (2.4) ®(3.4) ®(3.3) ®(2.3), увеличивая перевозки в нечетных вершинах цикла и уменьшая в четных? Очевидно, не больше 11 единиц (иначе перевозки в клетке (3.4) стали бы отрицательными). Также очевидно, что в результате циклического переноса допустимый план остается допустимым - баланс заявок и запасов не нарушается. Произведем перенос и запишем улучшенный план в таблицу 5.8.
таблица 5.8
Таблица 5.9
посмотрим, что мы сэкономили. Общая стоимость плана в табл. 5.7 равна: ‡1=18´13+12´7+15´8+33´12+9´10+11´8+15´10+15´15=1287. Общая стоимость плана табл. 5.6 равна: ‡2=18´13+12´7+15´8+22´12+11´6+20´10+15´10+15´15=1243. Таким образом, нам удалось уменьшить стоимость перевозок на 44 единицы. Действительно алгебраическая сумма стоимостей, стоящих в вершинах цикла со знаком «+», если перевозки в этой вершине увеличиваются, и со знаком «-», если уменьшаются (так называемая «цена цикла»). в данном случае равна 6-8+10-12=-4. Значит, при переносе одной величины груза по этому циклу стоимость уменьшается на 4. А мы перенесем 11 единиц. Следовательно, цена цикла 4 . 11=44. Попробуем еще раз улучшить план табл. 5.8 с помощью цикла (табл. 5.9) с ценой: 5-15+14-13=9. Перебрасывая 15 единиц груза, сокращаем стоимость на: 9 . 15=135.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-19; просмотров: 492; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.249.191 (0.01 с.) |