Решение с помощью пакета WinQSB

Воспользуемся той же программой Linear and Integer Programming, ко­торую использовали в разделе 1.2 для решения задачи линейного программиро­вания. Для ввода новой задачи следует выбрать команду File > New Problem и действовать далее, как было описано в разделе 1.2. Однако теперь при задании парамегров (см. рис. 1.1) следует выбрать общий для всех переменных тип — целые неотрицательные (Nonnegative integer):

Если ранее, решая задачу линейного программирования, вы сохранили ее на диске, то теперь можете просто загрузить. Понадобится лишь двойным щелчком изменить тип каждой переменной в строке Variable Туре (см. рис. 1.3). В результате непрерывный тип (Continuous) заменится целочис­ленным (Integer). Таким же образом можно задавать условия и частичной це- лочисленности, когда целыми должны быть не все, а только часть переменных.

После выбора команды Solve and Analyze ► Solve the Problem появится сводный отчет (рис. 2.1) с целочисленным оптимальным решением.

л Combined Report for Производственный план I   X
    21:02:33   Friday August      
    Decision Solution Unit Cost or Total Reduced Basis  
    Variable Value Profit c(j) Contribution Cost Status  
  Г Прод1 5,0000 70,0000 350,0000   basic  
  ¥ Прод2 1,0000 60,0000 60,0000 60,0000 at bound  
    ПродЗ 3,0000 110,0000 330,0000   basic  
    Прод4 4,0000 140,0000 560,0000   basic  
    Objective Function (Max.) = 1 300,0000      
      Left Hand   Right Hand Slack Shadow  
    Constraint Side Direction Side or Surplus Price  
  Т Труд 18,0000 <= 19,0000 1,0000    
    Сырье 70,0000 <= 80,0000 10,0000    
    Финансы 91,0000 <= 100,0000 9,0000    
               

Рис. 2.1. Сводный отчет о целочисленном решении задачи линейного программиро­вания

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

Как и в обычной задаче линейного программирования, кроме сводного от­чета, можно с помощью команд меню Results получить еще и частные отчеты: по решению (Solution Summary) и по ограничениям (Constraint Summary). Также можно решить задачу с показом шагов, выбрав команду Solve and Ana­lyze ► Solve and Display Steps. При этом показываются все итерации, получа­емые методом ветвей и границ. Просматривая их, вы можете с помощью меню Brand-And-Bound Iteration перейти к следующей итерации (Next Iteration), к концу решения с выводом сводного отчета (Nonstop to Finish) или посмотреть текущую информацию (Show Node Information). Эта информация — о количе­стве активных узлов, текущем значении целевой функции и нижней или верх­ней границе, обозначаемых, соответственно, ZL и ZU.

Поскольку нахождение целочисленного решения зачастую является до­вольно длительной процедурой, в WinQSB предусмотрена возможность ее ускорения. Для этого используются команды, позволяющие изменить следую­щие параметры:

1.94. Допустимая погрешность в определении оптимальных значений переменных — Change Integer Tolerance. Для ускорения можно увеличить принятое по умолчанию значение 0,01.

1.95. Допустимое отклонение полученного значения целевой функции от оптимального — Specify Solution Quality. Для ускорения можно увеличить принятое по умолчанию значение 0%.

1.96. Приоритеты выбора переменных для ветвления — Specify Variable Branching Priorities. Для ускорения можно менять приоритеты, которые по умолчанию одинаковы и равны 0.

Указанные параметры можно изменить либо перед началом решения (вы­брав соответствующие команды в меню Solve and Analyze), либо в ходе реше­ния с показом шагов (выбрав те же команды в меню Brand-And-Bound Itera­tion).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: