Ich bin mir nicht sicher, ob dies wirklich ein "Farbgebungsproblem" ist, genauso wie es ein Aufgaben-/Linearprogrammierungsproblem ist. Ich habe keine Expertise in beiden, also verzeihen Sie keine Noob-Ness, die folgen könnte. Aber ich habe das Gefühl, dass dieses Problem fast definitiv gelöst/untersucht worden sein muss, ich konnte einfach nichts finden, nachdem ich viele der Graphalgorithmen auf http://en.wikipedia.org/wiki/Category:Graph_algorithms durchgesehen habe. Ich hatte gehofft, ein paar Hinweise in die richtige Richtung zu bekommen.Vertex-Coloring/Assignment um die Anzahl der "Farbkreuzungen" zu minimieren
Die „Problem-Anweisung“ kocht effektiv nach unten zu:
Es gibt zwei Arten von Eckpunkten in der Grafik: Router und Kern.
Kerne sind NUR mit Routern verbunden. Jeder Kern ist nur mit einem einzelnen Router verbunden. Und jede hat eine vom Benutzer eingegebene/definierte "Farbe". (Bei meinem speziellen Problem ist die Farbe auf eine von etwa 4/5 möglichen Farben beschränkt). Ihre Farbe kann nicht geändert werden, es ist ein Eingabeparameter. (Kerne sind die Quadrate in der Abbildung unten)
Router sind mit Kernen sowie anderen Routern verbunden. Sie haben keine "Farbe" zugewiesen. Das Zuweisen einer Farbe ist Teil des Ziels des Programms/Algorithmus. (Router sind die kreisförmigen Scheitelpunkte im Bild unten.)
Ziel des Programms ist es, jedem Router im Graphen Farben zuzuweisen, so dass die Anzahl der "Übergänge"/Kanten zwischen den Scheitelpunkten einer anderen Farbe minimiert wird .
(Eine alternative Sicht. Im Wesentlichen Sie ein Diagramm gegeben, wo einige Eckpunkte sind gefärbt, andere sind nicht Ziel ist es, diejenigen zu färben, die nicht so sind, dass die Anzahl der Kanten zwischen den Scheitelpunkten unterschiedlicher Farbe ist minimiert.)
Ich konnte dies (ich bin mir ziemlich schlecht) als ein Integer-Linear-Programm formulieren und habe eine Lösung/Ansatz mit LP-Solve erstellt. Ich habe auch eine eigene Heuristik. Ich würde gerne die "richtigen"/bekannten/anderen Lösungsansätze kennenlernen ?!
Vielen Dank!
könnten Sie 4. etwas mehr klären? Sieht für mich so aus, als könnten Sie jeden Vertex rot färben, und die Antwort wäre 0 (oder wenn Sie nicht zwei Farben nebeneinander haben dürfen, dann muss die Antwort gleich der Anzahl der Kanten zwischen den Routern sein) –
ist die Grafik azyklisch? – goat
@robertking: Ich hätte klarer sein sollen. Sie können die Farben der "Kerne" (die quadratischen Scheitelpunkte im Diagramm) nicht ändern/zuweisen. In der Tat erhalten Sie eine teilweise farbige Grafik. Ziel ist es, den Rest (die Router) zu färben. Hoffentlich ist das besser? – ryecatcher