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 :

Distribution équitable de points sur de multiples droites


Sujet :

Algorithmes et structures de données

  1. #1
    Membre actif Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Points : 263
    Points
    263
    Par défaut Distribution équitable de points sur de multiples droites
    Bonjour à tous,

    Je voudrais aborder un problème au quel je suis confronter et dont je n'arrive pas à percevoir de solution simple, il m'as sembler que ce forum était le plus adapter à mes besoins:

    On peut conceptualiser mon problème de la manière suivante:

    On as un ensemble de droites de taille variées, sur chaque droite on trouve un nombre variable de points d’intérêts.
    Les point d’intérêt on une répartition variable pour chaque problème.
    On cherche à récupérer une liste de n points d’intérêt régulièrement distribuer le long des droites.
    Sachant que les coordonnées de chaque point d’intérêt sont connues, le nombre et les tailles des droites sont connues.

    Cet énoncer est une tentative pour expliquer mon problème métier qui est : à partir d'une liste de polymorphisms (considérant uniquement des SNP) connue sur un génome donné retourné une liste de polymorphismes régulièrement réparti sur ce dernier.

    La solution que j'ai envisagées est la suivante:
    1) calculer la distance optimal séparant chacun des point d’intérêt sélectionnée
    2) prendre le premier point d’intérêt l'ajouté à la liste des point d’intérêt sélectionnée, puis chercher le prochain d’intérêt se trouvant le plus proche de la distance optimal.
    3) itérer

    J'ai l'impression (peut-être fausse) qu'il existe déjà dans la littérature des algorithme résolvant des problèmes approchant celui-ci, j'ai néanmoins été incapable de les trouver.

    Si vous avez d'autres pistes à me proposer je suis ouvert à toute proposition

    Je tien à préciser que je ne suis pas un habituer de ce forum, ni de ce sujet, il se pourrais donc que je rate des solution évidente ou bien des concepts.

    D'avance merci
    CKL
    N°°b forever
    --
    may the be with you

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    Je n'ai pas tout compris à la problématique que tu expose :

    Quand tu parle de tes "N points régulièrement distribuer le long des droites", quels sont ces points ?

    J'ai bien compris qu'on avait plusieurs droites de longueur variable avec X point d'intérêts et qu'il fallait calculer une "distances optimal". Que je j'exprimerai plus en un "point central optimal".

    Si c'est bien le cas, il va falloir que tu regarde du côté des barycentres. De mémoire, il y a le barycentre classique et il y a le une autre version qui limite la distance basé sur "le carrés pondérés des distances".

    Cependant, je ne vois pas bien sur quel liste de points, on réalise l'opération . Est-ce sur une opération par point ? Ce qui fait qu'on a 1 point optimal pour N droites ?

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut


    si j'ai bien tout compris tu veut contrôler la place de marqueur précis dans différents génome pour en définir des similitudes ?

    si j'ai bien compris ... ma première approche serais de trouver un point médian et à partir de celui ci essayer de retrouver mes différents éléments avec des "pas" défini entre les SNP .

    mais bon j'ai peut être pas tout compris
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 700
    Points
    8 700
    Billets dans le blog
    43
    Par défaut
    Sous réserve d'avoir pigé ton problème...

    Soit xi l'emplacement d'un point d'intérêt sur un segment de longueur L, tel que i est la position d'un point d'intérêt.

    Soit N le nombre de points d'intérêt.

    Il faut donc trouver une distance d telle qu'il existe un xixi+k.d est aussi un point d'intérêt avec k entier naturel.

    Une façon naïve de procéder est de considérer une matrice carré M de dimensions NxNMij = distance entre les points d'intérêt xi et xj.
    Ensuite, pour chaque longueur possible d'intervalle d, entre 1 et L, rechercher dans la matrice les cases Mij = d.
    Ainsi à chaque itération, on obtient l'ensemble des points d'intérêts séparés par une distance de d.
    Tutoriels et FAQ TypeScript

  5. #5
    Membre actif Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Points : 263
    Points
    263
    Par défaut Clarification
    Bonjours à tous,

    Tout d'abord merci de vous intéresse à mon problème , je vois que je n'ai pas du tout été clair, je vais donc tenter de clarifier avec un exemple imagé :



    Voici des droites au départ avec les points d’intérêts connues :
    Nom : Start_exemple_genom_distribution.png
Affichages : 328
Taille : 6,5 Ko
    les droites sont en bleu, en dessous nous avons une graduation, et en rouge les positions des points d’intérêts.



    Une des question qui serais posée à l’algorithme serais la suivante :
    «Donne moi une liste de 25 points d’intérêts répartis le plus régulièrement sur mes droites»


    Une des solution donnée par algorithme pourrais être:
    Nom : Solution_exemple_genom_distribution - Copie.png
