pycombinatorial 2.2.3__tar.gz → 2.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. {pycombinatorial-2.2.3/pycombinatorial.egg-info → pycombinatorial-2.2.4}/PKG-INFO +3 -2
  2. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/README.md +2 -1
  3. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/__init__.py +61 -60
  4. pycombinatorial-2.2.4/pyCombinatorial/algorithm/lkh.py +1688 -0
  5. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/index.js +2 -0
  6. pycombinatorial-2.2.4/pyCombinatorial/web/js/algorithms/lkh.js +346 -0
  7. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4/pycombinatorial.egg-info}/PKG-INFO +3 -2
  8. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pycombinatorial.egg-info/SOURCES.txt +2 -0
  9. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/setup.py +1 -1
  10. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/LICENSE +0 -0
  11. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/MANIFEST.in +0 -0
  12. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/__init__.py +0 -0
  13. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/aco.py +0 -0
  14. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/alns.py +0 -0
  15. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/bb.py +0 -0
  16. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/bf.py +0 -0
  17. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/bhk.py +0 -0
  18. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/brkga.py +0 -0
  19. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/bt.py +0 -0
  20. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/christofides.py +0 -0
  21. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/conc_hull.py +0 -0
  22. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/conv_hull.py +0 -0
  23. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/cw.py +0 -0
  24. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/eln.py +0 -0
  25. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/eo.py +0 -0
  26. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/frnn.py +0 -0
  27. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/ga.py +0 -0
  28. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/ga_eax.py +0 -0
  29. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/gksp.py +0 -0
  30. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/grasp.py +0 -0
  31. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/hpn.py +0 -0
  32. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/ins_c.py +0 -0
  33. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/ins_f.py +0 -0
  34. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/ins_n.py +0 -0
  35. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/ins_r.py +0 -0
  36. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/ksp.py +0 -0
  37. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/lns.py +0 -0
  38. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/mf.py +0 -0
  39. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/nn.py +0 -0
  40. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_2.py +0 -0
  41. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_2_5.py +0 -0
  42. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_2_5s.py +0 -0
  43. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_2s.py +0 -0
  44. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_3.py +0 -0
  45. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_3s.py +0 -0
  46. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_4.py +0 -0
  47. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_4s.py +0 -0
  48. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_5.py +0 -0
  49. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_5s.py +0 -0
  50. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/opt_or.py +0 -0
  51. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/rl_double_ql.py +0 -0
  52. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/rl_ql.py +0 -0
  53. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/rl_sarsa.py +0 -0
  54. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/rr.py +0 -0
  55. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/rss.py +0 -0
  56. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/rt.py +0 -0
  57. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/s_gui.py +0 -0
  58. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/s_itr.py +0 -0
  59. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/s_sct.py +0 -0
  60. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/s_shc.py +0 -0
  61. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/s_tabu.py +0 -0
  62. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/s_vns.py +0 -0
  63. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/sa.py +0 -0
  64. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/som.py +0 -0
  65. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/spfc_h.py +0 -0
  66. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/spfc_m.py +0 -0
  67. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/spfc_s.py +0 -0
  68. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/ssi.py +0 -0
  69. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/swp.py +0 -0
  70. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/tat.py +0 -0
  71. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/tbb.py +0 -0
  72. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/algorithm/zs.py +0 -0
  73. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/utils/__init__.py +0 -0
  74. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/utils/graphs.py +0 -0
  75. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/utils/util.py +0 -0
  76. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/__init__.py +0 -0
  77. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/__main__.py +0 -0
  78. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/css/style.css +0 -0
  79. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/index.html +0 -0
  80. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/_kopt.js +0 -0
  81. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/_kopt_trials.js +0 -0
  82. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/_ksp_helpers.js +0 -0
  83. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/_shared.js +0 -0
  84. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/aco.js +0 -0
  85. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/alns.js +0 -0
  86. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/bb.js +0 -0
  87. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/bf.js +0 -0
  88. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/bhk.js +0 -0
  89. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/brkga.js +0 -0
  90. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/bt.js +0 -0
  91. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/christofides.js +0 -0
  92. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/conc_hull.js +0 -0
  93. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/conv_hull.js +0 -0
  94. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/cw.js +0 -0
  95. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/eln.js +0 -0
  96. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/eo.js +0 -0
  97. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/frnn.js +0 -0
  98. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/ga.js +0 -0
  99. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/ga_eax.js +0 -0
  100. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/gksp.js +0 -0
  101. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/grasp.js +0 -0
  102. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/hpn.js +0 -0
  103. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/ins_c.js +0 -0
  104. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/ins_f.js +0 -0
  105. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/ins_n.js +0 -0
  106. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/ins_r.js +0 -0
  107. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/ksp.js +0 -0
  108. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/lns.js +0 -0
  109. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/mf.js +0 -0
  110. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/nn.js +0 -0
  111. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_2.js +0 -0
  112. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_2_5.js +0 -0
  113. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_2_5s.js +0 -0
  114. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_2s.js +0 -0
  115. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_3.js +0 -0
  116. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_3s.js +0 -0
  117. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_4.js +0 -0
  118. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_4s.js +0 -0
  119. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_5.js +0 -0
  120. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_5s.js +0 -0
  121. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/opt_or.js +0 -0
  122. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/rl_double_ql.js +0 -0
  123. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/rl_ql.js +0 -0
  124. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/rl_sarsa.js +0 -0
  125. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/rr.js +0 -0
  126. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/rss.js +0 -0
  127. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/rt.js +0 -0
  128. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/s_gui.js +0 -0
  129. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/s_itr.js +0 -0
  130. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/s_sct.js +0 -0
  131. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/s_shc.js +0 -0
  132. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/s_tabu.js +0 -0
  133. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/s_vns.js +0 -0
  134. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/sa.js +0 -0
  135. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/som.js +0 -0
  136. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/spfc_h.js +0 -0
  137. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/spfc_m.js +0 -0
  138. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/spfc_s.js +0 -0
  139. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/ssi.js +0 -0
  140. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/swp.js +0 -0
  141. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/tat.js +0 -0
  142. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/tbb.js +0 -0
  143. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/algorithms/zs.js +0 -0
  144. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/core/dataset.js +0 -0
  145. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/core/distance.js +0 -0
  146. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/core/renderer.js +0 -0
  147. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/core/seed.js +0 -0
  148. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/core/stepper.js +0 -0
  149. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/core/twoopt_refiner.js +0 -0
  150. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pyCombinatorial/web/js/main.js +0 -0
  151. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pycombinatorial.egg-info/dependency_links.txt +0 -0
  152. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pycombinatorial.egg-info/entry_points.txt +0 -0
  153. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pycombinatorial.egg-info/requires.txt +0 -0
  154. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/pycombinatorial.egg-info/top_level.txt +0 -0
  155. {pycombinatorial-2.2.3 → pycombinatorial-2.2.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycombinatorial
3
- Version: 2.2.3
3
+ Version: 2.2.4
4
4
  Summary: A library to solve TSP (Travelling Salesman Problem) using Exact Algorithms, Heuristics, Metaheuristics and Reinforcement Learning
5
5
  Home-page: https://github.com/Valdecy/pyCombinatorial
6
6
  Author: Valdecy Pereira
@@ -36,7 +36,7 @@ _This Google Colab Demo is intended for quick demos only. For the best experienc
36
36
 
37
37
  **pyCombinatorial** is a Python-based library designed to tackle the classic Traveling Salesman Problem (TSP) through a diverse set of **Exact Algorithms**, **Heuristics**, **Metaheuristics**, and **Reinforcement Learning**. It brings together well-established and cutting-edge methodologies, offering end users a flexible toolkit to generate high-quality solutions for TSP instances of varying sizes and complexities.
38
38
 
39
- Techniques: **2-opt**; **2.5-opt**; **3-opt**; **4-opt**; **5-opt**; **Or-opt**; **2-opt Stochastic**; **2.5-opt Stochastic**; **3-opt Stochastic**; **4-opt Stochastic**; **5-opt Stochastic**; **Ant Colony Optimization**; **Adaptive Large Neighborhood Search**; **Bellman-Held-Karp Exact Algorithm**; **Bitonic Tour**; **Branch & Bound**; **BRKGA** (Biased Random Key Genetic Algorithm); **Brute Force**; **Cheapest Insertion**; **Christofides Algorithm**; **Clarke & Wright** (Savings Heuristic); **Concave Hull Algorithm**; **Convex Hull Algorithm**; **Elastic Net**; **Extremal Optimization**; **Farthest Insertion**; **FRNN** (Fixed Radius Near Neighbor); **Genetic Algorithm**; **GA-EAX (Genetic Algorithm with Edge Assembly Crossover)**; **GRASP** (Greedy Randomized Adaptive Search Procedure); **Greedy Karp-Steele Patching**; **Guided Search**; **Hopfield Network**; **Iterated Search**; **Karp-Steele Patching**; **Large Neighborhood Search**; **Multifragment Heuristic**; **Nearest Insertion**; **Nearest Neighbour**; **Random Insertion**; **Random Tour**; **Randomized Spectral Seriation**; **RL Q-Learning**; **RL Double Q-Learning**; **RL S.A.R.S.A** (State Action Reward State Action); **Ruin & Recreate**; **Scatter Search**; **Simulated Annealing**; **SOM** (Self Organizing Maps); **Space Filling Curve** (Hilbert); **Space Filling Curve** (Morton); **Space Filling Curve** (Sierpinski); **Spectral Seriation Initializer**; **Stochastic Hill Climbing**; **Sweep**; **Tabu Search**; **Truncated Branch & Bound**; **Twice-Around the Tree Algorithm** (Double Tree Algorithm); **Variable Neighborhood Search**; **Zero Suffix Method**.
39
+ Techniques: **2-opt**; **2.5-opt**; **3-opt**; **4-opt**; **5-opt**; **Or-opt**; **2-opt Stochastic**; **2.5-opt Stochastic**; **3-opt Stochastic**; **4-opt Stochastic**; **5-opt Stochastic**; **Ant Colony Optimization**; **Adaptive Large Neighborhood Search**; **Bellman-Held-Karp Exact Algorithm**; **Bitonic Tour**; **Branch & Bound**; **BRKGA** (Biased Random Key Genetic Algorithm); **Brute Force**; **Cheapest Insertion**; **Christofides Algorithm**; **Clarke & Wright** (Savings Heuristic); **Concave Hull Algorithm**; **Convex Hull Algorithm**; **Elastic Net**; **Extremal Optimization**; **Farthest Insertion**; **FRNN** (Fixed Radius Near Neighbor); **Genetic Algorithm**; **GA-EAX** (Genetic Algorithm with Edge Assembly Crossover); **GRASP** (Greedy Randomized Adaptive Search Procedure); **Greedy Karp-Steele Patching**; **Guided Search**; **Hopfield Network**; **Iterated Search**; **Karp-Steele Patching**; **Large Neighborhood Search**; **LKH** (Lin-Kernighan-Helsgaun); **Multifragment Heuristic**; **Nearest Insertion**; **Nearest Neighbour**; **Random Insertion**; **Random Tour**; **Randomized Spectral Seriation**; **RL Q-Learning**; **RL Double Q-Learning**; **RL S.A.R.S.A** (State Action Reward State Action); **Ruin & Recreate**; **Scatter Search**; **Simulated Annealing**; **SOM** (Self Organizing Maps); **Space Filling Curve** (Hilbert); **Space Filling Curve** (Morton); **Space Filling Curve** (Sierpinski); **Spectral Seriation Initializer**; **Stochastic Hill Climbing**; **Sweep**; **Tabu Search**; **Truncated Branch & Bound**; **Twice-Around the Tree Algorithm** (Double Tree Algorithm); **Variable Neighborhood Search**; **Zero Suffix Method**.
40
40
 
41
41
  ## Usage
42
42
 
@@ -128,6 +128,7 @@ print('Total Distance: ', round(distance, 2))
128
128
  - Iterated Search ([ Colab Demo ](https://colab.research.google.com/drive/1U3sPpknulwsCUQq9mK7Ywfb8ap2GIXZv?usp=sharing)) ( [ Paper ](https://doi.org/10.1063/1.36219))
129
129
  - Karp-Steele Patching ([ Colab Demo ](https://colab.research.google.com/drive/12xLLDNIk6OOSNQXqYSYtdwhupZ9Kt5xb?usp=sharing)) ( [ Paper ](https://doi.org/10.1137/0208045))
130
130
  - Large Neighborhood Search ([ Colab Demo ](https://colab.research.google.com/drive/1t4cafHRRzOLN4xth96jE-2qHoPQOLsn5?usp=sharing)) ( [ Paper ](https://doi.org/10.1007/3-540-49481-2_30))
131
+ - Lin-Kernighan-Helsgaun ([ Colab Demo ](https://colab.research.google.com/drive/1jYtOGgz0nv294GvaDpiPfTkUP4aljd58?usp=sharing)) ( [ Paper ](https://doi.org/10.1016/S0377-2217(99)00284-2))
131
132
  - Multifragment Heuristic ([ Colab Demo ](https://colab.research.google.com/drive/1YNHVjS6P35bAnqGZyP7ERNrTnG9tNuhF?usp=sharing)) ( [ Paper ](https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=08D176AEFA57EF1941645F2B31DF1686?doi=10.1.1.92.1635&rep=rep1&type=pdf))
132
133
  - Nearest Insertion ([ Colab Demo ](https://colab.research.google.com/drive/1R4mz604EG-unKktu8ON_Hpoywi3OIRHK?usp=sharing)) ( [ Paper ](https://disco.ethz.ch/courses/fs16/podc/readingAssignment/1.pdf))
133
134
  - Nearest Neighbour ([ Colab Demo ](https://colab.research.google.com/drive/1aL1kYXgSjUJYPfYSMy_0SWq4hJ3nrueJ?usp=sharing)) ( [ Paper ](https://doi.org/10.1016/S0166-218X(01)00195-0))
@@ -25,7 +25,7 @@ _This Google Colab Demo is intended for quick demos only. For the best experienc
25
25
 
26
26
  **pyCombinatorial** is a Python-based library designed to tackle the classic Traveling Salesman Problem (TSP) through a diverse set of **Exact Algorithms**, **Heuristics**, **Metaheuristics**, and **Reinforcement Learning**. It brings together well-established and cutting-edge methodologies, offering end users a flexible toolkit to generate high-quality solutions for TSP instances of varying sizes and complexities.
27
27
 
28
- Techniques: **2-opt**; **2.5-opt**; **3-opt**; **4-opt**; **5-opt**; **Or-opt**; **2-opt Stochastic**; **2.5-opt Stochastic**; **3-opt Stochastic**; **4-opt Stochastic**; **5-opt Stochastic**; **Ant Colony Optimization**; **Adaptive Large Neighborhood Search**; **Bellman-Held-Karp Exact Algorithm**; **Bitonic Tour**; **Branch & Bound**; **BRKGA** (Biased Random Key Genetic Algorithm); **Brute Force**; **Cheapest Insertion**; **Christofides Algorithm**; **Clarke & Wright** (Savings Heuristic); **Concave Hull Algorithm**; **Convex Hull Algorithm**; **Elastic Net**; **Extremal Optimization**; **Farthest Insertion**; **FRNN** (Fixed Radius Near Neighbor); **Genetic Algorithm**; **GA-EAX (Genetic Algorithm with Edge Assembly Crossover)**; **GRASP** (Greedy Randomized Adaptive Search Procedure); **Greedy Karp-Steele Patching**; **Guided Search**; **Hopfield Network**; **Iterated Search**; **Karp-Steele Patching**; **Large Neighborhood Search**; **Multifragment Heuristic**; **Nearest Insertion**; **Nearest Neighbour**; **Random Insertion**; **Random Tour**; **Randomized Spectral Seriation**; **RL Q-Learning**; **RL Double Q-Learning**; **RL S.A.R.S.A** (State Action Reward State Action); **Ruin & Recreate**; **Scatter Search**; **Simulated Annealing**; **SOM** (Self Organizing Maps); **Space Filling Curve** (Hilbert); **Space Filling Curve** (Morton); **Space Filling Curve** (Sierpinski); **Spectral Seriation Initializer**; **Stochastic Hill Climbing**; **Sweep**; **Tabu Search**; **Truncated Branch & Bound**; **Twice-Around the Tree Algorithm** (Double Tree Algorithm); **Variable Neighborhood Search**; **Zero Suffix Method**.
28
+ Techniques: **2-opt**; **2.5-opt**; **3-opt**; **4-opt**; **5-opt**; **Or-opt**; **2-opt Stochastic**; **2.5-opt Stochastic**; **3-opt Stochastic**; **4-opt Stochastic**; **5-opt Stochastic**; **Ant Colony Optimization**; **Adaptive Large Neighborhood Search**; **Bellman-Held-Karp Exact Algorithm**; **Bitonic Tour**; **Branch & Bound**; **BRKGA** (Biased Random Key Genetic Algorithm); **Brute Force**; **Cheapest Insertion**; **Christofides Algorithm**; **Clarke & Wright** (Savings Heuristic); **Concave Hull Algorithm**; **Convex Hull Algorithm**; **Elastic Net**; **Extremal Optimization**; **Farthest Insertion**; **FRNN** (Fixed Radius Near Neighbor); **Genetic Algorithm**; **GA-EAX** (Genetic Algorithm with Edge Assembly Crossover); **GRASP** (Greedy Randomized Adaptive Search Procedure); **Greedy Karp-Steele Patching**; **Guided Search**; **Hopfield Network**; **Iterated Search**; **Karp-Steele Patching**; **Large Neighborhood Search**; **LKH** (Lin-Kernighan-Helsgaun); **Multifragment Heuristic**; **Nearest Insertion**; **Nearest Neighbour**; **Random Insertion**; **Random Tour**; **Randomized Spectral Seriation**; **RL Q-Learning**; **RL Double Q-Learning**; **RL S.A.R.S.A** (State Action Reward State Action); **Ruin & Recreate**; **Scatter Search**; **Simulated Annealing**; **SOM** (Self Organizing Maps); **Space Filling Curve** (Hilbert); **Space Filling Curve** (Morton); **Space Filling Curve** (Sierpinski); **Spectral Seriation Initializer**; **Stochastic Hill Climbing**; **Sweep**; **Tabu Search**; **Truncated Branch & Bound**; **Twice-Around the Tree Algorithm** (Double Tree Algorithm); **Variable Neighborhood Search**; **Zero Suffix Method**.
29
29
 
30
30
  ## Usage
31
31
 
@@ -117,6 +117,7 @@ print('Total Distance: ', round(distance, 2))
117
117
  - Iterated Search ([ Colab Demo ](https://colab.research.google.com/drive/1U3sPpknulwsCUQq9mK7Ywfb8ap2GIXZv?usp=sharing)) ( [ Paper ](https://doi.org/10.1063/1.36219))
118
118
  - Karp-Steele Patching ([ Colab Demo ](https://colab.research.google.com/drive/12xLLDNIk6OOSNQXqYSYtdwhupZ9Kt5xb?usp=sharing)) ( [ Paper ](https://doi.org/10.1137/0208045))
119
119
  - Large Neighborhood Search ([ Colab Demo ](https://colab.research.google.com/drive/1t4cafHRRzOLN4xth96jE-2qHoPQOLsn5?usp=sharing)) ( [ Paper ](https://doi.org/10.1007/3-540-49481-2_30))
120
+ - Lin-Kernighan-Helsgaun ([ Colab Demo ](https://colab.research.google.com/drive/1jYtOGgz0nv294GvaDpiPfTkUP4aljd58?usp=sharing)) ( [ Paper ](https://doi.org/10.1016/S0377-2217(99)00284-2))
120
121
  - Multifragment Heuristic ([ Colab Demo ](https://colab.research.google.com/drive/1YNHVjS6P35bAnqGZyP7ERNrTnG9tNuhF?usp=sharing)) ( [ Paper ](https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=08D176AEFA57EF1941645F2B31DF1686?doi=10.1.1.92.1635&rep=rep1&type=pdf))
121
122
  - Nearest Insertion ([ Colab Demo ](https://colab.research.google.com/drive/1R4mz604EG-unKktu8ON_Hpoywi3OIRHK?usp=sharing)) ( [ Paper ](https://disco.ethz.ch/courses/fs16/podc/readingAssignment/1.pdf))
122
123
  - Nearest Neighbour ([ Colab Demo ](https://colab.research.google.com/drive/1aL1kYXgSjUJYPfYSMy_0SWq4hJ3nrueJ?usp=sharing)) ( [ Paper ](https://doi.org/10.1016/S0166-218X(01)00195-0))
@@ -1,60 +1,61 @@
1
- from .aco import ant_colony_optimization
2
- from .alns import adaptive_large_neighborhood_search
3
- from .bb import branch_and_bound
4
- from .bf import brute_force_analysis
5
- from .bhk import bellman_held_karp_exact_algorithm
6
- from .brkga import biased_random_key_genetic_algorithm
7
- from .bt import bitonic_tour
8
- from .christofides import christofides_algorithm
9
- from .conc_hull import concave_hull_algorithm
10
- from .conv_hull import convex_hull_algorithm
11
- from .cw import clarke_wright_savings
12
- from .eln import elastic_net_tsp
13
- from .eo import extremal_optimization
14
- from .frnn import fixed_radius_nn
15
- from .ga import genetic_algorithm
16
- from .ga_eax import genetic_algorithm_edge_assembly_crossover
17
- from .grasp import greedy_randomized_adaptive_search_procedure
18
- from .gksp import greedy_karp_steele_patching
19
- from .hpn import hopfield_network_tsp
20
- from .ins_c import cheapest_insertion
21
- from .ins_f import farthest_insertion
22
- from .ins_n import nearest_insertion
23
- from .ins_r import random_insertion
24
- from .ksp import karp_steele_patching
25
- from .lns import large_neighborhood_search
26
- from .mf import multifragment_heuristic
27
- from .nn import nearest_neighbour
28
- from .opt_2 import local_search_2_opt
29
- from .opt_2_5 import local_search_2h_opt
30
- from .opt_3 import local_search_3_opt
31
- from .opt_4 import local_search_4_opt
32
- from .opt_5 import local_search_5_opt
33
- from .opt_or import local_search_or_opt
34
- from .opt_2s import local_search_2_opt_stochastic
35
- from .opt_2_5s import local_search_2h_opt_stochastic
36
- from .opt_3s import local_search_3_opt_stochastic
37
- from .opt_4s import local_search_4_opt_stochastic
38
- from .opt_5s import local_search_5_opt_stochastic
39
- from .rl_double_ql import double_q_learning
40
- from .rl_ql import q_learning
41
- from .rl_sarsa import sarsa
42
- from .rr import ruin_and_recreate
43
- from .rss import randomized_spectral_seriation
44
- from .rt import random_tour
45
- from .s_gui import guided_search
46
- from .s_itr import iterated_search
47
- from .s_sct import scatter_search
48
- from .s_shc import stochastic_hill_climbing
49
- from .s_tabu import tabu_search
50
- from .s_vns import variable_neighborhood_search
51
- from .sa import simulated_annealing_tsp
52
- from .som import self_organizing_maps
53
- from .spfc_h import space_filling_curve_h
54
- from .spfc_m import space_filling_curve_m
55
- from .spfc_s import space_filling_curve_s
56
- from .ssi import spectral_seriation_initializer
57
- from .swp import sweep
58
- from .tat import tat_algorithm
59
- from .tbb import truncated_branch_and_bound
60
- from .zs import zero_suffix_method
1
+ from .aco import ant_colony_optimization
2
+ from .alns import adaptive_large_neighborhood_search
3
+ from .bb import branch_and_bound
4
+ from .bf import brute_force_analysis
5
+ from .bhk import bellman_held_karp_exact_algorithm
6
+ from .brkga import biased_random_key_genetic_algorithm
7
+ from .bt import bitonic_tour
8
+ from .christofides import christofides_algorithm
9
+ from .conc_hull import concave_hull_algorithm
10
+ from .conv_hull import convex_hull_algorithm
11
+ from .cw import clarke_wright_savings
12
+ from .eln import elastic_net_tsp
13
+ from .eo import extremal_optimization
14
+ from .frnn import fixed_radius_nn
15
+ from .ga import genetic_algorithm
16
+ from .ga_eax import genetic_algorithm_edge_assembly_crossover
17
+ from .grasp import greedy_randomized_adaptive_search_procedure
18
+ from .gksp import greedy_karp_steele_patching
19
+ from .hpn import hopfield_network_tsp
20
+ from .ins_c import cheapest_insertion
21
+ from .ins_f import farthest_insertion
22
+ from .ins_n import nearest_insertion
23
+ from .ins_r import random_insertion
24
+ from .ksp import karp_steele_patching
25
+ from .lns import large_neighborhood_search
26
+ from .lkh import lin_kernighan_helsgaun
27
+ from .mf import multifragment_heuristic
28
+ from .nn import nearest_neighbour
29
+ from .opt_2 import local_search_2_opt
30
+ from .opt_2_5 import local_search_2h_opt
31
+ from .opt_3 import local_search_3_opt
32
+ from .opt_4 import local_search_4_opt
33
+ from .opt_5 import local_search_5_opt
34
+ from .opt_or import local_search_or_opt
35
+ from .opt_2s import local_search_2_opt_stochastic
36
+ from .opt_2_5s import local_search_2h_opt_stochastic
37
+ from .opt_3s import local_search_3_opt_stochastic
38
+ from .opt_4s import local_search_4_opt_stochastic
39
+ from .opt_5s import local_search_5_opt_stochastic
40
+ from .rl_double_ql import double_q_learning
41
+ from .rl_ql import q_learning
42
+ from .rl_sarsa import sarsa
43
+ from .rr import ruin_and_recreate
44
+ from .rss import randomized_spectral_seriation
45
+ from .rt import random_tour
46
+ from .s_gui import guided_search
47
+ from .s_itr import iterated_search
48
+ from .s_sct import scatter_search
49
+ from .s_shc import stochastic_hill_climbing
50
+ from .s_tabu import tabu_search
51
+ from .s_vns import variable_neighborhood_search
52
+ from .sa import simulated_annealing_tsp
53
+ from .som import self_organizing_maps
54
+ from .spfc_h import space_filling_curve_h
55
+ from .spfc_m import space_filling_curve_m
56
+ from .spfc_s import space_filling_curve_s
57
+ from .ssi import spectral_seriation_initializer
58
+ from .swp import sweep
59
+ from .tat import tat_algorithm
60
+ from .tbb import truncated_branch_and_bound
61
+ from .zs import zero_suffix_method