<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">mais</journal-id><journal-title-group><journal-title xml:lang="ru">Моделирование и анализ информационных систем</journal-title><trans-title-group xml:lang="en"><trans-title>Modeling and Analysis of Information Systems</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1818-1015</issn><issn pub-type="epub">2313-5417</issn><publisher><publisher-name>Yaroslavl State University</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.18255/1818-1015-2016-4-401-411</article-id><article-id custom-type="elpub" pub-id-type="custom">mais-366</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Оригинальные статьи</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>Articles</subject></subj-group></article-categories><title-group><article-title>Об оптимизации и распараллеливании алгоритма Литтла для решения задачи коммивояжера</article-title><trans-title-group xml:lang="en"><trans-title>On the Optimization and Parallelizing Little Algorithm for Solving the Traveling Salesman Problem</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-7882-8906</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Васильчиков</surname><given-names>В. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Vasilchikov</surname><given-names>V. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Васильчиков Владимир Васильевич,  кандидат технических наук, зав. кафедрой вычислительных и программных систем</p><p>ул. Советская, 14, г. Ярославль, 150000</p></bio><bio xml:lang="en"><p>Vasilchikov Vladimir Vasilyevich, PhD,</p><p>P.G. Demidov Yaroslavl State University, Sovetskaya str., 14, Yaroslavl, 150000</p></bio><email xlink:type="simple">vvv193@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Ярославский государственный университет им. П.Г. Демидова, Ярославль</institution><country>Россия</country></aff><aff xml:lang="en"><institution>P.G. Demidov Yaroslavl State University, Yaroslavl</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2016</year></pub-date><pub-date pub-type="epub"><day>20</day><month>08</month><year>2016</year></pub-date><volume>23</volume><issue>4</issue><fpage>401</fpage><lpage>411</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Васильчиков В.В., 2016</copyright-statement><copyright-year>2016</copyright-year><copyright-holder xml:lang="ru">Васильчиков В.В.</copyright-holder><copyright-holder xml:lang="en">Vasilchikov V.V.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.mais-journal.ru/jour/article/view/366">https://www.mais-journal.ru/jour/article/view/366</self-uri><abstract><p>В данной работе рассматриваются способы ускорения решения NP-полной задачи коммивояжера. Классический алгоритм Литтла, относящийся к категории "методов ветвей и границ" , позволяет ее решать как для ориентированных, так и для неориентированных графов. Однако для неориентированных графов его работу можно ускорить за счет исключения рассмотрения фактически ранее рассмотренных вариантов. В работе предлагаются изменения, которые следует внести в ключевые операции алгоритма для ускорения его работы. Приводятся результаты численного эксперимента, показавшего значительное ускорение решения задачи с использованием усовершенствованного алгоритма. Другой ресурс для ускорения – это разработка параллельного алгоритма. Для задач подобного рода весьма сложно сразу разбить вычисления на достаточное количество сравнимых по трудоемкости подзадач. Параллелизм у них выявляется динамически во время вычислений. Для таких задач разумным представляется использование рекурсивно-параллельной организации вычислений. В нашем случае хорошим выбором оказалась разработанная автором библиотека RPM_ParLib, позволяющая создавать эффективные параллельные программы для вычислений на локальной сети в среде .NET Framework на любом поддерживаемом ею языке программирования. Мы при разработке программы использовали язык C#. Были написаны параллельные программы для реализации как исходного, так и модифицированного алгоритмов, проведено их сравнение. Эксперименты проводились для графов с количеством вершин до 45 с количеством компьютеров в сети до 16. Дополнительно исследовалось ускорение, которого можно достичь за счет распараллеливания базового алгоритма Литтла для ориентированных графов. Результаты этих серий экспериментов также приводятся в работе. </p></abstract><trans-abstract xml:lang="en"><p>The paper describes some ways to accelerate solving the NP-complete Traveling Salesman Problem. The classic Little algorithm belonging to the category of ”branch and bound methods” can solve it both for directed and undirected graphs. However, for undirected graphs its operation can be accelerated by eliminating the consideration of branches examined earlier. The paper proposes changes to be made in the key operations of the algorithm to speed up its execution. It also describes the results of an experiment that demonstrated a significant acceleration of solving the problem by using an advanced algorithm. Another way to speed up the work is to parallelize the algorithm. For problems of this kind it is difficult to break the task into a sufficient number of subtasks having comparable complexity. Their parallelism arises dynamically during the execution. For such problems, it seems reasonable to use parallel-recursive algorithms. In our case the use of the library RPM ParLib developed by the author was a good choice. It allows us to develop effective applications for parallel computing on a local network using any .NET-compatible programming language. We used C# to develop the programs. Parallel applications were developed as for basic and modified algorithms, the comparing of their speed was made. Experiments were performed for the graphs with the number of vertexes up to 45 and with the number of network computers up to 16. We also investigated the acceleration that can be achieved by parallelizing the basic Little algorithm for directed graphs. The results of these experiments are also presented in the paper. </p></trans-abstract><kwd-group xml:lang="ru"><kwd>задача коммивояжера</kwd><kwd>алгоритм Литтла</kwd><kwd>параллельный алгоритм</kwd><kwd>рекурсия</kwd><kwd>.NET</kwd></kwd-group><kwd-group xml:lang="en"><kwd>Traveling Salesman Problem</kwd><kwd>Little algorithm</kwd><kwd>parallel algorithm</kwd><kwd>recursion</kwd><kwd>.NET</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Гэри М. Джонсон Д., Вычислительные машины и труднорешаемые задачи, Мир, Москва, 1982.</mixed-citation><mixed-citation xml:lang="en">Garey M. R., Johnson D. S., Computers and Intractability: A Guide to the Theory of NP-Completeness, W. H. Freeman and Co, San Francisco, 1979.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Land A. H. Doig A. G., “An Autmatic Method of Solving Discrete Programming Problems”, Econometrica, 28 (1960), 497–520. DOI: 10.2307/1910129.</mixed-citation><mixed-citation xml:lang="en">Land A. H. Doig A. G., “An Autmatic Method of Solving Discrete Programming Problems”, Econometrica, 28 (1960), 497–520. DOI: 10.2307/1910129.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">John D. C. Little, Katta G. Murty, Dura W. Sweeney, Caroline Karel, “An Algorithm for the Traveling Salesman Problem”, Operations Research, 11:6 (1963), 972–989. DOI: 10.1287/opre.11.6.972.</mixed-citation><mixed-citation xml:lang="en">John D. C. Little, Katta G. Murty, Dura W. Sweeney, Caroline Karel, “An Algorithm for the Traveling Salesman Problem”, Operations Research, 11:6 (1963), 972–989. DOI: 10.1287/opre.11.6.972.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Кофман А., Введение в прикладную комбинаторику, Наука, Москва, 1975.</mixed-citation><mixed-citation xml:lang="en">Kaufmann A., Intraduction a la combinatorique en vue des applications, Dumond, Paris, 1968.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Рейнгольд Э. Нивергельт Ю. Део Н., Комбинаторные алгоритмы. Теория и практика, Мир, Москва, 1980.</mixed-citation><mixed-citation xml:lang="en">Reingold E. Nievergelt Ju. Deo N., Combinatorial Algorithms: Theory and Practice, Prentice Hall College, 1977.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Кормен Т. Лейзерсон Ч. Ривест Р. Штайн К., Алгоритмы: построение и анализ, Вильямс, Москва, 2006.</mixed-citation><mixed-citation xml:lang="en">Cormen T. Leiserson Ch. Rivest R. Stein C., Introduction to Algorithms, The MIT Press, 2001.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Петрунин С. В., “Использование метода последовательной сепарации для решения задачи коммивояжёра”, Научный вестник МТГУ ГА, 2009, № 146, 105–108.</mixed-citation><mixed-citation xml:lang="en">Petrounine S.V., “Employment of permanent separation metrhod for solution of traveling salesman problems”, Scientifik bulletin of the MSTU CA, 2009, № 146, 105–108, (in Russian)</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Костюк Ю. Л., “Эффективная реализация алгоритма решения задачи коммивояжёра методом ветвей и границ”, Прикладная дискретная математика, 2013, № 2, 78–90.</mixed-citation><mixed-citation xml:lang="en">Kostyuk Yu. L., “Effective implementation of algorithm for solving the travelling salesman problem by branch-and-bound method”, Prikl. Diskr. Mat., 2013, № 2, 78–90, (in Russian).</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Сигал И. Х., Бабинская Я. Л., Посыпкин М. А., “Параллельная реализация метода ветвей и границ в задаче коммивояжера на базе библиотеки BNB-Solver”, Труды ИСА РАН, 25 (2006), 26–36.</mixed-citation><mixed-citation xml:lang="en">Sigal I. Kh., Babinskaya Ya. L., Pocypkin M. A., “Parallelnaya realizaciya metoda vetvey i granic v zadache kommivoyazhera na baze biblioteki BNBSolver”, Trudy ISA RAN, 25 (2006), 26–36, (in Russian).</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Васильчиков В. В., Средства параллельного программирования для вычислительных систем с динамической балансировкой загрузки, ЯрГУ, Ярославль, 2001.</mixed-citation><mixed-citation xml:lang="en">Vasilchikov V. V., Sredstva parallelnogo programmirovaniya dlya vychislitelnykh sistem s dinamicheskoy balansirovkoy zagruzki, YarGU, Yaroslavl, 2001, (in Russian).</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Васильчиков В. В., Коммуникационный модуль для организации полносвязного соединения компьютеров в локальной сети с использованием .NET Framework, Свидетельство о государственной регистрации программы для ЭВМ № 2013619925, 2013.</mixed-citation><mixed-citation xml:lang="en">Vasilchikov V. V., Kommunikatsionnyy modul dlya organizatsii polnosvyaznogo soedineniya kompyuterov v lokalnoy seti s ispolzovaniem .NET Framework, Svidetelstvo o gosudarstvennoy registratsii programmy dlya EVM № 2013619925, 2013, (in Russian).</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Васильчиков В. В., Библиотека поддержки рекурсивно-параллельного программирования для .NET Framework, Свидетельство о государственной регистрации программы для ЭВМ № 2013619926, 2013.</mixed-citation><mixed-citation xml:lang="en">Vasilchikov V. V., Svidetelstvo o gosudarstvennoy registratsii programmy dlya EVM № 2013619926, 2013, (in Russian).</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Васильчиков В. В., “О поддержке рекурсивно-параллельного программирования в .NET Framework”, Модел. и анализ информ. систем, 21:2 (2014), 15–25.</mixed-citation><mixed-citation xml:lang="en">Vasilchikov V. V., “On the Recursive-Parallel Programming for the .NET Framework”, Modeling and Analysis of Information Systems, 21:2 (2014), 15–25, (in Russian).</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
