Научная статья на тему 'Сокращенное перечисление двудольных графов заданного порядка'

Сокращенное перечисление двудольных графов заданного порядка Текст научной статьи по специальности «Математика»

CC BY
73
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДВУДОЛЬНЫЙ ГРАФ / BIPARTITE GRAPH / ИНТЕРВАЛЬНАЯ РАСКРАСКА / INTERVAL COLORING / ПРОГРАММА / PROGRAM

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

Для проверки существования интервальной реберной раскраски связного двудольного графа и ее построения в случае существования сконструирован жадный алгоритм, который осуществляет перебор с возвратами последовательных ребер кусочно-непрерывного пути; последний представляет собой такой упорядоченный набор всех ребер графа, что подграф, порожденный любым подмножеством его ребер с номерами 1, 2, …, является связным. Построен алгоритм, позволяющий для множества S всех двудольных графов заданного порядка H сгенерировать множество S0 двудольных графов существенно меньшей мощности, содержащее для каждого графа G из S граф, изоморфный G. Применением жадного алгоритма к каждому графу из S0 с привлечением компьютерных ресурсов показано, что при малых значениях H все графы из S0 интервально раскрашиваемы. В частности, установлено, что все двудольные графы G = (X, Y, E) порядка 16 при |X|<7 обладают интервальной раскраской; отсюда следует, что достаточно проверить интервальную раскрашиваемость двудольных графов порядка 16 при |X| = 7 и |X| = 8. Программное обеспечение, разработанное авторами на основе упомянутых алгоритмов, обладает также рядом дополнительных свойств, способствующих графическому отображению интервальной раскраски в удобной для восприятия форме.

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

Abridged enumeration of bipartite graphs of preassigned order

Greedy algorithm is designed to test the existence of the edge-interval-coloring of a connected bipartite graph and its construction if it exists. The algorithm performs backtracking consecutive edges of the piecewise-continuous path; the latter represents an ordered set of all edges in the graph, and the subgraph generated by any subset of its edges with the numbers 1, 2,..., is coherent. The algorithm allowing for the set S of all bipartite graphs of given order H to generate a set S0 bipartite graphs of less significant power, containing a graph isomorphic to G for each graph G of S a. The use of the greedy algorithm to each element of S0 involving computer resources has shown, that at small values of H all the graphs S0 are interval-colourable. The research has found, in particular, that all bipartite graphs G = ( X, Y, E ) of 16 order where |X| < 7 have an interval coloring; this is enough to check the interval coloring bipartite graphs of order 16 with |X| = 7 and |X| =8. The software developed by the authors on the basis of the algorithms also provides a number of additional features contributing to a graphic display of interval coloring in a perceptible form.

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

УДК 519.1+004.9

DOI: 10.21779/2542-0321-2017-32-3-74-84

А.М. Магомедов, Т.А. Магомедов

Сокращенное перечисление двудольных графов заданного порядка1

Дагестанский государственный университет; Россия, 367000, г. Махачкала, ул. М. Гаджиева, 43а; magomedtagir1@yandex.ru

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

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

В частности, установлено, что все двудольные графы G = (X, Y, E) порядка 16 при |X|<7 обладают интервальной раскраской; отсюда следует, что достаточно проверить интервальную раскрашиваемость двудольных графов порядка 16 при |X| = 7 и |X| = 8. Программное обеспечение, разработанное авторами на основе упомянутых алгоритмов, обладает также рядом дополнительных свойств, способствующих графическому отображению интервальной раскраски в удобной для восприятия форме.

Ключевые слова: двудольный граф, интервальная раскраска, программа.

1. Задачи теории расписаний и раскраска графов 1.1. Введение

Исследования в области теории расписаний приводят к появлению новых методов и даже целых направлений в теории графов. Например, знаменитая проблема четырех красок возникла в связи с задачами теории расписаний и разбиений [1, с. 110]. В свою очередь, с проблемой четырех красок связана задача о правильной вершинной раскраске графа в три цвета, т. е. задача о существовании такого отображения множества вершин графа в множество цветов {1, 2, 3}, что концевым вершинам каждого ребра сопоставляются разные цвета. Задача раскраски графа в три цвета - полна [1, с. 101], следовательно, не может быть разрешима за полиномиальное время, если верна знаменитая гипотеза «NP ^ Р» (отметим недавнее сообщение Норберта Блюма о доказательстве данной гипотезы [2] и работу [3]).

