Privacy Policy Cookie Policy Terms and Conditions Algorithmus von Hopcroft und Tarjan - Wikipedia

Algorithmus von Hopcroft und Tarjan

aus Wikipedia, der freien Enzyklopädie

Der Algorithmus von Hopcroft und Tarjan ist ein Algorithmus aus dem mathematischen Teilgebiet der Graphentheorie. Mit ihm lässt sich in einen beliebigen zusammenhängenden ungerichteten Graphen ohne Brücken eine Orientierung der Kanten finden, so dass der entstehende gerichtete Graph stark zusammenhängend ist. Der Name des Algorithmus geht auf die Computerwissenschaftler John E. Hopcroft und Robert Tarjan zurück.

[Bearbeiten] Algorithmus

  • Gegeben: zusammenhängender ungerichteter Graph G = (V,E) ohne Brücken
  • Gesucht: Orientierung H von G, so dass H stark zusammenhängend ist

Der Algorithmus von Hopcroft und Tarjan geht in zwei Schritten vor: Zuerst werden die Kanten eines Gerüstes orientiert, der über Tiefensuche bestimmt wird, anschließend werden die restlichen Kanten orientiert.

Es sei

  • M die Menge der markierten Knoten,
  • NM die Menge der nicht markierten Knoten,
  • m:V \to \mathbb{N} die Markierung der Knoten,
  • OM die Menge der Bögen, die durch die Orientierung der Kanten von G entstanden sind.

1. Wähle einen beliebigen Knoten x \in V von G aus, der markiert wird:

Setze m(x) = 1; M = \{x\}; NM = V \setminus \{x\}; OM = \emptyset

2. Suche jetzt einen Knoten y von M, der eine maximale Markierung m(y) und gleichfalls adjazent zu einem Knoten z aus NM ist. Markiere jetzt z mit m(z) = m(y) + 1. Orientiere anschließend die Kante {y,z} von y zu z, so dass der Bogen (y,z) entsteht.

Der markierte Knoten z wird aus NM entfernt und zu M hinzugefügt, und der Bogen (y,z) wird zu OM hinzugefügt:

M = M \cup \{z\}; NM = NM \setminus \{z\}; OM = OM \cup \{(y,z)\}

Überprüfe, ob alle Knoten markiert wurden: Gilt M \neq V, dann wiederhole Schritt 2.

3. Es gilt:

  • Alle Knoten wurden markiert: M = V,
  • ein Gerüst von G ist orientiert.

Es lässt sich beweisen, dass alle Kanten, die jetzt noch keine Richtung haben, immer zwei Knoten mit unterschiedlicher Markierung verbinden. Jede nicht orientierte Kante {x,y} mit m(x) > m(y) wird nun von x nach y orientiert, d.h. vom Knoten mit der größeren zum Knoten mit der kleineren Markierung, und zu OM hinzugefügt.

Die auf diese Weise konstruierte Orientierung H = (V,OM) des Graphen G ist stark zusammenhängend.

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -