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

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)». Мы можем изменить условие, чтобы сделать его наименьшей общей подпоследовательностью, которая найдет один элемент из набора в качестве наименьшей подпоследовательности.

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

Diplav
источник
1
время будет экспоненциальным в N
Сашо Николов