76
Defensa síncrona de TFGs: un problema de planificació Marc Fernández i Sánchez Grau en Enginyeria Informàtica TFG-Compiladors Robert Clarisó Viladrosa Gener del 2020

Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Defensa síncrona de TFGs: un problema de planificació

Marc Fernández i Sánchez Grau en Enginyeria Informàtica TFG-Compiladors

Robert Clarisó Viladrosa

Gener del 2020

Page 2: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Copyright © 2020 Marc Fernández Sánchez. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

Page 3: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

i

FITXA DEL TREBALL FINAL

Títol del treball: Defensa síncrona de TFGs: un problema de planificació

Nom de l’autor: Marc Fernández i Sánchez

Nom del consultor/a: Robert Clarisó Viladrosa

Nom del PRA: Robert Clarisó Viladrosa

Data de lliurament (mm/aaaa): 01/2020

Titulació o programa: Grau en Enginyeria Informàtica

Àrea del Treball Final: TFG-Compiladors

Idioma del treball: Català

Paraules clau Planificació, NP-Completesa, mètodes formals

Resum del Treball (màxim 250 paraules): Amb la finalitat, context d’aplicació, metodologia, resultats i conclusions del treball

La finalitat d’aquest Treball és estudiar teòricament i construir una eina per resoldre un problema realista en l’àmbit de la gestió d’un sistema de planificació de defenses síncrones de de Treballs de Final de Grau.

Aquest problema és interessant en el context de la planificació de TFGs, però els resultats presentats son fàcilment extrapolables a altres àmbits de la planificació d’horaris.

Per tal de de dur a terme aquesta tasca, inicialment es realitza una descripció del problema a tractar i a partir d’aquesta descripció se’n fa un model teòric.

Disposant del model teòric, s’analitza la complexitat computacional del problema com a informació fonamental per a desenvolupar una eina que el pugui resoldre eficientment.

Un cop esclarida la complexitat computacional del problema es desenvolupa una eina per resoldre’l així com un generador d’instàncies aleatòries del problema per tal de dur a terme els jocs de proves escaients.

Tot seguit es duen a terme els jocs de proves oportuns sobre la eina desenvolupada i es comprova que l’eina es correcta en la resolució del problema.

Finalment s’implementen les millores convenients sobre l’eina per millorar-ne el rendiment.

Com a conclusions del Treball s’obté la NP-Completesa del problema demostrada i la convicció que l’eina desenvolupada el resol correctament.

Page 4: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

ii

Abstract (in English, 250 words or less):

The goal for this TFG is to theoretical study and tool develop in order to solve a

realistic problem in the scope of a scheduling system for the synchronous

defense of TFGs.

This problem is interesting in the ambit of TFGs scheduling, but the results

shown are easily extrapolable to other scheduling problems.

In other to achieve this goal in first place a description of the problem is shown

and starting with this description a theoretical model is done.

Based on this theoretical model the computational complexity of the problem is

studied as a basic information in order to develop a tool for efficiently solve it.

Once the computational complexity is clear a tool is developed for solving it,

also a random instance generator is developed in order to test the tool.

The next step is to test the tool and check that the tool solves the problem

correctly.

Finally some improvements are applied in order to improve the performing of

the tool.

The conclusions for this TFG are the fact that the problem is NP-Complete and

that the tool solves the problem correctly.

Page 5: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Agraıments

Com a inici de la memoria del present Treball de Final de Grau es vol agrair el suport a totesles persones que han fet possible el desenvolupament del mateix i la gran satisfaccio que obtel’autor del resultat.

En primer lloc, i molt important, agrair la guia i paciencia al tutor d’aquest Treball, en RobertClariso Viladrosa . Sense ell res d’aixo hagues estat possible.

D’altra banda agrair als companys i companyes de la UOC que han donat suport durant eldesenvolupament d’aquest TFG, el seu recolzament ha sigut vital en els moments difıcils.

Finalment, agrair als amics i amigues a Lisboa, i fora, per comprendre les tardes i dies sen-cers de reclusio i pel suport immesurable, aixı com per les bones estones que donen forca peremprendre amb il·lusio una nova comesa.

iii

Page 6: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs
Page 7: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Index

Index de figures vii

1 Introduccio 11.1 Context i justificacio del Treball . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Objectius del Treball . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Enfocament i metode seguit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Planificacio del Treball . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5 Sumari de productes obtinguts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.6 Recursos emprats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.7 Descripcio dels altres capıtols de la memoria . . . . . . . . . . . . . . . . . . . . . 5

2 Presentacio del problema 72.1 Presentacio model formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Presentacio problema de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3 Presentacio problema de decisio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 Analisi de complexitat 113.1 Analisi d’instancies i testimonis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Demostracio pertinenca a NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3 Demostracio NP-Completesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4 Formalitzacio del problema 174.1 Definicio de les instancies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.2 Funcio resol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.2.1 Lectura d’instancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.2.2 Variables del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.2.3 Definicio de restriccions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2.4 Resolucio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2.5 Mostrar resultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.3 Funcio imprimeix resultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5 Generador d’instancies 27

6 Joc de proves 296.1 Joc de proves per restriccions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6.1.1 Franges buides i Restriccio 2 . . . . . . . . . . . . . . . . . . . . . . . . . 316.1.2 Restriccio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326.1.3 Restriccio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336.1.4 Restriccio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356.1.5 Restriccio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

v

Page 8: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.1.6 Restriccio 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.1.7 Restriccio 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6.2 Joc de proves global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.2.1 Aleatoria1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.2.2 Aleatoria2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.2.3 Aleatoria3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.2.4 Aleatoria4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7 Refinament de l’eina 497.1 Cas trivial 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.2 Cas trivial 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507.3 Cas trivial 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507.4 Cas trivial 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507.5 Cas trivial 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

8 Estudi de l’impacte dels parametres en l’eficiencia 53

9 Conclusions 55

Glossari 57

Fitxer adjunts 58

Bibliografia 60

A Manuals d’us 63A.1 Manual d’us del Generador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63A.2 Manual d’us de l’eina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Page 9: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Index de figures

1.1 Diagrama de Gantt per al Treball . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1 Instancia 3DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2 Transformacio 3DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

6.1 Temps d’execucio aleatoria1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.2 Testimoni aleatoria2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446.3 Temps d’execucio aleatoria2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446.4 Testimoni aleatoria3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.5 Temps d’execucio aleatoria3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.6 Temps d’execucio aleatoria4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

A.1 Compilacio del codi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64A.2 Execucio i resultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65A.3 Eina des de consola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66A.4 Resolucio des de consola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

vii

Page 10: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs
Page 11: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Capıtol 1

Introduccio

En aquest capıtol es presentara una introduccio al contingut i objectius d’aquest Treball de Fi deGrau aixı com l’estrategia a seguir per aconseguir els objectius i una planificacio per assolir-los.

1.1 Context i justificacio del Treball

La UOC es una universitat a distancia, aquesta es una de les seves principals idiosincrasies i larao per la qual molta gent la tria. Ara be, aquest fet genera diferencies significatives en certsmecanismes d’avaluacio com es el cas de la defensa dels Treballs de final de Grau o Treballs definal de Master. En aquests moments aquest problema s’esta resolent mitjancant una defensaasıncrona [1]. En particular en el Grau en Enginyeria Informatica la defensa es realitza mit-jancant una vıdeo-presentacio [2] previament gravada per la persona que defensa i visualitzadade forma asıncrona per les persones integrants del tribunal de defensa. Aquesta solucio tot iser una funcional i acceptable esta forca lluny de la forma “tradicional” de defensar els TFG deles universitats presencials. En aquest format s’avalua tambe la profunditat de coneixement dela persona que defensa per la naturalitat amb que es capac de presentar el tema en directe omitjancant preguntes que s’han de respondre a l’instant. Ates que la tecnologia actual permetl’enviament de vıdeo i audio de forma instantania, a nivell tecnologic seria totalment viable ladefensa dels TFG de forma sıncrona mitjancant una plataforma de vıdeo en directe. Aquestaplataforma permetria reproduir la mateixa formulacio de les defenses “tradicionals” pero sensenecessitar que les persones implicades coincidissin en un espai fısic i per tant mantindria el tretdistintiu de la UOC. D’altra banda, mes enlla de la concurrencia fısica, les persones implicadestambe han de coincidir en una finestra temporal per tal de poder dur a terme aquesta hipoteticadefensa “en directe”. Aquest no es ni molt menys un problema menor, ja que hi ha un vo-lum important de persones implicades i les persones implicades acostumen a tenir restriccionstemporals importants (tant el professorat que sovint es titular en alguna universitat presencial,com l’alumnat que sovint te una feina i/o carregues familiars). Aixı doncs mes enlla del reptetecnologic es clar que existeix un problema de planificacio al voltant de com assignar les personesimplicades en el tribunal i les franges horaries de la forma mes convenient possible. Ates queels problemes de planificacio no son problemes trivials en absolut, es necessari un estudi acuratdel problema per tal de poder generar un metode eficient per realitzar aquestes assignacions.

1.2 Objectius del Treball

L’objectiu principal del Treball es sintetitzar un metode que rebent les condicions inicials de laplanificacio a realitzar, generi una calendaritzacio eficient.

1

Page 12: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

2 CAPITOL 1. INTRODUCCIO

Un objectiu parcial imprescindible per poder assolir l’objectiu principal del Treball es for-malitzar aquest problema concret per tal de poder-lo atacar amb rigor.

Un altre objectiu parcial pero molt interessant es l’estudi dels problemes de planificacio, ladificultat que comporta aquests tipus de problemes aixı com quines son les diferents estrategiesque es poden fer servir per construir una solucio a aquest tipus de problemes.

Finalment un darrer objectiu es explorar els diferents metodes que existeixen per atacarproblemes d’aquest tipus, entendre quina es l’aproximacio que fa servir cadascun i triar el o elsque millor s’adaptin a les necessitats. En cas que se’n triı mes d’un caldra fer tambe una analisidels resultats per triar-ne el mes adient.

1.3 Enfocament i metode seguit

L’estrategia triada per a desenvolupar aquest projecte es basara en un estudi teoric del problemaa tractar recolzat en estudis generics al voltant dels problemes de planificacio. Tot seguit es duraa terme una analisi dels metodes existents per a tractar problemes d’aquests tipus, aixı com delsdiferents llenguatges que els metodes fan servir per formalitzar el problema. Un cop realitzataquesta analisi es triara el llenguatge o llenguatges i l’instrument o instruments que es considerinmes adients per a atacar el problema i es dura a terme la construccio de l’eina per resoldre elproblema recolzat en les tecnologies triades. Finalment es dura a terme una valoracio de lesdiferents solucions obtingudes.

1.4 Planificacio del Treball

La planificacio del Treball esta en aquest cas relacionada directament amb l’estrategia a seguir.S’aproxima una dedicacio setmanal de 20h repartides en 5 dies cada setmana. Tenint en consi-deracio aquesta dedicacio es duu a terme la planificacio amb les seguents durades (cal considerarque tota la planificacio inclou una reserva de temps per redaccio de la part de la memoria rela-cionada amb cada etapa):

0.- 20/09-02/10 Pla de treball (9 dies): Primera etapa consistent en planificar el desenvolu-pament del treball, l’abast que tindra i les etapes necessaries per cobrir-lo. El producte d’aquestaetapa es el pla de treball presentat en aquest capıtol.

1.- 03/10-21/10 Estudi teoric del problema (12 dies): Aquesta fase comencara un cop fina-litzada la planificacio del treball i consisteix en entendre en profunditat el problema, estudiarla dificultat intrınseca del problema aixı com les possibles dificultats que poden sorgir. Coma producte d’aquesta etapa obtindrem una nocio de la complexitat del problema aixı com unadescripcio explicita, formal i detallada del problema.

1.1- 03/10-10/10 Descripcio detallada del problema (6 dies): El primer pas en aquest tre-ball ha de ser comprendre la idiosincrasia del problema a tractar i aixı poder definir-loamb precisio.

1.2 11/10-21/10 Analisi de complexitat (6 dies): un cop esta ben definit el problema atractar es pot fer una analisi de la complexitat del mateix per comprendre quin tipusde problema s’esta enfrontant i aixı poder comprendre les limitacions teoriques quant aeficiencia o decibilitat.

Page 13: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

1.4. PLANIFICACIO DEL TREBALL 3

24/10 En aquest punt es produira el primer lliurament que incloura tota la primera etapa relaci-onada amb la part teorica del Treball. S’han reservat 2 dies per l’elaboracio d’aquest lliuramentque, com la redaccio de memoria esta contemplada en la planificacio de cada etapa seran suficient.

2.- 25/10-11/11 Estudi de metodes existents: Aquesta etapa consisteix en analitzar quinsson els llenguatges i els metodes existents per a resoldre problemes com el descrit a la primeraetapa i quines avantatges i inconvenients te cadascun d’ells. Com a producte d’aquesta etapaobtindrem la decisio de quin metode o metodes i quin llenguatge o llenguatges farem servir pertal de atacar el problema.

2.1 25/10-05/11 Analisi i tria de llenguatges i metodes existents (8 dies): consisteix en unarecerca per presentar els metodes existents que siguin compatibles amb el problema i quinsllenguatges fan servir aquests metodes. Un cop feta aquesta recerca es triaran els mes con-venients per construir l’eina.

2.2 06/11-11/11 Aprenentatge del llenguatge/s i el metode/s (4 dies): un cop triat elsmetodes mes adients per atacar el problema es necessari comprendre’n el funcionament ila forma d’usar-los per tal de poder-los emprar.

3.- 12/11-04/12 Construccio de l’eina: Durant aquesta etapa es dura a terme la formalitza-cio del problema en el llenguatge o llenguatges triats en l’etapa anterior i es construira l’einaaplicant els metodes seleccionats per a resoldre el problema descrit. Com a producte d’aquestaetapa s’obtindra l’eina proposada per a resoldre el problema descrit.

3.1 12/11-25/11 Formalitzacio del problema (10 dies): un cop triat el llenguatge a ferservir i l’eina cal desenvolupar la part de l’eina que donades les condicions inicials delproblema en deriva una descripcio del problema en el llenguatge de l’eina.

3.2 26/11-04/12 Aplicar els metodes triats (7 dies): tenint el problema ja formalitzat enel llenguatge adient es poden finalment aplicar els metodes triats per tal de construir lessolucions.

04/12 En aquest punt es fara el segon lliurament incloent fins a l’etapa 3.1 i per tant es presen-tara en aquesta segona entrega quina sera la implementacio de l’eina, tenint ja triat el metode,el llenguatge i presentant el problema formalitzat en el llenguatge triat. Un cop mes, s’hanreservat 2 dies per l’elaboracio d’aquest lliurament ja que la documentacio es fara a cada etapa iper tant la tasca de cara al lliurament sera nomes la de presentar-ho tot d’una forma clara i unida.

4.- 05/12-30/12 Analisi de les solucions: En l’etapa final s’analitzaran les diferents solucionsconstruıdes durant l’etapa anterior. Com a producte d’aquesta ultima etapa i per tant com aproducte ultim del Treball s’obtindra una eina eficient per a generar solucions per a problemescom el descrit en la primera etapa.

