Рекуррентный метод решения задачи о назначениях

В статье предлагается новый метод решения задачи о назначениях, основанный на рекурсивном получении оптимального решения задачи. Он состоит в нахождении взвешенного паросочетания минимального суммарного веса в двудольном графе, используя понятия кратчайшего увеличивающего пути. Предложенный метод...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Datum:2014
Hauptverfasser: Маций, О.Б., Морозов, А.В., Панишев, А.В.
Format: Artikel
Sprache:Russian
Veröffentlicht: Інститут проблем штучного інтелекту МОН України та НАН України 2014
Schriftenreihe:Искусственный интеллект
Schlagworte:
Online Zugang:http://dspace.nbuv.gov.ua/handle/123456789/85260
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Zitieren:Рекуррентный метод решения задачи о назначениях / О.Б. Маций, А.В. Морозов, А.В. Панишев // Искусственный интеллект. — 2014. — № 2. — С. 107–118. — Бібліогр.: 3 назв. — рос.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id irk-123456789-85260
record_format dspace
spelling irk-123456789-852602015-07-24T03:02:16Z Рекуррентный метод решения задачи о назначениях Маций, О.Б. Морозов, А.В. Панишев, А.В. Интеллектуальные системы планирования, управления, моделирования и принятия решений В статье предлагается новый метод решения задачи о назначениях, основанный на рекурсивном получении оптимального решения задачи. Он состоит в нахождении взвешенного паросочетания минимального суммарного веса в двудольном графе, используя понятия кратчайшего увеличивающего пути. Предложенный метод позволяет получать решения задачи о назначениях значительно быстрее, чем существующие методы. У статті пропонується новий метод розв'язання задачі про призначення, який ґрунтується на рекурсивному отриманні оптимального розв’язку задачі. Він полягає в знаходженні зваженого паросполучення мінімального сумарної ваги в дводольному графі, використовуючи поняття найкоротшого збільшуючого шляху. Запропонований метод дозволяє отримувати розв’язки задачі про призначення значно швидше, ніж існуючі методи. The article proposes new method for solving the assignment problem based on recursive obtaining an optimal solution. It consists in finding a minimum weighted matchings total weight in a bipartite graph, using concepts the shortest increasing path. The proposed method allows to obtain solutions of the assignment problem is significantly faster than existing methods. 2014 Article Рекуррентный метод решения задачи о назначениях / О.Б. Маций, А.В. Морозов, А.В. Панишев // Искусственный интеллект. — 2014. — № 2. — С. 107–118. — Бібліогр.: 3 назв. — рос. 1561-5359 http://dspace.nbuv.gov.ua/handle/123456789/85260 519.161 ru Искусственный интеллект Інститут проблем штучного інтелекту МОН України та НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Russian
topic Интеллектуальные системы планирования, управления, моделирования и принятия решений
Интеллектуальные системы планирования, управления, моделирования и принятия решений
spellingShingle Интеллектуальные системы планирования, управления, моделирования и принятия решений
Интеллектуальные системы планирования, управления, моделирования и принятия решений
Маций, О.Б.
Морозов, А.В.
Панишев, А.В.
Рекуррентный метод решения задачи о назначениях
Искусственный интеллект
description В статье предлагается новый метод решения задачи о назначениях, основанный на рекурсивном получении оптимального решения задачи. Он состоит в нахождении взвешенного паросочетания минимального суммарного веса в двудольном графе, используя понятия кратчайшего увеличивающего пути. Предложенный метод позволяет получать решения задачи о назначениях значительно быстрее, чем существующие методы.
format Article
author Маций, О.Б.
Морозов, А.В.
Панишев, А.В.
author_facet Маций, О.Б.
Морозов, А.В.
Панишев, А.В.
author_sort Маций, О.Б.
title Рекуррентный метод решения задачи о назначениях
title_short Рекуррентный метод решения задачи о назначениях
title_full Рекуррентный метод решения задачи о назначениях
title_fullStr Рекуррентный метод решения задачи о назначениях
title_full_unstemmed Рекуррентный метод решения задачи о назначениях
title_sort рекуррентный метод решения задачи о назначениях
publisher Інститут проблем штучного інтелекту МОН України та НАН України
publishDate 2014
topic_facet Интеллектуальные системы планирования, управления, моделирования и принятия решений
url http://dspace.nbuv.gov.ua/handle/123456789/85260
citation_txt Рекуррентный метод решения задачи о назначениях / О.Б. Маций, А.В. Морозов, А.В. Панишев // Искусственный интеллект. — 2014. — № 2. — С. 107–118. — Бібліогр.: 3 назв. — рос.
series Искусственный интеллект
work_keys_str_mv AT macijob rekurrentnyjmetodrešeniâzadačionaznačeniâh
AT morozovav rekurrentnyjmetodrešeniâzadačionaznačeniâh
AT paniševav rekurrentnyjmetodrešeniâzadačionaznačeniâh
first_indexed 2025-07-06T12:27:18Z
last_indexed 2025-07-06T12:27:18Z
_version_ 1836900522613800960
fulltext ISSN 1561-5359 «Штучний інтелект» 2014 № 2 107 4С УДК 519.161 О.Б. Маций1, А.В. Морозов2, А.В. Панишев2 1Харьковский национальный автомобильно-дорожный университет Украина, 61002, г. Харьков, ул. Петровского, 25 2Житомирский государственный технологический университет Украина, 10005, г. Житомир, ул. Черняховского, 103 Рекуррентный метод решения задачи о назначениях O.B. Matsiy1, A.V. Morozov2, A.V. Panishev2 1Kharkiv National Automobile and Highway University, Ukraine Ukraine, 61002, c. Kharkiv, Petrosvkogo st., 25 2Zhytomyr State Technological University Ukraine, 10005, c. Zhytomyr, Chernyakhivskogo st., 103 Recurrent Method for Solving The Assignment Problem О.Б. Маций1, А.В. Морозов2, А.В. Панішев2 1Харківський національний автомобільно-дорожній університет Україна, 61002, м. Харків, вул. Петровського, 25 2Житомирський державний технологічний університет Україна, 10005, м. Житомир, вул. Черняхівського, 103 Рекурентний метод розв’язання задачі про призначення В статье предлагается новый метод решения задачи о назначениях, основанный на рекурсивном получении оптимального решения задачи. Он состоит в нахождении взвешенного паросочетания минимального суммарного веса в двудольном графе, используя понятия кратчайшего увеличивающего пути. Предложенный метод позволяет получать решения задачи о назначениях значительно быстрее, чем существующие методы. Ключевые слова: задача о назначениях, паросочетание, двудольный граф, увеличивающий путь. The article proposes new method for solving the assignment problem based on recursive obtaining an optimal solution. It consists in finding a minimum weighted matchings total weight in a bipartite graph, using concepts the shortest increasing path. The proposed method allows to obtain solutions of the assignment problem is significantly faster than existing methods. Key words: the assignment problem, matching, bipartite graph, increasing path. У статті пропонується новий метод розв'язання задачі про призначення, який ґрунтується на рекурсивному отриманні оптимального розв’язку задачі. Він полягає в знаходженні зваженого паросполучення мінімального сумарної ваги в дводольному графі, використовуючи поняття найкоротшого збільшуючого шляху. Запропоно- ваний метод дозволяє отримувати розв’язки задачі про призначення значно швидше, ніж існуючі методи. Ключові слова: задача про призначення, паросполучення, дводольний граф, збільшуючий шлях. Широко известные методы решения задачи о назначениях (ЗН), такие, как венгер- ский метод, метод Кана-Мункреса и метод потенциалов, построены с использованием разных подходов, применяемых в комбинаторной оптимизации, и характеризуются разной временной сложностью, не меньшей, чем  3 ,O n где n – порядок матрицы стоимостей [1]. В [2] изложен алгоритм решения одного из вариантов ЗН, стоимость которого пони- жена до  2 .O n В [2] показано, что он выполняет функции процедуры, встроенной в метод ветвей и границ для быстрого вычисления более точных нижних оценок стоимости Маций О.Б., Морозов А.В., Панишев А.В. «Искусственный интеллект» 2014 № 2 108 4М В замкнутых маршрутов в задаче коммивояжера. Алгоритм состоит в нахождении взвешен- ного паросочетания минимального суммарного веса в двудольном графе с 2n верши- нами, используя введенные в [2] понятия кратчайшего увеличивающего пути. В данной статье описан рекуррентный метод решения ЗН, развивающий результаты работ [2], [3] и технически упрощающий наиболее распространенный венгерский метод. Перестановочно-матричная постановка задачи. Опишем рассматриваемый здесь алгоритм решения ЗН, исходя из её формулировки в следующем виде. Для матрицы стоимостей (весов) ,ij n C c    где 0ijc R или ,ijc   0R – мно- жество неотрицательных действительных чисел, найти   [ ] 1 min . n i i C c      (1) Здесь  [1], [2], ..., [ ]n    – перестановка множества {1, 2, …, n} номеров столбцов матрицы C,  [1], [2], ..., [ ]n    – оптимальная перестановка стоимостью   [ ]1 ,n iiC c  [ ] ,ic   1, ,i n или решение ЗН. Перестановку  [1],  [2], ..., [ ] ,n  в которой [ ] ,ic   1, ,i n назовем допустимым решением ЗН. Заметим, что ЗН с матрицей стоимостей, содержащей элементы ,ijc   может не иметь решения. В этом случае необходимо установить, что множество допустимых решений задачи пусто. Будем искать , пошагово увеличивая на единицу число элементов k, 1, ,k n последовательности, образующей определенную часть до- пустимого решения ЗН. Рассмотрим свойства этой последовательности и способ её построения. Любая часть допустимого решения ЗН, включающая k элементов, однозначно определяет подматрицу s ti j k c   матрицы C, 1 2 ... ... ,s ki i i i     1 2 ...j j  ... ... .t kj j   Пусть последовательность  1 2[ ], [ ], ..., [ ], ...,k k k k si i i    [ ] ,k ki  1 2[ ] , , ..., , ..., ,k s t ki j j j j  1, 1,k n  а) является решением ЗН для подматрицы , s ti j k c   б) стоимость k не больше стоимости решения ЗН для любой подматрицы порядка k матрицы С. Если существует эффективная процедура преобразования последовательности k в последовательность 1, 0, 1,k k n    и задача (1) имеет решение, то на нахождение n  требуется n шагов. Матричный подход к построению оптимального назначения. Покажем, как строятся последовательности , 1, .k k n  Исходная последовательность  1 1 1[ ]i  определяется тривиально: в матрице С находится  min | , ,lr ijc c i i j n   и, следо- вательно, 1 11, [ ] .i i r  Чтобы получить  2 2 1 2 2[ ], [ ] ,i i   определим  min | , ,ms ijc c i l j r   lpc   min | ,ljc j r  min |vr irc c i l  (рис. 1). Рекуррентный метод решения задачи о назначениях «Штучний інтелект» 2014 № 2 109 4М lpc lrc msc vrc Рисунок 1 Нетрудно видеть, что если ,lr ms lp vrc c c c   то условия а) и б) выполняются для последовательности 2 , в которой 1 2 1 2 2 2, [ ] , , [ ] .i l i r i m i s     Ей соответ- ствует подматрица lrc msc . В противном случае этим условиям удовлетворяет последовательность 2 с элемен- тами 2 1 1 2 2 2[ ] , , [ ] , i p i l i r i v     и подматрицей lpc lrc vrc . Преобразуем последовательность 2 в последовательность 3 3 1[ ],i  3 2[ ],i 3 3[ ] .i Способ построения 3 не зависит от того, какие элементы образуют 2 . Для определенности предположим, что  2 2 2[ ] , [ ] .l r m s     Найдем wqc   min | , ; , ijc i l m j s r   и 1 .lr ms wqMIN c c c   Заметим, что ,wq msc c если  2 2 2[ ] , [ ] .l p v r     Преобразование 2 в 3 является результатом решения следующей вспомога- тельной задачи. Для строк l, m и столбцов r, s, определяемых числами lrc и msc матрицы С, требуется найти тройку элементов с минимальной суммой их значений при условии, что любые два элемента из тройки должны находиться в трех разных строках, включающих l, m, и трех разных столбцах, включающих r, s. Если искомая тройка не содержит ,lrc но содержит ,msc то сумма значений её элементов ограничена снизу величиной 1 ,vr lp msS c c c   где  min | , ,vr irc c i l m   min | , .lp ljc c j r s  Пусть решение вспомогательной задачи является тройкой, в которую входит lrc и не входит .msc Тогда оно доставляет сумму 2 ,lr mp vsS c c c   где  min | , ,mp mjc c j s r   min | , .vs isc c i l m  Маций О.Б., Морозов А.В., Панишев А.В. «Искусственный интеллект» 2014 № 2 110 4М В Элементы решения вспомогательной задачи, не содержащем lrc и ,msc опреде- ляют величину  3 min , .lp mr ws mq ls vrS c c c c c c     Здесь (рис. 2)  min | , ,ws isc c i l m   min | , mq mjc c j s r  . Определим величину, равную  1 2 32 min , , .MIN S S S Ясно, что она соответст- вует искомой последовательности 3, если 2 1,MIN MIN иначе 3 3[ ] ,l r   3[ ] ,m s  3[ ] .w q  В общем случае последовательность  1 2[ ], [ ], ..., [ ], ..., [ ]k k k k s k ki i i i     со свойствами а) и б) преобразуется в последовательность 1 1 1[ ],k k i   1 2[ ], ...,k i  1 1 1[ ], ..., [ ]k r k ki i    с этими же свойствами следующим образом. p r s w wsc l lpc lrc m mrc msc q r s l lrc lsc m mqc msc v vrc Рисунок 2 В матрице C находится  1[ ] 1 2 1 2min | , , ..., , ..., , [ ], [ ], ..., [ ], ..., [ ] , k ki ij s k k k k s k kc c i i i i i j i i i i         формируется последовательность  1 1 1, [ ]k k k ki    и вычисляется 1[ ] [ ] 1 1 . s k k k i i s MIN c c      Далее решается задача нахождения k + 1 элементов, которые в матрице C доставляют минимальную сумму своих значений и располагаются в разных строках и столбцах, включая все строки и столбцы с номерами, задаваемыми величинами 1 2[ ] [ ] [ ] [ ], ,..., ,..., . k k k s k ki i i ic c c c    Обозначим эту сумму MIN2. Найденные элементы образуют искомую последовательность 2 1 1,k k   если 2 1.MIN MIN Иначе 1 1 1.k k   Обоснование и описание рекурсивного алгоритма. Изложенная схема поиска оптимального назначения является основой алгоритма, в котором решение задачи (1) находится исключительно средствами теории паросочетаний для двудольных графов [1]. Матрице стоимостей ЗН C взаимно-однозначно соответствует двудольный граф (X, Y, U), где X Y n  и вершина i X соединена с вершиной j Y ребром  ,i j U весом .ijc   Рекуррентный метод решения задачи о назначениях «Штучний інтелект» 2014 № 2 111 4М Паросочетание графа образует такое множество ребер, что никакие два из них не имеют общей вершины. Ребра, не входящие в паросочетание, называются свободными. Максимальное паросочетание – паросочетание с наибольшим числом ребер. Вершина, принадлежащая ребру паросочетания, называется насыщенной, остальные вершины графа – свободными. Ребро (i, j), включенное в паросочетание, обозначим [i, j]. Вершина j ребра [i, j] определяется как напарник i. Совершенное паросочетание – это паросочетание, насыщающее все вершины графа. В двудольном графе (X, Y, U) мощность совершенного паросочетания, если оно существует, равна n. Решение ЗН  состоит в построении в двудольном взвешенном графе (X, Y, U) совершенного паросочетания с минимальным суммарным весом ребер [1]. Пусть в графе зафиксировано паросочетание M. Простой путь называется чере- дующимся относительно паросочетания M, если рёбра пути через одно присутст- вуют в M [1]. Чередующийся путь, который начинается и заканчивается ребрами, не принадлежащими паросочетанию M, называется увеличивающим относительно паросоче- тания M. Следовательно, если  1 2 2 3 1 1, , , , ..., , , , k k k ki j i j i j i j  – увеличивающий путь в двудольном графе (X, Y, U), то в нем свободны вершины 1 1, ki j  и k + 1 рёбер        1 2 2 3 1 1, , , , ..., , , , .k k k ki j i j i j i j  Остальные k ребер пути образуют паросочетание  2 2 3 3[ , ], [ , ], ..., [ , ] .k k ki j i j i j  Длиной пути называется число встречающихся в нем ребер. Предположим, что во взвешенном графе (X, Y, U), соответствующем матрице стоимостей ЗН C, не зафиксировано паросочетание. Тогда каждое ребро в (X, Y, U) является увеличивающим путем длины 1, а ребро с минимальным весом образует паросочетание или исходную последовательность 1. Пусть в графе (X, Y, U) построено паросочетание  1 1 2 2[ , ], [ , ], ...,k i j i j  [ , ], ..., [ , ]l l k ki j i j с минимальной суммой  kC  весов ребер среди всех паросочетаний мощности k. Преобразуем k в паросочетание 1 1 1 2 2[ , ], [ , ], ...,k i j i j      1 1[ , ], ..., [ , ], [ , ] ,l l k k k ki j i j i j       у которого величина  1kC   достигает минимума на множестве 1Пk всех паро- сочетаний мощности k + 1. Паросочетание k разбивает множества X, Y соответственно на подмножества насыщенных вершин    1 2 1 2, , ..., , ..., , , , ..., , ...,k l k k l kI i i i i J j j j j  и на подмножест- ве свободных вершин  1 2, , ..., , ..., ,k k k s nX I i i i i    1 2, , ...,k k kY J j j   , ..., .q nj j Найдем свободное ребро весом  min | , , r p s qi j i j s k q kc c i X I j Y J     (2) и присоединив его к паросочетанию k получим паросочетание 1k k    [ , ]r ri j стоимостью  1 . r pk i jMIN C c  Если 1k  не является паросочетанием 1k  с мини- мальной суммой весов на множестве 1,k то  1 1 1 .k k k     Любое паросочета- ние в  1 1k k   содержит l ребер , 0, 1k l k   и 1k l  ребер увеличивающего пути относительно .k Маций О.Б., Морозов А.В., Панишев А.В. «Искусственный интеллект» 2014 № 2 112 4М В Лемма. Пусть  1 1 1 .k k k     Тогда    1 1 1 ,k k k k kP P        где 1kP  – кратчайший увеличивающий путь относительно паросочетания .k Доказательство. Построим кратчайший увеличивающий путь 1kP  относительно паросочетания ,k и, следовательно, паросочетание 2 1.k  Покажем, что 2 1 1.k k   Ясно, что    2 1 .k kC C   В величинах  kC  и  2 1kC   выделим общее слагаемое 2 1 0 [ ] [ ] . k s k s k k i i C c        Поэтому    2 0 1 0 .k kC C C C     Но 2 1 1,k k k kP      а  2 1 0kC C   сумма весов ребер множества 1 .k kP   Эта сумма минимальна, когда 1kP  – кратчайший увеличивающий путь относительно паросочетания .k Следовательно, 2 1k  – паро- сочетание с минимальной суммой весов ребер на множестве  1 1 ,k k   т.е. 2 1 1.k k   Пусть вершина  , 1, 2, ..., l kj J l k  является концом свободного ребра  ,r li j весом  min | , r l s li j i j s kc c i X I   (3) вершина  , 1, 2, ..., f ki I f k  – началом свободного ребра  ,f pi j весом  min | . f p f qi j i j q kc c j Y J   (4) Обозначим kX множество свободных вершин ,ri каждая из которых инцидентна ребру  ,r li j весом, определяемым из (3), .kX k Соответственно kY – множество свободных вершин ,pj инцидентных рёбрам  ,f pi j с весами, определяемыми из (4), .kY k Ясно, что кратчайший увеличивающий путь относительно паросочетания k начинается в вершине множества kX и заканчивается в вершине множества .kY Построим вспомогательный взвешенный орграф (V, A), обеспечивающий поиск кратчайшего увеличивающего пути 1kP  относительно паросочетания .k В орграфе (V, A) множество вершин  0 .k k kV i X I Y    Множество дуг А орграфа (V, A) представлено разбиением на подмножества 0 1 2, 3, , .A A A A Подмножество 0A содержит kX дуг  0 , ri i нулевого веса, .r ki X В под- множество 1A входит дуга  , , , ,r l r k l ki i i X i I  если, и только если, в паросочетании k вершина rj ребра  ,r li j – напарник вершины .li Дуге  , r li i присвоен вес  , . r l l lr l i j i jc i i c c  Дуга   2, , , ,d l d l ki i A i i I  тогда и только тогда, когда в паро- сочетании k вершина lj ребра  , , ,d l l ki j j J является напарником .li Дуга  ,d li i имеет вес  , . d l l ld l i j i jc i i c c  Подмножество 3A включает дугу  , ,f pi j , ,f k p ki I j Y  если вершины fi и pj соединены в графе (X, Y, U) ребром  , .f pi j Дуге  ,f pi j приписан вес  , . f pf p i jc i j c Рекуррентный метод решения задачи о назначениях «Штучний інтелект» 2014 № 2 113 4М На рис. 3 представлен граф (X, Y, U), для которого получено паросочетание , 4.k k  Рёбра паросочетания изображены жирными линиями. Вершины 5i и 6i образуют множество ,kX а вершины 5j и 6j – множество .kY Рёбра  5 1, ,i j  6 2, ,i j  6 3,i j имеют вес, полученный из (3), а веса рёбер      2 5 3 6 4 6, , , , ,i j i j i j определены из (4). Вспомогательный орграф  , ,V A построенный на графе (X, Y, U) и соответст- вующий паросочетанию 4 , изображен на рис. 4. Множество вершин V содержит вместе с вершиной 0i подмножества      1 5 6 2 1 2 3 4 3 7 8, , , , , , , .V i i V i i i i V i i   Множество дуг А образует подмножества       0 0 5 0 6 1 5 1, , , , A , ,A i i i i i i            6 2 6 3 2 1 3 1 4 3 1, , , , , , , , , ,i i i i A i i i i i i       3 2 7 3 8 4 8A , , , , , .i i i i i i Из способа построения орграфа (V, A) следует, что множество путей, достижи- мых из вершины 0i во все вершины 3,pi V совпадает с множеством увеличивающих путей относительно паросочетания ,k соединяющих в графе (X, Y, U) кардую вершину ri X I  с каждой вершиной .pi Y J  Кроме того, любому пути орграфа (V, A), начинающемуся в вершине ri X I  в вершину pj Y J  относительно паросочетания .k Если в графе (V, A) построен кратчайший путь из вершины 0i в вершину 3,pi V то он содержит одну из дуг   1, r li i A и одну из дуг   3, .f pi i A Пусть 3ti V конечная вершина пути, кратчайшего среди всех путей из 0i в остальные вершины множества 3.V Очевидно, такой путь в графе (X, Y, U) определит кратчайший увеличивающий путь 1kP  относительно .k Рисунок 3 Рисунок 4 Маций О.Б., Морозов А.В., Панишев А.В. «Искусственный интеллект» 2014 № 2 114 4М В Таким образом, поиск в графе (X, Y, U) кратчайшего увеличивающего пути 1kP  относительно паросочетания k выполняется следующим образом. 1. При насыщенных вершинах  , , , 1, 2, ..., , ,l fj J i I l f k I J k     находят- ся свободные рёбра  ,r li j и    , , , 1, 2, ..., ,f pi j r p k k n   с весами, определяе- мыми соответственно из (3) и (4). 2. Для множества всех свободных рёбер  ,r li j и  ,f pi j и всех рёбер паро- сочетания k строится взвешенный орграф (V, A), предлагаемым выше способом. 3. В орграфе (V, A) ищется путь  0 , , , , ..., , , ,v a b e d ti i i i i i i кратчайший на мно- жестве путей из 0i в каждую вершину ,pi представленную в графе (X, Y, U) свободной вершиной pj ребра  , .f pi j Если существует такой путь, то существует кратчайший увеличивающий путь  1 , , , , , ..., , , , ,k v a a b b e d d tP i j i j i i i i i  ,vi X I  , , ..., ,a b dj j j J , , ..., ,a b ei i i ,di I ,tj Y J  относительно паросочетания ,k и следовательно, паросочетение 2 1.k  Стоимость  2 1 ... . v a a b e d d tk i j i j i j i jС c c c c       В противном случае не существует пути 1kP  и паросочетания 2 1.k  Очевидно, для нахождения в графе (X, Y, U) паросочетания 1,k  стоимость которого минимальна на множестве 1k  паросочетаний мощности k +1, достаточно а) определить паросочетание 1 [ , ]k k r ki j    и суммарный вес её ребер  1 , r pk i j kMIN C c   – паросочетание минимальной стоимости на множестве всех паросочетаний k мощности k, r pi jc – вес ребра , ,r pi j   определяемый из (2); б) найти паросочетание 2 1k  и  2 12 ,kMIN C   построив кратчайший увели- чивающий путь 1kP  относительно паросочетания ;k в) положить 1 1 1,k k   если 1 2,MIN MIN и 2 1 1k k   в противном случае. Следующий алгоритм выполняет поиск решения ЗН, рекурсивно определяя в двудольном графе с 2n вершинами паросочетания ,k содержащие k рёбер мини- мального суммарного веса. Предлагаемый алгоритм состоит из такого же числа этапов и имеет такую же временную сложность, что и наилучший из известных методов оптимального на- значения – венгерский метод [1]. S0. Алгоритм решения ЗН для матрицы стоимостей , 2,ij n С с n    элементы которой принимают значения из множества неотрицательных действительных чисел или равны ; решение представлено совершенным паросочетанием n  с минимальной суммой  C  весов рёбер  ,i j в двудольном графе (X, Y, U), , , ,X Y n i X j Y    где 0 ,ijc R если  , ,i j U иначе ;ijc   1;k  найти  min | , 1, , k ki j ijc c i j n     , ,k k k kI i J j      , , . k kk k k k i ji j C c   Рекуррентный метод решения задачи о назначениях «Штучний інтелект» 2014 № 2 115 4М S1. 1;k k  если ,k n то конец: построено решение ЗН . S2. Найти  1 1min | , ; k ki j ij k kc c i X I j Y J      если , k ki jc   то положить 1 ,MIN   перейти к шагу S6, иначе    1 1 1 , , 1 .k k k k ki j MIN C     S3. Найти все ri такие, что для   1, 1, 2, ..., 1 , min | r l ll k i j ijj J l k c c i     1 ,kX I    и сформировать из них список ;kX если ,kX   то положить 2MIN   и перейти к шагу S6. S4. Найти все pj такие, что для  1, 1, 2, ..., 1 ,l ki I l k   min | l p li j i jc c j  1 ,kY J    и сформировать из них список ,kY если ,kY  то положить 2MIN   и перейти к шагу S6. S5. Построить взвешенный орграф (V, A),  0 1k k kV i X I Y    и выполнить в нем поиск пути, кратчайшего на множестве всех путей в вершины ,kY достигаемые из 0;i если построен такой путь, то в графе (X, Y, U) найти соответствующий ему кратчайший путь    2 1 1 ,k k k k kP P        22 ,kMIN C  иначе положить 2 , 2 .k MIN     S6. Если 1 2 ,MIN MIN   то конец: не существует для матрицы ij n c   решения ЗН; Если 1MIN   или 2 ,MIN   то если 1 2,MIN MIN то 1 ,k k   1 ,k k kI I i   1 ,k k kJ J j  иначе 2 ,k k     2| 1, ; , ,k l l l kI i l k i j    kJ    2| 1, , , ;l i l kj l k i j    перейти к шагу S1. Теорема. Решение ЗН  корректно находится за время  3O n построением в двудольном графе с 2n вершинами последовательностей паросочетаний ,k 1, ,k n где k – паросочетание, содержащее k рёбер минимального веса, .k  Доказательство. Пусть построено паросочетание 1, 2, .k k n   Алгоритм останав- ливается, когда 1) не находится ребра, объединение которого с 1k  давало бы 1 ;k 2) во вспомогательном графе нет пути из любой вершины в любую вершину, следовательно, не существует увеличивающего пути относительно текущего паросочетания 1.k  Чтобы оценить трудоёмкость решения ЗН, заметим, что оно строится в результате выполнения n этапов, каждый из которых увеличивает паросочетание на одно ребро. На первом этапе находится 1 за время, оцениваемое в худшем случае величи- ной  2 .O n На каждом следующем этапе строятся паросочетания 1 k и 2 ,k 2, .k n Время построения 1 k оценивается величиной   21 .O n k  Нахождение 2 k требует  2 1n k  операций на поиск вершин множеств, k + 1 операций на построение Маций О.Б., Морозов А.В., Панишев А.В. «Искусственный интеллект» 2014 № 2 116 4М В вспомогательного орграфа,  2O k действий на построение в нем алгоритмом Дейкстры кратчайшего пути и  O k операций с множествами для определения 2.k Поэтому время каждого k-го этапа ограничено величиной  2 .O n � Пример. Исходная матрица ij n c   имеет вид: 1 2 3 4 5 6 7 1   2 8 9 0  2 15  3 0 24 0 24 3 5   5 0 2  4  10 2  23  0 5  0 0     6 0 15 10 3 17   7 14 0 24 2 2 15  S0.  1, 2, 3, 4, 5, 6, 7 ,X Y  k = 1,  1 1 16min | , 1, 7 c 0,i j ijс c i j     1 1 ,I   1 6 ,J  1 1 ,X Y     1 1,6 ,   1С   16 0с  . S1. k = 2. S2.         2 2 1 24 2 1min | 1, 6 0, 2, 4 1,6 , 2, 4 ,i j ijc c i j c          1MIN   1 2 16 24 0 0 0.C c c      S3. Для 16 J    6 6 26 2min | 1 0, 2 . ri ic c i c X     S4. Для 11 I    1 1 13 2min | 6 2, 3 . pj jc c j c Y     S5. Взвешенный граф (V, A) представляет собой путь  0 , 2, 1, 3 ,i где 0 2 0,iс  21 26 16 16 130, 0, 2.c c c c c     Этому пути соответствует кратчайший увеличиваю- щий путь  2 2, 6, 1, 3Р  относительно паросочетания   1 1, 6 .  Путь 2Р образуют рёбра      2,6 , 1,6 , 1,3 . Поэтому     2 2 2,6 , 1,3 , 2MIN   26 13 0 2 2.c c    S6. Так как MIN1 < MIN2,         1 2 2 2 21, 6 , 2, 4 , 1, 2 , 6, 4 .I J     S1. k = 3. S2.  3 3 35min | 1, 2; 6, 4 0,i j ijc c i j c          1 3 2 4, 7 1, 6 , 2, 4 ,     3, 5 ,  1 31 0MIN C   . S3. Так как    2 21, 2 , 6, 4 ,I J  то  6 6 36 4min | 1, 2 2, r ri i iс c i c c      4 74min | 1, 2 2,ic i c    и  3 3, 7 .Х  S4.      1 1 13 2 2 23 3min | 6, 4 2, min | 6, 4 3, 3 . p pj j j jc c j c c c j c Y         S5. Подграфу двудольного графа (X, Y, U), определенному на множестве вершин 3 2 2 3X I J Y   (рис. 5) соответствует вспомогательный граф (рис. 6) с весами дуг: 0 03 7 0,i ic c  31 36 16 2 0 2,c c c     12 14 24 8 0 8,c c c     21 26 16c c c   0 0 0,   72 74 24 0 2 2,c c c     23 3,c  33 .Y Рекуррентный метод решения задачи о назначениях «Штучний інтелект» 2014 № 2 117 4М Рисунок 5 Рисунок 6 Кратчайший путь  7, 2, 3 , 3 ,Y связывающий в орграфе (V, A) вершины из 3Х с вершинами из 3,Y состоит из рёбер       37, 4 , 2, 4 , 2, 3 , 3 ,Y кратчайшего увеличивающего пути 3P относительно паросочетания     2 1, 6 , 2, 4 .  Выполнив восемь итераций алгоритма, получим решение задачи:               7 1, 6 , 2, 4 , 3, 5 , 4, 7 , 5, 3 , 6, 1 , 7, 2 .  Рисунок 7 Для исследования времени решения задач разных размерностей различными методами проведен вычислительный эксперимент. Исследовалась зависимость времени решения ЗН от размерности входных данных. При помощи языка программирования Microsoft Visual C# были реализованы три метода решения ЗН: метод потенциалов, венгерский алгоритм и рекуррентный метод. На размерностях, больших 30, наи- лучшие результаты показал рекуррентный метод, а наихудшие – метод потенциалов. Список литературы 1. Пападимитриу Х. Комбинаторная оптимизация: Алгоритмы и сложность / Х. Пападимитриу, К. Стайглиц. – М. : Мир, 1985. – 510 с. 2. Панишев А.В. Быстрый алгоритм решения задачи о назначениях для нахождения нижней границы стоимости маршрута коммивояжера / А.Ю. Левченко, А.В. Морозов, А.В. Панишев // Искусственный интеллект. Институт проблем искусственного интеллекта. – 2011. – С. 406-416. 3. Левченко А.Ю. Механизм ускорения вычислений в методе Литтла для решения задач класса коммивояжера / А.Ю. Левченко, А.В. Морозов, А.В. Панишев // Искусственный интеллект. – 2012. – С. 95-110. Маций О.Б., Морозов А.В., Панишев А.В. «Искусственный интеллект» 2014 № 2 118 4М В References 1. Papadimitriou C. Combinatorial Optimization: Algorithms and Complexity / C. Papadimitriou, K. Steiglitz. – M.: Mir, 1985. – 510 p. 2. Panishev А.V. Fast algorithm for solving the assignment problem for finding lower bounds on the cost of the route of a Salesman / A.Y. Levchenko, A.V. Morozov, A.V. Panishev // Artificial intelligence The Institute of Artificial Intelligence.– Donetsk, 2011 .– P. 406-416. 3. Levchenko A.Y. Acceleration mechanism in the Little’s method for solving problems in the class of a Salesman / A.Y. Levchenko, A.V. Morozov, A.V. Morozov // Artificial intelligence The Institute of Artificial Intelligence.– Donetsk, 2012. – P. 95-110. RESUME O.B. Matsiy, A.V. Morozov, A.V. Panishev Recurrent Method for Solving the Assignment Problem Well-known methods for solving the assignment problem, such as the Hungarian method, Huhn-Munkres method, method of potentials are constructed using different approaches in combinatorial optimization, and are characterized by different time complexity, no less than O(n3). The paper proposes a new method for solving the assignment problem based on recursive obtaining an optimal solution. The assignment problem is formulated in the rearrangement matrix form that allows the use of a matrix approach to an optimal solution. The algorithm consists in finding a minimum total weight matching in the bipartite graph with 2n vertices. Computational scheme of the recurrence method for solving the assignment problem is presented in a form adapted for implementation on a computer. The layout is the purpose of finding the optimal basis for the algorithm in which the solution is found solely by means of the theory of matchings for bipartite graphs presented in the rearrangement matrix form. The developed method, in comparison with others, gives the opportunity to save computational resources, making a gain on large dimension of the input data. Статья поступила в редакцию 11.03.2014.