• Keine Ergebnisse gefunden

4. Digraphen mit negativen Kantengewichten 4.1 Grunds¨atzliches Betrachte Startknoten

N/A
N/A
Protected

Academic year: 2021

Aktie "4. Digraphen mit negativen Kantengewichten 4.1 Grunds¨atzliches Betrachte Startknoten"

Copied!
23
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

4. Digraphen mit negativen Kantengewichten

4.1 Grunds¨ atzliches

Betrachte Startknoten s und einen Kreis C mit Gesamtl¨ ange < 0.

t t t t

t t

t t

t - - ppppppppp -

J J

J J ^ -

Q Q Q Q Q k

+ -

s

k

0

k

1

k

2

k

3

k

4

1 3 2 v

1 1

1

−5 1 C

Sollte ein Pfad von s nach C und von C nach v existieren, so ist ein k¨ urzester Pfad von s nach v nicht definiert.

EADS 4.1 Grunds¨atzliches 485/530

ľErnst W. Mayr

(2)

Falls aber die Gesamtl¨ ange des Kreises C ≥ 0 ist,

t t t t

t t

t t

- - ppppppppp - t J

J

J J ^ -

Q Q Q Q Q k

+ -

s

k

0

k

1

k

2

k

3

k

4

1 3 2 v

1

1 1

−3 1

dann ist der k¨ urzeste Pfad wohldefiniert. Probleme gibt es also nur dann, wenn G einen Zyklus negativer L¨ ange enth¨ alt.

EADS 4.1 Grunds¨atzliches 486/530

ľErnst W. Mayr

(3)

Dijkstra’s Algorithmus funktioniert bei negativen Kantenl¨ angen nicht:

s

s

s

@

@

@

@ @

s v

w

3 −2

4

Bei diesem Beispielgraphen (der nicht einmal einen negativen Kreis enth¨ alt) berechnet der Dijkstra-Algorithmus die minimale

Entfernung von s nach w f¨ alschlicherweise als 3 (statt 2).

EADS 4.1 Grunds¨atzliches 487/530

ľErnst W. Mayr

(4)

4.2 Modifikation des Bellman-Ford-Algorithmus

B

k

[i] gibt die L¨ ange eines k¨ urzesten gerichteten s-i-Pfades an, der aus h¨ ochstens k Kanten besteht. Jeder Pfad, der keinen Kreis enth¨ alt, besteht aus maximal n − 1 Kanten. In einem Graphen ohne negative Kreise gilt daher:

∀i ∈ V : B

n

[i] ≥ B

n−1

[i]

Gibt es hingegen einen (von s aus erreichbaren) Kreis negativer L¨ ange, so gibt es einen Knoten i ∈ V , bei dem ein Pfad aus n Kanten mit der L¨ ange B

n

[i] diesen Kreis h¨ aufiger durchl¨ auft als jeder Pfad aus maximal n − 1 Kanten der L¨ ange B

n−1

[i].

Demnach gilt in diesem Fall:

B

n

[i] < B

n−1

[i]

EADS 4.2 Modifikation des Bellman-Ford-Algorithmus 488/530

ľErnst W. Mayr

(5)

Man kann also in den Algorithmus von Bellman-Ford einen Test auf negative Kreise einbauen, indem man auch f¨ ur alle i ∈ V B

n

[i]

berechnet und am Ende den folgenden Befehl einf¨ ugt:

for i := 1 to n do

if B

n

[i] < B

n−1

[i] then stop

” Negativer Kreis“ fi

EADS 4.2 Modifikation des Bellman-Ford-Algorithmus 489/530

ľErnst W. Mayr

(6)

4.3 Modifikation des Floyd-Algorithmus

Falls kein negativer Kreis existiert, funktioniert der Algorithmus weiterhin korrekt.

t

t

t

t t

t

* H H

H H H j

? H H H H H Y 6 v

1

v

2

v

3

v

4

v

5

v

6

1 1

1 1 1

−6

c

616

= 5 = c

516

c

661

= −6 = c

561

c

611

= min{c

511

, c

516

+c

561

} = −1

⇒ der Graph enth¨ alt einen negativen Kreis, gdw ein c

nii

< 0 existiert.

EADS 4.3 Modifikation des Floyd-Algorithmus 490/530

ľErnst W. Mayr

(7)

Man kann also in den Algorithmus von Floyd einen Test auf negative Kreise einbauen, indem man am Ende den folgenden Befehl einf¨ ugt:

for i := 1 to n do if c

nii

< 0 then stop

” Negativer Kreis“ fi

EADS 4.3 Modifikation des Floyd-Algorithmus 491/530

ľErnst W. Mayr

(8)

4.4 Der Algorithmus von Johnson

Definition 113

Sei d : A → R eine Distanzfunktion. Eine Abbildung r : V → R

heißt Rekalibrierung, falls gilt:

(∀(u, v) ∈ A)[r(u) + d(u, v) ≥ r(v)]

Beobachtung: Sei r eine Rekalibrierung (f¨ ur d). Setze d

0

(u, v) := d(u, v) + r(u) − r(v). Dann gilt:

d

0

(u, v) ≥ 0

EADS 4.4 Der Algorithmus von Johnson 492/530

ľErnst W. Mayr

(9)

Sei u = v

0

→ · · · → v

k

= v ein Pfad. Dann ist:

d-L¨ ange :=

k−1

X

i=0

d(v

i

, v

i+1

) Demnach ist:

d

0

-L¨ ange =

k−1

X

i=0

d

0

(v

i

, v

i+1

)

=

k−1

X

i=0

(d(v

i

, v

i+1

) + r(v

i

) − r(v

i+1

))

=

k−1

X

i=0

d(v

i

, v

i+1

) + r(v

0

) − r(v

k

)

Also ist ein d-k¨ urzester Pfad von u (= v

0

) nach v (= v

k

) auch ein d

0

-k¨ urzester Pfad und umgekehrt. Nach einer Rekalibrierung kann man also auch die Algorithmen anwenden, die eine nichtnegative Distanzfunktion d voraussetzen (z.B. Dijkstra).

EADS 4.4 Der Algorithmus von Johnson 493/530

ľErnst W. Mayr

(10)

Berechnung einer Rekalibrierung:

~

z

~ 0

0 0 s

s

s

' s

&

$

% s

u

v w

Graph G

d : A → R

F¨ uge einen neuen Knoten s hin- zu und verbinde s mit jedem an- deren Knoten v ∈ V durch eine Kante der L¨ ange 0.

Berechne sssp von s nach allen anderen Knoten v ∈ V (z.B. mit Bellman-Ford). Sei r(v) die dadurch berechnete Entfernung von s zu v ∈ V . Dann ist r eine Rekalibrierung, denn es gilt:

r(u) + d(u, v) ≥ r(v) .

EADS 4.4 Der Algorithmus von Johnson 494/530

ľErnst W. Mayr

(11)

5. Zusammenfassung

d ≥ 0 d allgemein

sssp D (Fibonacci): O(m + n · log n) B-F: O(n · m) D (Radix): O(m + n √

log C) apsp D: O(n · m + n

2

min{log n, √

log C}) J: O(n · m + n

2

log n)

F: O(n

3

)

(∗)

F: O(n

3

)

Bemerkung

(∗)

: In der Praxis ist der Floyd-Algorithmus f¨ ur kleine n besser als Dijkstra’s Algorithmus.

EADS 5.0 Der Algorithmus von Johnson 495/530

ľErnst W. Mayr

(12)

6. Transitive H¨ ulle

6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive H¨ ulle Ring Z (+ , ×)

% -

Gruppe Halbgruppe

Semiring N (+, ×)

% -

Halbgruppe Halbgruppe Wir betrachten den (kommutativen) Semiring ¨ uber R ∪ {∞} mit den Operationen min und +. F¨ ur jede der beiden Operationen haben wir ein Monoid. Es gilt das Distributivgesetz

a + min{b, c} = min{a + b, a + c}.

Normale Matrixmultiplikation:

A = (a

ij

)

1≤i,j≤n

, B = (b

ij

)

1≤i,j≤n

, I = (δ

ij

)

1≤i,j≤n

C = A · B = (c

ij

)

1≤i,j≤n

, c

ij

=

n

X

k=1

a

ik

· b

kj

EADS 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive H¨ulle 496/530 ľErnst W. Mayr

(13)

Entsprechend f¨ ur Min-Plus:

c

ij

= min{a

ik

+ b

kj

; 1 ≤ k ≤ n}

