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
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 />
5.2. Execució de la Competició d’Estratègies<br />
Com s’ha dit, totes les estratègies s’han de confrontar amb totes les altres, incloent amb<br />
si mateixes (què passa quan dos traïdors competeixen un amb l’altre?). Com a paràmetre<br />
al vostre programa heu de poder passar:<br />
1. El nom <strong>del</strong> fitxer amb la matriu <strong>del</strong> joc <strong>del</strong> dilema <strong>del</strong> presoner, com per<br />
exemple la que s’ha mostrat en la Tabla 1 (es podria fer servir una altra matriu).<br />
Per fer aquesta part cal que reutilitzeu la <strong>Pràctica</strong> 1. La matriu <strong>del</strong> la Tabla 1 es<br />
representaria en el fitxer de la següent forma:<br />
2 4<br />
3 3 0 5<br />
5 0 1 1<br />
Tabla 2. Format de matriu en que es pot reutilitzar la <strong>Pràctica</strong> 1<br />
2. El nom <strong>del</strong> fitxer on es guardarà el resultat de la competició, seguint el format<br />
que s’explica més avall.<br />
3. El nombre de iteracions que cal fer en cada confrontació 1 . Abans s’ha posat com<br />
a exemple el número 200, però això podria canviar. En concret, si el número que<br />
es passa és natural, doncs el seu significat serà el de representar quantes vegades<br />
cal iterar cada confrontament.<br />
Per altra banda, si aquest paràmetre és un 0, llavors cal llegir un tercer<br />
paràmetre, que serà un número real entre 0 i 1. Aquest número es farà servir per<br />
saber si cal seguir iterant novament en la confrontació actual, o si pel contrari la<br />
podem donar per acabada. El número real <strong>del</strong> tercer paràmetre representarà la<br />
probabilitat de seguir iterant. Per exemple, si aquest valor és 0.8, després de cada<br />
confrontació tenim un 80% de probabilitat de seguir iterant, i un 20% d’acabar la<br />
confrontació actual i haver de passar a confrontar unes altres estratègies. La<br />
forma en que podeu simular aquest comportament aleatori és utilitzant la funció<br />
“rand()” <strong>del</strong> llenguatge C, per tal de obtenir un número aleatori entre 0 i 1. Si<br />
aquest número és més gran que 0.8 (en l’exemple) doncs parem la confrontació<br />
actual, altrament seguim.<br />
Així doncs, exemples de possibles crides al vostre programa (que s’ha de dir<br />
dilema.exe), podrien ser:<br />
dilema matriu.txt resultat.txt 230<br />
dilema matriu2.txt resultat2.txt 0 0.85<br />
5.3. Format <strong>del</strong> fitxer de sortida<br />
El fitxer de sortida s’ha de generar automàticament en finalitzar la competició, i ha de<br />
contenir, per una banda, les descripcions de les estratègies, seguint el format:<br />
Nom Estratègia 1: descripció textual<br />
Nom Estratègia 2: descripció textual<br />
...<br />
i per altra banda heu de generar una taula amb la següent informació:<br />
1 Hauria de quedar clara la diferència entre el que s’ha anomenat una iteració, i el que s’ha anomenat un<br />
confrontació.<br />
15 Gener 2007 <strong>Universitat</strong> <strong>Pompeu</strong> <strong>Fabra</strong> 5