Научная статья на тему 'Оптимальное упорядочение конфликтующих объектов и задача коммивояжера'

Оптимальное упорядочение конфликтующих объектов и задача коммивояжера Текст научной статьи по специальности «Математика»

CC BY
516
102
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОПТИМАЛЬНОЕ РАЗМЕЩЕНИЕ / ЗАДАЧА КОММИВОЯЖЕРА / NP-ТРУДНЫЕ ЗАДАЧИ / ЛЕНТОЧНЫЕ МАТРИЦЫ / РАЗРЕЖЕННЫЕ МАТРИЦЫ / ЖАДНЫЙ АЛГОРИТМ / ШТРАФНАЯ ФУНКЦИЯ / КОНФЛИКТЫ / СЕТИ СМИ / TSP / OPTIMAL PLACEMENT / TRAVELING SALESMAN PROBLEM / NP-HARD PROBLEMS / BAND MATRIX / SPARSE MATRIX / GREEDY ALGORITHM / PENALTY FUNCTION / CONFLICTS / MEDIA NETWORK

Аннотация научной статьи по математике, автор научной работы — Воеводин А. В., Косяченко С. А.

В работе представлена постановка задачи оптимального упорядочения конфликтующих объектов и ее связь с задачей коммивояжера (Travelling Salesman Problem или TSP). Задача оптимального упорядочения конфликтующих объектов возникает в социологии, при анализе графов в социальных сетях, при размещении рекламных заказов в сетях СМИ. В статье описаны используемые авторами на практике быстрые алгоритмы решения этой и связанных с ней задач. Также рассмотрена задача TSP с разреженной матрицей штрафов. Для задач TSP с ленточной и блочно-диагональной матрицами найдены необходимые и достаточные условия и построены точные алгоритмы, при которых достигается нулевое минимальное значение целевой функции задачи. Предложены эффективные алгоритмы и для произвольных разреженных матриц. Приведены результаты аналитических и численных исследований сложности разработанных алгоритмов и точности решения, а также рекомендации по применению алгоритмов для решения задач подобного типа.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Optimal Ordering of Conflicting Objects and the Traveling Salesman Problem

The paper presents the setting of the problem of optimal ordering of conflicting objects related to the Travelling Salesman Problem (TSP). The problem of optimal ordering of conflicting objects appears in sociology, in graph analysis and finding in them optimal paths, in advertising in various media. Solution algorithms are described for this and related problems. The TSP with sparse matrix is also considered. For sparse practice cases of the TSP necessary and sufficient conditions are proved to objective function attained its minimum and the algorithms guaranteeing exact solution are constructed. The practical results of analytical and numerical investigations of algorithm complexity and solution accuracy are presented as well as recommendations for the algorithm applications to the solution of these problems.

Текст научной работы на тему «Оптимальное упорядочение конфликтующих объектов и задача коммивояжера»

Оптимальное упорядочение конфликтующих объектов и задача коммивояжера

А.В. Воеводин, С. А. Косяченко Silver-AW@yandex.ru, spiero@yandex.ru Видео Интернешнл

Аннотация. В работе представлена постановка задачи оптимального упорядочения конфликтующих объектов и ее связь с задачей коммивояжера (Travelling Salesman Problem или TSP). Задача оптимального упорядочения конфликтующих объектов возникает в социологии, при анализе графов в социальных сетях, при размещении рекламных заказов в сетях СМИ. В статье описаны используемые авторами на практике быстрые алгоритмы решения этой и связанных с ней задач. Также рассмотрена задача TSP с разреженной матрицей штрафов. Для задач TSP с ленточной и блочно-диагональной матрицами найдены необходимые и достаточные условия и построены точные алгоритмы, при которых достигается нулевое минимальное значение целевой функции задачи. Предложены эффективные алгоритмы и для произвольных разреженных матриц. Приведены результаты аналитических и численных исследований сложности разработанных алгоритмов и точности решения, а также рекомендации по применению алгоритмов для решения задач подобного типа.

Ключевые слова: оптимальное размещение; задача коммивояжера; TSP; NP-трудные задачи; ленточные матрицы; разреженные матрицы; жадный алгоритм; штрафная функция; конфликты, сети СМИ.

Введение

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

[1], задача о сверлильном станке, задача о производстве красок, пополнение банкоматов наличными деньгами, сбор сотрудников вахтовым методом, расклейка афиш, другие задачи логистики [2]. В общем случае в рассматриваемой нами задаче не все объекты связаны и конфликтуют между собой, а назначаемые за конфликт штрафы могут быть большими при непосредстенном соседстве объектов и уменьшаются при отдалении их друг от друга в списке. Для задач коммивояжера обычно существует один тип

штрафа, например: расстояние, стоимость или время доставки груза между городами. В общем случае может быть несколько типов штрафов, определяемых разными причинами нежелательного соседства объектов, например, принадлежностью их к конфликтующим группам по различным признакам. Такие задачи возникают в социологии, при нахождении оптимальных путей между вершинами графа в социальных сетях, при размещении рекламных заказов в сетях СМИ. Несмотря на то, что данная задача в общем случае относится к классу ЫР-трудных задач, для наиболее распространенных частных случаев задачи Т8Р с разреженной матрицей штрафов построены точные быстрые алгоритмы. Для общего случая предложен эвристический быстрый алгоритм, масштабируемый до произвольного размера при сохранении линейной сложности при незначительных потерях в качестве решения. Эго позволяет нам практически применять предложенные алгоритмы на больших объемах данных.

Постановка задачи и ее связь с задачей коммивояжера

Дано неупорядоченное множество из N объектов х;, / Требуется

упорядочить эти объекты в виде линейного списка. Объекты «конфликтуют» между собой, конфликтующие объекты желательно разместить в списке подальше друг от друга. Математически конфликт выражается в том, что за непосредственное соседство В списке объектов И X] применяется штраф Рц > 0. Если же между х1 и х; в списке находится еще один объект хк. то штраф за соседство х1 и х; уменьшается в 2 раза. Если между х1 и х; в списке находятся два других объекта, то штраф за соседство х1 и х; уменьшается в 3 раза и т.д. В общем случае если после упорядочения в списке между объектами х^ и х; оказалось > 0 других объектов, то за такую близость х1 и

х, применяется штраф, равный . К примеру, при Л-4 перестановке объектов х3, хъх4, х2 будет соответствовать суммарный штраф

^ = Рз1 + Р14 + Ра2 + (Рз4 + Р1г)/2 + Рзг/З-

Требуется среди всех перестановок объектов найти перестановку с минимальной величиной штрафа ИЛ Формально постановка задачи выглядит следующим образом. Имеется множество из N объектов х1,х2, ■■■ ,хы. На исходной нумерации этих объектов задается матрица штрафов Р с элементами Р1] > 0 за непосредственное соседство В списке объектов Х1 И Ху Пусть 8 -множество всех перестановок эк чисел 1, 2,..., Л', где к=1,..., N1. Обозначим > 0 - количество объектов из исходного множества, оказавшихся в перестановке Бк между объектами х1 и х;. Необходимо среди всех перестановок Бк объектов найти перестановку с минимальным суммарным штрафом У/к:

шт Ж, = тт ^ ^ —

к к к Ь^ + 1

(=17=1+1 Ч

В частном случае, когда штрафуется только непосредственное соседство объектов, все значения = 0, и штраф рц применяется только N - 1 раз к непосредственно соседствующим объектам. В этом случае задачу (1) упорядочения конфликтующих объектов можно записать в виде

N-1

ттИ/£ = шпУ рм+1 (2)

к к / I

1 = 1

где минимум берется по всем Ы! перестановкам 5/с индексов объектов хь / =

1, 2,..., N.

Оптимизационная задача (2) является классической задачей Т8Р, которая в теории сложности относится к классу ЫР-трудных задач. Для метрических задач Т8Р существуют приближенные алгоритмы полиномиальной сложности, которые гарантированно находят решение максимум вдвое отличающееся от оптимального[1]. Рассматриваемая нами задача (2) относится к варианту незамкнутой, симметричной, неметрической задачи Т8Р, для которых пока не предложено приближенных алгоритмов полиномиальной сложности с хорошей оценкой точности. Таким образом, в общем случае для задач (1) и (2) не приходится рассчитывать на существование полиномиально быстрых и точных алгоритмов решения. Однако для ряда распространенных на практике случаев нам удалось это сделать.

Заметим, что хотя задача (2) оптимального упорядочения конфликтующих объектов формально относится к задаче Т8Р, фактически она отличается от классической задачи коммивояжера нахождения оптимального пути обхода городов на плоскости и требует построения специальных алгоритмов. Даже метрическую задачу Т8Р не всегда можно изобразить на плоскости как задачу обхода городов. Например, рассмотрим задачу с N равноудаленными друг от друга вершинами, т.е. все рц = С > 0,1 Ф ], где С — константа. Такое множество вершин можно изобразить на плоскости только при N=3. В общем случае N равноудаленных вершин потребуют не менее (\-1 )-мсрного пространства, где образуют (\-1 )-мсрный регулярный симплекс [3]. Неметрическая задача Т8Р, к которой относится рассматриваемая нами задача (2), еще менее похожа на классическую задачу коммивояжера. В ней не выполняется неравенство треугольника, ее можно представить только в виде взвешенного графа или в матричном виде.

Но самое большое отличие задачи оптимального упорядочения конфликтующих объектов (2) от классической задачи коммивояжера заключается в том, что не каждый объект конфликтует с каждым, т.е. в

