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

36
Поиск систем ортогональных латинских квадратов в проекте добровольных вычислений SAT@home Заикин О.С. , Кочемазов С.Е., А.А. Семенов ИДСТУ СО РАН, Иркутск

Upload: fox

Post on 10-Feb-2016

62 views

Category:

Documents


1 download

DESCRIPTION

Поиск систем ортогональных латинских квадратов в проекте добровольных вычислений SAT@home. Заикин О.С . , Кочемазов С.Е., А.А. Семенов ИДСТУ СО РАН, Иркутск. Обзор доклада. Латинские квадраты. Задачи поиска комбинаторных структур на основе латинских квадратов. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

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

добровольныхвычисленийSAT@home

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

ИДСТУ СО РАН, Иркутск

Page 2: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Обзордоклада

• Латинские квадраты.

• Задачи поиска комбинаторных структур на основе латинских квадратов.

• Поиск систем ортогональных латинских квадратов в SAT@home.

2

Page 3: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Латинский квадрат (далее ЛК) порядка - это таблица , заполненная элементами упорядоченного множества M таким образом, что в каждой строке и в каждом столбце таблицы каждый элемент из M встречается ровно один раз.

Леонард Эйлер использовал в качестве множества M буквы латинского алфавита, откуда ЛК и получили своё название. Обычно в качестве множества M берется множество натуральных чисел {1,2,…,n}.

Примеры ЛК 3, 5 и 7 порядка.

3[ 𝐴 𝐵 𝐶𝐶 𝐴 𝐵𝐵 𝐶 𝐴 ] [

1 2 3 4 55 3 4 1 24 5 2 3 12 4 1 5 33 1 5 2 4

]

Латинскиеквадраты

Page 4: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Два ЛК одного и того же порядка называются ортогональными, если различны все пары , где – символ в некоторой клетке первого ЛК, а – символ в той же клетке второго ЛК.

Другими словами, два ЛК ортогональны, если при «наложении» первого ЛК на второй получается квадрат, в котором все все элементов будут различны. Такой квадрат называется греко-латинским.

Пример: пара ортогональных ЛК и полученный на их основе греко-латинский квадрат.

[1 2 33 1 22 3 1][11 22 33

23 31 1232 13 21] 4

Ортогональныелатинскиеквадраты

[1 2 32 3 13 1 2]

Page 5: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Пары ортогональных ЛК впервые были упомянуты в сборнике задач 1725 года:

Необходимо разместить 16 игральных карт из тузов, королей, дам и валетов всех четырёх мастей в виде квадрата так, чтобы все масти и карты всех достоинств встречались в каждой строке и в каждом столбце ровно один раз.

Эта задача имеет 6192 решения.

5

Ортогональныелатинскиеквадраты

[123 4234 14 1233 412] [123 44 321

3 4122143 ][112233 4424 334211

4314 213232411423 ]

[123 43 4124 3212143 ][123 42143

3 4124 321] [112233 442314 4132

34 43122142312413 ]

Пример пары не ортогональных ЛК порядка 4

Пример пары ортогональных ЛК порядка 4

Page 6: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Эйлер сформулировал задачу поиска пары ортогональных ЛК порядка 6 как задачу о 36 офицерах.

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

6

Ортогональныелатинскиеквадраты

Page 7: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

• 1782 год – Эйлер предложил гипотезу, что не существует пар ортогональных ЛК порядка , т.е. для 2, 6, 10, ... Он исходил из того, что ему не удалось построить пары для (для справедливость гипотезы проверятся тривиально).

• 1900 год – гипотеза Эйлера для была подтверждена G. Tarry. Он построил все 9408 нормализованных ЛК, и показал, что при любом их сочетании невозможно построить пару ортогональных квадратов.

• 1922 год – MacNeish предложил метод конструирования ортогональных ЛК порядка n1*n2 из ортогональных ЛК порядков n1 и n2.

• 1959 год – Bose и Shrikhande с помощью ЭВМ построили пару ортогональных ЛК для , тем самым опровергнув гипотезу Эйлера.

7

ГипотезаЭйлера

