Научная статья на тему 'Поиск пар ортогональных диагональных латинских квадратов порядка 10 в проекте добровольных распределенных вычислений SAT@home'

Поиск пар ортогональных диагональных латинских квадратов порядка 10 в проекте добровольных распределенных вычислений SAT@home Текст научной статьи по специальности «Математика»

CC BY
305
71
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЛАТИНСКИЕ КВАДРАТЫ / ДОБРОВОЛЬНЫЕ РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ / ЗАДАЧА О БУЛЕВОЙ ВЫПОЛНИМОСТИ / ПРОЕКТ SAT@HOME / SAT@HOME PROJECT / LATIN SQUARES / VOLUNTEER COMPUTING / BOOLEAN SATISFIABILITY PROBLEM

Аннотация научной статьи по математике, автор научной работы — Заикин Олег Сергеевич, Кочемазов Степан Евгеньевич

В статье рассматривается подход к решению задач поиска систем ортогональных латинских квадратов, основанный на сведении этих задач к проблеме булевой выполнимости. Была построена соответствующая кодировка для задачи поиска пар ортогональных диагональных латинских квадратов порядка 10. С помощью построенной кодировки в проекте добровольных распределенных вычислений SAT@home были найдены 17 новых пар. На основе 17 найденных пар, а также 3 ранее известных пар, были построены псевдотройки диагональных латинских квадратов порядка 10. Построение псевдотроек было осуществлено на вычислительном кластере, для этого была сделана параллельная реализация алгоритма генерации диагональных латинских квадратов порядка 10.

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

Похожие темы научных работ по математике , автор научной работы — Заикин Олег Сергеевич, Кочемазов Степан Евгеньевич

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

THE SEARCH FOR PAIRS OF ORTHOGONAL DIAGONAL LATIN SQUARES OF ORDER 10 IN THE VOLUNTEER COMPUTING PROJECT SAT@HOME

In this paper we consider the approach to search for systems of orthogonal Latin Squares, that is based on reducing the corresponding problems to Boolean Satisfiability problem. We constructed the SAT encoding for finding orthogonal diagonal Latin Squares of order 10. Using this encoding and the resources provided by the volunteer computing project SAT@home we managed to find 17 previously unknown pairs. Based on these 17 pairs and on 3 previously published pairs we constructed the pseudotriples of diagonal Latin Squares of order 10. To construct pseudotriples we employed the computing cluster. The last step required us to make parallel implementation of the algorithm for generating diagonal Latin Squares of order 10.

Текст научной работы на тему «Поиск пар ортогональных диагональных латинских квадратов порядка 10 в проекте добровольных распределенных вычислений SAT@home»

Дискретная математика и математическая кибернетика УДК 519.1, 004.832.25 DOI: 10.14529/cmsel50308

ПОИСК ПАР ОРТОГОНАЛЬНЫХ ДИАГОНАЛЬНЫХ ЛАТИНСКИХ КВАДРАТОВ ПОРЯДКА 10 В ПРОЕКТЕ ДОБРОВОЛЬНЫХ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ SAT@HOME1

О. С. Заикин, С.Е. Кочемазов

В статье рассматривается подход к решению задач поиска систем ортогональных латинских квадратов, основанный на сведении этих задач к проблеме булевой выполнимости. Была построена соответствующая кодировка для задачи поиска пар ортогональных диагональных латинских квадратов порядка 10. С помощью построенной кодировки в проекте добровольных распределенных вычислений SAT@home были найдены 17 новых пар. На основе 17 найденных пар, а также 3 ранее известных пар, были построены псевдотройки диагональных латинских квадратов порядка 10. Построение псевдотроек было осуществлено на вычислительном кластере, для этого была сделана параллельная реализация алгоритма генерации диагональных латинских квадратов порядка 10.

Ключевые слова: латинские квадраты, добровольные распределенные вычисления, задача о булевой выполнимости, проект SAT@home.

Введение

Комбинаторные задачи, связанные с латинскими квадратами, интересуют математиков со времен Леонарда Эйлера (см., например, обзорную статью [1]). Латинский квадрат порядка п — это квадратная таблица размера пх п, заполненная элементами некоторого множества М, \М\ = п таким образом, что в каждой строке и в каждом столбце таблицы каждый элемент из М встречается в точности один раз. Изначально Леонард Эйлер в качестве множества М использовал множество букв латинского алфавита, именно поэтому такие квадраты были названы латинскими. В дальнейшем в настоящей статье в качестве М будет использовано множество {0, ...,п — 1}.

Пара латинских квадратов одинакового порядка называется ортогональной, если различны все упорядоченные пары чисел (а, Ь), где а — число в некоторой ячейке первого латинского квадрата, a b — число в ячейке с тем же номером второго латинского квадрата. Если имеется набор из т различных латинских квадратов, любая пара которых ортогональна, то говорят о системе из т попарно ортогональных латинских квадратов. Одной из самых известных нерешенных задач, касающейся латинских квадратов, является следующая: определить, существует ли система из трех попарно ортогональных латинских квадратов порядка 10 [2].

Задачи поиска комбинаторных структур можно решать различными подходами. В настоящей статье развивается SAT-подход к решению таких задач. SAT-подход состоит в сведении исходной задачи к проблеме булевой выполнимости (SAT [3]). Привлекательность SAT-подхода обусловлена тем, что к проблеме булевой выполнимости можно эффективно свести обширный класс задач криптографии, биоинформатики и поиска

1 Статья рекомендована к публикации программным комитетом Международной научной конференции «Параллельные вычислительные технологии - 2015»

комбинаторных структур [4]. Все известные алгоритмы решения SAT-задач экспоненциальны в худшем случае, т.к. SAT является NP-трудной задачей. Несмотря на это, современные SAT-решатели (в том числе параллельные и распределенные) успешно справляются с решением целого ряда задач из упомянутых выше областей. Большинство из современных быстрых SAT-решателей основано на алгоритме Conflict-Driven Clause Learning (CDCL), базовые принципы которого рассмотрены в обзорной статье [5].

Для использования SAT-подхода необходимо перейти от исходной постановки к бу-левому уравнению вида «КНФ=1» (КНФ — конъюнктивная нормальная форма). Такой переход называется пропозициональным кодированием исходной проблемы. Попытки применить SAT-подход к задаче поиска систем ортогональных латинских квадратов регулярно предпринимаются с середины 90-х годов XX века. Много полезной информации о применении SAT-решателей к поиску различных систем ортогональных латинских квадратов содержится в обзорной статье [6]. Кроме всего прочего, автор статьи [6] пробовал решить упомянутую выше задачу поиска тройки попарно ортогональных квадратов порядка 10 с использованием SAT-решателя PSATO в течение более 10 лет в грид-системе из 40 персональных компьютеров (окончательный ответ так и не был получен).

Кратко опишем структуру статьи. В первом разделе будет представлена техника пропозиционального кодирования задач поиска систем ортогональных латинских квадратов, а также результат применения этой техники к построению кодировки задачи поиска пар ортогональных диагональных латинских квадратов порядка 10. Во втором разделе будет описан эксперимент по поиску пар ортогональных диагональных латинских квадратов порядка 10 в проекте добровольных распределенных вычислений SAT@home. В третьем разделе приведены результаты использования вычислительного кластера для поиска псевдотроек ортогональных диагональных латинских квадратов порядка 10. В заключении мы подводим краткие итоги проведенного исследования, а также описываем наши планы на будущее.

1. Пропозициональное кодирование задач поиска систем ортогональных латинских квадратов

В силу того, что система попарно ортогональных латинских квадратов как комбинаторная структура эквивалентна ряду других комбинаторных структур, задачу поиска такой системы можно переформулировать через эквивалентные объекты. Это позволяет использовать для решения задачи различные пропозициональные кодировки. Так, например, можно кодировать задачу поиска пары ортогональных латинских квадратов при помощи ортогональных массивов или записывать ее через трансверсали. Вообще говоря, даже если использовать пропозициональную кодировку, основанную на латинских квадратах, возможны различные варианты формулирования необходимых условий. В описанных далее вычислительных экспериментах мы использовали так называемую «наивную» кодировку задачи поиска набора ортогональных латинских квадратов, аналогичную приведенной, например, в [6, 7].

Приведем краткое описание данной кодировки. Рассматриваем две матрицы А = и В = ||b(j||, i,j = 1, ...,п. Содержимое каждой ячейки любой из матриц коди-

руется п булевыми переменными. Для кодирования всей матрицы, таким образом, требуется п3 булевых переменных. Будем использовать запись x(i,j,k) и y(i,j,k) для обозначения переменных, кодирующих элементы матриц А и В, соответственно. При этом

переменная х(£,у, к) принимает значение «истина» тогда и только тогда, когда в ячейке, находящейся в строке с номером I и столбце с номером у, стоит число к. Чтобы матрицы А и В представляли латинские квадраты, необходимо наложить на соответствующие им переменные ряд условий. Данные условия рассмотрены далее на примере матрицы А. Они естественным образом записываются в виде конъюнкций дизъюнктов. В каждой ячейке матрицы стоит ровно одно целое число от 0 до п — 1: Л?=1Л7=1У£=1 хО,/ ,к);

л?=1л7=1л£1Х^+1 (-1*0,уд) V -1*ау ,г)).

Каждое число отО до п —1 появляется в каждой строке ровно один раз: л7=1Л£=1<=1хау'Д);

А^Л^Л^Л^^ (-1*0,УД) V -,Х(Г,УД)).

Каждое число от 0 до п —1 появляется в каждом столбце ровно один раз: Л?=1Л£=1У7=1 х0,у ,к)-

А^Л^Л^Х^! (-1*0,УД) V гД)).

Аналогичным образом записываются условия, кодирующие матрицу В. После этого необходимо закодировать условие ортогональности. Например, это можно сделать следующим образом:

Л?=1Л7=1Л£=1Л£=1Л£=1Л?=1 (-1*0,УД) V -1У0,УД) V -1х(р, д, г) V ^у(р,д,г)).

В результате применения всех описанных выше условий для задачи поиска пар ортогональных латинских квадратов порядка 10 мы получили КНФ, состоящую из 432600 дизъюнктов над множеством из 2000 булевых переменных. Соответствующий файл с КНФ в формате Б1МАС8 занимает 9,5 мегабайт.

Рассмотрим задачу поиска пар ортогональных диагональных латинских квадратов. Латинский квадрат является диагональным, если для него справедливо следующее условие: главная и побочная диагонали содержат все числа от 0 до п— 1, где п — это порядок латинского квадрата. Таким образом, условие уникальности элементов накладывается не только на строки и столбцы квадрата, но и на главную и побочную диагонали. Известно, что пары ортогональных диагональных латинских квадратов порядка 10 существуют — в 1992 году была опубликована статья [8], в которой были представлены три такие пары. В открытых источниках нам не удалось найти другие пары, кроме этих трех. Поэтому, на наш взгляд, интересным представляется поиск новых пар ортогональных диагональных латинских квадратов порядка 10. Решению именно этой задачи, в основном, посвящена настоящая статья. Для получения пропозициональной кодировки задачи поиска систем таких квадратов необходимо добавить в описанную выше кодировку дизъюнкты, соответствующие условию диагональности. Полученная в результате КНФ состоит из 2000 переменных и 434440 дизъюнктов, файл с КНФ в формате Б1МАС8 занимает 10 мегабайт.

2. Поиск систем ортогональных латинских квадратов в проекте добровольных распределенных вычислений 8АТ@Ьоте

Задачи поиска систем ортогональных латинских квадратов при помощи ЭАТ-подхода хорошо подходят для организации масштабных экспериментов в распределенных вычислительных средах, в частности, в проектах добровольных распределенных

вычислений. Это объясняется тем, что SAT-задачи сами по себе допускают естественные стратегии крупноблочного распараллеливания. Авторами статьи в сотрудничестве с коллегами из ИППИ РАН был разработан проект SAT@home [9-11], функционирующий с сентября 2011. Данный проект предназначен для решения трудных экземпляров SAT-задач из различных предметных областей. При создании проекта была использована открытая платформа BOINC [12, 13].

По состоянию на 10 марта 2015 года к проекту SAT@home подключено 3214 активно работающих ПК участников со всего мира, обеспечивающих среднюю производительность около 10 TFLOPs. Отметим, что отечественных проектов добровольных распределенных вычислений относительно немного: OPTIMA@home [9], Gerasim@home [14] и NetMax@home [15]. При этом у проекта SAT@home самая высокая производительность.

Схема решения SAT-задач с помощью проекта SAT@home представлена на рис. 1. Предварительно осуществляется поиск «хорошей» декомпозиции SAT-задачи с помощью метода Монте-Карло на вычислительном кластере [10, 16]. Необходимость использования кластера исходит из того, что на данном этапе используются интенсивные межпроцессорные обмены.

Рис. 1. Схема решения ЭАТ-задач с помощью проекта 8АТ@Ьоте

В мае 2012 в проекте ЭАТ@Ьоте был успешно завершен полугодовой эксперимент, направленный на решение 10 задач криптоанализа генератора ключевого потока А5/1 [10], которые не решаются с помощью известных гатЬо"№-таблиц [17]. В каждой задаче нужно было найти неизвестное начальное заполнение регистров генератора.

На следующем этапе в 8АТ@Ьоте был запущен поиск пар ортогональных диагональных латинских квадратов порядка 10 с использованием пропозициональной кодировки, описанной в предыдущем разделе. В качестве ядра клиентского приложения (которое запускается на ПК участников) использовался СБСЬ-решатель МлшЭа! 2.2 [18], в который были внесены небольшие изменения, направленные на уменьшение объема используемой оперативной памяти. Первая строка первого квадрата была изначально зафиксирована и равнялась «0 1 2 3 4 5 6 7 8 9». Это было сделано потому, что любую пару ортогональных латинских квадратов путем перестановок, не нарушающих условия ортогональности и диагональности, можно преобразовать к паре, в которой первая строка первого квадрата будет именно такой.

Выбор способа декомпозиции ЭАТ-задач — нетривиальная проблема, в решении которой нужно использовать свойства исходных постановок [10, 16]. Декомпозиция задачи поиска пар ортогональных диагональных латинских квадратов была осуществлена следующим образом. Варьировались значения первых 8 ячеек второй и третьей строки первого квадрата. Всего оказалось около 230 миллиардов возможных вариантов значений этих 16 ячеек, не нарушающих условие, что квадрат является диагональным латинским квадратом. Было решено сформировать для решения в 8АТ@Ьоте первые 20 миллионов подзадач из 230 миллиардов (т.е. всего около 0,0087 % описанного выше пространства

поиска). В итоге каждая подзадача формировалась в результате подстановки в первый квадрат 8 первых ячеек второй и третьей строки (при фиксированной первой строке). Значения остальных 74 ячеек первого квадрата и всех 100 ячеек второго квадрата были неизвестны — их должен был найти SAT-решатель. На каждую подзадачу был установлен лимит в 2600 рестартов решателя MiniSat 2.2, что примерно соответствует 5 минутам работы одного ядра процессора Intel Core 2 Duo Е8400. При достижении лимита вычисления прерывались. Каждое задание, которое получал участник SAT@home, состояло из 20 таких подзадач. Формирование именно такого количества подзадач в задании было продиктовано необходимостью обеспечить в задании около 2 часов работы на одном ядре процессора (такая продолжительность выполнения заданий хорошо подходит для BOINC-проектов). На обработку 20 миллионов подзадач (в виде 1 миллиона заданий), сгенерированных для данного эксперимента, потребовалось около 9 месяцев работы проекта (с сентября 2012 по май 2013). Вычисления практически для всех подзадач были прерваны при достижении лимита, но решение 17 подзадач закончилось успешно — в результате были найдены 17 новых пар ортогональных диагональных латинских квадратов порядка 10 (мы сравнивали их с тремя ранее известными парами квадратов из статьи [8]). Все найденные пары размещены на сайте проекта SAT@home [11] в разделе «Найденные решения». На рис. 2 приведена первая пара ортогональных диагональных латинских квадратов порядка 10, найденная в проекте SAT@home.

0 1 2 3 4 5 6 7 8 9] гО 1 2 3 4 5 6 7 8 9

1 2 0 4 3 7 9 8 5 6 7 5 1 9 2 8 0 4 6 3

7 3 5 9 0 4 8 6 2 1 1 0 3 4 6 7 5 2 9 8

3 5 6 8 9 0 4 1 7 2 9 8 4 7 5 2 1 0 3 6

4 9 7 2 6 8 1 5 0 3 6 7 9 0 8 3 2 1 5 4

5 8 4 6 7 1 3 2 9 0 4 6 5 1 0 9 8 3 2 7

8 4 9 1 2 3 7 0 6 5 2 3 8 5 1 6 4 9 7 0

6 7 3 0 1 2 5 9 4 8 5 2 7 8 3 4 9 6 0 1

9 0 1 5 8 6 2 4 3 7 3 4 6 2 9 0 7 8 1 5

2 6 8 7 5 9 0 3 1 4-1 L8 9 0 6 7 1 3 5 4 2

Рис. 2. Первая пара ортогональных диагональных латинских квадратов порядка 10,

найденная в проекте ЭАТ^Ьоте

Как уже было отмечено в предыдущем разделе, есть много различных вариантов формирования пропозициональной кодировки задачи поиска пар ортогональных диагональных латинских квадратов. При этом встает вопрос сравнения различных кодировок по эффективности. Как показала практика, количество переменных и дизъюнктов в КНФ не всегда адекватно указывает на скорость ее обработки с помощью ЭАТ-решателей. Мы предполагаем в ближайшем будущем использовать найденные пары ортогональных диагональных латинских квадратов (а также ранее известные пары) для оценки эффективности возможных кодировок рассмотренной задачи. Сравнение можно проводить по набору КНФ (каждая КНФ соответствует известной паре ортогональных диагональных латинских квадратов порядка 10), в каждой из которых подставлено правильное означивание нескольких строк первого квадрата из соответствующей пары. Также с помощью такого тестового набора задач можно выбрать наиболее подходящие для этой предметной области ЭАТ-решатели.

3. Поиск псевдотроек ортогональных диагональных латинских квадратов на вычислительном кластере

Большой научный интерес представляет знаменитая задача о существовании тройки попарно ортогональных латинских квадратов порядка 10. Однако, данная задача крайне трудна. Поэтому активно исследуется задача нахождения таких троек латинских квадратов, что условие ортогональности выполняется не для всех пар квадратов (например, только для одной или для двух пар из трех возможных). Далее подобные системы латинских квадратов называются псевдотройками. Главная характеристика псевдотроек, которая будет рассматриваться далее — это количество упорядоченных пар элементов, по которым выполняется условие ортогональности одновременно для всех трех пар квадратов {А и В, А и С, В и С), составляющих псевдотройку. На данный момент рекордный по этому показателю набор — это опубликованная в статье [19] псевдотройка с характеристикой 91, при этом для двух пар квадратов из трех условие ортогональности выполняется полностью. На рис. 3 представлена данная псевдотройка, в ней квадрат А ортогонален квадратам В и С, при этом квадраты В и С ортогональны только по 91 упорядоченной паре элементов из 100 возможных.

0 8 9 7 5 6 4 2 3 1] гО 7 8 9 1 2 3 4 5 6] гО 7 8 9 1 2 3 4 5 6

9 1 4 6 2 7 3 8 0 5 9 0 6 1 8 3 2 5 4 7 6 4 2 8 9 5 1 3 7 0

7 4 2 5 1 3 8 6 9 0 7 2 0 4 3 9 1 8 6 5 4 9 5 3 2 7 6 0 1 8

8 6 5 3 9 2 1 0 4 7 8 5 3 0 2 1 7 6 9 4 5 1 7 6 4 3 8 9 0 2

6 2 1 8 4 0 9 5 7 3 В = 6 9 5 3 0 7 4 2 1 8 С = 3 2 9 0 7 1 5 6 8 4

4 9 3 2 7 5 0 1 6 8 4 1 7 6 5 0 8 9 3 2 1 0 3 7 6 8 2 5 4 9

5 3 7 1 0 8 6 9 2 4 5 4 2 8 9 6 0 3 7 1 2 8 0 1 3 4 9 7 6 5

3 5 0 9 8 4 2 7 1 6 3 6 1 7 4 8 5 0 2 9 9 5 4 2 8 6 0 1 3 7

1 7 6 0 3 9 5 4 8 2 1 8 4 2 6 5 9 7 0 3 7 3 6 5 0 9 4 8 2 1

2 0 8 4 6 1 7 3 5 9-1 L2 3 9 5 7 4 6 1 8 L8 6 1 4 5 0 7 2 9 3

Рис. 3. Рекордная псевдотройка ортогональных латинских квадратов порядка 10 из

статьи [19]

Мы рассмотрели похожу по постановке задачу, состоящую в поиске псевдотроек диагональных латинских квадратов порядка 10. В неявном виде данная постановка присутствует в статье [8]. В этой статье приведены 3 пары ортогональных диагональных латинских квадратов порядка 10, при этом в первой и второй паре фигурирует один и тот же квадрат (второй в обеих парах). Упомянутые наборы квадратов изображены на рис. 4 и рис. 5 соответственно.

0 9 4 6 1 7 5 8 2 3] гО 8 5 1 7 3 4 6 9 2

7 1 9 4 5 3 8 0 6 2 5 1 7 2 9 8 0 3 4 6

4 6 2 8 3 1 7 5 9 0 1 7 2 9 5 6 8 0 3 4

6 0 7 3 2 8 4 9 1 5 9 6 4 3 0 2 7 1 5 8

5 3 6 7 4 2 9 1 0 8 В = 3 0 8 6 4 1 5 9 2 7

8 4 1 2 9 5 0 6 3 7 4 3 0 8 6 5 9 2 7 1

2 5 3 0 8 9 6 4 7 1 7 2 9 5 1 4 6 8 0 3

3 2 8 9 0 4 1 7 5 6 6 4 3 0 8 9 2 7 1 5

9 7 5 1 6 0 3 2 8 4 2 9 6 4 3 7 1 5 8 0

1 8 0 5 7 6 2 3 4 9-1 L8 5 1 7 2 0 3 4 6 9

Рис. 4. Первая пара ортогональных диагональных латинских квадратов порядка 10

из статьи [8]

0 4 1 9 8 2 7 3 5 6] гО 8 5 1 7 3 4 6 9 2

3 1 6 8 2 9 4 5 0 7 5 1 7 2 9 8 0 3 4 6

6 5 2 4 9 0 3 8 7 1 1 7 2 9 5 6 8 0 3 4

1 8 5 3 7 4 9 0 6 2 9 6 4 3 0 2 7 1 5 8

9 2 0 5 4 7 8 6 1 3 В = 3 0 8 6 4 1 5 9 2 7

8 6 3 7 1 5 0 9 2 4 4 3 0 8 6 5 9 2 7 1

4 0 7 2 5 3 6 1 9 8 7 2 9 5 1 4 6 8 0 3

2 9 4 1 6 8 5 7 3 0 6 4 3 0 8 9 2 7 1 5

7 3 9 6 0 1 2 4 8 5 2 9 6 4 3 7 1 5 8 0

5 7 8 0 3 6 1 2 4 9-1 L8 5 1 7 2 0 3 4 6 9

Рис. 5. Вторая пара ортогональных диагональных латинских квадратов порядка 10

из статьи [8]

На основе этих двух пар ортогональных диагональных латинских квадратов поряд-

ка 10 можно естественным образом построить псевдотройку порядка 10 (см. рис. 6).

гО 8 5 1 7 3 4 6 9 2] гО 9 4 6 1 7 5 8 2 3] гО 4 1 9 8 2 7 3 5 6]

5 1 7 2 9 8 0 3 4 6 7 19 4 5 3 8 0 6 2 3 16 8 2 9 4 5 0 7

1 7 2 9 5 6 8 0 3 4 4 6 2 8 3 1 7 5 9 0 6 5 2 4 9 0 3 8 7 1

9 6 4 3 0 2 7 1 5 8 6 0 7 3 2 8 4 9 1 5 18 5 3 7 4 9 0 6 2

Л 3 0 8 6 4 1 5 9 2 7 В = 5 3 6 7 4 2 9 10 8 С = 9 2 0 5 4 7 8 6 13

4 3 0 8 6 5 9 2 7 1 8 4 12 9 5 0 6 3 7 8 6 3 7 15 0 9 2 4

7 2 9 5 1 4 6 8 0 3 2 5 3 0 8 9 6 4 7 1 4 0 7 2 5 3 6 19 8

6 4 3 0 8 9 2 7 1 5 3 2 8 9 0 4 17 5 6 2 9 4 1 6 8 5 7 3 0

2 9 6 4 3 7 1 5 8 0 9 7 5 1 6 0 3 2 8 4 7 3 9 6 0 12 4 8 5

L8 5 1 7 2 0 3 4 6 9-1 1-1 8 0 5 7 6 2 3 4 9-1 1-5 7 8 0 3 6 1 2 4 9-1

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

Рис. 6. Псевдотройка ортогональных диагональных латинских квадратов порядка 10, которую можно построить на основе первых двух пар квадратов из статьи [8]

Нетрудно посчитать, что характеристика такой псевдотройки равна 60. Напомним, что под характеристикой псевдотройки понимается число упорядоченных пар элементов, по которым одновременно выполняется условие ортогональности для всех трех пар квадратов псевдотройки. На рис. 7 представлены соответствующие 60 упорядоченных пар элементов для данной псевдотройки.

00 01 02 — — 05 06 - 08 — ■

10 11 — 13 — 15 16 - 18 —

— 21 22 — 24 25 - 27 — 29

— — 32 33 — — 36 37 — 39

— 41 — — 44 45 46 - 48 49

50 — 52 53 — 55 - 57 58 59

60 61 — — — 65 66 - — 69

— — 72 73 74 75 - 77 — 79

— — — 83 84 85 - 87 88 —

90 91 — 93 94 — 96 97 98 99

Рис. 7. Набор из 60 упорядоченных пар элементов, по которым ортогональны все три пары квадратов псевдотройки, изображенной на рис. 6

Мы рассмотрели следующую постановку задачи: найти псевдотройку ортогональных диагональных латинских квадратов порядка 10 с характеристикой больше, чем у псевдотройки из статьи [8]. Для решения поставленной задачи было решено использовать пары ортогональных диагональных латинских квадратов порядка 10 (3 пары из статьи [8] и 17 пар, найденных в результате эксперимента, описанного в предыдущем разделе).

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

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

Ключевой особенностью описанного алгоритма является то, что для увеличения количества сгенерированных диагональных латинских квадратов за единицу времени следует прерывать текущий поиск после достижения некоторого лимита времени. Это связано с тем, что при выборе «неудачных» значений в первых строках таблицы алгоритму может потребоваться очень большое время для возврата к этим начальным значениям. Если же начальные значения выбраны «удачно», то искомый квадрат может быть найден очень быстро. Опытным путем было установлено, что наиболее подходящий лимит по времени для программы, реализующей данный алгоритм — это 0,001 секунды. При этом фактически этот временной порог лишь немного превышает минимальное время, необходимое для «достройки» диагонального латинского квадрата при «удачно» выбранных начальных значениях.

На основе описанного алгоритма был создана MPI программа [20] на языке программирования С++. Управляющий процесс этой программы получает сообщения обо всех рекордных псевдотройках, найденных в процессе работы параллельной программы. Вычислительные процессы генерируют диагональные латинские квадраты порядка 10 с использованием приведенного выше алгоритма. При нахождении очередной рекордной псевдотройки вычислительный процесс отправляет соответствующее сообщение на управляющий процесс.

Созданная MPI программа была запущена на 1 сутки на 30 узлах вычислительного кластера «Академик В.М. Матросов» Иркутского суперкомпьютерного центра СО РАН. На этих 30 узлах было задействовано 60 16-ядерных процессоров AMD Opteron 6276, т.е. суммарно 960 процессорных ядер. В результате работы MPI программы была найдена псевдотройка с характеристикой 62, что является рекордом в сравнении с рассмотренной выше псевдотройкой из статьи [8]. Рекордная псевдотройка была найдена через 7

часов 20 минут после старта работы программы. Всего же за сутки было сгенерировано около 20 миллионов разных диагональных латинских квадратов порядка 10, соответственно было сформировано около 400 миллионов псевдотроек. Описанные результаты аргументирует применение для рассмотренной задачи высокопроизводительных вычислений, ведь на обычном ПК для проведения таких расчетов потребовалось бы несколько месяцев. На рис. 8 представлена найденная нами рекордная псевдотройка, а на рис. 9 представлены соответствующие ей 62 упорядоченные пары элементов. Отметим, что данная псевдотройка основана на одной из 17 пар ортогональных диагональных латинских квадратов порядка 10, найденных в проекте ЭАТ^Ьоте.

0 1 2 3 4 5 6 7 8 9] гО 1 2 3 4 5 6 7 8 9] гЗ 6 8 5 9 4 2 0 7 1

1 2 0 4 6 7 9 5 3 8 6 7 4 5 9 3 0 8 1 2 5 9 6 0 8 1 4 3 2 7

6 9 8 5 1 3 2 0 4 7 7 6 1 0 3 4 8 2 9 5 1 8 7 2 0 6 9 5 3 4

9 0 3 1 2 6 5 8 7 4 8 5 7 9 1 2 3 6 4 0 6 3 0 4 1 7 8 2 9 5

3 4 5 0 7 1 8 9 6 2 В = 9 2 6 1 8 7 5 4 0 3 С = 2 1 3 8 5 9 0 7 4 6

7 3 9 2 8 4 0 1 5 6 2 8 3 4 0 6 9 5 7 1 8 4 2 1 6 0 7 9 5 3

8 5 6 7 9 2 3 4 0 1 4 9 5 6 7 0 2 1 3 8 9 2 5 3 7 8 6 4 1 0

5 7 4 9 3 8 1 6 2 0 1 0 8 2 5 9 4 3 6 7 0 7 4 9 2 5 3 1 6 8

4 6 1 8 5 0 7 2 9 3 3 4 0 7 2 8 1 9 5 6 4 0 1 7 3 2 5 6 8 9

2 8 7 6 0 9 4 3 1 5-1 1-5 3 9 8 6 1 7 0 2 4-1 L7 5 9 6 4 3 1 8 0 2

Рис. 8. Псевдотройка ортогональных диагональных латинских квадратов порядка 10,

найденная с помощью MPI программы

■ — 01 02 03 04 05 06 07 08 — ■

10 11 — 13 14 15 16 - - —

— 21 — — - - 26 27 28 29

30 — 32 — 34 35 36 - 38 —

40 41 — 43 49

50 — 52 53 54 55 - - 58 —

60 — 62 63 64 65 66 - 68 —

70 71 — — - 75 - 77 78 79

80 — 82 — - 85 86 87 - 89

■ — 91 92 93 94 - 96 97 98 99

Рис. 9. Набор из 62 упорядоченных пар элементов, по которым ортогональны все три пары квадратов, входящих в псевдотройку, представленную на рис. 8

Заключение

В статье описано успешное применение проекта добровольных распределенных вычислений SAT@home для поиска пар ортогональных диагональных латинских квадратов порядка 10. Найдено 17 таких пар, все они являются новыми (в сравнении с тремя ранее известными). На основе найденных пар с помощью параллельной реализации алгоритма генерации диагональных латинских квадратов была найдена псевдотройка с рекордным количеством упорядоченных пар элементов, по которым ортогональны все три пары квадратов из псевдотройки. В дальнейшем мы планируем разработать и реализовать новые пропозициональные кодировки для приведенных в статье задач, а также ускорить работу используемого SAT-решателя на задачах поиска систем ортогональных латинских квадратов. Мы благодарим A.A. Семенова за ценные советы, которые позволили улучшить качество данной статьи, М.А. Посыпкина, H.H. Храпова и И.И. Курочкина за помощь в сопровождении проекта SAT@home, а также добровольцев за предоставленные вычислительные ресурсы.

Работа была поддержана РФФИ (гранты № Ц-07-00^03-а, Ц-07-31172-мол-а и 15-

07-07891-а) и Советом по грантам Президента РФ (стипендия № СП-118^.2015.5 и

грант для поддержки ведущих научных школ № НШ-5007.20Ц-9).

Литература

1. Тужилин, М.Э. Об истории исследований латинских квадратов / М.Э. Тужилин // Обозрение прикладной и промышленной математики. — 2012. — Т. 19, Вып. 2. — С. 226-227.

2. Colbourn, C.J. Handbook of Combinatorial Designs. Second Edition / C.J. Colbourn, J.H. Dinitz. — Chapman&Hall, — 2006. — 984 p. DOI: 10.1201/9781420010541.

3. Biere, A. Handbook of Satisfiability / A. Biere, V. Heule, H. van Maaren, T. Walsh (eds.). — IOS Press. — 2009.

4. Семенов, A.A. Применение алгоритмов решения проблемы булевой выполнимости (SAT) к комбинаторным задачам / А.А. Семенов, О.С. Заикин, И.В. Отпущенников,

C.Е. Кочемазов // Труды XII Всероссийского совещания по проблемам управления.

- Нзд-во ИПУ РАН. — 2014. — С. 7361-7374.

5. Семенов, А.А. Технологии решения многомерных задач логического поиска / А.А. Семенов, Д.В. Беспалов // Вестник Томского государственного университета. —2005. — № 14. — С. 61-73.

6. Zhang, Н. Combinatorial Designs by SAT Solvers / H. Zhang. — In: Biere A., Heule V., van Maaren H., Walsh T. (eds.) Handbook of Satisfiability. — IOS Press. — 2009.

- P. 533-568.

