Algorithme génétique avec opérateur de croisement adaptatif pour résoudre plusieurs problèmes de voyageur de commerce avec des contraintes d'accès

英文名:Algorithme génétique avec opérateurs de croisement adaptés pour plusieurs vendeurs itinérants Problème avec les contraintes de visite

Résumé

Le problème des voyageurs de commerce multiples avec restrictions d'accès (VCSMP) est une version générale du problème classique des voyageurs de commerce multiples (MTSP), dans lequel chaque ville ne peut être visitée que par plusieurs vendeurs. Pour résoudre ce nouveau problème, nous appliquons un algorithme génétique (GA) au MSTP en utilisant un schéma de représentation à deux chromosomes , où un chromosome représente la séquence de visite de la ville et l'autre chromosome représente l'affectation de la ville aux vendeurs. Pour améliorer encore l'efficacité des algorithmes génétiques dans la résolution de VCSMP, nous modifions trois opérateurs de croisement populaires, à savoir le croisement cyclique (CX), le croisement séquentiel (OX) et le croisement cartographié partiel (PMX). Semblable à l'exécution du TSP traditionnel, les trois opérateurs de croisement sont tous exécutés sur le chromosome de la séquence urbaine, et leur adaptabilité réside dans la modification de l'allocation du vendeur sur le deuxième chromosome. À cette fin, un mécanisme de correction est mis en œuvre sur la base de la matrice d'accessibilité pour rendre réalisable la solution générée après le croisement. Des expériences approfondies sur un total de 16 instances VCSMP générées par l'ensemble de référence TSPLIB montrent que l'algorithme génétique adaptatif peut gérer efficacement le VCSMP et que l'algorithme génétique avec PMX modifié atteint les meilleures performances globales.

Introduction

Le problème du voyageur de commerce multiple (MTSP) est une forme généralisée du problème traditionnel du voyageur de commerce [1]-[3]. Dans MTSP, plusieurs vendeurs collaborent entre eux pour voyager dans plusieurs villes, un seul vendeur visitant chaque ville une fois, tout en minimisant leurs coûts totaux de déplacement. Dans un MTSP traditionnel, tous les commerciaux ont accès à toutes les villes. Cependant, dans certains scénarios réels, certaines villes peuvent être limitées à certains vendeurs. Par exemple, dans le cadre de l'expédition logistique, certaines marchandises dangereuses ne peuvent être transportées que par des camions spécifiques. Afin de simuler ce problème pratique, cet article établit le problème des vendeurs itinérants multiples avec contraintes d'accès (VCSMP), dans lequel l'accessibilité d'une ville aux vendeurs est représentée par une matrice d'accessibilité contenant 0 et 1. Ce n'est que lorsque l'élément est un que le commercial correspondant peut accéder à la ville associée. La figure 1 montre un exemple de MTSP. Dans ce diagramme, différentes villes ont des droits d'accès différents à différents vendeurs. Le chiffre après le point indique le nombre de vendeurs pouvant visiter cette ville. En particulier, plus la taille du point est grande, plus il y a de vendeurs qui peuvent visiter la ville concernée.

En raison des restrictions complexes d’accès à la ville, le VCMTSP est plus complexe et difficile à résoudre que le MTSP traditionnel. En particulier, les restrictions d'accès rendent difficile le déploiement optimal du personnel de vente dans une ville et rendent encore plus difficile l'optimisation ultérieure des itinéraires [4], [5].

Dans la littérature, de nombreux chercheurs appliquent des algorithmes génétiques pour optimiser le MTSP [6]–[10]. Initialement, pour résoudre efficacement le MTSP, les chercheurs ont développé différents schémas de représentation pour coder les chromosomes en GA. Par exemple, une méthode de codage chromosomique en deux parties a été adoptée dans [8], où la première partie représente la séquence de la ville et la seconde partie représente le vendeur. Un mécanisme de représentation multichromosomique est proposé dans [11], où chaque chromosome représente le parcours d'un vendeur. De plus, certaines études ont également étudié différents GA pour résoudre le MTSP [6], [9]. En outre, certaines études se concentrent sur le MTSP étendu avec des contraintes complexes et des recherches sur des applications du monde réel, telles que le MTSP min-max contraint en longueur [12], le MTSP avec des fenêtres de capacité et de temps [13], le MTSP pour les drones [14]. ][15] et les plans du MTSP pour les camions

