Абстрактная проблема. Представьте, что мир - это куб, состоящий из множества кубических ячеек по всем измерениям куба.
Теперь представьте, что вы можете арендовать определенные объемы на определенные периоды времени, например: вы арендуете объем 3x3x3 с координатами [1, 1, 1] - [3, 3, 3] на 2012 год. Затем вы арендовать объем 2x2x2 с координатами [4, 1, 1] до [5, 2, 2] на 2012 год.
Теперь представьте, что вы можете выпустить тома, которые вы арендовали, в периоды, за которые вы их приобрели. Например, арендовав тома, как определено выше, вы выделили объем ячейки 5x2x1 с координатами [1, 1, 1] - [5, 2, 1] для Q1'2012. Затем вы выходите из ячейки [5, 2, 2] за весь 2012 год.
Вы можете арендовать одни и те же объемы в нескольких «договорах аренды» и сдавать их в аренду, также в нескольких «договорах».
Вопрос в том, какие структуры данных и алгоритмы можно использовать для ответов на такие вопросы, как:
- Когда я могу выпустить определенную клетку?
- Какие клетки я могу выпустить за определенный период?
- Могу ли я выпустить ячейки с определенными координатами, не включая все измерения (например, кто-то хочет арендовать любые ячейки с координатой X между 2 и 4 на 2012 год)?
Подход с использованием грубой силы (попробуйте каждую комбинацию для проверки) не подлежит сомнению. Набор данных, который мне нужен, чтобы работать, является 5-мерным (с большим количеством измерений, которые скоро появятся), а размеры в среднем составляют 100-200 элементов.