Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Зад лин прогр и мет их решения 16 12 08

.pdf
Скачиваний:
30
Добавлен:
29.03.2016
Размер:
7.61 Mб
Скачать

160

Следовательно, среди решений этой задачи могут быть и полностью целочисленные, и, если они существуют, то при полном переборе решений мы обязательно их найдем и выберем наилучшее. Базисность целочисленного решения рассматривается в[22].

Добавление одного дополнительного условия, увеличивает размерность решаемой задачи на единицу. Т.е. размерность задачи уже не m , как было раньше, а m +1. Также, при решении этой задачи с помощью МСМ добавится еще одна переменная x[n +1] с

нулевым коэффициентом в целевой функции и один «пустой» способ раскроя rn+1 = A[M,n +1] = (0,0,...,0,−1).

Таким образом, приходим к следующей расширенной задаче линейного

программирования

 

 

 

f (x[N]) = 1[N] x[N] min

 

 

 

0

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

x[N,{n +1}]

= b[M ]

 

 

0

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

−1

 

 

X[N] 0[N]

Среди решений этой задачи, необходимо найти то, которое дает самое вырожденное решение исходной целочисленной задачи.

Рациональная загрузка ПРС

Постановка задачи

Форматный раскрой бумажного полотна, осуществляется на продольно-резательных станках (ПРС), которые могут иметь различные технические характеристики (основными из которых являются производительность ( m ) и время перенастройки(t )). Пусть буммашину обслуживают два ПРС со следующими характеристиками:

Наименование

Производительность

Время

Время на ремонт

ПРС

перенастройки

 

 

ПРС-1

m1

t1

T1

 

 

 

 

ПРС-2

m2

t2

T2

 

 

 

 

Необходимо распределить между этими двумя ПРС для разрезания S съемов, среди которых имеется R различных съемов (равно общему числу перенастроек ПРС). Выбранное распределение съемов между ПРС и условия, которые должны выполняться приведены в таблице

Наим. ПРС

Кол-во съемов

Кол-во

 

Общее время

перенастроек

 

 

 

работы

 

 

 

 

 

 

 

ПРС-1

x

u

 

t(1)

=

 

x

 

+ ut

+T

 

 

 

 

p

 

 

m1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРС-2

y

v

 

t(p2)

=

 

y

 

+ vt2 +T2

 

m2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Условия

x + y = S

u + v = R < 2M

 

t(p1)

t(p2)

 

→ min (*)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

161

Покажем, что минимум в (*) равен нулю и достигается при t(p1) = t(p2) = T0 . Для простоты, будем считать, что T1 = T2 = 0 . При уменьшении t(p1) за счет уменьшения x , величина y на столько же увеличится, и может (не обязательно) увеличиться v. Следовательно, увеличится и t(p2) , и станет больше T0 . При уменьшении t(p1) за счет изменения u , t(p2)

увеличится за счет увеличения хотя бы на один съем y ( v может и не увеличиться, если такой съем режется и на 2-м ПРС). Таким образом, при выполнении условия t(p1) = t(p2) = T0

минимум в (*) равен нулю.

Подсчитаем распределение отрезаемых съемов между ПРС в частном случае, когда все съемы различны и имеются в одном экземпляре. Тогда:

1). x + y = S ; 2). u + v = R ; 3). S = R ; 4). u = x, v = y

5).

x

+ x t =

S x

+ (S x) t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

m2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Откуда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

*

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ t2

+

1

 

 

 

+

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m2

 

 

 

 

 

 

 

 

 

 

 

 

 

(*)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t1 +

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

*

= S x =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ t2

+

 

 

 

1

 

+

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m2

 

 

Время работы обоих ПРС

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

+

 

 

 

 

 

t

2

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m2

 

 

 

 

 

 

 

 

t

(1)

 

= t

(2)

 

=

 

 

 

 

 

 

 

 

 

 

m1

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

p

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

+ t

2

+

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

m1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m2

 

Отношение отрезаемых съемов и числа перенастроек

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

+

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x*

 

 

u*

 

 

 

2

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

=

 

 

 

 

 

 

 

 

m

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

.

 

 

 

 

 

 

 

 

 

 

 

 

y*

 

v*

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t1 + m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алгоритм решения задачи

Итак, пусть имеются два станка, на которых обрабатываются n различных типов деталей (раскладок) в количестве S = α[N] 1[N] ( N = n) штук съемов. Время обработки деталей на станках пропорционально их (деталей) количеству ( x t1 и y t2 соответственно). Время перенастройки станков на обработку деталей другого типа линейно зависит от количества деталей разных типов, обрабатываемых на станке (u τ1 и v τ2 соответственно).

Напомним, что требуется найти загрузку станков, дающую минимум модуля разности общего времени работы ПРС-1 и ПРС-2, т.е.

162

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

=

t(1)

t(2)

min

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t(1)

= t x + u τ

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t(2) = t

2

y + v τ

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x + y = S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u + v = R (2n)

 

 

 

 

 

 

Заметим, что суммарное количество

перенастроек R

есть

величина переменная,

зависящая от конкретного

распределения

деталей

между ПРС

и

структуры вектора

α[N]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пусть

 

t(1)

= t

x

+ u

τ

1

t(2) = t

2

(S x ) + v τ

2

.

Если

t(1)

> t

(2) , передаем одну

 

 

 

 

 

p(0)

1

0

0

 

p(0)

 

 

 

 

 

 

0

0

 

 

 

 

p(0)

 

p(0)

деталь с первого станка на второй. Тогда f

уменьшается на величину

 

 

 

 

 

 

 

 

 

 

f = f0 f1 = 0 1 = t1 + t2 + q1 τ1 + q2 τ2

 

 

где

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

0

=

0

=

t(1)

t

(2)

,

f =

1

=

t(1)

t

(2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p(0)

 

p(0)

 

1

 

 

p(1)

 

 

 

p(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

1, q1 = 0,

1, q2 = 0,

Передаваемая деталь была последней из деталей данного типа else

Передаваемая деталь была первой из деталей данного типа на else

 

 

0

 

 

 

 

 

 

t(1)

 

 

 

 

p(0)

 

1

τ

1

t1

 

 

 

 

t2

 

τ 2

 

 

 

 

t(2)

 

 

0

 

p(0)

 

 

 

 

 

Процесс можно продолжить до максимального уравнивания t(p1()k) и t(p2()k) .

Очевидно, в близком к оптимальному решении, соотношение между общим временем

резания ( x t1 и y t2 ) и общим временем перенастройки (u τ1 и

v τ2 ) может быть

различным. Будем искать «социально-справедливый» рациональный

вариант загрузки

ПРС, при котором

f =

t(1)

t(2)

min

 

p

p

 

t1 x t2 y

(*)

u τ1 v τ2

(**)

Т.е. общее время резания и общее время перенастройки для обоих станков примерно одинаково.

Упорядочим детали по убыванию их кратностей

α[1] α[2] ≥ …≥ α[n 1] α[n],

163

и начнем работу алгоритма с варианта «ноль-всё» (все детали обрабатываются на одном из станков). Теперь перебрасываем детали с небольшими кратностями (сначала с единичными) из нижней части списка деталей. Это обеспечивает большие значения скачка целевой функции f . Когда в (**) левая и правая части станут примерно одинаковыми, начинаем перебрасывать детали с большими кратностями (из верхней части списка деталей). Теперь (**) не изменяется, а обе части в (*) подравниваются.

В соответствие с описанным алгоритмом рассчитан нижеследующий пример:

ПРИМЕР 1.

Рассмотрим оптимальные раскладки (номер раскладки и количество вырезаемых съемов по ней см. столбцы 12 и 13) по заявке 034 от 27.09.04 БМ21, подлежащие распределению между ПРС-1 и ПРС-7.

Всего съемов: S=126

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Различных раскладок: n=31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРС-1: t1 = 2t,

τ1 =10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРС-7: t2 = t, τ1 = 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

3

4

 

5

6

 

 

 

7

 

8

9

10

 

 

12

 

13

 

 

n

i

x

u

 

Δt

 

Tпрс1

 

 

y

 

v

Δt

 

Tпрс1

Δtпрс

 

 

 

 

 

 

1

 

31

1

1

 

2t+10

 

2t+10*1

 

 

125

 

30

-(t+4)

 

125t+30*4

123t+110

1

 

32

 

 

2

 

30

2

2

 

2t+10

 

4t+10*2

 

 

 

124

 

29

-(t+4)

 

124t+29*4

 

120t+96

 

2

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

29

3

3

 

2t+10

 

6t+10*3

 

 

123

 

28

-(t+4)

 

123t+28*4

117t+82

3

 

10

 

.

 

.

.

 

 

 

 

 

 

 

 

 

 

 

8

 

24

8

8

 

2t+10

 

16t+80

 

 

118

 

23

-(t+4)

 

118t+92

102t+12

5

 

7

 

9

 

1

9

9

 

2t+10

 

18t+90

 

 

117

 

23

-(t+4)

 

117t+92

99t+2

6

 

6

 

10

 

1

10

9

 

2t

 

20t+90

 

 

116

 

23

-t

 

116t+92

96t+2

7

 

5

 

 

 

.

.

.

 

 

 

 

 

 

 

 

 

 

 

 

39

 

1

39

9

 

2t

 

78t+90

 

 

87

 

23

-t

 

87t+92

9t+2

8

 

5

 

40

 

1

40

9

 

2t

 

80t+90

 

 

86

 

22

-(t+4)

 

86t+88

6t-2

9

 

4

 

41

 

2

41

10

 

2t+10

 

82t+100

 

 

85

 

22

-t

 

85t+88

3t-12

10

 

4

 

42

 

2

42

10

 

2t

 

84t+100

 

 

84

 

22

-t

 

84t+88

-12

11

 

3

 

43

 

2

43

10

 

2t

 

86t+100

 

 

83

 

22

-t

 

83t+88

-3t-12

12

 

3

 

44

 

31

42

9

 

-2t-10

 

84t+90

 

 

84

 

23

t+4

 

84t+92

2

13

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

42 съема 9 перенастроек

 

 

 

 

84 съема 23 перенастройки

15

 

2

 

 

 

 

30

1

 

 

 

 

 

 

 

 

2

 

12

 

 

 

 

 

16

 

2

 

 

 

 

29

1

 

 

 

 

 

 

 

 

3

 

10

 

 

 

 

 

17

 

1

 

 

 

 

 

 

 

 

 

 

 

 

4

 

9

 

 

 

 

 

 

 

 

 

 

24

1

 

 

 

 

 

 

 

 

5

 

7

 

 

 

 

 

31

 

1

 

 

 

 

1

32

 

 

 

 

 

 

 

 

6

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

3

 

 

 

 

 

 

 

 

7

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tпрс1=84t+90

 

 

 

 

 

Δtпрс=2

 

 

 

tпрс7=84t+92

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

164

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Следует отметить одну особенность. Соотношения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

1

 

 

= m1

 

 

Отношение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

производительностей

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

1

t2

 

 

 

m2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

резания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

τ

2

=

 

1τ

1

 

=

r

Отношение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

производительностей

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

v

τ1

 

1τ2

r2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

перенастроек

 

 

 

 

 

 

выполняются тем точнее, чем меньше величина f

Последовательность перестановки ножей при перенастройке ПРС

Постановка задачи

Пусть имеется оптимальное целочисленное решение ЗЛР, которое характеризуется матрицей используемых раскроев (раскладок) A[M , N']. При переходе от использования одной раскладки к другой необходимо перенастроить ПРС, переставив ножи в соответствии с новой раскладкой. Возникает следующая задача о минимизации суммарных перестановок ножей: требуется расположить столбцы матрицы A[M , N'] в таком порядке (выбрать такую последовательность их использования), чтобы суммарное количество перестановок ножей при перенастройках ПРС было бы минимальным.

Рассмотрим на примере, как изменяется количество перестановок ножей при переходе от раскроя к раскрою, когда они расположены в лексикографическом порядке

ПРИМЕР 1: m = 4 L =12,

 

 

l = (6,4,3,2),

b = (10,15,20,30)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

3

 

 

4

 

 

 

5

 

 

6

 

 

 

7

 

 

8

 

 

9

 

 

10

 

 

11

 

 

 

 

 

2

 

1

 

 

 

1

 

 

1

 

 

0

 

0

 

 

0

 

0

 

 

0

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

 

0

 

 

0

 

 

3

 

2

 

 

1

 

1

 

 

0

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

 

 

 

2

 

 

0

 

 

0

 

0

 

 

2

 

0

 

 

4

 

2

 

0

 

 

 

 

 

0

 

1

 

 

 

0

 

 

3

 

 

0

 

2

 

 

1

 

4

 

 

0

 

3

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приведены только безотходные раскладки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N ' = {1,5,9,11}, A[M , N '] =

0

3

0

0

 

,

 

B[N ', M ] =

0

1 3

0

 

0

 

, x[N '] = (5,5,5,5)

 

 

 

0

0

 

4 0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1 4 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

0 6

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

0 1 6

 

v[M] = (12,13,14,16), f (x[N ']) =1 5+1 5+1 5+1 5 = 20

165

 

20

 

1

 

1

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

3

 

 

4

 

 

6

 

 

 

 

 

 

 

 

 

 

1

5

 

1

 

0

 

0

 

1

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

5

 

0

1

 

 

0

 

0

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

5

 

0

0

 

1

 

 

0

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

5

 

0

0

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

6

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

Текущее базисное решение оптимально.

Сформируем матрицу числа перестановок ножей при переходе от одной раскладки к другой. Для этого графически изобразим матрицу базисных раскроев. Очевидно, что переход от одной перенастройки к другой и обратно является процессом симметричным. Тогда матрица числа перестановок ножей будет следующей симметричной матрицей:

Х

2

2

4

 

 

 

 

 

 

 

 

Х

2

2

4

 

 

 

 

 

2

Х

3

3

 

 

 

 

 

2

3

Х

4

 

 

 

 

 

4

3

4

Х

 

 

2

Х

3

3

 

 

 

 

 

 

 

 

Если рассмотреть полный граф

M, N , где

M – множество

 

 

 

базисных раскроев,

N

множество

переходов

между

 

 

 

раскроями (u – перенастройка с раскроя

i(u)

на раскрой

j(u) ).

 

 

 

Тогда данная матрица будет матрицей длин дуг

 

 

 

рассматриваемого полного графа.

 

 

 

2

3

Х

4

2

2

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

4

 

3

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

4

4

3

 

 

 

 

 

 

 

 

 

 

 

Таким образом, задача о минимальной суммарной перестановке ножей при перенастройке ПРС сводится к отысканию кратчайшего пути в данном графе, содержащем все его вершины по одному разу, т.е. гамильтонова пути.

166

Алгоритм решения задачи

Сведем задачу о поиске кратчайшего гамильтонова пути в полном графе с m вершинами к задаче о коммивояжере (поиск кратчайшего гамильтонова контура) в полном графе с (m +1) вершинами.

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

Вернемся к нашему примеру. Преобразуем исходную задачу к задаче о коммивояжере в

0приведенном на рисунке графе. Ему соответствует следующая

 

 

 

 

5

матрица путей:

 

 

 

 

 

 

5

 

5

 

 

 

 

 

 

 

5

Х

5

5

5

5

 

 

 

 

 

 

1

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

2

5

Х

2

2

4

 

 

 

 

 

 

4

2

 

 

5

2

Х

3

3

 

 

 

 

 

 

 

 

3

 

 

3

 

 

5

2

3

Х

4

4

 

4

 

3

5

4

3

4

Х

 

 

 

 

 

 

 

 

Применим для решения задачи о коммивояжере метод ветвей и границ [9].

 

0

1

2

3

4

0

Х

5

5

5

5

1

5

Х

2

2

4

2

5

2

Х

3

3

3

5

2

3

Х

4

4

5

4

3

4

Х

Выполним приведение по строкам

 

0

1

2

3

4

 

0

Х

0

0

0

0

5

1

3

Х

0

0

2

2

2

3

0

Х

1

1

2

3

3

0

1

Х

2

2

4

2

1

0

1

Х

3

и по столбцам

 

0

1

2

3

4

 

0

Х

0

0

0

0

5

1

1

Х

0

0

2

2

2

1

0

Х

1

1

2

3

1

0

1

Х

2

2

4

0

1

0

1

Х

3

 

2

0

0

0

0

 

Сумма приводящих констант

h(1) =16 .

 

 

 

 

 

 

 

θ(01)

= θ(02) = θ(03) = 0, θ(04) = 1, θ(12) = θ(13) = 0, θ(21) = 1,

Выберем кандидата на ветвление: θ

(31)

=1, θ

(40)

= 1, θ

(42)

= 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

maxθ(ij) =θ(04) =1

ω(Y

) = 16 +1 = 17 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычеркиваем нулевую строку и четвертый столбец. Получаем приведенную матрицу

167

 

0

1

2

3

 

1

1

Х

0

0

 

2

1

0

Х

1

 

3

1

0

1

Х

 

4

0

1

0

1

 

 

 

 

 

 

 

Подсчитаем оценку для текущего решения

(ω(Y) =16 )

и запретим переход,

преждевременно замыкающий цикл

C40

= ∞(×) .

 

 

 

 

 

 

Начинаем новую итерацию и приводим текущую матрицу

 

 

 

 

 

 

0

1

 

2

 

3

 

 

 

1

 

0

 

Х

 

0

 

0

 

0

 

2

 

0

 

0

 

Х

 

1

 

0

 

3

 

0

 

0

 

1

 

Х

 

0

 

4

 

Х

 

1

 

0

 

1

 

0

 

 

 

1

 

0

 

0

 

0

 

 

 

h(2) = 1 maxθ(ij) = θ(13) = 1 ω(Y ) = 17 +1 = 18 .

Вычеркиваем первую строку и третий столбец. Получаем приведенную матрицу

 

0

1

2

 

2

0

0

Х

0

3

0

0

1

0

4

Х

1

0

0

1 0 0

ω(Y) = 16 . Запрещаем переход C31 = ∞(×).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Новая итерация. h(3) = 0

maxθ(ij) = θ(42)

= 2

 

 

 

 

 

 

 

 

ω(Y

) = 18 + 2 = 20.

Вычеркиваем строку 4 и столбец 2

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

2

 

0

 

0

 

 

3

 

0

 

 

 

Х

 

 

 

 

 

 

 

 

 

 

 

 

 

Остается матрица 2× 2 , в которой возможны только переходы (3,0) и (2,1). Проверка на оптимальность показывает, что ω(Y) ω(Y ) для любого Y . Значит получен кратчайший гамильтонов контур длиной 18 0 4 2 13 0 .

Удаляя из него вершину 0 вместе с инцидентными ей дугами (0,4) и (3,0), получаем искомый кратчайший гамильтонов путь 4 2 13 длиной 8.

Таким образом, для вырезания всех необходимых форматов требуется четыре раза перенастроить ПРС. При этом нужно восемь раз переставить ножи на ПРС.

Следует отметить, что лексикографическое упорядочение форматов в раскладке само по себе не обеспечивает минимальности перестановок ножей при переходе от раскладки к раскладке. Это подтверждается следующим примером:

m = 3, L = 10, l = (4,3,2) .

 

168

 

Рассмотрим раскладки R1 = (2,0,1)

и

R2 = (0,3,0) . При лексикографическом

упорядочении длин для перехода от R1 к

R2

требуется три перестановки ножей, а если

заготовку длины 2 расположить между заготовками длины 4, то перестановок будет 2.

 

3

 

3

 

Это

означает,

что

и

4

4

 

гамильтонов

 

контур

 

 

 

 

 

 

 

 

 

 

 

3 три перестановки

2

3

две перестановки

минимальной

длины

для

4

 

 

 

 

 

 

 

 

лексикографически

 

3

 

3

 

 

 

4

 

упорядоченных

 

раскладок

2

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

будет

давать

только

некоторое субоптимальное решение. Будем в дальнейшем различать понятия "раскладка"

(способ раскроя) и "расстановка ножей в раскладке". Одной раскладке может

соответствовать несколько

расстановок

ножей, её реализующих. Так раскладке

R1 из

нашего примера соответствуют три способа расстановки ножей.

 

 

 

 

4

4

2

4

2

4

2

4

4

А, если учесть симметрию, то две (последняя расстановка ножей симметрична первой).

ПРИМЕР 1: m = 3 L = 26,

 

l = (9,6,4),

b = (90,90,90)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

3

 

 

4

 

 

5

 

 

6

 

 

7

 

 

8

 

 

 

9

 

 

10

 

 

2

 

2

 

1

 

1

 

1

 

0

 

0

 

0

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

 

2

 

1

 

0

 

4

 

3

 

2

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

2

 

1

 

2

 

4

 

0

 

2

 

3

 

5

 

6

 

 

 

2

 

 

0

 

 

1

 

 

3

 

 

1

 

 

2

 

 

0

 

 

2

 

 

 

0

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приведены только технологичные раскладки

 

2

0

0

 

N ' = {2,7,9}, A[M , N '] =

0

3

1

 

– оптимальная базисная матрица.

 

 

 

 

 

 

 

 

 

2

2

5

 

 

 

 

 

 

 

 

Рассмотрим в каждом способе раскроя все расстановки ножей (с учетом симметрии)

2

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

9

9

4

4

21

0

 

6

6

6

4

4

71

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

9

4

9

4

22

3

 

6

6

4

6

4

72

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

9

4

4

9

23

2

 

6

6

4

4

6

73

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

9

9

4

24

 

 

6

4

6

6

4

74

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

4

6

4

6

75

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

6

6

6

4

76

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

6

4

4

4

4

4

91

0

 

 

 

 

 

 

 

 

 

 

 

4

6

4

4

4

4

92

1

 

 

 

 

 

 

 

 

 

 

 

4

4

6

4

4

4

93

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

169

Плоская развертка графа перестановок ножей при переходе от расстановки к расстановке приведен на рисунке ниже. Для минимизации общего числа перестановок необходимо в данном графе найти гамильтонов путь наименьшей длины (длина дуги здесь – число перестановок ножей при переходе от одной расстановке к другой).

2

23

21

3

71

3

91

4

 

 

3

 

 

 

 

3

 

3

 

 

3

 

 

22

72

4

92

3

4

 

3

 

 

 

44

23

4

73

5

93

4

5

 

4

 

 

 

 

3

 

2

 

24

3

74

3

 

4

4

 

 

3

 

 

 

 

4

 

3

 

 

4

 

 

 

 

4

 

 

4

 

 

 

75

5

 

 

4

 

3

33

42

2

76

3

 

 

3

3

3

4

4

4

5

5

5

4

3

3

21

22

23

24

На рисунке выделены два оптимальных решения.

217191

 

24 76 92

 

 

 

 

9

 

9

 

4

4

 

4

9

 

9

 

4

 

4 перест.

 

4 перест

 

6

6

 

6

4

4

 

4

6

6

 

6

4

 

 

 

 

 

6

4

4

4

4

4

 

4

6

4

4

4

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эскиз пространственного представления графа расстановок ножей для четырех оптимальных раскладок может быть представлен в следующем виде:

A1

B1

D1

C1

 

Am

Bn

Dq

Cp