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

Intelligence artificielle Discussion :

Formule mathématique pour résoudre un jeu de simulation itératif avec des prédateurs et des proies


Sujet :

Intelligence artificielle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Formule mathématique pour résoudre un jeu de simulation itératif avec des prédateurs et des proies
    Bonjour,

    On m'a récemment montré un jeu de simulation très simple. Il s'agit d'un jeu de simulation itératif avec des prédateurs et des proies. A chaque cycle, ils doivent déterminer l'angle de leur direction et avancer.

    Mon soucis est pour calculer le meilleur angle de fuite pour les proies.

    Basiquement, si une proie est en danger par rapport à un prédateur, on oriente la proie dans la direction strictement opposé au prédateur.

    Mon soucis, c'est quand une proie est en danger par rapport a 2 prédateurs ou n prédateurs. Un bout de code détermine les prédateurs pour lesquels la proie est dans leur champ de vision.

    Il faudrait que j'établisse une formule mathématique qui détermine le meilleur angle pour la fuite.

    Mes données sont les suivantes :
    Position X et Y de tout le monde par rapport a un référentiel fixe
    Angle de direction de chacun par rapport au référentiel fixe (par exemple, un angle de 0 veut dire que la proie est orientée plein nord, 90 est, 180 sud et 270 ouest.

    Un exemple :
    Un prédateur en (1,1) avec un angle de 45°
    Un autre prédateur en (3,3) avec un angle de 225°
    La proie en (2,2)
    Pour une "meilleure" fuite, la proie devrait prendre la direction de 135° ou 315°.

    ^^ Voilà, vous y voyez une formule mathématique ou ça vous rappelle un truc vous ?

    Merci d'avance

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    avril 2004
    Messages
    3 748
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : avril 2004
    Messages : 3 748
    Points : 7 351
    Points
    7 351
    Par défaut
    Salut,

    Citation Envoyé par DarkSolune Voir le message
    Voilà, vous y voyez une formule mathématique ou ça vous rappelle un truc vous ?
    C'est un problème qui se résoud facilement en utilisant des vecteurs...

    Sinon, en faisant la moyenne des angles, tu obtiendras le même résultat
    Et pour faire encore mieux, tu peux pondérer chaque prédateur suivant la distance à la proie.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre éclairé
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : août 2008
    Messages : 554
    Points : 709
    Points
    709
    Par défaut
    Normalement il exite une fonction potentielle qui gère ça
    If you type Google into Google, you Can break the internet" - The IT Crowd

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    avril 2004
    Messages
    3 748
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : avril 2004
    Messages : 3 748
    Points : 7 351
    Points
    7 351
    Par défaut
    En passant, une question similaire avait déjà été discutée ici.

    Bon, c'était avec des loups et des moutons, mais ça doit aussi marcher avec des lions et des gnous...

    Il y avait aussi prise en compte de la pente du terrain, mais qui peut le plus peut le moins...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    Je propose une formule en poursuivant l'idée de plegat avec N prédateurs (de la moyenne angulaire et de la pondération)

    P (xp,yp) le point représentant la proie

    Ai (xi,yi) le point représentant chaque prédateur
    ai l'angle de leur champ de vision

    Tu calcule d'abord la distance Di de chaque prédateur Ai par rapport à la proie P:
    Di = sqrt((xp-xi)^2 + (yp-yi)^2)

    A partir de là, tu crée des poids Gi (valeurs entières) à chaque Ai dans l'ordre décroissant par rapport aux Di.
    Si tu rencontre 2 distances consécutives égales, tu leur attribue le même poids.
    Le Ai le plus éloigné reçoit le poids 1 et le plus proche reçoit au maximum N.

    L'angle de fuite idéal est alors
    af = sum(i=0..N,Gi*ai) / sum(i=0..N,Gi)

    En reprenant ton exemple:
    P(2,2)
    A1(1,1) a1=45
    A2(3,3) a2=225

    D1=sqrt((3-2)^2+(3-2)^2)=sqrt(2)
    D2=sqrt((1-2)^2+(1-2)^2)=sqrt(2)
    Les 2 prédateurs reçoivent dont le même poids G1=G2=1

    Donc af = ((G1*a1) + (G2*a2))/(G1+G2)
    = ((1*45) + (1*225))/(1+1)
    = 135

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

Discussions similaires

  1. Formule mathématique pour générer un nombre entre 32 et 127
    Par taupy dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 16/04/2012, 23h29
  2. Réponses: 2
    Dernier message: 13/12/2010, 22h06
  3. Besoin d'une formule mathématique pour le million
    Par isa150183 dans le forum Mathématiques
    Réponses: 9
    Dernier message: 29/06/2010, 08h26

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