Page 8: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Если имеется набор из m различных ЛК, любая пара которых ортогональна, то говорят о системе из m попарно ортогональных ЛК.

Обозначим через максимально возможное число попарно ортогональных ЛК порядка .

• Если n – степень простого числа, то

• До сих пор не удалось выяснить, существует ли система из трех попарно ортогональных ЛК порядка 10.

8

Системыортогональных латинскихквадратов

n 6 7 8 9 10 11 12 13 14 15N(n) 1 6 7 8 10 12

Page 9: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

В 1989 году было доказано отсутствие проективной плоскости порядка 10 *.

Следствие:

Вычислительном эксперимент выполнялся 80 дней на мощном (на тот момент) кластере Cray-1A • 133 MFLOPs• ОП – 1 миллион слов

*Lam C.W.H., Thiel L., Swiercz S.: The non-existence of finite projective planes of order 10. Canad. J. Math. (41), 1989. pp. 1117-1123. 9

Системыортогональных латинскихквадратов

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

Диагональным называется ЛК, в котором как в главной, так и в побочной диагоналях все элементы различны.

Недиагональный ЛК

Диагональный ЛК

В 1992 году было доказано существование пары ортогональных диагональных ЛК порядка 10 *. Были представлены 3 такие пары.

* Brown et al. Completion of the Spectrum of Orthogonal Diagonal Latin Squares. Lecture notes in pure and applied mathematics. 1992. Vol. 139. pp. 43–49.

10

Диагональныелатинскиеквадраты

[123 4234 14 1233 412]

[123 43 4124 3212143 ]

Page 11: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Судоку – это ЛК порядка 9 с дополнительным условием: каждый квадрат разбивается на 9 подквадратов порядка 3, все числа в каждом подквадрате должны быть различны.

Задание игры Судоку формулируется следующим образом. Дан квадрат 9×9 , в некоторых клетках которого находятся чисел из 𝑘множества {1,2,..,9}. Эти числа называются подсказками.

Требуется заполнить остальные клетки квадрата так, чтобы получившийся квадрат был ЛК порядка 9 и все числа в подквадратах 3×3 при этом были различны.

11

Судоку

Page 12: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

12

Судоку. 17 Примерс подсказками

Page 13: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

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

Известно 49151 Судоку с 17 подсказками.

Долгое время оставалась недоказанной гипотеза о том, что такое минимальное значение равно 17.

13

. Судоку Минимальноечислоподсказок

Page 14: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

В январе 2012 года была опубликована статья авторов: Gary McGuire, Bastian Tugemanny и Gilles Civario (Ирландия).

Проведен эксперимент – были проверены все возможные варианты (около 5.5 миллиардов). Судоку с 17 подсказками не была найдена. Тем самым гипотеза была подтверждена.

Эксперимент выполнялся с января по декабрь 2011 года на кластере Stokes – 320 узлов, на каждом 2 шестиядерных процессора Intel X5650. Итого использовались 3840 процессорных ядер в течение 11 месяцев.

14

. Судоку Минимальноечислоподсказок

Page 15: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

15

. Судоку Минимальноечислоподсказок

Page 16: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

16

. Судоку Минимальноечислоподсказок

6 сентября 2013 года завершился эксперимент в проекте sudoku@vtaiwan, в котором решалась эта же задача.

Эксперимент длился 2 года 8 месяцев.

Приняли участие 4378 кранчеров.

Подтверждение этого результата полезно, т.к. его трудно проверить.

Page 17: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

В SAT-задаче требуется найти выполняющий набор конъюнктивной нормальной формы (КНФ) либо доказать его отсутствие.

Пример КНФ над

Выполняющий набор : (11011)

К SAT-задачам сводятся задачи из областей:• обращение дискретных функций• дискретная оптимизация• биоинформатика• …

54321 ,,,, xxxxxX

54343221 xxxxxxxxC

SAT-задачи

Page 18: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

SAT@home – совместный проект ИДСТУ СО РАН и ИППИ РАН, использующий добровольные вычисления для решения сложных практически важных задач, которые эффективно сводятся к SAT-задачам

