Update ARE-DYNAMIC.py
This commit is contained in:
parent
d71e7b5a8d
commit
9e2f962cb8
164
ARE-DYNAMIC.py
164
ARE-DYNAMIC.py
|
@ -59,7 +59,7 @@ TypeGrilleInitiale = 3
|
||||||
Iteration = 0
|
Iteration = 0
|
||||||
|
|
||||||
# nombre max d'itérations
|
# nombre max d'itérations
|
||||||
MaxIterations = 2
|
MaxIterations = 4
|
||||||
|
|
||||||
# stratégie par défaut
|
# stratégie par défaut
|
||||||
StratParDefaut = 0
|
StratParDefaut = 0
|
||||||
|
@ -132,6 +132,9 @@ def partie1v1(joueur, adversaire):
|
||||||
StratsResultats[adversaire["strategie"]][2][Iteration][1] += 1
|
StratsResultats[adversaire["strategie"]][2][Iteration][1] += 1
|
||||||
StratsResultats[adversaire["strategie"]][2][Iteration][2] += ans_prison[0]
|
StratsResultats[adversaire["strategie"]][2][Iteration][2] += ans_prison[0]
|
||||||
|
|
||||||
|
joueur["etat"] = etatj
|
||||||
|
adversaire["etat"] = etata
|
||||||
|
|
||||||
joueur["annees_de_prison"] += ans_prison[0]
|
joueur["annees_de_prison"] += ans_prison[0]
|
||||||
adversaire["annees_de_prison"] += ans_prison[1]
|
adversaire["annees_de_prison"] += ans_prison[1]
|
||||||
|
|
||||||
|
@ -477,7 +480,166 @@ def simulation():
|
||||||
return Grille
|
return Grille
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
### Affichage dynamique et graphiques
|
||||||
|
|
||||||
|
|
||||||
|
def matRecup(i, param):
|
||||||
|
"""array*str-> array
|
||||||
|
Récupère la matrice avec seulement le paramètre stratégie pour chaque joueur , à litération i voulue"""
|
||||||
|
matR = np.random.randint(0,1,(TailleGrilleX,TailleGrilleY))
|
||||||
|
|
||||||
|
|
||||||
|
matrice = HistoriqueGrilles[i]
|
||||||
|
|
||||||
|
|
||||||
|
for ligne in range (0,TailleGrilleX): #int ligne
|
||||||
|
for colonne in range (0, TailleGrilleY): #int colonne
|
||||||
|
matR[ligne][colonne]=matrice[ligne][colonne][param]
|
||||||
|
|
||||||
|
return matR
|
||||||
|
|
||||||
|
#Couleurs des Stratégies
|
||||||
|
CouleursStrat=['b','r','black','g','purple']
|
||||||
|
|
||||||
|
def afficher_strat_dynamique():
|
||||||
|
fig=plt.figure()
|
||||||
|
fig.suptitle('Animation des stratégies')
|
||||||
|
|
||||||
|
cmap = mpl.colors.ListedColormap(["b","r" ,"black" ,"g" ,"purple"])
|
||||||
|
|
||||||
|
bounds=[0,1,2,3,4,5]
|
||||||
|
norm=mpl.colors.BoundaryNorm(bounds, cmap.N)
|
||||||
|
img=plt.imshow(matRecup(0, 'strategie'), interpolation = "nearest", cmap = cmap , norm = norm)
|
||||||
|
|
||||||
|
cb=plt.colorbar(img , cmap=cmap , norm=norm , boundaries = bounds , ticks=bounds)
|
||||||
|
labels = np.arange(0, 5, 1)
|
||||||
|
cb.set_ticklabels(labels)
|
||||||
|
|
||||||
|
def update(next_iteration,*args):
|
||||||
|
img.set_array(matRecup(next_iteration , 'etat'))
|
||||||
|
return [img]
|
||||||
|
|
||||||
|
anim = animation.FuncAnimation(fig, update, frames=range(MaxIterations), interval=500, repeat = False)
|
||||||
|
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
def affichage_strats_resultats_totaux():
|
||||||
|
"""array->graph
|
||||||
|
Retourne les diagrammes en baton qui mettent en évidence le nombre moyen d'années
|
||||||
|
de prison en fonction de la stratégie et le nombre d'utilisation de chaque stratégies """
|
||||||
|
|
||||||
|
#initialisation des paramètres
|
||||||
|
#list gain
|
||||||
|
gain=[]
|
||||||
|
#list strat
|
||||||
|
stratUtili=[]
|
||||||
|
|
||||||
|
#nb_utilisations
|
||||||
|
utilisateurs=list()
|
||||||
|
|
||||||
|
#uti[strat][iter] = nb
|
||||||
|
|
||||||
|
#iteration
|
||||||
|
iteration=[]
|
||||||
|
|
||||||
|
for i in range(5):
|
||||||
|
gain.append(0)
|
||||||
|
stratUtili.append(0)
|
||||||
|
|
||||||
|
for i in range(0,len(ListeStrategies)):
|
||||||
|
stratUtili[i]=StratsResultats[i][0]
|
||||||
|
if StratsResultats[i][0]==0:
|
||||||
|
gain[i]
|
||||||
|
else:
|
||||||
|
gain[i]=StratsResultats[i][1]/StratsResultats[i][0]
|
||||||
|
utilisateurs.append([])
|
||||||
|
|
||||||
|
for i in range(0,MaxIterations+1):
|
||||||
|
for j in range(0,len(ListeStrategies)):
|
||||||
|
utilisateurs[j].append(StratsResultats[j][2][i][0])
|
||||||
|
|
||||||
|
iteration.append(i)
|
||||||
|
|
||||||
|
Strat=('0','1', '2','3' ,'4')
|
||||||
|
|
||||||
|
x_pos = np.arange(len(Strat))
|
||||||
|
|
||||||
|
plt.subplot(221)
|
||||||
|
plt.title("Nombre d'adoptions de chaque stratégie")
|
||||||
|
plt.bar(x_pos, stratUtili, align='center' , color=CouleursStrat)
|
||||||
|
|
||||||
|
plt.xlabel("Stratégies")
|
||||||
|
plt.ylabel("Nombre individus ayant adopté stratégie")
|
||||||
|
plt.xticks(x_pos,Strat)
|
||||||
|
|
||||||
|
plt.subplot(222)
|
||||||
|
plt.title("Nombre moyen d'années de prison de chaque stratégie")
|
||||||
|
plt.bar(x_pos, gain, align='center', color=CouleursStrat )
|
||||||
|
|
||||||
|
plt.xlabel("Stratégies")
|
||||||
|
plt.ylabel("Nombre moyen d'années de prison ")
|
||||||
|
plt.xticks(x_pos,Strat)
|
||||||
|
|
||||||
|
plt.subplot(223)
|
||||||
|
plt.title("Evolution du nombre d'utilisateurs de chaque stratégie au cours des itérations")
|
||||||
|
plt.xlabel('Iterations')
|
||||||
|
plt.ylabel("Nombre utilisateurs")
|
||||||
|
|
||||||
|
for i in range(len(ListeStrategies)):
|
||||||
|
plt.plot(iteration,utilisateurs[i], CouleursStrat[i] ,linewidth=5 ,label="Stratégie" + str(i))
|
||||||
|
|
||||||
|
plt.show()
|
||||||
|
plt.legend()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
init_complete()
|
init_complete()
|
||||||
|
simulation()
|
||||||
|
affichage_strats_resultats_totaux()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def _ext(M):
|
def _ext(M):
|
||||||
|
|
Loading…
Reference in New Issue