Некоторые задачи теории расписаний формулируются в терминах реберной раскраски. Раскраску множества ребер Е будем называть правильной реберной раскраской графа G = (V, Е), если в каждой вершине все представленные в ней цвета (цвета всех инцидентных ребер) различны. Следуя работе [4], интервальной t-раскраской графа G = (V, Е) будем называть правильную раскраску ребер G в цвета 1, 2, ... , t, при

1 Работа выполнена при поддержке Дагестанского государственного университета и отдела математики и информатики ДНЦ РАН._

которой в каждый цвет окрашено хотя бы одно ребро, а для каждой вершины рЕУ ребра, инцидентные V, окрашены в последовательные цвета. Всюду в дальнейшем рассматриваются только реберные раскраски. Если при каком-либо t граф имеет интервальную раскраску, будем говорить, что граф интервально раскрашиваем. В [4] доказано, что задача об интервальной раскрашиваемости - полная.

Пусть планируется обработать множество заданий X = {х0, ..., хп_1} в системе специализированных процессоров У = {у0, ..., ут_для каждого задания X; определен набор процессоров, каждый из которых должен выполнить одну операцию по обработке х^; длительность операции равна единице, запрещено одновременное участие объекта (задания, процессора) в двух и более операциях, условия предшествования отсутствуют. Требуется выяснить, существует ли расписание выполнения обработки без простоев объектов.

Рассмотрим двудольный граф С = (X, У, Е), где (х;, Уу)Е Е, если только процессору уу предписано выполнить операцию над заданием X;. Под расписанием длины t будем понимать отображение множества ребер Е в множество {1, 2, ... , *;}, где каждому ребру (х;, У/)е Е сопоставляется с(х^, уу) - номер дискретного момента времени, в течение которого уу выполняет операцию над х^. Если рассматривать с(х^, уу) в качестве цвета ребра (х^, уу), получим эквивалентную задачу интервальной реберной раскраски двудольного графа. Запрет на одновременное участие объекта в двух и более операциях в терминологии теории графов означает, что раскраска должна быть правильной, а отсутствие простоев - что раскраска должна быть и интервальной, т. е. в каждой вершине графа все представленные в ней цвета должны образовать целочисленный интервал (в дальнейшем под интервалом будем понимать целочисленный интервал, интервал {а, а + 1, ... , Ь} будем обозначать [а. .Ь]). В [5] показано, что задача об интервальной раскрашиваемости заданного двудольного графа полная.

1.2. Свойства интервальной раскраски

Естественно ожидать, что двудольные графы с малым порядком интервально раскрашиваемы. Возникает вопрос: каково самое сильное ограничение на количество вершин, при котором задача все еще остается КР-полной? С применением компьютерных ресурсов в [6] доказано следующее утверждение.

Утверждение 1. Все двудольные графы с числом вершин не более 14 интерваль-но раскрашиваемы.

В ряде статей (например, в [7]) указывается, что вопрос интервальной раскрашиваемости двудольных графов порядка 15, 16, 17 и 18 остается открытым.

Следствие. Если двудольный граф С = (X, У, Е) с числом вершин 15 несвязный или обладает висячим ребром, то граф С интервально раскрашиваем.

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

Утверждение 2 [8]. Если для двудольного графа С = (X, У, Е) выполнены неравенства |Х| <3 или |У| <3, то граф С интервально раскрашиваем.

Утверждение 3. Пусть задана интервальная раскраска связного графа и Р = (а0, Ь0, ах, Ъг,..., Ъп_1, ап) - цепь, соединяющая два ребра: Ь0 = (а0, ах) и Ьп-1 = (ап-1, ап) с цветами и соответственно, <1п_г. Тогда для любого т, <т < найдется ребро цвета т, инцидентное некоторой вершине из Р.

Доказательство. Обозначим интервал цветов, представленных в вершине а[, через [т^.М^]; т' = тт^т;, М' = тах^М^ . Так как каждые два соседних интервала последовательности [ш0..М0], [т1..М1\,...,[тп_1..Мп_1] имеют непустое пересечение, то каждый цвет из интервала [т'..М'] представлен в некоторой вершине цепи Р. Поскольку £ [ш0..М0], tn_1 £ [шп_1..Мп_1], то t0, tn_1 £ [т'..М']; следовательно, и т£ [т'..М'], поэтому цвет т представлен в некоторой вершине цепи Р.

Из Утверждения 3 немедленно вытекает следующее утверждение.

Утверждение 4. Приведенное выше определение интервальной раскраски из работы [4] равносильно следующему: «Интервальной раскраской связного графа С называется раскраска ребер С в цвета 1,2, ..., ^ при которой найдутся ребра, окрашенные в цвета 1 и ^ и для каждой вершины V цвета, представленные в V, образуют множество последовательных чисел».

Утверждение 5. [4] Если двудольный граф на к вершинах обладает интервальной -раскраской, то к — 1.

Двудольный граф С = (X, У, Е), где |Х| = п, |У| = т, будем называть (п, т)-графом. Подход, предложенный в следующих разделах, в частности, позволил доказать, что все (п, т)-графы порядка 15 интервально раскрашиваемы.

2. Перечисление нормализованных (п, т)-графов

2.1. Нормализованное представление двудольного графа

Рассмотрим двудольный граф С = ([X, У, Е), где X = {х0, ... , хп_1}, У = (Ус^ .. Ут-г}.

Подмножество вершин У, смежных (не смежных) вершине х^ £Х, обозначим через У( (У^); / = 0, ... , п — 1. Множество индексов вершин подмножества 2^У, образованного последовательными вершинами из множества У, будем называть индексным интервалом множества 2. Введем понятие нормализованного представления графа С = {X, У, Е).

1. Автоморфизмом множества У разместим вершины множества У0 в начальных позициях множества У. Тем самым интервал [0. .п — 1] разбивается на индексные интервалы множеств У0 и У0.

2. Пусть 0< ¿<п — 1 и в результате некоторого автоморфизма а интервал [0..п — 1] разбит на 21 последовательных интервала - индексные интервалы некоторых множеств 20, ... , 221_г, отдельные из которых могут быть пустыми. Выполним для каждого 2^ автоморфизм Р], размещающий все вершины множества 2^ П У{ в начальных позициях множества 2^, а вершины множества 2^ П У{ соответственно в последних позициях множества 2^. Суперпозицию а - р0 снова обозначим через а. Автоморфизм а индуцирует разбиение интервала [0..п — 1] на 21+1 последовательных интервала - индексные интервалы множеств

^оПУ;, 20ПУ1..... 221_1ПУ[, 22Ь_1ПУ[. (1)

Увеличим / на единицу и переобозначим множества (1) через 20,...,221_1 последовательно слева направо.

Пока /< п— 1, повторим выполнение пункта 2, по достижении равенства / = п — 1 перенумеруем вершины множества X по невозрастанию их степеней:

й(х0) >й(х1) >---й(хп_1) (2)

и полученный граф назовем нормализованным графом или - если необходимо подчеркнуть связь с графом С = (X, У, Е) - нормализованным представлением графа С = {X, У, Я).

2.2. Схема перечисления нормализованных (п, т)-графов

В данном разделе приведено развернутое изложение идеи работы [9]. Значение р всюду в дальнейшем выбирается равным 15 или 16. Очевидно, граф С = (X, У, Е) изоморфен своему нормализованному представлению. Поэтому достаточно проверить интервальную раскрашиваемость всех нормализованных (п, ш)-графов. Несмотря на то, что среди них могут встретиться изоморфные графы, компьютерный перебор всех нормализованных (п, ш)-графов потребует при п + т = р «значительно меньше» времени, нежели перебор всех (п, ш)-графов. Существенному сокращению времени перебора способствует и то обстоятельство, что мы ограничимся связными графами без висячих вершин (см. следствие Утверждения 1) и случаем 3 < п (см. Утверждение 2).

Замечание 1. Задача об изоморфизме графов является «открытой» задачей, относительно которой неизвестно, является ли она полной.

При реализации алгоритма в многократных внутренних итерациях очередного вложенного цикла по / = 0, ... , п — 1 используются целочисленные переменные а^у, которые пробегают значения из соответствующих индексных интервалов (на рис. 1 -наименьшие по длине интервалы, охватывающие а^у), формируются суммы = аю + аи + "• +а12(-1. Если неравенство (2) выполнено, то й(х{) вершины множества У с соответствующими индексными интервалами длины а^ выбираются в качестве вершин, смежных вершине х^ (/ = 0, ... , п — 1).

Схема перечисления всех нормализованных (п, ш)-графов представлена на рис. 1 (ввиду очевидной проблемы отображения деталей рисунок приведен для случая р = 15, распространение на случай р = 16 тривиально). Продемонстрируем на примерах использование этой схемы.

Пример 1. Генерация списков смежности для вершины х3.

й{хг) = а30 + а31 + а32 + а33+а34 + а35 + а36 + а37. В список вершин, смежных х3, выбираются по а3у вершины множества У, индексы которых суть а3у значений из начала интервала , ] = 0, ..., 7, где:

г30 = [0. .а20 -1], 231 = [а20..а10 -1], !зг = [а10..а10 + а21 -1], !33 = [а10 + + а21..а0 -1], г34 = [а0..а0 + а22 -1],

^35 = [а^ а22..а0 +ап -1], г36 = [а0 + ап..а0 + ап +а23 -1], 231 = [а0 + + аг1 +а23,...,т — 1].

Рис. 1. Схема генерации всех нормализованных (п, т)-графов, п< 7; нижняя часть рисунка является непосредственным продолжением верхней части. При п< 7 рисунок корректирует-

Пример 2. Генерация списков смежности для вершины х4. d(x4) = а40 + а41 + ^42 "I" 04,3+04,4 "I" ££45 ""1~04б ^Q.47+0.43 ""bfl^g + а410 + а4,и+а4,12 +а4,13 +а4,14 + а4,5. В список смежных х4 вершин будем выбирать по a4j вершин множества Y с индексами из начала интервала Z4y, j = 0, ..., 15, где: Z40 = [0.. а30 -1], Z41 = [а30..а2о _1L Z42 = [а20..а20 +a3i — 1], Z43 = [а20 + a31..a10 — 1] Z44 = [a10..a10 + a32 _1L

^45 = [aio + a32..a10 + a21 — 1],

Z46 = [a10 + a21..a10 + a2i +азз — 1],

Z47 = [a10 + a21 + a33..a0 — 1.

Z48 = [a0..a0 + a34 — 1],

Z49 = [a0 + a34..a0 + a22 — 1],

^10 = К + a22..a0 + a22 +a35 -1],

^4,11 = [a0 +a22 +a35"a0 +all — 1], ^4,12 = К + all-.fl0 + all + a36 -1],

^4,13 = К + + a36..a0 + a1± + a23 -1], Z414 = [a0 + alt + a23..a0 + a11 + a23 + a37 -1], ^4,15 = К + + a23 + a37..rn - 1].

Справедливость следующего утверждения очевидна.

Утверждение 6. Пусть S - множество всех связных (п, ш)-графов без висячих вершин, 50 - множество всех нормализованных (п, ш)-графов. Для каждого графа G из S в множестве 50 найдется граф, изоморфный графу G.

3. Жадный алгоритм интервальной раскраски

3.1. Кусочно-непрерывный путь в связном графе

В разделе 3.2 изложена модификация жадного алгоритма проверки интервальной раскрашиваемости, приведенного в [10]. В формулировке алгоритма используется понятие кусочно-непрерывного пути в графе G. Приведем логическую (с результатом True или False) процедуру генерации кусочно-непрерывного пути.

Пусть в графе G выбрана произвольная непродолжимая цепь Р и логической переменной Result присвоено значение True.

Пока не все ребра графа G включены в Р, выполним следующие три действия: 1) если среди вершин цепи Р найдется вершина с инцидентным ребром, не включенным в Р, то последнюю из таких вершин обозначим ак и перейдем к второму действию, в противном случае присвоим переменной Result значение False и «досрочно» завершим цикл; 2) построим непродолжимую цепь Ръ начинающуюся с вершины ак и содержащую лишь ребра, не включенные в Р; 3) результат конкатенации Р и обозначим снова через Р.

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

3.2. Жадный алгоритм интервальной раскраски

Напомним, что требуется проверить, существует ли интервальная раскраска заданного связного (п, ш)-графа G = (X, Y, Е) не более чем t цветами (и выполнить раскраску в случае существования).

Количество вершин и ребер графа G обозначим через Н и h соответственно (Н = п + т). В соответствии с Утверждением 5 положим t равным Я — 1 (это единственный пункт алгоритма, учитывающий двудольную природу графа G). Использованные далее обозначения, присущие языкам программирования, понятны без дополнительных объяснений. Например, i++ (i—) означает увеличение (уменьшение) значения переменной i на единицу, скобки { } используются для обозначения блока (группового оператора).

Построим кусочно-непрерывный путь Р = {е0, ..., еfl_1] и будем последовательно окрашивать ориентированные ребра ej = (^¿, Wj) цветами из целочисленного интервала [1. .t] так, что в любой момент времени в каждой вершине v представленные в v цвета образуют некоторый список Lv, составленный из последовательных целых чисел. Алгоритм раскраски, обладающий таким свойством, будем называть жадным алгоритмом. Массив текущих списков цветов, представленных в вершинах множества V, будем обозначать через L, L = {LVq, ... , LVh i}. Приграничным цветом для пустого интервала назовем любой цвет из интервала [1..t], для непустого интервала [а..Ь] нижним приграничным цветом назовем цвет а — 1, если 1<а — 1<t; верхним приграничным цветом - цвет Ъ + 1, если 1<Ь + 1<(;;в случае существования нижний и верхний приграничные цвета для списка LVi будем обозначать через low(vi) и high(v¿) соответственно.

Рассмотрим ситуацию, когда ребра е0, ... , ei_1 уже окрашены и требуется окрасить ребро е^, t> 0. Список цветов в начальной вершине Vi ориентированного ребра

в[ = (Vi, Wj) не пуст, т. к. содержит цвет ребра ei_1. Очевидно, что окраска ребра et без изменений цветов ранее окрашенных i ребер возможна только в следующих двух случаях: 1) low(v{) существует и является приграничным цветом для Wj; 2) high(vi) существует и является приграничным цветом для Wj. Соответственно допустимы две попытки окрасить ребро без изменений цветов ранее окрашенных ребер; номера 1 или 2 предпринятых попыток будем сохранять в ячейке q^ (удобно использовать и третье значение q^ =0 в качестве признака, что ни одна из двух попыток пока не предпринята). Заметим, что элементы массива q индексируются, начиная с единицы, в отличие от всех других массивов, используемых в нашем алгоритме.

Для записи и хранения цвета ребра будем использовать ячейку Cj. В качестве признака успешного (с построением интервальной раскраски) или неудачного (без построения интервальной раскраски) завершения жадного алгоритма используется логическая переменная Success.

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

1. Инициализация

Success: = false; всем Vi (соответственно Wj) присвоить номера начальных (конечных) вершин ориентированных ребер из кусочно-непрерывного пути Р, i = 0, ... , h — 1; для всех вершин выбрать пустые списки цветов: LVq : = 0; ...; LVhi : = 0; всем элементам массивов q и С присвоить нулевые значения: qt: = 0; ...; qh_ 1: =0; С0: = 0;.; Ch_1: = 0; начальное ребро е0 окрасить в цвет 1: С0: = 1; LVq: = {1}; LWq = {1}; номер очередного окрашиваемого ребра выбрать равным единице: i: = 1.

2. Прямой шаг

FWRD: данный пункт выполняется сразу после инициализации или же после возвратного шага и заключается в окрашивании (более точно, в попытке окрашивания) ребра, номер которого записан в ячейке i.

2.1. Рассмотрим сначала случай i = 0: если С0 <t, то {С0++; добавить С0 в списки Lv. и Lw.; i++; перейти к метке FWRD} иначе (Success: = false; завершить алгоритм}.

Заметим, что при первом выполнении прямого шага сразу после инициализации значение i равно единице, однако переход к прямому шагу после возвратных шагов может быть осуществлен и при i = 0.

2.2. Рассмотрим случай i> 0.

Увеличить на единицу текущий номер попытки раскрасить ребро еj: qi ++.

В зависимости от равенств: q^ = 1 или q^ = 2 перейти к пунктам 2.2.1 или 2.2.2 соответственно.

2.2.1. - Данный пункт выполняется при q^ = 1.

Если low(v>i) для начальной вершины Vi рассматриваемого ребра существует и

является приграничным цветом для конечной вершины Wj этого ребра, то

(

Cj: = low(Vi); добавить low(v¿) в списки Lv. и Lw.; если t< h— 1, то {/++; перейти к метке FWRD}, иначе (Success: = true; завершить алгоритм}

},

иначе (qi: = 2; перейти к следующему пункту 2.2.2}.

2.2.2. - Данный пункт выполняется при q^ = 2.

Если high(vi) для начальной вершины Vj рассматриваемого ребра е£ существует

и является приграничным цветом для конечной вершины Wj этого ребра, то

{

Cj: = high(vi); добавить high(v>i) в списки Lv. и Lw.; если i< h— 1, то {/++; перейти к метке FWRD},

иначе {Success: = true; завершить алгоритм}

}

иначе перейти к метке BACK.

2.3. Обратный шаг

BACK: данный пункт выполняется, если в прямом шаге не удалось окрасить ребро et, 0<t, qt = 2.

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

Пока (t> 0) и (qt = 2)

{

qi: = 0; i—; удалить Cj из списков Lv. и Lw.;

если i = 0, то перейти к метке FWRD;

если qi <2, то перейти к метке FWRD;

}

Конец алгоритма.

Замечание 2. Жадный алгоритм «привязан» к выбранному кусочно-непрерывному пути и не выполняет полный перебор попыток интервальной раскраски.

4. Результаты вычислений 4.1. Вычислительная схема

В авторском программном обеспечении, разработанном на языке C#, на основе алгоритмов, изложенных в разделах 2 и 3, принята следующая схема.

Для каждого п = 4, 5, 6, 7 при p = 15 (и для каждого п = 4, 5, 6, 7, 8 при p = 16) генерируются все нормализованные (п, р — п)-графы, при этом непосредственно после генерации очередного графа G и увеличения счетчика N выполняется следующая процедура: если в графе G существует кусочно-непрерывный путь (связность графа G) и степени всех вершин графа G больше единицы (отсутствие висячих ребер), то с помощью жадного алгоритма проверяется существование интервальной раскраски графа G.

Как видно из схемы, в N подсчитывается не количество нормализованных (п,р — п) -графов, а число сгенерированных (п, р — п)-графов еще до выполнения проверки связности (совмещенной с проверкой существования кусочно-непрерывного пути) и наличия висячих ребер. Такие графы будем называть преднормализованными.

Во всех случаях результаты проверки интервальной раскрашиваемости нормализованных (n, 15 — n)-графов оказались положительными. С учетом Утверждения 6 это означает, что все двудольные графы порядка 15 интервально раскрашиваемы; при р = 16 интервальная раскрашиваемость установлена для всех (n, р — п)-графов с п< 7. Таким образом, для двудольных графов порядка 16 вопрос об интервальной рас-крашиваемости остается невыясненным лишь для (7, 9)-графов и (8, 8)-графов.

Таблица 1. Информация о длительности вычислений для преднормализованных

(п, 15 — п)-графов порядка 15

п d(xe) N Время в сек.

4 366956 3,4

5 35135708 441,2

6 984643930 29275,4

7 2 1368967576 47399,0

7 3 1175207229 24086,1

7 4 341971501 15350,6

7 5 23364103 1547,1

7 6 274842 10,7

7 7 685 0,035

7 8 1 0,003

4.2. Информация о длительности вычислений

Понятно, что в режиме вытесняющей мультизадачности длительность вычислений носит условный характер и стремление к чрезмерной точности вычислений здесь неуместно. Тем не менее мы нашли допустимым записать в последней колонке таблицы 1 длительности вычислений, измеренные в одном из компьютерных экспериментов (временнъге параметры в других экспериментах несколько отличались от приведенных в таблице). Вычисления для (п, 15 — п)-графов проводились отдельно для п = 4, 5, 6 и 7; при этом для п = 7 рассматривались семь случаев в зависимости от степени вершины х6 (см. второй столбец таблицы). Значение N в предпоследней колонке таблицы - количество преднормализованных графов; количество нормализованных графов (для которых только и запускается жадный алгоритм), соответствующих тому или иному конкретному случаю, существенно меньше.

Заключение

Предложенный в разделах 2 и 3 подход не только позволяет доказать, что все (п, 15 — п)-графы интервально раскрашиваемы, но и открывает перспективы для проверки интервальной раскрашиваемости двудольных графов большего порядка. Например, вычислительные эксперименты для (п, 16 — п)-графов показали, что в случаях п = 4, 5 и 6 все преднормализованные (п, 16 — п)-графы интервально раскрашиваемы, при этом значения N и длительности вычислений равны соответственно: при п = 4: 767910 графов, 7,3 сек; при п = 5: 126091168 графов, 1993,0 сек; при п = 6: 6536939854 графов, 95178,2 сек.

Характеристики использованного авторами компьютерного обеспечения: Surface, Windows 10 Pro, Processor: Intel(R) Core(TM) i5-4300U CPU © 1.90GHz 2.50 GHz, RAM: 8.00 GB, System type: 64-bit Operating System, x64-based.

с(хо<Уо) = 6; С(У0'Х2) = 5

с(х2,у1) = 4; с(У1'хо) = 5

с(х0,у2) = 4; с(у2,х2) = 3

с(х2,у4) = 6; с(у4,х1) = 5

c(xi,y5) = 4; с(У5'Хз) = 5

с(хз<Уо) = 4; c(x3<yi) = 6

с(х3,у4) = 7; с(у4,х4) = 4

С(Х4,У5) = 3; с(х4,Уб) = 2

с(Уб'х1) = 3; с(х1,у7) = 6

с(у7,х5) = 7; с(х5<У4) = 8

с(х4,у8) = 1; с(У2'Хб) = 5

с(хб,Уз) = 4; с(Уз'хо) = 3

Рис. 2. Пример вывода интервальной раскраски преднормализованного (7,9)-графа

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

Среди них различные формы представления графов и кусочно-непрерывных путей, графический и текстовый вывод интервальной раскраски выбранного пользователем графа, в частности преднормализованного. Пример такого вывода приведен на рис. 2.

Литература

1. Гэрри M., Джонсон Д. Вычислительные машины и труднорешаемые задачи: пер. с анг. - М.: Мир, 1982. - 416 с.

2. Norbert Blum. A Solution of the P versus NP Problem // Institut für Informatik, Universität Bonn / arXiv:1708.03486vl [cs.CC] 11 Aug. 2017.

3. РазборовА.А. Алгебраическая сложность. - М.: МЦНМО, 2016. - 32 с.

4. Асратян А.С., Камалян Р.Р. Интервальные раскраски ребер мультиграфа // Прикладная математика, вып. 5. - Ереван: Изд-во Ереванского ун-та, 1987. - С. 25-34.

5. Севастьянов С.В. Об интервальной раскрашиваемости ребер двудольного графа // Методы дискретного анализа. - 1990. - Т. 50. - C. 61-72.

6. Giaro K. Compact task scheduling on dedicated processors with no waiting period (in Polish) // PhD thesis, Technical University of Gdansk, IETI Faculty. - Gdansk, 1999.

7. Petrosyan P.A., Khachatrian H.H. Interval non-edge-colorable bipartite graphs and multigraphs // Journal of Graph Theory 76. - 2014. - Issue 3. - Р. 200-216.

8. Giaro K., Kubale M. andMalafiejski M. On the deficiency of bipartite graphs // Discrete Appl. Math. - 1999. - 94. - P. 193-203.

9. Магомедов А.М. Элиминация перебора двудольных графов на 15 вершинах // ДЭМИ, Дагестанский научный центр РАН. - 2016. - № 5. - С. 20-24.

10. Магомедов А.М. Цепочечные структуры в задачах о расписаниях // Прикладная дискретная математика. - 2016. - № 3 (33). - С. 67-77.

Поступила в редакцию 28 августа 2017 г.

UDC 519.1+004.9

DOI: 10.21779/2542-0321-2017-32-3-74-84

Abridged enumeration of bipartite graphs of preassigned order

A.M. Magomedov, T.A. Magomedov

Dagestan State University; Russia, 367000, Makhachkala, M. Gadzhiev st., 43a; magomed-tagir1@yandex.ru

Greedy algorithm is designed to test the existence of the edge-interval-coloring of a connected bipartite graph and its construction if it exists. The algorithm performs backtracking consecutive edges of the piecewise-continuous path; the latter represents an ordered set of all edges in the graph, and the subgraph generated by any subset of its edges with the numbers 1, 2, ..., is coherent.

The algorithm allowing for the set S of all bipartite graphs of given order H to generate a set S0 bipartite graphs of less significant power, containing a graph isomorphic to G for each graph G of S a. The use of the greedy algorithm to each element of S0 involving computer resources has shown, that at small values of H all the graphs S0 are interval-colourable.

The research has found, in particular, that all bipartite graphs G = (X, Y, E) of 16 order where |X| < 7 have an interval coloring; this is enough to check the interval coloring bipartite graphs of order 16 with |X| = 7 and |X| = 8. The software developed by the authors on the basis of the algorithms also provides a number of additional features contributing to a graphic display of interval coloring in a perceptible form.

Keywords: bipartite graph, interval coloring, program.

Received 28 August, 2017

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