Choix du voisinage dans une simulation discrète

Un choix pas anodin

a marqué ce sujet comme résolu.

Tout le monde se secoue ! :D

J'ai commencé (il y a 3 minutes) la rédaction d'un tutoriel au doux nom de « Choix du voisinage dans une simulation discrète » et j'ai dans l'objectif de proposer en validation un texte aux petits oignons. Je fais donc appel à votre bonté sans limite pour dénicher le moindre pépin, que ce soit à propos du fond ou du fond. Ou encore du fond. Vous pourrez consulter la bêta à votre guise à l'adresse suivante :


Ceci est une ébauche de tuto, titre non fixé, dont l'écriture a été réalisée avec une seule main. C'est dire.

Je le diffuse très tôt car il n'existe aucun document accessible traitant de ce sujet à ma connaissance, ni en français ni en anglais. Or, je souhaitais répondre précisément à une question sur le forum (donc je fait un tuto ; logique :-° ), et ce genre de problème est courant. Fort problématique pour celui qui ne les connait pas, les effets de réseaux sont discrets voire vicieux, mais se corrigeront facilement après la lecture du tuto. N'est-ce pas ?

À l'attention, des relecteurs :

  • le tuto est-il accessible ou trop abrupte ?
  • avez-vous déjà vu cela d'un manière ou d'une autre, si oui avez-vous des sources ?
  • les objectifs sont-ils clairs ? Et atteints ?
  • Voyez vous autre chose à ajouter ?

La structure est a priori celle qui sera conservée. Les schémas ASCII seront remplacés par de vrai images (animées). Je compte écrire et diffuser les codes permettant de les générer (là, c'est dessiner, car je sais ce qu'on obtient). Toutes les images doivent-elles être sous forme de javascript activables, ou un gif suffit dans le tuto, seuls les exemples finaux (et réglables) seraient des simul javascript ?

Merci !

+0 -0

Hello !

Je n'ai pour l'instant lu que l'introduction :

on a fréquemment recourt à la discrétisation

Fréquemment seulement ? Comme la mémoire d'un PC est finie, on n'est pas obligé de procéder tout le temps comme ça ?

c'est-à-dire au fait d'utiliser un réseau discret (et de fait, des cases) en lieu et place d'un continuum

Un exemple (ou plusieurs) serait le bienvenu.

L'une d'elle est la risque de déformation lors des interactions ou lors du calcul des distances.

Là aussi, un exemple aiderait à comprendre.

Dans ce tutoriel, nous traiterons d'un cas courant et avec une forte influence : celui de la manière dont le voisinage influence la simulation. Ce voisinage est défini comme la liste des voisins d'un site.

Un exemple ?


Comme tu peux le constater, je pense que l'introduction manque d'exemples. Pour être exacte, le contexte ne me semble pas assez posé, donc, n'étant pas familier avec la simulation, je ne vois pas trop où tu veux m'emmener.

Peut-être pourrais-tu partir d'un problème concret à simuler, puis expliquer rapidement l'intérêt de le discrétiser et amener le lecteur à se poser la question du choix du voisinage.

Tchou

+0 -0

Fréquemment seulement ? Comme la mémoire d'un PC est finie, on n'est pas obligé de procéder tout le temps comme ça ?

On distingue le cas où on discrétise explicitement, avec des cases, et celui où on n'a pas de réel discrétisation, mais où la machine impose des limitations. Par exemple, on peut placer des particules dans une boite avec une position représentée par des flottants et faire une simulation à partir de là. Si on a bien des erreurs d'arrondi, il n'y a pas de réseau effectif, et on n'aura jamais deux particules au même endroit.

c'est-à-dire au fait d'utiliser un réseau discret (et de fait, des cases) en lieu et place d'un continuum

Un exemple (ou plusieurs) serait le bienvenu.

Ou changer les prérequis. ^^ Si "faire une simulation avec des cases" ne te donnes aucune image en tête, le tuto t'est inutile.

L'une d'elle est la risque de déformation lors des interactions ou lors du calcul des distances.

Là aussi, un exemple aiderait à comprendre.

OK. L'exemple est simple : la distance entre deux cases compté en nombre de case dépend du fait que tu t'autorises ou non à passer par les diagonales.

Dans ce tutoriel, nous traiterons d'un cas courant et avec une forte influence : celui de la manière dont le voisinage influence la simulation. Ce voisinage est défini comme la liste des voisins d'un site.

Un exemple ?

Juste en dessous. Il faut que je le remonte dans l'introduction. :)

Comme tu peux le constater, je pense que l'introduction manque d'exemples. Pour être exacte, le contexte ne me semble pas assez posé, donc, n'étant pas familier avec la simulation, je ne vois pas trop où tu veux m'emmener.

Peut-être pourrais-tu partir d'un problème concret à simuler, puis expliquer rapidement l'intérêt de le discrétiser et amener le lecteur à se poser la question du choix du voisinage.

Vayel

Pour le problème concret, effectivement, surtout que j'en ai un qui me sert de fil rouge. Par contre, c'est déjà un point un peu tordu des simulations (et souvent passé sous silence), donc aborder ce tuto sans avoir fait de simulation (au moins un truc du genre défi de Clems feux de forêt) n'a guère de sens.

