A variant of the Multiple Traveling Salesman ProblemIs there a canonical name for Score Folding (multiplying a priority soft constraint by a big weight)?Is there a fixed worst-case error bound for farthest-insertion?Relationship between the Assignment Problem and the Stable Marriage ProblemSmall Traveling Salesman Problem instanceHas the expressibility of 'non-integrality testing' as extension to MILP been studied before?Deciding the presence of mixed-integer points in the relative interior of a polyhedronDoes the “prize-collecting shortest path problem” exist?How to reformulate (linearize/convexify) a budgeted assignment problem?Finding minimum time for vehicle to reach to its destinationHow to modify EMSR when capacity for each fare class is different
How can I tell if a flight itinerary is fake?
Why are Gatwick's runways too close together?
How to vertically align the three columns of my table top, top, middle
Blocking people from taking pictures of me with smartphone
Why did the RAAF procure the F/A-18 despite being purpose-built for carriers?
Performance of a branch and bound algorithm VS branch-cut-heuristics
Am I overreacting to my team leader's unethical requests?
In a topological space if there exists a loop that cannot be contracted to a point does there exist a simple loop that cannot be contracted also?
Why did Gandalf use a sword against the Balrog?
How do I calculate the difference in lens reach between a superzoom compact and a DSLR zoom lens?
Was the 2019 Lion King film made through motion capture?
Accidentals - some in brackets, some not
(11 of 11: Meta) What is Pyramid Cult's All-Time Favorite?
What is the idiomatic way of saying “he is ticklish under armpits”?
Ordering a word list
How to mark beverage cans in a cooler for a blind person?
Can I call myself an assistant professor without a PhD?
What does Apple mean by "This may decrease battery life"?
Why does Intel's Haswell chip allow FP multiplication to be twice as fast as addition?
Why do oscilloscopes use SMPS instead of linear power supply?
Can a fight scene, component-wise, be too complex and complicated?
Non-OR journals which regularly publish OR research
Why should we care about syntactic proofs if we can show semantically that statements are true?
In Pokémon Go, why does one of my Pikachu have an option to evolve, but another one doesn't?
A variant of the Multiple Traveling Salesman Problem
Is there a canonical name for Score Folding (multiplying a priority soft constraint by a big weight)?Is there a fixed worst-case error bound for farthest-insertion?Relationship between the Assignment Problem and the Stable Marriage ProblemSmall Traveling Salesman Problem instanceHas the expressibility of 'non-integrality testing' as extension to MILP been studied before?Deciding the presence of mixed-integer points in the relative interior of a polyhedronDoes the “prize-collecting shortest path problem” exist?How to reformulate (linearize/convexify) a budgeted assignment problem?Finding minimum time for vehicle to reach to its destinationHow to modify EMSR when capacity for each fare class is different
$begingroup$
I am trying to find a reference (or a reformulation) of a variant of the multiple Traveling Salesman Problem, where multiple agents need to visit each vertex in a graph with minimal cost.
Most of the literature that I found requires that only one agent needs to visit each vertex, but I am looking to generalize this to requiring multiple and different agents visiting some of the vertices. I have been trying to form this problem into the multiple Traveling Salesman problem, (and eventually use an approximation algorithm) but I have not been successful in reformulating the problem.
Some of the references that I looked into were
Arkin, Esther M., Refael Hassin, and Asaf Levin. "Approximations for minimum and min-max vehicle routing problems." Journal of Algorithms 59.1 (2006): 1-18, and
Bektas, Tolga. "The multiple traveling salesman problem: an overview of formulations and solution procedures." Omega 34.3 (2006): 209-219.
But, as I mentioned before, these papers require that each vertex is visited only once, and I want to require multiple agents to visit some of the vertices.
integer-programming reference-request combinatorial-optimization graphs traveling-salesman
$endgroup$
add a comment |
$begingroup$
I am trying to find a reference (or a reformulation) of a variant of the multiple Traveling Salesman Problem, where multiple agents need to visit each vertex in a graph with minimal cost.
Most of the literature that I found requires that only one agent needs to visit each vertex, but I am looking to generalize this to requiring multiple and different agents visiting some of the vertices. I have been trying to form this problem into the multiple Traveling Salesman problem, (and eventually use an approximation algorithm) but I have not been successful in reformulating the problem.
Some of the references that I looked into were
Arkin, Esther M., Refael Hassin, and Asaf Levin. "Approximations for minimum and min-max vehicle routing problems." Journal of Algorithms 59.1 (2006): 1-18, and
Bektas, Tolga. "The multiple traveling salesman problem: an overview of formulations and solution procedures." Omega 34.3 (2006): 209-219.
But, as I mentioned before, these papers require that each vertex is visited only once, and I want to require multiple agents to visit some of the vertices.
integer-programming reference-request combinatorial-optimization graphs traveling-salesman
$endgroup$
$begingroup$
Can you explain your problem more, may be by giving a small example? Let’s say 3 vehicles and 5 vertex. How the result of your model should be?
$endgroup$
– Oguz Toragay
Jul 30 at 15:13
$begingroup$
The output should be a path for each vehicle such that each vertex is visited by at least two different agents. Edit: For instance, an example path may be for a 5 vertex example: Agent 1: 1,3,2,4 Agent 2 : 1,2,4,5 Agent 3 : 3,5
$endgroup$
– kemalduldul
Jul 30 at 15:21
add a comment |
$begingroup$
I am trying to find a reference (or a reformulation) of a variant of the multiple Traveling Salesman Problem, where multiple agents need to visit each vertex in a graph with minimal cost.
Most of the literature that I found requires that only one agent needs to visit each vertex, but I am looking to generalize this to requiring multiple and different agents visiting some of the vertices. I have been trying to form this problem into the multiple Traveling Salesman problem, (and eventually use an approximation algorithm) but I have not been successful in reformulating the problem.
Some of the references that I looked into were
Arkin, Esther M., Refael Hassin, and Asaf Levin. "Approximations for minimum and min-max vehicle routing problems." Journal of Algorithms 59.1 (2006): 1-18, and
Bektas, Tolga. "The multiple traveling salesman problem: an overview of formulations and solution procedures." Omega 34.3 (2006): 209-219.
But, as I mentioned before, these papers require that each vertex is visited only once, and I want to require multiple agents to visit some of the vertices.
integer-programming reference-request combinatorial-optimization graphs traveling-salesman
$endgroup$
I am trying to find a reference (or a reformulation) of a variant of the multiple Traveling Salesman Problem, where multiple agents need to visit each vertex in a graph with minimal cost.
Most of the literature that I found requires that only one agent needs to visit each vertex, but I am looking to generalize this to requiring multiple and different agents visiting some of the vertices. I have been trying to form this problem into the multiple Traveling Salesman problem, (and eventually use an approximation algorithm) but I have not been successful in reformulating the problem.
Some of the references that I looked into were
Arkin, Esther M., Refael Hassin, and Asaf Levin. "Approximations for minimum and min-max vehicle routing problems." Journal of Algorithms 59.1 (2006): 1-18, and
Bektas, Tolga. "The multiple traveling salesman problem: an overview of formulations and solution procedures." Omega 34.3 (2006): 209-219.
But, as I mentioned before, these papers require that each vertex is visited only once, and I want to require multiple agents to visit some of the vertices.
integer-programming reference-request combinatorial-optimization graphs traveling-salesman
integer-programming reference-request combinatorial-optimization graphs traveling-salesman
edited Jul 31 at 13:16
kemalduldul
asked Jul 30 at 15:00
kemalduldulkemalduldul
687 bronze badges
687 bronze badges
$begingroup$
Can you explain your problem more, may be by giving a small example? Let’s say 3 vehicles and 5 vertex. How the result of your model should be?
$endgroup$
– Oguz Toragay
Jul 30 at 15:13
$begingroup$
The output should be a path for each vehicle such that each vertex is visited by at least two different agents. Edit: For instance, an example path may be for a 5 vertex example: Agent 1: 1,3,2,4 Agent 2 : 1,2,4,5 Agent 3 : 3,5
$endgroup$
– kemalduldul
Jul 30 at 15:21
add a comment |
$begingroup$
Can you explain your problem more, may be by giving a small example? Let’s say 3 vehicles and 5 vertex. How the result of your model should be?
$endgroup$
– Oguz Toragay
Jul 30 at 15:13
$begingroup$
The output should be a path for each vehicle such that each vertex is visited by at least two different agents. Edit: For instance, an example path may be for a 5 vertex example: Agent 1: 1,3,2,4 Agent 2 : 1,2,4,5 Agent 3 : 3,5
$endgroup$
– kemalduldul
Jul 30 at 15:21
$begingroup$
Can you explain your problem more, may be by giving a small example? Let’s say 3 vehicles and 5 vertex. How the result of your model should be?
$endgroup$
– Oguz Toragay
Jul 30 at 15:13
$begingroup$
Can you explain your problem more, may be by giving a small example? Let’s say 3 vehicles and 5 vertex. How the result of your model should be?
$endgroup$
– Oguz Toragay
Jul 30 at 15:13
$begingroup$
The output should be a path for each vehicle such that each vertex is visited by at least two different agents. Edit: For instance, an example path may be for a 5 vertex example: Agent 1: 1,3,2,4 Agent 2 : 1,2,4,5 Agent 3 : 3,5
$endgroup$
– kemalduldul
Jul 30 at 15:21
$begingroup$
The output should be a path for each vehicle such that each vertex is visited by at least two different agents. Edit: For instance, an example path may be for a 5 vertex example: Agent 1: 1,3,2,4 Agent 2 : 1,2,4,5 Agent 3 : 3,5
$endgroup$
– kemalduldul
Jul 30 at 15:21
add a comment |
3 Answers
3
active
oldest
votes
$begingroup$
Y. Kaempfer and L. Wolf, in their recent paper [1] applied ML techniques to solve the Multiple Traveling Salesmen Problem (mTSP). They provide a mathematical model for problem formulation which can be modified to cover what you need in the solution to your problem.
You can replace the constraint (2d) which is:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k=1 (2d)$$
with:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k geq 2 (2d')$$
depends on the number of agents that need to visit each vertex.
The rest of the constraints in their model can be kept the same. In addition to the mentioned paper the following resources could also be helpful:
Multiple Traveling Salesman Problem (mTSP) in Neos guide
A Multi-Agent Approach for Solving Traveling Salesman Problem [2], in which you may find some hints regarding the approximation approach to solve the problem.
There is also a similar question in Stack Overflow: Travelling Salesman with multiple salesmen?
[1] Kaempfer, Yoav, and Lior Wolf. "Learning the multiple traveling salesmen problem with permutation invariant pooling networks." arXiv preprint arXiv:1803.09621 (2018).
[2] Tiejun, Zhou, Tan Yihong, and Xing Lining. "A multi-agent approach for solving traveling salesman problem." Wuhan University Journal of Natural Sciences 11.5 (2006): 1104-1108.
$endgroup$
add a comment |
$begingroup$
You can model your problem by defining separate variables for each traveling salesman. Below I will use 'vehicle' instead of 'traveling salesman', which is more common in this setting.
Defining separate variables
Let $n$ be the number of customers and let $m le n$ be the number of vehicles.
For each vehicle $k = 1, dots, m$, define the variables
$$x_ij^k := begincases 1 & textrm if vehicle $k$ travels from $i$ to $j$ \ 0 & textrm else. endcases$$
Constraints
- For each vehicle $k$, add constraints to make sure that the variables $x_ij^k$ describe a valid route. It is important that customers cannot be visited twice by the same vehicle. If you don't know the number of vehicles in advance, choose $m=n$ and make sure that empty routes are allowed (all $x_ij^k = 0$ for all $i$ and $j$ for a given $k$).
- Add constraints that say that every node is visited by the appropriate number of vehicles. Note that the earlier constraints enforce that each visit is by a unique vehicle.
- You can enforce that node $i$ can only be visited by certain vehicles by setting $x_pi^k = 0$ for all $p in V$ if $k$ and $i$ are incompatible.
$endgroup$
1
$begingroup$
That's a great idea to solve the problem. The only point which needs to be considered as well is, by duplicating the nodes, the size of the problem grows and the curse of dimensionality may affect the performance of approximating approaches to solve the problem.
$endgroup$
– Oguz Toragay
Jul 30 at 17:57
$begingroup$
@OguzToragay You are correct. Even worse, the additional symmetry will also decrease performance. On hindsight, duplicating the nodes is not necessary, and I will edit my answer accordingly.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 18:13
$begingroup$
Thank you for the answer. For this formulation, is it possible to use heuristics for the multiple vehicle problem, for example the one in Arkin et al. that has a 4-approximation guarantee?. Thank you.
$endgroup$
– kemalduldul
Jul 30 at 20:20
$begingroup$
@kemalduldul I am not familiar with the paper by Arkin et al. There is large amount of literature on heuristics for vehicle routing problems. Chapter 4 in Vehicle Routing: Problems, Methods, and Applications may be a good place to start.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 20:32
add a comment |
$begingroup$
I'd like to add a few more ideas that could be important for solving this problem. I agree that a multiple-vehicle integer programming formulation may be a reasonable approach. In an arc-based model, decision variables $x^k_ij$ specify that vehicle/salesperson $k$ travels between $i$ and $j$ on its subtour. In such a formulation, you should create multiple copies for each vertex that needs to be visited multiple times, not create edges between vertex copies, and add a side constraint that ensures that vehicle/salesperson $k$ visits at most one copy of any vertex. Note that making copies introduces some symmetries that can create computational problems. A modeling idea to avoid some difficulties that might arise due to such symmetries is to allow vehicle $k$ to only visit copies $1,2,...,k$ of any vertex by not including certain edges/variables.
It may be important to include some constraints on the tours generated. For example, you could constrain the number of visits made by each vehicle: $$sum_ij x^k_ij leq c$$ or constrain the total duration of each vehicle tour: $$sum_ij t_ij x^k_ij leq d quad .$$ If you want to be sure that vehicles serve tours with roughly the same number of visits or same total duration, you could use a minimax objective where you minimize $z$ and constrain $$z geq sum_ij x^k_ij quad textor quad z geq sum_ij t_ij x^k_ij quad forall ; k quad .$$
One minor problem with such an arc-based formulation is that subtour elimination constraints will be required for each vehicle/salesperson. Since no individual vehicle needs to serve all vertices, it is important to use appropriate SEC constraints. One option is the Miller-Tucker-Zemlin approach that introduces ordering decision variables (in this case, for each vehicle). If all the vehicles have a common base/depot vertex 0, then the typical SEC constraints that prevent cycles that do not include vertex 0 will work with minor modifications. Since these types of constraints are added dynamically, symmetry requires that you add them for each vehicle when they are required for any vehicle and that all copies of vertex $i$ should be included in the subtour set $S$.
$endgroup$
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "700"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2for.stackexchange.com%2fquestions%2f1092%2fa-variant-of-the-multiple-traveling-salesman-problem%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Y. Kaempfer and L. Wolf, in their recent paper [1] applied ML techniques to solve the Multiple Traveling Salesmen Problem (mTSP). They provide a mathematical model for problem formulation which can be modified to cover what you need in the solution to your problem.
You can replace the constraint (2d) which is:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k=1 (2d)$$
with:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k geq 2 (2d')$$
depends on the number of agents that need to visit each vertex.
The rest of the constraints in their model can be kept the same. In addition to the mentioned paper the following resources could also be helpful:
Multiple Traveling Salesman Problem (mTSP) in Neos guide
A Multi-Agent Approach for Solving Traveling Salesman Problem [2], in which you may find some hints regarding the approximation approach to solve the problem.
There is also a similar question in Stack Overflow: Travelling Salesman with multiple salesmen?
[1] Kaempfer, Yoav, and Lior Wolf. "Learning the multiple traveling salesmen problem with permutation invariant pooling networks." arXiv preprint arXiv:1803.09621 (2018).
[2] Tiejun, Zhou, Tan Yihong, and Xing Lining. "A multi-agent approach for solving traveling salesman problem." Wuhan University Journal of Natural Sciences 11.5 (2006): 1104-1108.
$endgroup$
add a comment |
$begingroup$
Y. Kaempfer and L. Wolf, in their recent paper [1] applied ML techniques to solve the Multiple Traveling Salesmen Problem (mTSP). They provide a mathematical model for problem formulation which can be modified to cover what you need in the solution to your problem.
You can replace the constraint (2d) which is:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k=1 (2d)$$
with:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k geq 2 (2d')$$
depends on the number of agents that need to visit each vertex.
The rest of the constraints in their model can be kept the same. In addition to the mentioned paper the following resources could also be helpful:
Multiple Traveling Salesman Problem (mTSP) in Neos guide
A Multi-Agent Approach for Solving Traveling Salesman Problem [2], in which you may find some hints regarding the approximation approach to solve the problem.
There is also a similar question in Stack Overflow: Travelling Salesman with multiple salesmen?
[1] Kaempfer, Yoav, and Lior Wolf. "Learning the multiple traveling salesmen problem with permutation invariant pooling networks." arXiv preprint arXiv:1803.09621 (2018).
[2] Tiejun, Zhou, Tan Yihong, and Xing Lining. "A multi-agent approach for solving traveling salesman problem." Wuhan University Journal of Natural Sciences 11.5 (2006): 1104-1108.
$endgroup$
add a comment |
$begingroup$
Y. Kaempfer and L. Wolf, in their recent paper [1] applied ML techniques to solve the Multiple Traveling Salesmen Problem (mTSP). They provide a mathematical model for problem formulation which can be modified to cover what you need in the solution to your problem.
You can replace the constraint (2d) which is:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k=1 (2d)$$
with:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k geq 2 (2d')$$
depends on the number of agents that need to visit each vertex.
The rest of the constraints in their model can be kept the same. In addition to the mentioned paper the following resources could also be helpful:
Multiple Traveling Salesman Problem (mTSP) in Neos guide
A Multi-Agent Approach for Solving Traveling Salesman Problem [2], in which you may find some hints regarding the approximation approach to solve the problem.
There is also a similar question in Stack Overflow: Travelling Salesman with multiple salesmen?
[1] Kaempfer, Yoav, and Lior Wolf. "Learning the multiple traveling salesmen problem with permutation invariant pooling networks." arXiv preprint arXiv:1803.09621 (2018).
[2] Tiejun, Zhou, Tan Yihong, and Xing Lining. "A multi-agent approach for solving traveling salesman problem." Wuhan University Journal of Natural Sciences 11.5 (2006): 1104-1108.
$endgroup$
Y. Kaempfer and L. Wolf, in their recent paper [1] applied ML techniques to solve the Multiple Traveling Salesmen Problem (mTSP). They provide a mathematical model for problem formulation which can be modified to cover what you need in the solution to your problem.
You can replace the constraint (2d) which is:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k=1 (2d)$$
with:
$$forall 2leq j leq n: sumlimits_i=1^nsumlimits_k=1^m delta_i,j,k geq 2 (2d')$$
depends on the number of agents that need to visit each vertex.
The rest of the constraints in their model can be kept the same. In addition to the mentioned paper the following resources could also be helpful:
Multiple Traveling Salesman Problem (mTSP) in Neos guide
A Multi-Agent Approach for Solving Traveling Salesman Problem [2], in which you may find some hints regarding the approximation approach to solve the problem.
There is also a similar question in Stack Overflow: Travelling Salesman with multiple salesmen?
[1] Kaempfer, Yoav, and Lior Wolf. "Learning the multiple traveling salesmen problem with permutation invariant pooling networks." arXiv preprint arXiv:1803.09621 (2018).
[2] Tiejun, Zhou, Tan Yihong, and Xing Lining. "A multi-agent approach for solving traveling salesman problem." Wuhan University Journal of Natural Sciences 11.5 (2006): 1104-1108.
edited Jul 30 at 19:43
TheSimpliFire
1,8616 silver badges37 bronze badges
1,8616 silver badges37 bronze badges
answered Jul 30 at 17:34
Oguz ToragayOguz Toragay
2,0402 silver badges23 bronze badges
2,0402 silver badges23 bronze badges
add a comment |
add a comment |
$begingroup$
You can model your problem by defining separate variables for each traveling salesman. Below I will use 'vehicle' instead of 'traveling salesman', which is more common in this setting.
Defining separate variables
Let $n$ be the number of customers and let $m le n$ be the number of vehicles.
For each vehicle $k = 1, dots, m$, define the variables
$$x_ij^k := begincases 1 & textrm if vehicle $k$ travels from $i$ to $j$ \ 0 & textrm else. endcases$$
Constraints
- For each vehicle $k$, add constraints to make sure that the variables $x_ij^k$ describe a valid route. It is important that customers cannot be visited twice by the same vehicle. If you don't know the number of vehicles in advance, choose $m=n$ and make sure that empty routes are allowed (all $x_ij^k = 0$ for all $i$ and $j$ for a given $k$).
- Add constraints that say that every node is visited by the appropriate number of vehicles. Note that the earlier constraints enforce that each visit is by a unique vehicle.
- You can enforce that node $i$ can only be visited by certain vehicles by setting $x_pi^k = 0$ for all $p in V$ if $k$ and $i$ are incompatible.
$endgroup$
1
$begingroup$
That's a great idea to solve the problem. The only point which needs to be considered as well is, by duplicating the nodes, the size of the problem grows and the curse of dimensionality may affect the performance of approximating approaches to solve the problem.
$endgroup$
– Oguz Toragay
Jul 30 at 17:57
$begingroup$
@OguzToragay You are correct. Even worse, the additional symmetry will also decrease performance. On hindsight, duplicating the nodes is not necessary, and I will edit my answer accordingly.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 18:13
$begingroup$
Thank you for the answer. For this formulation, is it possible to use heuristics for the multiple vehicle problem, for example the one in Arkin et al. that has a 4-approximation guarantee?. Thank you.
$endgroup$
– kemalduldul
Jul 30 at 20:20
$begingroup$
@kemalduldul I am not familiar with the paper by Arkin et al. There is large amount of literature on heuristics for vehicle routing problems. Chapter 4 in Vehicle Routing: Problems, Methods, and Applications may be a good place to start.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 20:32
add a comment |
$begingroup$
You can model your problem by defining separate variables for each traveling salesman. Below I will use 'vehicle' instead of 'traveling salesman', which is more common in this setting.
Defining separate variables
Let $n$ be the number of customers and let $m le n$ be the number of vehicles.
For each vehicle $k = 1, dots, m$, define the variables
$$x_ij^k := begincases 1 & textrm if vehicle $k$ travels from $i$ to $j$ \ 0 & textrm else. endcases$$
Constraints
- For each vehicle $k$, add constraints to make sure that the variables $x_ij^k$ describe a valid route. It is important that customers cannot be visited twice by the same vehicle. If you don't know the number of vehicles in advance, choose $m=n$ and make sure that empty routes are allowed (all $x_ij^k = 0$ for all $i$ and $j$ for a given $k$).
- Add constraints that say that every node is visited by the appropriate number of vehicles. Note that the earlier constraints enforce that each visit is by a unique vehicle.
- You can enforce that node $i$ can only be visited by certain vehicles by setting $x_pi^k = 0$ for all $p in V$ if $k$ and $i$ are incompatible.
$endgroup$
1
$begingroup$
That's a great idea to solve the problem. The only point which needs to be considered as well is, by duplicating the nodes, the size of the problem grows and the curse of dimensionality may affect the performance of approximating approaches to solve the problem.
$endgroup$
– Oguz Toragay
Jul 30 at 17:57
$begingroup$
@OguzToragay You are correct. Even worse, the additional symmetry will also decrease performance. On hindsight, duplicating the nodes is not necessary, and I will edit my answer accordingly.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 18:13
$begingroup$
Thank you for the answer. For this formulation, is it possible to use heuristics for the multiple vehicle problem, for example the one in Arkin et al. that has a 4-approximation guarantee?. Thank you.
$endgroup$
– kemalduldul
Jul 30 at 20:20
$begingroup$
@kemalduldul I am not familiar with the paper by Arkin et al. There is large amount of literature on heuristics for vehicle routing problems. Chapter 4 in Vehicle Routing: Problems, Methods, and Applications may be a good place to start.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 20:32
add a comment |
$begingroup$
You can model your problem by defining separate variables for each traveling salesman. Below I will use 'vehicle' instead of 'traveling salesman', which is more common in this setting.
Defining separate variables
Let $n$ be the number of customers and let $m le n$ be the number of vehicles.
For each vehicle $k = 1, dots, m$, define the variables
$$x_ij^k := begincases 1 & textrm if vehicle $k$ travels from $i$ to $j$ \ 0 & textrm else. endcases$$
Constraints
- For each vehicle $k$, add constraints to make sure that the variables $x_ij^k$ describe a valid route. It is important that customers cannot be visited twice by the same vehicle. If you don't know the number of vehicles in advance, choose $m=n$ and make sure that empty routes are allowed (all $x_ij^k = 0$ for all $i$ and $j$ for a given $k$).
- Add constraints that say that every node is visited by the appropriate number of vehicles. Note that the earlier constraints enforce that each visit is by a unique vehicle.
- You can enforce that node $i$ can only be visited by certain vehicles by setting $x_pi^k = 0$ for all $p in V$ if $k$ and $i$ are incompatible.
$endgroup$
You can model your problem by defining separate variables for each traveling salesman. Below I will use 'vehicle' instead of 'traveling salesman', which is more common in this setting.
Defining separate variables
Let $n$ be the number of customers and let $m le n$ be the number of vehicles.
For each vehicle $k = 1, dots, m$, define the variables
$$x_ij^k := begincases 1 & textrm if vehicle $k$ travels from $i$ to $j$ \ 0 & textrm else. endcases$$
Constraints
- For each vehicle $k$, add constraints to make sure that the variables $x_ij^k$ describe a valid route. It is important that customers cannot be visited twice by the same vehicle. If you don't know the number of vehicles in advance, choose $m=n$ and make sure that empty routes are allowed (all $x_ij^k = 0$ for all $i$ and $j$ for a given $k$).
- Add constraints that say that every node is visited by the appropriate number of vehicles. Note that the earlier constraints enforce that each visit is by a unique vehicle.
- You can enforce that node $i$ can only be visited by certain vehicles by setting $x_pi^k = 0$ for all $p in V$ if $k$ and $i$ are incompatible.
edited Jul 30 at 18:18
answered Jul 30 at 17:43
Kevin DalmeijerKevin Dalmeijer
1,6894 silver badges23 bronze badges
1,6894 silver badges23 bronze badges
1
$begingroup$
That's a great idea to solve the problem. The only point which needs to be considered as well is, by duplicating the nodes, the size of the problem grows and the curse of dimensionality may affect the performance of approximating approaches to solve the problem.
$endgroup$
– Oguz Toragay
Jul 30 at 17:57
$begingroup$
@OguzToragay You are correct. Even worse, the additional symmetry will also decrease performance. On hindsight, duplicating the nodes is not necessary, and I will edit my answer accordingly.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 18:13
$begingroup$
Thank you for the answer. For this formulation, is it possible to use heuristics for the multiple vehicle problem, for example the one in Arkin et al. that has a 4-approximation guarantee?. Thank you.
$endgroup$
– kemalduldul
Jul 30 at 20:20
$begingroup$
@kemalduldul I am not familiar with the paper by Arkin et al. There is large amount of literature on heuristics for vehicle routing problems. Chapter 4 in Vehicle Routing: Problems, Methods, and Applications may be a good place to start.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 20:32
add a comment |
1
$begingroup$
That's a great idea to solve the problem. The only point which needs to be considered as well is, by duplicating the nodes, the size of the problem grows and the curse of dimensionality may affect the performance of approximating approaches to solve the problem.
$endgroup$
– Oguz Toragay
Jul 30 at 17:57
$begingroup$
@OguzToragay You are correct. Even worse, the additional symmetry will also decrease performance. On hindsight, duplicating the nodes is not necessary, and I will edit my answer accordingly.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 18:13
$begingroup$
Thank you for the answer. For this formulation, is it possible to use heuristics for the multiple vehicle problem, for example the one in Arkin et al. that has a 4-approximation guarantee?. Thank you.
$endgroup$
– kemalduldul
Jul 30 at 20:20
$begingroup$
@kemalduldul I am not familiar with the paper by Arkin et al. There is large amount of literature on heuristics for vehicle routing problems. Chapter 4 in Vehicle Routing: Problems, Methods, and Applications may be a good place to start.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 20:32
1
1
$begingroup$
That's a great idea to solve the problem. The only point which needs to be considered as well is, by duplicating the nodes, the size of the problem grows and the curse of dimensionality may affect the performance of approximating approaches to solve the problem.
$endgroup$
– Oguz Toragay
Jul 30 at 17:57
$begingroup$
That's a great idea to solve the problem. The only point which needs to be considered as well is, by duplicating the nodes, the size of the problem grows and the curse of dimensionality may affect the performance of approximating approaches to solve the problem.
$endgroup$
– Oguz Toragay
Jul 30 at 17:57
$begingroup$
@OguzToragay You are correct. Even worse, the additional symmetry will also decrease performance. On hindsight, duplicating the nodes is not necessary, and I will edit my answer accordingly.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 18:13
$begingroup$
@OguzToragay You are correct. Even worse, the additional symmetry will also decrease performance. On hindsight, duplicating the nodes is not necessary, and I will edit my answer accordingly.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 18:13
$begingroup$
Thank you for the answer. For this formulation, is it possible to use heuristics for the multiple vehicle problem, for example the one in Arkin et al. that has a 4-approximation guarantee?. Thank you.
$endgroup$
– kemalduldul
Jul 30 at 20:20
$begingroup$
Thank you for the answer. For this formulation, is it possible to use heuristics for the multiple vehicle problem, for example the one in Arkin et al. that has a 4-approximation guarantee?. Thank you.
$endgroup$
– kemalduldul
Jul 30 at 20:20
$begingroup$
@kemalduldul I am not familiar with the paper by Arkin et al. There is large amount of literature on heuristics for vehicle routing problems. Chapter 4 in Vehicle Routing: Problems, Methods, and Applications may be a good place to start.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 20:32
$begingroup$
@kemalduldul I am not familiar with the paper by Arkin et al. There is large amount of literature on heuristics for vehicle routing problems. Chapter 4 in Vehicle Routing: Problems, Methods, and Applications may be a good place to start.
$endgroup$
– Kevin Dalmeijer
Jul 30 at 20:32
add a comment |
$begingroup$
I'd like to add a few more ideas that could be important for solving this problem. I agree that a multiple-vehicle integer programming formulation may be a reasonable approach. In an arc-based model, decision variables $x^k_ij$ specify that vehicle/salesperson $k$ travels between $i$ and $j$ on its subtour. In such a formulation, you should create multiple copies for each vertex that needs to be visited multiple times, not create edges between vertex copies, and add a side constraint that ensures that vehicle/salesperson $k$ visits at most one copy of any vertex. Note that making copies introduces some symmetries that can create computational problems. A modeling idea to avoid some difficulties that might arise due to such symmetries is to allow vehicle $k$ to only visit copies $1,2,...,k$ of any vertex by not including certain edges/variables.
It may be important to include some constraints on the tours generated. For example, you could constrain the number of visits made by each vehicle: $$sum_ij x^k_ij leq c$$ or constrain the total duration of each vehicle tour: $$sum_ij t_ij x^k_ij leq d quad .$$ If you want to be sure that vehicles serve tours with roughly the same number of visits or same total duration, you could use a minimax objective where you minimize $z$ and constrain $$z geq sum_ij x^k_ij quad textor quad z geq sum_ij t_ij x^k_ij quad forall ; k quad .$$
One minor problem with such an arc-based formulation is that subtour elimination constraints will be required for each vehicle/salesperson. Since no individual vehicle needs to serve all vertices, it is important to use appropriate SEC constraints. One option is the Miller-Tucker-Zemlin approach that introduces ordering decision variables (in this case, for each vehicle). If all the vehicles have a common base/depot vertex 0, then the typical SEC constraints that prevent cycles that do not include vertex 0 will work with minor modifications. Since these types of constraints are added dynamically, symmetry requires that you add them for each vehicle when they are required for any vehicle and that all copies of vertex $i$ should be included in the subtour set $S$.
$endgroup$
add a comment |
$begingroup$
I'd like to add a few more ideas that could be important for solving this problem. I agree that a multiple-vehicle integer programming formulation may be a reasonable approach. In an arc-based model, decision variables $x^k_ij$ specify that vehicle/salesperson $k$ travels between $i$ and $j$ on its subtour. In such a formulation, you should create multiple copies for each vertex that needs to be visited multiple times, not create edges between vertex copies, and add a side constraint that ensures that vehicle/salesperson $k$ visits at most one copy of any vertex. Note that making copies introduces some symmetries that can create computational problems. A modeling idea to avoid some difficulties that might arise due to such symmetries is to allow vehicle $k$ to only visit copies $1,2,...,k$ of any vertex by not including certain edges/variables.
It may be important to include some constraints on the tours generated. For example, you could constrain the number of visits made by each vehicle: $$sum_ij x^k_ij leq c$$ or constrain the total duration of each vehicle tour: $$sum_ij t_ij x^k_ij leq d quad .$$ If you want to be sure that vehicles serve tours with roughly the same number of visits or same total duration, you could use a minimax objective where you minimize $z$ and constrain $$z geq sum_ij x^k_ij quad textor quad z geq sum_ij t_ij x^k_ij quad forall ; k quad .$$
One minor problem with such an arc-based formulation is that subtour elimination constraints will be required for each vehicle/salesperson. Since no individual vehicle needs to serve all vertices, it is important to use appropriate SEC constraints. One option is the Miller-Tucker-Zemlin approach that introduces ordering decision variables (in this case, for each vehicle). If all the vehicles have a common base/depot vertex 0, then the typical SEC constraints that prevent cycles that do not include vertex 0 will work with minor modifications. Since these types of constraints are added dynamically, symmetry requires that you add them for each vehicle when they are required for any vehicle and that all copies of vertex $i$ should be included in the subtour set $S$.
$endgroup$
add a comment |
$begingroup$
I'd like to add a few more ideas that could be important for solving this problem. I agree that a multiple-vehicle integer programming formulation may be a reasonable approach. In an arc-based model, decision variables $x^k_ij$ specify that vehicle/salesperson $k$ travels between $i$ and $j$ on its subtour. In such a formulation, you should create multiple copies for each vertex that needs to be visited multiple times, not create edges between vertex copies, and add a side constraint that ensures that vehicle/salesperson $k$ visits at most one copy of any vertex. Note that making copies introduces some symmetries that can create computational problems. A modeling idea to avoid some difficulties that might arise due to such symmetries is to allow vehicle $k$ to only visit copies $1,2,...,k$ of any vertex by not including certain edges/variables.
It may be important to include some constraints on the tours generated. For example, you could constrain the number of visits made by each vehicle: $$sum_ij x^k_ij leq c$$ or constrain the total duration of each vehicle tour: $$sum_ij t_ij x^k_ij leq d quad .$$ If you want to be sure that vehicles serve tours with roughly the same number of visits or same total duration, you could use a minimax objective where you minimize $z$ and constrain $$z geq sum_ij x^k_ij quad textor quad z geq sum_ij t_ij x^k_ij quad forall ; k quad .$$
One minor problem with such an arc-based formulation is that subtour elimination constraints will be required for each vehicle/salesperson. Since no individual vehicle needs to serve all vertices, it is important to use appropriate SEC constraints. One option is the Miller-Tucker-Zemlin approach that introduces ordering decision variables (in this case, for each vehicle). If all the vehicles have a common base/depot vertex 0, then the typical SEC constraints that prevent cycles that do not include vertex 0 will work with minor modifications. Since these types of constraints are added dynamically, symmetry requires that you add them for each vehicle when they are required for any vehicle and that all copies of vertex $i$ should be included in the subtour set $S$.
$endgroup$
I'd like to add a few more ideas that could be important for solving this problem. I agree that a multiple-vehicle integer programming formulation may be a reasonable approach. In an arc-based model, decision variables $x^k_ij$ specify that vehicle/salesperson $k$ travels between $i$ and $j$ on its subtour. In such a formulation, you should create multiple copies for each vertex that needs to be visited multiple times, not create edges between vertex copies, and add a side constraint that ensures that vehicle/salesperson $k$ visits at most one copy of any vertex. Note that making copies introduces some symmetries that can create computational problems. A modeling idea to avoid some difficulties that might arise due to such symmetries is to allow vehicle $k$ to only visit copies $1,2,...,k$ of any vertex by not including certain edges/variables.
It may be important to include some constraints on the tours generated. For example, you could constrain the number of visits made by each vehicle: $$sum_ij x^k_ij leq c$$ or constrain the total duration of each vehicle tour: $$sum_ij t_ij x^k_ij leq d quad .$$ If you want to be sure that vehicles serve tours with roughly the same number of visits or same total duration, you could use a minimax objective where you minimize $z$ and constrain $$z geq sum_ij x^k_ij quad textor quad z geq sum_ij t_ij x^k_ij quad forall ; k quad .$$
One minor problem with such an arc-based formulation is that subtour elimination constraints will be required for each vehicle/salesperson. Since no individual vehicle needs to serve all vertices, it is important to use appropriate SEC constraints. One option is the Miller-Tucker-Zemlin approach that introduces ordering decision variables (in this case, for each vehicle). If all the vehicles have a common base/depot vertex 0, then the typical SEC constraints that prevent cycles that do not include vertex 0 will work with minor modifications. Since these types of constraints are added dynamically, symmetry requires that you add them for each vehicle when they are required for any vehicle and that all copies of vertex $i$ should be included in the subtour set $S$.
answered Jul 30 at 19:40
alereraalerera
1,1371 silver badge11 bronze badges
1,1371 silver badge11 bronze badges
add a comment |
add a comment |
Thanks for contributing an answer to Operations Research Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2for.stackexchange.com%2fquestions%2f1092%2fa-variant-of-the-multiple-traveling-salesman-problem%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
Can you explain your problem more, may be by giving a small example? Let’s say 3 vehicles and 5 vertex. How the result of your model should be?
$endgroup$
– Oguz Toragay
Jul 30 at 15:13
$begingroup$
The output should be a path for each vehicle such that each vertex is visited by at least two different agents. Edit: For instance, an example path may be for a 5 vertex example: Agent 1: 1,3,2,4 Agent 2 : 1,2,4,5 Agent 3 : 3,5
$endgroup$
– kemalduldul
Jul 30 at 15:21