Учитывая набор семейство подмножеств универсума . Пусть и мы хотим ответить на это .
Я ищу структуру данных, которая позволит мне быстро ответить на это. Мое приложение из теории графов, где я хочу посмотреть, оставляет ли вершина и ее окрестности какие-либо изолированные вершины, и для каждого списка вершин все изолированные вершины, которые он оставляет.
Я хочу создать полный набор или в конечном итоге таблица, хранящая истинные ложные сведения о том, какие множества являются подмножеством друг друга.
Пусть , и , предположим, что
Мы можем сгенерировать матрицу содержания (двудольный граф) за время а затем можем создать таблицу всех сравнений за за каждый набор , пройдя все элементы всех других наборов и пометить его , как не является подмножеством , если они элемент не находится в . Всего за раз.
Можем ли мы сделать что-нибудь быстрее? В частности, возможно ли время или нет?
Я нашел несколько статей по теме:
Простой субквадратичный алгоритм для вычисления частичного порядка подмножеств (1995), который дает алгоритм .
Частичный порядок подмножеств: вычисления и комбинаторика немного улучшают вышеприведенное, но также утверждают, что вышеупомянутая статья решает проблему за время где - максимальное количество множеств, совместно использующих общий элемент, но я не мог понять этот результат.
В статье Между и O ( n α ) авторы показывают, как в графе найти связанные компоненты после удаления замкнутой окрестности вершины с использованием умножения матриц. Это может быть использовано для вычисления множества включений множеств путем нахождения всех компонентов, являющихся синглетонами, со временем выполнения .
Также это обсуждение на форуме связано с тем, что является самым быстрым способом проверки наличия набора? что подразумевает нижнюю оценку .