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 :

[Bin packing 1D] Heuristique "last two fit"


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Par défaut [Bin packing 1D] Heuristique "last two fit"
    Bonjour tout le monde , dans le but d'un projet personnel je me trouve face à une difficulté de programmation
    en effet je veux intégrer la nouvelle heuristique last two fit à l'algorithme génétique du problème bin packing en face de croisement
    afin d'obtenir des solutions de qualités
    le principe de cette heuristique "Cette heuristique vérifie si un objet supplémentaire peut être ajouter à la boite courante. Si non, l’objet le plus petit
    de la boite est remplacé par une paire de deux objets non encore affectés dont la taille combinée est plus grande que celle de l’objet remplacé."
    je veux savoir une méthode minimisant le temps de calcul car mon programme tourne sans afficher de résultats
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public void hybridlasttwofit(List<Bin> bins){
        List<Integer> min= new ArrayList<Integer>();
        int x = 0 ;
        this.bins=bins;
        List<Element> elements = this.deleteDuplicatesByGenes(bins);
        for(int i = 0; i < this.bins.size(); i++){
            for(int m = 0; m < this.bins.get(i).getAll().size(); m++){
                if( this.bins.get(i).getElement(m).getValue()<x){
                    min.add(this.bins.get(i).getElement(m).getValue());
                }
                for (int j=0;j<elements.size();j++){
                    int com = elements.get(j).getValue() + elements.get(j+1).getValue() ;
                if(com> min.get(i)){
                    bins.remove(o);
                bins.add(j, elements);    
                bins.add(j+1, element);}
                }
     
            }
     
        }

    La méthode deleteduplicatedgenes me renvoie des boites non insérées
    la réinsertion est nommé hybridlasttwofit
    qui suit l'heuristique last two fit
    il y'a une liste de bins
    chaque bin est relié à une liste d’éléments qui sont les objets rangées dans chaque bin
    je trouve que l'heuristique prend beaucoup de temps à comparer chaque deux objets
    Personne peut m'aider svp ?

  2. #2
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Par défaut
    Essaye de découper ton code, c'est beaucoup plus simple pour débugger :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public void HybridLastTwoFit(BinPacking BP) {
        ArrayList<Bin> Bins = BP.getBins();
     
        for (Bin bin : Bins) {    
            boolean sucess = try_to_add_new_element(bin);
            if (!success) {
                try_to_delete_element(bin);
            }
        }
    }
     
    private boolean try_to_add_new_element(Bin bin) {
        //
    }
     
    private boolean try_to_delete_element(Bin bin) {
        delete_smallest_element(bin);
        // ...
    }

Discussions similaires

  1. Algorithme de tri : Bin Packing 1D (Sac à dos)
    Par fredschmidt dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 23/01/2015, 12h50
  2. Bin Packing Algorithme pour enumerer toutes les solutions
    Par cochemar_bin_packing dans le forum C
    Réponses: 5
    Dernier message: 22/04/2013, 03h12
  3. Bin Packing sous Excel
    Par eras2000 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/09/2008, 11h11
  4. [Des boites et des boites][Bin packing n dimensions]
    Par Théolude dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/05/2007, 11h33
  5. [ALGORITHME] a propos du bin packing
    Par barbot dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 05/01/2004, 23h27

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