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 :

Algorithme génétique : population et maladies


Sujet :

Algorithmes et structures de données

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Algorithme génétique : population et maladies
    Si qqn pouvait me trouver la solution, je le considérerais comme un dieu toute ma vie .

    Il faudrait trouver l'algoritme du cas suivant :

    Calculer l'évolution d'une population avec son taux de natalité, sachant que cette population est en partie malade. Un nombre indéfini de maladies peuvent toucher la population. Chacune des maladies possèdent un taux de contamination, et un taux de mortalité. Une personne peut etre atteinte par plusieurs maladies. On ne peut pas recenscer chacune des personnes individuellement : on a par exemple : 10000 population saine, 230 pop malade de A, 632 malade de B, etc.

    Le pb, c'est que logiquement si une personne peut avoir plusieurs maladies,si elle meurt il faut déterminer et soustraire ,aux populations des contaminés des autres maladies, le nombre potentiel de personnes touchés par plusieurs maladies.

    Exemple : 100 personnes ont A et 200 ont B,et que la pop totale est de 500. A chaque calcul d'évolution, un certains nb de contaminés par A vont mourir et pareil pour les contaminés par B. de plus une partie de la population qui n'était pas touchée, va l'etre par une maladie. Maintenant le pb c'est si des gens qui ont A meurent, cb avaient la maladie B ? Et oui !

    Prenons un exemple qui demontre le pb. Les 500 personnes sont malades, 500 ont A et 500 ont B (pas de bol, hein !). Bon, il pourra pas yavoir plus de contaminé que de gens existants, normal. Mais il va quand même yavoir des morts de A et de B, et dans ce cas là, ils ont tous A et B à la fois ! Donc si on applique betement une soustraction des morts, au final on aura deux fois plus de morts que ce qui est.

    Donc je demande aux gens qui peuve et qui souhaite resoudre ce pb de m'aider. Cela fait plusieurs mois que je n'arrive pas à resoudre cet algoritme. Merci beaucoup d'avance.

    Bon si vous avez besoin de plus d'info demandez moi. Je vous remercie d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 417
    Points : 372
    Points
    372
    Par défaut
    Je suggère d'abord de représenter l'état de la population à un instant donné par un vecteur (dont les coordonnées sont des entiers positifs ou nuls). Par exemple, s'il y a 10 bien portants, 7 malades de A, 5 malades de B, et si 2 individus sont malades à la fois de A et B, le vecteur sera:
    où les 4 chiffres représentent les bien portants, les malades de A seulement, de B seulement, et de A et B. S'il y a trois maladies, il y aura 8 nombres, avec 4 maladies 16 nombres etc... avec n maladies, 2^n nombres. Appelons E l'ensemble de ces vecteurs.

    Ensuite il faut se fixer un intervalle de temps, et calculer l'évolution du vecteur entre deux instants successifs (séparés de cet intervalle de temps: 1 heure, 1 jour, 1 mois ... comme tu veux). C'est à toi de déterminer l'état de la population à l'instant n+1 en fonction de son état à l'instant n. Tu obtiens donc une fonction f de E vers E, qui calcule un état à partir du précédent.

    Le dernier problème est d'itérer la fonction f sans faire trop de calculs. Par exemple de calculer f^1000(i) où i est le vecteur initial. C'est facilement réalisable si f est linéaire, c'est à dire si f peut être représentée par une matrice. Ce devrait être le cas. C'est souvent le cas dans les problèmes de ce genre.

    Il suffit donc maintenant de calculer une puissance de cette matrice, et il y a pour cela un algorithme simple et efficace. Par exemple, pour élever une matrice à la puissance 1000, 15 multiplication suffisent. Il suffit de procéder comme suit pour calculer M^n:

    si n est pair (disons n = 2p) on a M^n = (M^p)(M^p),
    si n est impair (disons n = 2p+1), on a M^n = (M^p)(M^p)M.

    Le calcul est donc très rapide par induction (ou à l'aide d'une boucle).

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Tout d'abord un grand merci ! Merci de m'avoir apporté une réponse qui va dans le sens de ma demande (pas comme chez hardware).

    Alors j'arrive plus ou moins à saisir ce que tu essaie de m'expliquer, mais si tu pouvais m'apportais plus de précisions à ton théorème j'en serai heureux, car n'étant pas dans des études de maths supérieurs, j'ai quelques mal à saisir ton raisonnement.

    Merci encore.

  4. #4
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    En gros le problème consiste à définir un espace vectoriel (un ensemble du même genre que grand N par exemple mais tout de même un peu différent)...
    Dans cet espace (E), une fonction f est définie : c'est une fonction qui prend un vecteur de dimension n et renvoie un autre vecteur de dimension n...
    On peut représenter ça par une matrice (voir cours de matrice, j'ai essayé d'expliquer mais j'ai tout effacé, faut vraiment un cours...) de taille n*n...

    Si l'échelle de temps est la journée:
    - le 1er jour, on fait f(V) où V est le vecteur initial (de dimension n)
    - le 2è jour, on fait f(f(V)) = f°f(V)... On note aussi ça f²(V) (à ne pas confondre avec f au carré) cad la double composition de la fonction f
    - le 3è jour, on fait f°f°f(V) = f^3(V)
    ...
    -le kème jour, on fait f^k(V)...

    En fait il te faut un cours d'algèbre linéaire qui traite d'espaces vectoriels et de matrice, après ça sera limpide...

    A+
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  5. #5
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Une autre piste en supposant qu'avoir une maladie A et une maladie B sont deux choses indépendantes. Si on a A, B, N qui désignent le nombre de malades A, de malades B et la population totale.
    La proba d'avoir la maladie A et A/N donc la population de B qui a aussi la maladie A est AB/N
    On a donc
    A et B : AB/N personnes
    A seule: A-AB/N personnes
    B seule: B-AB/N personnes
    A ou B : A + B - AB/N personnes

  6. #6
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    c'est pas plutôt AB/N² ?
    Proba de A : A/N
    Poba de B : B/N
    proba de A et B : AB/N²...
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  7. #7
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par mathieu_t
    c'est pas plutôt AB/N² ?
    Proba de A : A/N
    Poba de B : B/N
    proba de A et B : AB/N²...
    La probabilité qu'une personne ait les 2 maladies est bien AB/N². La valeur AB/N dans mon message désigne le nombre (moyen) de personnes qui ont les deux maladies. C'est bien entendu la taille de la population multiplié par la probabilité: N * AB/N² = AB/N

  8. #8
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Pardon j'avais mal lu ...
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Enfin, dans ton cas, tu n'as jamais de probabilités, tu as des certitudes !

  10. #10
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par Miles
    Enfin, dans ton cas, tu n'as jamais de probabilités, tu as des certitudes !
    D'après ce que j'ai compris du problème, on a la certitude du nombre de personnes atteintes par chaque maladie mais tout le reste n'est pas clairement défini. Pour que l'on puisse répondre à la question, il est nécessaire d'avoir plus d'informations.
    DrTopos a proposé de baser le calcul sur une loi d'évolution déterministe des populations (s'il est possible de la définir). C'est à mon avis la meilleure solution mais il est souvent difficile d'avoir la loi d'évolution exacte. Si on ne peut pas tout connaître avec certitude, l'utilisation de loi de proba amène à une bonne approximation de l'évolution sans avoir besoin de beaucoup d'information.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    quelles informations complémentaires souhaiteriez vous avoir ?

  12. #12
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Est-ce que ce sont des probabilités d'être malade ou des certitudes d'êtres malade ?

  13. #13
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par libertyblood
    quelles informations complémentaires souhaiteriez vous avoir ?
    Dans le problème tel qu'il est défini si on sait uniquement que a=50 personnes ont la maladie A et b=60 personnes ont la maladie B, on sait uniquement qu'il existe une valeur n telle que
    • 50 - n ont la maladie A
      60 - n ont la maladie B
      n ont les deux maladies.

    Il manque donc une information dans l'énoncé du problème pour pouvoir le résoudre.

    Cette information manquante peut avoir différentes formes. La plus simple est de mesure n en inspectant la population: Peut-on mesurer n à tout instant? Quelles informations peut-on avoir?
    Sinon, le plus simple est d'avoir une loi "déterministe" du type n=f(a,b). Existe-t-il une telle loi? Si cette loi n'existe pas, comme peut-on l'estimer? Par exemple, peut-on dire qu'un personne atteinte de la maladie A a
    • (1) plus de chance,
      (2) autant de chance ou
      (3) moins de chance

    d'être atteinte de B qu'une personne qui n'a pas la maladie A

  14. #14
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par Miles
    Est-ce que ce sont des probabilités d'être malade ou des certitudes d'êtres malade ?
    J'insiste encore sur le fait que lorsque je parle de probabilité je ne parle pas de la probabilité d'être malade puisqu'apparamment on connaît les tailles des population avec certitude.

    Les probabilités sont introduites sur le fait d'avoir simultanément les deux maladies: là, en effet, il semble qu'aucune mesure sur la population ne soit disponible. Je reformulerai ta question ainsi: connaît-on avec certitude le nombre de personnes qui ont les deux maladies?

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé de répondre au plus de questions possibles :


    On connait avec certitude le nombre de malades de chaque maladies : c'est un pourcentage de la population totale, elle aussi connue.

    On connait avec certitude le % de personnes malades de A (ou B, ou C), qui va mourir, à chaque calcul.

    On ne connait pas le nombre de malades qui ont les deux (ou trois,ou+) maladies.

    Une personne qui a la maladie A a autant de chance d'être atteinte de B, qu'une personne qui n'a pas la maladie A.

  16. #16
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Là, ça ne va pas, d'une part tu connais avec certitude le nombre de personnes qui ont une maladie, de l'autre on a une espèce de probabilité du nombre de personnes qui ont plusieurs maladies.
    Soit on sait avec certitude tout, soit on sait tout par probabilité et c'est plus le même problème.

  17. #17
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par libertyblood
    On connait avec certitude le nombre de malades de chaque maladies : c'est un pourcentage de la population totale, elle aussi connue.

    On connait avec certitude le % de personnes malades de A (ou B, ou C), qui va mourir, à chaque calcul.

    On ne connait pas le nombre de malades qui ont les deux (ou trois,ou+) maladies.

    Une personne qui a la maladie A a autant de chance d'être atteinte de B, qu'une personne qui n'a pas la maladie A.
    Merci pour ces précisions. Comme on n'a pas de moyen de savoir avec certitude combien de personnes à plusieurs maladies (et lesquelles), il faut approximer ce nombre. D'après la dernière remarque, l'hypothèse de l'indépendance des probas que j'avais faite dans mon premier mail est justifiée. Lorsqu'il n'y a que deux maladies A et B, on a donc (voir mon premier mail:
    AB/N personnes ont les deux maladies A et B
    A-AB/N personnes ont uniquement A
    B-AB/N personnes ont uniquement B
    N - A - B + AB/N personnes ne sont pas malades.
    Il s'agit d'une espérance mathématique donc d'une estimation qui est meilleure lorsque N est grand.

    Pour le problème à trois maladies, par le même raisonnement:
    ABC/N² personnes ont à la fois A, B et C.
    AB/N - ABC/N² ont les maladies A et B mais pas C
    BC/N - ABC/N² ont B et C
    AC/N - ABC/N² ont A et C
    A - AB/N - AC/N + ABC/N² ont uniquement A
    B - AB/N - BC/N + ABC/N² ont uniquement B
    C - BC/N - AC/N + ABC/N² ont uniquement C
    Le reste de la population n'est pas malade.

    Lorsqu'il y a plus de maladies, les formules se compliquent mais le raisonnement reste le même.

    Comme on connaît les tailles de la population, on peut savoir comment elle évolue à partir des pourcentages de mortalité.

    Lorsque tu sais qu'une personne est à la fois malade de A et de B, sais-tu quelle est sa probabilité de mourir ou faut-il la calculer (ie l'estimer)?

    S'il faut la calculer, on doit supposer l'indépendance des événements "mourir de A et mourir de B". On appelle %A la proba de mourir de A et %B la proba de mourir de B. La proba de survie est (1-%A)(1-%B) (il faut survivre aux deux maladies). La proba de mourir lorsqu'on est malade de A et de B est donc %AB = 1 - (1-%A)(1-%B)

    Est-ce que cela répond au problème?

  18. #18
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Oui cela répond en très grande partie au pb ! Je vais voir de mon côté et reposté si j'ai à nouveau des pbs.

  19. #19
    Membre régulier Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Points : 85
    Points
    85
    Par défaut
    Coucou ici !
    Et bien comme on se retrouve !
    C'est Chimy d'IUT ! Alors je vois comment vous faites pour coder !

  20. #20
    Membre habitué
    Homme Profil pro
    Ingé. Qualité Sécurité Environnement
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingé. Qualité Sécurité Environnement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 127
    Points
    127
    Par défaut
    Je sais pas si un algo est reellement nécessaire... des outils mathématiques statistiques existent et sont parfaitement adaptés à ton cas : regarde du coté des ACP 'Analyse en Composantes Principales' si c'est insuffisant tu pourras l'adapter a ton cas

Discussions similaires

  1. Algorithme génétique : taille de la population
    Par fathese dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 17/03/2016, 10h37
  2. Algorithmes génétiques
    Par progfou dans le forum Intelligence artificielle
    Réponses: 5
    Dernier message: 27/09/2005, 08h55
  3. Les algorithmes génétiques
    Par fred9510 dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 27/01/2005, 10h27
  4. Algorithme génétique
    Par senke dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 26/08/2002, 16h55
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

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