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

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

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

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

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

1. Систему ограничений приводят к каноническому виду:

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

где Дробно-линейное программирование - student2.ru ─ основные переменные;
Дробно-линейное программирование - student2.ru ─ дополнительные переменные;
Дробно-линейное программирование - student2.ru ─ искусственные переменные.

2. Знаменатель целевой функции обозначают через Дробно-линейное программирование - student2.ru , это приво­дит к следующему:

§ появится дополнительное ограничение Дробно-линейное программирование - student2.ru или Дробно-линейное программирование - student2.ru ;

§ функция цели приобретет вид Дробно-линейное программирование - student2.ru .

3. Все ограничения умножают на Дробно-линейное программирование - student2.ru и к ним добавляют дополни­тельное соотношение.

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

4. Вводят обозначения:

Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ;

Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru .

Упорядочивают систему относительно новых переменных, перено­ся из правой части элементы, связанные с Дробно-линейное программирование - student2.ru . Кроме того, в допол­нительное ограничение вводят искусственную переменную со сле­дующим номером, в данном случае вводят Дробно-линейное программирование - student2.ru . Это необходимо для формирования начального базиса. В результате указанных преоб­разований задача приобретает вид:

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

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

5. Задача приобрела каноническую форму, ее решение может быть выполнено симплексным методом. Учитывая, что индексы векторов должны соответствовать индексам переменных ( Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru и т.д.), вектор свободных членов обозна­чают через Дробно-линейное программирование - student2.ru - это избавит от путаницы.

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

Таблица 1

Начальное симплекс-решение

Б С Дробно-линейное программирование - student2.ru             Дробно-линейное программирование - student2.ru   Дробно-линейное программирование - student2.ru   Дробно-линейное программирование - student2.ru   С.о.
Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru
Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru     -6     -1              
Дробно-линейное программирование - student2.ru   Дробно-линейное программирование - student2.ru   -14         -1            
Дробно-линейное программирование - student2.ru       -5                    
Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru                     1/5  
Дробно-линейное программирование - student2.ru -строка       -3   -2                  
Дробно-линейное программирование - student2.ru -строка     -20       -1   -1          


Данной таблице соответствуют такие значения переменных:

Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru .

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

В таблице 1 получено три одинаковых симплексных отноше­ния, - все они равны нулю. При выборе ключевой строки руковод­ствуются правилом: берут ту, которая соответствует большему элементу ключевого столбца. В данном случае выбирают первую строку, и генеральный элемент равен 6.

Таблица 2

Вторая симплексная таблица

Б С Дробно-линейное программирование - student2.ru             Дробно-линейное программирование - student2.ru   Дробно-линейное программирование - student2.ru   С.о.
Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru
Дробно-линейное программирование - student2.ru     -1   1/6     -1/6            
Дробно-линейное программирование - student2.ru   Дробно-линейное программирование - student2.ru   -12   40/6   2/6   -1          
Дробно-линейное программирование - student2.ru       -4   5/6     1/6            
Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru     19/6     5/6           6/19  
Дробно-линейное программирование - student2.ru -строка     -2   -16/6     -2/6              
Дробно-линейное программирование - student2.ru -строка     -7   59/6     7/6   -1        

Второе решение выглядит так:

Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru .

Оно не оптимально.

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

Таблица 3

Третье симплексное решение

Б С Дробно-линейное программирование - student2.ru             Дробно-линейное программирование - student2.ru   С.о.
Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru
Дробно-линейное программирование - student2.ru     -28/40       -7/40   1/40       -  
Дробно-линейное программирование - student2.ru       -72/40       2/40   -6/40       -  
Дробно-линейное программирование - student2.ru       -100/40       5/40   5/40       -  
Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru     428/40     27/40   19/40       40/428  
Дробно-линейное программирование - student2.ru -строка     -272/40       -8/40   -16/40          
Дробно-линейное программирование - student2.ru -строка     428/40       27/40   19/40      

Третье решение:

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

Условие оптимальности все еще не выполняется, переходят к следующей таблице.

