6.2 Joc de proves global
6.2.1 Aleatoria1
Com a primera inst`ancia generada aleat`oriament es triaaleatoria1, aquesta inst`ancia ´es generada amb una mida de tribunal de 3, a partir de la llavor -5583017181915887491L i amb probabilitats:
(probDocentDisp,probTreballDisp,probSolap,probExp)= (60,60,40,60). En la generaci´o d’aquesta inst`ancia es busca generar una inst`ancia insatisfactible (les probabilitats s´on desfavorables) per poder-ne estudiar el temps d’execuci´o. Aix´ı doncs queda definida com:
1 i n s t a n c i a ( a l e a t o r i a 1 ,10 ,10 ,10 ,3 ,10 ,10 , 2 % D i s d : 3 []( 4 []( 0 , 0 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 1) , 5 []( 1 , 1 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 1) , 6 []( 0 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 1 , 0) , 7 []( 1 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 1 , 1) , 8 []( 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1) , 9 []( 0 , 0 , 1 , 0 , 0 , 1 , 0 , 1 , 1 , 1) , 10 []( 1 , 1 , 1 , 0 , 0 , 1 , 1 , 0 , 1 , 1) , 11 []( 0 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 0 , 0) , 12 []( 1 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1) , 13 []( 0 , 0 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1) 14 ) , 15 % D i s t : 16 []( 17 []( 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 0 , 1) , 18 []( 1 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1) , 19 []( 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) ,
42 CAP´ITOL 6. JOC DE PROVES 20 []( 1 , 1 , 1 , 1 , 0 , 0 , 0 , 1 , 1 , 1) , 21 []( 0 , 0 , 1 , 1 , 0 , 0 , 1 , 1 , 0 , 1) , 22 []( 0 , 1 , 1 , 1 , 0 , 1 , 1 , 0 , 0 , 0) , 23 []( 1 , 1 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 0) , 24 []( 1 , 1 , 1 , 1 , 0 , 1 , 0 , 1 , 1 , 0) , 25 []( 0 , 0 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 0) , 26 []( 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 0 , 1) 27 ) , 28 % S o l a p : 29 []( 30 []( 0 , 1 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0) , 31 []( 0 , 0 , 0 , 0 , 1 , 0 , 1 , 1 , 0 , 0) , 32 []( 0 , 0 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 1) , 33 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0) , 34 []( 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0) , 35 []( 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 1) , 36 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1) , 37 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1) , 38 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 39 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) 40 ) , 41 % Exp : 42 []( 43 []( 0 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 0 , 1) , 44 []( 1 , 0 , 0 , 1 , 0 , 1 , 1 , 1 , 0 , 1) , 45 []( 1 , 1 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 1) , 46 []( 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 0 , 0) , 47 []( 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 0) , 48 []( 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 49 []( 1 , 0 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0) , 50 []( 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 0 , 1) , 51 []( 1 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 1) , 52 []( 0 , 1 , 0 , 0 , 1 , 0 , 1 , 1 , 0 , 0) 53 ) 54 ) .
Rebent aquesta inst`ancia, l’eina respon que ´es insatisfactible. Fent una an`alisi del temps d’exe- cuci´o a partir de 10 execucions s’obtenen els resultats presentats a la figura 6.1.
Figura 6.1: Temps d’execuci´o aleatoria1
Aix´ı doncs per aquesta inst`ancia s’obt´e una resposta negativa en un temps de 39,578s de mitjana.
6.2. JOC DE PROVES GLOBAL 43
6.2.2 Aleatoria2
Com a segona inst`ancia generada aleat`oriament es triaaleatoria2, aquesta inst`ancia ´es generada amb una mida de tribunal de 5, a partir de la llavor -4427606135284906192L i amb probabilitats:
(probDocentDisp,probTreballDisp,probSolap,probExp)= (80,80,20,80). En la generaci´o d’aquesta inst`ancia es busca generar una inst`ancia satisfactible (les probabilitats s´on favorables) per poder comprovar la correctesa de la soluci´o aix´ı com el temps d’execuci´o. Aix´ı doncs queda definida com: 1 i n s t a n c i a ( a l e a t o r i a 2 ,10 ,10 ,10 ,5 ,10 ,10 , 2 % D i s d : 3 []( 4 []( 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0) , 5 []( 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 6 []( 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 0) , 7 []( 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1) , 8 []( 1 , 1 , 0 , 0 , 1 , 0 , 1 , 0 , 1 , 1) , 9 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1) , 10 []( 1 , 1 , 1 , 0 , 1 , 1 , 0 , 1 , 1 , 1) , 11 []( 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 1) , 12 []( 1 , 0 , 1 , 0 , 1 , 1 , 0 , 0 , 0 , 1) , 13 []( 0 , 1 , 1 , 0 , 0 , 1 , 0 , 1 , 1 , 1) 14 ) , 15 % D i s t : 16 []( 17 []( 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1) , 18 []( 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 0 , 1) , 19 []( 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1 , 1 , 1) , 20 []( 1 , 0 , 0 , 1 , 0 , 1 , 1 , 1 , 0 , 1) , 21 []( 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 0) , 22 []( 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 23 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1) , 24 []( 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1) , 25 []( 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 26 []( 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1) 27 ) , 28 % S o l a p : 29 []( 30 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0) , 31 []( 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 32 []( 0 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 1 , 0) , 33 []( 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 1) , 34 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1) , 35 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 36 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1) , 37 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 38 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 39 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) 40 ) , 41 % Exp : 42 []( 43 []( 1 , 1 , 1 , 1 , 0 , 1 , 1 , 0 , 1 , 1) , 44 []( 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1) , 45 []( 1 , 1 , 0 , 1 , 0 , 0 , 1 , 1 , 1 , 1) , 46 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0) , 47 []( 0 , 1 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 1) , 48 []( 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0) , 49 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1) , 50 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0) , 51 []( 0 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 1 , 1) ,
44 CAP´ITOL 6. JOC DE PROVES
52 []( 0 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0)
53 )
54 ) .
Rebent aquesta inst`ancia, l’eina respon que ´es satisfactible i ofereix l’assignaci´o presentada a la figura 6.2.
Figura 6.2: Testimoni aleatoria2
´
Es trivial comprovar que aquesta soluci´o no viola cap de les restriccions del problema i per tant que es tracta d’un testimoni correcte per la inst`ancia, aix´ı doncs es conclou que l’execuci´o de l’eina ha sigut adient.
Fent una an`alisi del temps d’execuci´o a partir de 10 execucions s’obtenen els resultats presentats a la figura 6.3.
Figura 6.3: Temps d’execuci´o aleatoria2
Aix´ı doncs per aquesta inst`ancia s’obt´e una resposta afirmativa i un testimoni correcte en un temps de 20,372s de mitjana.
6.2. JOC DE PROVES GLOBAL 45
6.2.3 Aleatoria3
Com a tercera inst`ancia generada aleat`oriament es triaaleatoria3, aquesta inst`ancia ´es generada amb una mida de tribunal de 5, a partir de la llavor 8095538131531138922L i amb probabilitats:
(probDocentDisp,probTreballDisp,probSolap,probExp) = (80,80,20,80). En la generaci´o d’aques- ta inst`ancia es busca generar una inst`ancia satisfactible (les probabilitats s´on favorables) per estudiar la correctesa de la soluci´o aix´ı com el temps d’execuci´o. Aix´ı doncs queda definida com: 1 i n s t a n c i a ( a l e a t o r i a 3 ,10 ,10 ,10 , 5 ,10 ,10 , 2 % D i s d : 3 []( 4 []( 0 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1) , 5 []( 1 , 1 , 0 , 0 , 1 , 0 , 1 , 1 , 0 , 0) , 6 []( 1 , 1 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 0) , 7 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 8 []( 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 9 []( 1 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1 , 0) , 10 []( 1 , 1 , 1 , 1 , 0 , 1 , 1 , 0 , 1 , 1) , 11 []( 0 , 1 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1) , 12 []( 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 13 []( 1 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1 , 1) 14 ) , 15 % D i s t : 16 []( 17 []( 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 0) , 18 []( 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1) , 19 []( 1 , 1 , 1 , 1 , 0 , 1 , 1 , 0 , 1 , 1) , 20 []( 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 21 []( 1 , 1 , 1 , 1 , 1 , 0 , 1 , 0 , 1 , 0) , 22 []( 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 1) , 23 []( 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 24 []( 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 25 []( 0 , 1 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 1) , 26 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) 27 ) , 28 % S o l a p : 29 []( 30 []( 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1) , 31 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1) , 32 []( 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 1 , 1) , 33 []( 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0) , 34 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1) , 35 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1) , 36 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 37 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 38 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 39 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) 40 ) , 41 % Exp : 42 []( 43 []( 1 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 1 , 1) , 44 []( 1 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 0 , 1) , 45 []( 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 0) , 46 []( 0 , 1 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 1) , 47 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1) , 48 []( 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0 , 1) , 49 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1) , 50 []( 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 51 []( 0 , 0 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1) , 52 []( 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1)
46 CAP´ITOL 6. JOC DE PROVES
53 )
54 ) .
Rebent aquesta inst`ancia, l’eina respon que ´es satisfactible i ofereix l’assignaci´o presentada a la figura 6.4.
Figura 6.4: Testimoni aleatoria3
´
Es trivial comprovar que aquesta soluci´o no viola cap de les restriccions del problema i per tant que es tracta d’un testimoni correcte per la inst`ancia, aix´ı doncs es conclou que l’execuci´o de l’eina ha sigut adient.
Fent una an`alisi del temps d’execuci´o a partir de 5 execucions s’obtenen els resultats presentats a 6.5.
Figura 6.5: Temps d’execuci´o aleatoria3
Aix´ı doncs per aquesta inst`ancia s’obt´e una resposta afirmativa i un testimoni correcte en un temps de 360,854s de mitjana.
6.2. JOC DE PROVES GLOBAL 47
6.2.4 Aleatoria4
Com a ´ultima inst`ancia generada aleat`oriament es triaaleatoria4, aquesta inst`ancia ´es generada amb una mida de tribunal de 3, a partir de la llavor -5583017181915887491L i amb probabilitats:
(probDocentDisp,probTreballDisp,probSolap,probExp)= (75,75,30,75). En la generaci´o d’aquesta inst`ancia es busca generar una inst`ancia insatisfactible (les probabilitats i la mida del tribunal s´on desfavorables) per tal d’estudiar el temps d’execuci´o de l’eina. Aix´ı doncs queda definida com: 1 i n s t a n c i a ( a l e a t o r i a 4 ,10 ,10 ,10 , 5 ,10 ,10 , 2 % D i s d : 3 []( 4 []( 0 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1) , 5 []( 1 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 1) , 6 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 7 []( 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1) , 8 []( 0 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1) , 9 []( 1 , 0 , 1 , 0 , 0 , 1 , 1 , 0 , 1 , 0) , 10 []( 1 , 1 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 0) , 11 []( 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1 , 0 , 0) , 12 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1) , 13 []( 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1 , 1) 14 ) , 15 % D i s t : 16 []( 17 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 18 []( 1 , 1 , 0 , 1 , 0 , 0 , 1 , 1 , 0 , 0) , 19 []( 1 , 1 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 1) , 20 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0) , 21 []( 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1) , 22 []( 0 , 0 , 0 , 1 , 1 , 0 , 1 , 1 , 0 , 1) , 23 []( 1 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1 , 0) , 24 []( 1 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 1 , 1) , 25 []( 0 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1) , 26 []( 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 1) 27 ) , 28 % S o l a p : 29 []( 30 []( 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0) , 31 []( 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0) , 32 []( 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0) , 33 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 34 []( 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0) , 35 []( 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0) , 36 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1) , 37 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 38 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) , 39 []( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) 40 ) , 41 % Exp : 42 []( 43 []( 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 44 []( 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0) , 45 []( 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1 , 1 , 0) , 46 []( 0 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1) , 47 []( 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1) , 48 []( 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 0) , 49 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , 50 []( 1 , 1 , 0 , 1 , 1 , 1 , 1 , 0 , 1 , 0) , 51 []( 0 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 1 , 0) ,
48 CAP´ITOL 6. JOC DE PROVES
52 []( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1)
53 )
54 ) .
Rebent aquesta inst`ancia, l’eina respon que ´es insatisfactible. Fent una an`alisi del temps d’exe- cuci´o a partir de 5 execucions s’obtenen els resultats presentats a la figura 6.6.
Figura 6.6: Temps d’execuci´o aleatoria4
Aix´ı doncs per aquesta inst`ancia s’obt´e una resposta negativa en un temps de 606,572s de mitjana.
Considerats els resultats d’aquest joc de proves es conclou que l’eina ´es correcta, en el sen- tit que la resposta que ofereix ´es correcta per la inst`ancia subministrada.
Totes les inst`ancies del problema fetes servir en els jocs de proves es poden trobar al fitxer
Cap´ıtol 7
Refinament de l’eina
Respecte al refinament del m`etode cal considerar que bona part de les modificacions respecte a la formalitzaci´o te`orica s’han presentat al Cap´ıtol 4, especialment el presentat a l’apartat Defini- ci´o de restriccions, relacionat amb la satisfactibilitat de certes inst`ancies. D’altra banda tamb´e s’han presentat en el quart cap´ıtol refinaments a priori per millorar el rendiment de l’eina, sent els refinaments d’assignar un tribunal fix a les franges buides i el d’ordenar els membres dels tribunals per evitar simetries els m´es rellevants per`o no els l’´unics.
Aix´ı doncs aquest cap´ıtol se centrar`a m´es en q¨uestions de rendiment per considerar que els refinaments respecte a la correctesa i simetries han estat tots presentats al Cap´ıtol 4. Per tant aquest cap´ıtol se centrar`a en els resultats de temps d’execucions presentats al cap´ıtol anterior i es planteja el refinament del m`etode per tal d’aconseguir millorar l’efici`encia de l’eina sense modificar-ne els resultats, que en el cap´ıtol anterior ja s’ha concl`os que s´on correctes.
Per tal d’implementar les esmentades millores es considera tot un conjunt de casos, que es podrien anomenar trivials, i que ja vist des d’una perspectiva te`orica ´es evident que s´on insa- trisfactibles. Tot seguit es plantegen aquests casos aix´ı com la implementaci´o afegida al codi de l’eina per gestionar-los. En tots els casos se seguir`a el mateix esquema: realitzar la comprovaci´o adient en cada cas i en concloure que es tracta d’un cas trivialment insatisfactible es far`a servir el predicatfail per avortar l’execuci´o i aix´ı millorar el rendiment de l’eina. En cas que no s’iden- tifiqui la inst`ancia com a trivialment insatisfactible s’invocar`a el predicat true per continunar amb l’execuci´o de l’eina.
7.1
Cas trivial 1
El primer cas trivial considerat consisteix en que si el nombre de docents de la inst`ancia ´es menor al nombre de membres del tribunal, llavors la inst`ancia ser`a necess`ariament insatisfactible, ja que ser`a impossible ni tan sols construir un tribunal correcte. Formalment tenim que :
D < N =⇒ Insatisf actible
Considerant aquesta an`alisi, en cas que una inst`ancia satisfaci la restricci´o esmentada, llavors l’eina pot respondre autom`aticament que la inst`ancia ´es insatisfactible i acabar. Aquesta nova restricci´o queda codificada de la seg¨uent forma:
1 ( N o m b r e D o c e n t s < M i d a T r i b u n a l - > f a i l;t r u e) ,
50 CAP´ITOL 7. REFINAMENT DE L’EINA
7.2
Cas trivial 2
El segon cas trivial considerat consisteix en que si existeix un treball tal que el nombre d’experts en el tema que el treball tracta ´es menor que la mida del tribunal, llavors la inst`ancia ser`a necess`ariament insatisfactible, ja que ser`a impossible construir un tribunal correcte per la franja a que el treball estigui assignat. Formalment tenim que :
∃t∈ {0...T} | #{expi,t|expi,t = 1}< N =⇒ Insatisf actible
Considerant aquesta an`alisi, en cas que una inst`ancia satisfaci la restricci´o esmentada, llavors l’eina pot respondre autom`aticament que la inst`ancia ´es insatisfactible i acabar. Per la codificaci´o d’aquesta restricci´o s’empra el predicatoccurrencesusat ja anteriorment. Aquesta nova restricci´o queda codificada de la seg¨uent forma:
1 ( for ( I ,1 , N o m b r e P r o j e c t e s ) , p a r a m ( Exp , M i d a T r i b u n a l ) do
2 o c c u r r e n c e s (1 , Exp [* , I ] , Ocu ) ,
3 ( Ocu < M i d a T r i b u n a l - > f a i l;t r u e)
4 ) ,
7.3
Cas trivial 3
El tercer cas trivial considerat consisteix en que si la suma total de disponibilitats de docents ´es menor que el nombre de franges per la mida del tribunal i dividit entre el m`axim de treballs per franja, llavors la inst`ancia ser`a necess`ariament insatisfactible, ja que el nombre m´ınim de franges no buides sempre ser`a igual a nombre de treballs/m`axim treballs per franja, per cadascuna d’aquestes franges ser`a imprescindible crear un tribunal i per poder crear aquests tribunals ser`a imprescindible que els docents tinguin disponibilitat almenys per constituir aquests tribunals. Formalment tenim que :
#{disdi,j | disdi,j = 1}<
T ∗N
M F =⇒ Insatisf actible
Considerant aquesta an`alisi, en cas que una inst`ancia satisfaci la restricci´o esmentada, llavors l’eina pot respondre autom`aticament que la inst`ancia ´es insatisfactible i acabar, en cas contrari el programa pot continuar. Per l’implementaci´o d’aquesta restricci´o s’empra el predicateval to list
simplement per transformar la matriu disd en un format acceptat pel predicat sum, aquest predicat calcula la suma total dels valors de la matriu disd. Aquesta nova restricci´o queda codificada de la seg¨uent forma:
1 e v a l _ t o _ l i s t (c o n c a t( D i s d ) , Con ) ,
2 sum ( Con , Su ) ,
3 Au is N o m b r e P r o j e c t e s * M i d a T r i b u n a l / M a x T r e b a l l s x F r a n j a ,
4 ( Su < Au - >f a i l;t r u e) ,
7.4
Cas trivial 4
El quart cas trivial considerat consisteix en que si existeix un treball que no tingui cap disponi- bilitat, llavors la inst`ancia ser`a necess`ariament insatisfactible, ja que ser`a impossible assignar-li una franja. Formalment tenim que :
∃t∈ {0...T} | ∀jdistt, j = 0 =⇒ Insatisf actible
Considerant aquesta an`alisi, en cas que una inst`ancia satisfaci la restricci´o esmentada, llavors l’eina pot respondre autom`aticament que la inst`ancia ´es insatisfactible i acabar, en cas contrari el programa pot continuar. Aquesta nova restricci´o queda codificada de la seg¨uent forma:
7.5. CAS TRIVIAL 5 51 1 ( for ( I ,1 , N o m b r e P r o j e c t e s ) , p a r a m ( D i s t ) do 2 o c c u r r e n c e s (1 , D i s t [ I ] , Ocu ) , 3 ( Ocu < 1 - >f a i l;t r u e) 4 ) ,
7.5
Cas trivial 5
El cinqu`e cas trivial considerat consisteix en que si el nombre de treballs ´es major que el nombre de franges per la capacitat de cada franja , llavors la inst`ancia ser`a necess`ariament insatisfactible, ja que tot i omplir totes les franges al m`axim no , formalment tenim que :
T > F ∗M F =⇒ Insatisf actible
Considerant aquesta an`alisi, en cas que una inst`ancia satisfaci la restricci´o esmentada, llavors l’eina pot respondre autom`aticament que la inst`ancia ´es insatisfactible i acabar, en cas contrari el programa pot continuar. Aquesta nova restricci´o queda codificada de la seg¨uent forma: 1 A u x 2 is N o m b r e F r a n g e s * M a x T r e b a l l s x F r a n j a ,
2 ( A u x 2 < N o m b r e P r o j e c t e s - > f a i l;t r u e) ,
En provar l’eina amb les modificacions descrites en aquest cap´ıtol sobre els jocs de proves descrits al cap´ıtol anterior s’observa que els resultats s´on id`entics (per tant es pot afirmar que aquesta nova implementaci´o no altera la correctesa de l’eina).
D’altra banda s’observen temps similar en la majoria dels casos (per tant es pot afirmar que aquesta nova implementaci´o no disminueix la efici`encia de l’eina).
Finalment s’observa un gran increment en la efici`encia de l’eina en la inst`ancia aleatoria4 que en les proves anteriors trigava una mitjana de 606,572 segons en resoldre’s mentre que amb la nova implementaci´o (gr`acies al cas trivial 2) triga una quantitat de temps immesurable (0,00 segons) ja que si ens fixem en l’expertesa dels docents en el tema que tracta el treball 8 podem veure que nom´es hi ha 4 docents que siguin experts en el tema tractat mentre que la mida dels tribunals en aquesta inst`ancia ´es 5, per tant ´es impossible construir un tribunal per la franja a que estigui assignat el treball 8 i llavors la inst`ancies ´es impossible d’assignar. Aquesta observa- ci´o es pot extrapolar a tot un grup d’inst`ancies que s´on trivialment insatrisfactibles per`o per les quals pot arribar a ser molt cost´os concloure’n la insatisfactibilitat simplement esperant que el solver explori totes les possibilitats per concloure que no n’hi ha cap que satisfaci les restriccions. Aix´ı doncs es considera que aquests canvis suposen un refinament del m`etode i una millora de l’eina.
Cap´ıtol 8
Estudi de l’impacte dels par`ametres
en l’efici`encia
En aquest cap´ıtol s’ha intentat fer una an`alisi dels resultats obtinguts al cap´ıtol de jocs de proves per tal d’intentar comprendre les raons que fan que algunes inst`ancies siguin molt m´es costoses de resoldre que unes altres.
Malauradament el problema consta de molts par`ametres i aix`o provoca que aquesta an`alisi sigui extremadament complexa de dura terme. Despr´es de realitzar alguns jocs de proves fent variar els diferents par`ametres mentre es fixaven la resta de par`ametres s’han observat algu- nes relacions obvies tals com que a majors disponibilitats m´es f`acil de de trobar assignacions que satisfacin les restriccions, el mateix ocorre amb les experteses i respecte als sol·lapaments s’observa l’oposat: com menys sol·lapaments menys cost´os ´es el problema. D’altra banda el nombre de docents i de treballs aix´ı com el nombre de franges i els m`axims de treballs per franja i de treballs per docents tamb´e afecten al cost de trobar una assignaci´o v`alida existint unes certes franges de relacions entre els par`ametres que afavoreixen que la inst`ancia sigui satisfac- tible, malauradament aquestes franges s´on molt fines i de seguida que es varia un par`ametre la inst`ancia es torna molt menys costosa de satisfer o insatisfactible, la qual cosa fa molt dif´ıcil d’estudiar la idiosincr`asia de les situacions en que el temps de c`alcul es dispara.
Despr´es d’un seguit de proves es conclou que aquesta an`alisi resulta extremadament complex i que escapa a l’abast d’aquest Treball de fi de grau i es decideix no presentar les inst`ancies provades ni els resultats per ser de poc inter`es i no aportar cap novetat rellevant i aix´ı per no carregar aquest document de dades poc concloents.
Cap´ıtol 9
Conclusions
En aquest cap´ıtol es presenten les conclusions extretes durant l’elaboraci´o del present Treball de Fi de Grau com a forma de donar-li una cloenda adient.
La primera conclusi´o que s’extreu de l’elaboraci´o d’aquest TFG ´es que la planificaci´o realit- zada al Cap´ıtol 1, tot i no captar de forma exacta el desenvolupament final del Treball, va ser adient i encertada en la mesura que pot ser-ho una planificaci´o realitzada a priori. Tamb´e es conclou que s’han assolit tots els objectius fixats en l’esmentada planificaci´o i fins i tot alguns nous objectius no planificats que s’han considerat interessants durant el Treball.
Respecte a la formalitzaci´o del problema a nivell te`oric es conclou que la descripci´o ´es realista respecte a la situaci´o que pret´en modelar i que el model te`oric presentat representa formalment i de forma correcta la descripci´o del problema. Es conclou tamb´e que els problemes descrits (tant el problema de c`alcul com el problema de decisi´o) s´on adients respecte a la formalitzaci´o descrita. D’altra banda respecte a l’an`alisi de complexitat del problema presentat es conclou que s’ha demostrat la NP-Completesa del problema de forma rigorosa recolzant la demostraci´o en els resultats existents en el camp de la teoria de la complexitat computacional.
Respecte a la formalitzaci´o del problema presentada al Cap´ıtol 4 es considera adient la tria del programari ECLiP Se CLP per dur a terme la implementaci´o de l’eina. Tamb´e es con- clou que la formalitzaci´o ha sigut fidel a la descripci´o i a la formalitzaci´o te`orica adaptant-la adientment quan ha estat necess`aria i raonant correctament tots els canvis introdu¨ıts. Es con- clou tamb´e que tota la implementaci´o ha sigut explicada d’una forma comprensible i raonada i que la implementaci´o modular de l’eina permet el seu ´us i re-aprofitament en problemes similars. Pel que fa al generador d’inst`ancies presentat en aquest Treball es conclou que tot i ser un codi senzill compleix les expectatives i la funci´o que se n’esperava a l’hora que t´e una implemen- taci´o prou modular per permetre utilitzar-lo com a llibreria externa en futures an`alisis del l’eina. Respecte als jocs de proves es considera que s´on adients per tal de comprovar la correctesa de la formalitzaci´o del problema i la implementaci´o de l’eina. D’altra banda es conclou que no s´on suficients per poder estudiar de forma pr`actica i en profunditat les interaccions entre els par`ametres i la influ`encia d’aquests en la satisfactibilitat de les inst`ancies, malauradament aquest objectiu no estava planificat i escapa als objectius del Treball, per tant es pot concloure que en el sentit de l’abast del TFG els jocs de proves s´on adients.
56 CAP´ITOL 9. CONCLUSIONS
D’altra banda pel que fa al refinament del m`etode es considera que els refinaments imple- mentats obeeixen a q¨uestions que a nivell te`oric milloren l’efici`encia del problema i que aquest refinament ´es evident a nivell conceptual i que queda reflectit en els jocs de proves adequadament. Finalment es conclou que globalment el present Treball de Final de Grau ha assolit tots els objectius marcats a la planificaci´o de forma adient aix´ı com tamb´e alguns objectius no marcats inicialment per`o considerats escaients durant el desenvolupament i ha aportat una an`alisi te`oric encertat del problema presentat aix´ı com desenvolupat una eina correcta per la resoluci´o del mateix.
Glossari
• TFG: Treball final de Grau.
• TFM: Treball final de M`aster.
• M`etode: qualsevol eina, tecnologia o llibreria ´util per tractar el problema.
• Eina: el producte final d’aquest Treball.
• NP: Classe nondeterministic polynomial time.
• NP-C: subclasse de NP anomenada NP-Complet.
• 3DM: 3-dimensional matching, problema NP-C.
• ECLiP Se CLP: Llenguatge de programaci´o fet servir per codificar el problema.
• ic: llibreria de ECLiP Se CLP feta servir per codificar el problema.
• ic XXX: llibreries addicionals deECLiP Se CLP fetes servir per la codificaci´o del proble- ma.
• Solver: software dissenyat per trobar assignacions v`alides per les variables de la inst`ancia d’un problema tenint en consideraci´o les restriccions del problema.
Fitxers adjunts
• Planificaci´o.pdf: Pla de treball per la realitzaci´o de tot el Treball.
• Eina.ecl: codi en ECLiP Se CLP per resoldre inst`ancies del problema i conjunt de jocs de proves.
• Generador.java: codi en Java del generador aleatori d’inst`ancies v`alides.
Bibliografia
[1] TFGs a la UOC (24/9/2019): https://estudios.uoc.edu/es/tfg-tfm [2] TFGs al Grau en Enginyeria Inform`atica (24/9/2019):
https://estudios.uoc.edu/es/grados/ingenieria-informatica/plan-estudios [3] Garey, M. and D. Johnson. (1979). Computers and Intractability; A Guide to the Theory of NP-Completeness. ISBN 0-7167-1045-5
[4] April Lovelace. ”On the Complexity of Scheduling University Courses”. Master Thesis, California Polythecnic State University, San Luis Obispo, 2010.
https://doi.org/10.15368/theses.2010.16 [5] http://eclipseclp.org/
[6] https://www.eclipseclp.org/doc/bips/lib/ic/index.html
Ap`endix A
Manuals d’´us
En aquest ap`endix es presenten els manuals d’´us de les dues eines desenvolupades en aquest TFG: d’una banda el Generador, per generar aleat`oriament inst`ancies v`alides del problema i d’altra banda l’eina per trobar assignacions v`alides per una inst`ancia.
A.1
Manual d’´us del Generador
El fitxerGenerador.java inclou la classeGenerador que est`a composada per una funci´oGenerar
que genera una inst`ancia v`alida a partir dels seg¨uents par`ametres d’entrada: 1 S t r i n g F i t x ; 2 S t r i n g N o m I n s t a n c i a ; 3 int N o m b r e F r a n g e s ; 4 int N o m b r e P r o j e c t e s ; 5 int N o m b r e D o c e n t ; 6 int M i d a T r i b u n a l ; 7 int M a x T r e b a l l s x F r a n j ; 8 int M a x T r e b a l l s x D o c e n t 9 10 int p r o b D o c e n t D i s p = 6 5 ; 11 int p r o b T r e b a l l D i s p = 1 0 0 ; 12 int p r o b S o l a p =0; 13 int p r o b E x p = 6 5 ; 14 l o n g L l a v o r = 0;
Aquests par`ametres segueixen el funcionament descrit al Cap´ıtol 4. D’altra banda la classe inclou una funci´o main que crida a la funci´o Genera amb uns par`ametres fixats i algunes funcions auxiliars per gestionar la generaci´o de nombres pseudo-aleatoris.
En cas de voler fer servir el generador d’inst`ancies per generar una ´unica inst`ancia tan sols cal editar els valors definits a la funci´o main, compilar el codi incl´os al fitxer Generador.java i executar-lo. Aquest procediment es pot dur a terme amb les comandes:
1 j a v a c G e n e r a d o r . j a v a
2 j a v a G e n e r a d o r
D’altra banda tamb´e es pot desenvolupar un codi en Java i cridar al la funci´oGenerar amb els par`ametres indicats per tal de generar totes les inst`ancies que es considerin oportunes.
Com a observaci´o final ´es rellevant remarcar que ´es important que el fitxerEina.ecl estigui al mateix directori des del que s’executa el codi, d’aquesta forma la inst`ancia generada ser`a desada al final del fitxer i ser`a m´es senzill d’executar l’eina sobre la inst`ancia.
64 AP `ENDIX A. MANUALS D’ ´US