Set TSP problem

In combinatorial optimization, the set TSP, also known as the generalized TSP, group TSP, One-of-a-Set TSP, Multiple Choice TSP or Covering Salesman Problem, is a generalization of the Traveling salesman problem (TSP), whereby it is required to find a shortest tour in a graph which visits all specified subsets of the vertices of a graph. The subsets of vertices must be disjoint. The ordinary TSP is a special case of the set TSP when all subsets to be visited are singletons. Therefore, the set TSP is also NP-hard.

There is a direct transformation for an instance of the set TSP to an instance of the standard asymmetric TSP.[1] The idea is to first create disjoint sets and then assign a directed cycle to each set. The salesman, when visiting a vertex in some set, then walks around the cycle for free. To not use the cycle would ultimately be very costly.

The Set TSP has a lot of interesting applications in several path planning problems. For example, a two vehicle cooperative routing problem could be transformed into a set TSP,[2] tight lower bounds to the Dubins TSP and generalized Dubins path problem could be computed by solving a Set TSP.[3][4]

Illustration from the cutting stock problem

The one-dimensional cutting stock problem as applied in the paper / plastic film industries, involves cutting jumbo rolls into smaller ones. This is done by generating cutting patterns typically to minimise waste. Once such a solution has been produced, one may seek to minimise the knife changes, by re-sequencing the patterns (up and down in the figure), or moving rolls left or right within each pattern. These moves do not affect the waste of the solution.

In the above figure, patterns (width no more than 198) are rows; knife changes are indicated by the small white circles; for example, patterns 2-3-4 have a roll of size 42.5 on the left - the corresponding knife does not have to move. Each pattern represents a TSP set, one of whose permutations must be visited. For instance, for the last pattern, which contains two repeated sizes (twice each), there are 5! / (2! × 2!) = 30 permutations. The number of possible solutions to the above instance is 12! × (5!)6 × (6!)4 × (7!)2 / ((2!)9 × (3!)2) ≈ 5.3 × 1035. The above solution contains 39 knife changes, and has been obtained by a heuristic; it is not known whether this is optimal. Transformations into the regular TSP, as described in [1] would involve a TSP with 5,520 nodes.

gollark: ```lua-- Ensure code does not contain evil/unsafe things, such as known browsers, bad OSes or Siri. For further information on what to do if Siri is detected please consult https://pastebin.com/RM13UGFa line 2 and/or the documentation for PS#ABB85797 in this file.function potatOS.check_safe(code) local lcode = strip_comments(string.lower(code)) for category, list in pairs(banned) do for _, thing in pairs(list) do if string.find(lcode, '[^"]' .. string.lower(thing)) then --local ok, err = pcall(potatOS.make_paste, ("potatOS_code_sample_%x"):format(0, 2^24), code) --local sample = "[error]" --if ok then sample = "https://pastebin.com/" .. err end local text = string.format([[This program contains "%s" and will not be run.Classified as: %s.%sIf you believe this to be in error, please contact the potatOS developers.This incident has been reported.]], thing, category, category_descriptions[category]) potatOS.report_incident(string.format("use of banned program classified %s (contains %s).", category, thing), {"safety_checker"}, { code = code, extra_meta = { program_category = category, program_contains = thing, program_category_description = category_descriptions[category] } }) return false, function() printError(text) end end end end return trueend```
gollark: There's a bit of code in `load` which checks user code for stuff which looks like known virii/bad OSes.
gollark: I may need to improve the potatOS antivirus.
gollark: I've not *heard* of one.
gollark: A common obfuscation technique in the CC community is `string.dump`ing your code to bytecode so you can't (very easily) read the original source.

See also

  • Fagnano's problem of finding the shortest tour that visits all three sides of a triangle

References

  1. Charles Noon, James Bean (1993). "An efficient transformation of the generalized traveling salesman problem". Cite journal requires |journal= (help)
  2. Satyanarayana G. Manyam, Sivakumar Rathinam, Swaroop Darbha, David Casbeer, Yongcan Cao, Phil Chandler (2016). "GPS Denied UAV Routing with Communication Constraints". Journal of Intelligent & Robotic Systems. 84: 691–703. doi:10.1007/s10846-016-0343-2.CS1 maint: multiple names: authors list (link)
  3. Satyanarayana G. Manyam, Sivakumar Rathinam (2016). "On Tightly Bounding the Dubins Traveling Salesman's Optimum". Journal of Dynamic Systems, Measurement, and Control. 140 (7): 071013. arXiv:1506.08752. doi:10.1115/1.4039099.
  4. Satyanarayana G. Manyam, Sivakumar Rathinam, David Casbeer, Eloy Garcia (2017). "Tightly Bounding the Shortest Dubins Paths Through a Sequence of Points". Journal of Intelligent & Robotic Systems. 88 (2–4): 495–511. doi:10.1007/s10846-016-0459-4.CS1 maint: multiple names: authors list (link)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.