Tải bản đầy đủ (.pdf) (55 trang)

Hệ kiến hai giai đoạn cho bài toán lập lịch sản xuất

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.44 MB, 55 trang )

1

I HC QUC GIA HÀ NI
I HC CÔNG NGH






T VI







H KIN
CHO BÀI TOÁN LP LCH SN XUT



Ngành: Công ngh Thông tin
Chuyên ngành: Công ngh Phn mm
Mã s: 60 48 10




LUNGH THÔNG TIN







NG DN KHOA HC:
PGS.TS Hoàng Xuân Hun






Hà Ni  2013
2

MC LC


DANH MC KÝ HIU VÀ T VIT TT 4
DANH SÁCH CÁC BNG 5
DANH SÁCH CÁC HÌNH V 6
M U 7
 HP VÀ BÀI TOÁN LP LCH SN XUT 9
1.1 Gii thiu bài toán t hp 9
1.1.1 i giao hàng 10
1.2 Các cách tip cn gii quyt bài toán t hp 11
1.2.1 Heuristic cu trúc 11
1.2.2 Tìm kim cc b 12
1.2.3  13

1.3 Bài toán lp lch sn xut 14
1.3.1 Gii thiu bài toán lp lch sn xut (Job shop scheduling - JSS) 15
1.3.2 Ví d cho bài toán JSS 15
1.4 Bng hp hai máy 16
1.5 Bài toán JSS ng hp nhi 17
1.5.1 K thut nhánh cn 18
1.5.2 Thut toán xp x nhanh 19
1.5.3 Gii thut di truyn (Genetic Algorithms - GA) 20
N 23
2.1 n 23
2.2  th cu trúc 24
2.3 Mô t thut toán ACO tng quát 26
2.4 i giao hàng 29
2.4.1  th cu trúc 29
2.4.2 Các thut toán ACO cho bài toán TSP 30
2.5 Mt s v liên quan 32
2.5.1 c tính hi t 32
2.5.2 ACO kt hp vi tìm kim cc b 33
3

2.5.3 Thông tin heuristic 33
2.5.4 S ng kin 34
2.5.5 Tham s  34
 KIN AS VÀ H KIN 35
3.1 H kin AS 35
3.1.1 Xây dng li gii 35
3.1.2 Cp nht mùi 37
3.1.3 Nhn xét 38
3.2 H kin 38
3.2.1  kin 38

3.2.2 n cp nht cho thut toán 40
3.2.3 Gii hn vt mùi 40
3.2.4 Khi to giá tr mùi 41
3.2.5 Nhn xét 41
 KII BÀI TOÁN LP LCH SN XUT . 42
4.1 Xây d th 42
4.2 Ma trn mùi và thông tin heuristic 43
4.3 Quy tc chuyn trng thái 43
4.4 Quy tc cp nht mùi 44
4.5 i bài toán lp lch sn xut. 45
4.6  phc tp các thut toán 46
T QU THC NGHI 47
5.1  47
5.2 Tin hành chy thc nghim 47
5.3  49
5.3.1 Kt qu thc nghim 50
5.3.2 So sánh vi thut toán ACO khác 51
 53
TÀI LIU THAM KHO 54


4

DANH MC KÝ HIU VÀ T VIT TT
STT
T vit tt
T hoc cm t
1
ACO
Ant Colony Optimization

(Tn)
2
AS
Ant System
(H kin AS)
3
ACS
Ant Colony System
(H kin ACS)
4
MMAS
Max-Min Ant System
(H kin MMAS)
5
SMMAS
Smooth-Max Min Ant System
(H ki
6
MLAS
Multi-level Ant System
(H kic MLAS)
7
TSIACO
Two state updateting pheromone for
invariant ant colony optimization
(H kin)
8
TSP
Travelling Salesman Problem
i chào hàng)

9
JSS
Job shop scheduling
(Bài toán lp lch sn xut)
10
g-best
global-best
(Tt nht toàn cc)
11
i-best
iteration-best
(Tt nht cc b)
12

T hp

5

DANH SÁCH CÁC BNG
Bng 1.1: Bài toán lp lch sn xut 3 công vic thc hin trên 3 máy 16
Bng 1.2: Bài toán gia công trên 2 máy 16
Bng 2.1: Thut toán ACO theo th t thi gian xut hin 32
Bng 5.1: Các tham s s dng cho các thut toán ACO 50
Bng 5.2: Kt qu thc nghim TSIACO cho các b d liu chun 50
Bng 5.3: So sánh kt qu tt nht sau 10 ln chy ca SMMAS và TSIAO 51


6

DANH SÁCH CÁC HÌNH V

u trúc 12
Hình 1.2: Li gii nhc nh thông qua tìm kim cc b 13
Hình 1.3: Thut toán memetic s dng EC 14
 ca thut toán nhánh cn 19
 thut toán di truyn 21
 th cu trúc tng quát cho bài toán cc tr hàm   26
Hình 2.2: Thut toán ACO 27
Hình 2.3: Thut toán ACO gii bài toán TSP có s dng tìm kim cc b 31
 th cng cho bài toán lp lch sn xut 42
 thut toán TSIACO gii bài toán lp lch sn xut 46
 liu thc nghim 48
Hình 5.2: Di chuyn tc cha file ch 48
Hình 5.3: Chi tham s file d liu 49
Hình 5.4: Kt qu ch 49


7

M U
Trong quá trình sn xut ra sn phm thì vic lp k hoch sn xut là cc
k quan trng, nó ng trc tip ti hiu sut ca h thng máy móc và
nh ng n chng ca toàn b quá trình sn xuc bit ngày
nay khi mà quy mô sn xut ln, vi   ch sn xut hp lý càng có ý
ng, thc t vic lp k hoch sn xut là không h n và
không th ch n da trên kinh nghim. Chính vì  c t
  n hành nghiên cu bài toán lp lch sn xut t nh  1950
nhm m hóa bài toán và xây dng li gii trên máy tính nhm gim
thiu thi gian sn xut, mang li hiu qu v kinh t. Bài toán c
s chú ý quan tâm ca o gii chuyên môn và u
bài toán NP-khó trong lp bài toán t hp

nên ch có th tìm ra li gii gi gi
ta tng s dng các thut toán xp x và mô phng t t toán di
truyn, thut toán luyn kim, thut toán nhánh c gii bài toán, g
ni lên m          n (Ant Colony
Optimization) vi kt qu thc nghim ni tri c 
  (Ant Colony Optimization - ACO 
   , do Dorigo gii thiu vào   và liên tc
c phát trin nay. C mi i có mt hi ngh quc t v kin
c t ch các nhà nghiên cu gp g i v ch  này, ln g
nhc t chc ti Brussels, B vào ngày 14/12/2012. 

2000 vi kt qu c là tt,
minh .
n có 2 th tc chính là th tc ngu nhiên
và th tc cp nht mùi, các thu yu tp trung
ci tin th tc cp nhât mùi. Lu   u thut toán
8

ACO ht sc mi m là thut toán h kin (Two state updateting
pheromone for invariant ant colony optimization  TSIACO) do Zhaojun Zhang
 xu gii chào hàng. S khác bit
ca TSIACO so vi các thut toán ACO khác là vic cp nhc chia ra
làm han. Luu, tìm hiu áp d
TSIACO  gii bài toán Lp lch sn xut. t qu
thc nghip tSMMAS (chi tit xem [1]) trên cùng mt b d liu chun
(benchmark data) c     n xut ly t website

Ngoài phn m u, tài liu tham kho, ph lc và kt lun, lu 
:
: Gii thiu v bài toán t hp tng quát và bài toán Lp lch

sn xut, các cách tip cn gii bài toán t hp.
 : Gii thi      n, lch s và phát trin.
i chào hàng.
 : Trình bày   AS, nhng hn cht ca AS. Trình bày
i nhng ci tin so vi AS.
: Xây d th cho bài toán lp lch sn xut, mô hình hóa trên
máy tính và áp dng  TSIACO ng dng vào gii bài toán lp lch sn
xut.
5: Tin hành chy thc nghim   b d liu chun,
thng kê kt qu c và so sánh vi thut toán ACO khác.

9

 HP VÀ BÀI TOÁN LP LCH SN
XUT
Bài toán thc t yêu cu chúng ta tìm li gii tchí 
vi mt lot các thành phn ri rc ca chúng. Các bài toán loi này luôn có mt
tp hu hn các li gii, chúng ta có th dùng vét c tìm ra li gii t
tuy nhiên khi không gian bài toán ln thì vét cn không th áp d
này s gii thiu v bài toán t hp, bài toán lp lch sn xut và các cách
tip c gii chúng.
1.1 Gii thiu bài toán t hp
Chúng ta có th k ra các bài toán tiêu biu ca lp bài toán t hp
i chi phí nh nht gia hai thành ph, bài toán lp
thi khóa biu, bài toán lp lch sn xu
ây là các bài toán trong thc t  gii các bài toán dng này ta cn khái
quát hóa   có mô phng trên máy tính, tính toán thông qua các mô
ph  tìm ra li gii tu. Chung nht vi mu cha n thành
phn 







và hàm mc tiêu . Các bài toán ng vi b ,
 là tp hu hn các trng thái ,  là hàm mnh
trên  và  là tp các ràng buc. M tha mãn các ràng buc
 gp nhc. Mc tiêu c


tc i vi hàm mc tiêu 
án 

sao cho 








vi mi . i vi bài toán này ta có 3 cách gii
quyn, k thut tham lam hoc
NP-khó.
Các thuc tính ca tp  và  
1) Ký hiu  là t       dài không quá 














.  trong  c xác
nh nh ít nht mt .
10

2) Tn ti tp con 


ca  và ánh x

t 

lên  sao cho


 không
rng vi mi 

, p 


có th xây dc t tp con 

nào
a  nh th tc m rng tun t .
3) T 


ta m rng tun t thành 


i) Ta xem 



là m rc vi mi 





ii) Gi s 





 là m rc 

. T tp ràng
buc , nh tp con 


 ca , sao cho vi mi 







thì







 là m rc.
iii) Áp dng th tc m rng t các phn t




cho phép ta xây dng
c mi phn t ca

.
y mc xem là mt bài toán cc tr hàm có 
bii bin nhn giá tri trong tp hu hn  k c giá tr rng. Nói
mt cách khác là bài toán tìm kim trong không gian vec dài không quá 

 th  nh có nhãn trong tp .
1.1.1 i giao hàng
i giao hàng (Traveling Salesman Problem - TSP) là bài toán
c nghiên c 
hiu qu li gi
c phát bi
Có mt tp gm  thành ph (hom tiêu th) 





 
c tip t c
i
n c
j
là d
i,j
. Mi chào hàng mun tìm mt
hành trình ngn nht t i thành ph t l gii thiu
sn ph v thành ph xut phát.
Có th th th 
có trng s , vi  là tp các nh vi nhãn là các thành ph trong ,
 là tp các cnh ni các thành ph  dài mi c dài
a hai thành ph ng. ng hp này, tp  s là tp
11

các chu trình Hamilton trên ,   dài ca chu trình,  là ràng bui
chu trình là chu trình Hamilton (qua tt c nh, mt ln), 

là tp thành ph c xét, 

trùng vi , tp     dài : 




 vi 

còn 



khác 

i vi
mi cp .
  i gii t a bài toán TSP là mt hoán v  ca t nh






 dài  là nh nhc tính theo
(1.1):






















(1.1)
1.2 Các cách tip cn gii quyt bài toán t hp
  bài toán tìm
ki th. Vi nhng bài toán c nh hoc nhc bit thì ta
hoàn toàn có th tìm li gii t  tìm kim vét cng
nhng li gic thù riêng. Tuy nhiên hu ht các bài toán trong s 
toán NP-khó, nên vi các bài toán c li ta phi tìm li gii g
Các thut toán gi vng da trên 2 k
thun: heuristic cu trúc (construction heuristic) và tìm kim cc b (local
search).
1.2.1 Heuristic cu trúc
Khi không th tìm li gii ta bài toán vi thc, chúng
n vic tìm li gii g thut hay dùng trong vic tìm li

gii gu trúc, li gii cc xây dng thông
qua vic m rng tun t. T thành ph khi to trong tp 

, tc m
rng không quay lui, thêm vào các thành phn mc ngu nhiên
hay tnh da trên nhng quy tc heuristic. Các quy tc heuristic này khác
nhau tùy vào thut toán c th c xây dng da trên toán hc kt hp vi kinh
nghim. Chúng ta có th  mô phi dng thu
sau:
12

Procedure Heuristic cu trúc;
Begin


 chn thành phn 

trong 

;

whileng xong li gii)do
GreedyComponent(

);




;

end-while


;
i gii;
End;
u trúc
  

    chn thành phn b sung
vào

theo quy t     u

là kt qu phép toán thêm
thành phn  vào 

.
Vi  ta có th áp dng cho bài toán TSP v th y
 và s dng quy tc heuristic láng ging gn nh chnh
láng ging nh nh thêm vào). Thut toán kiu m
là thi gian tính toán nhanh i không có kh i tin li gii qua
mc lp.
1.2.2 Tìm kim cc b
K thut tìm kim cc b hay còn gi là tìm kic hin
bng cách bu t mp nhc, lp lc ci tin li
gii nh i cc b thc hin k thut này, ta cc
cu trúc lân cn ca mi gic là nh
chp nhc, gn vi nó nht, nh i mt s thành phng
dùng là lân cn -i, tc là lân cn bao gp nhn

c khác v i nhiu nht  thành phn.
Ví d. Lân cn 2-i ca mt li gii  trong bài toán TSP bao gm
tt c các li gii  có th nhc t  bi hai cnh. Hình 1.2 ch
13

ra mt ví d mt li gii nhc bng cách thay hai cnh (1,3), (2,6) bng hai
cnh (2,3), (1,6).
Vic ci tic lng chi
da theo hai chic: Chic tt nht và chic t. Vi chin
c tt nht, i ta thc hin chn li gii tt nht trong lân c làm li
gii ci tin. Tuy nhiên, khi bài toán c ln có th c li gii tt
nht do b hn ch v thi gian. Còn vi chic t, ta ch
u tiên trong lân cn, ci thic hàm mm ca tìm kim
cc b ng ch cho cc tr 

Hình 1.1: Li gii nhc thông qua tìm kim cc b
Các k thuc kt hp, to thành các h lai trong các
ng t nhiên da trên qun th, chng ht toán di
truyn (GA) hoc tn (ACO).
1.2.3 tic
c
thit kng cho các thut toán c th (bao gm c heuristic cu trúc và
tìm kim cc by, mt metaheuristic là m thut toán tng
quát ng dng cho các bài toán ti mt chút si cho phù
hp vi tng bài toán.
14

Memetic là mt
c thit k i ta to ra nhiu th h qun th li gii
chp nhc. Trong mi qun th ca th h ng, ta ch chn ra mt s

li gii (chng hn li gii tt nh thc hin tìm kim cc b nhm ci thin
chng. Quá trình tic li gii tt nht có th. Hình
1.3 mô t mt thut toán memetic s dng tính toán tin hóa (Evolutionary
Computing - EC):
Proedure Thut toán memetic-EC;
Begin
Initialize: To ra qun th u tiên;
while u kin da mãn do
ánh giá các cá th trong qun th;
Thc hin tin hóa qun th nh các toán t cho
c;
Chn tp con 

 ci tin nh th tc tìm kim cc
b;
for mi cá th trong 

do
Thc hin tìm kim cc b;
end-for
Chn phn t tt nht;
end-while;
i gii tt nht;
End;
Hình 1.2: Thut toán memetic s dng EC
Trong ng dng thc t, các thuc kt hp vi tìm
kim cc b theo mô hình memetic này.
1.3 Bài toán lp lch sn xut
Bài toán lp lch sn xut JSS thuc l      
c tp, và là mt trong nhng bài toán khó tính toán nht cho

n nay. Tuy nhiên do tính ng dc s quan tâm nghiên cu
rt nhiu, là mn hình v lý thuyt lp lch. u thut toán
15

i quyt bài toán này, phn này chúng ta s tìm hiu v bài toán
p cn gii bài toán lp lch sn xut.
1.3.1 Gii thiu bài toán lp lch sn xut (Job shop scheduling - JSS)
Bài toán lp lch sn xuu
c phát bi
Có danh sách n công vic (jobs) J
1
, J
2
, , J
n
cn thc hin trên m máy
(machine) M
1
, M
2
, , M
m
tha mãn các ràng buc sau:
1. Mi công vic J
j
(j=1 n) có m thao tác
12
, , ,
m
jr jr jr

O O O
phc thc
hin theo th t lt trên các máy M
r1
, M

M
rm
, thao tác
i
jr
O
(i=1 m)

yêu
cu s dng máy
i
r
M
trong mt khong thi gian
i
jr
p
liên tip.
2. Ti mi thm, mi máy ch có th thc hin mt công vic.
Mục tiêu: Cn xây dng l thi gian hoàn thành các công vic là nh
nht.
1.3.2 Ví d cho bài toán JSS
Ví d: Bài toán lp lch sn xut gm 3 công vic thc hin trên 3 máy
(bng 1.1). Công vic 1 gm 3 thao tác vi trình t thc hin O

11
, O
12
, O
13
thao
tác O
11
c thc hin trên máy 2 v thi gian, thao tác O
12
c thc
hin trên máy 1 vi 5  thi gian và thao tác O
13
c thc hin trên máy 3
vi 4  thi gian; Công vic 2 gm 3 thao tác vi trình t thc hin O
21
,
O
22
, O
23
thao tác O
21

c thc hin trên máy 1 vi 4  thi gian, thao tác
O
22
c thc hin trên máy 3 v thi gian và thao tác O
23
c thc

hin trên máy 2 vi 4  thi gian; Công vic 3 gm 3 thao tác vi trình t
thc hin O
31
, O
32
, O
33
thao tác O
31
c thc hin trên máy 2 v thi
gian, thao tác O
32
c thc hin trên máy 1 vi 2  thi gian và thao tác
O
33
c thc hin trên máy 3 vi 2  thi gian.

16



1
2(3)
1(5)
3(4)
2
1(4)
3(3)
2(4)
3

2(3)
1(2)
3(2)
Bng 1.1: Bài toán lp lch sn xut 3 công vic thc hin trên 3 máy
1.4 Bng hp hai máy
ng hp, ng hp ch có 2 máy
c li gii tc bng thut toán ca
  xu   (xem [8]) v  phc tp là O(n.logn). Trong
ng hp s máy lc lp bài toán NP-khó.
Bài toán ng hp 2 máy c phát bi
Có n chi tit D
1
, D
2

n
, mi chi tiu cn phc lt gia
công trên hai máy A, B. Thi gian gia công chi tit D
j
trên máy A là a
j
, trên máy
B là b
j
, j=1,2, ,n. Hãy tìm lch (trình t gia công) các chi tit trên hai máy sao
cho vic hoàn thành gia công tt c các chi tit là sm nht có th c.
Ví d: Xét bài toán khi n=6. Thi gian gia công các chi tit trên các máy
c cho trong bng sau:

Máy

D
1

D
2

D
3

D
4

D
5

D
6

A
8
4
4
6
3
5
B
5
7
3
2

6
5
Bng 1.2: Bài toán gia công trên 2 máy
Gi s thc hin vic gia công các chi tit theo lch (D
1
, D
2
, D
3
, D
4
, D
5
,
D
6
) thì thi gian hoàn thành vic gia công là: 36.
Vi cách làm ca  xut ta có th gii bài toán d dàng thông
qua mt s c sau:
17

1. Chia các chi tit thành hai nhóm: Nhóm N
1
gm các chi tit D
i
tha
mãn a
i
 b
i

, và nhóm N
2
gm các chi tit D
i
tha mãn a
i
>b
i
.
2. Sp xp các chi tit trong nhóm N
1
theo chia các a
i
và sp
xp các chi tit trong nhóm N
2
theo chiu gim ca các b
i

3. Kt hp N
1
và N
2
c dãy N
1
N
2
chính là lch gia công t
Áp dng cho ví d trên qua tc ta s :
1. Chia thánh 2 nhóm: N

1
= {D
2
, D
3
, D
6
}; N
2
= {D
1
, D
4
, D
5
}
2. Sp xp các thành phn ca N
1
theo chia các a
i
và sp xp
các thành phn ca N
2
theo chiu gim dn ca các b
i
; N
1
= {D
2
, D

3
, D
6
}; N
2
=
{D
5
, D
1
, D
4
}
3. Kt hp 2 chui N
1
và N
2
c: {D
2
, D
3
, D
6
, D
5
, D
1
, D
4
} chính

là lch gia công t chui này d c thi gian hoàn thành
vic gia công là: 32.
1.5 Bài toán JSS ng hp nhi
ng hp nhiu  2 máy thì bài toán thuc lp bài toán NP-
khó, c (xem [18]).
 sn xut vi s máy l
2 (Integer Linear Programming) (xem [11],
[17]) hay      (Branch and Bound) (xem [11]) 
c nghim tp
v, s ng phép toán
s là rt ln vì phi phát trin mt không gian trng thái quá ln, mà do nhng
hn ch v thng b nh, không cho phép chúng ta
thc hi      p x nhanh (Fast Approximate
Algorithms) (xem [11])  là mt gic la
chng hng nhanh v mt thi gian thc
hin, tuy nhiên ch ng thc nghim còn nhiu hn ch. Hin nay, xu th
 các thu vt lý thng kê, tin hóa
18

sinh hc hay da trên lý thuyt ca trí tu nhân to (xem [10])   

gii quyt bài toán này.
1.5.1 K thut nhánh cn
G. H. Brooks và C. R. White là nh  xut k thut
nhánh cn (Branch and Bound -  thuc nhiu
nhà nghiên cu tip tc phát trin. Trong quá trình nghiên cu, phát trin các
nhà nghiên cu tp trung vào chiphân nhánh và xây d
ci.
Xét bài toán t: 





p hu hn các phn t c gi là min ràng buc, còn
:f S R
là hàm thnh trên S.
 áp dng thut toán nhánh cn gii bài toán JSS, chúng ta cn xây dng
hai th tc r nhánh và th tc nhánh c tc chính:
1. Th tc r nhánh: phân hoch liên tip min S thành các min con vi
c nh m mcui cùng s xây dc các tp con ch
gm mt phn t, vim bo vic thc hin vét cn.
2. Th tc nhánh cn: Xây dng hàm tính ci
bound
f

nh trên tp
con ca tp S tha mãn:

 
( ) min ( ):
bound i
f S f x x S
vi mi S
i
thuc S
Giá tr
()
bound i
fS
c gi là ci ca S

i
.
Gi s ta bic mt li gii x
*
thuu

**
( ) ( )
bound
f f x f S

Thì t bng thc

 
**
( ) ( ) min ( ):
bound i i
f f x f S f x x S    k

19

Ta suy ra tp S
i
chc chn không cha li gii t loi b
Procedure Branch_And_Bound_Algorithm;
BEGIN
t
i
PS
là mt phân hoch ca tp S;

Tìm x
*
thuc S, tính
**
()f f x
;
Repeat
Loi khi P tp con có trin vng nht S
i
;
Phân hoch S
i
thành các tp con S
ij
;
Cp nht giá tr mc tiêu tt nht f
*
;

ij
P P S

For all
ij
SP
do
If
*
ij
()

bound
f S f
then loi b S
ij
khi P
Until
P 
;
END;
Hình 1.4: L ca thut toán nhánh cn
 ng S
i
c coi là có trin vng nu nó có giá tr c i
ij
()
bound
fS
là nh nht. (chuyn lên trên)
K thut nhánh c m là có th tìm ra li gii t 
i yêu cu thi gian tính toán lc cho là không phù hp
vi các bài toán t hp khó. Chính vì vy k thut nhánh cn không thích
hp v phc tp tính toán l
1.5.2 Thut toán xp x nhanh
Cách tip cn này (xem [10]) là s dng các lunhm gim thi
gian tính t xut sm nht v luc thc hin bi Jackson
Error! Reference source not found., Giffler và Thompson Error! Reference
source not found. ng d ê: Mi công vic gán
cho m  xut da vào tiêu chun t th và mi khi có
máy ri ta giao ngay cho nó công vi n nht.
20


Nói mt cách khác, trong các thuy, chúng ta s phi sp xp
các công vic thành mt dãy theo mt quy tn s lt thc
hin các công vic sp xp: Công vic tip theo s c b
trí thc hin trên máy ri xut hiu tiên. Ta xét mt s quy tng dùng
 xây dy.
Thời gian xử lý lớn nhất (Longest Processing Time – LPT)
Quy tc này (xem [10]) s sp xp các công vic theo th t gim dn ca
thi gian x lý. Mi khi có máy ri (máy có th  thc hin công vic),
công vic có thi gian x lý ln nht trong s các công vic sn sàng s c
giao cho máy x lý.
Thời gian xử lý nhỏ nhất (Shortest Processing Time – SPT)
Quy tc này (xem [10]) s sp xp các công vic theo th t n ca
thi gian x lý. Mi khi có máy ri, công vic có thi gian x lý nh nht trong
s các công vic sn sàng s c giao cho máy x lý.
Thời gian lệch nhỏ nhất (Minimun Slack Time – MST)
Quy tc thi gian lch nh nht (xem [10])  a các công
vic bi thi gian lch. Gi d
i
và p
i
là thi hn hoàn thành và thi gian x lý ca
công vic i trong tp các công vic cn sp th t. Dãy MST các công vic là
dãy tha mãn bng thc sau:

1 1 2 2

nn
d p d p d p     


ng khi s dng các lu ng ch cho kt qu tt.
Tuy nhiên trong mt s ng hc bit vn cho lch tn tìm.
1.5.3 Gii thut di truyn (Genetic Algorithms - GA)
 xut lu tiên bi John Holland và các cng
s. c rt nhii nghiên ci k i
hc trò xut sc ca Holland 
rt nhiu trong vic phát trin lý thuyt và ng dng thut toán di truyn.
21

Các thut toán di truyn phng theo quá trình tin hóa t thích nghi ca
các qun th sinh hc  tc tiêu. Trong s tin hóa t nhiên,
mi loài sinh vu phi tìm cách thích nghi tt nht vi mng sng
phc ti. S t và ghi li trong cu
trúc nhim sc th ca chúng. H nhng sinh vt thuc th h c
sinh ra s thích nghi vng t h c. 
nht ca GA là: Chi c tìm kim da trên qun th cùng vi ba toán t:
Chn lt bii chéo.  s dng thut toán di truy
chính là chn lc kiu gene, cu trúc nhim sc th và các th tc to mu,
toán t di truyn thích hp  x lý các ràng buc.
Procedure GA;
Begin
t  0;
Khi to P(t); //khi to qun th
  thích nghi
while not kt_thúc do //vòng lặp tiến hóa
begin
//bii qun th
 Bii (P(t));
 thích nghi mi


//to ra th h con mi
P(t+1)  Chn l
t  t+1;
end;
End;
Hình 1.5 thut toán di truyn
Áp dng gii thut di truyn cho bài toán JSS:
- Chn kiu gene và cu trúc nhim sc th thích hp cho các li gii tim
a bài toán. Xây dng th tc chuyi gi thc hin các
phép toán di truyn.
22

  th t tt c các thao tác ca các công vic t  n N_oper
   ng s các thao tác). Nhim sc th có cu trúc là mt
mng mt chiu v dài bng là N_oper. Mt gen trên nhim sc th là th t
cy nhim sc th là mt hoán v ca các s t n N_oper
th hin mt lch th t thc hin các thao tác, t c lch thc
hin các công vic trên các máy.
Thut toán di truyn và nhng phát trin ca nó vi tên gi chung
c nhng thành công nhnh. Mt
trong nhng tip c. Cách tip cn
này
    .  4, lu   trình bày
p lch sn xut.
23

2. KIN
 1 c tìm hiu v bài toán t hp và mt s
cách tip c gii lp bài toán này,  tìm hi
pháp t gii bài toán trên.

2.1 n
Tn (Ant Colony Optimization - ACO) là m
metaheuristic   xut b     d   ng mô
ph t ti ngun thc li ca các con kin
t  gii g-khó.
a mình các con kin th li mt vt hóa chc
gi là vt mùi (pheromone trailm sinh hóa hc ca vt mùi này là có
kh  n giao tip báo cho các con kin khác
thông tin v t cách gián tip. Các con kin s la ch
n nht ti thm la chn
   cách giao tip mang tính gián tip và c  n
trong t n nh
. S dng mô hình kin nhân tng thut
toán h kin (AS) gii chào hàng. Thuc chng
minh tính hiu qu thông qua thc nghim so vi các mô phng t nhiên khác
 SA và GA. Thut toán này v  c phát trin và có nhiu áp dng
phong phú trong thc tc g
ng này, các thut toán ACO s dng thông tin heuristic kt hp
thông tin hng qua các vt mùi ca các con kin nhân to (artificial
ant gii các bài toán t hp khó b ng
 th cc xây dng t m ca t
(Ant System - AS)
 TSP
24


.




i,
(Marie Curie Excellence Award
               
05/11/2003. Cho6 

-

(xem
2.2  th cu trúc
c nêu trong mi dng bài toán
cc tiu hóa (S, f, p hu hn trng thái, f là hàm mc tiêu xác
nh trên S, còn  nh tp S có các thành phc
ly t tp hu hn C. Các tp S, c tính sau:
1) Ký hiu  là tp các dãy trong   dài không quá 















.  trong  nh bi ít nht

m.
2) Tn ti tp con 

ca  và ánh x

t 

lên  sao cho


 không
rng vi mi 

, p 

có th xây dc t tp con

ca 
nh m rng tun t 
3) T 

ta m rng tun t thành 


i) Ta xem 



là m rc vi mi 






25

ii) Gi s 





 là m rthuc 

. T tp ràng
buc ,  nh tp con 

 ca , sao cho vi mi 






thì









 là m rc.
iii) Áp dng th tc m rng t các phn t 




cho phép ta xây dng
c mi phn t ca

.
   t bài
toán tìm ki dài không quá   th  c gán
nhãn trong tp  tìm các li gii chp nhc, ta xây d th 
vi tnh , mi nh cng vi mi thành phn ca Các li
gii chp nhc s nh theo th tc m rng tun t
hay m rng ngu nhiên
i vi các bài toán thuc loi NP-
tìm li gi tt cho bài toán. Các thut toán ACO kt
hp thông tin heuristic này vng, mô phng hành vi
c tìm li gii t
Mi cnh nnh 

 có trng s heuristic 

 ng chn
thành phn m rng là  khi thành phn cui ca trng thái hin ti 


là (theo
th tc m rng tun t  trên). Ký hiu  ng s heuristic
ca cn là ngho c
dài c ng), còn

u th các thông tin hng 


(gi là vc khi to giá tr


ng hc bit 




ch ph thuc vào , các thông tin này s gn vnh. Không làm mt
tính tng hp các thông tin này gn vào các cnh.
Ta g th 

 là  th cu trúc ca bài toán t hp,
 là tnh, là tp cnh, và

là các thông tin gn vi cnh. T
các cnh, xây dng tp 

nh m rng tp 

theo th tc tun t. Nu không
có thông tin heuristic thì ta xem  có các thành phng 1.

×