Область применения• задачи обращения дискретных функций• криптография• дискретная оптимизация

Основан на BOINC. Версии клиентского приложения для windows и linux (32- и 64-битные). 36

SAT@home

Page 19: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Общаяконцепция SAT@home

Desktop grid РешениеSAT задача

КНФ в формате DIMACS

декомпозициярешение Выполняющий

набор или UNSAT

КНФ, кодирующая исходную задачу, разбивается на семейство более простых для SAT-решателей КНФ при помощи процедуры декомпозиции. Для поиска «хороших» параметров декомпозиции используется специальная техника прогнозных функций, которая позволяет учитывать индивидуальные особенности исходной задачи.

Исходная задача

37

Page 20: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Развитие SAT@home

29.09.2011 – запуск проекта.

с декабря 2011 по май 2012 – решение 10 задач криптоанализа генератора A5/1.

с сентября.2012 по май 2013 – поиск пар диагональных ортогональных ЛК порядка 10.

с июня 2013 по настоящее время – поиск тройки попарно ортогональных ЛК порядка 10.

Page 21: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

SAT- подходвприложениикзадачампоиска наборов

латинскихквадратовSAT-подход в приложении к задаче поиска ЛК можно разбить на несколько этапов:

1. Построение пропозициональных кодировок задач (сведение их к задачам вида КНФ=1)

2. Поиск оптимальной декомпозиции для скорейшего решения задачи в распределенной среде

3. Модификация программных «решателей» SAT-задач с целью повышения их эффективности на данном классе тестов.

Следует отметить, что попытки исследования латинских квадратов при помощи SAT-подхода уже предпринимались ранее *.

* H. Zhang, Сombinatorial Designs by SAT Solvers, Chapter 17, Handbook of Satisfiability, pp. 533-568, 2009

21

Page 22: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

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

квадратовРассматривается подход к построению пропозициональной кодировки для задачи поиска пары ортогональных латинских квадратов порядка .

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

Тогда кодировка задачи будет состоять из следующих частей:1. Кодировка условия, что квадраты, кодируемые

переменными из и являются латинскими2. Кодировка условия ортогональности рассматриваемой

пары квадратов 22

Page 23: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

𝑥1𝑥2𝑥3

𝑥4𝑥5𝑥6

𝑥7𝑥8𝑥9

𝑥10𝑥11

𝑥12

𝑥13𝑥14

𝑥15

𝑥16𝑥17

𝑥18

𝑥19𝑥20

𝑥21

𝑥22𝑥23

𝑥24

𝑥25𝑥26

𝑥27

𝑎11 𝑎12 𝑎13

𝑎21 𝑎22 𝑎23

𝑎31 𝑎32 𝑎33

В первой строке есть ровно одна единица

В первой ячейке матрицы стоит ровно одно число

В первом столбце есть ровно одна единица

« » : Наивная кодировка условияна латинскийквадрат

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

23

Page 24: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

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

𝑥10𝑥11𝑥12 𝑥13𝑥14𝑥15 𝑥16𝑥17𝑥18

𝑥19𝑥20𝑥21 𝑥22𝑥23𝑥24 𝑥25𝑥26𝑥27

𝑎11 𝑎12 𝑎13𝑎21 𝑎22 𝑎23𝑎31 𝑎32 𝑎33

𝑥28𝑥29𝑥30 𝑥31𝑥32𝑥33 𝑥34𝑥35𝑥36

𝑥37𝑥38𝑥39 𝑥40𝑥41𝑥42 𝑥43𝑥44𝑥45

𝑥46𝑥47𝑥48 𝑥49𝑥50𝑥51 𝑥52𝑥53𝑥54

𝑏11 𝑏12 𝑏13𝑏21 𝑏22 𝑏23𝑏31 𝑏32 𝑏33

Дизъюнкт вида

Запрещает ситуацию, когда

Можно показать, что таких дизъюнктов потребуется

« » : Наивная кодировка условиеортогональности

24

Page 25: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Парыортогональныхдиагональных латинскихквадратов

