OVH Cloud OVH Cloud

automate graphe

2 réponses
Avatar
Pif
Bonjour, je souhaite représente de grands automates, graphes ou arbre en
java. Actuellement, j'ai un objet qui contient une liste successeurs
(via une hashtable) et chaque noeud est un objet, ce qui permet de
contenu la notion d'état de sortie ou d'entrée par exemple.

Le problème, c'est que quand on arrive à 1 millions de sommets, le
nombre d'objets en est un multiples, et ca prend vite des centaines de
méga de mémoire alors qu'au départ, tout cela tient dans un fichier un 2
ou 5 ou 10 Mo.

Ma question, c'est connaissez vous les librairies optimisées par une
utilisation de primitives pour représenter de tels automates, évitant de
concevoir des objets à tout va ?

merci !

2 réponses

Avatar
KiLVaiDeN
"Pif" wrote in message news:cm8558$epu$
Bonjour, je souhaite représente de grands automates, graphes ou arbre en
java. Actuellement, j'ai un objet qui contient une liste successeurs
(via une hashtable) et chaque noeud est un objet, ce qui permet de
contenu la notion d'état de sortie ou d'entrée par exemple.

Le problème, c'est que quand on arrive à 1 millions de sommets, le
nombre d'objets en est un multiples, et ca prend vite des centaines de
méga de mémoire alors qu'au départ, tout cela tient dans un fichier un 2
ou 5 ou 10 Mo.

Ma question, c'est connaissez vous les librairies optimisées par une
utilisation de primitives pour représenter de tels automates, évitant de
concevoir des objets à tout va ?

merci !


Bonjour,

Étant donné le nombre d'éléments que tu souhaites instancier, je te suggère
de t'orienter plutôt vers des structures simples de type tableau, avec des
types primitifs.
Ne serait-il pas plus judicieux et efficace de travailler sur des fichiers
plutôt
qu'en mémoire, si ton application est vraiment si gourmande en mémoire ? je
pense que ces entités que tu essaies de faire évoluer sont adaptées à une
écriture séquentielle lors de la création, puis à une lecture à accès
aléatoire pour la recherche, mais je ne parle pas en connaissance de cause,
je n'ai d'expérience qu'avec les arbres binaires dans ce domaine.

Bon courage

K

Avatar
Pif
ce ne sont pas des arbres binaires mais des arbres à lettres, les arbres
binaires sont très simples à séquencialiser... les algorithmes sur les
arbres à lettre ne peuvent pas s'appliquer de la même façon...

on peut séquentialiser, mais ca implique à la construction, les
modifications sont particulièrement lourdes...