Ein Verfahren zur topologischen Sortierung, ein Beweis für seine Richtigkeit

7

Definition: Eine erhaltene Invariante einer Zustandsmaschine ist ein Prädikat für Zustände, so dass wann immerPPP.(q)P(q) ist wahr für einen Staat, qq, und qrqr für einen Staat, rr, dann P.(r)P(r) hält.

Definition: Ein Liniendiagramm ist ein Diagramm, dessen Kanten sich alle auf einem Pfad befinden.

Definition: Formal ist eine Zustandsmaschine nichts anderes als eine binäre Beziehung auf einer Menge, außer dass die Elemente der Menge als "Zustände" bezeichnet werden, die Beziehung als Übergangsrelation bezeichnet wird und ein Pfeil im Diagramm der Übergangsrelation ist einen Übergang genannt. Ein Übergang vom Staatqq zu erklären rrwird geschrieben .qrqr

DAG : Directed Acylic Graph

Das folgende Verfahren kann auf jeden gerichteten Graphen angewendet werden :GG

  1. Löschen Sie eine Kante, die sich in einem Zyklus befindet.
  2. Löschen Sie die Kante wenn ein Pfad von Vertex u zu Vertex v vorhanden ist , der <u \ rightarrow v> nicht enthält .<uv><uv>uuvv<uv><uv>
  3. Fügen Sie die Kante <uv><uv> wenn zwischen dem Scheitelpunkt uu und dem Scheitelpunkt v in keiner Richtung ein Pfad vorhanden ist vv.

Wiederholen Sie diese Vorgänge, bis keiner von ihnen anwendbar ist.

Diese Prozedur kann als Zustandsmaschine modelliert werden. Der Startzustand ist GG , und die Zustände sind alle möglichen Digraphe mit den gleichen Eckpunkten wie GG .

(b) Beweise , dass , wenn das Verfahren beendet mit einem Digraph, , dann ein Liniendiagramm mit den gleichen Eckpunkten wie .HHHHGG

Hinweis: Zeigen Sie, dass eine Operation anwendbar sein muss , wenn kein Liniendiagramm ist.HH

(c) Beweisen Sie, dass eine DAG eine erhaltene Invariante des Verfahrens ist.

(d) Beweisen Sie, dass, wenn eine DAG ist und die Prozedur endet, die Laufrelation des endgültigen Liniendiagramms eine topologische Art von .GGGG

Hinweis: Stellen Sie sicher, dass das Prädikat :: es gibt einen gerichteten Pfad von nach eine erhaltene Invariante der Prozedur für zwei beliebige Eckpunkte einer DAG.P(u,v)P(u,v)uuvvu, vu, v

(e) Beweisen Sie, dass die Prozedur endet , wenn endlich ist.GG

Hinweis: Sei die Anzahl der Zyklen, die Anzahl der Kanten und die Anzahl der Eckpunktpaare mit einem gerichteten Pfad (in beide Richtungen) zwischen ihnen. Man beachte, dass wobei die Anzahl der Eckpunkte von . Finden Sie die Koeffizienten so, dass + bp + e + c ein nichtnegativer ganzzahliger Wert ist und bei jedem Übergang abnimmt.sseepppn2pn2nnGGa,b,ca,b,c

Meine Probleme:

Ich habe mich mit den Problemen und aber auch Lösungen für andere Probleme sind willkommen.ddee

Bei Problem konnte ich den Hinweis nicht verstehen und warum er gegeben wird, wie er hilft .dd

Auf meine Weise, zu beweisen , versuche ich zu zeigen, dass bei einer bestimmten Prozedur immer die Reihenfolge der Eckpunkte, die mit Kanten verknüpft sind, im Startgraphen beibehalten wird . Ein Liniendiagramm ist also automatisch eine topologische Sortierung, da die "Vorrangreihenfolge" der Scheitelpunkte erhalten bleibt.ddGG

Aber Verfahren Nummer ist problematisch. Wie kann gezeigt werden, dass es Vorrang hat?33

xxx2000
quelle

Antworten:

1

b. Als Operation11 kann nicht durchgeführt werden, H.Hmuss eine DAG sein. Betrachten Sie eine topologische Art vonH.H. Wie33 kann nicht durchgeführt werden, wenn uu geht voraus vv in der topologischen Art gibt es einen Weg von uu zu vv. Beginnen Sie am anfänglichen Scheitelpunkt in der Sortierung und bewegen Sie sich weiter vorwärts, bis wir einen Scheitelpunkt finden, der mehr als eine ausgehende Kante hat (wenn jeder Scheitelpunkt nur eine ausgehende hat, ist es ein Liniendiagramm). Lassenuu Kanten haben vv und ww und lass vv vorausgehen ww. Dann gibt es einen Weg vonvv zu ww, die einen Weg von gibt uu zu ww das schließt nicht ein uwuw, ein Widerspruch als Operation 22 kann hier durchgeführt werden.

c. Da das Löschen von Kanten die DAG-Eigenschaft nicht ändert, müssen wir nur überprüfen33. Ein Zyklus wird nur gebildet, wenn wir eine Kante hinzufügenuvuv, als es einen Weg gab von vv zu uubereits. Wie33 fügt solche Kanten nicht hinzu, DAG wird beibehalten.

d. LassenH.H erhalten werden von GGdurch eine einzige Operation. Wir zeigen, dass jede topologische Art vonH.H gilt auch für GG(Beachten Sie, dass das Gegenteil nicht wahr sein muss). Dafür müssen wir zeigen, dass es einen Weg von gibtuu zu vv im GG, dann gibt es Weg von uu zu vv im H.Hzu. Einige Pfade können nur unterbrochen werden, wenn Kanten entfernt werden. Also klar Betrieb33wird hier kein Problem verursachen. Auch in22Wir entfernen nur diese Kanten uvuv wo gibt es schon einen weg von uu zu vv. Also für jeden Weg vonww zu zzWenn wir diese Kante enthalten, können wir diese Kante einfach durch den Pfad von ersetzen uu zu vv, einen Pfad von beibehalten ww zu zz im H.H. UndGG ist DAG, also 11 passiert nie.

e. Beobachten Sie zuerst, wie jeder vonss, ee und ppmit jeder Operation ändern. Mit Betrieb11, ss reduziert sich um mindestens 11, ee reduziert um 11 und pp kann um nahe abnehmen n2n2(Fast alle Pfade könnten unterbrochen sein). Mit22, ss könnte um reduzieren 11 (allerdings nicht notwendig), ee reduziert um 11 und ppist unverändert. Mit33, ss ändert sich nicht, ee erhöht sich um 11 und pp erhöht sich um mindestens 11. Beachten Sie, dass wir auf dem Weg zum Liniendiagramm versuchen, die Anzahl der Kanten zu verringern (ee), Zyklen entfernen (ss) während zunehmen pp. Also reineins+bp+de+cas+bp+de+c, wir erwarten eina und dd positiv sein und bbnegativ sein. Der schlimmste Fall ändert sich ins,e,ps,e,p für jede Operation sind

sep1.- -1- -1- -n22.0- -103.011

1.2.3.s100e111pn201

Wie s nie erhöht, können wir machen einso groß wie wir wollen. Da können wir skalierenein,b,d durch eine Konstante, lassen Sie uns behalten d=1. Mit diesen Beobachtungen können wir einen möglichen Satz von Werten für erhaltenein,b,d wie 2n2, - -2 und 1beziehungsweise. Und wählenc als negativ des Wertes am Liniendiagramm.

polkjh
quelle