Quel est le nom de cette variante logistique du TSP?

8

J'ai un problème logistique qui peut être vu comme une variante de TSP. C'est tellement naturel, je suis sûr qu'il a été étudié en recherche opérationnelle ou quelque chose de similaire. Voici une façon de voir le problème.

J'ai entrepôts sur le plan cartésien. Il existe un chemin entre un entrepôt et tous les autres entrepôts et la métrique de distance utilisée est la distance euclidienne. De plus, il existe éléments différents. Chaque article peut être présent dans n'importe quel nombre d'entrepôts. Nous avons un collecteur et on nous donne un point de départ pour cela, disons l'origine . Le collectionneur reçoit une commande, donc une liste d'articles. Ici, nous pouvons supposer que la liste ne contient que des éléments distincts et un seul de chacun. Nous devons déterminer la visite la plus courte à partir visiter un certain nombre d'entrepôts afin que le nous ramassons tous les éléments de l'ordre.Pn1jens(0,0)s

Voici une visualisation d'une instance générée aléatoirement avec . Les entrepôts sont représentés par des cercles. Les rouges contiennent l'élément , les bleus l'élément et les verts l'élément . Étant donné un certain point de départ et l'ordre ( ), il faut choisir un rouge, un bleu et un entrepôt vert pour la commande peut être complétée. Par accident, il n'y a pas d'entrepôts multicolores dans cet exemple, ils contiennent donc tous exactement un article. Cette instance particulière est un cas de set-TSP .P=35123s1,2,3

Un exemple du problème.

Je peux montrer que le problème est en effet -hard. Considérons une instance où chaque article est situé dans un entrepôt différent . La commande est telle qu'elle contient chaque article. Maintenant, nous devons visiter chaque entrepôt et trouver la visite la plus courte. Cela revient à résoudre une instance de .NPjePjePjeTSP

Étant si évidemment utile au moins dans le contexte de la logistique, du routage et de la planification, je suis sûr que cela a déjà été étudié. J'ai deux questions:

  1. Quel est le nom du problème?
  2. Dans quelle mesure peut-on espérer approcher le problème (en supposant )?PNP

Je suis assez satisfait du nom et / ou des références au problème. Peut-être que la réponse au deuxième point suit facilement ou je peux le découvrir moi-même.

Juho
la source
1
Avez-vous essayé de le formuler en termes de problème de flux multi-produits ?
uli
@uli Nope, ni dans aucun autre formalisme. J'ai d'abord pensé à un programme d'entier linéaire (binaire), mais j'ai pensé que quelqu'un pourrait connaître le nom et une référence pour le problème. Cela pourrait ainsi économiser du temps et des efforts. Merci, je considérerai cela aussi.
Juho
1
définir TSP? Ce n'est pas exactement équivalent car les ensembles sont disjoints. Mais cela pourrait être un point de départ?
rahul
@blufox En effet, et en fait l'exemple illustré est une instance de set TSP. Le problème a donc cela aussi comme cas particulier.
Juho

Réponses:

6

Le problème est P si le nombre d'articles est constant.

Laisser K être le nombre d'articles (indépendamment de n). Pour chaque commande d'articles, utilisez le retour arrière pour essayer toutes les routes autorisées: vous passez d'abord par un entrepôt pour le premier article (en essayant tous les entrepôts), puis un pour le deuxième article et ainsi de suite.

Il y a O(K!)commandes des articles. LaisserWje être le nombre d'entrepôts pour l'article je. Le nombre de routes estje=1KWjeje=1Kn=nK. Par conséquent, le temps d'exécution de l'algorithme ci-dessus estO(K!nK), qui est polynôme pour fixe K.

Si le nombre d'articles peut être linéaire dans n, le problème est au moins aussi difficile à TSP: vous pouvez prendre une instance de TSP, créez un élément pour chaque sommet comme vous l'avez noté, puis ajoutez des sommets supplémentaires très loin de tous les autres sommets pour les gonfler n (et donc prévoir suffisamment d'éléments pour que chaque sommet du TSP exemple a un élément différent), sans détruire la dureté d'approximation de TSP. Notez que si vos points sont dans le plan euclidien, cela ne vous aide pas vraiment car il y a unPTUNES pour planaire TSP.

Alex ten Brink
la source
5

Entre autres, ce problème peut être considéré comme une instance du problème des acheteurs itinérants. TPP est une généralisation de TSP et a été proposé pour la première fois par T. Ramesh, problème des acheteurs itinérants, 1981. Le problème est le suivant:

On nous donne un ensemble M={1,...,m} des marchés et un ensemble de N={1,...,n}de produits. On nous donne aussicjej, le coût du voyage depuis la ville je en ville jet non négatif jej, le coût d'un produit je au marché j. L'acheteur part de sa ville d'origine (par exemple ville1) et se déplace vers un sous-ensemble de m villes et achète chacun des nproduits dans les villes qu'il visite et retourner dans sa ville natale. L'objectif est de trouver une visite pour l'acheteur telle que la somme des frais de voyage et d'achat soit minimisée.

Donc, pour reprendre les termes de la question initiale, les entrepôts sont des marchés. Chaque article disponible sur un marché a un prix égal. Si l'articleje n'est pas disponible sur un marché j, son prix jej est défini sur une valeur élevée.

En plus de contenir TSP, TPP contient la collecte des prix TSP, problème de localisation de l'installation non capacitaire, problème d'arbre du groupe Steiner et problème de couverture d'ensemble comme cas spéciaux immédiats Pour la dureté, à la suite des résultats de dureté actuels pour le couvercle de prise, il s'ensuit qu'il n'y a pasTPP même avec des coûts de déplacement métriques dont le rapport de performance est meilleur que (1-o(1))lnn sauf si P=NP. Pour une discussion et une formulation supplémentaires en tant qu'IP, voir par exemple R. Ravi et FS Salman, Approximation Algorithms for the Traveling Purchaser Problem and its Variants in Network Design, 1999 . L' entrée Wikipedia pour TPP donne également des liens vers certaines approches heuristiques.

Juho
la source
2

Ce que vous avez décrit ressemble plus à un problème de planification en IA. Cela ressemble à ce qui pourrait être modélisé avec un langage de planification, tel que STRIPS , ADL, PDDL, etc. Une fois modélisé, le plan peut ensuite être résolu par l'un des nombreux algorithmes / heuristiques de planification, qui sont généralement des algorithmes de recherche d'espace d'état. Les liens Wiki devraient vous aider à démarrer. Un chapitre de planification dans n'importe quel manuel d'IA peut également aider. Un exemple de planificateur PDDL est le logiciel GraphPlanner .

Étant donné que certaines instances plutôt dégénérées de ce problème peuvent être équivalentes à TSP, ce problème n'est généralement pas le même que TSP, ni n'est Set TSP. Dans TSP et Set TSP, l'ensemble des villes (entrepôts) à visiter est prédéfini. Ici, nous ne nous soucions pas vraiment des entrepôts visités, mais nous nous soucions uniquement de répondre à une commande de la manière la moins chère et la plus efficace possible. Vous pourriez avoir des commandes qui ne peuvent pas être exécutées. Un planificateur reviendra avec un plan vide ou partiel dans un tel cas - un rapport de non-satisfaction. Le problème de satiabilité du plan est généralement connu pour être PSPACE-complete. Dans TSP ou Set TSP, une visite optimale existe toujours - elle peut ne pas être unique cependant.

rrufai
la source
J'ai du mal à croire que ces problèmes de planification ne sont pas difficiles à NP. Pouvez-vous donner une référence qui le dit / le prouve?
Raphael
@Raphael: Clairement, si nous recherchons des plans optimaux en général, le problème est soit PSPACE-complet, soit NP-complet . Cependant, les planificateurs ne renvoient pas toujours un plan optimal - car cela serait peu pratique en général.
rrufai