Bien que diverses AG aient été formulées pour répondre à divers PSMT, à notre connaissance, aucune étude n’a pris en compte les restrictions d’accès aux villes. Basé sur le fait que VCMTSP est une forme générale de MTSP, cet article tente de traiter NCMTSP en appliquant GA à MTSP. Plus précisément, cet article adopte une stratégie de représentation à deux chromosomes, dans laquelle un chromosome est responsable de l'ordre de visite des villes et l'autre est responsable de l'attribution des villes aux vendeurs. Afin de le faire se développer efficacement et avec une grande faisabilité, cet article adopte trois opérateurs de croisement populaires, à savoir le croisement cyclique (CX) [16], le croisement séquentiel (OX) [17] et le croisement cartographié partiel (PMX) [18], utilisés pour que GA puisse faire face à VCSMP.

Afin de vérifier l'efficacité de l'algorithme génétique adaptatif dans le traitement du MTSP, cet article génère d'abord plusieurs instances MTSP avec différentes villes et nombres de vendeurs à partir de l'ensemble de référence TSPLIB [19] largement utilisé. Ensuite, des expériences sont menées sur ces instances pour observer les performances d'optimisation de l'algorithme génétique adaptatif dans la résolution de VCSMP.

Le reste de cet article est organisé comme suit. La section 2 donne la définition mathématique spécifique de VCMTSP. Ensuite, la section III présente le cadre GA et trois opérateurs croisés adaptés à VCMTSP. La section 4 mène des expériences sur plusieurs instances de planification du MTSP pour démontrer l'efficacité du GA ajusté. Enfin, la section 5 conclut l'article.

2. Définition du problème

Plus précisément, la définition mathématique d'un VCMTSP est la suivante. Étant donné n villes et m vendeurs, le plan de la ville peut être décrit comme un graphe totalement non orienté G = (V, E), où V représente la ville et E = {eij | i, j∈V} représente le bord reliant les villes. . Afin de formuler l'accessibilité de la ville au vendeur, on définit la matrice d'accessibilité A=[aij] n×m, où Aij=1 signifie que la ville i est accessible au vendeur j, et Aij=0 signifie que la ville i est accessible au vendeur j, et Aij=0 signifie que la ville i est accessible au vendeur j. le vendeur est inaccessible. La figure 2 montre un exemple de matrice d'accessibilité pour une instance VCMTSP i avec m vendeurs et n villes. Dans cette matrice, les lignes représentent les villes et les colonnes représentent les vendeurs.

 La fonction cible de VCMTSP est de minimiser le coût total de déplacement de tout le personnel commercial, qui est défini comme suit :

où C(Routei) est le coût de l’itinéraire i. Cet objectif est atteint en répondant aux contraintes suivantes :

1) Doit visiter toutes les villes :

2) Un seul vendeur visite chaque ville :

3) Vendeur je ne peux accéder qu'aux villes sans obstacles et il m'est interdit d'accéder aux villes restreintes :

La principale différence entre MTSP et VCMTSP réside dans la troisième contrainte. En raison de cette limitation, l'optimisation de VCSMP devient plus difficile, car elle affecte gravement l'attribution de villes au personnel de vente et affecte par la suite l'optimisation des itinéraires du personnel de vente.

3. Adaptateur adapté au VCMTSP

Afin de résoudre efficacement le problème VCSMP défini ci-dessus, cet article modifie l'opérateur de croisement de l'algorithme génétique basé sur la matrice d'accessibilité.

A. Algorithme génétique

Cet article utilise une représentation à deux chromosomes [20] pour représenter une solution réalisable au VCMTSP. Plus précisément, comme le montre la figure 3 (a), chaque solution réalisable est constituée de deux chromosomes. Le premier chromosome représente la disposition des villes, tandis que l'autre chromosome attribue les vendeurs aux villes associées au premier chromosome. Avec ce mécanisme de représentation, l'itinéraire de chaque vendeur peut être obtenu en classant les villes avec le même vendeur dans l'ordre de leur apparition dans le premier chromosome.

Sur la base de ce mécanisme de représentation, le processus global de l'algorithme génétique est décrit dans l'algorithme 1. Au début, les individus NP sont initialisés via une stratégie gourmande. Plus précisément, le premier chromosome est initialisé via une stratégie gourmande, tout comme l'algorithme génétique TSP traditionnel, tandis que le deuxième chromosome est initialisé sur la base de la matrice d'accessibilité. Pour chaque ville du premier chromosome, si la ville ne peut être visitée que par un seul vendeur, alors la ville est attribuée à ce vendeur. Sinon, si la ville peut être visitée par plusieurs vendeurs, alors elle sera attribuée aléatoirement à l'un des vendeurs avec une probabilité égale.

