Алгоритмы точного вычисления гиперобъема
Постановка задачи
- точка в -мерном пространстве.
Точка доминирует точку (), если .
- множество из точек в -мерном пространстве таких, что - никакая точка не доминируется другой точкой из этого множества.
- гиперобъем множества .
В частности, если , то .
Задача: найти точное значение гиперобъема множества из точек -мерного пространоства.
Алгоритм включения-исключения (Inclusion-Exclusion Algorithm, IEA)
Самый простой алгоритм нахождения гиперобъема базируется на идее комбинаторной формулы включения-искючения. Все множество представляется в виде объединения гиперкубов (), соответствующих отдельным точкам .
После этого объем всего множества вычисляется по формуле:Объем пересечения гиперкубов легко считается как произведение по каждой координате минимального значения этой координаты среди всех точек, которым соответствуют гиперкубы.
Таким образом, в этом алгоритме перебираются все подмножества точек множества , для каждого множества находится гиперобъем пересечения соответствующих гиперкубов и он прибавляется с соответствующим знаком к ответу. Время работы этого алгоритма составляет .
Алгоритм LebMeasure
Алгоритм LebMeasure обрабатывает точки множества по очереди. Для каждой очередной точки находится объем некоторого максимального по включению гиперкуба, доминируемого эксклюзивно только этой точкой и она заменяется на некоторое множество порожденных точек, которые доминируют оставшуюся область, доминировшуюся до этого точкой .
Например, если изначально было четыре точки в трехмерном пространствеОбработка точек продолжается, пока все точки не будут обработаны. Таким образом, время работы алгоритмы напрямую зависит от количества порожденных точек. Легко заметить, что таких точек не более, чем , поскольку каждая координата каждой порожденной точки равна соответствующей координате некоторой точки исходного множества .