матрице штрафов некоторые значения ру = 0. Более того, взвешенный граф задачи (2) может быть несвязанным и может распадаться на несвязанные друг с другом компоненты. Поскольку наша задача неметрическая, то стоимость «обходного» пути между вершинами I и ]' может быть малой или даже нулевой: р^к + рк] = 0, а стоимость «непосредственного» пути по дуге рц большой. Когда в матрице штрафов много нулевых элементов рц. она называется разреженной. Но несмотря на все эти отличия от классической задачи коммивояжера задача упорядочения конфликтующих объектов (2) остается задачей Т8Р и даже может иметь смысловое наполнение близкое к классическому. Матрица штрафов может означать стоимость дополнительных, не входящих в базовый набор, услуг на пути обхода городов, например: стоимость проезда по платным дорогам, оплата номеров и парковки в отелях повышенного класса на трассе и т.п. Такая матрица может быть разреженной. В данной статье мы построим алгоритмы, эффективные для задач Т8Р с разреженной матрицей штрафов. Будут предложены процедуры сведения задачи с хаотически разреженной матрицей к задачам с ленточной или блочно-диагональной матрицей. В свою очередь для задач Т8Р с ленточной или блочно-диагональной матрицами будут найдены необходимые и достаточные условия и построены алгоритмы, при которых всегда существует путь с IV = 0. Важные и часто встречающиеся на практике классы задач с ленточной и блочно-диагональной матрицами рассмотрены в работе отдельно.

Матричная постановка задачи

В матричном виде задача (2) сводится к одноименной перестановке строк и столбцов симметричной неотрицательной матрицы стоимости Р = (р1;). Рц > 0, так, чтобы сумма чисел на 2-й диагонали, находящейся непосредственно над главной, была минимальна. Любая одноименная перестановка строк и столбцов матрицы эквивалентна преобразованию Т*Р*Т€, где Т - матрица перестановок, 7' - транспонированная к ней матрица. Матрица перестановок - это 0-1 матрица, у которой в любой строке и любом столбце только один ненулевой элемент. Перемножение матриц перестановок снова дает матрицу перестановок. Матрица Т' также является матрицей перестановок. Умножение слева матрицы Р на матрицу Т приводит к перестановке строк матрицы Р. Умножение справа матрицы Р на матрицу 7' приводит к одноименной перестановке столбцов матрицы Р. Матрица Т*Р*Т4 снова будет симметричной матрицей. В результате одноименных перестановок строк и столбцов матрицы Р ее диагональные элементы будут оставаться на главной диагонали. Таким образом, матричная постановка задачи (2) следующая. Найти матрицу перестановок Т такую, чтобы у матрицы Т*Р*Т4 сумма чисел на 2-й диагонали была минимальна.

Оптимальный алгоритм для задачи с блочнодиагональной матрицей

Определение. Матрица, которая перестановкой одноименных строк и столбцов может быть приведена к блочно-треугольному виду, называется разложимой.

В нашем случае симметричной матрицы разложимая матрица приводится очевидно к блочно-диагональному виду. Симметричная матрица Р разложима тогда и только тогда, когда ее граф несвязен. Справедлива следующая

Лемма 1. Если матрица Р порядка N разложима и максимальный размер блока в ее блочно-диагольном представлении < |^|, то минимум в задаче (2) оптимального упорядочения объектов равен 0.

Приведем алгоритм, доказывающий лемму 1 и обеспечивающий оптимальное решение задачи (2).

