Bonjours à tous ,
Je suis à la recherche de bonne idée pour résoudre un problème algorithmique qui me sèche depuis une dizaines de jours...

Alors je pose le contexte:
- J'ai un plan quasi-infini (quasi = limité par la taille d'un flottant 64bit),
- J'ai une grande quantité d'objet mouvant sur ce plan (entre 10k et 100k), ils ne sont pas repartie aléatoirement et ont tendance à se regrouper.
- J'ai un process pour représenter un objet (le process gére cet objet, le déplace, ...)(ce ne sont pas des proccess système, ils sont extrement léger, des process Erlang pour les intimes ),
- J'ai pour chaque process la possibilité de communiquer avec un autre de manière asynchrone (par envoie de message).

Maintenant le problème:
Comment gérer de manière efficace une gestion des collisions entre les différents objets (et ceux de manière de maniere fluide) ?

Donc je galère, non pas que je ne sache pas faire, mais d'habitude je travail dans un environnement clos avec beaucoup moin d'objet. J'ai deja envisager plusieurs solutions mais sont pas top top...

La première c'est une approche naive, mon objet envoie un message aux autres avec sa position et sa géométrie, et les autres lui reponde si il y a collision. Problème: Ca marche trés bien avec peu d'objet, mais le temps de propagation est trop long pour une grande quantité d'objet (sans parler des ressources machines necessaire).
La seconde c'est d'utiliser ca mais après un partionnement spatial avec un Quadtree ou un R-tree, le problème c'est que je ne sais pas comment partionner un environnement infinie, et surtout comment le mettre à jours en temps reel...

J'espère avoir été clair et surtout j'espere que l'un de vous va pouvoir m'aider...

Merci