Was ist die Komplexität dieses Diagrammproblems?

16

Bei einer einfachen ungerichteten Graphen G , finden sie eine Teilmenge A von Eckpunkten, so dass

  1. für jeden Knoten xA mindestens die Hälfte der Nachbarn von x ebenfalls in A und

  2. Die Größe von A ist minimal.

Das heißt, wir suchen nach einem Cluster, in dem mindestens die Hälfte der Nachbarschaft jedes internen Scheitelpunkts intern bleibt. Die bloße Existenz eines solchen Clusters ist offensichtlich, da die gesamte Scheitelmenge V(G) immer die Eigenschaft 1 hat. Aber wie schwer ist es, den kleinsten (nicht leeren) solchen Cluster zu finden?

Gibt es einen Standardnamen für dieses Problem? Was ist über seine Komplexität bekannt?

Andras Farago
quelle
2
Es scheint eine Variante des Problems der zufriedenstellenden Partition zu sein. Ich weiß nicht, ob Ihre Variante bekannt ist und sich als NPC erwiesen hat. aber wahrscheinlich sollte eine Reduktion von k-clique funktionieren: Verknüpfe jeden Knoten vi des ursprünglichen Graphen mit k+1 Knoten einer Ci "externen Clique" der Größe 2(k+1) (jeder Knoten hat seine externe Clique). Dann können Sie eine nichttriviale Menge A der Größe k genau dann finden, wenn a k-clique existiert im Originaldiagramm (Sie müssen mindestens einen Knoten auswählen, aber Sie müssen jede externe Clique vermeiden). Aber es ist nur eine Idee; Wenn ich genug Zeit habe, versuche ich zu sehen, ob die Reduzierung korrekt ist.
Marzio De Biasi
@MarzioDeBiasi Vielen Dank, nach einiger Suche habe ich herausgefunden, dass das Problem der zufriedenstellenden Partition tatsächlich zusammenhängt. In jeder Variante, die ich finden konnte, suchen sie jedoch nach einer Partition und nicht nach einer einzelnen Menge. Es ist nicht klar, wie sie zusammenhängen. In Ihrer Reduktion entspricht eine k Klasse des Originalgraphen nicht der Definition , es sei denn, ich habe etwas falsch verstanden , da jeder Knoten darin k1 interne Nachbarn, aber aufgrund des hinzugefügten externen Nachbarn mindestens k+1 externe Nachbarn hat Cliquen.
Andras Farago
2
Ich denke, dieses Problem ist als "defensive Allianz" bekannt
daniello
1
@daniello: toll, ich habe in der Umfrage IG Yero, JA Rodriguez-Velazquez, "Defensive Allianzen in Grafiken: eine Umfrage", 2013 gesucht, aber das Wort "halb" nicht gefunden; Wenn ich genug Zeit habe, werde ich es sorgfältig lesen. Es ist wahrscheinlich, dass das OP-Problem bereits bekannt ist!
Marzio De Biasi
2
Es scheint so formuliert zu sein, dass "jeder Scheitelpunkt mindestens so viele Nachbarn innen wie außen hat", wie in der Frage bis zur Rundung und möglicherweise einschließlich / nicht einschließlich des Scheitelpunkts selbst in der Zählung
daniello

Antworten:

6

Dies ist eine Reduktion von Clique zu Ihrem Problem.

Wir beginnen mit einer Instanz von Clique: ein Graph und eine ganze Zahl k , lassen V = { v 1 , v 2 , . . . , v n } .GkV={v1,v2,...,vn}

Clique bleibt NPC auch unter der Einschränkung , dass (Nachweis Skizze: wenn m a x ( d e g ( v i ) > 2 ( k - 1 ) dann addiere ein K t mit t = 2 ( k - 1 ) - m a xmax(deg(vi))2(k1)max(deg(vi)>2(k1)Kt und verbinde es mit allen Knoten von G und frage nach einer Clique der Größe k = k + t im neuen Graphen).t=2(k1)max(deg(vi))Gk=k+t

Wir nehmen also an , dass in m a x ( d e g ( v i ) ) 2 ( k - 1 ) ist . Für jeden Knoten v i , für die d e g ( v i ) < 2 ( k - 1 ) wir eine "externe" Clique erstellen C i der Größe 2 ( k + 1 ) + 1 (jeder Knoten von CGmax(deg(vi))2(k1)videg(vi)<2(k1)Ci2(k+1)+1 clique hat mindestens 2 ( k + 1 ) Nachbarn.Ci2(k+1)

Wenn ist der Grad der v i verbinden wir v i zu 2 ( k - 1 ) - d e g ( v i ) Knoten C i .deg(vi)vivi2(k1)deg(vi)Ci

Im resultierenden hat jedes v i Grad 2 ( k - 1 ) ; so | A | k, weil mindestens ein Eckpunkt ausgewählt werden muss.Gvi2(k1)|A|k

Es ist klar, dass, wenn einer der Eckpunkte von in A enthalten ist, mindestens 2 ( k + 1 ) / 2 = k + 1 Knoten darin ebenfalls eingefügt werden müssen. Beachten Sie, dass , wenn ein ursprünglicher Knoten d e g ( v i ) < k - 1 dann wenigstens einen Knoten der verknüpften C i enthalten sein müssen, was zu | A | > k .CiA2(k+1)/2=k+1deg(vi)<k1Ci|A|>k

Wir können also eine Menge der Mindestgröße | erstellen A | = k genau dann, wenn G eine Clique der Größe k enthält .A|A|=kGk

Ein Beispiel für die Reduktion, bei der wir fragen, ob der Graph der durch die gelben Knoten und die fetten Kanten dargestellt wird, eine Clique der Größe k = 3 (ein Dreieck) enthält.Gk=3

befriedigende Problemvariante 30CC0991E0BCCCD16E41CBD9CD3EEECC

Die blauen Knoten (zur besseren Lesbarkeit gruppiert) sind werden die roten Kanten die Verbindungen zwischen den Knoten von G mit d e g ( v i ) < 2 ( k - 1 ) .K9Gdeg(vi)<2(k1)

Marzio De Biasi
quelle
@WillardZhan: Da jeder Scheitelpunkt von konstruktionsbedingt einen Grad 2 ( k - 1 ) hat , muss A , wenn er einen Scheitelpunkt enthält, mindestens 2 ( k - 1 ) / 2 = k - 1 Nachbarn (und die gleichen) enthalten gilt für alle Eckpunkte von A ), also | A | k . Die "Mindestgröße" k kann nur erreicht werden, wenn A eine Clique der Größe k ist . G2(k1)A2(k1)/2=k1A|A|kkAk
Marzio De Biasi
@WillardZhan: Ich habe dem Start-Clique-Problem eine weitere Bedingung hinzugefügt (aber es sollte NPC bleiben) ... Ich überprüfe es immer noch (nicht vollständig davon überzeugt, dass es korrekt ist).
Marzio De Biasi
1
Ja, jetzt funktioniert es perfekt (obwohl es im Ausdruck von t sollte ). Vielleicht werde ich meine Kommentare löschen? kt
Willard Zhan
@WillardZhan: Ich denke, es ist richtig, denn in diesem Absatz beziehe ich mich auf die Reduktion von Clique [Instanz ] auf Clique + Nebenbedingung m a x ( d e g ( v i ) ) 2 ( k - 1 ) [Instanz ( G ' , k ' ) ]. t ist die Anzahl der Knoten (Clique), die zu G hinzugefügt werden müssen, um die neue Instanz von Clique abzurufen, die die Einschränkung festlegt. (G,k)max(deg(vi))2(k1)(G,k)t
Marzio De Biasi