Алгоритм 1. Оптимальное упорядочение строится следующим образом. Сначала в списке поочередно располагаем все первые вершины из каждого блока матрицы, затем вторые вершины из каждого блока матрицы и т.д. Поскольку при таком алгоритме любые две рядом стоящие в списке вершины / и / будут принадлежать разным диагональным блокам матрицы, они не будут связаны меяеду собой, т.е. для любых соседних вершин = 0, а значит значение V/* суммы ЦФ в задаче (2) равно 0. Алгоритм требует N-1 шагов. Следствие. Если граф задачи (2) несвязен, и максимальное число вершин в связной компоненте графа < |^|, то минимум в задаче (2) оптимального упорядочения объектов равен 0.

Отметим, что если в условиях леммы 1 использовать попарные перестановки вершин, то потребуется < попарных перестановок. Перестановке вершин / и] соответствуют попарные одноименные перестановки /-й и / -й строк и /-го и ]-то столбцов матрицы Р. В любой попарной одноименной перестановке строк и столбцов среди интересующих нас элементов 2-й диагонали матрицы Р меняются только 4 элемента на новые. Точнее при перестановке вершин / и / элементы меняются следующим образом:

Р 1-1,1 Р;-и , Рц+1 Р;+и , Р]-!,] Ри-1 , Р),)+1 Р;,;+1 ■ (3)

Здесь мы учитываем, что матрица Р симметричная. Таким образом, при попарной перестановке достаточно в формуле суммы целевого функционала

(2) подменить только 4 слагаемых. Если какой-либо из указанных индексов выходит из диапазона 1, N, то соответствующий элемент не переставляется и в сумме не участвует.

Алгоритм 1, обеспечивающий нулевой минимум в задаче (2) для разложимой матрицы и ее несвязанного графа, можно успешно применять в качестве приближенного алгоритма к матрицам близким к блочно-диагональным, у

которых все элементы, находящиеся вне диагональных блоков, малы относительно элементов внутри диагональных блоков.

Оптимальные алгоритмы для задачи с ленточной матрицей

Другим важным классом матриц, для которых можно построить алгоритм с нулевым значением штрафа в задаче (2), является класс ленточных симметричных матриц.

Определение. Матрица Р порядка N >2 называется ленточной, если Рц = 0, при |/-)| >/,

Величина I > 0 называется полушириной ленты такой матрицы.

Например, трехдиагональная матрица будет иметь полуширину ленты 1 = 2. Напомним, что в рассматриваемых нами задачах (1) и (2) матрица Р симметричная.

Лемма 2. Если матрица Р порядка N является ленточной с полушириной ленты I < [^] — 1, то минимум в задаче (2) оптимального упорядочения объектов равен 0.

Приведем алгоритм попарных перестановок строк и столбцов, обеспечивающий утверждение леммы 2.

Алгоритм 2. Для \<5 утверждение очевидно, поскольку тогда I < 1 и матрица Р имеет нулевую 2-ю диагональ. Пусть Л>5. Индексы /, / попарных одноименных перестановок строк и столбцов будем брать как индексы

элементов матрицы Р, лежащие на ее ([^] + 1) — й диагонали. Брать следует

индексы не всех элементов с этой диагонали, а через один, начиная с 1-го.

Число таких элементов будет [^]. Попарные перестановки выполняем

последовательно в соответствии с индексами указанных элементов, начиная с 1-го верхнего элемента данной диагонали. При перестановках вершин / и / используем формулы (3). Из них видно, что мы последовательно переставляем четверки соседних с ру нулевых элементов, находящихся вне ленты матрицы, на ее 2-ю диагональ.

Отметим, что при попарных одноименных перестановках строк и столбцов с индексами /. / ленточной матрицы происходит заполнение элементов матрицы в /-й строке и / -м столбце, отстоящих от рц на <1 — 1 позиций. Но этот факт

не мешает работе данного алгоритма, поскольку индексы с — й

диагонали матрицы Р берутся через один. Алгоритм 2 требует |^| попарных перестановок одноименных строк и столбцов матрицы.

Ограничение на полуширину ленты в лемме 2 можно ослабить, если использовать алгоритм с большим числом перестановок. А именно, справедливо следующее утверждение.

Лемма 3. Если матрица Р порядка N является ленточной с полушириной ленты / < [^], то минимум в задаче (2) оптимального упорядочения объектов равен 0.

Приведем алгоритм, обеспечивающий утверждение леммы 3.

Алгоритм 3. Оптимальное упорядочение строится следующим образом. Рассмотрим упорядочение вершин 1,2,... Ы, задаваемое исходной ленточной матрицей. В оптимальном списке располагаем эти вершины подряд в каждую четную позицию, начиная со 2-й позиции. Достигнув конца списка, вершины располагаем подряд в каяедую нечетную позицию, начиная с 1-й позиции. Оптимальное упорядочение построено. Например, для N = 8 максимальная полуширина ленты матрицы Р будет I = 4. Оптимальное упорядочение вершин будет таким: 5,1,6,2,7,3,8,4. Такое упорядочение обеспечивает нулевой минимум в задаче (2), ибо из структуры исходной ленточной матрицы следует, что в построенном оптимальном списке любые две рядом стоящие вершины / и / не связаны между собой, так как для них рц = 0. Так, в рассматриваемом примере в исходной ленточной матрице элементы р51 = Р16 = Рб2 = Р27 = Р73 = Рзв = Рв4 = 0- Значит, для указанного оптимального списка вершин 5,1,6,2,7,3,8,4 минимум в задаче (2) равен 0. Алгоритм 3 требует N-1 шагов - примерно в 4 раза больше, чем алгоритм 2.

Следствие. Если для графа задачи (2) существует упорядочение вершин, при котором любая вершина в списке связана только с вершинами, отстоящими от

нее не более, чем на ^ — 1 позиций в списке, то минимум в задаче (2) оптимального упорядочения объектов равен 0.

Действительно, такое упорядочение вершин описывается ленточной матрицей с полушириной ленты < Значит, в силу леммы 3, \№ ' = 0.

Отметим, что указанное в лемме 3 ограничение на полуширину ленты < ^ является предельным. Если полуширина ленты превышает это значение, то нулевое значение функционала задачи (2) гарантировать уже нельзя. Точнее справедлива следующая

Теорема 1. Пусть Р - симметричная ленточная матрица порядка Л', у которой все Рц > 0 (/ /) в пределах ее ленты. Для того чтобы минимум в задаче (2) оптимального упорядочения объектов был равен 0, необходимо и достаточно, чтобы полуширина ее ленты / < [^].

Доказательство. Достаточность условия следует из леммы 3. Докажем необходимость от противного: если I > [^] , то > 0. Пусть полуширина

ленты I > [“] + !• Тогда, поскольку ширина ленты Ь =2*1-1, получаем, что Ь > 2 * + 1 > N. То есть ширина ленты Ь = N. А по условиям теоремы все

Рц > 0 (/ /) в пределах ленты. Значит в матрице Р существует строка с некоторым номером к, В которой все ее элементы рк] > 0 для / к от 1 до N и столбец С некоторым номером к, в котором все его элементы Р1к > 0 для / к от 1 до N. Другими словами вершина с номером к конфликтует со всеми другими вершинами. А поскольку при любых перестановках вершина с номером к будет соседствовать хотя бы с одной другой вершиной, то для фунционала в задаче (2) будет справедлива оценка

Ж* > ттр1к > 0,

1*к

что и требовалось доказать.

Алгоритмы 2 и 3, обеспечивающие нулевой минимум в задаче (2), можно успешно применять в качестве приближенных алгоритмов к матрицам близким к ленточным, у которой все элементы, находящиеся вне ее ленты, малы относительно элементов внутри ленты. Для приведения матрицы к ленточной или близкой к ленточной можно применять специальные алгоритмы.

Алгоритмы для задач с разреженными и матрицами общего вида

Для случая разреженных матриц общего вида, когда в матрице Р ненулевые элементы расположены хаотично, можно использовать эффективные методы группирования ненулевых элементов на диагоналях близких к главной. Например, это прямой и обратный методы Катхилл-Макки для разреженных матриц, которые с помощью одноименных перестановок строк и столбцов приводят матрицу к ленточному виду с шириной ленты значительно меньшей, чем у исходной. Сложность этой процедуры 0(№) [4]. В работах [4,5] приводятся многочисленные примеры, когда, применяя прямой или обратный методы Катхилл-Макки к разреженной матрице размера N, получаем ленточную матрицу с шириной ленты в несколько раз или даже на порядок меньше, чем у исходной матрицы. А согласно теореме 1 для достижения нулевого минимума функционала достаточно всего лишь, чтобы полуширина

ленты была < [^]. В этом случае, после процедуры Катхилл-Макки следует применить алгоритмы 2 или 3 оптимального упорядочения для достижения нулевого минимума функционала задачи (2).

Этот же подход можно успешно применять и в случаях, когда матрица Р не является разреженной, то есть Р - матрица общего вида, но в ней явно выделяются большие и малые элементы. Для матриц такого вида также сначала используем методы Катхилл-Макки для группирования больших элементов на диагоналях близких к главной. Затем применяем алгоритмы 2 или 3 оптимального упорядочения для минимизации функционала задачи (2). Таким образом мы построили новый быстрый алгоритм приближенного решения классической общей задачи TSP. Этот алгоритм будет достаточно точно работать в тех случаях, когда элементы в матрице штрафов Р достаточно сильно отличаются по величине друг от друга, а число «малых» элементов в матрице не меньше N2/А.

Алгоритмы для задачи с матрицей общего вида

Несмотря на существование оптимальных быстрых алгоритмов для блочнодиагональных, ленточных и разреженных матриц, а также эффективных алгоритмов для близким к ним матриц, в общем случае в задачах (1) и (2) не приходится рассчитывать на достаточно точные алгоритмы полиномиальной сложности. Сложность алгоритма полного перебора составит 0(N!). Если для малых N выполнение полного перебора возможно, то с ростом N мы столкнёмся с проблемой нехватки вычислительных ресурсов. Ограничения в вычислительных ресурсах приводят к необходимости построения экономичного в вычислительном смысле алгоритма поиска решения, близкого к оптимальному.

Применим к решению задач “жадный” алгоритм [6] (greedy algorithm), в котором каждый шаг является локально оптимальным. Рассмотрим работу жадного алгоритма для поставленной выше задачи (1) размещения на примере.

Алгоритм 4. Пусть есть множество объектов (х1,х2,х3,х4). Матрица попарных штрафов имеет вид: Р =

0 12 2

10 3 3

2 3 0 1

2 3 10

Так как в работе жадного алгоритма нам необходимо начинать размещение с самых конфликтных объектов, упорядочим объекты в порядке убывания «конфликтности», которую определим как сумму элементов соответствующей строки матрицы Р. Получим вектор конфликтности р=(5,7,6,6). В соответствии с ним будем размещать объекты в порядке (х2,х3,х4, х,).

Ищем оптимальное размещение для х2, ставим х2 в первую доступную позицию:

*2

С учетом уже поставленного х2 ищем оптимальное размещение для х3:

*2 *3

С учетом уже поставленных х2 и х3 ищем оптимальное размещение для х4:

*2 х4 *3

Наконец, ставим хг в последнюю доступную позицию:

*2 х4 X1 *3

Получаем штраф ]¥=9.

Основным недостатком «жадного» алгоритма является оптимизация только одного следующего шага. Для его улучшения авторы предлагают воспользоваться следующим эвристическим алгоритмом.

Алгоритм 5.

1. Если N<7, то выполняем оптимальное размещение полным перебором и на выход. Иначе переходим к шагу 2.

2. Все объекты сортируются в порядке убывания «конфликтности». Пронумеруем их заново (х1(х2, ...,хм). Смещение .V = 0. Список размещения - пустой.

3. Берем 7 объектов (х5+1,..., х5+7) и с помощью полного перебора ищем оптимальное размещение этого подмножества в списке.

4. Если £+ 7 Л', то все объекты размещены - Выход.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

5. Из всех размещенных 7 объектов оставляем в списке только первый х5+1, остальные убираем.

6. 5” = 5” + 1. Возвращаемся к шагу 2.

Отличием алгоритма 5 от приведенного выше жадного алгоритма 4 заключается в том, что оптимальное размещение х5+1 ищется не локально оптимально, а с учетом других конфликтующих объектов, что позволяет лучше определять оптимальную позицию для х5+1.

Если алгоритм 5 применить к вышеприведенному примеру, то выполняя полный перебор даже для 2 объектов вместо 7, получим оптимальное значение суммарного штрафа 1¥=7.5.

В данном случае нам удалось добиться глобального минимума, хотя понятно, что в общем случае данный алгоритм на такой результат не претендует.

Как показывает практика, предложенный алгоритм 5 удовлетворительно решает задачи размером N < 30. При Л>30 скорость работы алгоритма начинает заметно падать. Для компенсации этого недостатка для больших N

предлагается разбивать позиции списка на подблоки таким образом, чтобы длина каждого подблока была не более 30, и проводить оптимизацию в каждом подблоке «почти» отдельно.

Алгоритм 6. Имеем N>30 объектов, они отсортированы в порядке убывания

штрафа (х1,х2, ■■■ ,хм). Вычисляем количество подблоков к'= [^|. Начиная с

первого объекта, распределяем последовательно все объекты (х1,...,хы') поочередно по подблокам 1 Когда подблоки кончатся, распределяем объекты с последнего подблока до первого, затем снова с первого до последнего и т.д. Таким образом, в каждом подблоке мы получим примерно одинаковый по конфликтности набор объектов. После такого разбиения предложенный выше алгоритм размещения применяем к каждому подблоку отдельно. А для того, чтобы избежать размещения конфликтующих объектов на границе подблоков будем применять приведенный выше алгоритм еще и на границе подблоков следующим образом.

Рассмотрим пример. Пусть имеется 2 подблока. Все множество объектов соответственно поделено на 2 группы объектов, которые должны быть размещены в подблоках 1 и 2 соответственно. Сначала выполняется размещение в 1-м подблоке. Затем размещаем объекты 2-ого подблока с учетом размещения 1-ого подблока. Затем выделяем промежуточный подблок на границе 1-ого и 2-ого подблока. В данный промежу точный подблок входят

последних объектов 1-ого подблока и первых объектов 2-ого

подблока, где 11, 12 - количество объектов в 1-ом и во 2-ом подблоке соответственно. Выполняем размещение в промежу точном подблоке с учетом

расстановки первых /1 — [^] объектов 1-ого подблока. Далее еще раз

проводим переразмещение объектов во 2-ом подблоке. Таким образом, удается улучшить размещение на границе подблоков. Заметим, что результат работы предложенного алгоритма 6 может быть далек от оптимального, поэтому для конечной «шлифовки» будем дополнительно использовать алгоритм локальной оптимизации, приведенный ниже.

Алгоритм локальной оптимизации с помощью попарных перестановок

Будем менять местами все пары вершин (х;, х;). если это приводит к уменьшению ЦФ. Так поступаем до тех пор, пока происходит уменьшение ЦФ. Можно также на каждом шаге выбирать наилучшую перестановку вершин / и /. у которой (сумма старых 4 элементов 2-й диагонали) - (сумма новых 4 элементов 2-й диагонали) максимальна. При этом учитываем, что в любой попарной одноименной перестановке строк и столбцов среди интересующих нас элементов 2-й диагонали матрицы Р меняются только 4 старых элемента на новые. Индексы старых и новых элементов определяются формулами (3). Так поступаем, пока наилучшая перестановка будет давать

217

выигрыш по функционалу. Такой метод сходится к локальному минимуму за конечное число шагов. Сложность одного шага 0(Ы~). Если такую процедуру попарной перестановки применять только внутри каждого подблока, то общая сложность всех попарных перестановок и предложенного алгоритма упорядочения всех конфликтующих объектов в целом будет равна О(Ы).

Общая схема функционирования предложенного алгоритма приведена на рисунке 1.

Рис. 1.

Сложность предложенного алгоритма в целом линейна и равна С*М30, где С - число операций, приходящихся на обработку одного подблока размера не более 30.

Численные исследования

Оценим численно точность и скорость работы предложенного выше алгоритма. Определить точность работы можно, зная оптимальное значение ЦФ, которое можно получить алгоритмом полного перебора. Ввиду большой ресурсоемкости такого подхода сделать это представляется возможным только для небольших N. Результаты сравнительных исследований для N < 10 приведены в таблице 1. В колонке «Объекты» в таблице 1 приведена кодировка набора объектов, на котором проводился замер точности работы алгоритмов. Например, кодировка «1112223» обозначает, что имеется 7 объектов, которые поделены на 3 подгруппы: три одинаковых объекта «1», три одинаковых объекта «2» и объект «3». Каждый объект конфликтует только с объектами своей подгруппы с одинаковым единичным штрафом. Так как решение задачи (2) нахождения минимума V/* тривиально, в данной задаче мы искали только минимум V/ в задаче (1).

Таблица 1. Значения ЦФ для размещения 10 и менее объектов.

Объекты Алгоритм полного перебора. Значение ЦФ Жопт Предложенный алгоритм. Значение ЦФ Щцлг-

7 1112223 2.58 2.58

8 11122334 2.26 2.26

9 111122233 3.82 4.02

10 1111222334 3.35 3.52

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

Тест 1. Возьмем множество из 100 объектов, которое состоит из двух подмножеств: (х1,х3,х5 ...х99), (х2,х4, х6 ... х100), по 50 одинаковых объектов в каждом. Каждый объект конфликтует только с объектами своего подмножества с одинаковым единичным штрафом. Будем искать минимум в задаче (1). Оптимальная расстановка для данного теста совпадает с порядком следования объектов х1( ...х100 или, другими словами, оптимальным размещением будет являться чередование объектов из первого подмножества с объектами из второго подмножества. Подсчитаем значение Щ)1П для задачи (1):

Шош(хъх2,х3 ...Хюо) = 2 • Ш0ш(хъх3,хъ ... х99) =

1 1 2 • 2 96 (4)

+ ••• +

V

/

Здесь в первой строке записан штраф за конфликты объекта х, и всех остальных объектов первого подмножества (х3,х5 ...х99). Во второй строке штраф за конфликты х3 и всех остальных объектов первого подмножества, исключая хг, и т.д. После преобразований формул (4), получим оптимальное значение функции штрафа

Применяя к тому же входному множеству объектов предложенный алгоритм,

получим И^лг =175.86.

Тест 2. Возьмем набор из 100 объектов х1,х2, ...х100. Матрицу попарных штрафов определим следующим образом:

Другими словами, из первоначального множества X конфликтуют между собой только элементы из 5-ти подмножеств: (х1,х6,х11 ...х96), (х2,...х97), (х3,...х98), (х4, ...х99), (х5, ...х100). Оптимальная расстановка для данного теста совпадает с порядком следования объектов х±,... х100.

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

5. Воспользовавшись определением ЦФ (1), получаем:

49

(50 - 0

2 • I

= 174.96

1=1

№опт(хі,х2, ...лгюо)- — ^'Шоит(х1,х6 ...х96) —

/- + - + -+- + -+\ 5 10 15 95

10

V

+ ••• +

+ ї

(4)

/

Здесь в первой строке записан штраф за конфликты хг и всех остальных объектов первого подмножества (хх, х6, х,, ... х96). Во второй строке штраф за конфликты х6 и всех остальных объектов первого подмножества, исключая х,. и т.д. После преобразований (4) получаем:

^(20 — О 5. ■ = 51,95

1=1

Применим к первоначальному подмножеству предложенный алгоритм, получаем И/алг =52,76.

Тест 3. Возьмем 34 объекта, которые поделены на 2 неконфликтующие группы: 12 объектов первой группы конфликтуют между собой с штрафом р= 10 и 22 объекта 2-ой группы с штрафом р=2. Оптимальное размещение в этом случае будет иметь вид:

X1 *2 *2 *1 *2 *2 *1 *2 *2 *1

где х, - объект из 1-ой группы, х2 - объект из 2-ой группы.

Оптимальное значение ЦФ для такого размещения: Щ)1П= 186.12.

Предложенный алгоритм находит решение: ЩІЛТ =188,0.

Тест 4. Проведем тест аналогичный тесту 2, только с 3-мя группами по 30 взаимно не конфликтующих объектов. Т.е. имеем объекты х1,х2, ...х90. Функция попарных штрафов:

(ри = 1,

|рч = °.

Оптимальная расстановка для данного теста совпадает с порядком следования объектов х±,... х90.

/- + - + -+- + -+\ '369 р-7 \

1 1 і+-" + іі +

+ ••• +

+ -

3

V

(4)

После преобразований получаем:

29

Ж,

і=і

(зо - о

3-і

= 89,85

Применим к первоначальному подмножеству предложенный алгоритм, получаем И/алг =90,38.

При подготовке данной статьи авторы пытались найти худшие примеры, в которых значение ЦФ предложенного алгоритма значительно отличалось бы от оптимального значения ЦФ, но это оказалось не так просто. Результаты численных исследований решения оптимизационной задачи (1) для ЦФ )¥ и задачи (2) для ЦФ приведены в таблице 2.

Табл. 2. Сводная таблица результатов численных исследований.

№ примера Жшт И4лг ^алг ^опт іти Ж) пт И4*лг

^алг

1 174.96 175.86 0,51 0,0 3,0

2 51,95 52,76 1,54 0,0 0,0

3 186,12 188,0 1,00 18,0 18,00

4 89,85 90,38 0,59 0,0 0,0

Скорость работы предлагаемого алгоритма в секундах для больших N приведена на графике, изображенном на рис. 2.

Рис. 1. Зависимость времени работы предложенного алгоритма от количества

объектов

Сложность предложенного алгоритма упорядочения всех конфликтующих объектов в целом линейна и равна О(Ы).

Заключение

В статье построены алгоритмы решения задач оптимального упорядочения конфликтующих объектов. Рассмотрены задачи двух типов: когда штрафуется только непосредственное соседство объектов (задача Т8Р), и обобщенный случай, когда штраф действует как на соседние, так и на отдаленные друг от друга конфликтующие объекты, и убывает в зависимости от числа расположенных между ними объектов. Показана связь задачи оптимального упорядочения конфликтующих объектов с задачей коммивояжера. Рассмотрена задача Т8Р с разреженной матрицей штрафов. Для наиболее распространенных случаев такой задачи Т8Р, когда матрица штрафов имеет вид ленточной или блочно-диагональной, построены точные быстрые алгоритмы, достигающие минимального нулевого значения целевой функции. Доказано необходимое и достаточное условие, при котором достигается нулевой минимум ЦФ в таких задачах Т8Р. Предложенные алгоритмы эффективны для разреженных матриц. Их также можно успешно применять в качестве приближенных алгоритмов к матрицам близким к ленточным, блочно-диагональным и разреженным. Для общего случая в статье предложен эвристический алгоритм, который показал высокое быстродействие при незначительных потерях в качестве решения. Для задачи Т8Р (2) он также работает эффективно. Удалось добиться хорошей его масштабируемости до произвольного размера при сохранении линейной сложности, что позволило нам использовать предложенные алгоритмы на практике на больших объемах данных, например, для задач размещения рекламных заказов в сетях СМИ. Их можно применять также для решения задач коммивояжера и близких задач обхода графов, в том числе в социологии, при нахождении оптимальных путей в социальных сетях.

Список литературы

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

[1]. Кузюрин Н.Н., Фомин С.А. Эффективные алгоритмы и сложность вычислений: Учебное пособие. - М.: МФТИ, 2007. - 312 с.

[2 ]. http '.Не. п. wikipedia. org/wiki/T га velling_salesmaii_problem

[3]. Peter Komjach: http://mathoverilow.net/questions/30270/maximum-number-of-

mutually-equidistant-points-in-an-n-dimensional-euclidean-spac , geometry - Maximum number of mutually equidistant points in an n-dimensional Euclidean space is (n+l)_ Proof - MathOverfiow, answered Jul 2, 2010.

[4]. Джордж А., Лю Дж. Численное решение больших разреженных систем уравнений: Пер. с англ. -М.: Мир, 1984. - 333 с.

[5]. Писсанецки С. Технология разреженных матриц: Пер. с англ. - М.: Мир, 1988. -410 с.

[6]. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ: Под ред. Красикова И. В. —2-е изд. — М.: Вильямс, 2005. — 1296 с.

Optimal Ordering of Conflicting Objects and the Traveling Salesman Problem

Alexev Voevodin, Semen Kosyachenko Silver-AlY(a)yandex.ru, spiero&yandex.ru Video International

Abstract. The paper presents the setting of the problem of optimal ordering of conflicting objects related to the Travelling Salesman Problem (TSP). The problem of optimal ordering of conflicting objects appears in sociology, in graph analysis and finding in them optimal paths, in advertising in various media. Solution algorithms are described for this and related problems. The TSP with sparse matrix is also considered. For sparse practice cases of the TSP necessary and sufficient conditions are proved to objective function attained its minimum and the algorithms guaranteeing exact solution are constructed. The practical results of analytical and numerical investigations of algorithm complexity and solution accuracy are presented as well as recommendations for the algorithm applications to the solution of these problems.

Keywords: optimal placement; traveling salesman problem; TSP; NP-hard problems; band matrix; sparse matrix; greedy algorithm; penalty function; conflicts, media network.

i Надоели баннеры? Вы всегда можете отключить рекламу.