7. Gomes, C. Completing quasigroups or Latin squares: A structured graph coloring problem / C. Gomes, D. Shmoys // Proceedings of the Computational Symposium on Graph Coloring and Generalizations. — 2002. — P. 22-39.

8. Brown, J.W. Completion of the spectrum of orthogonal diagonal Latin squares / J.W. Brown, F. Cherry, L. Most, M. Most, E.T. Parker, W.D. Wallis // Lecture notes in pure and applied mathematics. — 1992. — Vol. 139. — P. 43-49.

9. Заикин, О.С. Опыт организации добровольных вычислений на примере проектов OPTIMA@home и SATOhome / О.С. Заикин, М.А. Посыпкин, А.А. Семенов, Н.П. Храпов // Вестник Нижегородского университета им. Н.И. Лобачевского.

- 2012. — № 5-2. — С. 340-347.

10. Заикин, О.С. Процедуры построения декомпозиционных множеств для распределенного решения SAT-задач в проекте добровольных вычислений SAT@home / О.С. Заикин, А.А. Семенов, М.А. Посыпкин // Управление большими системами.

- М.: ИПУ РАН. — Вып. 43. — 2013. — С. 138-156.

11. SAT@home: проект добровольных распределенных вычислений для решения крупномасштабных SAT-задач. URL: http://sat.isa.ru/pdsat/ (дата обращения 20.03.2015).

12. Anderson, D.P. BOINC: A System for Public-Resource Computing and Storage /

D.P. Anderson // In: Buyya, R. (ed.) GRID, IEEE Computer Society. — 2004.

-P. 4-10. DOI: 10.1109/grid.2004.14.

13. Ивашко, E.E. Использование BOINC-грид в вычислительноемких научных исследованиях / E.E. Ивашко, Н.Н. Никитина // Вестник Новосибирского государственного

университета. Серия: Информационные технологии. — 2013. — Т. 11, № 1.

- С. 53-57.

14. Ватутин, Э.И. Использование добровольных распределенных вычислений на платформе BOINC для анализа качества разбиений граф-схем параллельных алгоритмов / Э.И. Ватутин, B.C. Титов // Труды шестой международной конференции «Параллельные вычисления и задачи управления» РАСО'2012. — Институт проблем управления им. В.А. Трапезникова РАН, Москва. — 2012. — С. 37-54.

15. Гринберг, Я.Р. Алгоритм кластеризации элементов сетей передачи данных / Я.Р. Гринберг, И.И. Курочкин, A.B. Корх // Информационные технологии и вычислительные системы. — 2012. — № 3. — С. 18-30.

16. Заикин О.С. Применение метода Монте-Карло к прогнозированию времени параллельного решения проблемы булевой выполнимости / О.С. Заикин, A.A. Семенов // Вычислительные методы и программирование: новые вычислительные технологии.

- 2014. — Т. 15, № 1. — С. 22-35.

17. Rainbow-таблицы для шифра А5/1. URL: http://opensource.srlabs.de/projects/a51-decrypt (дата обращения 30.11.2014).

18. Ееп, N. An Extensible SAT-solver / N. Een, N. Sorensson // Lecture notes in computer science. — 2003. — Vol. 2919. — P. 502-518. DOI: 10.1007/978-3-540-24605-3_37.

19. Egan, J. Enumeration of MOLS of small order / Egan J., Wanless I.M. // Cornell University Library. arXiv:1406.3681v2 [math.CO].

20. Гришагин, В.А. Параллельное программирование на основе MPI / В.А. Гришагин, А.Н. Свистунов. — Изд-во ННГУ им. H.H. Лобачевского. — 2005. — 93 с.

Заикин Олег Сергеевич, к.т.н., научный сотрудник, Институт динамики систем и теории управления им. В.М. Матросова СО РАН (Иркутск, Российская Федерация), [email protected].

Кочемазов Степан Евгеньевич, программист, Институт динамики систем и теории управления им. В.М. Матросова СО РАН (Иркутск, Российская Федерация), [email protected].

Поступила в редакцию 21 марта 2015 г.

Bulletin of the South Ural State University Series "Computational Mathematics and Software Engineering"

2015, vol. 4, no. 3, pp. 95-108

DOI: 10.14529/cmsel50308

THE SEARCH FOR PAIRS OF ORTHOGONAL DIAGONAL LATIN SQUARES OF ORDER 10 IN THE VOLUNTEER COMPUTING PROJECT SAT@HOME

0.5. Zaikin, Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences (Irkutsk, Russian Federation) [email protected], S.E. Kochemazov, Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences (Irkutsk, Russian Federation) [email protected]

In this paper we consider the approach to search for systems of orthogonal Latin Squares, that is based on reducing the corresponding problems to Boolean Satisfiability problem. We constructed the SAT encoding for finding orthogonal diagonal Latin Squares of order 10. Using this encoding and the resources provided by the volunteer computing project SAT@home we managed to find 17 previously unknown pairs. Based on these 17 pairs and on 3 previously published pairs we constructed the pseudotriples of diagonal Latin Squares of order 10. To construct pseudotriples we employed the computing cluster. The last step required us to make parallel implementation of the algorithm for generating diagonal Latin Squares of order 10.

Keywords: Latin squares, volunteer computing, Boolean satisfiability problem, SAT@home project.

References

1. Tuzhilin M.E. Ob istorii issledovany latinskikh kvadratov [On the history of the study of Latin squares] // Obozreniye prikladnoy i promyshlennoy matematiki [Review of Applied and Industrial Mathematics]. 2012. Vol. 19, Issue 2. P. 226-227.

2. Colbourn C.J., Dinitz J.H. Handbook of Combinatorial Designs. Second Edition.

- Chapman&Hall, — 2006. — 984 p. DOI: 10.1201/9781420010541.

