Для связи в whatsapp +905441085890

Дробно-линейное программирование

Дробно-линейное программирование

В дробно-линейном программировании (ДЛП) целевая функция является дробно-линейной вида

Дробно-линейное программирование

где Дробно-линейное программирование и Дробно-линейное программирование — скалярные константы; Дробно-линейное программирование и Дробно-линейное программирование — векторы, сформированные из исходных данных; Дробно-линейное программирование — вектор искомых переменных:

Дробно-линейное программирование

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

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

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

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

Дробно-линейное программирование

или

Дробно-линейное программирование

линейное уравнение, если знаменатель целевой функции в области Дробно-линейное программирование не равен нулю.

Таким образом, если задача ДЛ П имеет оптимальное решение, то по крайней мере одна крайняя точка из области Дробно-линейное программирование будет оптимальной. Однако линии уровня целевой функции расходятся как лучи от множества вращения размерности Дробно-линейное программирование. Множество вращения — это множество всех точек пересечения нулевой линии уровня числителя

Дробно-линейное программирование

с нулевой линией уровня знаменателя

Дробно-линейное программирование

т.е. множество точек, удовлетворяющих системе уравнений

Дробно-линейное программирование

Вращая линию уровня целевой функции в направления вектора Дробно-линейное программирование против часовой стрелки, увеличиваем значение целевой функции; вращая линию уровня по часовой стрелке — уменьшаем значение целевой функции.

Если знаменатель целевой функции отрицателен на Дробно-линейное программирование, то дробь следует умножить на (-1), не изменяя при этом условия максимума или минимума целевой функции.

Для решения задач ДЛП применяют преобразование переменных и процедуру обновления целевой функции.

Преобразование переменных. Путем преобразования переменных задачу ДЛП при положительном в области Дробно-линейное программирование знаменателе сводят к задаче линейного программирования. Делается замена

переменных

Дробно-линейное программирование

для всех Дробно-линейное программирование.

Задача ДЛП принимает вид:

Дробно-линейное программирование

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

Дробно-линейное программирование
Дробно-линейное программирование

В результате появляется новая переменная Дробно-линейное программирование, и имеем задачу линейного программирования: найти

Дробно-линейное программирование

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

Дробно-линейное программирование

Эта задача имеет Дробно-линейное программирование ограничение и Дробно-линейное программирование переменную.

Пример:

Решить задачу ДЛП:

Дробно-линейное программирование

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

Дробно-линейное программирование

После замены переменных получим задачу линейного программирования:

Дробно-линейное программирование

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

Дробно-линейное программирование

Решая ее симплекс-методом, находим

Дробно-линейное программирование

или оптимальное решение

Дробно-линейное программирование

Обновление целевой функции. Задача ДЛ П решается как последовательность задач линейного программирования, где на каждой итерации пересчитывается градиент целевой функции

Дробно-линейное программирование

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

При обращении в области Дробно-линейное программирование знаменателя в нуль могут быть следующие случаи:

  1. Знаменатель принимает как положительные, так и отрицательные значения — в таких случаях целевая функция Дробно-линейное программирование нe имеет ни конечного максимума, ни конечного минимума.
  2. Знаменатель всюду равен нулю — всем точкам из области Дробно-линейное программирование соответствуют неопределенные значения Дробно-линейное программирование.
  3. Векторы Дробно-линейное программирование и Дробно-линейное программирование коллинеарны.

3.1. Множество вращения пусто, тогда нулевые линии уровня числителя и знаменателя параллельны, но не совпадают друг с другом; Дробно-линейное программирование нe ограничено сверху и не определено в крайней точке.

3.2. Множество вращения не пусто — числитель и знаменатель имеют идентичные нулевые линии уровня; Дробно-линейное программирование постоянно в области Дробно-линейное программирование, кроме некоторых точек, где оно имеет значение 0/0.

  • Векторы Дробно-линейное программирование и Дробно-линейное программирование не коллинеарны.

4.1. Дробно-линейное программирование — подмножество множества вращения — всем точкам из области Дробно-линейное программирование соответствуют значения Дробно-линейное программированиевида 0/0.

4.2. Знаменатель всюду равен нулю — Дробно-линейное программирование = 0 всюду, кроме тех точек из Дробно-линейное программирование, принадлежащих множеству вращения, где оно принимает значение 0/0.

4.3. В области Дробно-линейное программирование существуют точки, где знаменатель не равен нулю — здесь могут быть:

  • конечные минимумы и конечные максимумы;
  • конечные минимумы, но неограниченные максимумы;
  • неограниченные минимумы и максимумы.

Эта теория взята со страницы лекций по предмету «математическое программирование»:

Предмет математическое программирование

Возможно эти страницы вам будут полезны:

Задача о рациональном соотношении между различными типами бронебойных снарядов
Задачи о покрытии множества
Анализ устойчивости оптимального решения задачи линейного программирования
Основные направления развития методов решения задач математического программирования