Après avoir initialisé la population (ligne 1), le GA entre dans la boucle principale (lignes 4 à 21) pour évoluer de manière itérative. Dans un premier temps, les individus sont sélectionnés parmi la population à croiser selon une stratégie de sélection à la roulette (ligne 5). Après la sélection, on poursuit l'opération de croisement. Différent de l’algorithme génétique TSP traditionnel, cet article mélange d’abord la population de manière aléatoire (ligne 6), puis associe les individus. Pour chaque paire d'individus, si le nombre réel généré aléatoirement dans [0, 1] est inférieur à la probabilité de croisement, un opérateur de croisement est effectué sur les deux individus pour générer deux descendants (lignes 9 à 11) pour les remplacer. Après croisement, pour chaque individu, si les nombres réels générés uniformément entre [0, 1] sont inférieurs à la probabilité de mutation, alors l'opérateur de mutation est exécuté sur l'individu (lignes 15-17).

La boucle principale ci-dessus continue jusqu'à ce que la condition de terminaison soit remplie. Lorsque la fin de l’algorithme est atteinte, la solution optimale globale est obtenue comme résultat final.

Dans l'algorithme 1, l'opérateur de croisement joue un rôle important dans la génération de progéniture car, d'une part, il est responsable de l'échange de gènes pour générer une progéniture prometteuse ; d'autre part, dans l'algorithme génétique TSP traditionnel, la probabilité de croisement est généralement élevée. . Par conséquent, des opérateurs de croisement efficaces ont un impact important sur les performances des algorithmes génétiques dans la résolution des problèmes de stratégie de gestion des risques. Dans ce qui suit, cet article applique trois opérateurs de croisement populaires à GA pour résoudre efficacement le problème VCMTSP.

B. Crossover partiellement mappé Crossover partiellement mappé

L’opérateur PMX (Partial Map Crossover) a été initialement proposé par Goldberg et Lingle pour résoudre le TSP classique [18]. Pour que deux parents soient croisés, PMX sélectionne d'abord au hasard deux points différents sur les chromosomes, puis échange des segments de gènes entre les deux allèles sélectionnés dans les deux chromosomes parentaux pour produire deux descendants.

Après l'échange de segments, les deux descendants résultants peuvent ne pas être réalisables en raison de villes en double et de villes manquantes. Pour corriger ces deux descendants, une séquence de cartographie de la ville est définie sur la base des deux segments de ligne échangés. Ensuite, sur la base de la cartographie des villes définie, les villes en double en dehors du segment d'échange sont remplacées en conséquence.

Pour comprendre intuitivement le fonctionnement de l'opérateur PMX, la figure 4 montre un exemple de processus PMX sur deux parents dans neuf villes. Tout d’abord, deux allèles différents, 3 et 6, sont sélectionnés au hasard. Ensuite, les deux segments entre les deux allèles du parent A et du parent B, à savoir 3−4−5−6 et 2−1−3−6, sont échangés. Par conséquent, deux sous-termes sont générés, à savoir 1−2−2−1−3−6−7−8−9 et 8−5−3−4−5−6−4−9−7.

Après l'échange de fragments, deux enfants ne sont pas réalisables car chez le premier enfant, les villes 1 et 2 sont des doublons, tandis que chez le deuxième enfant, les villes 4 et 5 sont des doublons. Pour remédier à cette lacune, une séquence d’échanges de villes est d’abord définie sur la base de la segmentation de deux échanges. Plus précisément, la ville est cartographiée comme 3↔ 2, 4↔ 1, 5↔ 3 et 6↔ 6, comme le montre la partie centrale du dessin ombré de la figure 4. Sur la base de ces mappages, les villes en double en dehors du segment d'échange seront remplacées par la ville associée. Par exemple, sur la base de la cartographie 4, la ville 1 en dehors du segment d'échange dans l'enfant 1 est remplacée par la ville 4↔ 1. Sur la base de la cartographie 3, la ville 2 dans l'enfant 1 est d'abord remplacée par la ville 3↔ 2, mais la ville 3 est également répétée. . Par conséquent, sur la base de la carte 5, la ville 3 est en outre remplacée par la ville 5 ↔ 3.

Après exactitude, les deux descendants générés sont 4−5−2−1−3−6−7−8−9 et 8−2−3−4−5–6−1−9−7. Ces deux-là sont tous réalisables maintenant .

C. Ordre croisé

Le croisement d'étapes (OX) [17] est similaire au PMX en termes de segments de commutation. La seule différence réside dans le traitement des villes en double. En particulier, à l'instar de PMX, OX sélectionne d'abord au hasard deux allèles différents dans un chromosome, puis échange des segments de gènes entre les deux allèles sélectionnés dans les deux chromosomes parentaux, produisant ainsi deux descendants.

Par la suite, pour gérer les villes dupliquées, OX garde d'abord les éléments des deux chromosomes descendants vides, à l'exception des segments échangés. Ensuite, pour garantir que l'enfant hérite d'autant d'informations que possible du parent associé, OX remplit les éléments vides avec la séquence d'accès restante du parent associé du premier élément après le segment d'échange. Il est à noter que la séquence d'accès restante n'inclut pas les villes apparaissant dans le segment d'échange.

Pour comprendre intuitivement le processus de travail d'OX, la figure 5 montre un exemple de 9 villes. Tout d’abord, deux allèles différents, 3 et 6, sont sélectionnés au hasard. Ensuite, les deux segments entre les deux allèles sont échangés, ce qui donne naissance à deux descendants, à savoir ×-×−2−1−3−6−×-×-× et ×-×-3−4−5 −6−. Il convient de mentionner que, à l’exception du segment échangé, d’autres éléments des deux chromosomes de la progéniture sont vides. Les éléments vides sont ensuite remplis avec des séquences d'accès de l'élément parent associé. En particulier, pour l'élément enfant 1, les éléments sont remplis par la séquence d'accès restante de l'élément parent A, en commençant par le premier élément après le segment échangé, qui est 7−8−9−4−5. Par conséquent, sub1 devient 4−5−2−1−3−6−7−8−9. De même, les éléments vides de l'enfant 2 sont remplis par la séquence d'accès restante du parent B, qui est 9−7−8−2−1. Par conséquent, sub2 devient 2−1−3−4−5−6−9−7−8.

Après le remplissage séquentiel ci-dessus, les deux descendants résultants sont désormais viables.

D. Crossover de cycle Crossover de cycle

L'opérateur de croisement cyclique (CX) a été proposé pour la première fois par Oliver et al. [16]. Contrairement aux deux croisements ci-dessus, CX hérite des informations des deux parents (en supposant qu'il s'agisse du parent A et du parent B) par itération, créant ainsi des enfants un par un. Au début, OX sélectionne au hasard une position parmi l'un des deux parents (en supposant que le parent sélectionné est le parent a) comme position de départ de l'enfant. La ville stockée au même emplacement que l'autre parent (c'est-à-dire le parent B) est ensuite utilisée pour renseigner l'emplacement de l'enfant égal à cette ville. Par la suite, la ville stockée dans l'emplacement du parent B égal à la ville renseignée lors du dernier tour est utilisée pour peupler l'emplacement de l'enfant B égal à cette ville. Le processus ci-dessus se poursuit jusqu'à ce qu'un conflit survienne, c'est-à-dire que la prochaine ville à remplir appartient déjà à l'enfant. Après cela, les autres éléments non remplis des enfants héritent directement du parent A. De cette manière, les enfants peuvent hériter simultanément de précieuses séquences d’accès des deux parents.

Pour comprendre intuitivement le fonctionnement du CX, la figure 6 montre un exemple de processus de CX avec 9 villes. Tout d’abord, l’objet enfant est défini sur null, puis commence à hériter des villes de l’objet parent A à des emplacements choisis au hasard. Dans cet exemple, la position sélectionnée est 1. Ainsi, la ville 1 stockée dans l'emplacement 1 du parent A est utilisée pour peupler l'emplacement 1 de l'enfant. Ensuite, utilisez la ville (c'est-à-dire 8) au même emplacement (emplacement 1) dans l'autre objet parent (objet parent B) pour localiser le prochain emplacement de l'objet enfant à remplir. Autrement dit, la position 8 chez l'enfant hérite de la ville en position 8 chez le parent A. Après cela, la position 9 est remplie de la même manière. Le processus se poursuit jusqu'à la position 4. En trouvant la position suivante sur la base de 4, la position suivante est la position 1. Cependant, la position 1 est déjà remplie dans l'objet enfant, donc l'héritage de l'objet parent A forme un cycle. Dans ce cas, l'héritage de l'élément parent A s'arrêtera et les positions non remplies restantes dans l'élément enfant seront héritées avec l'élément associé dans l'élément parent B.

Enfin, les sous-termes 1−5−2−4−3−6−7−8−9 sont obtenus, ce qui est réalisable.

E. Correction d'affectation du vendeur

Il convient de noter que les opérateurs de croisement introduits ci-dessus sont tous exécutés sur le premier chromosome dans l'algorithme génétique adaptatif. Pour le deuxième chromosome, cet article hérite d'abord directement de la mission de vente des parents. Cependant, l'affectation des vendeurs aux parents peut violer les contraintes d'accessibilité en raison de modifications des séquences d'accès dans le premier chromosome après le croisement. Pour atténuer ce problème, ce document identifie d'abord les affectations incorrectes des vendeurs en fonction de l'accessibilité. Ensuite, pour chaque mauvaise tâche, nous trouvons d'abord le vendeur qui a accès à la ville concernée. Si un seul vendeur a accès à la ville, corrigez l'affectation incorrecte en remplaçant le mauvais vendeur par ce vendeur. Si plusieurs vendeurs ont accès à la ville, le vendeur mal assigné sera remplacé par un vendeur sélectionné au hasard parmi ces vendeurs avec une probabilité égale.

En prenant comme exemple le sous-élément 1 obtenu par croisement PMX dans la figure 4, comme le montre la figure 7, le sous-élément 4−5−2−1−3−6−7−8−9 hérite directement de l'allocation des ventes de l'article parent A. Cependant, selon la matrice d'accessibilité présentée dans la figure 2, il s'avère que l'attribution des vendeurs de la ville 5 et de la ville 2 est erronée. 2. À partir de la matrice d'accessibilité, il ressort que la ville 5 n'est accessible qu'au vendeur 1, tandis que la ville 2 est accessible au vendeur 1 et au vendeur 2. Ainsi pour la ville 5, le mauvais vendeur 2 est remplacé par le mauvais vendeur 1. Pour la ville 2, le mauvais vendeur 3 est remplacé par un vendeur sélectionné au hasard parmi le vendeur 1 et le vendeur 2 avec une probabilité égale. Dans cet exemple, le vendeur 2 est sélectionné.

De même, l'exactitude de l'affectation du vendeur ci-dessus peut être utilisée pour la progéniture générée par OX et CX.

 

Cependant, un examen plus approfondi du processus de l'opérateur CX montre que l'affectation des vendeurs peut également se croiser avec la croix de la ville dans le premier chromosome. Autrement dit, lors du remplissage des éléments du chromosome enfant par rapport au premier chromosome, les affectations pertinentes du vendeur peuvent être remplies en conséquence dans le deuxième chromosome du chromosome enfant.

Afin de distinguer l'exactitude de la première affectation de vendeur, cet article définit CX avec l'héritage de l'affectation de vendeur ci-dessus comme « CX+ ». En prenant comme exemple les sous-éléments générés dans la figure 6, la figure 8 montre le processus d'héritage des affectations des vendeurs dans CX+. On constate à partir de cette figure que pour la ville héritée de la société mère B, soit 4−7−8−9, son allocation de personnel commercial est directement héritée de la société mère B ; pour la ville de la société mère A, soit 1 −5−2− 3−6, sa dotation en personnel commercial est directement héritée de la société mère A.

Par rapport à CX, CX+ peut hériter simultanément de la séquence de visite de la ville et des tâches de vente des deux parents. Par conséquent, on s’attend à ce que GA avec CX+ puisse atteindre des performances plus prometteuses que GA avec CX, ce qui sera démontré dans les expériences de la section suivante.

4. Expérimentez

Afin d'observer les performances d'optimisation de GA avec trois opérateurs de croisement adaptatif lorsqu'il s'agit de VCSMP, cet article sélectionne d'abord quatre instances avec un nombre différent de villes dans l'ensemble de référence TSPLIB, à savoir att48, kroA100, kroA150 et kroA200. Ensuite, cet article leur attribue quatre nombres différents de vendeurs, à savoir 2, 4, 6 et 8. Par la suite, pour chaque instance du nombre de commerciaux, nous construisons aléatoirement une matrice d’accessibilité. Par conséquent, un total de 16 VCMTSP ont été générés et ces instances peuvent être trouvées sur https://gitee.com/sorel/tspresearch.git avec le code source généré pour référence.

Dans l'expérience, basée sur des expériences préliminaires de réglage fin des paramètres, la taille de la population NP est de 100, la probabilité de mutation est P m = 0,1 et la probabilité de croisement est P c = 0,5. De plus, la génération maximale GEN max est fixée à 10 000.

Le tableau I montre les résultats de comparaison de GA et de trois opérateurs de croisement sur 16 instances VCSMP. « Meilleur », « Pire » et « Moyenne » dans ce tableau représentent respectivement les coûts de déplacement totaux minimum, maximum et moyen pour tous les vendeurs obtenus par l'algorithme correspondant dans 30 exécutions indépendantes. Les meilleurs résultats pour les trois mesures sont mis en évidence en gras. Du tableau I, nous obtenons les résultats suivants :

• En termes de trois mesures, GA-PMX a obtenu la meilleure performance globale parmi 16 instances. De plus, à mesure que le nombre de villes et de vendeurs augmente, les avantages de GA-PMX par rapport aux deux autres GA deviennent de plus en plus évidents. De plus, GA-PMX montre également une bonne stabilité, puisqu’il n’y a presque aucune différence entre les « meilleurs » et les « pires » résultats.

•GA-OX a montré la pire efficacité parmi les trois GA dans 16 cas. En particulier, ses performances sont particulièrement médiocres lorsque vous disposez d’un grand nombre de villes ou de vendeurs.

•Les performances de GA-CX sont bien meilleures que celles de GA-OX, mais les performances sont légèrement inférieures à celles de GA-PMX. En particulier, l'étude a révélé qu'à mesure que le nombre de villes ou de vendeurs augmente, les performances d'optimisation de GA-CX diminuent rapidement.

Concernant le CX, dans la section précédente, cet article a conçu un autre mécanisme d'exactitude de l'allocation des vendeurs, aboutissant à une nouvelle version de CX nommée CX+. Afin de vérifier son efficacité, cet article compare les performances d'optimisation de GA et de deux opérateurs CX sur 16 instances VCSMP. Le tableau II montre les frais de déplacement moyens de tous les vendeurs dans 16 instances obtenus par GA lors de 30 exécutions indépendantes avec deux opérateurs CX.

 

 

À partir de ce tableau, nous pouvons constater que sur 16 instances, GA-CX+ atteint de meilleures performances que GA-CX. En particulier, l'étude a révélé qu'à mesure que le nombre de villes ou de vendeurs augmente, l'amélioration du GA-CX+ par rapport au GA-CX devient de plus en plus évidente. La supériorité de GACX+ sur GA-CX est principalement due à l'exactitude des affectations de force de vente, qui peuvent hériter d'affectations de force de vente prometteuses des parents.

Afin de mieux observer les différences entre GA et les trois opérateurs, cet article trace les meilleurs itinéraires obtenus par les trois GA dans leurs meilleurs runs. Les figures 9, 10, 11 et 12 montrent les itinéraires optimaux pour tous les vendeurs dans les quatre exemples.

Il ressort de ces chiffres qu’avec moins de villes et moins de vendeurs, les différences de répartition des villes entre les trois AG sont plus faibles, mais les différences dans les itinéraires des vendeurs sont plus grandes. À mesure que le nombre de villes ou de vendeurs augmente, les différences d'attribution des villes entre les trois GA deviennent de plus en plus importantes, ce qui entraîne de grandes différences dans leurs performances d'optimisation.

Grâce aux expériences ci-dessus, il a été constaté que PMX est plus prometteur pour GA que OX et CX pour gérer VCMTSP.

5. Conclusion

Cet article formule un nouveau PSMT en considérant l'accessibilité de la ville aux vendeurs, aboutissant au VCMTSP. Afin de résoudre ce nouveau problème, cet article a modifié trois opérateurs de croisement classiques, à savoir le croisement cartographié partiel (PMX), le croisement séquentiel (OX) et le croisement cyclique (CX), basés sur le mécanisme de représentation à double chromosome, et a amélioré l'algorithme génétique. . En particulier, la principale modification réside dans la répartition des vendeurs représentée par le deuxième chromosome.

Des expériences ont été menées sur 16 instances VCSMP générées par le populaire ensemble de référence TSPLIB. Les résultats expérimentaux montrent que l'algorithme génétique avec trois opérateurs de croisement adaptatif est capable de gérer VCSMP, et que l'algorithme génétique avec PMX atteint les meilleures performances globales sur 16 instances VCSMP. Sur la base d'expériences, il est recommandé d'utiliser PMX pour coopérer avec GA afin de gérer VCSMP.

Acho que você gosta

Origin blog.csdn.net/qq_45874683/article/details/129743485
Recomendado
Clasificación