3. Biere A., Heule V., van Maaren H., Walsh T. (eds.). Handbook of Satisfiability. IOS Press. 2009.

4. Semenov A.A., Zaikin O.S., Otpushchennikov I.V., Kochemazov S.E. Primeneniye algo-ritmov resheniya problemy bulevoy vypolnimosti (SAT) k kombinatornym zadacham [Using algorithms for solving Boolean satisfiability problem (SAT) to combinatorial problems] // Trudy XII Vserossyskogo soveshchaniya po problemam upravleniya [Proceedings of the XII National Conference on Conrtol Problems]. Moskow, Publishing of the Institute of Control Sciences RAS, 2014. P. 7361-7374.

5. Semenov A.A., Bespalov D.V. Tekhnologii resheniya mnogomernykh zadach logicheskogo poiska [Technology for solving multidimensional problems of logical search] / / Vestnik Tomskogo gosudarstvennogo universiteta [Tomsk State University Journal]. 2005. No. 14. P. 61-73.

6. Zhang H. Combinatorial Designs by SAT Solvers. In: Biere A., Heule V., van Maaren H., Walsh T. (eds.) Handbook of Satisfiability. IOS Press. 2009. P. 533-568.

7. Gomes C., Shmoys D. Completing quasigroups or Latin squares: A structured graph coloring problem // Proceedings of the Computational Symposium on Graph Coloring and Generalizations. 2002. P. 22-39.

8. Brown J.W., Cherry F., Most L., Most M., Parker E.T., Wallis W.D. Completion of the spectrum of orthogonal diagonal Latin squares // Lecture notes in pure and applied mathematics. 1992. Vol. 139. P. 43-49.

9. Zaikin O.S., Posyipkin M.A., Semenov A.A., Hrapov N.P. Opyit organizatsii dobrovolny-ih vyichisleniy na primere proektov OPTIMA@home i SAT@home [Experience of organizing volunteer computing project on the examples of OPTIMA@home and SAT@home] // Vestnik Nizhegorodskogo universiteta im. N.I. Lobachevskogo [Lobachevsky State Unversity of Nizhni Novgorod Journal]. 2012. No. 5-2. P. 340-347.

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

10. Zaikin O.S., Semenov A.A., Posyipkin M.A. Protseduryi postroeniya dekompozitsionnyih mnozhestv dlya raspredelennogo resheniya SAT-zadach v proekte dobrovolnyih vyichisleniy SAT@home [Procedures for constructing decomposition sets for distributed SAT solving in the volunteer computing project SAT@home] // Large-scale systems control. Moskow, Publishing of the Institute of Control Sciences RAS, 2013. Issue 43. P. 138-156.

11. SAT@home: volunteer computing project for solving hard SAT problems. URL: http://sat.isa.ru/pdsat/ (accessed: 20.03.2015).

12. Anderson D.P. BOINC: A System for Public-Resource Computing and Storage. In: Buy-ya, R. (ed.) GRID, IEEE Computer Society. 2004. P. 4-10. DOI: 10.1109/grid.2004.14.

13. Ivashko E.E., Nikitina N.N. Ispolzovanie BOINC-grid v vyichislitelnoemkih nauchnyih issledovaniyah [Using BOINC-grid in resource-intensive scientific researches] // Vestnik Novosibirskogo gosudarstvennogo universiteta. Seriya: Informatsionnyie tehnologii [Novosibirsk State University Journal. Series information technologies]. 2013. Vol. 11, No. 1. P. 53-57.

14. Vatutin E.I., Titov VS. Ispolzovanie dobrovolnyih raspredelennyih vyichisleniy na plat-forme BOINC dlya analiza kachestva razbieniy graf-shem parallelnyih algoritmov [Use of volunteer computing platform BOINC to analyze the quality of partitions of a graph-schemes of parallel algorithms] // Trudyi shestoy mezhdunarodnoy konferentsii "Paral-lelnyie vyichisleniya i zadachi upravleniya" PACO'2012 [Proceedings of the Sixth International Conference "Parallel Computations and Control Problems" PACO'2012]. Moscow, Publishing of the Institute of Control Sciences RAS, 2012. P. 37-54.

15. Grinberg Y.R., Kurochkin I.I., Korh A.V Algoritm klasterizatsii elementov setey peredachi dannyih [Algorithm for clustering elements of data networks] // Informatsionnyie tehnologii i vyichislitelnyie sistemyi [Information technology and computer systems], 2012. No. 3. P. 18-30.

16. Zaikin O.S., Semenov A.A. Primenenie metoda Monte-Karlo k prognozirovaniyu vremeni parallelnogo resheniya problemyi bulevoy vyipolnimosti [Application of the Monte Carlo method to predict time of parallel solving of the Boolean satisfiability problem] // Vyichislitelnyie metodyi i programmirovanie: novyie vyichislitelnyie tehnologi [Numerical methods and programming : new computational technologies]. 2014. Vol. 15, No. 1. P. 22-35.

17. Rainbow tables for the A5/1 cipher. URL: http://opensource.srlabs.de/projects/a51-decrypt (accessed: 30.11.2014).

18. Ben N., Sorensson N. An Extensible SAT-solver // Lecture notes in computer science. 2003. Vol. 2919. P. 502-518. DOI: 10.1007/978-3-540-24605-3_37.

19. J. Bgan, I.M. Wanless. Enumeration of MOLS of small order // Cornell University Library. arXiv:1406.3681v2 [math.CO].

20. Grishagin V.A., Svistunov A.N. Parallelnoye programmirovaniye na osnove MPI [Parallel programming on the base of MPI], Nizhny Novgorod, Publishing of the Lobachevsky State University of Nizhny Novgorod, 2005. 93 p.

Received March 27, 2015.

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