Une partie de la 1re section devrait effectivement remonter dans l'intro.

Merci. :)

Édit : ta promptitude à relir les tutos m'étonnera toujours. :D

+0 -0

J'ai juste lu l'intro et la conclusion pour l'instant.

Je souhaiterai remercier Marc Durand, pour les longues discutions à propos du choix d'un réseau pou simuler intelligemment des mousses.

+0 -0

Salut, j'ai survolé. Tu devrais mettre à mon avis explicitement quelque part l'expression discrétisation spatiale ou discrétisation de l'espace. Parce que « discrétisation » tout court peut aussi faire référence à la discrétisation du temps et tout ce qui va avec (pas de temps fixe, pas de temps variable, etc.), qui est encore un autre problème en simulation.

Merci.

Je profite de votre présence ici pour demander dans quel catégorie devrait se ranger un tel tuto. J'ai vu qu'Aabu avait mis algorithmique (moi de même), mais ça ne me convient pas trop. Ça risque de finir avec un quadruple tag algo, math, physique, jeux vidéo.

+0 -0

Est-ce que ça va parler choix de discrétisation ?

Parce que j'ai eu un peu de mal à comprendre le titre du tutoriel. Je m'attendais à voir le choix de la discrétisation d'un modèle continue car par définition on ne sait faire que des simulations discrètes. C'est d'ailleurs ce que ton introduction laisse à penser.

Du coup, je m'attendais à voir stabilité, consistence, convergence et conditions CFL pour les méthodes de discrétisation les plus connus.

Après c'est sûrement une déformation professionnelle mais, je pense que ça gagnerait à clairement définir les deux problèmes pour dire lequel tu traites. :)

+0 -0

Est-ce que ça va parler choix de discrétisation ?

Non. Choix du réseau de voisinage.

Parce que j'ai eu un peu de mal à comprendre le titre du tutoriel. Je m'attendais à voir le choix de la discrétisation d'un modèle continue car par définition on ne sait faire que des simulations discrètes. C'est d'ailleurs ce que ton introduction laisse à penser.

Donc le titre et l'intro sont à reprendre. En fait, on voit facilement que la distance entre deux cases comptée en nombre de case dépend du fait que tu t'autorises ou non à passer par les diagonales. Bah c'est beaucoup plus général que ça, ça peut changer le résultat de nombreuses simulations. Et comme souvent, c'est gênant, on cherche des moyens efficace d'éviter ce phénomène.

Du coup, je m'attendais à voir stabilité, consistence, convergence et conditions CFL pour les méthodes de discrétisation les plus connus.

Vous êtes deux à me dire que mon intro est carrément pourri. :D J'en prends bonne note.

+0 -0

Ou changer les prérequis. ^^ Si "faire une simulation avec des cases" ne te donnes aucune image en tête, le tuto t'est inutile.

Je pense que je satisfais les pré-requis pour suivre le tutoriel (sans l'affirmer non plus, hein). J'ai eu l'occasion de faire de la méthode d'Euler, par exemple. Mais je n'ai pas assez d'expérience sur la question pour comprendre les problèmes que tu soulèves sans avoir d'exemple.

Et puis, en plus de rendre l'introduction plus explicite, partir d'un exemple de jeu vidéo, ça peut être chouette. :)

+0 -0

Salut,

Je suis assez d'accord avec les remarques précédentes : le contexte est mal posé. Par ailleurs, si tu veux donner rapidement ton exemple du calcul des distances avec ou sans diagonales, tu peux passer par des cas visuels (un jeu vidéo à tiles apparentes genre pokémon, ou un jeu de plateau à cases comme les échecs - qui sont par ailleurs une bonne occasion de présenter la notion de voisin, puisqu'un pion n'a de voisins qu'en face et en diagonale, alors qu'un fou n'en a qu'en diagonale et une tour qu'en face/côté).

Pour ce qui concerne le fil rouge, je viens d'avoir une idée (je n'y ai pas réfléchi outre mesure, donc si ça se trouve ça sera pas adapté…) : une simulation (Newtonienne) de trou noir. Pour calculer le déplacement des objets voisins, il te faut la distance pour calculer la force de gravitation, donc tu introduits ta problématique des calculs de distances. Quand un objet est assez proche, il est englouti par le trou noir (passage de l'horizon) : il faut donc définir proprement ce qu'est un voisin. Si tu veux je dois pouvoir faire une telle simu vite fait et voir si les résultats dépendent (spectaculairement) de ces choix. Après en tant que physicien, je ne peux qu'approuver la fin sur Ising :) On peut aussi imaginer un cas de croissance bactérienne (je pense deviner que tu avais ça en tête quand tu parles de diffusion), mais tu n'as pas la problématique des distances du coup.

Pour finir, il y a un truc que je trouve excellent dans ton tuto, c'est que tu soulignes le fait qu'un code de simulation doit être testé contre des cas connus analytiquement pour vérifier sa validité. C'est bête, mais quand on débute en simulation on n'y pense pas forcément…

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte