P.S. Напрмер, этим летом мне пришлось решать задачу в 90000-мерном пространстве . Хотелось бы большего, но у моего компьютера не хватило для этого памяти. Тем не менее, свои зрительные потребности утолить мне тоже удалось путем вращения (без деформации) этого пространства так, что 3-мерная проекция из этого простраства оказалась бы наиболее представительной - на нее уже можно не только посмотреть, но и повращать мышкой
А нельзя ли посмотреть на такую визуализацию? Очень любопытно))
Посмотреть можно, но прежде нужно сказать, что это такое по смыслу. Задача была такая. В открытом интернет-доступе есть банк трехмерных белковых структур (3D-структур). Сейчас в нем около 180 тысяч экспонатов. Считается, что это мало, поскольку число белков, для которых установлена первичная структура (т.е. их аминокислотная последовательность) очень много, т.к. это в наше время несложная операция, которую довольно быстро выполняют автоматы (секвенаторы). Тогда как с установлением трехмерных структуры очень много возни - надо кристалл из белка растить, чтобы потом с его рентгенограммы снимать в разных проекциях и на суперкомпьютерах те рентгенограммы обсчитывать. Труда суперкомпьютера не жалко, но получить подходящий кристалл из белка очень трудно, поскольку они вообще очень плохо кристаллизуются. Поэтому каждая 3D-структура достается потом и кровью, и потому банк таких структур относительно невелик. А мой интерес состоял в том, чтобы провести какую-то классификация всех этих структур, чтобы получить на картинке изображение типа звездного неба, где бы разные структуры оказались собранными в созвездия по признаку подобия. Сразу скажу, что эта затея не удалась, т.к. делиться на отдельные созвездия белки не захотели, а вместо этого образовали иную картину.
Из геометрии известно, что N точек с заданными расстояниями между ними можно разместить в 1-мерном пространстве, только если они лежат на одной прямой. А в самом общем случае им требуется пространство с числом измерений N-1. Например, 4 точки могут образовать искаженный тетраэдр в пространстве 3-х измерений. А если у пространства измерений окажется меньше, то требование расположить точки на заданных расстояниях удовлетворить не удастся. Отсюда следовало, что для решения моей задачи требуется пространство с 180 тыс. измерениями. Здесь само число измерений компьютер не смущает, т.к. он подходит к решению геометрических задач чисто алгебраически, где каждое дополнительное измерение всего лишь добавляет лишнее слагаемое. А вот памяти для создания квадратной матрицы на 180 тыс. строк и столько же столбцов мне не хватило, а потому пришлось сократить задачу до 90 тыс. белков (отсюда и речь идет о пространстве из 90000 измерений).
Сама же сложность задачи состояла отнюдь не в расположении точек во многомерном пространстве (эту операцию компьютер делает всего за несколько секунд), а в том, чтобы в этом 90000-мерном пространстве провести такое 3-мерное сечение, в
плоскости объеме которого точки расположились бы наиболее широко/просторно (чтобы видеть образованную ими структуру). Тогда как если выбрать из 90000 измерений 3 измерения наобум, то виден лишь "червячок", в который все точки срослись. Эта задача стандартно решается процедурой "сингулярного разложения" на подматрицы единичного ранга, а после формируется 3-мерное пространство из 3-х таких матриц, чей вклад в общую сумму наиболее значителен. Для этого пришлось использовать библиотечную процедуру от компании Intel, а программу писать в 64-разрядном коде (чтобы задействовать всю память, для которой 32-разрядной адресации не хватает). Это уже настолько трудная в вычислительном плане задача, что одна лишь эта процедура считала 27 часов. Здесь был достигнут полнейший успех, т.к. нашлось такое 3D-сечение, которое охватывало более 50% общей дисперсии. Это очень хороший результат, когда в 3 измерения удается запихнуть 50% информации, содержащейся в 90000-мерном пространстве, а на остальные 89997 измерения приходится меньше половины. Стало быть, визуальная картина в таком 3D-сечении достаточно репрезентативна для того, чтобы составить правдивое впечатление о взаимном расположении точек в многомерном пространстве.
И вот что в результате получилось:

Здесь наиболее плотно заселена вершина многомерного конуса, где располагаются белки, свернутые в спираль. Спираль - это наиболее компактная для белков структура, а потому далее за этой вершиной более ничего нет. А вот та "юбочка", которая расширяется во все стороны (в остальных 89997 измерениях она точно так же расширяется) имеет ту причину, что при раскручивании или изломе стиральной структуры увеличивается число различных вариантов, где, по-видимому, рекордсменами должны оказаться полностью развернутые структуры, которые могут изгибаться, как попало.