4.1 05/12-12/12 Construccio del conjunt de dades (6 dies): com a primer pas per tal depoder experimentar amb el metode construıt, es desenvolupara un metode per generarconjunts d’exemples d’instancies del problema descrit per tal de poder provar el metodegenerat en diferents situacions.

4.2 13/12-24/12 Analisi de les solucions obtingudes (8 dies): partint del conjunt d’instancies

Page 14: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

4 CAPITOL 1. INTRODUCCIO

generat a l’etapa anterior es duran a terme una serie d’experiments per tal de poder validarla correctesa del metode i avaluar-ne l’optimalitat.

4.3 25/12-30/12 Refinament del metode (4 dies): un cop realitzades totes les proves consi-derades necessaries caldra incorporar al metode les possibles millores que s’hagin observaten l’analisi.

31/12-03/01 Imprevistos (4 dies): En aquest punt de la planificacio es reserven 3 dies com afactor de seguretat per als possibles imprevistos que hagin pogut sorgir durant el desenvolupa-ment del treball.

5.- 03/01-08/01 Preparacio de la memoria (4 dies): malgrat que en totes les etapes d’aques-ta planificacio hi ha reservat temps per a documentar el que s’ha realitzat durant l’etapa, esnecessari reservar una ultima etapa per donar a tot el text un sentit mes global i preparar-loper a l’entrega final. El producte d’aquesta etapa sera la memoria del TFG ja finalitzada.

6.- 09/01-24/01 Preparacio de la defensa (12 dies): tenint ja la memoria presentada i pertant la feina de desenvolupament finalitzada, el seguent pas sera preparar la defensa del TFG.El producte d’aquesta etapa sera la propia defensa virtual.

7.- 27/01-31/01 Resposta preguntes del tribunal (5 dies): a partir de la defensa es probableque al tribunal li sorgeixin algunes preguntes a formular. Amb l’objectiu de respondre a aquestespreguntes es reserva tambe una etapa. El producte d’aquesta etapa sera per tant la resposta ales preguntes que el tribunal formuli sobre el TFG o sobre la defensa.

Finalment a fi de fer aquesta planificacio mes clara s’inclou un diagrama de Gantt represen-tant la planificacio exposada. A la figura 1.1 es presenta el diagrama i d’altra banda s’adjuntaun informe complert de la planificacio amb el nom Planificacio.pdf.

Page 15: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

1.5. SUMARI DE PRODUCTES OBTINGUTS 5

1.5 Sumari de productes obtinguts

• Una descripcio detallada del problema.

• Una formalitzacio teorica del problema aixı com una demostracio de la seva complexitatcomputacional.

• Una eina que resol correctament el problema.

• Un metode per generar automaticament instancies del problema.

• Una analisi de la correctesa i rendiment de l’eina.

1.6 Recursos emprats

Pel desenvolupament d’aquest Treball s’han fet servir els recursos i eines introduıts en aquestapartat. Cal entendre tots els resultats presentats en el context de les eines usades i els codispresentats en el context de les versions del programari usades.

• PC: Windows 10 64 bits, Intel Core i7-8750 CPU @ 2.20 GHz (12 CPUs), memoria RAM8192MB.

• ECLiPSe CLP versio 7.0 #50 (x86 64 nt).

• Java versio 13 2019-09-17.

• Java(TM) SE Runtime Environment (build 13+33).

1.7 Descripcio dels altres capıtols de la memoria

Aquesta memoria consta dels seguents capıtols:

• Presentacio del problema: en aquest capıtol es presentara el problema i s’oferira una for-malitzacio teorica del mateix.

• Analisi de complexitat: en aquest capıtol es dura a terme l’estudi i demostracio de lacomplexitat computacional del problema formalitzat al capıtol anterior.

• Formalitzacio del problema: en aquest capıtol es formalitzara el problema en un llenguatgede programacio i es desenvolupara l’eina per resoldre’l.

• Generador d’instancies: en aquest capıtol es presentara una eina per generar instanciesaleatories i correctes del problema.

• Joc de proves: en aquest capıtol es duran a terme els jocs de proves adients per l’eina i escomprovara la correctesa de la mateixa.

• Refinament de l’eina: en aquest capıtol es presentaran els canvis oportuns per millorarl’eficiencia de l’eina.

• Estudi de l’impacte dels parametres en l’eficiencia: en aquest capıtol es presentara un es-tudi de l’impacte dels parametres en l’eficiencia de l’eina i en el cost de resolucio d’unainstancia.

• Conclusions: en aquest ultim capıtol es presentaran les conclusions d’aquest Treball.

Page 16: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6 CAPITOL 1. INTRODUCCIO

Figura 1.1: Diagrama de Gantt per al Treball

Page 17: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Capıtol 2

Presentacio del problema

En aquest capıtol es fara una presentacio en detall del problema, primerament es mostrara elmodel construıt per formalitzar la situacio i tot seguit es presentaran els 2 problemes construıtsfent servir el model. D’una banda la versio de calcul del problema, que preten generar unasolucio per a cada instancia del problema i d’altra banda la versio de decisio que preten decidirsi existeix una solucio o no per a cada instancia del problema.

2.1 Presentacio model formal

El problema tractat en aquest Treball consisteix en com realitzar la planificacio de les defensesdels TFGs del Grau en Enginyeria Informatica de la UOC. Per tal de tractar aquest problemacal primer construir el model del problema, per aixo es tindran en consideracio els parametresrellevants del problema:

Un nombre de franges en que es poden presentar els treballs (i la informacio de quines frangescoincideixen en el temps); un nombre de treballs a presentar (i la informacio per a cada treballsobre a quina area del coneixement pertany i sobre la disponibilitat temporal de l’alumne queel presenta); un nombre de docents (i per a cada docent la informacio sobre en quines arees esexpert i sobre la disponibilitat temporal d’aquest per ser tribunal); el nombre de docents quecomposen un tribunal; el nombre maxim de treballs dels que un docent pot ser tribunal i elnombre maxim de treballs que es poden presentar en cada franja.

Tenint aquests parametres el problema consisteix en generar una assignacio de docents a cadafranja i una assignacio de franja a cada treball seguint una serie de restriccions que un cop mesmodelen la realitat del problema: tots els treballs han d’estar assignats a una franja i nomes auna, els membres de tots els tribunals han de ser diferents, cal respectar la disponibilitat delsdocents i dels alumnes, cal respectar els maxims per cada franja i per cada docent, cap docentpot formar part d’un tribunal si en aquella franja es presenta un treball d’una area en que noes expert, cap docent pot ser membre de dos tribunals si pertanyen a franges que coincideixenen el temps. Considerant aquesta descripcio mes precisa del problema es construeix el seguentmodel formal:

7

Page 18: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

8 CAPITOL 2. PRESENTACIO DEL PROBLEMA

Parametres:

· F ∈ N+ : nombre de franges/tribunals.

· T ∈ N+ : nombre de treballs/alumnes.

· D ∈ N+ : nombre de docents.

· N ∈ {0...D} : nombre de docents per tribunal.

·MF ∈ {0...T} : nombre maxim de treballs per franja.

·MT ∈ {0...T} : nombre maxim de treballs dels que pot ser tribunalun docent.

· disdi,j ∈ {0, 1} : disponibilitat del docent i− essim durant la franjaj − essima.

i∈ {1...D}j∈ {1...F}

· disti,j ∈ {0, 1} : disponibilitat de l′ alumne i− essim durant la franjaj − essima.

i∈ {1...T}j∈ {1...F}

· solapi,j ∈ {0, 1} : la franja i− essima se sol · lapa amb la franjaj − essima.

i∈ {1...F}j∈ {1...F}

· expi,j ∈ {0, 1} : el docent i− essim es expert en el tema que tracta el treballj − essim.

i∈ {1...D}j∈ {1...T}

Variables:

· trebi : Franja de defensa del treball i− essim

· i ∈ {1...T}

· tribi,j : j − essim membre del tribunal de la franja i− essima

· i ∈ {1...F}· j ∈ {1...N}

Page 19: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

2.1. PRESENTACIO MODEL FORMAL 9

Dominis:

· trebi ∈ {1...F}

· tribi,j ∈ {1...D}

Restriccions:

1. Cada treball ha d’estar assignat exactament a una franja:

Per construccio se satisfara automaticament

2. Els membres del tribunal son diferents:{∀i ∈ {1...F}, ∀j ∈ {1...N}, ∀j′ ∈ {1...N} j 6= j′ |

tribi,j 6= tribi,j′}

3. Cap docent no pot estar assignat a una franja en que no estiguidisponible:{∀i ∈ {1...F}, ∀j ∈ {1...N} | disdtribi,j ,trebi = 1

}4. Cap alumne no pot estar assignat a una franja en que no estigui

