IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Création simulateur


Sujet :

Java

  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut Création simulateur
    Bonjour,

    je souhaiterais développer un simulateur en java. Je me suis documenté un peu partout sur le "comment faire un simulateur" mais certaines questions persistent :

    1/ entre programmation événementielle et le multitraitement, que choisir ? Pour ma part, je comptais faire un thread par noeud. Ensuite, je comptais créer un ordonnanceur pour contrôler l'ordre des threads. Bonne idée ?

    2/ dans le cas où l'on effectue la simulation sur un graphe (chaque noeud a plusieurs enfants et plusieurs parents) est-il possible (et pertinent) d'utiliser la méthode des vases communicants ? si oui, existe-t-il un unique vase entre le producteur et ses consommateurs ou un vase pour chaque couple (producteur,consommateur) ?

    Si vous avez besoin de plus de précisions, n'hésitez pas !

    Merci d'avance

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par matieu Voir le message
    Si vous avez besoin de plus de précisions, n'hésitez pas !
    Oui, alors commence par expliquer clairement ce que tu veux faire. Personne n'est devin ici
    Tu veux faire un simulateur de ... ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut
    Désolé !

    Le simulateur va vérifier l'efficacité de l'agencement d'un réseau de soins humanitaire sur un territoire. On trouve des centres de productions de médocs qui envoient leurs productions à leurs fils, les centres de distributions, suivant leurs besoins respectifs.
    Ensuite ces centres de distributions envoient les médocs aux centres de soins qui avec les médecins soignent leurs enfants, les populations malades.

    Voila à quoi ressemble le graphe (bon c'est une ancienne version qui ressemble davantage à un arbre qu'à un graphe) :


  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Faire un Thread par noeud n'apporte pas grand chose. En plus, si le nombre de noeuds peut évoluer à l'infini, tu vas mettre la machine à genou.
    Tu as regardé du côté de la programmation par agents ? Ca s'applique à ton problème.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut
    Dans mon cas, le nombre de nœuds est constant au cours de la simulation. Je suis en train de regarder ce qu'est que la programmation agent mais dans le cadre de mon projet, on ne doit utiliser que java.
    En fait, je me suis lancé dans l'utilisation de threads au début pour simuler le temps. Ensuite après plusieurs heures de recherche et la lecture de la doc JavaSim, j'ai vu qu'il utilisait beaucoup de threads alors je me suis dit que c'était une des méthodes pour faire un simulateur... quant est-il vraiment ?
    Est-ce que je cherche la complication avec ces threads ??

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Je ne connais pas trop, mais par simulation, veux-tu dire que le programme doit présenter une sorte de visualisation de symboles qui se comporte conventionnellement comme leur équivalent réel se comporterait ?

    Si oui, ne devrais-tu pas te demander si threads ou événements se comportent comme quelque chose de ton réseau de soins humanitaires ?

    Si non, peux-tu préciser ce que tu entends pas simulation et le rapport que tu y voies avec les threads et les évènements ?

  7. #7
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut
    En effet par simulation, j'entends la représentation de symboles (mes noeuds) qui se comportent comme leur entités réelles (exemple un centre de soins effectue des demandes de médicaments aux centres de distributions et qui envoies des médecins et des médocs aux populations à soigner)

    Pour moi, j'avais 2 façons d'utiliser les threads :

    1/ soit je découpe le processus de simulation en taches basiques (sauvegarde de l'état précédent (états des noeuds), calculs sur les nœuds, puis mise à jour de l'affichage)

    2/ soit une fois la simulation lancer, mon ordonnanceur lance un thread par noeud, dans un ordre spécifique (genre, les populations calculent leurs besoins en médocs et en médecins, puis à leur tour les centre de soins s'occupent de distribués leur médecins libres et les médocs en fonction de leur stock...).

    concernant mon ordonnanceur, j'utilise l'algo de Peterson (bien pratique. cela dit..)

    Voyez-vous mieux mon projet ??

    Le principe de vases communicants est-il utilisable ici (pour protéger les commandes ou plutôt les transactions entre les nœuds) ?

    Pour finir mon objectif dans ce projet est d'avoir des nœuds qui correspondent à des entités réelles qui fonctionnent de façon indépendantes.
    Je souhaite faire ainsi car j'ai vu que des simulateurs tels que JavaSim utilisent les threads...

    Est-ce un bon choix technique ??

    Merci beaucoup pour votre temps

  8. #8
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Je n'ai aucune idée de ce qu'est l'algorithme pratique de Peterson, ni de celui des vases communiquants (sauf le réel, pour le coup).

    Les threads présentent une bonne approche de traitement parallèle, mais attention toutefois qu'ils ne sont pas des objets, mais une série d'instructions séquentielle. (et, j'imagine que tu le sais, un faux parallélisme).

    Cette série peut passer dans des objets différents, ou rester dans le même objet, et le même objet peut même être parcouru de plusieurs threads différents. Donc l'indépendance d'exécution de chaque noeud ( ? ça existe un noeud chez les organisations caritatives ?? ) n'est pas stricto-sensu rendue par un thread.

    Attention aussi que dans les threads, on ne peut prévoir quelle sera la tâche active ; il se peut que cela ne corresponde pas au fonctionnement réel.

    Il faut donc bien cerner les objets ou paquetages concernant les noeuds du reste, et en java il n'y a rien d'autre que la bonne volonté pour le faire, à ma connaissance.

    En tous les cas tu peux faire une machine java à état ensuite, en espérant que cela correspondent au fonctionnement des noeuds réels.

    Il semble qu'il y ait aussi des ordonnanceurs chez les organisations caritatives, tu as bien de la chance. Attention que la relation ordonnanceur / noeud se fait probablement par transmission d'ordre ( ? ) ou selon les urgences ( ? ).

    Fait gaffe aussi que dans tous ces systèmes la notion de temps, d'horloge commune est importante.

    Tu devrais commencer par un truc hyper-basique, genre un ordonnaceur fourni un médecin à un noeud (incrément d'une variable d'un), le noeud consomme - si vous me passez l'expression - le médecin (décrément d'un), etc.

  9. #9
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par matieu Voir le message
    Dans mon cas, le nombre de nœuds est constant au cours de la simulation. Je suis en train de regarder ce qu'est que la programmation agent mais dans le cadre de mon projet, on ne doit utiliser que java.
    J'ai déjà fait de la programmation par agents, pour simuler un trafic routier dans une ville avec les incidences de réglage de feux rouges, le tout en Java. Ce n'était pas du multi-thread.
    Donc aucun souci pour le choix du langage.

    En fait, je me suis lancé dans l'utilisation de threads au début pour simuler le temps. Ensuite après plusieurs heures de recherche et la lecture de la doc JavaSim, j'ai vu qu'il utilisait beaucoup de threads alors je me suis dit que c'était une des méthodes pour faire un simulateur... quant est-il vraiment ?
    Est-ce que je cherche la complication avec ces threads ??
    Oui, bien trop compliqué. Et comme déjà dit par gifffftane, le temps doit être correctement géré. Il est inutile et couteux en ressources de faire un Thread par élément "intelligent" dans ton cas.
    Tu peux par exemple faire du séquentiel en choisissant un pas de temps suffisant court pour simuler le parallélisme.
    Schématiquement, tu vas créer une liste d'objets, chacun avec sa méthode interaction(). Dans une boucle infinie tu vas parcourir la liste et appeler cette méthode sur chaque objet. Pour la communication entre les objets, il y a plusieurs possibilités, notamment celle appelée "tableau noir".
    Je te laisse le soin de chercher plus d'infos car le sujet est très vaste. Bon courage
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  10. #10
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Salut,

    totalement d'accord avec dinoboggan. Un système multi-agent serait parfait pour ça.
    Jettes un coup d'oeil a l'api Jade, peut-être cela te donnera des idées.

  11. #11
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut
    Merci pour toutes vos réponses.
    Etant donné que je suis un newbie en Java, je ne me suis pas lancé dans la programmation par agent ou dans un autre truc complexe. En plus mon projet ne durais que 3 semaines, du coup c'est fini !

    En tout cas je serais vers quoi m'orienté la prochaine fois ! Merci beaucoup pour votre temps !!

  12. #12
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Par défaut devellopez un simulateur instantannée
    est ce vous pouvez m'aidez pour develloper un simulateur afin de calculer la qosde la voix sur ip

  13. #13
    Nouveau candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Par défaut creation d'un simulateur
    bonjour tout le mondre
    moi je suis entrain de modeliser mon systeme sous forme d'un probleme multicritere (cesta dire jai trois fonction a optimiser)
    et je suis a la phase de simulation de modele mais je ne sais pas quel est le langage adequat utiliser pour la simulation
    mon encadreur ma demander de simuler avec java mais je suis debutante en java ..
    quelqu'un de vous svp m'aider comment commencer a realiser un simulateur en java pour mon modele??
    bonne journee atoute et atous.

  14. #14
    Invité de passage
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1
    Par défaut simulateur en java
    Voilà que j'ai un projet en java, consiste à développer un Simulateur Java pour émuler l'exécution de l'algorithme d'élection dans un anneau anonyme
    proposé par Itai et Rodeh.
    on aura besoin de:
    - définir une interface graphique pour le dessin de graphes (anneaux).
    - associer des threads à chaque noeud de l'anneau dessiné. Cela nous permettra de définir le comportement à faire exécuter par chaque noeud.
    - animer l'exécution de l'algorithme pour tout anneau dessiné.Utilisez des couleurs pour représenter les différents des nœuds et faites apparaître aussi les messages échangés par les noeuds.

    Alors voilà des idées SVP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Projet création simulateur
    Par Lutobor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/11/2013, 15h39
  2. Création simulateur Robot
    Par dr_g. dans le forum Robotique
    Réponses: 4
    Dernier message: 25/03/2010, 14h44
  3. Création d'un simulateur multi-agent similaire à la plateforme Netlogo
    Par housni dans le forum Programmation par agent
    Réponses: 1
    Dernier message: 09/05/2007, 10h22
  4. Création d'un simulateur multi-agent similaire à la plateforme Netlogo
    Par housni dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 09/05/2007, 10h22
  5. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo