Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭММ-лекции.docx
Скачиваний:
6
Добавлен:
08.09.2019
Размер:
2.49 Mб
Скачать

Специальные виды задач линейного программирования

  1. Задача дробно-линейного программирования (ЗДЛП)

ЗДЛП возникает в том случае когда целевая функция представляет собой дробь, в числителе и знаменателе которой стоят линейные функции от переменных задач а система ограничений является линейной и определяет выпуклую область в n-мерном пространстве

F (x)=P(x)/Q(x)=  max(min)

=<bi (i=1….k)

>=bi (i=k-1….l)

=bi i=l+1….m

Xi=>0

К ЗДЛП приводит например задача планирования производства в которой критерием оптимальности является рентабельность всего производства.

Геометрическая интерпретация ЗДЛП

Пусть имеется 2 переменные в задаче - Х1 и Х2

F (x)=P1x1+p2x2/q1x1+q2x2 max

A11x1+a12x2=<b1

…..

Am1x1+am2x2>=bm

Изобразим систему ограничений на плоскости Х1Х2

q1x1f+q2x2f=p1x1+p2x2

x2(q2f-p2)=x1(p1-q1f)

x2=(p1-q1f/q2f-p2)*x1

x2=kx1

k = (p1-q1f/q2f-p2)

Так как угловой коэффициент зависит от F то целевая функция вращается вокруг начала координат.

Чтобы установить характер вращения целевой функции найдем производную d(k) по d(f)

dk/df=-q1(q2f-p2)-q2(p1-q1f)/(q2f-p2)2= q1p2-q2p1/(q2f-p2)

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

Если q1p2-q2p1>0 то целевая функция вращается против часовой стрелки, иначе – по часовой

Из этих условий можно сформулировать алгоритм графического решения задачи дробно-линейного программирования

  1. Изобразить на плоскости многоугольник решений

  2. Через точку начала координат провести прямую Х2=kX1 (с произвольным угловым коэффициентом)

  3. Определить знак углового коэффициента (установить направление вращения прямой X2=kX1 при увеличении целевой функции)

  4. При решении задачи на максимум вращать прямую Х2=kX1 в установленном направлении до тех пор, пока она не достигнет крайней точки многоугольника решений

  5. Определить координаты этой точки

Пример.

f (x) = 0,5Х1+0,6Х2/Х1+Х2 

0,3Х1+0,2Х2=<5

0,2X1+0,3X2=<4

0,3X1+0,2X2>=3

Xi>=0

X1/16,66+X2/25=<1

X1/20+X2/13,33=<1

X1/10+X2/15=<1

Q1p2-q2p1 = 1*2,5-1*0,5=0,1 > 0 (против часовой стрелки)

p1 = 0,5

p2 = 0,6

q2 = 1

q1 = 1

В случае когда число переменных больше 2 для нахождения её решения используется модифицированный симплекс-алгоритм. В этом случае необходимо

  1. Привести систему ограничений к канонической форме

  2. Записать задачу в виде симплекс-таблицы в которой две последние строки представляют собой коэффициенты числителя и знаменателя целевой функции

Для того чтобы избавиться от этой неоределенности наобходимости реализовать один шаг симплекса-алгоритма (ввести переменную х1, х2…хn)

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

Разрешающая строка выбирается из условий минимума симплексных отношений.

Предположим что один шаг симплекс-алгоритма реализован и получено допустимое базисное решение. В этом случае полученное решение приобретет следующий вид.

После получения допустимого решения необходимо провести анализ на оптимальность.

F(x)=C/T - предположим не является максимальным. Тогда необходимо от существующего решения перейти к новому.

Переход к новому решению осуществляется путем введения в число базисных переменных переменной Х*r вместо переменной X*n+k.

F’(X)=C’/T'

C’=С*a*kr-b*k*p*r/a*kr

T’= T*a*kr-b*k*p*r/a*kr

F’(x)= (С*a*kr-b*k*p*r/a*kr)/(T*a*kr-b*k*p*r/a*kr)

Поскольку решается задача на максимум то переход будет оправдан в том случае если f’(x)-f(x)>0

f’(x)-f(x)=(C’/T')-(C/T)=(-b*k/a*kr)*(T*p*r-C*q*r)/(T*T’)

T*p*r-C*q*r=0 (*)

Для анализа оптимальности решения необходимо симплекс таблицу необходимо дополнить строкой содержащей определитель рассчитанный по правилам (*).

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

F (x) = 0,5x1+0,6x2/x1+x2  max

0,3X1+0,2X2=<5

0,2X1+0,3X2=<4

0,3X1+0,2X2>=3

Xi>=0

0 ,3X1+0,2X2+X3=5

0,2X1+0,3X2+X4=4

0,3X1+0,2X2-X5=3

Xi>=0

Б.П

С.Ч

Х1

Х2

Х3

5

0,3

0,2

Х4

4

0,2

0,3

Х5

-3

0,3

0,2

P

0

-0,5

-0,6

Q

0

-1

-1

Б.П

С.Ч

Х3

Х2

Х1

1,67

3,33

0,67

Х4

0,67

-0,67

0,16

Х5

-8

-1

0

P

8,33

1,67

-0,26

Q

16,06

3,33

-0,33

0,5

0,2

-1,6

∆1= =0,2

∆2= =-1,6

X1=1,67

X2=0

F(x)=0,5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]