module special.voisinage_evolution

Inheritance diagram of ensae_teaching_cs.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.

source on GitHub

Classes

class truncated documentation
Ville Définit une ville qui va évoluer par la suite.
VilleImage Définit une ville à partir d’une image (donc non aléatoire).

Functions

function truncated documentation
display affichage
pygame_simulation Simulation graphique. Illuste la résolution du puzzle
round arrondit chaque couleur

Methods

method truncated documentation
__init__ constructeur
__init__ constructeur
_initialisation  
_voisinage calcul de la répartition du voisiage
_voisinage calcul de la répartition du voisiage
count  
count  
evolution évolution d’une itération à l’autre
evolution é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)[source]

Bases : object

Définit une ville qui va évoluer par la suite.

@param colors couleurs vives : simulation 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)[source]

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)[source]

calcul de la répartition du voisiage

@param i i,j coordonnées @param j @param mat matrice @return dictionnaire { classe:nombre }

count()[source]

@return la population

evolution()[source]

é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)[source]

Bases : ensae_teaching_cs.special.voisinage_evolution.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)[source]

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)[source]
ensae_teaching_cs.special.voisinage_evolution.display(self, screen, x, pygame)[source]

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>)[source]

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)

Voir Evolution d’un voisinage, d’une population.

ensae_teaching_cs.special.voisinage_evolution.round(r, g, b)[source]

arrondit chaque couleur