Представьте калейдоскоп: горсть цветных стёклышек, отражаясь в зеркалах, рождает бесчисленные узоры. В математике часто нужно пересчитать возможные сети из одинаковых точек — например, все способы соединить их линиями, если точки нельзя подписать. Прямой перебор здесь бессилен: для 20 точек вариантов больше, чем звёзд в галактике.
Однако есть элегантный приём. Вместо того чтобы перебирать все узоры, используют усреднение по всем возможным поворотам (перестановкам точек). У каждого поворота смотрят, сколько узоров остаются неизменными, а затем берут среднее. Так получают точное число. Но число поворотов тоже огромно — помогает разбиение на одинаковые части. Если узор симметричен, он состоит из повторяющихся кусков. Заметив это, математики применили рекурсивный подход: задача сводилась к подсчёту таких кусков в разы быстрее. Калейдоскоп сам себя складывает.
Так удалось впервые точно подсчитать число узоров для 16, 17, 18, 19 и 20 точек. Результат для 20 точек — колоссальное число 7 278 601 292 779 396 715. За этим числом — не хаос, а стройная архитектура отражений. Метод пригодится не только для чистых узоров, но и для перебора лекарств и новых материалов, а также может ускорить машинное обучение при поиске лучших конфигураций нейросетей.
Для подсчёта всех вариантов для 20 точек потребовалось учесть 627 разных типов симметрии.
Идея перебора всех возможных структур напоминает «Вавилонскую библиотеку» Борхеса — книгу всех мыслимых книг.