1608
.pdfR(x) [C1 x1 C2 x2 ... C j x j Cn xn ] min , |
(47) |
при условии, что закупаемые количества продуктов не могут быть отрицательными величинами, а также не могут превышать конечных (реальных) запасов этих продуктов в магазине ( Aj ) :
0 x1 A1; |
0 x2 A2 ; ... ; |
0 x j A j ; |
...; 0 x n An . (48) |
В компактном виде математическая модель задачи о диете имеет следующий вид: определить оптимальные количества продуктов
питания x10, x20 ,...,x 0j ,...,x n0 при ограничениях
n |
|
|
qij x j Bi |
i M , |
(49) |
j 1 |
|
|
а также по объёмам закупок |
0 x j A j , |
j N , которые бы |
обращали в минимум целевую функцию |
|
|
R(x) C j x j min , |
(50) |
что в совокупности позволит получить наиболее экономичный рацион суточного потребления рассматриваемых продуктов, т.е. оптимальное решение задачи.
5.2. Типовой расчёт "Экономико-математическая постановка задачи о диете"
5.2.1. Задание
Для нормальной жизнедеятельности организма человека необходимо, допустим, потреблять 118 + N грамм белков, 56+ N грамм жиров, 500+ N грамм углеводов и 8+0,001 N грамм минеральных солей. Количество питательных веществ, содержащихся в 1 кг имеющихся в магазине продуктов питания, а также их стоимости приведены в табл. 15.
Здесь – вторая цифра номера группы; N – порядковый номер
60
студента по списку в группе. Необходимо составить экономикоматематическую модель определения дневного рациона питания, содержащего не менее суточной потребности человека (нормы) в необходимых питательных веществах и обеспечивающего минимальную общую стоимость необходимых продуктов.
Таблица 15
Исходные данные задачи о диете
|
|
Содержание питательных веществ в 1 кг продукта |
Нор- |
||||||
|
|
|
|
|
|
|
|
мы |
|
Питательны |
|
|
|
|
|
|
карт |
суточ |
|
|
|
|
|
|
|
ной |
|||
е вещества |
Мясо |
Рыба |
Молоко |
Масло |
Сыр |
Крупа |
офел |
||
потре |
|||||||||
|
|
|
|
|
|
|
ь |
||
|
|
|
|
|
|
|
бност |
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
и |
|
Белки, г |
180+ |
190+ |
30+ |
70+ |
260+ |
130+ |
21+ |
118 |
|
N |
N |
N |
N |
N |
N |
N |
|||
|
|
||||||||
Жиры, г |
20+ |
3+ |
40+ |
865+ |
310+ |
30+ |
2+ |
56 |
|
N |
N |
N |
N |
N |
N |
N |
|||
|
|
||||||||
Углеводы, г |
0 |
0 |
180+ |
6+ |
20+ |
650+ |
200+ |
500 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
||
Минеральны |
9+ |
1,0+ |
7+ |
12+ |
60+ |
20+ |
70+ |
8 |
|
е соли, г |
0,1 |
0,1 |
0,1 |
0,1 |
0,1 |
0,1 |
0,1 |
||
|
|||||||||
Стоимо |
40+ |
25+ |
6+ |
55+ |
70+ |
10+ |
5+ |
|
|
сть 1 кг |
|
0,1 |
0,1 |
|
|
0,1 |
|
|
|
продукта, |
|
|
|
|
|
|
|
|
|
руб |
|
|
|
|
|
|
|
|
|
Искомое |
|
|
|
|
|
|
|
|
|
количесто |
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
|
|
продукта |
|
|
|
|
|
|
|
|
5.2.2.Образец выполнения работы
Вкачестве примера рассмотрим вариант решения данной задачи при =N=0. Пользуясь вышеизложенным материалом, получим следующую экономико–математическую формулировку и математическую модель задачи для рассматриваемого варианта, исходные данные которой помещены в табл. 15: определить
оптимальные x10, x20 ,...,x 0j ,...,x n0
количества закупаемых продуктов питания при системе линейных ограничений, связанных с
суточной нормой потребления питательных веществ:
61
- по белкам:
180x1 190x2 30x3 70x4 260x5 160x6 21x7 180 ;
-по жирам:
20x1 3x2 40x3 865x4 310x5 30x6 2x7 56 ;
-по углеводам:
0x1 0x2 180x3 6x4 20x5 650x6 200x7 500 ;
-по минеральным солям:
9x1 10x2 7x3 12x4 60x5 20x6 10x7 8;
при условии неотрицательности решения, т.е.
x1 0, |
x2 0, |
x3 0, |
x4 0, |
x5 0, |
x6 0, |
x7 0, |
которые позволили бы обеспечить минимум затрат на приобретение всех необходимых продуктов питания, т.е.
R(x) [1.9 x1 x2 0.38 x3 3.4 x4 2.9 x5 0.56 x6 0.1 x7 ] min .
Решение рассматриваемой задачи, например, симплекс-методом с использованием одного из пакетов прикладных программ дает
искомые величины x10 x70 . Если выполнить рекомендации по
формированию оптимального рациона питания, т.е. закупить только те продукты в рекомендуемых количествах, то получим минимальную сумму затрат в денежном эквиваленте на приобретение всех продуктов питания.
Отчет о работе должен содержать исходные данные, сведенные в таблицу (см. табл. 15) и необходимые пояснения к экономикоматематической постановке задачи.
62
Вопросы и задания для самоконтроля
1.Какова сущность задачи о ресторане?
2.Записать целевую функцию задачи о ресторане.
3.Дать перечень ограничений задачи о ресторане.
4.Для чего вводятся и как формируются условия неотрицательности решения?
5.Каковы типичные инженерные проблемы, которые решаются
сиспользованием задачи о диете?
63
ГЛАВА 6. ЗАДАЧИ ОПТИМАЛЬНОГО РАСКРОЯ МАТЕРИАЛА, МАРШРУТИЗАЦИИ И УПАКОВОК
Для того, чтобы завершить рассмотрение семи типовых задач линейного программирования, обратим внимание на три оставшиеся из них:
-задача оптимального раскроя материала; -задача о коммивояжере; -задача о рюкзаке.
6.1. Задача оптимального раскроя материала
Впервые была сформулирована, поставлена и решена в 1939 г. российским учёным Л.В. Канторовичем на примере раскроя древесных хлыстов.
Задачу оптимального раскроя материала лучше всего пояснить, разобрав конкретный пример.
Допустим, имеется два вида заготовок в виде стержней: L1 = 650 мм в количестве 100 шт.
L2 = 400 мм в количестве 80 шт.
Необходимо раскроить из них детали длиною 125 мм и 200 мм, из которых впоследствии будут изготовлены комплекты в виде скоб. Причём, каждый комплект содержит две детали по 125 мм и одну деталь 200 мм, как показано на рис. 4.
250мм
125мм
Рис. 4 Комплект деталей в виде скоб
При этом необходимо обеспечить выпуск максимального количества таких комплектов.
На первом этапе производится анализ, в результате которого просматриваются все возможные варианты раскроя рассматриваемых заготовок с целью получения деталей заданных размеров.
64
В результате имеем:
Заготовка 650 мм |
Заготовка 400 мм |
3 200+0 125 |
2 200+0 125 |
2 200+2 125 |
1 200+1 125 |
1 200+3 125 |
0 200+3 125 |
0 200+5 125 |
|
Для удобства дальнейшего использования имеющихся данных сведем их в таблицу 16.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 16 |
|
|
|
|
Таблица раскроя материала |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Тип |
|
|
|
Способы раскроя заготовок |
|
|
|
Кол-во |
||||||
заготовки |
|
I |
|
II |
|
III |
|
IV |
|
заготовок |
||||
|
200 |
|
125 |
200 |
|
125 |
200 |
|
125 |
|
200 |
|
125 |
|
650мм |
3 |
|
0 |
2 |
|
2 |
1 |
|
3 |
|
0 |
|
5 |
100 |
400мм |
2 |
|
0 |
1 |
|
1 |
0 |
|
3 |
|
0 |
|
0 |
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для экономико-математической постановки рассматриваемой задачи введем следующие обозначения:
s – искомое число комплектов;
xij – количество заготовок i-го типа, раскроенных j-ым способом.
Согласно формулировке данной задачи, необходимо обеспечить максимум выпуска числа комплектов. Отсюда:
R(xi ) S max . |
(51) |
Достижение максимума целевой функции (51) будет происходить в реальных условиях следующих ограничений:
1. Ограничения по количеству заготовок: каким бы способом ни раскраивалась рассматриваемая заготовка, общее количество раскроенных заготовок не должно превышать их запаса по заданному типу. У нас заготовок длинной 650 мм – 100 шт., а длиной 400 мм – 80 шт., соответственно. Отсюда имеем:
x11 x12 |
x13 x14 |
100; |
|
|
x21 x22 |
x23 x24 80. |
|
(52) |
|
|
|
65
2. Ограничения по количеству деталей в комплекте: для деталей длинной 125 мм (по условию задачи таких деталей в комплекте 2 шт.) и длинной 200 мм соответственно:
0 x11 2 x12 3 x13 5 x14 0 x21 1 x22 3 x23 0 x24 2s; |
(53) |
|
3 x11 2 x12 1 x13 0 x14 2 x21 1 x22 0 x23 0 x24 s. |
|
|
|
|
Наконец, условие неотрицательности решения:
x11 0; |
x12 0; |
x13 0; |
x14 |
0; |
(54) |
x21 0; |
x22 0; |
x23 0; |
|
|
|
x24 0. |
|
Для того, чтобы записать математическую постановку задачи оптимального раскроя материалов в общем виде, введем дополнительное обозначение: akj – количество деталей k-го вида, полученных при раскрое
заготовок j-ым способом.
Тогда в общем виде будем иметь: целевая функция
|
R(xi ) S max ; |
|
|
|
|
|
|
|
|
|
(55) |
|||||||
ограничения по количеству заготовок |
|
|
|
|
|
|
|
|
||||||||||
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xij i , i |
1, m |
; |
|
|
|
|
|
|
|
|
|
|
|
|
(56) |
||
|
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ограничения по числу деталей |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
akj xij k s, |
|
|
|
|
|
|
|
|
|
|
|||||||
|
j |
1, q |
, |
i |
1, m |
, |
k |
1, n |
; |
(57) |
||||||||
|
ij |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
условие неотрицательности решения: |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
||||||||||
|
xij 0, |
i |
1, q |
, |
j |
1,m |
, |
|
|
|
(58) |
|||||||
где |
ij количество заготовок i-го типа; |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
66 |
|
|
|
|
|
|
|
|
|
|
m – количество разновидностей заготовок ; n – количество типов деталей;
q– количество способов раскроя заготовки;
k количество деталей k-го типа в заданном комплекте.
Решение задачи (55)–(58), например, симплекс-методом дает оптимальный план раскроя предложенных заготовок при условии максимизации выпуска числа комплектов.
6.2. Задача о коммивояжере
Эта задача довольно часто встречается на стадии проектирования и сооружения больших энергосистем, газораспределительных и тепловых сетей, когда необходимо создать замкнутый кольцевой маршрут при условии включения в него большого числа потребителей, расположенных на значительной территории. От того, как будет проложен этот маршрут, напрямую зависят материальные, трудовые и финансовые затраты на его создание. Поэтому становится понятным, насколько актуален этот вопрос.
В литературе обычно такая задача имеет несколько наименований: задача маршрутизации, задача о коммивояжере либо задача о командируемом.
Суть задачи состоит в том, что командируемый выезжает из исходного пункта A, посещает (n-1) остальных пунктов и возвращается в пункт A (см. рис. 5). Естественно, что при этом необходимо стремиться минимизировать суммарное расстояние либо продолжительность времени, либо финансовые затраты в зависимости от обстоятельств. При небольшом количестве пунктов посещения эта задача легко может быть решена вручную. Сложность решения этой задачи значительно возрастает с увеличением числа пунктов посещения, поскольку количество вариантов ее решения (N) определяется по формуле
N (n 1)!, |
(59) |
где n – общее количество пунктов посещения.
Так, при n 6 N 120 вариантов, а при n=10 уже N=36000 вариантов.
67
Постановка рассматриваемой задачи сводится к следующему: задается матрица затрат (см. табл. 17), где cij затраты времени либо
денег, либо расстояние при перемещении из i-го в j-й пункт.
А
Рис. 5. Схема пути коммивояжера
|
|
|
|
|
|
|
|
Таблица 17 |
|
|
|
|
Матрица затрат |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
3 |
|
4 |
… |
|
n |
1 |
0 |
c12 |
|
c13 |
|
c14 |
… |
|
c1n |
2 |
c21 |
0 |
|
|
|
|
… |
|
c2n |
3 |
c31 |
c32 |
|
0 |
|
c34 |
… |
|
c3n |
4 |
c41 |
c42 |
|
c43 |
|
0 |
… |
|
c4n |
… |
… |
… |
|
… |
|
… |
0 |
|
… |
n |
c n 1 |
c n 2 |
|
c n 3 |
|
c n 4 |
… |
|
0 |
Вводим дополнительную переменную xij и условимся, что если xij 1, то командируемый воспользовался маршрутом из i-го в j-ый пункт, и xij 0 , если он этим маршрутом не воспользовался.
Используя матрицу затрат (см. табл. 17), формируем целевую функцию рассматриваемой задачи:
R( X i ) cij xij min . |
(60) |
j, j |
|
Достижение минимума целевой функции (60) будет происходить в реальных условиях следующих ограничений:
68
1. Ограничение одноразового посещения города:
условие одноразового въезда в j-ый пункт посещения
n |
|
|
xij 1, |
(61) |
|
i 1 |
|
|
условие одноразового выезда из j-го пункта посещения |
|
|
n |
|
|
xij 1. |
(62) |
|
j 1 |
|
|
2. Условие односвязанности маршрута |
|
|
(n 1) ui |
u j (n 2) , |
(63) |
где ui ,u j специально подобранные целые числа. |
|
|
3. Условие неотрицательности решения |
|
|
0 xij 1. |
(64) |
|
Таким образом, задача о коммивояжере в компактной форме |
|
|
имеет следующий вид: |
|
|
n |
n |
|
R( X i ) cij xij min ; |
(65) |
|
i 1 j 1 |
|
|
n |
n |
|
xij 1, |
xij 1; |
(66) |
i 1 |
j 1 |
|
(n 1) ui |
u j (n 2) ; |
(67) |
0 xij 1. |
(68) |
Особо необходимо отметить, что наиболее эффективным методом решения задачи (65)–(68) является метод ветвей и границ.
69