disponible:{∀i ∈ {1...T} | disti,trebi = 1

}5. Cap franja no pot tenir mes treballs que el maxim fixat:{

∀f ∈ {1...F} | #{i ∈ {1..T}|trebi = f} 6 MF}

6. Cap docent no pot tenir mes treballs assignats que el maxim fixat:{∀d ∈ {1...D} | #{i ∈ {1..F}, | ∃j ∈ {1..N} : tribi,j = d} 6 MT

}7. Els membres de tribunals de franges sol·lapades han de ser

diferents:{∀j ∈ {1...F}, ∀j′ ∈ {1...F} j 6= j′ | solapj,j′ = 1⇒

∀i ∈ {1...N}, ∀i′ ∈ {1...N} tribi,j 6= tribi′j′}

8. Tots els membres dels tribunals d’una franja han de ser experts enel tema dels treballs exposats:{∀i ∈ {1...T}, ∀j ∈ {1...N} | trebi = k ⇒ exptribk,j ,i = 1

}

Page 20: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

10 CAPITOL 2. PRESENTACIO DEL PROBLEMA

2.2 Presentacio problema de calcul

Partint de la modelitzacio del problema presentada a l’apartat anterior, es defineix el problemade calcul com, rebent la seguent entrada (i.e. una instancia del problema):

e = (F, T,D,N,MF,MT, disd, dist, solap, exp)

e ∈{N6 × {BD×F } × {BT×F } × {BF×F } × {BD×T }

}amb B = {0, 1}

Generar una sortida:

t = (trib, treb) ∈{{NF×N} × NT

}Que respecti totes les restriccions definides.

2.3 Presentacio problema de decisio

D’altra banda tambe podem definir un problema de decisio a partir del model. Aquest es definiracom, rebent la seguent entrada:

e = (F, T,D,N,MF,MT, disd, dist, solap, exp)

e ∈{N6 × {BD×F } × {BT×F } × {BF×F } × {BD×T }

}amb B = {0, 1}

Generar una sortida binaria que sera afirmativa si existeix un:

t = (trib, treb) ∈{{NF×N} × NT

}Que respecti totes les restriccions definides i negativa en cas que no existeixi.

Page 21: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Capıtol 3

Analisi de complexitat

En aquest capıtol es dura a terme una analisi de la complexitat del problema tractat durant elTFG. Aquesta analisi servira com a referencia teorica per tal de poder analitzar les estrategiesper atacar el problema tenint present la seva dificultat. L’analisi constara d’una primera part enque es tractaran les mides de l’entrada i la sortida com a punt de partida necessari per l’estudide la complexitat. Tot seguit es presentara la prova de que en la versio de decisio el problema esNP-Complet. Seguint el resultat de (pagina 45 de [3]) per demostrar la NP-Completesa caldracomprovar que:

(a) El problema es NP.

(b) Existeix un problema a NP-C que es transformable en temps polinomic al nostre problemai aquesta transformacio conserva els resultats.

3.1 Analisi d’instancies i testimonis

En primer lloc analitzarem quin es l’espai que ocupa una instancia del problema, per tant l’espaique ocupa una entrada per al nostre problema de calcul. Tot seguit es fara un estudi analeg pera la sortida del problema de calcul.

Prenent com a entrada la seguent instancia del problema de calcul:

e = (F, T,D,N,MF,MT, disd, dist, solap, exp)

e ∈{N6 × {BD×F } × {BT×F } × {BF×F } × {BD×T }

}amb B = {0, 1}

es veu que el nombre d’elements de la entrada sera: 6 + DF + TF + F 2 + DT que pertanya O(DF +TF +F 2 +DT ) i aquest el podem afitar per O(K2) amb K = max{F,D, T,N}. Aixıdoncs podem afirmar que la mida de l’entrada pertany a O(K2).

Respecte a la sortida del problema de calcul (que esdevindra el testimoni per al problemade decisio), definint-la de la seguent forma:

t = (trib, treb) ∈{{NF×N} × NT

}es veu que el nombre d’elements de la sortida del problema de calcul (i per tant tambe deltestimoni per al problema de decisio) sera: F ×N + T que pertany a O(K2).

11

Page 22: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

12 CAPITOL 3. ANALISI DE COMPLEXITAT

3.2 Demostracio pertinenca a NP

Per demostrar que el nostre problema en la seva versio de decisio esta en NP, seguint (pagina28 de [3]), necessitem veure que :

-Un testimoni per al nostre problema de decisio te mida polinomica respecte a la mida del’entrada.

-Donat un testimoni podem comprovar en temps polinomic respecte a la mida de l’entradasi es tracta d’una resposta valida o no.

Per tal de demostrar aquestes dues afirmacions primerament definirem com sera un testimoniper al nostre problema en la seva versio de decisio. Prendrem com a testimoni un t = (trib, treb)tal i com s’ha definit per la sortida del problema en la seva versio de calcul.

Per demostrar la primera condicio recordem que tal i com s’ha calculat a l’apartat anterioraquest t te mida O(K2) i com l’entrada del problema te tambe mida O(K2), llavors podemafirmar que el testimoni te mida lineal respecte a la mida de l’entrada i per tant polinomica.Aixı doncs la primera condicio queda provada.

Respecte a la segona condicio i partint del testimoni definir a l’apartat anterior, calcularemel cost de comprovar si el testimoni rebut satisfa totes les restriccions:

1. Quant a la primera restriccio tal i com es va detallar en la formalitzacio per la propiaconstruccio del testimoni se satisfa automaticament. Aixı doncs no es necessari realitzar capcomprovacio.

2. Per comprovar que tots els membres de tots els tribunals son diferents recorrerem cadafranja de trib (cost O(T )) i per cada franja (es a dir els tribi,∗) ordenarem els membres del tri-bunal de la franja i farem un recorregut per comprovar que son diferents (comprovant que totsson diferents del seu anterior). Aixı doncs cada franja tindra un cost de O(NlogN + N) i pertant tota la comprovacio tindra un cost de O(T (NlogN + N)), per tant O(TNlogN) ∈ O(K3).

3. Per la tercera restriccio hem de comprovar que cap docent esta assignat a una franja enque no esta disponible. Per realitzar aquesta comprovacio simplement hem de recorrer trib i pera cada membre d = tribi,j de cada tribunal comprovar que esta disponible, es a dir disdd,i = 1.Aquest recorregut tindra un cost de O(FN) i per tant O(K2).

4. La quarta restriccio es analoga a la tercera pero comprovant la disponibilitat dels alum-nes. Per tant nomes cal recorrer treb i per a cada treball t = trebi comprovar que disti,t = 1.Aquesta comprovacio prendra per tant un cost de O(T ), per tant O(K).

5. Per comprovar que cap franja te mes treballs que el maxim MF i per tant comprovarla cinquena restriccio, crearem un vector V de mida T inicialitzat a 0 (aixo tindra un cost deO(T )) i tot seguit farem un recorregut per treb (amb un cost de O(T )). A cada t = trebiincrementarem en 1 el valor de la posicio t del vector creat, per tant farem Vi+ = 1, si en elmoment d’incrementar algun valor aquest esdeve major a MF la restriccio s’haura violat. Enaltre cas aquesta comprovacio tindra un cost de O(2T ) i per tant O(K).

Page 23: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

3.3. DEMOSTRACIO NP-COMPLETESA 13

6. Per comprovar la sisena restriccio, es a dir, que cap docent te assignats mes tribunals queel maxim MT durem a terme un proces similar al de la restriccio 5. Crearem un vector V demida D inicialitzat a 0 (aixo tindra un cost de O(D)) i tot seguit farem un recorregut per trib(amb un cost de O(FN)). Per a cada d = tribi,j del recorregut farem Vtribi,j+ = 1, si en elmoment d’incrementar algun valor esdeve major a MT la restriccio s’haura violat, en altre casaquesta comprovacio tindra un cost de O(D + FN) i per tant O(K2).

7. Per comprovar que el testimoni satisfa la setena restriccio hem de revisar que no hi hacap docent assignat a dues franges que se sol·lapen. Per comprovar-ho recorrerem solap (costde O(F 2))i per cada element solapi,j = 1 realitzarem el seguent procediment: prendrem les filesi i j de trib, per tant els tribi,∗ i tribj, ∗ i els comprovarem tots amb tots. Aquesta comprovaciotindra un cost de O(N2) i com aquesta comprovacio es realitzara a cada pas el cost total serade O(F 2N2) i per tant O(K4).

8. Finalment per comprovar que tots els membres del tribunal d’una franja son expertsen els temes dels treballs exposats en la franja, i per tant comprovar la vuitena restriccio,farem un recorregut sobre treb (amb cost de O(T )) i per a cada treball i comprovarem queels D docents tribtrebi,∗ son expert en el tema que tracta el treball i, per tant comprovaremque exptribtrebi ,i = 1. Aquesta segona comprovacio per a cada treball tindra un cost de O(D)

i per tant tota la comprovacio de la vuitena restriccio tindra un cost de O(TD), i per tant O(K2).

El cost total de comprovar que un testimoni respecta totes les restriccions sera la suma delcost de la comprovacio de cadascuna de les restriccions, per tant: O(K3) + O(K2) + O(K) +O(K) + O(K2) + O(K4) + O(K2) aixo suma un total de O(K4 + K3 + 3K2 + 2K) i per tanttota la comprovacio te un cost de O(K4). Considerant que l’entrada te un cost de O(K2), lacomprovacio te un cost quadratic respecte a la mida de la seva entrada ja que O(K4) = O((K2)2).Aixı doncs es pot comprovar si un testimoni es una solucio correcta del nostre problema en tempspolinomic respecte a la mida de l’entrada, la qual cosa significa que el nostre problema es NP.

3.3 Demostracio NP-Completesa

Per tal de demostrar la NP-Completesa del nostre problema en la seva versio de decisio neces-sitarem que el problema sigui NP (provat a l’apartat anterior) i fer la reduccio de un problemade NP-C al nostre problema. Per a dur a terme aquesta reduccio es triara el problema NP-C3DM [4] definit de la seguent forma:

Donat M ⊆ {X × Y × Z} tal que X ∩ Y = ∅, X ∩ Z = ∅, Z ∩ Y = ∅i |X| = |Y | = |Z| = q

Conte M algun M ′ ⊆ M tal que |M ′| = q i cap parell d’elements de M ′ coincideixen encap coordenada?

Page 24: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

14 CAPITOL 3. ANALISI DE COMPLEXITAT

Tot seguit es presenta la transformacio de 3DM al nostre problema en la seva versio de decisio:

Donats q i M ⊆ {X × Y × Z} fixarem un ordre concret per als elements de M i anomena-rem mi = (xmi, ymi, zmi) a l’i-essim element de M .

Construirem una entrada e = (F, T,D,N,MF,MT, disd, dist, solap, exp) valida per al nostreproblema de la seguent forma:

F = |M |

T = q

D = 2q

N = 2

MF = 1

MT = 1

distxmi,i = 1 ∀i ∈ {1...|M |} i dista,b = 0 altrament. cost de (O(q|M |))

disdymi,i = disdq+zmi,i = 1 ∀i ∈ {1...|M |} i disda,b = 0 altrament.cost de (O(2q|M |))

solap = J|M | la matriu amb tot uns. cost de O(|M |2)

expymi,i = expq+zmi,i = 1 ∀i ∈ {1...|M |} i expa,b = 0 altrament.cost de (O(2q|M |))

Aixı doncs construir l’entrada per al nostre problema a partir de l’entrada del 3DM te uncost de O(|M |2 + 5q|M |) = O(|M |2) i per tant es polinomic respecte a la mida de l’entrada.

La nocio intuıtiva de la reduccio es que creem una franja per a cada tupla dins M . D’altrabanda creem un treball per a cada element de X i un docent per a cada element de Y i Z, elsde Y identificats de 1 a q i els de Z identificats de q a 2q. Com per a cada treball i cada docentnomes activem la seva disponibilitat a la franja que correspon a la tupla en la que apareixen, elresultat es que per a cada treball (es a dir element de X) les uniques possibles assignacions detribunal son justament les que contenen professors en la disponibilitat de la seva franja (es a dirles parelles d’elements de Y i Z amb que apareixen a una tupla).

Com a resultat les franges assignades a treb son les tuples seleccionades per formar M ′ i defet tot i ser redundant, mirant els ındexs de treb i els continguts de trib podrıem trobar lestuples explıcitament: a tribi,j trobarıem les components my i mz (per a les mz haurıem derestar q) de cada tupla i els ındexs de treb representarien les components mx.

Page 25: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

3.3. DEMOSTRACIO NP-COMPLETESA 15

Tot seguit es presenta un exemple d’aquesta transformacio per mostrar-ne el raonament iclarificar-ne el sentit. Partint de la instancia de 3DM presentada a la figura 3.1:

Figura 3.1: Instancia 3DM

Un cop aplicades les restriccions dels alumnes i dels docents per les franges i els criterisd’expertesa de docents i treballs quedarien les possibilitats per assignar mostrades a la figura3.2 :

Figura 3.2: Transformacio 3DM

Aquesta taula es pot interpretar de dues formes diferents:

D’una banda, si ho mirem des del punt de vista de 3DM veiem que i determina el valor dex en la tupla i que el tribunal son els valors de y i z de les tuples que existeixen a M que tinguinaquest valor de x (noti’s que als valors del segon membre del tribunal cal restar-li 10). Tambecal notar que els possibles valors de treb representen l’identificador de la tupla. Per tant podemveure en aquesta taula com les tuples de l’M de 3DM estan representades.

D’altra banda si ho mirem des del punt de vista del nostre problema veiem que per a cadatreball (els i) tenim diferents possibles tribunals, pero recordem que cada treball nomes potestar assignat a una franja i per tant a un tribunal. Aixo es tradueix en que per a cada treballhem de triar un dels possibles tribunals. Noti’s que si tornem a mirar aquest ultim fet des delpunt de vista de 3DM tenim que per a cada valor de x, hem de triar una i nomes una de lestuples que el contenen (que es exactament el que volem que passi).

Finalment cal notar que el fet de que cada docent nomes pugui formar part d’un tribunal(recordem MT = 1) significa que en el moment en que un docent es assignat a un tribunal no

Page 26: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

16 CAPITOL 3. ANALISI DE COMPLEXITAT

pot apareixer en cap altre tribunal. Si ens mirem aquesta ultima afirmacio des del punt de vistade 3DM significa que quan un valor de y o z apareix en una tupla triada com a solucio llavorsno pot apareixer en cap altra tupla triada, que es exactament la restriccio de 3DM.

Recapitulant la lectura, tenim els diferents valors de x a les tuples (els treballs) i per acadascun hem de triar una i nomes una de les tuples (un unic tribunal dels que te disponibles)de forma que repeteixi cap coordenada (sense que cap docent repeteixi).

Page 27: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Capıtol 4

Formalitzacio del problema

Em aquest capıtol es presenta la formalitzacio del problema fent servir l’eina ECLiPSe CLP[5]. Aquesta eina es defineix al seu lloc web com :

Un programari de codi obert per al desenvolupament rendible d’aplicacions de programacio enrestriccions, per exemple, en els ambits de la planificacio, l’assignacio de recursos, els

calendaris, el transport etc. [...]Conte diverses llibreries per la resolucio de problemes derestriccions, un llenguatge de control i modelat en alt nivell, interfıcies per a resoldre

problemes de tercers, un entorn de desenvolupament integrat i interfıcies per la seva integracioen entorns de host.

Tal com es pot veure es un programari especialment dissenyat per tractar problemes de restric-cions com planificacio o calendaritzacio, exactament problemes com el que es tracta en aquestTreball. Es per aixo que s’ha triat aquesta eina i en particular laa llibreria IC, definida al seulloc web [6] com:

Un solucionador hıbrid de restriccions aritmetiques en intervals enters/reals. Permet modelarproblemes relacionats amb variables enteres, contınues (reals) o una barreja d’aquestes.Suporta una gran varietat de restriccions lineals i no-lineals. A mes a mes les llibreriesaddicionals de la familia ic xxx proveeixen restriccions globals sobre el mateix domini de

variables.

4.1 Definicio de les instancies

La definicio de les instancies del problema es fa seguint la definicio formal feta al Capıtol 3 afegintun nom per a cada instancia, es a dir el primer element de la tupla sera el nom de la instancia,seguit dels parametres escalars NombreFranges (F ), NombreProjectes (T ), NombreDocents(D), MidaTribunal (N), MaxTreballsxFranja (MF ), MaxTreballsxDocent (MT ) i tot se-guit les matrius Disd, Dist, Solap, Exp.A continuacio es mostra un exemple de com queda representada en el codi una instancia simpledel problema :

1 instancia(simple ,2,2,2,1,100,100,

2 %Disd

3 [](

4 [](1 ,1),

5 [](1 ,1)

17

Page 28: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

18 CAPITOL 4. FORMALITZACIO DEL PROBLEMA

6 ),

7 %Dist

8 [](

9 [](1 ,1),

10 [](1 ,1)

11 ),

12 %solap

13 [](

14 [](1 ,0),

15 [](0 ,1)

16 ),

17 %exp

18 [](

19 [](1 ,1),

20 [](1 ,1)

21 )

22 ).

4.2 Funcio resol

Un cop definides les instancies es codifica la part principal del codi: la funcio resol, que rebent elnom d’una instancia per parametre respon si la instancia es o no satisfactible i en cas afirmatiuen calcula les solucions. Aixı doncs aquesta funcio resol tant el problema de decisio com elproblema de calcul. En aquest apartat se’n presenta i detalla el funcionament i el codi.

4.2.1 Lectura d’instancia

Per realitzar la lectura de la instancia a tractar s’inclou una restriccio que emparella variablesamb els parametres rebuts de forma que els valors estiguin disponibles (addicionalment s’inclouencomentaris amb els noms formals aixı com les mides de les matrius) :

1

2 instancia(NomInstancia ,

3 NombreFranges , %(F)

4 NombreProjectes , %(T)

5 NombreDocents , %(D)

6 MidaTribunal , %(N)

7 MaxTreballsxFranja , %(MF)

8 MaxTreballsxDocent , %(MT)

9 Disd , %(di,fj) per di-> i in (1...D) per fj -> j in (1...F)

10 Dist , %(ti,fj) per ti-> i in (1...T) per fj -> j in (1...F)

11 Solap , %(fi,fj) per fi-> i in (1...F) per fj -> j in (1...F)

12 Exp), %(di , tj) per di -> i in (1...D) per t_j -> k in (1...T)

4.2.2 Variables del problema

Tot seguit es defineixen les variables del problema seguint la formalitzacio del problema, aixıcom les seves mides i dominis:

1 dim(Treb , [NombreProjectes ]),

2 Treb:: [1.. NombreFranges],

3

4 dim(Trib , [NombreFranges ,MidaTribunal ]),

5 Trib:: [1.. NombreDocents],

Page 29: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

4.2. FUNCIO RESOL 19

4.2.3 Definicio de restriccions

Un cop fetes les definicions previes, es procedeix a implementar les restriccions del problemareformulant-les quan s’escaigui.Com a primera observacio cal fer notar certs problemes de satisfactibilitat i la gran quantitatde simetries que pot generar el problema si el formalitzem en ECLiPSe CLP tal i com estadefinit teoricament. Pensem per exemple en la instancia seguent:

1 instancia(exemple ,2,2,2,2,100,100,

2 %Disd

3 [](

4 [](1 ,1),

5 [](0 ,0)

6 ),

7 %Dist

8 [](

9 [](1 ,1),

10 [](1 ,1)

11 ),

12 %solap

13 [](

14 [](1 ,0),

15 [](0 ,1)

16 ),

17 %exp

18 [](

19 [](1 ,1),

20 [](1 ,1)

21 )

22 ).

Tot i ser evident que aquesta instancia es trivialment satisfactible simplement assignant elsdos treballs a la franja 1 i els dos docents tambe a la franja 1. Si es formalitza el problemadirectament com esta plantejar de forma teorica i tenint en compte que en ECLiPSe CLP lesvariables no poden quedar sense assignar, el solver intentaria assignar docents a la franja 2 icom no podria (ja que cap docent esta disponible a la franja 2) tot i tenir una assignacio validaper a tots els treballs s’obtindria que aquesta instancia es insatisfactible.Per tal d’evitar aquesta situacio s’afegeix una nova la condicio:

• si una franja no te cap treball assignat llavors les restriccions no li apliquen.

D’altra banda, considerant aquesta nova restriccio es podria fer qualsevol assignacio a les frangesque estiguessin buides, la qual cosa provocaria una gran quantitat de simetries (en concret

(DN

)solucions per cada assignacio valida de les franges no buides). Per evitar-ho s’afegira una novarestriccio:

• si una franja queda buida, llavors se li assignaran els N primers docents.

Un cop fetes aquestes observacions es presenta la formalitzacio de les restriccions:

Page 30: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

20 CAPITOL 4. FORMALITZACIO DEL PROBLEMA

Restriccio per les franges buides

Primerament s’implementa la restriccio si una franja queda buida, llavors se li assignaran els Nprimers docents. Per implementar-la es fa un recompte del nombre de vegades que apareix cadafranja a Treb i en cas que aquest sigui 0 a la franja en questio se li assigna el tribunal composatpels N primers docents. Aquest recompte es fa mitjancant la funcio occurrences de la llibreriaic global.

Seguint aquest enfocament, la restriccio queda codificada de la seguent forma:

1 ( for(I,1, NombreFranges), param(Treb ,Trib ,MidaTribunal)do

2 occurrences(I,Treb ,Ocui),

3 #=(Ocui ,0,Aux1),

4 ( for(J,1, MidaTribunal), param(I,Trib ,Aux1)do

5 #=( Trib[I,J],J,Aux2),

6 =>(Aux1 ,Aux2 ,1)

7 )

8 ),

Restriccio 2

Respecte a la restriccio 2: Els membres del tribunal son diferents cal fer dues observacions:En primer lloc s’ha formalitzat fent servir la restriccio alldifferent de la llibreria ic global. Aques-ta decisio s’ha pres per tal d’aprofitar el rendiment de les funcions incloses a les llibreries i persimplificar el codi. Per tant la restriccio queda reformulada com que per a cada fila de la matriuTrib tots els elements han de ser diferents.En segon lloc s’ha decidit afegir una sub-restriccio a aquesta restriccio que exigeixi que els mem-bres d’un tribunal han d’estar ordenats de menor a major. Aquesta restriccio s’ha afegit per tald’evitar simetries, ja que en cas de no estar ordenats, per a cada assignacio valida de membres aun tribunal de mida N apareixerien N ! solucions valides (les N ! permutacions dels N membresdel tribunal en els N llocs al tribunals). Aixı doncs aquesta sub-restriccio queda reformuladacom que per a cada fila de la matriu Trib els elements han d’estar ordenats. Cal notar que afegiraquesta nova sub-restriccio, fa innecessaria la restriccio original (que diu que tots els membreshan de ser diferents) ja que clarament si estan estrictament ordenats llavors necessariament hande ser diferents. Tot i aixı es decideix mantenir-la per fidelitat a la formulacio original i ja querestriccions redundants poden ajudar al solver a ser mes eficient.

Un cop fetes aquestes observacions es presenta la formalitzacio de la restriccio:

1 ( for(I,1, NombreFranges), param(Trib) do

2 alldifferent(Trib[I]),

3 ordered(<,Trib[I])

4 ),

Restriccio 3

La restriccio 3: Cap Docent no pot estar assignat a una franja en que no estigui disponibleoriginalment estava formulada de la seguent forma:

{∀i ∈ {1...F}, ∀j ∈ {1...N} | disdtribi,j ,trebi = 1

}

Page 31: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

4.2. FUNCIO RESOL 21

Pero tenint en compte la restriccio afegida respecte a les franges buides es decideix reescriure-lade la seguent forma:

{∀i ∈ {1...T}, ∀j ∈ {1...F}, ∀k ∈ {1...N}, ∀l ∈ {1...D} | j = trebi, l = tribj,k ⇒ disdi,j = 1

}

Es a dir, que per a tot treball, per a tot docent, per a tota franja i per a tot lloc a la franja,si un treball esta assignat a la franja i un docent esta assignat com a tribunal de la franja,llavors el docent ha d’estar disponible en la franja. Noti’s que d’aquesta forma nomes s’aplicala restriccio a les franges en que hi ha algun treball i per tant les franges buides podrien tenirassignats docents que no estiguin disponibles (fent aixı possible assignar a les franges buides elsN primers docents estiguin o no disponibles).

Aquesta nova formulacio de la restriccio queda plasmada al codi de la seguent forma:

1 ( for(I,1, NombreProjectes), param(Disd ,Trib ,Treb ,NombreDocents ,MidaTribunal ,

NombreFranges) do

2 Franja #= Treb[I],

3 ( for(J, 1, NombreFranges), param(Disd ,Franja ,Trib ,NombreDocents , MidaTribunal

) do

4 #=(J, Franja , Aux1),

5 ( for(K, 1, MidaTribunal), param(J,Disd ,Aux1 ,Trib ,NombreDocents) do

6 Docent #= Trib[J,K],

7 ( for(L, 1, NombreDocents), param(Disd ,Docent ,Aux1 ,J) do

8 #=(L, Docent , Aux2),

9 #=( Disd[L,J],1,Aux3),

10 and(Aux1 ,Aux2 ,Aux4),

11 =>(Aux4 ,Aux3 ,1)

12 )

13 )

14 )

15 ),

Restriccio 4

La restriccio 4: Cap alumne no pot estar assignat a una franja en que no estigui disponible esreescriu de forma similar a la anterior i passa de ser:

{∀i ∈ {1...T} | disti,trebi = 1

}

A estar reescrita com a:

{∀i ∈ {1...T}, ∀j ∈ {1...F} | j = trebi ⇒ disti,j = 1

}

Es a dir que per a tot treball i per a tota franja, si el treball esta assignat a la franja, llavorsl’alumne ha d’estar disponible en la franja.

Seguint aquesta nova definicio, la restriccio queda codificada de la seguent forma:

Page 32: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

22 CAPITOL 4. FORMALITZACIO DEL PROBLEMA

1 ( for(I,1, NombreProjectes), param(Treb ,Dist ,NombreFranges) do

2 Franja #= Treb[I],

3 ( for(J, 1, NombreFranges), param(Dist , I, Franja) do

4 #=(J, Franja , Aux1),

5 #=( Dist[I, J], 1, Aux2),

6 =>(Aux1 , Aux2 , 1)

7 )

8 ),

Restriccio 5

La restriccio 5 esta definida teoricament de la seguent forma: Cap franja no pot tenir mes tre-balls que el maxim fixat. Per a codificar aquesta restriccio s’ha decidit fer servir una funciopredefinida de la llibreria ic global. Es tracta de la funcio alldifferent ja emprada anteriormentpero en aquest cas se’n fara servir una sobrecarrega diferent que permet exigir un maxim pera les ocurrencies de cada element d’una llista. Aixı doncs la restriccio queda reformulada comque ‘cap franja pot apareixer a Treb mes de MaxTreballsxFranja vegades.

Aquesta formulacio es trasllada al codi de la seguent forma:

1 alldifferent(Treb ,MaxTreballsxFranja),

Restriccio 6

La restriccio 6 esta definida com: Cap docent no pot tenir mes treballs assignats que el maximfixat originalment formalitzada de la seguent forma:

{∀d ∈ {1...D} | #{i ∈ {1..F}, | ∃j ∈ {1..N} : tribi,j = d} 6 MT

}

Es reformula totalment introduint una nova estructura auxiliar Esprofe ∈ {BD×T } definidade la seguent forma:

{∀i ∈ {1...T}, ∀j ∈ {1...F}, ∀k ∈ {1...N}, ∀l ∈ {1...D} | j = trebi, l = tribj,k ⇔ Esprofei,j = 1

}

Aquesta nova estructura es construeix en el codi de la seguent forma:

1 dim(Esprofe , [NombreDocents ,NombreProjectes ]),

2 Esprofe :: [0..1] ,

3

4 ( for(I,1, NombreProjectes), param(Esprofe ,Trib ,Treb ,NombreDocents , MidaTribunal ,

NombreFranges) do

5 Franja #= Treb[I],

6 ( for(J, 1, NombreFranges), param(Esprofe ,Franja ,Trib ,NombreDocents ,

MidaTribunal ,I) do

7 #=(J, Franja , Aux1),

8 ( for(K, 1, MidaTribunal), param(I,J,Esprofe ,Aux1 ,Trib ,NombreDocents) do

9 Docent #= Trib[J,K],

Page 33: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

4.2. FUNCIO RESOL 23

10 ( for(L, 1, NombreDocents), param(Esprofe ,Docent ,Aux1 ,I) do

11 #=(L, Docent , Aux2),

12 #=( Esprofe[L,I],1,Aux3),

13 and(Aux1 ,Aux2 ,Aux4),

14 =>(Aux4 ,Aux3 ,1)

15 )

16 )

17 )

18 ),

Un cop construıda aquesta estructura es replanteja la restriccio 6 com:

{∀i ∈ {1...D} | #{j ∈ {1..T}| Esprofei,j = 1} 6 MT

}

Per codificar aquesta restriccio es tria fer servir la funcio atmost de la llibreria ic globalde forma que simplement cal comprovar que a cada fila de Esprofe hi hagi com a maximMaxTreballsxDocent valors 1. Aixı doncs la restriccio queda codificada com:

1 ( for(I,1, NombreDocents), param(Esprofe ,MaxTreballsxDocent) do

2 atmost(MaxTreballsxDocent ,Esprofe[I],1)

3 ),

Restriccio 7

La restriccio 7 definida com: Els membres de tribunals de franges sol·lapades han de ser diferentsoriginalment formalitzada de la seguent forma:

{∀j ∈ {1...F}, ∀j′ ∈ {1...F} j 6= j′ | solapj,j′ = 1⇒

∀i ∈ {1...N}, ∀i′ ∈ {1...N} tribi,j 6= tribi′j′}

Es modifica en 2 sentits:En primer lloc nomes cal comprovar les j′ > j ja que solap es simetrica (si la franja j sol·lapaamb la franja j′ llavors la franja j′ tambe sol·lapa amb la franja j) i per tant realitzar les duescomprovacions es redundant.En segon lloc cal tenir en compte que si almenys una de les franges es buida, llavors no cal ferla comprovacio.Aixı doncs la restriccio queda reescrita de la seguent forma:

{∀j ∈ {1...F}, ∀j′ ∈ {j + 1...F} | solapj,j′ = 1, #{i ∈ {1...T} |trebi = j} 6= 0,

#{i ∈ {1...T} |trebi = j′} 6= 0⇒

∀i ∈ {1...N}, ∀i′ ∈ {1...N} tribi,j 6= tribi′j′}

Per formalitzar aquesta reformulacio de la restriccio es fan servir dues funcions de la llibreria:en primer lloc array concat per tal de crear una nova llista en que apareguin els docents delsdos tribunals i tot seguit alldifferent per tal de comprovar que en aquesta nova llista no apareix

Page 34: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

24 CAPITOL 4. FORMALITZACIO DEL PROBLEMA

cap docent repetit (i.e. no hi ha cap docent en els dos tribunals simultaniament).

Seguint aquesta formulacio la restriccio queda formalitzada de la seguent forma:

1 ( for(I,1, NombreFranges), param(NombreFranges ,MidaTribunal ,Treb ,Trib ,Solap) do

2 occurrences(I,Treb ,Ocui),

3 #\=(Ocui ,0,NbI),

4 ( for(J,1, MidaTribunal), param(NombreFranges ,MidaTribunal ,Treb ,Trib ,Solap ,NbI ,

I) do

5 D1 is Trib[I,J],

6 ( for(K,I+1, NombreFranges), param(MidaTribunal ,D1 ,Treb ,Trib ,NbI ,Solap ,I) do

7 occurrences(K,Treb ,Ocuk),

8 #\=(Ocuk ,0,NbK),

9 and(NbI ,NbK ,NbIK),

10 Aux1 is Solap[I,K],

11 #=(Aux1 ,1,Sol),

12 ( for(L,1, MidaTribunal), param(Trib ,K,Sol ,NbIK ,D1) do

13 D2 is Trib[K,L],

14 and(Sol ,NbIK ,Cond),

15 #\=(D1,D2,Dif),

16 =>(Cond ,Dif ,1)

17 )

18 )

19 )

20 ),

Restriccio 8

La restriccio 8 definida com: Tots els membres dels tribunals d’una franja han de ser experts enel tema dels treballs exposats originalment formalitzada de la seguent forma:

{∀i ∈ {1...T}, ∀j ∈ {1...N} | trebi = k ⇒ exptribk,j ,i = 1

}

Es modifica de forma similar a com s’han modificat la resta de restriccions anteriorment dela seguent forma:

{∀i ∈ {1...T}, ∀j ∈ {1...F} , ∀k ∈ {1...N} , ∀l ∈ {1...D} | trebi = j, tribj,k = l⇒ expl,i = 1

}

Aquesta nova formalitzacio queda reflectida al codi de la seguent forma:

1 ( for(I,1, NombreProjectes), param(Exp ,Trib ,Treb ,NombreDocents ,MidaTribunal ,

NombreFranges) do

2 Franja #= Treb[I],

3 ( for(J, 1, NombreFranges), param(Exp ,Franja ,Trib ,NombreDocents ,MidaTribunal ,I

) do

4 #=(J, Franja , Aux1),

5 ( for(K, 1, MidaTribunal), param(I,J,Exp ,Aux1 ,Trib ,NombreDocents) do

6 Docent #= Trib[J,K],

7 ( for(L, 1, NombreDocents), param(Exp ,Docent ,Aux1 ,I) do

8 #=(L, Docent , Aux2),

9 #=( Exp[L,I],1,Aux3),

10 and(Aux1 ,Aux2 ,Aux4),

11 =>(Aux4 ,Aux3 ,1)

Page 35: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

4.3. FUNCIO IMPRIMEIX RESULTATS 25

12 )

13 )

14 )

15 ),

4.2.4 Resolucio

Un cop codificades totes les restriccions del problema es pot fer la crida a la funcio labeling de lallibreria ic per tal que es busqui si existeix una assignacio valida per la instancia tractada teninten compte totes les restriccions. Aquest proces es duu a terme mitjancant la seguent crida:

1 labeling ([Treb ,Trib]),

4.2.5 Mostrar resultats

Finalment en cas que s’hagin trobat alguna solucio que satisfaci les restriccions per la instanciatractada caldra mostrar-ne les solucions que les satisfan. Aixo es duu a terme mitjancant laseguent crida a la funcio imprimeix resultats:

1 imprimeix_resultats(Treb ,Trib).

4.3 Funcio imprimeix resultats

Tot seguit es presenta la implementacio de la funcio que imprimeix els resultats:

1 imprimeix_resultats(Treb ,Trib) :-

2 write("Treb:\n Franges: "),

3 dim(Treb , [NombreProjectes ]),

4 (for(I,1, NombreProjectes), param(Treb) do

5 X is Treb[I],

6 printf("%2d ", X)

7 ), nl, nl ,

8

9 write("Trib:\n"),

10 dim(Trib , [NombreFranges ,MidaTribunal ]),

11 ( for(I,1, NombreFranges), param(Trib ,MidaTribunal) do

12 printf(" Franja %2d: ",I),

13 ( for(J,1, MidaTribunal), param(Trib ,I) do

14 X is Trib[I,J],

15 printf("%2d ", X)

16 ), nl

17 ), nl.

En cas que existeixi alguna assignacio que satisfaci totes les restriccions aquesta funcio mostrarauna sortida amb el seguent format:

1 Treb:

2 Franges: 1 1

3

4 Trib:

5 Franja 1: 1 2

6 Franja 2: 1 2

Juntament amb aquest document s’adjunta el fitxer Eina.ecl amb el codi presentat. D’altrabanda juntament amb aquesta memoria s’annexa un manual d’us de l’eina.

Page 36: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs
Page 37: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Capıtol 5

Generador d’instancies

Per tal de poder realitzar els jocs de proves que es considerin oportuns es codifica una funcio enJava que genera instancies del problema.Aquesta funcio rep els seguents parametres:

1 public static void Generar (String Fitx ,String NomInstancia ,int NombreFranges ,

int NombreProjectes ,int NombreDocents ,int MidaTribunal ,int

MaxTreballsxFranja ,int MaxTreballsxDocent ,int probDocentDisp ,int

probTreballDisp ,int probSolap ,int probExp , long llavor)

La variable Fitx representa el fitxer en que s’escriura la instancia generada (afegint-la al finald’aquest), tot seguit apareixen els parametres escalars de les instancies i finalment apareixen 4variables destinades a codificar la probabilitat (en tant per cent) per la generacio de les matriusde la instancia: probDocentDisp representa la probabilitat que un docent estigui disponible enuna certa franja; probTreballDisp representa la probabilitat que un alumne estigui disponible enuna certa franja; probSolap representa la probabilitat que dues franges qualsevols se sol·lapin iprobExp representa la probabilitat que un docent sigui expert en el tema d’un cert treball. Fi-nalment la funcio rep un parametre de tipus long que representa la llavor per la generacio de delnombres aleatoris. En cas de no voler especificar cap llavor aquest parametre s’ha d’instanciar a0. En ambdos casos la llavor feta servir i les probabilitats quedaran reflectides a Fitx per podergenerar la instancia un altre cop en cas de considerar-ho necessari.

Rebent aquests parametres el programa genera una instancia valida del problema codificadaen el format descrit al capıtol anterior i l’afegeix al final del fitxer determinat per la variableFitx.

Juntament amb aquest document s’adjunta el fitxer Generador.java amb el codi del genera-dor. D’altra banda juntament amb aquesta memoria s’annexa un manual d’us del generador.

27

Page 38: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs
Page 39: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Capıtol 6

Joc de proves

Un cop es te el problema codificat cal realitzar una bateria de proves per comprovar que el codies comporta de la forma desitjada i que genera solucions correctes del problema en cas que lainstancia sigui satisfactible i que no en genera si i nomes si la instancia es insatisfactible.Amb l’objectiu de verificar el codi presentat anteriorment s’han construıt i aplicat els jocs deproves presentats en aquest capıtol.

6.1 Joc de proves per restriccions

El primer joc de proves generat te com a objectiu comprovar el correcte funcionament de cadarestriccio de la forma mes aıllada possible per tal de de concloure que totes les restriccions s’a-pliquen de forma correcta i que es comporten de la forma esperada.Per provar les condicions de forma aıllada es consideren diferents aproximacions:

D’una banda existeix la possibilitat de generar una instancia poc restrictiva i generar a matotes les possibles solucions per aquesta instancia i tot seguit compara-les amb les solucionsobtingudes mitjancant l’eina. Aquesta opcio es descarta ja que nomes es viable dur-la a termeamb instancies petites (ja que en cas de no ser aixı el nombre de possibles solucions es disparai resulta impracticable generar-les a ma) i d’altra banda en ser instancies petites pot ser queno capturin totes les casuıstiques. Es considera important en aquest joc de proves construir elconjunt a ma de forma independent enlloc de generar-lo mitjancant l’eina i despres validar-loa ma per evitar el biaix de confirmacio possible en considerar correcta la solucio per tenir-lagenerada i no percebre possibles mancances d’aquesta.Una altra opcio podria ser generar instancies grans pero mes restrictives (de forma que el nom-bre de possibles solucions fos menor) i generar una instancia d’aquest tipus per a cada casuısticadins cada restriccio; aquesta possibilitat s’ha descartat ja que tambe implica un possible biaixde confirmacio en dissenyar una instancia especıficament per a cada casuıstica, la qual cosa potimplicar no considerar alguns casos particulars.

S’ha conclos que la forma mes efectiva es fer-ho a partir d’una instancia relativament grani aplicar-li petites modificacions en els parametres afectats per cada restriccio per provocarl’activacio de cada condicio per separat (considerant que la restriccio de franges buides i la detribunals ordenats s’aplicaran sempre). Es jutjara si la restriccio s’ha aplicat de forma correcta ono a partir del nombre de solucions obtingudes: es calculara de forma combinatoria el nombre desolucions esperat per a la instancia i es comprovara que aquest nombre coincideix amb el nombrede solucions retornades pel codi. D’aquesta forma s’evita la perdua de certes casuıstiques perser la instancia massa petita a l’hora que s’evita el biaix de confirmacio per haver dissenyat la

29

Page 40: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

30 CAPITOL 6. JOC DE PROVES

instancia esperant-ne un resultat concret. Aquest disseny del joc de proves tambe evita haverde generar la solucio a ma ja que simplement es comprovara que el nombre total de solucionsconcordi amb el resultat combinatori teoric.

Els jocs de proves de totes les restriccions partiran de la mateixa instancia base, la instanciasimple. Recordem que les instancies del problema es defineixen seguint la especificacio seguent:

1 instancia(NomInstancia ,NombreFranges ,NombreProjectes ,NombreDocents ,MidaTribunal ,

MaxTreballsxFranja ,MaxTreballsxDocent ,disd ,dist ,solap ,exp).

Un cop fet aquest recordatori es presenta la instancia simple:

1 instancia(simple ,3,3,3,2,100,100,

2 %Disd

3 [](

4 [](1 ,1 ,1),

5 [](1 ,1 ,1),

6 [](1 ,1 ,1)

7 ),

8 %Dist

9 [](

10 [](1 ,1 ,1),

11 [](1 ,1 ,1),

12 [](1 ,1 ,1)

13 ),

14 %solap

15 [](

16 [](0 ,0 ,0),

17 [](0 ,0 ,0),

18 [](0 ,0 ,0)

19 ),

20 %exp

21 [](

22 [](1 ,1 ,1),

23 [](1 ,1 ,1),

24 [](1 ,1 ,1)

25 )

26 ).

S’ha triat aquesta instancia com a base per ser prou gran com per poder provar correctamentles restriccions sense perdre’n possibles casuıstiques que poden no manifestar-se en instanciesmes petites i per tenir un nombre relativament gran de solucions possibles que permet reduir laprobabilitat que un resultat teoric i un resultat practic coincideixin per casualitat.

En primer lloc es calcula el nombre de solucions que te la instancia simple si no se li aplicacap restriccio:

• Considerant que l’assignacio de treballs a franges no te cap restriccio, els 3 treballs espoden assignar a les 3 franges de totes les formes possibles, es a dir 33 formes, per tant 27.

• De forma similar com l’assignacio de docents a les franges no ha d’obeir cap restriccio els3 docents es poden assignar a cada franja de 32 formes diferents, per tant 9. Tenint encompte que hi ha 3 franges, tenim un total de 9 · 3 possibles assignacions, per tant 27.

Aixı doncs el nombre total de solucions en cas de no aplicar cap de les restriccions del problemaseria de 27 · 27, per tant 729.

Page 41: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.1. JOC DE PROVES PER RESTRICCIONS 31

6.1.1 Franges buides i Restriccio 2

Noti’s que en el calcul realitzat anteriorment no s’ha tingut en compte cap restriccio, ni tansols la restriccio que un mateix docent no pot formar part d’un tribunal dos cops o que lesfranges buides han de tenir una assignacio concreta. Aixı doncs procedim a calcular el nombrede solucions que tindria aquesta instancia aplicant-li les restriccions del problema. Notem queper la seva construccio les restriccions 3 a 8 no tenen cap efecte sobre aquesta instancia (per tenirtotal disponibilitat de docents i alumnes, total expertesa dels docents, cap mena de sol·lapamentde franges i un capacitat mes que suficient tant de les franges com dels docents). Per tant percalcular el nombre de solucions correctes d’aquesta instancia nomes cal considerar la restriccio 2(tal i com ens havıem proposat en la construccio d’aquest joc de proves). Recordem que tambes’ha de tenir en compte que s’aplicara la restriccio de franges buides (per ser una restriccioimpossible de no activar). Tenint en compte aquestes observacions procedim a calcular el nombrede solucions correctes que tindra la instancia simple, recordant que nomes cal considerar larestriccio 2 i la restriccio de franges buides. Per realitzar aquest calcul cal considerar diferentsescenaris disjunts:

• En cas que tots els treballs estiguin assignats a franges diferents (llavors la restriccio defranges buides no aplica): d’aquests casos en tenim 3! ja que son les permutacions de 3elements, per tant 6 possibles assignacions de treballs a franges. Respecte a les assignacionsde docents als tribunals de les franges cal considerar la restriccio 2, per tant han de serdiferents i han d’estar ordenats. Com tenim 3 docents i la franja te capacitat 2, considerantla restriccio per a cada franja existeixen 3 possibilitats: (1,2), (1,3) i (2,3), llavors per les3 franges existeixen un total de 3 · 3 · 3 possibilitats, per tant 27. Aixı doncs aquestacasuıstica aporta un total de 6 · 27, per tant 162 solucions.

• En cas que hi hagi exactament dos treballs assignats a la mateixa franja caldra considerarque la restriccio de franges buides redueix lleugerament el nombre de solucions possibles(ja que si dos treballs estan assignats a la mateixa franja, llavors necessariament hi haurauna franja sense cap treball assignat). Per calcular el nombre de casos d’aquest tipus queexisteixen primerament triarem les 2 franges iguals (

(32

)possibilitats, per tant 3), tot seguit

triarem quina de les 3 franges sera la que contingui dos treballs (3 possibilitats) i finalmenttriarem la franja que nomes conte un treball (2 possibilitats ja que altrament els 3 treballsestarien assignats a la mateixa franja). Aixı doncs el nombre total de casos d’aquest tipuses 3 · 3 · 2, per tant 18. Respecte a l’assignacio de docents a les franges cal considerar quela franja buida tindra una unica possible assignacio (tal com dicta la restriccio de frangesbuides). Respecte a les altres dues franges podran tenir qualsevol assignacio, que calculatde forma similar a la forma en que s’ha calculat al cas anterior 1 · 3 · 3, per tant 9. Aixıdoncs aquesta casuıstica aporta un total de 18 · 9, per tant 162 solucions.

• En cas que els 3 treballs estiguin assignats a la mateixa franja, per calcular el nombre decasos d’aquest tipus que existeixen simplement considerem que existeixen 3 franges i pertant hi ha 3 casos d’aquest tipus. Respecte a l’assignacio de docents a les franges calconsiderar la restriccio de franges buides i per tant les dues franges buides nomes tenenuna possible assignacio. Respecte a la franja no buida de la mateixa forma que al primercas pot tenir 3 possibles assignacions: (1,2), (1,3) i (2,3). Aixı doncs aquesta casuısticaaporta un total de 3 · 3, per tant 9 solucions.

Sumant totes les solucions obtingudes de les diferents casuıstiques, observem que aquesta instanciate un total de 162 + 162 + 9 solucions, per tant 333 solucions.Executant l’eina desenvolupada amb la instancia simple s’obtenen exactament 333 solucions de

Page 42: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

32 CAPITOL 6. JOC DE PROVES

la qual cosa es conclou que la restriccio de franges buides i la restriccio 2 funcionen correctament,en haver arribat al mateix nombre de solucions de formes totalment independents.

6.1.2 Restriccio 3

Per validar el codi de la restriccio 3 introduirem una petita pertorbacio arbitraria al parametreafectat, per tant a la disponibilitat dels docent. De la mateixa forma que a l’estudi de la restriccioanterior, calcularem combinatoriament el nombre de solucions esperades i el compararem ambel nombre de solucions retornades per l’eina. En aquesta validacio es fara servir el la instanciasimpler3 :

1 instancia(simpler3 ,3,3,3,2,100,100,

2 %Disd

3 [](

4 [](1 ,1 ,1),

5 [](1 ,0 ,1),

6 [](1 ,1 ,1)

7 ),

8 %Dist

9 [](

10 [](1 ,1 ,1),

11 [](1 ,1 ,1),

12 [](1 ,1 ,1)

13 ),

14 %solap

15 [](

16 [](0 ,0 ,0),

17 [](0 ,0 ,0),

18 [](0 ,0 ,0)

19 ),

20 %exp

21 [](

22 [](1 ,1 ,1),

23 [](1 ,1 ,1),

24 [](1 ,1 ,1)

25 )

26 ).

Notem que aquesta instancia nomes li afecta la restriccio 3 (obviant que la restriccio 2 i la defranges buides afecten a totes les instancies), ja que els alumnes tenen disponibilitat complerta,no existeix el sol·lapament, tots els docents son experts en tots els temes i els maxims de treballsper docent i per franja son molt superiors al total de treballs. Un cop feta aquesta observaciopodem calcular el nombre de solucions que aquesta instancia ha de tenir de forma similar a coms’ha fet per la instancia simple:

• En cas que tots els treballs estiguin assignats a franges diferents (llavors la restriccio defranges buides no aplica): d’aquests casos en tenim 3! ja que son les permutacions de 3elements, per tant 6 possibles assignacions de treballs a franges. Respecte a les assignacionsde docents als tribunals de les franges cal considerar la restriccio 2, per tant han de serdiferents i han d’estar ordenats. Com tenim 3 docents i la franja te capacitat 2, considerantla restriccio, per les franges 1 i 3 existeixen 3 possibilitats: (1,2), (1,3) i (2,3), per tantper aquestes dues franges existeixen un total de 3 · 3 possibilitats, per tant 9. D’altrabanda respecte a la franja 2 considerant que el docent 2 no esta disponible nomes hi hauna assignacio possible, la (1,3). Aixı doncs aquesta casuıstica aporta un total de 6 · 9,per tant 54 solucions.

Page 43: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.1. JOC DE PROVES PER RESTRICCIONS 33

• En cas que hi hagi exactament dos treballs assignats a la mateixa franja caldra considerarcasos en funcio de quins paper juga la franja 2.

– Si es la franja 2 la que te dos treballs assignats, llavors aquests dos treballs els po-

drem triar de(32

)formes, per tant 3. Un cop triats els dos treballs assignats a la

franja 2 caldra triar a quina franja esta assignat el treball no assignat a la franja 2,el qual implica 2 possibilitats (pot ser la franja 1 o la 3) i finalment cal considerar elspossibles tribunals assignats a la franja del treball no assignat a la franja 2, per tant3 possibles tribunals. Aixı doncs aquest cas aporta un total de 3 · 2 · 3, per tant 18solucions possibles.

– Si la franja 2 no es la que te dos treballs assignats llavors existeixen dues noves pos-sibilitats:

∗ Si la franja 2 queda buida, llavors tenim(32

)formes de triar quins son els 2 tre-

balls assignats a la mateixa franja, per tant 3. Tambe tenim 2 possibilitats pertriar quina es la franja que te assignats dos treballs. Finalment tenim 3 possiblestribunals per a cada una de les franges, tant per la que te dos treballs assignatscom per la que en te un, per tant 9 possibilitats. Aixı doncs aquest cas aportaun total de 3 · 2 · 9, per tant 54 possibilitats.

∗ Si la franja 2 no queda buida, llavors sera necessariament la franja que tingui un

unic treball assignat. Aixı doncs tenim(32

)possibilitats per triar quins son els

dos treballs que van a la mateixa franja, tenim 2 possibilitats per triar quina serala franja amb dos treballs i finalment tenim 3 possibilitats per triar el tribunal dela franja amb dos treballs, (noti’s que per la franja que queda buida no podemtriar tribunal i per la franja 2 tampoc ja que totes dues tenen un unic possibletribunals). Aixı doncs aquesta casuıstica aporta un total de 3 · 2 · 3, per tant 18possibles solucions.

• Finalment en cas que els 3 treballs estiguin assignats a la mateixa franja cal considerar,un cop mes, dos casos disjunts:

– Si la franja a la que estan assignats tots els treballs es la franja 2, llavors no hi hacap tria possible, ja que la franja 2 nomes te un possible tribunal disponible i lesfranges buides tambe tenen un unic possible tribunal, per tant 1 unica possible solu-cio.

– En cas que la franja que aglutini tots els treballs sigui la franja 1 o la 3, llavors peraquesta franja si podem triar el tribunal, que es podra triar de 3! formes, per tantaquest cas aporta un total de 6 solucions

Un cop realitzades totes les casuıstiques sumem totes les possibles solucions per tenir el totalde solucions que te aquesta instancia: 54 + 18 + 54 + 18 + 1 + 6, que resulta en un total de 151solucions.En resoldre aquesta mateixa instancia amb l’eina desenvolupada en aquest TFG s’obtenen exac-tament 151 solucions diferents, el qual fa que es doni per validada la implementacio d’aquestarestriccio.

6.1.3 Restriccio 4

Per validar el codi de la restriccio 4 introduirem una petita pertorbacio arbitraria al parametreafectat, per tant a la disponibilitat dels alumnes. De la mateixa forma que a l’estudi de la

Page 44: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

34 CAPITOL 6. JOC DE PROVES

restriccio anterior, calcularem combinatoriament el nombre de solucions esperades i el compa-rarem amb el nombre de solucions retornades per l’eina. En aquesta validacio es fara servir ella instancia simpler4 :

1 instancia(simpler4 ,3,3,3,2,100,100,

2 %Disd

3 [](

4 [](1 ,1 ,1),

5 [](1 ,0 ,1),

6 [](1 ,1 ,1)

7 ),

8 %Dist

9 [](

10 [](1 ,1 ,1),

11 [](1 ,1 ,1),

12 [](1 ,1 ,1)

13 ),

14 %solap

15 [](

16 [](0 ,0 ,0),

17 [](0 ,0 ,0),

18 [](0 ,0 ,0)

19 ),

20 %exp

21 [](

22 [](1 ,1 ,1),

23 [](1 ,1 ,1),

24 [](1 ,1 ,1)

25 )

26 ).

Notem que aquesta instancia nomes li afecta la restriccio 4 (obviant que la restriccio 2 i la defranges buides afecten a totes les instancies), ja que els docents tenen disponibilitat complerta,no existeix el sol·lapament, tots els docents son experts en tots els temes i els maxims de treballsper docent i per franja son molt superiors al total de treballs. Un cop feta aquesta observaciopodem calcular el nombre de solucions que aquesta instancia ha de tenir de forma similar a coms’ha fet per la instancia simpler3 :

• En primer lloc considerem el cas en que els tres treballs son assignats a franges diferents.Aquest cas correspondria amb una permutacio de 3 elements, per tant 3!, es a dir 6, peroconsiderant la restriccio que el treball 2 no pot ser assignat a la franja 2, queden un totalde 4 casos disjunts d’aquest tipus. En cadascun d’aquests casos podem triar els tribunalsamb total llibertat (ja que no hi ha cap sol·lapament ni restriccions en la disponibilitat delsdocents i com totes les franges tenen algun treball, no cal considerar les franges buides),per tant tenim 33 possibles assignacions de franges. Aixı doncs aquest cas aporta un totalde 4 · 27 solucions, per tant 108.

• En cas que exactament dos treballs siguin assignats a la mateixa franja cal considerar di-ferents famılies de casos disjunts:

– La primera famılia es aquella en que un dels treballs assignats a la mateixa franja esel treball 2. En aquesta famılia tenim 2 possibilitats per triar la franja que te dostreballs assignats (ja que com un dels treballs es el 2 la franja 2 no es pot triar).Un cop triada la franja amb dos treballs cal triar a quina franja esta assignat eltreball restant, per aquesta tria tenim 2 possibilitats (la franja 2 i la franja no triadaanteriorment). Finalment per a les dues franges que tenen treballs assignats podemtriar 3 tribunals per a cadascuna, per tant un total de 9 (per la franja que ha quedat

Page 45: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.1. JOC DE PROVES PER RESTRICCIONS 35

sense cap treball assignat no es pot triar el tribunal). Aixı doncs aquest cas aportaun total de 2 · 2 · 2 · 9 solucions, per tant 72.

– D’altra banda hi ha una famılia de casos disjunts en que el treball 2 no es el que estaassignat a la mateixa franja que un altre treball. Primerament triem quina es la fran-ja assignada als dos treballs que comparteixen franja. En aquest cas cal considerardos sub-casos disjunts:

∗ Hi ha 2 famılies de casos disjunts en que als dos treballs que comparteixen franjano se’ls assigna la franja 2. Un cop feta aquesta assignacio el treball 2 nomes

tindra 1 opcio per triar (ja que una franja esta triada i en la franja 2 no estadisponible). Un cop triades les franges per a tots els treballs cal triar els tribunalsper a les dues franges no buides: 32. Per tant aquest cas aporta un total de 2·1·9,per tant 18 solucions.

∗ D’altra banda existeix el cas en que els dos treballs que comparteixen franja sonassignats a la franja 2. En aquest cas podem triar la franja per al treball 2

entre 2 possibilitats i finalment podem triar els dos tribunals entre un total de 9possibilitats. Per tant aquest cas aporta un total de 1 ·2 ·9, per tant 18 solucions.

• En cas que els tres treballs siguin assignats a la mateixa franja, aquesta franja es podratriar entre 2 possibilitats (ja que si el treball 2 esta assignat aquesta franja no podraser la 2). Un cop triada la franja podrem triar el tribunal per la franja triada entre 3possibilitats (a les altres dues franges se’ls aplicara la restriccio de franges buides i pertant no en podrem triar el tribunal). Aixı doncs aquest cas aporta un total de 3 · 2, pertant 6 solucions.

Sumant les solucions obtingudes per cada casuıstica obtenim un total de 108 + 72 + 18 + 18 + 6,per tant un total de 222 solucions per aquesta instancia.En subministrar la instancia simpler4 l’eina desenvolupada ha retornat un total de 222 solucions,aixı doncs es conclou que la restriccio 4 esta correctament codificada.

6.1.4 Restriccio 5

Per validar el codi de la restriccio 5 introduirem una modificacio al nombre maxim de treballsper franja. S’establira aquest parametre al valor 2 per ser el valor que mes casos contempla.De forma molt similar al cal de la instancia simple en l’estudi de la restriccio 2, calcularemcombinatoriament el nombre de solucions esperades i el compararem amb el nombre de solucionsretornades per l’eina. En aquesta validacio es fara servir el la instancia simpler5 :

1 instancia(simpler5 ,3,3,3,2,2,100,

2 %Disd

3 [](

4 [](1 ,1 ,1),

5 [](1 ,1 ,1),

6 [](1 ,1 ,1)

7 ),

8 %Dist

9 [](

10 [](1 ,1 ,1),

11 [](1 ,1 ,1),

12 [](1 ,1 ,1)

13 ),

14 %solap

15 [](

16 [](0 ,0 ,0),

17 [](0 ,0 ,0),

Page 46: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

36 CAPITOL 6. JOC DE PROVES

18 [](0 ,0 ,0)

19 ),

20 %exp

21 [](

22 [](1 ,1 ,1),

23 [](1 ,1 ,1),

24 [](1 ,1 ,1)

25 )

26 ).

Aquesta instancia es molt poc restrictiva i de fet les seves solucions son gairebe les mateixesque si nomes s’apliquessin la restriccio 2 i la restriccio de franges buides. Per fer el calcul delnombre de solucions per aquesta instancia ens basarem en el calcul fet a l’estudi de la restriccio2, el qual contemplava 3 casos disjunts: el cas en que tots els treballs estan assignats a frangesdiferents; el cas en que dos treballs estan assignat a la mateixa franja i el cas en que tots 3treballs estan assignats a la mateixa franja. Per la instancia simpler5 cal considerar simplementque el tercer cas no es possible, ja que el fet que els tres treballs estiguin assignats a la mateixafranja viola la restriccio del nombre maxim de treballs per franja. Aixı doncs els nombre desolucions per aquesta instancia sera contemplar nomes els dos primers casos disjunts estudiatsper a simple:

• En cas que tots els treballs estiguin assignats a franges diferents: tal con s’ha desenvolu-par anteriorment ofereix 162 solucions.

• En cas que hi hagi exactament dos treballs assignats a la mateixa franja: a l’apartat de-dicat a a la restriccio 2 s’ha calculat que ofereix 162 solucions.

Per tant aquesta instancia te un total de 324 solucions.En subministrar a l’eina aquesta instancia el total de solucions obtingudes ascendeix a 324, laqual cosa confirma que la restriccio 5 esta codificada correctament.

6.1.5 Restriccio 6

Per validar el codi de la restriccio 6 introduirem una modificacio al nombre maxim de treballsper docent. S’establira aquest parametre al valor 2 per ser un valor intermedi que ofereix mescasuıstiques. Calcularem combinatoriament el nombre de solucions esperades i el compararemamb el nombre de solucions retornades per l’eina. En aquesta validacio es fara servir el lainstancia simpler6 :

1 instancia(simpler6 ,3,3,3,2,100,2,

2 %Disd

3 [](

4 [](1 ,1 ,1),

5 [](1 ,1 ,1),

6 [](1 ,1 ,1)

7 ),

8 %Dist

9 [](

10 [](1 ,1 ,1),

11 [](1 ,1 ,1),

12 [](1 ,1 ,1)

13 ),

14 %solap

15 [](

16 [](0 ,0 ,0),

17 [](0 ,0 ,0),

18 [](0 ,0 ,0)

Page 47: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.1. JOC DE PROVES PER RESTRICCIONS 37

19 ),

20 %exp

21 [](

22 [](1 ,1 ,1),

23 [](1 ,1 ,1),

24 [](1 ,1 ,1)

25 )

26 ).

Per calcular el nombre de solucions d’aquesta instancia raonarem de forma similar a com s’hafet anteriorment, en funcio del nombre de treballs a cada franja:

• En primer lloc considerem el cas en que els tres treballs son assignats a franges diferents.Aquest cas correspondria amb una permutacio de 3 elements, per tant 3!, es a dir 6.Respecte a l’assignacio de docents a les franges temin que:

– Per a la franja assignada al treball 1 podem triar lliurement qualsevol de les 3 assig-nacions valides per una franja: (1,2), (1,3) o (2,3), per tant 3 possibilitats.

– Per a la franja assignada al treball 2 no podem triar la mateixa assignacio que s’hatriat per al treball 1 ja que en cas de fer aquesta tria els dos docents assignats jahaurien assolit el maxim de treballs per docent i per tant no existiria cap assignaciovalida per a la franja a que esta assignat el treball 3 (ja que en tenir nomes tresdocents, si dos assoleixen el maxim nomes quedaria un docent disponible). Aixıdoncs per a la franja assignada al treball 2 tenim unicament 2 possibilitats.

– Per a la franja assignada al treball 3 existeix una unica possibilitat ja que anterior-ment s’han assignat a les dues primeres franges dos conjunts diferents de 2 docents,pero en ser dos subconjunts diferents de mida 2 de un conjunt de mida 3 es clar quetindran un element en comu, aixo vol dir que existeix un docent que ja haura assolitel maxim nombre de treballs assignats i per tant per a la franja assignada al treball3 nomes restaran 2 docents i llavor, tenint en compte la restriccio que han d’estarordenats, nomes 1 unica assignacio es possible.

Per tant el total de possibles assignacions de franges es de 3 · 2, per tant 6.

Aixı doncs aquest cas aporta un nombre total de solucions de 6 · 6, per tant 36 solucions.

• En segon lloc estudiem el cas en que exactament dos treballs siguin assignats a la mateixafranja. En aquest cas sigui quina sigui l’assignacio de docents que es faci a la franja ambdos treballs els dos docents assignats assoliran el maxim nombre de treballs possibles ide forma similar a l’argumentat al cas anterior, la franja assignada al treball restant nopodria ser assignada a cap parell de docents sense violar la restriccio de maxim nombrede treballs per docent. Per tant aquest cas no aporta cap solucio correcta.

• Finalment estudiem el cas en que els tres treballs son assignats a la mateixa franja. Aquestcas viola clarament la restriccio de maxim nombre de treballs assignats a cada docent jaque no sera possible assignar a la franja que te tres treballs cap docent sense violar larestriccio.

Aixı doncs la instancia simpler6 te un total de 36 solucions correctes.En subministrar aquesta instancia a l’eina desenvolupada el total de solucions obtingudes as-cendeix a 36, la qual cosa confirma que la restriccio 6 esta codificada correctament.

Page 48: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

38 CAPITOL 6. JOC DE PROVES

6.1.6 Restriccio 7

Per validar el codi de la restriccio 7 introduirem una petita pertorbacio als sol·lapaments. S’es-tablira que la franja 1 i 3 se sol·lapen. Calcularem combinatoriament el nombre de solucionsesperades i el compararem amb el nombre de solucions retornades per l’eina. En aquesta vali-dacio es fara servir el la instancia simpler7 :

1 instancia(simpler7 ,3,3,3,2,100,100,

2 %Disd

3 [](

4 [](1 ,1 ,1),

5 [](1 ,1 ,1),

6 [](1 ,1 ,1)

7 ),

8 %Dist

9 [](

10 [](1 ,1 ,1),

11 [](1 ,1 ,1),

12 [](1 ,1 ,1)

13 ),

14 %solap

15 [](

16 [](0 ,0 ,1),

17 [](0 ,0 ,0),

18 [](0 ,0 ,0)

19 ),

20 %exp

21 [](

22 [](1 ,1 ,1),

23 [](1 ,1 ,1),

24 [](1 ,1 ,1)

25 )

26 ).

Per calcular el nombre de solucions d’aquesta instancia primer cal notar que en aquest cases obligatori que una de les franges sol·lapades quedi buida, en cas contrari, considerant queaquesta instancia nomes consta de 3 docents i que la mida dels tribunals es 2, si a una de lesfranges sol·lapades li assignem 2 docents qualsevol, llavors a l’altra franja sol·lapada no se lipodra assignar cap tribunal sense violar la restriccio ja que cap dels 2 docents assignats a l’altrafranja sol·lapada sera assignable i com nomes existeixen 3 docents, sera impossible assignar-ne2. Fet aquesta consideracio procedim a fer una analisi per casos disjunts tal com s’ha fet per laresta de restriccions, es a dir, en funcio del repartiment de treballs en franges:

• Cas en que els tres treballs siguin assignats a 3 franges diferents: tal com s’ha argumentatanteriorment aquest cas no es compatible amb la instancia simpler7.

• Cas en que exactament dos treballs siguin assignats a la mateixa franja: En primer llochem de triar quins son els dos treballs que son assignats a la mateixa franja, aixo hopodem fer de

(32

)formes, per tant 3 formes. A partir d’aquı cal distingir si els dos treballs

son assignats a una de les franges sol·lapades o a la franja no sol·lapada:

– En cas que siguin assignats a una de les franges sol·lapades podra ser a qualsevol deles dues franges sol·lapades, per tant triarem entre 2, notem que un cop triada aquina de les dues franges sol·lapades s’assignen els dos treballs ja no es pot triar aquina franja s’assigna el treball restant (ja que com s’ha argumentat anteriormentl’altra franja sol·lapada ha de quedar buida i per tant el treball restant s’assignaranecessariament a la franja 2). Feta aquesta tria cal triar els tribunals de les dues

Page 49: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.1. JOC DE PROVES PER RESTRICCIONS 39

franges no buides (la franja 2 i la franja sol·lapada triada), aquesta tria la podem ferentre 3 elements per cadascuna de les dues franges, per tant 3 · 3 = 9 possibilitats.Aixı doncs aquest cas aporta un total de 3 · 2 · 9, per tant 54 possibles solucions.

– En cas que els dos treballs que comparteixen franja no siguin assignats a una franjasol·lapada, llavors necessariament seran assignats a la franja 2 (per ser la unica franjano sol·lapada). Un cop fet aquest aclariment caldra triar a quina franja s’assigna eltreball restant, pot ser indiferentment a la franja 1 o a la 3, per tant 2 possibilitats.Finalment cal triar els tribunals per a les dues franges amb treballs assignats, quecom al cas anterior oferira 9 possibilitats. Aixı doncs aquest cas aporta un total de3 · 2 · 9, per tant 54 possibles solucions.

• Cas en que els tres treballs son assignats a la mateixa franja: en aquest cas podrem triarlliurement a quina franja son assignats, per tant 3 possibilitats. Per la franja triada podremtriar lliurement el tribunal, per tant 3 possibilitats. Aixı doncs aquest cas aporta un totalde 3 · 3, per tant 9 solucions.

Sumant les diferents solucions provinents de les diferents casuıstiques tenim un total de 54+54+9per tant 117 solucions per a la instancia simpler7.L’eina desenvolupada proporciona per a la instancia simpler7 un total de 117 solucions, la qualcosa confirma que la restriccio 7 esta codificada correctament.

6.1.7 Restriccio 8

Per validar el codi de la restriccio 8 introduirem una petita pertorbacio a les experteses. S’esta-blira que el docent 1 no es expert en el tema que tracta el treball 3. Calcularem combinatoriamentel nombre de solucions esperades i el compararem amb el nombre de solucions retornades perl’eina. En aquesta validacio es fara servir el la instancia simpler8 :

1 instancia(simpler8 ,3,3,3,2,100,100,

2 %Disd

3 [](

4 [](1 ,1 ,1),

5 [](1 ,1 ,1),

6 [](1 ,1 ,1)

7 ),

8 %Dist

9 [](

10 [](1 ,1 ,1),

11 [](1 ,1 ,1),

12 [](1 ,1 ,1)

13 ),

14 %solap

15 [](

16 [](0 ,0 ,0),

17 [](0 ,0 ,0),

18 [](0 ,0 ,0)

19 ),

20 %exp

21 [](

22 [](1 ,1 ,0),

23 [](1 ,1 ,1),

24 [](1 ,1 ,1)

25 )

26 ).

Per calcular el nombre de solucions per aquesta instancia farem la distincio per casos disjuntsen funcio de la distribucio de treballs a franges de forma similar al fet a la resta de restriccions:

Page 50: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

40 CAPITOL 6. JOC DE PROVES

• En cas que els tres treballs siguin assignats a franges diferents: existeixen 6 possibilitatsper assignar els treballs a les franges. Tot seguit cal assignar tribunals a les tres franges,per les dues franges en que no esta el treball 3 es poden assignar 3 tribunals per cada.D’altra banda la franja en que esta assignat el treball 3 nomes pot tenir com a tribunal(2,3) ja que el docent 1 no es expert en la materia que tracta el treball 3. Aixı doncsaquest cas aporta un total de 6 · 3 · 3 · 1, per tant un total de 54 solucions.

• En cas que exactament dos treballs estiguin assignats a la mateixa franja cal considerardiferents escenaris en funcio de la posicio que ocupa el treball 3:

– Si el treball 3 es un dels treballs que comparteix franja: aixo pot passar de 2 formesdiferents: juntament amb el treball 1 o amb el treball 2, llavors tenim 3 possiblesfranges per assignar els dos treballs, 2 possibles franges per assignar l’altre treball (jaque si l’assignem a la mateixa franja no serien exactament 2). Respecte a l’assignaciode docents a les franges: per a la franja en que esta assignat el treball 3, tal com s’haargumentat al cas anterior, nomes pot haver-hi una possible assignacio. Respecte altribunal de la franja en que esta assignat l’altre treball tenim total llibertat, per tantes pot assignar de 3 formes diferents. Finalment respecte a la franja sense treballsper la restriccio de franges buides nomes se li pot assignar un unic tribunal. Aixıdoncs aquest sub-cas ofereix un total de 2 · 3 · 2 · 1 · 3 · 1, per tant 36 solucions.

– Si el treball 3 no es un dels treballs que comparteix franja: aixo nomes pot passard’una forma, llavors els dos treballs que comparteixen franja es poden assignar aqualsevol de les 3 franges i el treball 3 nomes es pot assignar a 2 franges (sino noserien exactament 2 treballs els assignats a la mateixa franja). Respecte a l’assignaciode tribunals a les franges, per la franja amb dos treballs assignats es poden assignar3 possibles tribunals, per la franja en que esta assignat el treball 3 nomes hi ha unapossibilitat (considerant que el docent 1 no n’es expert) i per la franja que quedabuida tambe hi ha nomes una possibilitat. Aixı doncs aquest sub-cas ofereix un totalde 1 · 3 · 2 · 3 · 1 · 1, per tant 18 solucions.

• Finalment, en cas que els tres treballs siguin assignats a a la mateixa franja podrem triarentre qualsevol de les 3 franges, pero llavors en aquesta franja estara el treball 3 i com eldocent 1 no es expert en el tema que tracta el treball 3, aquest no podra ser tribunal de lafranja i per tant nomes 1 unic tribunal sera possible per la franja triada, el (2,3). D’altrabanda per la restriccio de franges buides a la resta de franges no es podra triar el tribunal.Aixı doncs aquest cas aporta un total de 3 · 1, per tant un total de 3 solucions.

Sumant les diferents solucions provinents de les diferents casuıstiques tenim un total de 54 +36 + 18 + 3 per tant 111 solucions per a la instancia simpler8.En subministrar aquesta instancia a l’eina desenvolupada aquesta proporciona un total de solu-cions que ascendeix a 111, la qual cosa confirma que la restriccio 8 esta codificada correctament.

Finalment es conclou que durant aquest jocs de proves s’ha confirmat experimentalment elbon funcionament de les restriccions de forma independent i que de forma aıllada funcionencorrectament i tal com s’esperava teoricament que funcionessin.

6.2 Joc de proves global

Per dissenyar aquest joc de proves s’aprofitara la demostracio que el problema es NP presentadaal Capıtol 3: Analisi de complexitat, per contrastar el funcionament de l’eina amb instancies

Page 51: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.2. JOC DE PROVES GLOBAL 41

que activin totes les restriccions.Segons la definicio de de NP introduıda al Capıtol 3, donat un testimoni del problema podemcomprovar en temps polinomic si es tracta d’una solucio correcta o no. Aprofitant aquesta pro-pietat del problema i havent ja comprovat que les restriccions de forma aıllada es comportenadientment podem generar aleatoriament instancies mes grans i comprovar a ma en temps rao-nable si la solucio que ofereix l’eina es una solucio correcta per la instancia generada. Per fer-hosimplement comprovarem que la solucio proporcionada per l’eina no viola cap de les restriccionsdel problema. Noti’s que pel cas en que l’eina conclou que la instancia es insatisfactible aquestresultat no es util.Per aquest joc de proves s’ha decidit generar instancies aleatories per dues raons: d’una bandaen ser aleatories activaran totes les restriccions sense cap control i es podra provar el funciona-ment de l’eina amb instancies realistes per aixı complementar el joc de proves per les restriccionsindividualment i comprovar que les restriccions no nomes funcionen de forma aıllada sino quetambe ho fan en conjunt. D’altra banda en ser instancies aleatories s’evita caure en biaixos deconfirmacio. Per construir aquest joc de proves s’ha generat una gran quantitat d’instancies is’ha provat el desenvolupament de l’eina sobre elles. Per simplificar aquest document s’ha triatun petit subconjunt amb casuıstiques interessants i temps d’execucio alts, per poder-ne estudiarla idiosincrasia. Aquestes instancies s’han generat mitjancant el Generador definit anteriormentamb els seguents parametres: 10 treballs, 10 docents, 10 franges, un maxim de treballs per franjade 10 i un maxim de treballs per docent de 10. La mida del tribunal aixı com les probabilitatsde disponibilitats experteses i sol·lapaments es faran variar per construir instancies insatisfacti-bles o satisfactibles (afectat essencialment per les probabilitats) i per explorar diferents tempsd’execucio (afectat essencialment per la mida dels tribunals).Es presentaran tambe els temps d’execucio de l’eina per a cadascuna de les instancies. Aqueststemps son calculats amb els recursos presentades a la introduccio d’aquest TFG amb les mateixescondicions per totes les instancies.

6.2.1 Aleatoria1

Com a primera instancia generada aleatoriament es tria aleatoria1, aquesta instancia es generadaamb 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 generacio d’aquestainstancia es busca generar una instancia insatisfactible (les probabilitats son desfavorables) perpoder-ne estudiar el temps d’execucio. Aixı doncs queda definida com:

1 instancia(aleatoria1 ,10,10,10,3,10,10,

2 % Disd:

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 % Dist:

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),

Page 52: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

42 CAPITOL 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 % Solap:

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 instancia, l’eina respon que es insatisfactible. Fent una analisi del temps d’exe-cucio a partir de 10 execucions s’obtenen els resultats presentats a la figura 6.1.

Figura 6.1: Temps d’execucio aleatoria1

Aixı doncs per aquesta instancia s’obte una resposta negativa en un temps de 39,578s demitjana.

Page 53: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.2. JOC DE PROVES GLOBAL 43

6.2.2 Aleatoria2

Com a segona instancia generada aleatoriament es tria aleatoria2, aquesta instancia es generadaamb 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 generacio d’aquestainstancia es busca generar una instancia satisfactible (les probabilitats son favorables) per podercomprovar la correctesa de la solucio aixı com el temps d’execucio. Aixı doncs queda definidacom:

1 instancia(aleatoria2 ,10,10,10,5,10,10,

2 % Disd:

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 % Dist:

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 % Solap:

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),

Page 54: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

44 CAPITOL 6. JOC DE PROVES

52 []( 0, 1, 1, 1, 1, 0, 1, 1, 1, 0)

53 )

54 ).

Rebent aquesta instancia, l’eina respon que es satisfactible i ofereix l’assignacio presentada a lafigura 6.2.

Figura 6.2: Testimoni aleatoria2

Es trivial comprovar que aquesta solucio no viola cap de les restriccions del problema i pertant que es tracta d’un testimoni correcte per la instancia, aixı doncs es conclou que l’execuciode l’eina ha sigut adient.Fent una analisi del temps d’execucio a partir de 10 execucions s’obtenen els resultats presentatsa la figura 6.3.

Figura 6.3: Temps d’execucio aleatoria2

Aixı doncs per aquesta instancia s’obte una resposta afirmativa i un testimoni correcte enun temps de 20,372s de mitjana.

Page 55: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.2. JOC DE PROVES GLOBAL 45

6.2.3 Aleatoria3

Com a tercera instancia generada aleatoriament es tria aleatoria3, aquesta instancia es generadaamb 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 generacio d’aques-ta instancia es busca generar una instancia satisfactible (les probabilitats son favorables) perestudiar la correctesa de la solucio aixı com el temps d’execucio. Aixı doncs queda definida com:

1 instancia(aleatoria3 ,10,10,10, 5,10,10,

2 % Disd:

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 % Dist:

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 % Solap:

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)

Page 56: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

46 CAPITOL 6. JOC DE PROVES

53 )

54 ).

Rebent aquesta instancia, l’eina respon que es satisfactible i ofereix l’assignacio presentada a lafigura 6.4.

Figura 6.4: Testimoni aleatoria3

Es trivial comprovar que aquesta solucio no viola cap de les restriccions del problema i pertant que es tracta d’un testimoni correcte per la instancia, aixı doncs es conclou que l’execuciode l’eina ha sigut adient.Fent una analisi del temps d’execucio a partir de 5 execucions s’obtenen els resultats presentatsa 6.5.

Figura 6.5: Temps d’execucio aleatoria3

Aixı doncs per aquesta instancia s’obte una resposta afirmativa i un testimoni correcte enun temps de 360,854s de mitjana.

Page 57: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

6.2. JOC DE PROVES GLOBAL 47

6.2.4 Aleatoria4

Com a ultima instancia generada aleatoriament es tria aleatoria4, aquesta instancia es generadaamb 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 generacio d’aquestainstancia es busca generar una instancia insatisfactible (les probabilitats i la mida del tribunalson desfavorables) per tal d’estudiar el temps d’execucio de l’eina. Aixı doncs queda definidacom:

1 instancia(aleatoria4 ,10,10,10, 5,10,10,

2 % Disd:

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 % Dist:

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 % Solap:

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),

Page 58: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

48 CAPITOL 6. JOC DE PROVES

52 []( 1, 1, 1, 1, 1, 1, 1, 0, 1, 1)

53 )

54 ).

Rebent aquesta instancia, l’eina respon que es insatisfactible. Fent una analisi del temps d’exe-cucio a partir de 5 execucions s’obtenen els resultats presentats a la figura 6.6.

Figura 6.6: Temps d’execucio aleatoria4

Aixı doncs per aquesta instancia s’obte una resposta negativa en un temps de 606,572s demitjana.

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 instancia subministrada.Totes les instancies del problema fetes servir en els jocs de proves es poden trobar al fitxerEina.ecl just a continuacio del codi de l’eina.

Page 59: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Capıtol 7

Refinament de l’eina

Respecte al refinament del metode cal considerar que bona part de les modificacions respecte ala formalitzacio teorica s’han presentat al Capıtol 4, especialment el presentat a l’apartat Defini-cio de restriccions, relacionat amb la satisfactibilitat de certes instancies. D’altra banda tambes’han presentat en el quart capıtol refinaments a priori per millorar el rendiment de l’eina, sentels refinaments d’assignar un tribunal fix a les franges buides i el d’ordenar els membres delstribunals per evitar simetries els mes rellevants pero no els l’unics.

Aixı doncs aquest capıtol se centrara mes en questions de rendiment per considerar que elsrefinaments respecte a la correctesa i simetries han estat tots presentats al Capıtol 4. Per tantaquest capıtol se centrara en els resultats de temps d’execucions presentats al capıtol anteriori es planteja el refinament del metode per tal d’aconseguir millorar l’eficiencia de l’eina sensemodificar-ne els resultats, que en el capıtol anterior ja s’ha conclos que son correctes.Per tal d’implementar les esmentades millores es considera tot un conjunt de casos, que espodrien anomenar trivials, i que ja vist des d’una perspectiva teorica es evident que son insa-trisfactibles. Tot seguit es plantegen aquests casos aixı com la implementacio afegida al codi del’eina per gestionar-los. En tots els casos se seguira el mateix esquema: realitzar la comprovacioadient en cada cas i en concloure que es tracta d’un cas trivialment insatisfactible es fara servirel predicat fail per avortar l’execucio i aixı millorar el rendiment de l’eina. En cas que no s’iden-tifiqui la instancia com a trivialment insatisfactible s’invocara el predicat true per continunaramb l’execucio de l’eina.

7.1 Cas trivial 1

El primer cas trivial considerat consisteix en que si el nombre de docents de la instancia es menoral nombre de membres del tribunal, llavors la instancia sera necessariament insatisfactible, jaque sera impossible ni tan sols construir un tribunal correcte. Formalment tenim que :

D < N =⇒ Insatisfactible

Considerant aquesta analisi, en cas que una instancia satisfaci la restriccio esmentada, llavorsl’eina pot respondre automaticament que la instancia es insatisfactible i acabar. Aquesta novarestriccio queda codificada de la seguent forma:

1 (NombreDocents < MidaTribunal -> fail;true),

