module special.voisinage_evolution
#
Short summary#
module ensae_teaching_cs.special.voisinage_evolution
Implémente une simulation d’évolution des catégories de population selon un modèle de Schelling.
Classes#
class |
truncated documentation |
---|---|
Définit une ville qui va évoluer par la suite. |
|
Définit une ville à partir d’une image (donc non aléatoire). |
Functions#
function |
truncated documentation |
---|---|
affichage |
|
Simulation graphique. Illuste la résolution du puzzle |
|
arrondit chaque couleur |
Methods#
method |
truncated documentation |
---|---|
constructeur |
|
constructeur |
|
calcul de la répartition du voisiage |
|
|
calcul de la répartition du voisiage |
|
|
évolution d’une itération à l’autre |
|
|
évolution d’une itération à l’autre |
Documentation#
@file @brief Implémente une simulation d’évolution des catégories de population selon un modèle de Schelling.
- class ensae_teaching_cs.special.voisinage_evolution.Ville(cote=100, group=3, taille=3, riche=False, th2=1.2, renouvellement=0.15, delay=1)#
Bases :
object
Définit une ville qui va évoluer par la suite.
- @param colors couleurs vivessimulation sans tenir compte de riches ou pauvres,
seulement regroupement
- @param colors_grade simulation en tenant compte des riches, du plus foncé
au plus clair (riches)
constructeur
@param cote côté du carré utilisé pour la simulation @param group nombre de catégories de gens @param taille chaque individu regarde ses voisins à +/- taille près @param riche simulation avec riche ou non @param th2 le voisin le plus pauvre peut être contaminé,
si la différence de classes est importante (cl1 > cl2 * th2)
- @param renouvellement à chaque itération, une certaine proportion des pâtés sont mis à jour,
cette proportion correspond au renouvellement
@param delay la simulation prend en compte la ville lors des « delay » dernières itérations
On tire au hasard la classe d’un pâté de maison dans un disque de rayon cote.
- __init__(cote=100, group=3, taille=3, riche=False, th2=1.2, renouvellement=0.15, delay=1)#
constructeur
@param cote côté du carré utilisé pour la simulation @param group nombre de catégories de gens @param taille chaque individu regarde ses voisins à +/- taille près @param riche simulation avec riche ou non @param th2 le voisin le plus pauvre peut être contaminé,
si la différence de classes est importante (cl1 > cl2 * th2)
- @param renouvellement à chaque itération, une certaine proportion des pâtés sont mis à jour,
cette proportion correspond au renouvellement
@param delay la simulation prend en compte la ville lors des « delay » dernières itérations
On tire au hasard la classe d’un pâté de maison dans un disque de rayon cote.
- _voisinage(i, j, mat)#
calcul de la répartition du voisiage
@param i i,j coordonnées @param j @param mat matrice @return dictionnaire { classe:nombre }
- count()#
@return la population
- evolution()#
évolution d’une itération à l’autre
@return nb1,nb2
- class ensae_teaching_cs.special.voisinage_evolution.VilleImage(image, cote=100, group=3, taille=3, riche=False, th2=1.2, renouvellement=0.15, delay=1)#
Bases :
Ville
Définit une ville à partir d’une image (donc non aléatoire).
constructeur
@param image nom d’une image pour définir l’initialisation @param cote cote du carré utilisé pour la simulation @param group nombre de catégories de gens @param taille chaque individu regarde ses voisins à +- taille près @param riche simulation avec riche ou non @param th2 le voisin le plus pauvre peut-être contaminé,
si la différence de classes est importante (cl1 > cl2 * th2)
- @param renouvellement à chaque itération, une certaine proportion des pâtés sont mis à jour,
cette proportion correspond à renouvellement
@param delay la simulation prend en compte la ville lors des « delay » dernières itérations
On tire au hasard la classe d’un pâté de maison dans un disque de rayon cote.
- __init__(image, cote=100, group=3, taille=3, riche=False, th2=1.2, renouvellement=0.15, delay=1)#
constructeur
@param image nom d’une image pour définir l’initialisation @param cote cote du carré utilisé pour la simulation @param group nombre de catégories de gens @param taille chaque individu regarde ses voisins à +- taille près @param riche simulation avec riche ou non @param th2 le voisin le plus pauvre peut-être contaminé,
si la différence de classes est importante (cl1 > cl2 * th2)
- @param renouvellement à chaque itération, une certaine proportion des pâtés sont mis à jour,
cette proportion correspond à renouvellement
@param delay la simulation prend en compte la ville lors des « delay » dernières itérations
On tire au hasard la classe d’un pâté de maison dans un disque de rayon cote.
- _initialisation(im)#
- ensae_teaching_cs.special.voisinage_evolution.display(self, screen, x, pygame)#
affichage @param screen écran @param x dimension d’un pâté de maison
- ensae_teaching_cs.special.voisinage_evolution.pygame_simulation(pygame, first_click=False, folder=None, x=6, nb=100, group=6, max_iter=150, th2=1.75, image=None, flags=0, fLOG=<function noLOG>)#
Simulation graphique. Illuste la résolution du puzzle
@param pygame module pygame @param first_click attend la pression d’un clic de souris avant de commencer @param folder répertoire où stocker les images de la simulation @param size taille de l’écran @param delay delay between two tries @param x pour l’affichage, taille d’un pâté de maison à l’écran @param group … @param nb taille du carré de la simulation en nombre de pâtés de maisons @param th2 … @param max_iter nombre d’itérations @param image définition de la ville @param flags see pygame.display.set_mode @param fLOG logging function @return @see cl Ville
La simulation ressemble à ceci :
Pour lancer la simulation:
from ensae_teaching_cs.special.voisinage_evolution import pygame_simulation import pygame pygame_simulation(pygame)
- ensae_teaching_cs.special.voisinage_evolution.round(r, g, b)#
arrondit chaque couleur