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 />

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

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

Saved successfully!

Ooh no, something went wrong!