49

Page 60: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

50 CAPITOL 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’expertsen el tema que el treball tracta es menor que la mida del tribunal, llavors la instancia seranecessariament insatisfactible, ja que sera impossible construir un tribunal correcte per la franjaa que el treball estigui assignat. Formalment tenim que :

∃t ∈ {0...T} | #{expi,t|expi,t = 1} < N =⇒ Insatisfactible

Considerant aquesta analisi, en cas que una instancia satisfaci la restriccio esmentada, llavorsl’eina pot respondre automaticament que la instancia es insatisfactible i acabar. Per la codificaciod’aquesta restriccio s’empra el predicat occurrences usat ja anteriorment. Aquesta nova restriccioqueda codificada de la seguent forma:

1 ( for(I,1, NombreProjectes), param(Exp ,MidaTribunal)do

2 occurrences (1,Exp[*,I],Ocu),

3 (Ocu < MidaTribunal -> fail;true)

4 ),

7.3 Cas trivial 3

El tercer cas trivial considerat consisteix en que si la suma total de disponibilitats de docents esmenor que el nombre de franges per la mida del tribunal i dividit entre el maxim de treballs perfranja, llavors la instancia sera necessariament insatisfactible, ja que el nombre mınim de frangesno buides sempre sera igual a nombre de treballs/maxim treballs per franja, per cadascunad’aquestes franges sera imprescindible crear un tribunal i per poder crear aquests tribunals seraimprescindible que els docents tinguin disponibilitat almenys per constituir aquests tribunals.Formalment tenim que :

#{disdi,j | disdi,j = 1} < T ∗NMF

=⇒ Insatisfactible

Considerant aquesta analisi, en cas que una instancia satisfaci la restriccio esmentada, llavorsl’eina pot respondre automaticament que la instancia es insatisfactible i acabar, en cas contrari elprograma pot continuar. Per l’implementacio d’aquesta restriccio s’empra el predicat eval to listsimplement per transformar la matriu disd en un format acceptat pel predicat sum, aquestpredicat calcula la suma total dels valors de la matriu disd. Aquesta nova restriccio quedacodificada de la seguent forma:

1 eval_to_list(concat(Disd), Con),

2 sum(Con ,Su),

3 Au is NombreProjectes*MidaTribunal/MaxTreballsxFranja ,

4 (Su < Au ->fail;true),

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 instancia sera necessariament insatisfactible, ja que sera impossible assignar-liuna franja. Formalment tenim que :

∃t ∈ {0...T} | ∀jdistt, j = 0 =⇒ Insatisfactible

Considerant aquesta analisi, en cas que una instancia satisfaci la restriccio esmentada, llavorsl’eina pot respondre automaticament que la instancia es insatisfactible i acabar, en cas contrariel programa pot continuar. Aquesta nova restriccio queda codificada de la seguent forma:

Page 61: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

7.5. CAS TRIVIAL 5 51

1 ( for(I,1, NombreProjectes), param(Dist)do

2 occurrences (1,Dist[I],Ocu),

3 (Ocu < 1 ->fail;true)

4 ),

7.5 Cas trivial 5

El cinque cas trivial considerat consisteix en que si el nombre de treballs es major que el nombrede franges per la capacitat de cada franja , llavors la instancia sera necessariament insatisfactible,ja que tot i omplir totes les franges al maxim no , formalment tenim que :

T > F ∗MF =⇒ Insatisfactible

Considerant aquesta analisi, en cas que una instancia satisfaci la restriccio esmentada, llavorsl’eina pot respondre automaticament que la instancia es insatisfactible i acabar, en cas contrariel programa pot continuar. Aquesta nova restriccio queda codificada de la seguent forma:

1 Aux2 is NombreFranges*MaxTreballsxFranja ,

2 (Aux2 < NombreProjectes -> fail;true),

En provar l’eina amb les modificacions descrites en aquest capıtol sobre els jocs de provesdescrits al capıtol anterior s’observa que els resultats son identics (per tant es pot afirmar queaquesta nova implementacio no altera la correctesa de l’eina).

D’altra banda s’observen temps similar en la majoria dels casos (per tant es pot afirmar queaquesta nova implementacio no disminueix la eficiencia de l’eina).

Finalment s’observa un gran increment en la eficiencia de l’eina en la instancia aleatoria4 queen les proves anteriors trigava una mitjana de 606,572 segons en resoldre’s mentre que amb lanova implementacio (gracies al cas trivial 2) triga una quantitat de temps immesurable (0,00segons) ja que si ens fixem en l’expertesa dels docents en el tema que tracta el treball 8 podemveure que nomes hi ha 4 docents que siguin experts en el tema tractat mentre que la mida delstribunals en aquesta instancia es 5, per tant es impossible construir un tribunal per la franja aque estigui assignat el treball 8 i llavors la instancies es impossible d’assignar. Aquesta observa-cio es pot extrapolar a tot un grup d’instancies que son trivialment insatrisfactibles pero per lesquals pot arribar a ser molt costos concloure’n la insatisfactibilitat simplement esperant que elsolver 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 metode i una millorade l’eina.

Page 62: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs
Page 63: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Capıtol 8

Estudi de l’impacte dels parametresen l’eficiencia

En aquest capıtol s’ha intentat fer una analisi dels resultats obtinguts al capıtol de jocs de provesper tal d’intentar comprendre les raons que fan que algunes instancies siguin molt mes costosesde resoldre que unes altres.

Malauradament el problema consta de molts parametres i aixo provoca que aquesta analisisigui extremadament complexa de dura terme. Despres de realitzar alguns jocs de proves fentvariar els diferents parametres mentre es fixaven la resta de parametres s’han observat algu-nes relacions obvies tals com que a majors disponibilitats mes facil de de trobar assignacionsque satisfacin les restriccions, el mateix ocorre amb les experteses i respecte als sol·lapamentss’observa l’oposat: com menys sol·lapaments menys costos es el problema. D’altra banda elnombre de docents i de treballs aixı com el nombre de franges i els maxims de treballs per franjai de treballs per docents tambe afecten al cost de trobar una assignacio valida existint unescertes franges de relacions entre els parametres que afavoreixen que la instancia sigui satisfac-tible, malauradament aquestes franges son molt fines i de seguida que es varia un parametre lainstancia es torna molt menys costosa de satisfer o insatisfactible, la qual cosa fa molt difıcild’estudiar la idiosincrasia de les situacions en que el temps de calcul es dispara.

Despres d’un seguit de proves es conclou que aquesta analisi resulta extremadament complexi que escapa a l’abast d’aquest Treball de fi de grau i es decideix no presentar les instanciesprovades ni els resultats per ser de poc interes i no aportar cap novetat rellevant i aixı per nocarregar aquest document de dades poc concloents.

53

Page 64: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs
Page 65: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Capıtol 9

Conclusions

En aquest capıtol es presenten les conclusions extretes durant l’elaboracio del present Treballde Fi de Grau com a forma de donar-li una cloenda adient.

La primera conclusio que s’extreu de l’elaboracio d’aquest TFG es que la planificacio realit-zada al Capıtol 1, tot i no captar de forma exacta el desenvolupament final del Treball, va seradient i encertada en la mesura que pot ser-ho una planificacio realitzada a priori. Tambe esconclou que s’han assolit tots els objectius fixats en l’esmentada planificacio i fins i tot algunsnous objectius no planificats que s’han considerat interessants durant el Treball.

Respecte a la formalitzacio del problema a nivell teoric es conclou que la descripcio es realistarespecte a la situacio que preten modelar i que el model teoric presentat representa formalment ide forma correcta la descripcio del problema. Es conclou tambe que els problemes descrits (tantel problema de calcul com el problema de decisio) son adients respecte a la formalitzacio descrita.

D’altra banda respecte a l’analisi de complexitat del problema presentat es conclou que s’hademostrat la NP-Completesa del problema de forma rigorosa recolzant la demostracio en elsresultats existents en el camp de la teoria de la complexitat computacional.

Respecte a la formalitzacio del problema presentada al Capıtol 4 es considera adient la triadel programari ECLiPSe CLP per dur a terme la implementacio de l’eina. Tambe es con-clou que la formalitzacio ha sigut fidel a la descripcio i a la formalitzacio teorica adaptant-laadientment quan ha estat necessaria i raonant correctament tots els canvis introduıts. Es con-clou tambe que tota la implementacio ha sigut explicada d’una forma comprensible i raonada ique la implementacio modular de l’eina permet el seu us i re-aprofitament en problemes similars.

Pel que fa al generador d’instancies presentat en aquest Treball es conclou que tot i ser uncodi senzill compleix les expectatives i la funcio que se n’esperava a l’hora que te una implemen-tacio prou modular per permetre utilitzar-lo com a llibreria externa en futures analisis del l’eina.

Respecte als jocs de proves es considera que son adients per tal de comprovar la correctesade la formalitzacio del problema i la implementacio de l’eina. D’altra banda es conclou queno son suficients per poder estudiar de forma practica i en profunditat les interaccions entreels parametres i la influencia d’aquests en la satisfactibilitat de les instancies, malauradamentaquest objectiu no estava planificat i escapa als objectius del Treball, per tant es pot concloureque en el sentit de l’abast del TFG els jocs de proves son adients.

55

Page 66: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

56 CAPITOL 9. CONCLUSIONS

D’altra banda pel que fa al refinament del metode es considera que els refinaments imple-mentats obeeixen a questions que a nivell teoric milloren l’eficiencia del problema i que aquestrefinament 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 elsobjectius marcats a la planificacio de forma adient aixı com tambe alguns objectius no marcatsinicialment pero considerats escaients durant el desenvolupament i ha aportat una analisi teoricencertat del problema presentat aixı com desenvolupat una eina correcta per la resolucio delmateix.

Page 67: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Glossari

• TFG: Treball final de Grau.

• TFM: Treball final de Master.

• Metode: 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.

• ECLiPSe CLP : Llenguatge de programacio fet servir per codificar el problema.

• ic: llibreria de ECLiPSe CLP feta servir per codificar el problema.

• ic XXX: llibreries addicionals de ECLiPSe CLP fetes servir per la codificacio del proble-ma.

• Solver: software dissenyat per trobar assignacions valides per les variables de la instanciad’un problema tenint en consideracio les restriccions del problema.

57

Page 68: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs
Page 69: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Fitxers adjunts

• Planificacio.pdf : Pla de treball per la realitzacio de tot el Treball.

• Eina.ecl : codi en ECLiPSe CLP per resoldre instancies del problema i conjunt de jocsde proves.

• Generador.java: codi en Java del generador aleatori d’instancies valides.

59

Page 70: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs
Page 71: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Bibliografia

[1] TFGs a la UOC (24/9/2019): https://estudios.uoc.edu/es/tfg-tfm

[2] TFGs al Grau en Enginyeria Informatica (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

61

Page 72: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs
Page 73: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

Apendix A

Manuals d’us

En aquest apendix es presenten els manuals d’us de les dues eines desenvolupades en aquestTFG: d’una banda el Generador, per generar aleatoriament instancies valides del problema id’altra banda l’eina per trobar assignacions valides per una instancia.

A.1 Manual d’us del Generador

El fitxer Generador.java inclou la classe Generador que esta composada per una funcio Generarque genera una instancia valida a partir dels seguents parametres d’entrada:

1 String Fitx;

2 String NomInstancia;

3 int NombreFranges;

4 int NombreProjectes;

5 int NombreDocent;

6 int MidaTribunal;

7 int MaxTreballsxFranj;

8 int MaxTreballsxDocent

9

10 int probDocentDisp =65;

11 int probTreballDisp =100;

12 int probSolap =0;

13 int probExp =65;

14 long Llavor= 0;

Aquests parametres segueixen el funcionament descrit al Capıtol 4. D’altra banda la classeinclou una funcio main que crida a la funcio Genera amb uns parametres fixats i algunesfuncions auxiliars per gestionar la generacio de nombres pseudo-aleatoris.

En cas de voler fer servir el generador d’instancies per generar una unica instancia tan solscal editar els valors definits a la funcio main, compilar el codi inclos al fitxer Generador.java iexecutar-lo. Aquest procediment es pot dur a terme amb les comandes:

1 javac Generador.java

2 java Generador

D’altra banda tambe es pot desenvolupar un codi en Java i cridar al la funcio Generar ambels parametres indicats per tal de generar totes les instancies que es considerin oportunes.

Com a observacio final es rellevant remarcar que es important que el fitxer Eina.ecl estigui almateix directori des del que s’executa el codi, d’aquesta forma la instancia generada sera desadaal final del fitxer i sera mes senzill d’executar l’eina sobre la instancia.

63

Page 74: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

64 APENDIX A. MANUALS D’US

A.2 Manual d’us de l’eina

Per tal de fer servir l’eina sera necessari tenir el programa ECLiPSe CLP . Tenint aquestprograma el procediment per fer servir l’eina sera el seguent: en primer lloc caldra compilarel codi de l’eina aixı com les instancies a resoldre, per aixo anirem a la barra superior deECLiPSe CLP i pitjarem sobre File i tot seguit sobre Compile (mostrat a la figura A.1)aixo obrira un explorador de fitxers mitjancant el qual podrem cercar el fitxer a compilar i enseleccionar-lo es compilara.

Figura A.1: Compilacio del codi

Page 75: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

A.2. MANUAL D’US DE L’EINA 65

El seguent pas sera simplement escriure a la barra de ECLiPSe CLP la comanda re-sol(nominstancia) on nominstancia sera el nom de la instancia que volem resoldre (tal comes mostra a la figura A.2). Tot seguit pitjarem run i ECLiPSe CLP ens retornara la respostaper la instancia subministrada: a la finestra Results quedara reflectit si la instancia ha sigutsatisfactible o no i el temps que ha trigat l’eina en resoldre-la i a la finestra Output and ErrorMessages quedara reflectida la solucio (en cas d’existir) en el format presentat al Capıtol 4 (espot veure a la figura A.2) .

Figura A.2: Execucio i resultats

Finalment en cas de voler generar mes solucions per la instancia s’haura de pitjar a more id’aquesta forma l’eina generaria una nova assignacio, en cas d’existir.

Page 76: Defensa síncrona de TFGs: un problema de planificacióopenaccess.uoc.edu/webapps/o2/bitstream/10609/107066/10... · mecanismes d’avaluaci o com es el cas de la defensa dels Treballs

66 APENDIX A. MANUALS D’US

D’altra banda un cop compilada amb les instancies desitjades, en cas de ser mes convenient,l’eina es pot executar des del terminal. Per executar l’eina d’aquesta manera simplement caldrapitjar dos cops sobre l icona de l’eina des de l’explorador de fitxer i s’obrira una consola com lamostrada a la figura A.3) .

Figura A.3: Eina des de consola

Un cop amb la consola es podran resoldre instancies mitjancant la comanda resol(nominstancia).En executar aquesta instruccio s’obtindra un com la mostrada a la figura A.4) .

Figura A.4: Resolucio des de consola

Caldra respondre amb ”n” a la pregunta sobre les solucions ajornades i introduint ”;” es podraobtenir una nova solucio.

En cas de no voler mes solucions caldra introduir ”.” i es podra sol·licitar la resolucio d’u-na nova instancia.

Un cop finalitzat l’us de l’eina es pot sortir de la consola fent servir la instruccio halt.