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

Algorithmes et structures de données Discussion :

Cherche algorithme pour gestion d'humains


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de dontDeleteMe
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Par défaut Cherche algorithme pour gestion d'humains
    Bonjour,

    Je suis en train de faire un programme qui gère des êtres humains virtuellement, bien sûr.

    Voilà, d'abord, j'ai fait un générateur aléatoire qui génèrent des humains aux hasards selon une liste de critères:
    - taille
    - poids
    - cheveux
    - groupe sanguin
    - yeux
    - sexe
    - Q.I.
    - tendance sexuelle
    - type de peau
    - race
    - épaisseur et longueur des os
    - nombre de globules blancs et de globules rouge, etc.)
    - etc.

    J'aimerais faire en sorte que tous ces humains réagissent comme dans la vraie vie.
    Par exemple :

    - qu'ils forment des groupes, dans lesquels certains seront admis et d'autres exclus
    - qu'ils se reproduisent entre eux
    - que la majorité veut être meilleur que les autres (libéralisme)
    - qu'il y ait des minorités qui n'arrivent pas à s'insérer dans la société (gros, bêtes, timides, etc.)
    - qu'ils développent des outils pour progresser et évoluer
    - qu'ils évoluent
    -etc.

    Comment faire ? Par où dois-je commencer ?

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Bien le bonjour,

    C'est un domaine très délicat mais aussi très intéressant. Il va te falloir définir des comportements tels que "aller vers les autres", "raciste", "imaginatif" etc ... (qui peut rejoindre certains des critères que tu as déjà trouvés) pour trouver les actions à faire pour chaque individu.
    Tu boucles sur chaque individu et tu détermines son comportement en fonction des individus autour, de l'environnement, des actions en cours, etc.

    Cette détermination sera une heuristique, à toi de bien la régler à force d'essais et d'observations.

    Ta simulation sera réaliste dès lors que tous les sentiments humains pourront être retrouvés à partir des sentiments "de base" et que ton heuristique sera adaptée.
    Bon, ça rejoint la philosophie pour ce qui concerne la détermination des sentiments de base.

  3. #3
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut Microcosmes
    De toutes façons, cela sent la programmation orienté objet.
    Le procédural pur n'arrivera à rien pour ce genre de choses.
    A votre place je commencerais modeste avec deux ou trois critères.
    Le côté aléatoire des individus sera pris en charge par les constructeurs, mais rien ne vous interdit de créer des 'générations' (un constructeur prenant en argument deux pointeurs sur des objets de même type), avec transmissions de 'gènes'.
    Ensuite il faut définir des fonctions d'affinité sous forme de méthodes prenant en argument un individu (objet) du même type et renvoyant un flottant entre 0 et 1.
    Il faut ensuite organiser des rencontres aléatoires entre les individus.
    Les groupes peuvent être crées au moyens de collections (ne réinventez pas la roue utilisez les classes de collections du langage que vous utilisez).
    Les groupes se constitueront donc au hasard des rencontres et des affinités.
    Par la suite, plus le groupe est important et plus son pouvoir d'attraction devient important. Prévoir donc une fonction de rencontre groupe <-> individu en fonction de l'affinité entre le groupe (constitué autour d'une caractéristique) et l'individu.
    On peut faire des choses intéressantes et s'amuser beaucoup. Le seul danger est de prendre au sérieux les "résultats" qui en sortent. La société n'est pas (encore) modélisable.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  4. #4
    Membre confirmé Avatar de dontDeleteMe
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Par défaut
    Oui, en effet.

    Je pense aussi que pour l'héritage des gènes, je pourrai mettre à profit l'héritage entre les classes.

    Il faudrait aussi que je me renseigne auprès de quelques sociologues. Mais, mes observations de tous les jours m'aident déjà pas mal :

    J'ai déjà remarqué, comme l'a dit Zavonen, que les groupes sont attractifs proportionnellement à leur taille. Un humain a tendance a vouloir faire partie d'un groupe, club, cercle...

    Certains de ces regroupements sont très fermés, ce qui augmentent leur attractivité, puisqu'ils cultivent un genre de mystère et les humains aiment le mystère, en général.

    Une de mes observations est aussi justement que tout être est attiré par l'inconnu. On peut dire que ça l'excite et qu'il aime trouver des réponses à ses interrogations.

    Sinon, pour l'instant j'en suis toujours à mon générateur aléatoire.

  5. #5
    Membre confirmé Avatar de dontDeleteMe
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Par défaut
    De plus, une de mes plus vieilles observations est qu'un individu se comportera toujours différemment selon la personne avec qui il est, ou dans le groupe dont il fait partie.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 301
    Par défaut
    Cela peut être interessant de faire des recherches du côté des systèmes multi-agents, où chaque agent (ici tes personnes) dispose de règles simples de comportement. La mise en interaction des agents permet généralement de bien modéliser des systèmes complexes. Tu peux également regarder du côté des automates cellulaires où chaque cellule change d'état en fonction de son environnement (cf le jeux de la vie).

Discussions similaires

  1. cherche algorithme pour résoudre une question
    Par bayari dans le forum Ruby
    Réponses: 0
    Dernier message: 05/07/2010, 23h35
  2. cherche algorithme pour créer un spoke(~roue de vélo)
    Par patoche.05 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 03/02/2009, 12h52
  3. Cherche de module pour gestion LPT1
    Par Perl53 dans le forum Modules
    Réponses: 1
    Dernier message: 05/12/2008, 13h43
  4. Réponses: 2
    Dernier message: 30/03/2007, 17h17
  5. Cherche livre pour initiation à algorithmes.
    Par argon dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 02/05/2005, 10h42

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