Математическая модель задачи.
Дробно-линейное программирование (ДЛП) относится к нелинейному программированию, т.к. имеет целевую функцию, заданную в нелинейном виде. Задача ДЛП в общем виде записывается следующим образом: найти экстремум функции L = при ограничениях = bi, i = 1,m, xj => 0, где cj, dj, aij, bi – постоянные коэффициенты и при этом 0.
Рассмотрим задачу ДЛП в виде: L = (c1x1 + c2x2)/(d1x1 + d2x2) -> max (min), при ограничениях ai1x1 + ai2x2 = bi (<=) и x1, x2 >= 0. Будем считать, что d1x1 + d2x2 0. Для решения этой задачи найдем многоугольник решений, определяемой записанными ограничениями. Пусть этот многоугольник не представляет пустое множество. Найдем из значения целевой функции из выражения целевой функции переменную х2.
L = (c1x1 + c2x2)/(d1x1 + d2x2) | * (d1x1 + d2x2)
L = (d1x1 + d2x2) = (c1x1 + c2x2)
Ld1x1 + Ld2x2 = c1x1 + c2x2
x2 (Ld2 – c2) = x1 (c1 – Ld1)
x2 = (c1 – Ld1)/(Ld2 – c2 * x1)
где k = (c1 – Ld1)/(Ld2 – c2), тогда x2 = kx1 – прямая, проходящая через начало координат.
При некотором фиксированном значении L, угловой коэффициент k тоже фиксирован, и прямая займет определенное положение. При изменении значения L, прямая x2 = kx1 будет поворачиваться вокруг начала координат.
x2
L2
x1
L1
Установим, как будет вести себя угловой коэффициент k при монотонном возрастании L. Для этого найдем производную коэффициента k по переменной L.
dk/dL = k’L = ((c1 – Ld1)/(Ld2 – c2))’ = ((c1 – Ld1)’ * (Ld2 – c2) – (c1 – Ld1) * (Ld2 – c2)’)/(Ld2 – c2)2 = (-d1*(Ld2 – c2) – (c1 – Ld1) * d2)/(Ld2 – c2)2 = (-Ld1d2 + d1c2 – c1d2 + Ld1d2)/(Ld2 – c2)2 = (d1c2 – c1d2)/(Ld2 – c2)2.