Необходимо добавить в описанную выше кодировку дизъюнкты, соответствующие условию диагональности.

Первая строка первого квадрата была изначально зафиксирована и равнялась «0 1 2 3 4 5 6 7 8 9». Это было сделано потому, что любую пару ортогональных латинских квадратов путем перестановок можно преобразовать к паре, в которой первая строка первого квадрата будет именно такой.

Полученная в результате КНФ состоит из 2000 переменных и 434440 дизъюнктов, файл с КНФ занимает 10 мегабайт.

25

Page 26: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Генерациязаданий

Задание – поиск пары ортогональных диагональных ЛК с частично известным заполнением первого квадрата (1-ая строка и по 8 первых ячеек 2-ой и 3-ей строки). Значения остальных 74 ячеек первого квадрата и всех 100 ячеек второго квадрата были неизвестны, их должен был найти SAT-решатель.

Фиксированная первая строка

Известные данные, уникальны в каждом задании

Неизвестные данные

0 1 2 3 4 5 6 7 8 9

Page 27: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Генерациязаданий

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

Для решения в SAT@home были выбраны 20 миллионов подзадач из 230 миллиардов (т.е. всего около 0.0087 % пространства поиска).

Каждый workunit в SAT@home состоял из 20 таких подзадач (итого 1 миллион workunit’ов).

На каждую подзадачу был установлен лимит в 2600 рестартов решателя MiniSat 2.2, что примерно соответствует 5 минутам работы одного ядра современного процессора. При достижении лимита вычисления прерывались. Небольшая модификация MiniSat 2.2 привела к значительному уменьшению объема используемой ОП, а также к ускорению).

Page 28: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

За 9 месяцев найдены 17 новых пар ортогональных диагональных ЛК порядка 10. До этого были известны только 3 такие пары, опубликованные в статье 1992 года.

Первая найденных в SAT@home пара.

Результат

Page 29: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Тройкапопарноортогональныхлатинских квадратов

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

КНФ, кодирующая данную задачу, состоит из 23000 переменных и 1091631 дизъюнктов, файл с КНФ занимает 17 мегабайт.

29

Page 30: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Тройкапопарноортогональныхлатинских квадратов

В каждом квадрате была зафиксирована первая строка (значение «0 1 2 3 4 5 6 7 8 9»). Декомпозиция проводилась по второй строке первого квадрата – перебирались все возможные варианты ее заполнения (всего 1334961 вариантов, каждому варианту соответствует подзадача).

Эксперимент по решению данной задачи в SAT@home был запущен 24 июня 2013 года и продолжался примерно месяц. В результате нашлась такая тройка A, B, C, что A ортогонален B, A ортогонален C, а квадраты B и C ортогональны в 70 ячейках из 100.

30

Page 31: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Тройкапопарноортогональныхлатинских квадратов

31

Page 32: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Тройкапопарноортогональныхлатинских квадратов

После этого был запущен поиск тройки квадратов, в которой на B и C было наложено условие «ортогональны минимум в 71 ячейке из 100».

КНФ, кодирующая данную задачу, состоит из 36685 переменных и 1625560 дизъюнктов, файл с КНФ занимает 23 мегабайта.

Эта задача решается в проекте в настоящий момент. По 5 ячеек во 2-ой и 3-ей строках.

Мировой рекорд – 91 ячейка из 100 (Wanless).

Цель – получить новый рекорд.32

Page 33: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

SAT@home. Производительность

Среднее значение: 2.7 TFLOPsМаксимальное значение: 7.4 TFLOPsВсе рекорды – благодаря соревнованиямна boincstats

Динамика за год

Page 34: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

SAT@home. Состояниена 10.09.2013

• 1279 активных пользователей

• 2738 активных ПК• 108 государств

Page 35: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Перспективы

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

• Оптимизировать решатель

• Улучшать кодировки

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

Page 36: Поиск  систем ортогональных латинских квадратов в проекте  добровольных вычислений SAT@home

Благодарим всех кранчеров проекта SAT@home за оказанную поддержку!

Спасибо за внимание!

36