01.05.2013 Views

Pràctica Dilema del Presoner - DTIC - Universitat Pompeu Fabra

Pràctica Dilema del Presoner - DTIC - Universitat Pompeu Fabra

Pràctica Dilema del Presoner - DTIC - Universitat Pompeu Fabra

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Programació II <strong>Pràctica</strong> <strong>Dilema</strong> <strong>del</strong> <strong>Presoner</strong><br />

#Estrategia Nom Autor #Confrontacions Guanyades Perdudes Empat Punts<br />

Estr.<br />

Totals<br />

... ... ... ... ... ... ... ...<br />

... ... ... ... ... ... ... ...<br />

Aquestes dades representen el número de confrontacions realitzades per cada estratègia.<br />

En el cas de implementar únicament les estratègies bàsiques, hi ha un total de 15<br />

possibles confrontacions. Després quantes confrontacions s’han guanyat (contant només<br />

el nombre de punts d’una confrontació concreta contra una estratègia determinada),<br />

quantes s’han perdut, i quantes s’han empatat. Finalment quina és l’acumulació de punts<br />

totals d’una estratègia, com a resultat de totes les confrontacions amb totes les<br />

estratègies.<br />

5.4. Ordenació <strong>del</strong> resultat<br />

La taula que mostra el resultat final ha de estar ordenada descendentment pel número de<br />

punts totals, de forma que aparegui primer la millor estratègia, és a dir, la guanyadora de<br />

la nostra competició.<br />

5.5. Anàlisi de l’eficiència<br />

Per a cada una de les estratègies que programeu heu d’analitzar la seva complexitat<br />

computacional (recordeu que com a mínim cal implementar les cinc estratègies descrites<br />

abans). Per exemple, de les estratègies descrites més amunt, la complexitat de “Segons-<br />

Majoria” és més alta que la de les altres, perquè?<br />

Aquesta anàlisi l’heu de incloure en la memòria de la pràctica.<br />

6. Requeriments Addicionals<br />

1. No podeu fer servir bucles (while, do-while ni for) per aquesta pràctica. Ho heu<br />

de fer tot amb recursivitat. Alguns algorismes són clarament recursius (per<br />

exemple, esbrinar totes les possibles confrontacions entre estratègies), alguns<br />

altres els sabríeu resoldre més fàcilment de forma iterativa, però com veureu tot<br />

algorisme iteratiu es pot escriure també recursivament. Pels objectius d’aquesta<br />

pràctica no hi ha elecció, s’ha de fer recursivament.<br />

2. No us podeu limitar a escriure totes les funcions en un sol fitxer de<br />

implementació (.c)<br />

És obligatori dividir el vostre projecte en fitxers de capçalera o definició (.h),<br />

per una banda, i els fitxers de implementació (.c) per l’altra.<br />

Els fitxers .h han de contenir les definicions de les funcions (nom de la funció, i<br />

<strong>del</strong>s paràmetres) i les estructures de dades. A més a més, heu de posar-hi els<br />

comentaris necessaris per explicar què fa cada funció.<br />

3. La memòria l’heu de gestionar de forma dinàmica. És a dir, si heu de crear<br />

vectors, no podeu suposar cap mida màxima en el moment d’escriure<br />

l’algoritme, sinó que aquesta depèn de l’execució (nombre d’estratègies, nombre<br />

de iteracions, etc).<br />

4. Cal que prepareu una memòria explicant la vostra pràctica. Aquesta<br />

explicació ha de incloure les estratègies utilitzades, amb una descripció <strong>del</strong> seu<br />

funcionament en cas que n’hi hagi alguna més apart de les cinc que s’han descrit<br />

més amunt. També heu de descriure les estructures de dades que heu utilitzat.<br />

Finalment heu de incloure una anàlisi de la complexitat computacional de les<br />

estratègies que heu fet servir.<br />

15 Gener 2007 <strong>Universitat</strong> <strong>Pompeu</strong> <strong>Fabra</strong> 6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!