r r

r r r r

XX XX

X X

X X X X X X

H H H H H H

Z Z Z Z Z Z .. .

v

i

u

n

w

j

u

1

u

2

a

ik

= d(v

i

, u

k

) b

kj

= d(u

k

, w

j

)

EADS 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive H¨ulle 497/530 ľErnst W. Mayr

(14)

Anwendung:

k¨ urzeste Wege von v

i

nach w

j

in einem Graph (A = B); dabei ist

I

min,+

=

0 ∞

. ..

∞ 0

EADS 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive H¨ulle 498/530 ľErnst W. Mayr

(15)

Sei A Entfernungsmatrix, A = (a

ij

)

1≤i,j≤n

= (d(v

i

, v

j

))

1≤i,j≤n

. Setze a

ii

= 0 f¨ ur i = 1, . . . , n.

Betrachte A

2

mit dem Min-Plus-Produkt, A

2

=: (a

(2)ij

)

1≤i,j≤n

. Dann ist a

(2)ij

die L¨ ange eines k¨ urzesten Pfades von v

i

nach v

j

, der h¨ ochstens zwei Kanten enth¨ alt. Induktion ergibt: a

(k)ij

ist die L¨ ange eines k¨ urzesten Pfades von v

i

nach v

j

mit h¨ ochstens k Kanten.

Falls die d(v

i

, v

j

) alle ≥ 0 sind, gibt es immer k¨ urzeste Pfade, die h¨ ochstens n − 1 Kanten enthalten.

EADS 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive H¨ulle 499/530 ľErnst W. Mayr

(16)

Damit ergibt sich folgende alternative L¨ osung des all-pairs-shortest-path-Problems:

Berechne A

n−1

(Min-Plus)!

Es gen¨ ugt auch, A

2dlog(n−1)e

durch wiederholtes Quadrieren zu berechnen (nicht A

2

, A

3

, A

4

, . . . ).

Definition 114

A

:= min

i≥0

{A

i

} heißt Min-Plus-Transitive H¨ ulle.

Bemerkung: min wird komponentenweise gebildet. Wenn d ≥ 0, dann A

= A

n−1

.

EADS 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive H¨ulle 500/530 ľErnst W. Mayr

(17)

6.2 Boolesche Matrixmultiplikation und Transitive H¨ ulle Wir ersetzen nun im vorhergehenden Abschnitt die Distanzmatrix durch die (boolesche) Adjazenzmatrix und (min, +) durch (∨, ∧), d.h.:

C = A · B; c

ij

=

n

_

k=1

a

ik

∧ b

kj

Wenn wir zudem a

ii

= 1 f¨ ur 1 ≤ i ≤ n setzen, dann gilt f¨ ur A

k

(boolesches Produkt, A

0

= I )

a

ij

=

 

 

 

 

1 falls es im Graphen einen Pfad von v

i

nach v

j

, bestehend aus ≤ k Kanten gibt

0 falls es im Graphen keinen Pfad von v

i

nach v

j

, bestehend aus ≤ k Kanten gibt

EADS 6.2 Boolesche Matrixmultiplikation und Transitive H¨ulle 501/530 ľErnst W. Mayr

(18)

Transitive H¨ ulle:

A

:= _

i≥0

A

i

(= A

n−1

)

ist damit die Adjazenzmatrix der transitiven H¨ ulle des zugrunde liegenden Digraphen.

EADS 6.2 Boolesche Matrixmultiplikation und Transitive H¨ulle 502/530 ľErnst W. Mayr

(19)

Satz 115

Sei M (n) die Zeitkomplexit¨ at f¨ ur das boolesche Produkt zweier n × n-Matrizen, T (n) die Zeitkomplexit¨ at f¨ ur die transitive H¨ ulle einer n × n booleschen Matrix.

Falls T (3n) ≤ cT (n)

| {z }

sicher erf¨ullt, falls T polynomiell

und M (2n) ≥ 4M (n)

| {z }

sicher erf¨ullt, falls M(n)≥n2

, dann gilt:

T(n) = Θ(M (n)) .

EADS 6.2 Boolesche Matrixmultiplikation und Transitive H¨ulle 503/530 ľErnst W. Mayr

(20)

Beweis:

(1) Matrixmultiplikation ≺ transitive H¨ ulle:

Seien boolesche Matrizen A, B gegeben und ihr boolesches Produkt C = A · B gesucht.

Setze:

L =

0 A 0

0 0 B

0 0 0

| {z }

3n

3n

EADS 6.2 Boolesche Matrixmultiplikation und Transitive H¨ulle 504/530 ľErnst W. Mayr

(21)

Beweis (Forts.):

L ist die Adjazenzmatrix eines tripartiten Digraphen, denn:

v u w v 0 A 0 u 0 0 B w 0 0 0

r r r

r r r

v

n

v

1

u

n

u

1

w

n

w

1

v u w

A B

.. . .. . .. .

- * XX XX X X z :

Daher kann L

leicht bestimmt werden:

L

=

I A AB

0 I B

0 0 I

 (= I ∨ L ∨ L

2

) Also gilt: M (n) ≤ T (3n) = O(T (n)).

EADS 6.2 Boolesche Matrixmultiplikation und Transitive H¨ulle 505/530 ľErnst W. Mayr

(22)

Beweis (Forts.):

(2) Transitive H¨ ulle ≺ Matrixmultiplikation:

Gegeben: n × n boolesche Matrix L; gesucht: L

; Annahme: n ist Zweierpotenz. Teile auf:

L =

A B C D

}

n2

}

n2

; L

=

E F G H

|{z}

n 2

|{z}

n 2

Es gilt also:

E = (A ∨ BD

C)

betrachte alle Pfade von der ersten H¨ alfte der Knoten zur ersten H¨ alfte

F = EBD

analog

G = D

CE analog

H = D

∨ GF analog

EADS 6.2 Boolesche Matrixmultiplikation und Transitive H¨ulle 506/530 ľErnst W. Mayr

(23)

Beweis (Forts.):

Um L

zu berechnen, ben¨ otigen wir zwei

Transitive-H¨ ulle-Berechnungen und sechs Matrixprodukte f¨ ur Matrizen der Dimension

n2

×

n2

(n¨ amlich M

1

= D

C, M

2

= BM

1

, M

3

= EB , M

4

= M

3

D

, M

5

= M

1

E, M

6

= GF ), plus den Aufwand f¨ ur ∨, der ≤ c

0

n

2

ist. Wir zeigen nun durch Induktion (n = 1 √

), dass T (n) ≤ cM (n):

T (n) ≤ 2T (

n2

) + 6M (

n2

) + c

0

n

2

≤ 2cM (

n2

) + 6M (

n2

) + c

0

n

2

|Vor.: M (2n) ≥ 4M(n)

| da M (n) ≥ n

2

14

(2c + 6 + 4c

0

)M(n)

≤ cM (n)

falls c ≥

14

(2c + 6 + 4c

0

), also falls c ≥ 3 + 2c

0

. Also T (n) = O(M (n)).

EADS 6.2 Boolesche Matrixmultiplikation und Transitive H¨ulle 507/530 ľErnst W. Mayr

Referenzen

ÄHNLICHE DOKUMENTE

Kann man davon ausgehen, dass langfristig alle möglichen Zahlen gleich häufig vorkommen werden.. Welche Zahlen

Zwei Lösungen sind dann verschieden, wenn an mindestens einer Stelle zwei verschiedene

[r]

Universität Tübingen Mathematisches

Für die Teilnehmer der Analysis T1 (also nicht T1a!): bitte im tugonline zur Prüfung am 24.11. auch eine Prüfung, brauchen sich für die Klausur am 24.11. aber nicht anmelden, weil

nehmer im Land Brandenburg 2012 im Produ- 2 Durchschnittlicher Bruttomonatsverdienst der zierenden Gewerbe und Dienstleistungsbereich vollzeitbeschäftigten Arbeitnehmer im Land

nehmer im Land Brandenburg 2011 im Produ- 2 Durchschnittlicher Bruttomonatsverdienst der zierenden Gewerbe und Dienstleistungsbereich vollzeitbeschäftigten Arbeitnehmer im Land

Durchschnittlicher Bruttojahresverdienst ohne Sonderzahlungen der voll- und teilzeitbeschäftigten Arbeitnehmer 1 in Brandenburg 2008 nach ausgewählten Wirtschaftsbereichen. 0 10 20