Следующий слой должен выглядеть аналогично, но зернышки необходимо выложить так, чтобы каждое разместилось в маленьком треугольном углублении, образованном тремя зернами нижнего слоя. Затем необходимо точно так же выкладывать следующие слои зерен граната. При укладке требуется проявлять некоторую осторожность: только половина углублений будет поддерживать сферы следующего уровня, и на каждом этапе предстоит решать, какую именно половину углублений вы хотите заполнить. Традиционное решение, которое называется «гранецентрированная кубическая решетка», имеет одно замечательное свойство: на каждом очередном уровне есть сферы, расположенные непосредственно над сферами тремя уровнями ниже. По мнению Кеплера, не существует способа более плотной упаковки сфер в пространстве[234]. В гранецентрированной кубической решетке каждая сфера соприкасается ровно с двенадцатью другими сферами. Кеплер считал, что по мере роста зерен граната каждое из них начинает придавливать своих двенадцать соседей, из-за чего поверхность у точки соприкосновения становится плоской и зерна граната превращаются в фигуры с двенадцатью гранями[235].
Понятия не имею, был ли прав Кеплер насчет граната[236], но его утверждение, что гранецентрированная кубическая решетка обеспечивает самую плотную упаковку сфер, на целые столетия оказалось в центре пристального интереса математиков. Кеплер не сформулировал доказательство своего утверждения; по всей вероятности, ему просто казалось очевидным, что гранецентрированную кубическую решетку превзойти невозможно. С ним солидарны целые поколения бакалейщиков, пакующие апельсины в соответствии с гранецентрированной кубической конфигурацией. Однако математикам как людям требовательным понадобилось абсолютное подтверждение, причем не только в отношении окружностей и сфер. В мире чистой математики ничто не мешает выйти за рамки окружностей и сфер, устремиться к более высоким размерностям и начать упаковать так называемые гиперсферы в пространство с количеством измерений больше трех. Не позволяет ли геометрическая история об упаковке сфер в пространстве с большей размерностью лучше понять теорию кодов с исправлением ошибок, подобно геометрической истории о проективном плане? В данном случае поток перемещается главным образом в другом направлении[237]: открытия в области кодирования подстегнули прогресс в области упаковки сфер. Например, в 1960-е годы Джон Лич, применив один из кодов Голея, построил в двадцатичетырехмерном пространстве невероятно плотную упаковку сфер. Конфигурация, известная сегодня как «решетка Лича», представляет собой крайне густонаселенное место, в котором каждая из двадцатичетырехмерных сфер соприкасается с 196 560 соседними сферами. До сих пор неизвестно, обеспечивает ли она самую плотную упаковку сфер в двадцатичетырехмерном пространстве, но в 2003 году Генри Кон[238] и Абхинав Кумар доказали, что, если более плотная решетка и существует, она обеспечит плотность упаковки сфер больше плотности решетки Лича максимум в
1,00000000000000000000000000000165 раз,
то есть довольно близко к решетке Лича{197}[239].
Я пойму вас и даже прощу, если вы скажете, что вам, мол, нет никакого дела до двадцатичетырехмерных сфер и того, как можно их упаковать. Но важно понимать один момент: любой математический объект, столь невероятный, как решетка Лича, приобретает весьма большое значение, и к нему д
Что касается старых добрых трехмерных апельсинов… Оказывается, Кеплер был прав, настаивая, что его способ упаковки самый лучший, но это не было доказано еще целых четыре столетия, пока в 1998 году теорию Кеплера не подтвердил Томас Хейлс, в то время профессор Мичиганского университета. Хейлс решил этот вопрос с помощью сложного и изящного доказательства, в котором задача была сведена к анализу всего лишь нескольких тысяч сфер, выполненному посредством большого объема компьютерных вычислений. Для математического сообщества не проблема создать сложное и изящное доказательство (мы привыкли к такого рода трудам), и эта часть работы Хейлса быстро получила превосходную оценку и подтверждение правильности; но что касается большого объема компьютерных вычислений – тут сложилась более серьезная ситуация. Доказательство возможно проанализировать до последней детали, однако с компьютерной программой все обстоит иначе. Теоретически человек в состоянии проверить каждую строку кода, но, даже если он с этим справится, может ли он полагаться на то, что код будет выполняться корректно?