Анализ показывает, что значения большинства переменных будут равны нулю до тех пор, пока ключевой строкой будет оставаться строка с нулевым элементом в Дробно-линейное программирование - student2.ru . Как только ключевой станет строка с ненулевым эле­ментов в Дробно-линейное программирование - student2.ru , так базисные переменные обретут конкретные зна­чения.

Таблица 4

Четвертое симплексное решение

Б С Дробно-линейное программирование - student2.ru             С.о.
Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru
Дробно-линейное программирование - student2.ru   28/428         -56/428   24/428     -  
Дробно-линейное программирование - student2.ru     72/428         70/428   -30/428     72/70  
Дробно-линейное программирование - student2.ru     100/428         121/428   101/428     100/121  
Дробно-линейное программирование - student2.ru   40/428         27/428   19/428     40/27  
Дробно-линейное программирование - student2.ru -строка   272/428         98/428   -42/428        

Решение, соответствующее таблице 4, имеет вид:

Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru .

Оно не является оптимальным, строят следующее симплекс-преобразование.

Таблица 5

Пятое симплексное решение

Б С Дробно-линейное программирование - student2.ru            
Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru
Дробно-линейное программирование - student2.ru   21/121           20/121   56/121  
Дробно-линейное программирование - student2.ru     4/121           -25/121   -70/121  
Дробно-линейное программирование - student2.ru     100/121           101/121   428/121  
Дробно-линейное программирование - student2.ru   5/121           -1/121   -27/121  
Дробно-линейное программирование - student2.ru -строка   54/121           -35/121   -98/121  

В таблице 5 получено решение, удовлетворяющее условию опти­мальности:

Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru , Дробно-линейное программирование - student2.ru .

6. Определяют значения исходных переменных:

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

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

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

Таким образом, решение задачи дробно-линейного программиро­вания будет следующим:

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

7. Дают, если возможно, геометрическую интерпретацию задачи:

§ находят область допустимых значений;

§ отмечают точки, соответствующие симплекс-таблицам.

Областью решений является треугольник Дробно-линейное программирование - student2.ru . Первые ре­альные значения переменных Дробно-линейное программирование - student2.ru появились в четвертой симплекс­ной таблице, им соответствуют такие значения исходных неизвестных: Дробно-линейное программирование - student2.ru . На графике – это вершина Дробно-линейное программирование - student2.ru , она оптимальной не является. Оптимальное решение обеспечивает верши­на Дробно-линейное программирование - student2.ru .

Дробно-линейное программирование - student2.ru                     Дробно-линейное программирование - student2.ru                            
                                                   
                                                     
                                                   
                                                     
                                                 
                            А                    
                                               
                                                   
                                                   
                                                     
                                                 
                                                     
                              С         В      
                                           
                                                Дробно-линейное программирование - student2.ru
    -5   -4   -3   -2   -1                
                                                     
                        -1                            

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

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

2. Выбирают произвольное значение Дробно-линейное программирование - student2.ru и строят соответствующую прямую Дробно-линейное программирование - student2.ru – она обязательно пройдет через начало координат.

3. Обозначим Дробно-линейное программирование - student2.ru

§ если Дробно-линейное программирование - student2.ru , то, поворачивая прямую Дробно-линейное программирование - student2.ru против часовой стрелки до опорного положения, получим точку минимума (для получения максимума прямую поворачивают по часовой стрелке);

§ если Дробно-линейное программирование - student2.ru , то для получения минимума прямую Дробно-линейное программирование - student2.ru поворачивают по часовой стрелке до опорного положения (для максимума – против часовой стрелки).

4. Определив оптимальные точки, находят их координаты – это и будут оптимальные значения переменных, после чего вычисляют величину функции цели.

Пример. Найти решение дробно-линейной задачи.

Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru , рассмотрим 2 варианта функции

а) Дробно-линейное программирование - student2.ru б) Дробно-линейное программирование - student2.ru

1. Строим область допустимых решений – она определяется тремя неравенствами и представляем собой треугольник Дробно-линейное программирование - student2.ru .

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

2. Строим прямую Дробно-линейное программирование - student2.ru

а) Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru

б) Дробно-линейное программирование - student2.ru Дробно-линейное программирование - student2.ru

Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru

а) Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru

б) Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru ; Дробно-линейное программирование - student2.ru

Наши рекомендации