Я столкнулся с следующей алгоритмической проблемой, экспериментируя с алгоритмами классификации. Элементы классифицируются в многоиерархию, я понимаю, что это poset с одним корнем. Я должен решить следующую проблему, которая очень похожа на set cover problem.Выбор k подпозиций
Я загрузил (а) проблему с Latex-ed Описание here.
Разработка алгоритма аппроксимации, который удовлетворяет 1 & 2 довольно просто, только начинайте с вершин G и «подходите» или начинайте с корня и «идите вниз». Скажем, вы начинаете с корня, итеративно расширяете вершины, а затем удаляете ненужные вершины, пока не получите не менее k подрешеток. Оценка аппроксимации зависит от количества дочерних элементов вершины, что подходит для моего приложения.
Кто-нибудь знает, имеет ли эта проблема собственное имя или, может быть, древовидная версия проблемы? Мне было бы интересно узнать, является ли эта проблема NP-hard, может быть, у кого-то есть идеи по хорошей NP-жесткой проблеме, чтобы уменьшить или имеет полиномиальный алгоритм для решения проблемы. Если вы оба собираете your million dollar price. ;)
Я не понимаю. Если вы выберете S '= {r}, где r - корень, то \ sigma (r) = V. Вы имеете в виду, что сигма (ы) - все элементы, которые меньше или равны r и больше или равны s (где все меньше и больше - частичный порядок решетки)? – deinst
@deinst Вот почему 'k' есть: сделать проблему более интересной :)' S = {r} '- это решение для' k = 1'. – Bolo
@dareios Возможно, вы захотите исправить две незначительные ошибки в заявлении проблемы. 1) Второй последний абзац не является истинным в целом, зависит от выбора 'G' (если я что-то не упускаю, если' G' содержит двух детей и ничего больше, тогда 'S = G' является решением с' l = k = 2'. 2) В третьем последнем абзаце вы, вероятно, имеете в виду: «[...] мы все еще хотим сохранить ** 2 **». – Bolo