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 :

Parcours d'une matrice(Gantt)


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 7
    Points
    7
    Par défaut Parcours d'une matrice(Gantt)
    Bonjour,
    je travaille sur un programme de gestion de vols.Les vols sont sont représentés sur une matrice(diagramme de Gantt).Je cherche à trouver les vols qui se chevauchent.J'ai déjà l'algo naif mais je cherche à l'améliorer vu que je suis obligé de parcourir tous les vols sur la meme ligne pour trouver les conflits.Est ce que qq'un a une idée pour cet algo.
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Est-ce que ton probleme est similaire a celui la:

    http://www.developpez.net/forums/sho...d.php?t=432992
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 7
    Points
    7
    Par défaut RE
    Le point commun entre les deux c'est que chaque vol est bien défini par une date de début et une date de fin et je cherche evidemment les chevauchenments.Mais l'algo que t viens de me passer va parcourir tous les vols alors que moi je cherche à éviter ça

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par asmiti Voir le message
    Le point commun entre les deux c'est que chaque vol est bien défini par une date de début et une date de fin et je cherche evidemment les chevauchenments.Mais l'algo que t viens de me passer va parcourir tous les vols alors que moi je cherche à éviter ça
    hum... trouver TOUS les vols qui se chevauchent sans parcourir TOUS les vols, je vois pas trop comment faire.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    pour connaitre les chevauchements, il faut parcourir AU MOINS UNE FOIS la liste de tous les vols.
    Ensuite, ce que tu cherches à minimiser c'est la complexité de la recherche.

    Sur qu'elle période se déroule les vols et qu'elle est l'unité minimum de temps (la minutes ?) ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    oui,la durée min est en minutes.J'ai pensé à faire un algo en dichotomie pour limiter la recherche en ajoutant un autre parametre qui est le temps.Je serai donc pas obligé de parcourir tt le diagramme mais j'ai des soucis avec les cas particuliers.T'en penses quoi?

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Quelle recherche ?

    L'algo sweep construit au fur et a mesure la liste des zones qui se chevauchent. Y a un truc que j'ai pas du comprendre dans ton probleme.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    au fait mon probleme ressemble à celui là http://www.developpez.net/forums/sho...d.php?t=293580,
    C'est un systeme de gestion de vols sur un diagramme de Gantt,quand j'ajoute un nouveau vol,je cherche la liste des vols avec lesquels mon nouveau vol chevauche.
    mais j'arrive pas à trouver le code qui remplacera la commande OVERLAPS.

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Je comprend pas pourquoi le sweep ne convient pas.
    Peut-etre qu'avec un exemple tu pourras me dire ou ca coince:

    Liste des Vols connus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Vol1 - 10:00 à 12:00
    Vol2 - 11:00 à 15:00
    Vol3 - 13:00 à 15:00
    Vol4 - 14:00 à 16:00
    construction de la table sweep des vols connus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     date :   id [action]: ## : actifs
    --------------------------------------------
    10:00 : Vol1 [start] : +1 : [Vol1]
    11:00 : Vol2 [start] : +2 : [Vol1,Vol2]
    12:00 : Vol1 [end]   : +1 : [Vol2]
    13:00 : Vol3 [start] : +2 : [Vol2,Vol3]
    14:00 : Vol4 [start] : +3 : [Vol2,Vol3,Vol4]
    15:00 : Vol2 [end]   : +2 : [Vol3,Vol4]
    15:00 : Vol3 [end]   : +1 : [Vol4]
    16:00 : Vol4 [end]   :  0 : []
    Maintenant, on veut tester les conflits possibles pour un nouveau vol de 12:30 à 14:30

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    1. Liste des vols actifs à 12:30 
    => chercher l'entrée précendent 12:30 dans la table sweep --> 12:00
    => copier la liste des vols actifs de cette entrée --> [Vol2]
     
    2. Liste des vols partant après 12:30 et avant 14:30
    ==> parcourir la table sweep entre 12h30 et 14h30
        et enumerer la liste de entrées qui sont en [start] --> [Vol3] , [Vol4]
    La liste des vols en conflit est donc: Vol2 , Vol3 , Vol4
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Est-ce que tu recherches plûtot ?
    1. une requête (ou une combinaison de requêtes) SQL sur une base de donnée,
    2. un algo sur des enregistrements chargés en mémoire.


    Je cherche les vols qui se chevauchent
    • l'ensemble de tous les couples sur toute la base ?
    • les vols opérant à une heure précise ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    je cherche plutot un algo que je vais ensuite coder en c#.L'algo de sweep correspond à ce que je recherche mais le probleme c'est le stockage des données.Au fait j'ai plusieurs ressources ou je stocke plusieurs vols donc si à chaque fois je vais créer un tableau de sweep l'appli sera lourde à telecharger et inmaintenable.

  12. #12
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par asmiti Voir le message
    Au fait j'ai plusieurs ressources ou je stocke plusieurs vols donc si à chaque fois je vais créer un tableau de sweep l'appli sera lourde à telecharger et inmaintenable.
    Comme l'a dit ToTo13:

    pour connaitre les chevauchements, il faut parcourir AU MOINS UNE FOIS la liste de tous les vols.
    Si tu as créé une ressource par vol, il va falloir que tu ouvres toutes des ressources au moins une fois. Peut-etre qu'il vaudrait mieux créer une autre ressource qui serait un "index" de tous les vols, avec au minimum les infos necessaires au sweep.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    et ça consiste en quoi?

  14. #14
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par asmiti Voir le message
    et ça consiste en quoi?
    Créer un index pour le sweep ?

    Bah c'est juste une liste avec les 3 infos : #vol, date départ, date arrivée.

    Avec cette liste tu peux construire la table de sweep à la demande... En ajoutant une heuristique sur la durée maximum des vols, tu peux meme restreindre la construction de la table de sweep à un intervalle de temps utile.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Au fait mes vols et mes ressources sont répartis comme l'indique l'image ci jointe.Donc en matière de stockage ca va etre très dur et le chargement très lent
    Images attachées Images attachées  

  16. #16
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Ca c'est la représentation graphique... Mais comment sont stockées les informations dans le programme ? (tableau, liste, ... )
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    la je fais tout refaire en ce qui concerne le stockage des donées.Donc j'ai libre choix

    la représentation graphique c'était juste pour t'éclaircir le problème

  18. #18
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Dans ce cas, tu peux regrouper tes infos par "semaine". Chaque objet "semaine" contient la liste des vols qui partent (start) dans la semaine.

    - Pour ton affichage tu as besoin de 4 ou 5 objets "semaine" simultanément.

    - Pour l'algo de conflit, si on considere que les vols ne durent pas plus de 7 jours, tu as besoin de 3 a 4 "semaines" (S-1,S,S+1,S+2) pour construire le tableau de sweep.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    excuse moi je t ai pas donne le bon exemple,au fait c'est le meme schema mais au lieu des semaines c'est plutot des heures.donc ca sera pas possible de créer des tableau semaine

  20. #20
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Semaine, mois, heure... En fait ce sont des unités de temps. L'important c'est de trouver la taille de l'unité de temps qui a un sens dans ton métier (jour, demi-journée, ... )

    Un petit détour par le forum "conception" pourrait peut-être t'aider.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Parcours d'une matrice triangulaire superieure
    Par proc02 dans le forum Langage
    Réponses: 9
    Dernier message: 09/02/2014, 13h05
  2. concernant parcours d'une matrice
    Par zied_m dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/01/2012, 14h14
  3. parcours d'une matrice
    Par doudi20 dans le forum Général Java
    Réponses: 5
    Dernier message: 17/03/2009, 15h51
  4. Parcours d'une matrice/tableau à deux dimensions
    Par yal001 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 20/11/2008, 14h59
  5. Parcours d'une matrice
    Par LordPeterPan2 dans le forum MATLAB
    Réponses: 5
    Dernier message: 30/07/2008, 09h00

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