Affichages : 335
Taille : 7,3 Ko
    Ici les flèches bleu représentant les points d’intérêts qui ont été sélectionnés par l'algorithme.

    Par contre avec mon algorithme naïf j'aurais probablement obtenu le résultats suivant:
    Nom : Naif_exemple_genom_distribution.png
Affichages : 322
Taille : 7,3 Ko


    Les différence entre un algorithme optimiser (solution bleu) et mon implémentation naïve se ressente surtout proche des «zone de trou» de points d’intérêts, et proche du début de la droite, mais finisse par converger avec un peu de chance.




    @kolodz:
    Quand tu parle de tes "N points régulièrement distribuer le long des droites", quels sont ces points ?
    Je n'ai pas été claire les points dont je parles ici sont un sous-ensemble de point contenue par l’ensemble des «points d’intérêts».
    De mémoire, il y a le barycentre classique et il y a le une autre version qui limite la distance basé sur "le carrés pondérés des distances".
    je vais creuser de ce coté la, sachant que je ne me souviens plus très bien de ce que sont les barycentres.

    @anapurna:
    je pense que tu ne m'as pas compris, et du coup je ne t'ais pas compris
    Pour être plus biologique voici le «problème» complet: sur mon génome, j'ai une liste connue de polymorphisms («points d’intérêts») et je souhaite en récupérer une sous partie qui soit disposé le plus régulièrement possible le long de mon génome. Les «droites» que j'évoque sont simplement des représentation de mes chromosomes.

    @yahiko:
    une matrice carré M de dimensions NxNMij = distance entre les points d'intérêt xi et xj
    Est-ce que seul la moitié de la matrice n'est pas suffisante puisque Mij = Mji ?

    mais je ne comprend pas cette notation la :
    Il faut donc trouver une distance d telle qu'il existe un xi où xi+k.d est aussi un point d'intérêt avec k entier naturel.
    que veux dire le +k.d ? je suis un peu perdu :s désolé
    du coup le reste de ta réflexion ne m'est pas accessible.



    Encore une fois merci pour vos réponse et votre réactivité
    CKL
    N°°b forever
    --
    may the be with you

  6. #6
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    D'après, moi tu devrais faire la chose suivant :

    Prendre le min et le max de ta droite et placer régulièrement l'ensemble de test points d'intérêt.
    Supposons que ton mix soit à 100 et ton max à 200 et que tu lui demande 11 points d'intérêt.(Je fait tel que ça m'arrange là)
    Tu va avoir les valeur suivantes :
    100
    110
    120
    130
    140
    150
    170
    180
    190
    200
    Je ne te fait pas l'affront de donnée la formule mathématique pour faire ça. courbe affine toute ça.(cours de 3ième)
    Note : Peut-être ajouter un peu de marge par rapport au min et au max de tes points de bases (genre +5% de chaque côtés)

    Après tu peux avoir, un groupement de points dont tu voudrait te rapproché à l'intérieur de ta droite.

    Supposons qu'on ait :

    100, 111, 112 114 115,130 ...
    Il serait peut-être intéressante, d'avoir une légère divergence dans la régularité pour coller un peu plus à cette mesure.
    Dans ce cas, tu peux potentiellement appliqué un correctif local. C'est à dire prendre la moyen des points proche et l'appliqué. Supposons que c'est 114, pour le point 110. On décale le point 110 de "4" vers le "haut", mais dans une limite de "2" et donc on replace notre point 110 par 112 ! Les points seront moins régulier, mais tu collera, un peu plus au point d'intérêt.
    Note : Cela va automatiquement décalé tes points extérieur vers l'intérieur, surtout si tu as mis une marge.(Vue que les points seront tous d'un seul côté par rapport à ton point d'intérêt)

    Donc, les deux principaux réglage se trouve dans :
    • La définition de la limite de ton intervalle (ajout de marge ou non)
    • L'ajustement de tes points par rapport à une moyenne local (si cela à un intérêt dans ton domaine)


    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  7. #7
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 700
    Points
    8 700
    Billets dans le blog
    43
    Par défaut
    +k.d = "+ k fois d"

    Sinon, oui, la matrice M est symétrique donc pour optimiser tu peux te contenter de ne considérer qu'une moitié.
    Tutoriels et FAQ TypeScript

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Tu veux 25 points , et tu veux que l'espace entre 2 points consécutifs soit toujours le même ?
    C'est assez surprenant.
    Si les points rouges sont répartis de façon irrégulière, on aurait bien imaginé 25 points, répartis de façon irrégulière .. et qui symbolisent au mieux les points d'origine.

    Si on veut 25 points répartis de façon régulière, je propose:
    - Calculer la moyenne et l'écart-type des points rouges.
    - Calculer 25 points régulièrement répartis, qui vont donner la même moyenne et le même écart-type.
    Je n'ai pas les équations en tête pour ce 2ème point... mais ça devrait se solutionner assez facilement.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Je ne sais pas si j'ai compris, mais je vais exposer mon point de vue quand même

    Pour chaque droite :

    • diviser sa longueur par le nb de points demandé (+ ou - 1 suivant qu'on veut avoir un vide de chaque côté ou qu'on veut avoir un point à chaque extrémité) => on a un incrément de longueur

    • partir de 0, et à chaque incrément, trouver le point significatif (point d'intérêt) le plus proche (au dessus ou en dessous du x considéré), par une bête distance...



    Ai-je mal compris quelque chose ??
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #10
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    ta solution serais correcte si les écarts étaient uniformément reparti tout au long du segment


    imaginons maintenant que 75% des valeurs se trouve dans la moitié de ton segment, ta répartition n'aura plus aucun sens.
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par anapurna Voir le message
    ta solution serais correcte si les écarts étaient uniformément reparti tout au long du segment

    imaginons maintenant que 75% des valeurs se trouve dans la moitié de ton segment, ta répartition n'aura plus aucun sens.
    Ben quand je regarde ses 2 graphiques, avec ses fêches pointées là où il verrait ses points, ça me semble pas mal proche de ce que je dis, non ???

    Il dit "le plus régulièrement possible", pas forcément régulièrement... Or, vu qu'il parle du génome, on peut considérer qu'on aura une certaine "continuité", je pense... donc je pense que "75% es valeurs dans la moitié" sera faux, car si je ne m'abuse les droites considérées sont justement des "segments d'intérêt"...

    En fait, on doit faire des appariements..

    Dans la figure attachée les appariements sont indiqués en gros traits rouges sur la figure du milieu..

    En fait, je pense que la seule chose à vérifier c'est qu'on ne tombe pas dans le cas de la fin du premier cas, avec 3 points en dehors de tout.. Mais pour ça il suffit d'ajuster la longueur de la droite..

    Nom : Sans11.jpg
Affichages : 307
Taille : 106,4 Ko


    Mais j'ai peut-être pas compris.. Là, je me demande si il ne cherche pas la meilleure position d'un peigne régulier pour minimiser l'écart-type entre la position d'une dent et la position du point de référence le plus proche..... Si c'est ça, alors je verrais plutôt une approche dichotomique entre les positions 0 et 1/2 taille de l'incrément pour le début du peigne...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  12. #12
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    pour en revenir a la question première.

    J'ai l'impression (peut-être fausse) qu'il existe déjà dans la littérature des algorithme résolvant des problèmes approchant celui-ci, j'ai néanmoins été incapable de les trouver.

    regarde du coté de "Cake-Cutting Algorithms" ou en français "algorithme de découpe de gâteau"

    Pour l'algorithme que tu as réalisé ne me parais pas si faux
    Avec de légère modification tu peut retrouver trois solution différentes
    la modification se fait sur le choix de l’élément de départ
    je m'explique

    reprenons ta solution
    La solution que j'ai envisagées est la suivante:
    1) calculer la distance optimal séparant chacun des point d’intérêt sélectionnée
    2) prendre le premier point d’intérêt l'ajouté à la liste des point d’intérêt sélectionnée, puis chercher le prochain d’intérêt se trouvant le plus proche de la distance optimal.
    3) itérer
    dans ton cas tu a pris la plus petites valeurs que tu incrémente

    tu pourrais choisir la plus grande valeur et tu décrémente la valeur de la distance optimal

    a mon sens pour que se soit plus équilibré et réduire tes itérations tu aurais due partir du centre et à chaque itération décrémenter d'un coté et incrémenté de l'autre
    ce qui devrais normalement diviser le nombre d’itération "principal" par deux
    un peut comme la construction d'un arbre ou la racine de l'arbre est le point d’intérêt centrale .
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

Discussions similaires

  1. Distribution de 14 points sur 6 étudiants
    Par supierre dans le forum Mathématiques
    Réponses: 7
    Dernier message: 11/02/2013, 10h43
  2. Projection d'un point sur une droite en dimension N
    Par ToTo13 dans le forum Mathématiques
    Réponses: 3
    Dernier message: 10/01/2009, 17h42
  3. ajouter multiples datalabel pour un meme point sur un chart
    Par leon1983 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/01/2008, 18h13
  4. coordonnées de n points à écart constant sur une même droite
    Par bernard6 dans le forum Mathématiques
    Réponses: 2
    Dernier message: 31/07/2007, 18h07
  5. Projection d'un point sur une droite.
    Par méphistopheles dans le forum Mathématiques
    Réponses: 9
    Dernier message: 27/05/2007, 23h35

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