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 ?
Partager