Graph-Färbung Algorithmus: typische scheduling-problem
Trainiere ich code-Probleme wie UvA-und ich habe diese, in denen ich müssen, da eine Reihe von n Prüfungen und k Studenten, die in den Prüfungen finden, ob es möglich ist zu planen, dass alle Prüfungen in zwei Zeitfenster.
Eingang
Mehrere Testfälle. Jeder beginnt mit einer Zeile, die 1 < n < 200 verschiedene Untersuchungen geplant werden.
Die 2. Zeile hat die Zahl der Fälle, k, in denen es existiert mindestens 1 student eingeschrieben in 2 Untersuchungen. Dann, k Linien Folgen, die jeweils 2 zahlen, die angeben, die paar Prüfungen für jeden Fall vor.
(Eine Eingabe mit n = 0 bedeutet Ende der Eingabe und nicht verarbeitet werden).
Ausgabe:
Sie haben zu entscheiden, ob der Prüfungsplan ist möglich oder nicht für 2 Zeitschlitze.
Beispiel:
Eingang:
3
3
0 1
1 2
2 0
9
8
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0
Ausgabe:
NOT POSSIBLE.
POSSIBLE.
Ich denke, dass der Allgemeine Ansatz der graph-Färbung, aber ich bin wirklich ein Anfänger und ich kann gestehen, dass ich hatte etwas Mühe, das problem zu verstehen.
Wie auch immer, ich versuche, es zu tun und dann schicken Sie es ab.
Könnte mir bitte jemand helfen dabei einige code für dieses problem?
Ich Griff zu haben und zu verstehen, diese algo nun in Ordnung, es später zu benutzen, über und über.
Ich lieber C oder C++, aber wenn du willst, Java ist in Ordnung für mich 😉
Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie richtig, dass dies ein graph coloring problem. Insbesondere müssen Sie bestimmen, ob der graph ist 2-färbbar. Dies ist trivial: führen Sie eine DFS auf dem Graphen färben abwechselnd schwarzen und weißen Knoten. Wenn Sie einen Konflikt, dann ist der graph nicht 2-FĂ arbbar, und die Planung ist unmöglich.
Dieser läuft in
O(|V| + |E|)
mit angrenzens Liste.in der Praxis die Frage ist, wenn Sie die Partitionierung der n-Untersuchungen in zwei Teilmengen A und B (zwei Zeitschlitze), so dass für jedes paar in der Liste der k-Prüfung Paaren, die entweder a gehört zu A und b gehört zu B "oder" a gehört zu B und b gehört zu A.
Haben Sie Recht, es ist ein 2-coloring-problem ist; es ist ein graph mit n Knoten und es gibt eine ungerichtete Bogens zwischen den Eckpunkten a und b iff der paar oder in der Liste angezeigt wird. Dann ist die Frage über das Diagramm 2-einfärbbarkeit", die zwei Farben, die die partition Zeitschlitze a und B Ein.
Einer 2-FĂ arbbar graph ist ein "zweigeteilter graph". Sie können testen, für bipartiteness einfach finden Sie http://en.wikipedia.org/wiki/Bipartite_graph.
Habe ich übersetzt das polygenelubricant ist pseudocode an JAVA-code, um eine Lösung für mein problem. Wir haben eine Vorlage-Plattform (wie uva/ACM-Wettbewerbe), so weiß ich, es ging sogar in die problem mit mehr und härtesten Fällen.
Hier ist es:
Habe ich nicht optimiert, doch habe ich nicht die Zeit haben, Recht neue, aber wenn Sie möchten, können Sie/können wir diskutieren es hier.
Hoffe es gefällt Euch! 😉
colorify
noch ein Wort? =) Ich einfach irgendwie gemacht, es auf den Punkt =) Gute Arbeit in der Umsetzung und immer es zu gehen! Ich mag contest-type-Algorithmus Probleme.