Типовые оптимизационные задачи

advertisement
Типовые оптимизационные задачи
линейного программирования
1. Задача о диете (пищевом рационе). Имеется N видов продуктов питания pi . Известна
стоимость единицы каждого продукта ci. Из этих продуктов необходимо составить пищевой
рацион, который должен содержать белков не менее B единиц, углеводов не менее U единиц,
жиров не менее G единиц. Для каждой единицы i-го продукта известно содержание единиц
белков-bi , углеводов- ui и жиров- gi. Требуется так составить пищевой рацион, чтобы
обеспечить заданные условия при минимальной стоимости рациона.
Модель. Пусть xi – количества продуктов i-го вида. Тогда
N
z   сi xi  min
i 1
N
 bi xi  B
i 1
N
 ui xi  U
i 1
N
 gi xi  G
i 1
xi  0 . Задача ЛП с размерностью 3хN.
2. Задача о ранце. Имеется N видов предметов, которые турист хочет взять с собою в
поход. Известны вес bi каждого предмета и его эффективность ei для туристов. Составить
список предметов, помещаемых в рюкзак, учитывая, что предельный вес рюкзака не более
заданной величины B. Необходимо, чтобы суммарный эффект был максимальным.
Эту задачу можно рассмотреть в двух вариантах:
1. решение в виде брать предмет или не брать;
2. сколько взять предметов каждого вида.
Пусть xi – количество предметов каждого вида.
Модель задачи для первого варианта:
N
z   xi ei  max
i 1
N
 xi bi  B , xi={0,1}.
i 1
Это булевская задача с размерностью 1хN.
Можно свести к задаче ЦЛП: 0  xi  1 , xi- целые. Тогда размерность задачи (N+1)хN.
Модель задачи для второго варианта:
N
z   xi ei  max
i 1
N
 xi bi  B , xi  0 , целое.
i 1
Это задача ЦЛП с размерностью 1хN.
3. Транспортная задача.
Транспортная задача (ТЗ) – особый класс задач ЛП. Специфика математической модели
ТЗ позволяет наряду с общими методами решения задач ЛП применять специальные методы,
позволяющие сократить вычисления. Постановка ТЗ принадлежит Хичкоку.
Имеется m – пунктов производства (складов) некоторого одного продукта, ai - объем
производства в i-м пункте производства, i  1, m .
n пунктов потребления, bj - объем потребления (поданные заявки на поставку продукта)
в j-м пункте потребления, j  1, n .
Пункты производства связаны с пунктами потребления сетью дорог с определенными
тарифами на перевозки. Стоимость перевозки одной единицы товара с производства i в пункт j
равна Cij. Необходимо найти оптимальный план перевозок продукции, при котором
транспортные издержки минимальны, продукция полностью вывозится из пунктов производства
и полностью удовлетворяет потребность.
Модель.
xij – количество продукта, вывозимого из i-го пункта производства в j-й пункт
потребления.
x11
m n

1
a
1
1
b1
 z   Cij xij  min
x
12
i 1 j 1

2
a2
2
b2
m

, xij  0
x13
  xij  b j , j  1, n
i

1
3
a
3
3
b3

n
…
…
  xij  ai , i  1, m
m
a
m
n
bn
x
1n
 j 1
Размерность задачи (m+n) x mn
Методы решения:
1. симплекс метод
2. специальные методы: для нахождения опорного плана: метод северо-западного угла,
метод минимального элемента; для нахождения оптимального плана - метод потенциалов.
3. обобщенный венгерский метод и др.
ТЗ может рассматриваться в 2-х вариантах: открытая ТЗ и закрытая ТЗ.
ТЗ закрытая, если выполняется условие баланса производство равно потреблению:
m
n
i 1
j 1
 ai   b j
Открытая ТЗ может быть в 2-х вариантах:
1)
m
n
i 1
j 1
 ai   b j
Вводим фиктивный пункт потребления n+1, объем потребления которого равен:
m
n
bn 1   ai   b j
i 1
2)
j 1
m
n
i 1
j 1
 ai   b j
