Оптимизация количества диагностических услуг

 

1 Теоретические сведения

 

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

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

                                           С = ®max (min),                            (1.1)

                                           £ ri,                                                (1.2)

                                           dj £ xj £ Dj,                                           (1.3)

xj ― целые числа,                                    (1.4)

где i =1, 2,…, m; j =1,2,…, n.

     Методы решения задач целочисленного программирования основываются, например, на сокращённом переборе вариантов решений по алгоритму ветвей и границ.

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

                                                     xj £[ xj *],

                                                     xj ³[ xj *]+1,

где [ xj *] ― целая часть нецелочисленного значения переменной xj * в оптимальном решении. Затем решаются ещё две задачи линейного программирования, в каждую из которых входят исходные и одно из дополнительных ограничений.

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

1) на одной из ветвей несовместная система ограничений, тогда дальнейшие вычисления по этой ветви прекращаются;

2) на одной из ветвей целочисленное решение, тогда значение целевой функции сравнивается с верхним граничным значением в задаче поиска максимума целевой функции или с нижним граничным значением в задаче поиска минимума целевой функции; если полученное значение хуже, то оно отбрасывается, если лучше ― то принимается как граничное;

3) на одной из ветвей нецелочисленное решение и значение целевой функции хуже граничного, тогда дальнейшие вычисления по этой ветви прекращаются.

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

Например, требуется решить задачу целочисленного программирования:

                                           C =7 x 1+3 x 2®max,

                                           5 x 1+2 x 2£20,

                                           8 x 1+4 x 2£38,

                                           x 1, x 2³0,

x 1, x 2 ― целые числа.

     Схема решения методом ветвей и границ представлена на рисунке 1.1.

 

 


Рисунок 1.1 ― Схема решения задачи

 

     Графическое решение задачи 1 симплекс-методом показано на рисунке 1.2. Максимальное значение целевой функции C 1=29,5 достигается при значениях переменных x 1=1, x 2=7,5. Значение переменной x 2 не удовлетворяет условию целочисленности.

 

 

 


Рисунок 1.2 ― Графическое решение задачи 1

 

     На основе полученных результатов решения задачи 1 составляются дополнительные ограничения для переменной x 2 и решаются симплекс-методом ещё две задачи.

     Задача 2

                                           C =7 x 1+3 x 2®max;

                                           5 x 1+2 x 2£20;

                                           8 x 1+4 x 2£38;

                                           x 1³0, 0£ x 2£7.

     Задача 3

                                           C =7 x 1+3 x 2®max;

                                           5 x 1+2 x 2£20;

                                           8 x 1+4 x 2£38;

                                           x 1³0, x 2³8.

Графическое решение задач 2 и 3 симплекс-методом показано на рисунке 1.3. Получены целочисленные значения переменной x 2 и нецелочисленные значения переменной x 1.

 

 

 


Рисунок 1.3 ― Графическое решение задач 2 (слева) и 3 (справа)

 

Теперь дополнительные ограничения принимаются для переменной x 1. Значение целевой функции в задаче 2 превосходит значение целевой функции в задаче 3, поэтому вычисления продолжаются по ветви с задачей 2 (см. рисунок 1.1).

     Задача 4

                                           C =7 x 1+3 x 2®max;

                                           5 x 1+2 x 2£20;

                                           8 x 1+4 x 2£38;

                                           0£ x 1£1, 0£ x 2£7.

     Задача 5

                                           C =7 x 1+3 x 2®max;

                                           5 x 1+2 x 2£20;

                                           8 x 1+4 x 2£38;

                                           x 1³2, 0£ x 2£7.

Графическое решение задач 4 и 5 симплекс-методом показано на рисунке 1.4. Получены целочисленные значения переменных и вычисления по ветвям с задачами 4 и 5 прекращаются. Наибольшее значение целевой функции, полученное при решении задачи 5, принимается за граничное значение: C гр= C 5=29.

 

 

 


Рисунок 1.4 ― Графическое решение задач 4 (слева) и 5 (справа)

 

     Значение целевой функции в задаче 3 превосходит граничное значение, поэтому вычисления продолжаются по ветви с задачей 3 (см. рисунок 1.1).

     Задача 6

                                           C =7 x 1+3 x 2®max;

                                           5 x 1+2 x 2£20;

                                           8 x 1+4 x 2£38;

                                           x 1=0, x 2³8.

     Задача 7

                                           C =7 x 1+3 x 2®max;

                                           5 x 1+2 x 2£20;

                                           8 x 1+4 x 2£38;

                                           x 1³1, x 2³8.

Графическое решение задач 6 и 7 симплекс-методом показано на рисунке 1.5. Получены целочисленные значения переменных в задаче 6. Область допустимых решений для ограничений в задаче 7 отсутствует и задача не имеет решения. Вычисления по ветвям с задачами 6 и 7 прекращаются.

     
 

 

 


Рисунок 1.5 ― Графическое решение задач 6 (слева) и 7 (справа)

 

     Результаты решения задач сведены в таблицу 1.1.

 

Таблица 1.1 ― Результаты решения задачи оптимизации

