оптимизация количества оборудования




 

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;

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
    7,5 29,5
  1,2   29,4
  0,75   29,25
       
       
       
      Нет решения

 

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

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

 

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

 

Медицинским центром планируется закупать оборудование для оказания платных услуг пациентам (таблицы 2.1, 2.2). Количество закупаемого оборудования xj вида j не менее dj. На закупку оборудования выделяется не более r 1 финансовых средств. Стоимость единицы оборудования составляют r 1 j. Среднее число пациентов в очереди за услугой составляет mj. Ежедневное количество оказываемых услуг на единице оборудования составляет sj. Средний неудовлетворённый спрос на услугу не должен превышать r 2 j. Вклад услуги в прибыль медицинского центра составляет cj. Требуется оптимизировать количество закупаемого оборудования по критерию максимальной прибыли от услуг.

 

Таблица 2.1 ― Исходные данные для планирования закупок оборудования

Вид оборудования, j Минимальное количество оборудования, dj Среднее число пациентов в очереди, mj Прибыль от услуги, cj Ограничения Затраты, rij З Затраты
Финансовые средства, r 1 Неудовлетворённый спрос на услугу, r 2 j Стоимость оборудования, r 1 j Количество услуг на единице оборудовании, sj
Число условных единиц
1 Рентгеновский аппарат d 1   c 1 64´106   6,04´106  
2 Ультразвуковой сканер d 2   c 2   1,65´106  
3 Эхокардиограф d 3   c 3   3,41´106  
4 Компьютерный томограф d 4   c 4   27,3´106  
5 Гастрофиброскоп d 5   c 5   0,26´106  
Примечание ― Неудовлетворённый спрос услуги вычисляется по формуле r 2 j = mjsjxj, где xj ― число единиц оборудования.

 

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

Вид оборудования, j Количество оборудования: Ограничения: Среднее число пациентов в очереди, mj Количество услуг на единице оборудовании, sj Неудовлетворённый спрос: Стоимость оборудования: Прибыль:
минимальное, dj оптимальное, xj финансовые, r 1 неудовлетворённый спрос, r 2 j минимальное количество оборудования, r 2 j П оптимальное количество оборудования, r 2 j О единицы, r 1 j минимального количества, r 1 j П оптимального количества, r 1 j О от услуги, cj минимальное количество оборудования, cj П от оптимальное количество оборудования, cj О
  d 1                     c 1    
  d 2                   c 2    
  d 3                   c 3    
  d 4                   c 4    
  d 5                   c 5    
  å= å=   å= å=

 

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

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

 

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

 

1 Исаев Г.А. Решение задач целочисленного, смешанного и булева программирования в среде Matlab [Электронный ресурс]. — Электрон., текстовые дан. — Режим доступа: https://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 Пояснить графом методику решения задачи целочисленного программирования методом ветвей и границ.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: