[go: up one dir, main page]

Academia.eduAcademia.edu
A harmony search algorithm for university course timetabling !"#$ # $ % & # # ## ( # % # # # ' # * # # * + # $ ( # %" # # " ## # ,- . + + $/ ' # ## ' ' + " # # " # # # #+ " " " # #$ 0 %# " ' # * # "+ + # ' ( + # " #1 ( * % " + ( %+ % #" # # " ( # " %$ # # ' # # % ' 2+ 2+ + + ( $/ #+ + %# " ' # ++ ( # %" # ' ' # # " 3#$ # ## * + + # %# " #" + + ( ' ( # " + # + ( # * 3#$ " " #$ ) " " ' # ' % % ! ! " " # 1 Introduction ( # %" # '+ # #" # # ,- " + + 4 % # ## ' ' # " # # # # ' " ( # % % ( " # " %" # 4 3 $ 66789 0 # # # 4 # 8 # # % ## $ ' # # " # # ' ( $ : # " ' ( %$ " ( # # 5 # 6768$ / ' # # " # #$ # * %+ # " # # " # # * " # # " # # * " # ## # % ) ( ' # ( " # ( * " + ' + " ' # " ## ' # # # % + ' ## *' " "% # " ' # " #$ ; + # #$ . # " #% " # # " % # # '+ # * " ' $ # ' # " # " ' # ( ' * " # #* ( % # ## " . #+ ' $ < ## #9 !"#$ # $ % 76!' 4 89 )" . + )" " # = ( # ) # $ , 9@A? 7 A>ABAA$ $" >?? =) - ' # # # ' " # % # # % # ( ' * # ' $ %# #$ % " %# $ %+ #$ $ # + # # " 4 2$ # '4 # 66 +# 66A $ ??78 ( % ' ' # " 4 $ ??B 8$ # * "3 # " # ' # # % % ' # "3 " + # * " " # #" # # * # ' " # # # # " #+ " * %$ " # " + + # " # ' # " # 2+ 2+ * " # " # ' # ( " * + ' * #" # " #+ " $ ' 8$ $ # " ' # # + + # ' * " # # * % # # # + + # ( ' + # # " $ # + + + + # ' # "3 ' + # # 4C ## $ 66D 3 $ 66D . $ 66? ( % ' < ?? 8 " % ' 4) " $ ?? 8 " #%# 4C $ ??A8 " * " # + + # ' #4 3 $ 66B E ' ; ??D C ## $ 66> ??78$ &( ( *# + ( # ++ " # ( # % '+ # ( * ' # ( %# 4. ; + $ ??> 3 $ ??78$ = % % 667 ; * # # + " % + + # ' # # " # ' # % " + + # ' # % 2+ " # # + + + # ' # % " " * 2+ 2+ $ # + + # ' # #" # # * # " #+ " * ' # " " # " # # * "3# # " # 4 " $ ??A8$ # #* %# ( # " # ( % " # " # + + # ' #4 $ ??B " $ ??A8$ / ' ' ' " # " * + ( 8$ ( "3 # ' 2+ * # '' # ( # %" # # + + 4' # * % #' ' # + ( ' # ' # " + ( 8 2+ %# " ' # * # " $ 4 ?? 8$ / # ( + ( * % + % #" # # ' # " %$ / # " # + + # ' #+ " # 4; ??D8$ #+ + # ( # %" # '$ C # # # * #+ ' % + # $ " # + + # ' # # ' + # #" ## # %# " ' '$ ) " #" ## # # + ( # #$ / " # + + # ' *#9 # " * # # 2+ # " $ ' " # 4 " ' + + # % # " #1 " + * * " # ++ % %# " % # " " "3 #" ## # ( # % # #$ ) " + % ( # %" # # # " + # * + # " " # " 2 The university course timetabling problem = ( # % . # ' 4=. -8 ( # "3 * #+ " %) " $4 ?? 8 # ' ' * %" #" # *#9 " # #4 % F 8 * " " #" # # #+ " # & #4 " * " # # " + " % " # #+ " " # # " ## ' " # # # 4 %F 8 % F 8 # #4 % F 8 * GDB 4B %# * 6 # # " %8$ 2 ' " ( 2 * 4" ) G 8 # *# # " # ) * (+ 2 ,& # #" # " ) % 4 )G 8 (+ 2# # % 4. ) G 8$ " # ) * ' " # # # # # 9 ! ! ! & # 0 # 0 #* . ! ! # 0 #* ! ! ! & # * '# " # ## 9 # ) #/ ) #/ # ) #/ # + + " ( #* " = ( # % & ' " + " # "% #$ # . + # ' % " ( 2 < % % + =. ' = $ 2 # "# =. - # # " # " # + " #$ / # * '+ # % 3 # # ' , + " 2 =. - # %) " $ 4 ?? 8 * # < + " " # # "# , * 3 4 ,8 * " # % ( < + # # * ??? ??D ( # ' # "# " + + # " 2 $ * % # ' ++ " # # ( % ++ # ++ " # 4 " 3 $ ?? 8$ =. - * # # " # * %( " =. -$ / # " ' #* " # " " $ # # " #* + + # + # " # ' ' " # # " # # ( # " # # $) * 3# # # " # # " "% $ ??A # " ??B ; * # - " ??D # " + + 2 % # + % # ( - " 1# ' " #" # # " " % F &8 #4 # / + # + # " + ( # % " " $ ## " ; *# - " " # " A? # " # - " # ## )" . + ' , + = ( # % , * 3$ 0 # " + ' # H +9II***$ "#$ + $ "$ 3IJ +IK$ 4 7 5 # "# , * 3 " * # H +9II***$ # "#$ IK$ 4 7 5 L # / '. + * # ' # % # "# , $ & " * # # H +9II***$ # $" IL #I " + ?? IK$ 4 7 5 # ( % # " # 4 ??B8 # # # " + % = ??>8$ ??>8$ * 3 ??>8$ # "# # * # #+ # % ' + '' # 3 + " " # ' " # # # + ( #$ # " ' $ 4 ??78 # '* #$ + # " # "3 ) " / =. - " 2 , * # ' '. + * + # " # " # " ! # " # # #$ ' + 4; * # $ ??78 * # ' . + $ # # # " #9 ) " / " # #* ## * % # "3 "3 # # # % 3 A Harmony search algorithm for UCTP %# # " 40)8 # * # " ' " # %+ * " * # + + # % $ 4 ?? 8 ++ " + + + ## " ## " # ' 4; ??D8 * * 3 #' 4 ??A 8 #" ' 4 ??7 8 #" # '4 ??B8 ) 3 ' 4 ??7 8 #" " + # 4 ??A 8$ 0) * # ( + # " #1 ( * % " " ( % + % #" # # 4+ + #8 " + * # " % 4' + # 8$ # # " # # % # " # 4 ## " 8$ L ' # *# ( # +# 0) ++ =. -$ + + # ( =. - # + # 2 % " ) L' $ 2 /& * # "  ??   ?   ?  $$$$   &? →* L' # " ) " - + # # / M $ 1 # " # #* # * " %$ 01 " # " ) # $$$$$$$ $$$$$$$ ? $$$$$$$ $$$$ $$$$$$$ & $$$$$$$ =. - L' # *# # ) + # # + %$ #    ↓  $ $$$$   &  ? + # # # # $ % ; * # 4 ??A8 '. + * # ' # % ( " * # # H +9II***$"#$ $ "$ 3I " ??7I 2$ %1 " # " # # #" #" " # # # " ( $ # K$ 4 7 5 # # * # #+ # ??>8$ * " #% % D / / // / L $ $ $ D$ 0 - " 0 , # "$8 %# % " + # %. # C " C 4- C8 % %) 40 )8 / + (# #4 ,/ 8 '+ # 4C # . / / // % 40 .C8 # # ' # %$ # + /// ) # # 0 )$ % % / + (# * %# / * % : # # * # % % % =+ % % , /# / + (# + ## ,/ : # , ) + L' * ' # %# " # # # !)≥ # )$ # #+ " # * ( ( % " # # ) *# $ 2 2 * ## * "9 # % % " # # ? " # # 0%$ # # =. -$ ( # %" # 2 # # ( ' # "9 # ( " "9 # 0) * " " ( + # # # !) " '" # # '" " # 23& * ) #" + *# $ # # # 9 ? # ) " # " # 0 $ " * 2 # # ) # 2 4 # 5) " ' # * 0 45 ) G 8 % * % # % % 40 8 45 ) G?8 B Step1: Initialize harmony search parameters and UCTP parameters / # + " " ## ## ( " 4 8 # # " # % " $ 4 ??A8 # (/ ) = ∑ ( ) + ( ) + ( ) 4 8 = M L ( ) (/ ) #" * ' ' # # ## ( 0) + $ 0 .C9 0 " ' " # " # # 0 ) ) ( ) " ) # " ( ) ( %$ #9 % %. # C # " ## ( $ + %# # ' " ' $ - C9 - " # ' C " # #* " * ( + # #* ++ ' * " # # 3 " # " ' # " #$ $ 0 )9 0 % %) ## + + # $ D$ ,/9 , / + (# # # # # + # ' #$ Step2: Initialize HM with random feasible timetables based on HMS parameter  ? ? ? $$$$$$$ ?   ? ? ? $$$$$$$ ?     $$$$$$$ $$$$$$$  ?  ?      $$$$$$$ $$$$$$$  ?  ?   $$$$ $$$$ $$$$$$$ $$$$   $$$$ $$$$ $$$$$$$ $$$$       & ? & $$$$$$$ &   & ? & $$$$$$$ &  L' % / # + 0) ' * ' * # # # " " $ 4# L ' 8$ * * C ' + + # ' =. - 0 ) # " 4 # # ' # * ' # * # #" # " ' "3 ## ' $L # ' # " # * + ## " # # # # +# ## ' %# # #  ?0?  0  ?  0  ?  $$$$  0  &? " # ## (   $$$$$$$   0 0 $$$$$$$  $$$$ $$$$$$$ $$$$   0 $$$$$$$ &0  & 0 ? 0 $$$$$$$ 0 ? 0 # #* # # 0 ) 0 # 0 "3 ' ' 4. ; + 66A8 # ++ ' %# # ' " # # % ; 6>68$ ## '% # # % " # # " ## ' # # " # # ## ' ' + " ## $ "3 #" # #" # # "3 ' ' * # " " # 2+ " # # " "$ #* * ( # ' $ "3 "3 ' # " # # #" A #$ ) " # + " ## * # # % ' * # ( # + " #" # + " ##$ / #" # #" $ # $ + + # # #" # # # * # ' # " " # # # ++ # " ( %$ / # * ' * # #" + " #$ L # % + + # ( % " # # * # " # " # # # ' # * #" # # " # * )* + "3 # ' " # # 3 # # # + + '+ + # #" # " " / # + " ## * + + + # # * # # # * % #" #" " # # # * " " " # $ "3 "3 # $/ )* # " # #$ #" # + " ## ' # # # # ' + * '$ Step 3: Improvise new harmony solution  ??  678  ?  678 678 G  ? )  $$$$  678  &? 678 L' / # + + * 678 678 $$$$$$$ 678 $$$$$$$ $$$$$$$ $$$$ 678 # ? 678 $$$$$$$ & D    678   $$$$  678  &  678 $$$$$$$ ? * %# %# 4L ' D8 # ' # #9 1 Memory considerations %" # # # # 678 ) * ( ## 0 .C ( + # "# ## 0 * # " # ∈{ # 4 89 678 ) 0 # " # * ?   678 = )   678 ) ∈{ ) ) 678 ) ) $$$ 0 ) " + % ) } ∈/ ) 0 .C # + % # " ' # ## 0 $L # " 40 " # #* # " % * + % 6BN$ " 0 * + # 4 6BN × D?? 8 " # # * % + # # # 0 $ # #+ # # * % % 0 .C$ / * # # " + # # ) ) (0 $ $ $ $ $$$ ( −0 " + # *9?$6B8 # " # # # } 0 ) * + % *) *) # # 4 8 678 ) " # + # # D?? " # # #" 0) ' * + ' # 0 " # # " 7 # # % # " " # # 678 # " ( %# "# # " ( ## 0 $ ?? 8$ E " =. - # ,+ # 3 + ## ' # " " # " ( % " # # * %# $ % + % 4 O 6768 * ( % % # ## ' ' " #+ # " ! * " ( # " ( + # # "$ / # " # " # ( + # # + + # ' * + ' 4 ; 0) 678 & " 4 # + # # % # ' '% " # # # #$ # ' " # # ( % * # " " # 6>68$ 2 Random considerations 4 0 *8 " ## ' ' $ / " # '# # # #" * %# # + " ## # ( % + * + + ' ' %" # % ( " # ( # % * % " ' 4 ??B8$ 3 Pitch adjustments * %# #' ++ * %# * 4- C8$ # + * 2 " # # " # #$ / * # + " # ' % " # " ' ' " # # * + " # # * + ? ≤ /* ≤ # " ' $ 0 .C + +# 0) * - C+ +# 0) " # " ; ??D8$ . # #* 678 ) # " ,  = 6  "" (0 $ $ (0 $ $ / " # * + " " " # ' =. # " " # * + * 3# # ' * 2+ + #" " + " + # %- " ' + * 'C # #" # # % " # % "# " $ % ( /* × 0 (( # # *) + ( − /* ) × 0 ' + ( # ' " + ( #4 # # * *) # # ??B 4 89 * × /* ) 4 8 * × ( − /* )) " # * ( ( % ( /* × 0 * ) # 0 # " # " # * % # * 2+ $ + # + " ' * #* + # ' # # % Step 4: Update harmony memory / # +D ( 0) * " * ' ( %# %# # * # 0 2" %# * # * # # $/ ## ( ## 0 0 $ > Step 5: Stop Criteria / # +B 0) # ' * + % ,/ + # + # # +D $ 2 4 Experimental results and discussion / ## " * + # + " 0) ' # ' # " 3# ( # %" # '$ + + # #" " # P# .@@ A * *# Q/ " * 0 + " ## BA C $M " # # + + # # ' %) " $ 4 ?? 8$ ) " # " #" # # " # + + + " ++ " # =. * + + " % " , + = ( # % * # # + # # * =. " # #$ ) " $ 4 ?? 8 " ## # # " # " ## #9 # ' #" ## + ( " " ##$ 4# 8$ M 2+ ( # # " # ( # " # ' # " %* # # ' ????? #$ ( + % " # * # ## ## % + % " # + ( # # " # #) ) ) $ 0 )G B? 0 .C G?$6> - CG?$? $ " # " # " # ++ 2 % ? # " # # " ## * # " # " $ # # " # # ' ' $ # # " 3 $ #%# % ++ " $ ??B8 # ( + ?? 8 # "4 2 ( 4 # + , , , ( ++ 2 - " , 2 ( 2 H ) " +9II * ' + # 4 ( + ( # 4# 89 # %+ # "4 " # " 4) " $ ??78 % + ' # " 4 4 $ ??B 8$ ( =. - " ## # 4) " # ?? B B D?? ? B 7? >? ? ? >? ?? ? B? # # # #+ # $ # # + ( # " # * ' $ "$ IJ # + #I $ % IK$ 4 7 5 ' ??>8$ %+ ??78 % ' 8 $ ?? 8$ D?? ? ? B 6? D?? ? ?? + # # " 3 $ $ ?? 8 # " $ ??B * % - " ( # * # 9 6 " E + # # 0 4 #8 # # # ) ) # # *:: 4 #8 I **; 4 ('8 B I / 4 ('8 ' # <6 4 #8 " # =00 4 #8 + 0> 4 #8 A 7 ? 6 7 > > ) ) D B A 7 B 66 ? $B 77$BN $ 77$B ??N $ D D A BB AB D B > B B B ??N ??N $ ; ' / ??N $ * ' ( D 6 7 A7 D 7 7 D> B7 B6 D6 D7 D> >B 6 7 ??N $ ?A> >B $B # ( $00 4 #8 7 7 D B 6B >D 6$B 07/ 4 #8 AB A6 ? >?N $ AA > # 9 0)R 0 %) " ' $ C//R C # / ( / + ( 4 $ ??B 8$ CC;)R C C # ; " # " 4) " $ ?? 8$ )R Q /, )%# 4) " $ ?? 8$ P,)R P , ' ) " 4 $ ??B 8$ 00R + # 0%+ 0 # "4 3 $ ??78$ L 0&R L % + 0 # "& '4 # $ ??B8$ 0< R 0% <( % ++ " 4 $ ??78$ 00R # " 0%+ 0 # "4 3 $ ?? 8$ 2N R # # % $ 4 ??78 " + " ' ' " # $ + ( * # # * # * 3#$ + ' / " # + + # # # # # 0) ' #" + " ' + # + ( # * 3# # # ( # 2+ # # ++ " # " #$ " # # + ( * ' # # # # # 0) # 00 # # % $ # # ( # # " # " # # " #$ " # # ' # * 0) # " #$ L 0& # # P,) L 0&$ 5 Conclusion and future work # + + # + # 0) ' # * + + # ' " + " # # # # ( 0) # # 0 .C # '+ " ' % " $ # "3 ' =. -$ # # + # # =. + ( # $ # # 3 " 2+ * ' 2+ - C ' + " ? L ' # # * ## #* " " * # + " # " ' $ + ( 0) # '+ " #$ ' =. - % " ' % % ' ' 0) 0) + # =. - # 6 References ) 3 < ". 4 ??B 8 =# ' # ( + ( ' + # ' # " # " # '$ / - " '# /. ?B9 0 # "/ . " P # A ' ??B$ ) 3 < "" 4 ??B 8 ( # ' ( ' # " ( # %" # '$ - " '# /) ??B9 #" + % . " )" '9 % ++ " #$ ,: =) $ ) 3 < "" 4 ??78 % ( % ++ " ( # % " # '+ $/ - " '# /<<< . ' ## <( %. + $ ) ' + ) + ??7$ # E 4 66 8 . # " ' #" # # '# '9 # + ' #$ ' )" " 74 896>R $ ; 5 4 6>68 + # ++ " 2 #" '$ //< # " # 4D89>A 6A$ # 0 3 < C/ ;E/ 5 4 ??B8 L % + # " ' " # '$ /, ; )$ $ $ <$ 4< $8 - " '# B = ' M 3# + . + / ' " $; = 4= ./?B8$ O E 4 6768 , * # " ( " # ' + $. " # . 4D89 B R BA$ 3 < < E M CL 4 66B8 % ' " ' ' %" # '+ #$ A / . " " ' # 4/. 16B - # ' =) B 6 5 % 66B8$ ' ) L " #" . =) $ 3 < %3 ( : , * 54 ?? 8 + ++ " " # '$ : ' # (5 &+ #C # " 9 6 B $ 3 < < E M CL 4 66D8 ' " ' ( # % '$ / + " '# /) * 3# + <( %. + '$ = ( # % ; # = $ 3 < '# 5 5 "3# 4 6678 ( # % '9 # . + 5 D? 4689 BAB B7 $ 3 < ) ' < 4 ?? 8 # " %+ # " ' # '$ 5 0 # "# 64A8 DB D7?$ 3 < "" # # 4 ??78 + # 0%+ 0 # " < " '#$ < + 5 &+ C # " 7A4 89 77 6 $ . M ; + ; ): 4 66A8 <2 '9 ' "# ' # ++ " #$ 5 &+ C # " ) " % 7D4 89 7 > $ . M ; + 4 6678 C " ( + # + " " " # '$ / 9 <$ 3 $. 4< #$8 - " " % '9 ) " - + # ) " / . " )+ ' ; " , # . + )" " D?>9 6$ . ) " 4 ??A8 " ( % ' ( # % " # '$ 5 )" ' 64B89D? D $ . E ' P 4 66?8 " ' # ' %" # + #9 " # $- " '# L # / M 3# + ) ( ' , $E % )+ ' P ' BB B6$ E ' ; 4 ??D8 . '" # + ' ' # ' ( # % 2 '$ / 9 - " '# C/PL ??D . " 0 P $ < M 4 ?? 8 ' + ' ' " ' ' + " ' 2 '$ - " " % ' ///9 / . " ??? # % ' # A > ??? ) " - + #$ L ' 0 4 66D8 " ' # ' #" '$ - $E$ # # E + " / ' " $= ( # % < ' < ' = $ % C 5 # E) 4 6768 . + # " %9 ' % ," + ##$ L . + %$, * : 3$ SM 4 ??B8 )" # ' # ' %# " $/ C L$ 4< $8 ; 3 ' + + " <( %. + . " 4 <..&T ??B8$ M # ' E$.$ =) $ * A " SM 4 ??A 8 / + ( %# " # # " + % #$ ; " , # " / ' " D B 9>AR6 $ SM 4 ??A 8 &+ " # #' * # * 3# # ' %# " $ < ' ' &+ >4 89 B6 >?$ SM 4 ??7 8 0 %# " ' # ( '# 3 $; " , # " / ' " DA6 9 7 R 7>$ SM 4 ??7 8 &+ #" ' + #%# # ' %# " ' $ ; " , # . + )" " DB?79 AR $ SM 5 ; ' 4 ?? 8 * # " + ' 9 %# " $ ) 7A4 89A? A>$ # " - 4 ??B8 ( # %" # '+ * + # ++ " $ / < 3 " "3 # - "$ B / $. $ - " " % ' 4??D 0 '8 # " + + # )+ ' ; " , # . + )" " A A9 ?6R B$ ; ) SM 4 ??D8 *# " + # %# " ' $. + # ) " # > 46897> 76>$ ; * # C 4 ??>8 # ( % # " # " # = ( # % '+ #$ &C )+ " ?9 A7 6?$ ; * # C 4 ??A8 # "# ( # %" # '$ - E # # )" . + ' , + = ( # % < ' &" $ ; *#C - " "" 4 ??78 - # # " # '9 #" + + # "3 * # " '" + $ . = ( # % . # ## )" "" ' L " ) " $ ; *#C - " 4 ??B8 ++ " ' + '' " ' ( # %" # '$ <( %. + . &+ # 4<P&. +8 P$ $ C 5$ < #$ %9 )+ ' P ' ??B$ ; " , # . + )" " DD>9 DD B $ ; *#C - " 4 ??D8 , * " ## ( + # '* ( % ' #$ / 9; 4 8 " " " ( " # # " + ' C ). ??D$ , ' < ' $ " . %# ) 4 ??A8 " ( % ' ( # %" # '# 5 )" '$ 64B89 D? D $E 9 ?$ ??7I# ?6B ??A >D6B >$ C # 4 ??A8 " ' # ( # % '$ - " '# A / . " - " " U % ' 4??A8$ ? &' # R ) + ??A . " C + "$ C ## - 0 < . E 4 66>8 ) # ( # # 2 '$ / 9 <$ $ 3 $. 4 #$8 ;,.) D?> - " " % ' //9 ) " / . " 667 . # " + + #$ )+ ' P ' BR 6$ ) " * #5 ) + # 4 ?? 8 2 #%# ( # %" # '+ $- " '# / M 3# + ' #4 , ) ?? 8 )+ ' ; " , # . + )" " DA 9 $ ,E 4 ??78 ) ( ' '+ # '' " # " ' #$ ) * < ' ' " / ' " , * 3 ' IE # . + ' ??7$ ),-E ??7$ < ' ./) / . " $ +# ; E *# 4 66A8 P # ) ' <2 '$ # &+ # C # " A 4 89 ?B >$ ' C # 4 ??78 0% # '* 3 + " ' ( # % '+ $. + / )" " ??7$ /./) ??7$ A /<<<I ./) / . " $