Номер задачи x 1 x 2 C
1 1 7,5 29,5
2 1,2 7 29,4
3 0,75 8 29,25
4 1 7 28
5 2 5 29
6 0 9 27
7 1 8 Нет решения

 

Оптимальным принимается решение задачи 5, которое по значениям переменных дальше от непрерывного решения, чем в задаче 4.

     Задачи ЦП решаются с использованием функции intlinprog в Matlab, начиная с версии 2014 г. [1].

 

          2 Задание и методические указания

 

Диагностическим центром оказывается четыре вида платных услуг пациентам (таблицы 2.1, 2.2). Планируемое количество xj услуг вида j (число пациентов, которым оказывается услуга вида j) не менее dj. Вклад услуги вида j в прибыль диагностического центра составляет cj. Оказание услуг обеспечивается двумя видами ресурсов. Для оказания услуги вида j необходимо rij единиц ресурса вида i. Количество ресурсов вида i ограничено значением ri. Требуется оптимизировать количество услуг по критерию максимальной прибыли.

 

Таблица 2.1 ― Планируемые показатели услуг

Вид услуги, j

Планируемое минимальное количество услуг, dj

Прибыль от услуги, cj

Располагаемые ресурсы, ri

Затраты ресурсов на одну услугу вида j, rij

Фонд рабочего времени, r 1 Фонд оплаты труда, r 2 Трудоёмкость услуги, r 1 j Оплата труда специалистов за услугу, r 2 j

Число условных единиц

1 d 1 c 1

45744

35283

470 459
2 d 2 c 2 363 338
3 d 3 c 3 121 140
4 d 4 c 4 98 90

 

Таблица 2.2 ― Варианты задания

Вариант 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
c 1 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362
c 2 435 434 433 432 431 430 429 428 427 426 425 424 423 422 421 420
c 3 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
c 4 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34

Значения d 1, d 2,, d 3, d 4 выбирать самостоятельно.

 

     Методические указания по выполнению практической работы:

     а) изучить лекции по математическому программированию;

     б) сформулировать ответы на контрольные вопросы;

     в) изучить рекомендуемую литературу по теме занятия;

     г) выполнить задание:

     1) выполнить формальную постановку задачи целочисленного линейного программирования, содержащую критерий оптимизации с ограничениями и граничными условиями;

     2) представить описание синтаксиса функции intlinprog в табличной форме с комментариями;

     3) обосновать выбор варианта синтаксиса функции intlinprog для решения поставленной задачи;

     4) составить программу решения задачи оптимизации с использованием функции intlinprog и графического интерфейса пользователя Matlab;

     5) решить задачу для исходных данных, указанных в таблицах 2.1 и 2.2;

     6) результаты решения задачи представить в табличной форме (таблица 2.3).

     д) представить отчёт о работе в электронном виде преподавателю на очередном практическом занятии, ответить на контрольные вопросы.

     Примечание ― В случае отсутствия версии Matlab с функцией intlinprog составить алгоритм и программу Matlab решения задачи методом ветвей и границ.

 

Таблица 2.3 ― Рекомендуемая форма представления результатов оптимизации количества диагностических услуг

Вид услуги, j

Количество услуг:

Ограничения:

Трудоёмкость:

Оплата труда:

Прибыль:

минимальное, dj

оптимальное

фонд рабочего времени, r 1 фонд оплаты труда, r 2 одной услуги, r 1 j минимального количества услуг, r оптимального количества услуг, r

одной услуги, r 2 j

минимального количества услуг, r оптимального количества услуг, r от одной услуги, cj от минимального количества услуг, cj П от оптимального количества услуг, cj О

Число условных единиц

1 d 1  

 

 

     

 

    c 1    
2 d 2        

 

    c 2    
3 d 3        

 

    c 3    
4 d 4        

 

    c 4    

 

å= å=

 

å= å=   å= å=
                             

 

     Интерфейсом пользователя предусматривается импортирование в рабочее пространство Matlab таблицы исходных данных (таблица 2.1) из архива по задаваемому адресу или ввод исходных данных в интерактивном режиме, ввод задания в форме, предусматриваемой синтаксисом функции intlinprog, представление результатов оптимизации в форме, предусматриваемой синтаксисом функции intlinprog, экспорт результатов оптимизации в архив по задаваемому адресу.

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

 

     3 Рекомендуемая литература

 

     1 Исаев Г.А. Решение задач целочисленного, смешанного и булева программирования в среде Matlab [Электронный ресурс]. — Электрон., текстовые дан. — Режим доступа: http://www.math.spbu.ru/kio/lectures/intlinprog.pdf. — Загл. с экрана.

 






Контрольные вопросы и задания

 

     1 Дать формальную постановку задачи целочисленного программирования.

     2 Представить графическое решение задачи целочисленного программирования:

                                           E =0,4 x 1+ x 2®max;

                                           11 x 1+4,5 x 2£49,5;

                                           5 x 1+19 x 2£94;

                                           x 1, x 2 ― целые числа.

3 Классифицировать методы решения задачи целочисленного программирования.

     4 Пояснить графом методику решения задачи целочисленного программирования методом ветвей и границ.


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



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