В математической оптимизации линейно -дробное программирование ( ЛДП ) является обобщением линейного программирования (ЛП). В то время как целевая функция в линейной программе является линейной функцией , целевая функция в линейно-дробной программе является отношением двух линейных функций. Линейную программу можно рассматривать как частный случай линейно-дробной программы, в которой знаменатель является постоянной функцией 1.
Формально дробно-линейное программирование определяется как задача максимизации (или минимизации) отношения аффинных функций на многограннике ,
где представляет собой вектор переменных, которые необходимо определить, и являются векторами (известных) коэффициентов, является (известной) матрицей коэффициентов и являются константами. Ограничения должны ограничивать допустимую область до , т.е. областью, в которой знаменатель положителен. [1] [2] В качестве альтернативы, знаменатель целевой функции должен быть строго отрицательным во всей допустимой области.
Мотивация по сравнению с линейным программированием
Как линейное программирование, так и дробно-линейное программирование представляют собой задачи оптимизации с использованием линейных уравнений и линейных неравенств, которые для каждого экземпляра задачи определяют допустимое множество . Дробно-линейные программы имеют более богатый набор целевых функций. Неформально, линейное программирование вычисляет политику, обеспечивающую наилучший результат, такой как максимальная прибыль или минимальная стоимость. Напротив, дробно-линейное программирование используется для достижения наивысшего соотношения результата к стоимости, причем соотношение представляет наивысшую эффективность. Например, в контексте LP мы максимизируем целевую функцию прибыль = доход − стоимость и можем получить максимальную прибыль в размере 100 долларов США (= 1100 долларов США дохода − 1000 долларов США стоимости). Таким образом, в LP мы имеем эффективность 100/1000 долларов США = 0,1. Используя LFP, мы можем получить эффективность 10/50 долларов США = 0,2 с прибылью всего в 10 долларов США, но требуя только 50 долларов США инвестиций.
Преобразование в линейную программу
Любая дробно-линейная программа может быть преобразована в линейную программу, предполагая, что допустимая область непуста и ограничена, с помощью преобразования Чарнса-Купера . [1] Основная идея состоит в том, чтобы ввести в программу новую неотрицательную переменную , которая будет использоваться для перемасштабирования констант, участвующих в программе ( ). Это позволяет нам потребовать, чтобы знаменатель целевой функции ( ) был равен 1. (Чтобы понять преобразование, полезно рассмотреть более простой частный случай с .)
Формально линейная программа, полученная с помощью преобразования Чарнса-Купера, использует преобразованные переменные и :
Решение исходной дробно-линейной программы можно перевести в решение преобразованной линейной программы с помощью равенств
Наоборот, решение для и преобразованной линейной программы можно перевести в решение исходной дробно-линейной программы с помощью
Двойственность
Пусть двойственные переменные, связанные с ограничениями и обозначаются как и , соответственно. Тогда двойственная переменная LFP выше будет [3] [4]
которая является LP и совпадает с двойственной эквивалентной линейной программой, полученной в результате преобразования Чарнса-Купера.
Свойства и алгоритмы
Целевая функция в дробно-линейной задаче является как квазивогнутой, так и квазивыпуклой (следовательно, квазилинейной) с монотонным свойством, псевдовыпуклостью , которое является более сильным свойством, чем квазивыпуклость . Дробно-линейно-целевая функция является как псевдовыпуклой, так и псевдовогнутой, следовательно, псевдолинейной . Поскольку LFP может быть преобразована в LP, ее можно решить с помощью любого метода решения LP, такого как симплексный алгоритм ( Джорджа Б. Данцига ), [5] [6] [7] [8] алгоритм крест-накрест , [9] или методы внутренней точки .
Примечания
- ^ ab Чарнс, А.; Купер, WW (1962). «Программирование с линейными дробными функционалами». Naval Research Logistics Quarterly . 9 (3–4): 181–186. doi :10.1002/nav.3800090303. MR 0152370.
- ^ Бойд, Стивен П.; Ванденберг, Ливен (2004). Выпуклая оптимизация (PDF) . Cambridge University Press. стр. 151. ISBN 978-0-521-83378-3. Получено 15 октября 2011 г. .
- ^ Шайбле, Зигфрид (1974). «Выпуклые эквивалентные и двойственные программы без параметров». Zeitschrift für Operations Research . 18 (5): 187–196. дои : 10.1007/BF02026600. MR 0351464. S2CID 28885670.
- ^ Шайбл, Зигфрид (1976). «Дробное программирование I: Двойственность». Наука управления . 22 (8): 858–867. doi :10.1287/mnsc.22.8.858. JSTOR 2630017. MR 0421679.
- ↑
Глава пятая: Craven, BD (1988). Дробное программирование . Серия Sigma в прикладной математике. Том 4. Берлин: Heldermann Verlag. С. 145. ISBN 978-3-88538-404-5. МР 0949209.
- ^ Крук, Серж; Волкович, Генри (1999). «Псевдолинейное программирование». SIAM Review . 41 (4): 795–805. CiteSeerX 10.1.1.53.7355 . doi :10.1137/S0036144598335259. JSTOR 2653207. MR 1723002.
- ^ Матис, Фрэнк Х.; Матис, Ленора Джейн (1995). «Алгоритм нелинейного программирования для управления больницей». Обзор SIAM . 37 (2): 230–234. doi :10.1137/1037046. JSTOR 2132826. MR 1343214. S2CID 120626738.
- ↑ Мурти (1983, Глава 3.20 (стр. 160–164) и стр. 168 и 179)
- ^ Иллес, Тибор; Ширмаи, Акос; Терлаки, Тамаш (1999). «Метод конечного креста для гиперболического программирования». Европейский журнал операционных исследований . 114 (1): 198–214. CiteSeerX 10.1.1.36.7090 . дои : 10.1016/S0377-2217(98)00049-6. Збл 0953.90055. Препринт постскриптума.
Источники
- Murty, Katta G. (1983). "3.10 Дробное программирование (стр. 160–164)". Линейное программирование . Нью-Йорк: John Wiley & Sons, Inc. стр. xix+482. ISBN 978-0-471-09725-9. МР 0720547.
Дальнейшее чтение
- Баялинов, Э. Б. (2003). Дробно-линейное программирование: теория, методы, приложения и программное обеспечение . Бостон: Kluwer Academic Publishers.
- Баррос, Ана Изабель (1998). Методы дискретного и дробного программирования для моделей местоположения . Комбинаторная оптимизация. Том 3. Дордрехт: Kluwer Academic Publishers. С. xviii+178. ISBN 978-0-7923-5002-6. МР 1626973.
- Мартос, Бела (1975). Нелинейное программирование: Теория и методы . Амстердам-Оксфорд: North-Holland Publishing Co. стр. 279. ISBN 978-0-7204-2817-9. МР 0496692.
- Шайбл, С. (1995). «Дробное программирование». В Райнер Хорст и Панос М. Пардалос (ред.). Справочник по глобальной оптимизации . Невыпуклая оптимизация и ее приложения. Том 2. Дордрехт: Kluwer Academic Publishers. С. 495–608. ISBN 978-0-7923-3120-9. МР 1377091.
- Stancu-Minasian, IM (1997). Дробное программирование: теория, методы и приложения . Математика и ее приложения. Том 409. Перевод Виктора Джурджуциу с румынского 1992 года. Дордрехт: Kluwer Academic Publishers Group. стр. viii+418. ISBN 978-0-7923-4580-0. МР 1472981.