Так как же можно нарисовать случайное разбиение?
(А картинки выше действительно были выбраны равновероятно среди всех — ну, точнее, равновероятно в пределах точности компьютерного датчика случайных чисел.)
Оказывается, для АБ есть сразу несколько способов это сделать — но прежде, чем их описывать, мне хочется дополнительно мотивировать разбиения на доминошки как объекта изучения.
Тут, на самом деле, можно много чего сказать (примерно на годовой спецкурс — легко), но простейшая мотивация — это переход с квадратной решётки на треугольную.
(А картинки выше действительно были выбраны равновероятно среди всех — ну, точнее, равновероятно в пределах точности компьютерного датчика случайных чисел.)
Оказывается, для АБ есть сразу несколько способов это сделать — но прежде, чем их описывать, мне хочется дополнительно мотивировать разбиения на доминошки как объекта изучения.
Тут, на самом деле, можно много чего сказать (примерно на годовой спецкурс — легко), но простейшая мотивация — это переход с квадратной решётки на треугольную.
Пусть мы разбиваем область на треугольной решётке — скажем, просто большой правильный шестиугольник — на "доминошки"-ромбики из двух соседних треугольников:
Достаточно раскрасить ромбики в разбиении (а они тут будут трёх возможных направлений, так что красим в три цвета) —
— и картинка становится "кубиками" в трёхмерном пространстве (собранными в углу комнаты).
Тут уже можно и сделать аллюзию на диаграммы Юнга (такие же кубики в углу, но двумерной комнаты, они же число способов разбить число n в сумму натуральных слагаемых без учёта порядка) — и вспомнить формулу МакМагона для подсчёта числа таких "заполнений кубиками" в комнате размера axbxc (мне, опять-таки, вспоминается — другая — брошюра Е. Смирнова, https://www.mccme.ru/free-books/dubna/smirnov-asm.pdf , см. лекцию 3 ) — ну, в общем, я же уже говорил про годовой курс?
Но мне из этой картинки хочется вытащить "функцию высоты" и вообще трёхмерный взгляд на неё.
Оказывается, этот взгляд нам (сразу несколькими способами) может помочь сгенерировать случайное разбиение.
Пусть у нас есть разбиение на ромбики на треугольной решётке. Если в нём есть шестиугольник со стороной 1, разбитый на три ромбика одним способом — можно его переразбить другим. Назовём это "элементарной перестройкой".
Теорема. Пусть на треугольной решётке задана область "без дырок" (например, наш большой правильный шестиугольник). Тогда от любого её разбиения на ромбики до любого другого можно дойти чередой элементарных перестроек.
"Доказательство". Трёхмерный взгляд позволяет посмотреть на картинку, как просто на добавление/убирание кубика. Будем убирать кубики "от самого верхнего", пока не дойдём от любого исходного разбиения до состояния "пустая комната".
От любого состояния дошли до одного и того же, минимального — значит, от любого можно дойти до любого другого.
(Я взял слово "доказательство" в кавычки — потому что это для настоящей комнаты легко сказать, что означает "пустая комната", а так нужно действовать чуть более аккуратно. Но давайте считать, что тут я всё заметаю под ковёр.)
(Я взял слово "доказательство" в кавычки — потому что это для настоящей комнаты легко сказать, что означает "пустая комната", а так нужно действовать чуть более аккуратно. Но давайте считать, что тут я всё заметаю под ковёр.)
То же самое можно сделать и для разбиений (опять таки, областей без дырок) на квадратной решётке — а в качестве элементарной перестройки выступает переразбиение квадрата 2x2.
Так вот, возвращаясь к ацтекскому бриллианту. Вообще, картинки, которые я показывал, нарисованы с использованием специфики именно ацтекского бриллианта. А именно, одно из доказательств теоремы о числе разбиений позволяет ещё и по честно-равномерному разбиению АБ порядка (n-1), дополнительно несколько раз подбросив монетку, получить честно-равномерное разбиение АБ порядка n. И завязано это как раз на функцию высоты (которая достраивает картинку до трёхмерной) — рассматриваемую в одном случае в чёрных, а в другом в белых вершинах. Но в эту технику я не пойду, именно потому, что она завязана на конкретику АБ.
Но можно себе представить другой способ порождать случайные разбиения — с помощью случайного блуждания.
А именно: рассмотрим граф, вершинами которого являются _все_ разбиения АБ, а рёбра соединяют разбиения, отличающиеся на элементарную перестройку.
Этот граф, конечно, объект чисто абстрактный: для порядка n=100 у него 2^{5050} вершин, что немного многовато.
Зато рёбер из каждой вершины выходит не так много — не больше 2n^2=20.000, что вполне компьютерно-реалистично.
И можно рассмотреть блуждание по такому графу — приходим в вершину, уходим по случайно выбранному ребру, оттуда опять по случайно выбранному ребру, и так далее.
Так вот — если так "побродить" достаточно долго, то получается (почти) равновероятное распределение на том, куда мы в принципе можем прийти. И это и есть один из способов генерации случайного разбиения. Но тут нужно быть аккуратным и в том, как генерировать, и в том, когда останавливаться (а ещё есть красивые слова "coupling from the past", которые позволяют гарантировать, что получаемое разбиение совсем честно случайно).