прямо сейчас я застрял в решении следующей «полу»-математической задачи.
Я хотел бы разделить n-мерное ограниченное пространство (точнее, гиперкуб)
D={(x_1, ...,x_n), x_i \in IR and -limits<=x_i<=limits \forall i<=n}
На более мелкие кубики.
Это означает, что я хотел бы указать n,limits,m
, где m
было бы количеством разделов на сторону куба - 2*limits/m
было бы длиной маленьких кубов, и я получил бы m^n
таких кубов.
Теперь я хотел бы вернуть вектор векторов, содержащих некоторые различные координаты этих маленьких кубов. (или, возможно, можно было бы представить кубы как объекты, которые характеризуются вектором, указывающим на «левый» внешний угол?)
По сути, я понятия не имею, возможно ли что-то подобное даже с использованием С++. Реализация этого для фиксированного n не представляет проблемы. Но я хотел бы, чтобы пользователь мог свободно выбирать размер.
Предыстория: что-то подобное было бы бесценно для оптимизации. Где можно разделить пространство на более мелкие и использовать, например. генетические алгоритмы на каждом из подпространств, а затем сравнить результаты. Таким образом, можно было избежать огромных начальных популяций и значительно улучшить результаты поиска. Также мне просто любопытно, есть ли sth. вроде это выполнимо :)
Мое предложение: использовать деревья B+?