Вводим фиктивный пункт производства m+1, объем производства которого равен:
n
m
j 1
i 1
a m1   b j   ai
4. Задача о назначении.
Имеется p исполнителей и p работ. Известна эффективность применения каждого
исполнителя на каждой работе Cij. Необходимо расставить исполнителей по работам, чтобы
суммарный эффект от работы был максимальным. Каждый работник может выполнять только
одну работу, и каждая работа может выполняться только одним исполнителем.
Модель.
xij – факт применения i-го работника на j-й работе.
x ij  0,1. 1- назначается на работу, 0- нет.
x11
1
x12
1
2
2
x13
3
…
p
x1q
3
…
p
p q

z


 Cij xij  max

i 1 j 1

p
  xij  1, j  1, p
i 1
q
  xij  1, i  1, p
 j 1
Это задача булевского программирования с размерностью (p+q) x pq.
Сводится к задаче ЦЛП с размерностью (p+q+pq) x pq. Для этого вводим дополнительные
ограничения:
 xij  1

от x ij  0,1 переходим к  xij  0

 xij  целые
В таком виде задача решается следующими методами:
1. методы ЛП (например симплекс-метод) в силу специфики модели;
2. методы ЦЛП (неэффективны) – метод Гомори, ветвей и границ для ЦЛП;
3. как частный случай транспортной задачи (объемы поставок и потребления равны
1);
4. венгерский метод.
В случае, если количество работ и исполнителей не равны, то вводятся фиктивные
исполнители или работы.
5. Задача о коммивояжере.
Есть n городов. Затраты (стоимостные, временные, расстояния) на переезд между i-м и jм городом заданы в виде матрицы Cij , i  1, n , j  1, n . Коммивояжер, выехав из исходного
города должен объехать все города, посетив каждый однажды, и вернуться в исходный.
Определить в каком порядке нужно объезжать города, чтобы суммарные затраты были
минимальными.
Модель.
1 переезжает из i - го города в j - й
Пусть xij  
0 в противном случае
n m

z


 Cij xij  min

i 1 j 1

n
  xij  1, j  1,n, i  j въезжает в город 1 раз
i 1
n
  xij  1, i  1, n, i  j выезжает из города 1 раз
 j 1
 xij  1, xij  0, целые

Задача ЦЛП. Размерность (2n+n2) x n2
Результат решения задачи может быть представлен в виде матрицы вида:
0 1 0 0 0


0 0 1 0 0
x *   0 0 0 0 1  или в виде маршрута: 1-2-3-5-4-1.


1 0 0 0 0
0 0 0 1 0


Эта модель не учитывает условие, не допускающее появление неполных замкнутых
циклов (см. рис.)
2
1
5
1
3
4
Методы решения:
1. метод ветвей и границ для з-чи о
коммивояжере – в этом методе уже заложено
условие связанности циклов.
2. венгерский
метод
с
модификацией,
отвергающей
решения
с
неполными
замкнутыми циклами
6. Задача о раскрое материалов.
На раскрой поступает s различных материалов, требуется изготовить n различных видов
изделий, причем продукция выпускается комплектами и в комплект входит bk изделий k-го
вида. Каждая единица j-го материала может быть раскроена p различными способами так, что
при использовании i-го способа получается aijk единиц изделий k-го вида. Известно, что
материала j-го вида имеется cj единиц. Найти план раскроя, обеспечивающий максимальное
число комплектов при заданных ограничениях на материал.
Модель. Пусть xij – число заготовок j-го материала, раскроенных i-м способом.

p s k 
 aij xij 

 i

1 j 1
 z  min 
  max, k  1, n
k
bk



, xij  0 , целые





p
  xij  c j , j  1, s
i 1
Задача НЛП. Размерность задачи: s x p*s
Эту задачу можно привести к линейному виду. Введем еще одну переменную y –
количество комплектов. Тогда получим модель:

 z  y  max

p
, xij , y  0 , целые
  xij  c j , j  1, s
i

1

p s k
   aij xij  х * bk , k  1, n
i 1 j 1
Задача ЦЛП. Размерность задачи (s+n) x (p*s+1)
Подготовил
Сергей Чекрыжов
Download