Наименьшее множество, которое пересекает некоторые заданные множества


16

Пусть - множества, которые могут иметь общие элементы. Я ищу наименьшее множество такое, что .S1,S2,,SnXi,XSi

У этой проблемы есть имя? Или это сводится к какой-то известной проблеме?

В моем контексте описывают элементарные циклы сильно связного компонента, и я ищу наименьший набор вершин который пересекает все циклы.S1,,SnX

Ответы:


25

Ваша первая проблема - это трансверсальная проблема гиперграфа (она же проблема HITTING SET ). Вторая проблема - это проблема FEEDBACK VERTEX SET . Обе проблемы являются NP- полными.


6

Если вы хотите решить реальные случаи, вам, вероятно, понравится это:

http://www.sagemath.org/doc/reference/sage/graphs/digraph.html#sage.graphs.digraph.DiGraph.feedback_vertex_set

Nathann


1
Спасибо за этот приветственный указатель. Использование Sage не вариант для меня, но приятно прочитать подробности о реальной реализации.
ADL

-3

Если мы рассматриваем S1, S2 ... Sn как различные последовательности и если нам нужна самая длинная подпоследовательность, которая является общей в этих последовательностях, то этот тип проблемы называется «Самая длинная общая подпоследовательность (LCS)». Мы можем изменить условие, чтобы сделать его наименьшей общей подпоследовательностью, которая найдет один элемент из набора в качестве наименьшей подпоследовательности.

Пожалуйста, смотрите примеры динамического программирования, вы получите подробную информацию ...


1
время будет экспоненциальным в N
Сашо Николов
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.