Un equip inLaber premiat a HackEPS

Un equip inLaber premiat a HackEPS
Premiats:

A l’inLab FIB és habitual xerrar i compartir anècdotes amb els companys amb els que comparteixes espai de treball, tot i que no sempre arribes a treballar-hi conjuntament. La idea de col·laborar en un mateix projecte ens va dur a apuntar-nos a la hackathon HackEPS.


Així que aquest passat dissabte 26 de novembre, ens vam aixecar ben d’hora per a anar tots junts cap a l’Escola Politècnica Superior de Lleida, on ens hi esperava un esdeveniment curosament organitzat per l’associació juvenil LleidaHack que comptava amb la participació d’unes 160 persones. Entre aquestes, de seguida vam trobar algunes cares familiars: uns quants dels organitzadors de la HackUPC que, si havien assistit buscant noves idees, de segur que en van trobar, ja que durant tota la hackathon es van oferir diferents activitats, reptes i xerrades que van aportar positivament a l’experiència.
La jornada va començar amb una presentació en un amfiteatre on s’hi explicaven, entre d’altres coses, qui eren els organitzadors, que es podia fer a la hackathon, quines normes s’havien de seguir i quins àpats se’ns oferirien. Seguidament van pujar, una a una, les cinc empreses que feien d’sponsor de l’esdeveniment, a revelar quins eren els reptes que proposaven. El nostre equip, prenent atenció als requisits que s’estaven exposant, pensàvem que n’hi havia alguns de més o menys interessants, i més o menys alineats amb el que considerem que són les nostres habilitats. Finalment, quan Origen Studio va proposar un repte centrat en constraint programming de seguida vam estar d’acord en que era en el que hi volíem competir.


El repte es subdividia en tres parts. Les dues primeres es basaven en desenvolupar un algorisme d’scheduling per a assignar un conjunt de tasques d’una comanda a diferents màquines per a ser executades. Hi havia una llista de restriccions que contemplaven dependències entre tasques, a quines màquines s’hi podien executar, etc. que la solució trobada havia de cumplir. Aquest tipus de problema s’assembla molt als que els estudiants de computació de la FIB es troben a les pràctiques de l’assignatura Lògica a la Informàtica (LI), on es busca definir un conjunt d’àtoms, variables i predicats que generen una fórmula en CNF (Conjunctive Normal Form) on, posteriorment, un SAT solver és capaç de trobar-hi una solució, o bé determinar com a insatisfactible.


Vam usar les eines que coneixem (Prolog) per a crear una solució al primer problema que trobava la distribució de tasques òptima. Al segon problema s’hi feien certes ampliacions que impossibilitaven atacar-lo de la mateixa forma, ja que els casos eren exponencialment més difícils i trobar l’òptim era inviable. Tot i que vam dedicar-hi certs esforços obtenint alguns progressos, finalment no el vam solucionar del tot. En tot cas, l’equip va pivotar a temps per a aconseguir el tercer punt, que era fer una visualització del resultat de l’algorisme implementat, de forma que qualsevol persona pogués entendre l’assignació proposada. Vam crear una simple aplicació web que compilava el programa Prolog amb l’entrada del problema, n’extreia el resultat, i el retornava al navegador per a ser visualitzat.
Finalment vam presentar la nostra solució al jurat de l’empresa que oferia el repte, els quals es van sorprendre de que féssim servir Prolog, ja que no el coneixien. Després de les presentacions vam parlar-hi una estona i ens van donar algunes intuïcions de com reduir la complexitat del segon problema sacrificant que la solució fos òptima, i ens van recomanar fer una mirada les “Google Optimization Tools” per a considerar una alternativa basada en IA i funcions heurístiques.

Per a clausurar l’event, estem contents d’haver guanyat el premi, i de properament rebre un parell d’ulleres de realitat virtual que tenim moltes ganes de provar! A més, ens han comunicat que també ens han atorgat el premi “Josep Maria Ribó” a les Bones Pràctiques de Programació!