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













13












$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.










share|improve this question











$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
















13












$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.










share|improve this question











$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














13












13








13


2



$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.










share|improve this question











$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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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

















  • $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











3 Answers
3






active

oldest

votes


















8












$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.






share|improve this answer











$endgroup$






















    9












    $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.





    share|improve this answer











    $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


















    5












    $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$.






    share|improve this answer









    $endgroup$

















      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
      );



      );













      draft saved

      draft discarded


















      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









      8












      $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.






      share|improve this answer











      $endgroup$



















        8












        $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.






        share|improve this answer











        $endgroup$

















          8












          8








          8





          $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.






          share|improve this answer











          $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.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          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
























              9












              $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.





              share|improve this answer











              $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















              9












              $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.





              share|improve this answer











              $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













              9












              9








              9





              $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.





              share|improve this answer











              $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.






              share|improve this answer














              share|improve this answer



              share|improve this answer








              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












              • 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











              5












              $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$.






              share|improve this answer









              $endgroup$



















                5












                $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$.






                share|improve this answer









                $endgroup$

















                  5












                  5








                  5





                  $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$.






                  share|improve this answer









                  $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$.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Jul 30 at 19:40









                  alereraalerera

                  1,1371 silver badge11 bronze badges




                  1,1371 silver badge11 bronze badges






























                      draft saved

                      draft discarded
















































                      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.




                      draft saved


                      draft discarded














                      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





















































                      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







                      Popular posts from this blog

                      Get product attribute by attribute group code in magento 2get product attribute by product attribute group in magento 2Magento 2 Log Bundle Product Data in List Page?How to get all product attribute of a attribute group of Default attribute set?Magento 2.1 Create a filter in the product grid by new attributeMagento 2 : Get Product Attribute values By GroupMagento 2 How to get all existing values for one attributeMagento 2 get custom attribute of a single product inside a pluginMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?Magento2: how to develop rest API to get new productsGet product attribute by attribute group code ( [attribute_group_code] ) in magento 2

                      Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

                      Magento 2.3: How do i solve this, Not registered handle, on custom form?How can i rewrite TierPrice Block in Magento2magento 2 captcha not rendering if I override layout xmlmain.CRITICAL: Plugin class doesn't existMagento 2 : Problem while adding custom button order view page?Magento 2.2.5: Overriding Admin Controller sales/orderMagento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 : File Upload issue in UI Component FormMagento2 Not registered handleHow to configured Form Builder Js in my custom magento 2.3.0 module?Magento 2.3. How to create image upload field in an admin form