Ich stieß beim Experimentieren mit Klassifikationsalgorithmen auf das folgende algorithmische Problem. Elemente werden in eine Polyhierarchie klassifiziert, was ich als Poset mit einer einzigen Wurzel verstehe. Ich muss das folgende Problem lösen, das dem set cover problem sehr ähnelt.Auswahl von k Sub-Posets
Ich habe meine Latex-Ed Problembeschreibung here hochgeladen.
Einen Approximationsalgorithmus zu entwickeln, der 1 & 2 erfüllt, ist ziemlich einfach. Beginne einfach an den Scheitelpunkten von G und "gehe nach oben" oder fange an der Wurzel an und gehe "nach unten". Angenommen, Sie beginnen bei der Wurzel, erweitern iterativ die Scheitelpunkte und entfernen dann unnötige Scheitelpunkte, bis Sie mindestens k Untergitter haben. Die Approximationsgrenze hängt von der Anzahl der untergeordneten Elemente eines Stützpunkts ab, was für meine Anwendung in Ordnung ist.
Weiß jemand, ob dieses Problem einen richtigen Namen oder vielleicht die Tree-Version des Problems hat? Ich wäre daran interessiert herauszufinden, ob dieses Problem NP-schwer ist, vielleicht hat jemand Ideen für ein gutes NP-schweres Problem zu reduzieren oder hat einen polynomischen Algorithmus, um das Problem zu lösen. Wenn Sie beide haben, sammeln Sie your million dollar price. ;)
Ich verstehe nicht. Wenn Sie S '= {r} wählen, wobei r die Wurzel ist, dann gilt \ sigma (r) = V. Bedeutet man, dass sigma (s) alle Elemente kleiner oder gleich r und größer oder gleich s ist (wo immer kleiner die Gitterordnung ist? – deinst
@deinst Deshalb ist 'k' da: um das Problem interessanter zu machen :)' S = {r} 'ist die Lösung für' k = 1'. – Bolo
@dareios Sie möchten möglicherweise zwei kleinere Fehler in der Problembeschreibung korrigieren. 1) Der vorletzte Absatz ist im allgemeinen nicht wahr, hängt von der Wahl von 'G' ab (außer ich vermisse etwas, wenn' G' zwei Kinder enthält und nichts mehr, dann ist 'S = G' eine Lösung mit' l = k = 2 '. 2) Im drittletzten Absatz meinen Sie wahrscheinlich: "[...] wir wollen immer noch ** 2 ** behalten." – Bolo