Zusammenfassung

Werbung
Zusammenfassung Grundgebiete Informatik 3
Steen Vogel
[email protected]
11. März 2012
Inhaltsverzeichnis
I Denitionen
3
1 Vertiefung Datenstrukturen und Algorithmen
3
1.1
Zuordnungsprobleme in Graphen
1.2
Balancierte Bäume
1.3
Suchalgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.4
Hashverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Suchen in Texten
5
1.5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1
Naive Zeichenketten-Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.5.2
Knuth-Morris-Pratt Algorithmus
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Optimierungsprobleme und -verfahren
6
2.1
Konvexe Optimierungsprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Lagrange-Multiplikatoren
2.3
Karush-Kuhn-Tucker (KKT) Bedingungen
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Modellierung von Systemen und Prozessen
6
7
7
7
3.1
Hardwaremodellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.2
Petri-Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.3
3.2.1
Allgemein
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2
Dentionen
7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.2.3
Formale Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.2.4
Dynamische Eigenschaften von Petri-Netzen
8
Kahn-Prozessnetzwerke (KPN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1
3.4
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synchrone Datenussgraphen (SDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zustandsautomaten, Turing Maschinen, Komplexitätsklassen
9
10
. . . . . . . . . . . . . . . . . . . . . . . .
10
3.4.1
Turing Maschine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.4.2
7-Tupel der Touringmaschine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.4.3
Komplexitätsklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
4 Betriebssysteme
11
4.1
Prozesse & Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
4.2
Scheduling/Ablaufplanung
12
4.2.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.3
Interprozess-Kommunikation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.4
Speicher Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
5 Multi-Prozessorsysteme
13
5.1
Prozessorarten/Processing Elements (PE)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
5.2
Kommunikationsarchitekturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
5.3
Speicherarchitekturen
13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
6 Einführung Netzwerke
6.1
14
OSI Referenz Modell
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II Algorithmen
14
16
1 Zuordnungsprobleme in Graphen
16
1.1
Bestimmen einer maximalen Zuordnung (ungewichteter bipartiter Graph)
. . . . . . . . . . . . . . . . .
16
1.2
Bestimmen einer maximalen Zuordnung (gewichteter bipartiter Graph) . . . . . . . . . . . . . . . . . . .
16
1.3
Bestimmen einer maximalen Zuordnung (in allgemeinen Graphen, Algorithmus von Edmonds)
16
. . . . . .
2 Balancierte Bäume
2.1
2.2
2.3
16
AVL-Baum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.1.1
Einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.1.2
Entfernen
17
2.1.3
Balancieren
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Rot-Schwarz Baum
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1
Einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.2.2
Entfernen
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
B-Baum
2.3.1
Einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.3.2
Löschen
18
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Suchalgorithmen
18
3.1
Binäre Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.2
Interpolationssuche
18
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Hashverfahren
18
5 Suchen in Texten
19
5.1
Naive Zeichenketten-Suche
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
Knuth-Morris-Pratt Algorithmus
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 Optimierungsprobleme & -verfahren
19
19
19
6.2
→ SDP
QP → SDP
6.3
Lagrange-Multiplikatoren
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
6.4
Gradientenvefahren
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
6.5
Newton'sches Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
6.6
Branch-and-Bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
6.1
LP
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
7 Event-basierter Simulationskernel
19
8 Petri-Netze
20
8.1
Komplementäre-Stellen Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2
Lösung von Konikten durch zusätzliche Eingabestellen . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
8.3
Konstruktion eines Überdeckbarkeitsbaum
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
8.4
Konstruktion eines Überdeckbarkeitsgraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2
20
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
Teil I
Denitionen
1 Vertiefung Datenstrukturen und Algorithmen
1.1 Zuordnungsprobleme in Graphen
• Graph:
G = (V, E) besteht aus einer Menge V
E ⊆V ×V.
Kante von Knoten u zu Knoten v , (u, v) ∈ E
Ein (gerichteter) Graph
von Knoten (vertices) und einer Menge
E
von Kanten (edges) mit
(u, v)
bezeichnet eine
• Ungerichteter Graph: Gilt für alle Kanten (v, u) eines Graphen G = (V, E):
(u, v) ∈ E ⇒ (v, u) ∈ E so heiÿt G ungerichtet. Schreibweise:{u, v} ∈ E
• Zuordnung: Eine Zuordnung M für
Kanten E , so dass keine zwei Kanten
einen ungerichteten Graphen
in
M
G = (V, E)
ist eine Teilmenge
M ⊆ E der
v∈V
den selben Endknoten haben. Äquivalent gilt, dass kein Knoten
mit mehr als einer Kante indiziert (verbunden) ist.
• Nicht erweiterbare Zuordnung (Maximal Matching):
sodass
M ∪e
M für einen ungerichteten Graphen ist
e ∈ E, e ∈
/ M gibt, die hinzugefügt werden könnte,
Eine Zuordnung
nicht erweiterbar (maximal matching), wenn es keine Kante
eine Zuordnung wäre.
• Maximale Zuordnung (Maximum Matching):
• Perfekte Zuordnung:
Eine nicht erweiterbare Zuordnung mit maximaler Gröÿe
Eine maximale Zuordnung
M,
in der alle Knoten
v ∈ V
mit genau einer Kante
|M |
e ∈ M
verbunden sind.
• Bipartiter Graph: Bei einem bipartiten Graphen G = (V, E) ist es möglich die Knotenmenge V so in zwei disjunkte
Teilmenegen V1 und V2 zerlegt werden kann (mit V = V1 ∪ V2 , V1 ∩ V2 = Ø), dass keine Kante zwei Knoten in
V1 oder zwei Knoten in V2 verbindet (d.h. E ⊆ {{v1 , v2 }|v1 ∈ V1 , v2 ∈ V2 }.
• Gebundene Kante:
Eine in der Zuordnung verwendete Kante
• Gebundener Knoten:
• Freier Knoten:
e∈M
wird als gebundene Kante bezeichnet.
Ein Knoten, der mit einer gebundenen Kante indiziert ist, ist ein gebundener Knoten.
Ein nicht gebundener Knoten, d.h. ein Knoten der nur mit freien Kanten indiziert ist, ist ein freier
Knoten.
• Alternierender Pfad:
Ein Pfad in
G
wird als alternierender Pfad (alternating path) bezeichnet, falls die Kanten
abwechselnd gebunden und frei sind.
• Vergröÿernder Pfad:
augmenting path) ist ein alternierender Pfad, dessen Anfangs- und
Ein vergröÿender Pfad (
Endknoten freie Knoten sind.
• Gewichteter bipartiter Graph: Ein gewichteter/bewerteter (weighted) bipartiter Graph ist ein bipartiter Graph
G = (V, E) in dem jede Kante e = {v1,i , v2,j } ein Gewicht (eine Bewertung) cij hat. Das Gewicht der Zuordnung
M ist die Summe der Gewichte der Kanten in M .
ij
• Blüte:
Eine Blüte ist eine Schleife in
Kanten sind (zu
• Schleifen:
M
G,
die aus
2n + 1
Kanten besteht, von denen genau
n
Kanten gebundene
gehören).
Eine Schleife entsteht in einem bipartiten Graphen dann, wenn man es schat über
2n
Kanten von
einem Startknoten M wieder zu diesem Startknoten zurückzukommen.
• Kontrahierender Graph:
Ein kontrahierender Graph bezeichnet einen Graphen, der aus
Blüte in einem neuen Knoten
vB
zusammengezogen wird.
3
G
entsteht, indem die
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
1.2 Balancierte Bäume
• Blattsuchbaum:
Ein Suchbaum, dessen Blätter auch Schlüssel enthalten.
• Balancierter Baum:
Ein balancierter Baum ist ein Baum, bei dem kein Blatt wesentlich weiter von der Wurzel
entfernt ist, als irgendein anderes Blatt des Baums. Formal: die maximale Höhe des Baums ist
die Anzahl der Elemente des Baums und
• Binärbaum:
c
eine von
n
c · log(n),
wobei
n
unabhängige Konstante ist.
Ein Baum, bei dem jeder Knoten maximal zwei Kindknoten besitzt.
• Balance eines Binärbaumes:
Höhenunterschied zwischen dem linken (BL ) und dem rechten (BR ) Teilbaum eines
Knotens bzw. der Wurzel: Balance =
H(BL ) − H(BR )
• Binärer Suchbaum: Sei B = (r, BL , BR ) ein Binärbaum und bezeichne key(n) den Suchschlüssel für jeden Knoten
n, r bezeichnet den Wurzelknoten. B heiÿt Suchbaum, falls gilt:
Für alle n ∈ BL : key(n) < key(r)
Für alle n ∈ BR : key(n) > key(r)
BL und BR sind Suchbäume (Rekursion)
• AVL-Baum:
Ein AVL-Baum ist ein binärer Suchbaum, bei dem sich die Höhe der beiden Teilbäume eines Knoten
maximal um 1 unterscheidet.
Die Balance in einem AVL-Baum ist entwerder
• Rot-Schwarz-Baum:
0,
±1
oder
Ein Rot-Schwarz-Baum ist ein annähernd balancierter Suchbaum, der ein zusätzliches Bit
(bzw. die Farben rot und schwarz) verwendet um die Balance zu erhalten. Kein Blatt des mehr als doppelt so weit
von der Wurzel entfernt, wie irgendein anderes Blatt.
Eigenschaften
∗
∗
∗
Jeder Knoten ist entweder rot oder schwarz
Die Wurzel des Baumes ist schwarz
Alle Blätter sind schwarz und enthalten keine Schlüssel
·
Jeder Pfad von einem gegebenen Knoten zu einem Blattknoten enthält die selbe Anzahl von schwarzen
Knoten
∗
Ist ein Knoten rot, so sind beide Kinder schwarz
• B-Baum: Ein B-Baum ist ein
m Kindknoten hat. m ist eine
balancierter Suchbaum, bei dem jeder Knoten (auÿer der Wurzel) zwischen
positive ganze Zahl (m
> 1). m
ist die Ordnung des B-Baums.
Eigenschaften
∗
∗
∗
∗
∗
Die Wurzel hat zwischen
2
und
M
Kind-Knoten
Jeder Knoten hat genau einen Schlüssel zwischen zwei Kind-Knoten
Die Blätter besitzen keine Schlüssel
Der Baum ist immer perfekt balanciert
Ein B-Baum besitzt die Suchbaum Eigenschaften
1.3 Suchalgorithmen
• Binäre Suche: m = mu + 12 (mo − mu )
Durchschnittliche Laufzeit:
O(log N )
• Interpolationssuche: m = mu +
• m
Durchschnittliche Laufzeit:
Worst Case Laufzeit:
O(N )
k−a[mu ].key
a[mo ].key−a[mu ].key (mo
O(log2 log2 N )
− mu )
(bei gleichverteilten Schlüsseln)
(bei exponentiell ansteigenden Schlüsseln)
wird immer auf die nächstliegende ganze natürliche Zahl gerundet!
4
m
2 und
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
1.4 Hashverfahren
• Hashverfahren:
Hashverfahren sind eine eziente Möglichkeit Schlüssel in einer Hashtabelle zu suchen. Mit einer
ezienten Hashfunktion kann so auf einen Datensatz mit
O(1)
zugegrien werden (vgl.
O(log(n))
für binäre
Suche).
• Hashfunktion: Eine Hashfunktion h(k) : K → {0, . . . , M − 1}
0 ≤ h(k) ≤ M − 1 zu. I.d.R. gilt |K| > M .
• Hashadresse: h(k)
ordnet jedem Schlüssel
k
einen Index
h(k)
mit
wird als Hashadresse bezeichnet.
• Hashtabelle: Die gehashten Datensätze werden anhand ihrer
0, . . . , M − 1 gespeichert. M ist die Gröÿe der Hashtabelle.
• Perfektes Hashing: Bei einer perfekten Hashfunktion
wenn |K| ≤ M und K fest und vorher bekannt ist) .
Hashadresse in einem linearen Feld mit den Indizes
werden Kollisionen vollkommen vermieden (nur möglich,
• Universelles Hashing: Sei K eine endliche Klasse von Hashfunktionen, die jeweils jedem Schlüssel aus K auf die
Menge {0, . . . , M − 1} abbilden, dann heiÿt K universell, wenn für zwei verschiedene Schlüssel x, y ∈ K gilt:
|{h∈K :h(x)=h(y)}|
1
≤M
|K|
Die Wahrscheinlichkeit, dass ein beliebiges Paar von zwei verschiedenen Schlüsseln x, y aus Kdurch eine zufällig aus
der universellen Klasse K ausgewählte Hashfunktion h(k) auf die selbe Hashadresse abgebildet wird, ist höchstens
1
M.
• Adresskollision:
Da die die Gröÿe der Hashtabelle
M
i.d.R. viel kleiner ist als die Menge der möglichen Schlüssel,
kann es passieren dass die Hashfunktion (keine bijektive Funktion) mehrere Schlüssel auf den selben Wert abbildet.
Sollen mehrere solcehr Schlüssel in der Hashtabelle gespeichert werden, so tritt eine Adresskollision auf, die eine
Sonderbehandlung erfordert.
• Synonyme:
Zwei Schlüssel
• Überläufer:
Ein zu speichernder Eintrag, der auf die gleiche Hashadresse gehasht wird, wie ein anderer Eintrag.
• Primäre Häufung:
k, k 0
heiÿen Synonyme, falls
h(k) = h(k 0 )
gilt.
Sondierungsfolgen unterschiedlicher Hash-Adressen treen aufeinander und verlaufen synchron
(z.B. beim linearen Sondieren).
• Sekundäre Häufung:
Schlüssel, die den gleichen Hashwert haben, durchlaufen dieselbe Sondierungsfolge.
• Sondierungsfolgen:
Lineares Sondieren:
sk (n) = n
Doppeltes Hashing:
sk (n) = n · h0 (k)
bsp. mit
h0 (k) = 1 + k mod (M − 2)
1.5 Suchen in Texten
1.5.1
Naive Zeichenketten-Suche
•
Durchschnittliche Laufzeit:
•
Worst-case Laufzeut:
1.5.2
•
O(M + N )
O(M · N )
Knuth-Morris-Pratt Algorithmus
Komplexität
Aufbau der Verschiebungstabelle:
Suchalgorithmus:
O(M )
O(n)
Gesamtlaufzeit (auch im Worst-case):
O(M + N )
5
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
2 Optimierungsprobleme und -verfahren
• Ane Menge:
Die Gerade durch zwei beliebige, verschiedene Punkte der Menge liegen in der Menge.
• Konvexe Menge:
Der Geradenabschnitt zwischen zwei beliebigen, verschiedenen Punkten der Menge liegt in der
Menge.
x1 , x2 ∈ C, θ ∈ [0, 1] ⇒ θx1 (1 − θ)x2 ∈ C
Schnittmenge zweier konvexer Menge ist konvex
• Konvexe Funktion:
falls f (θx1 + (1 − θ)x2 ) ≤ θf (x1 ) + (1 − θ)f (x2 ) (>)
falls f dibar: f (x) ≥ f (x0 ) + ∇f (x0 )T (x − x0 ) ∀x, x0 ∈ C
falls Hessematrix positiv semidenit: H(f (x)) 0 ∀x ∈ C
f ist konkav ⇒ −f ist konvex
strikt Konvex, falls (>) strikt erfüllt ist
• Hessematrix
 :

H(f ) = 

∂2f
∂x1 ∂x1
.
.
.
2
∂ f
∂xn ∂x1
···
..
.
···
∂2f
∂x1 ∂xn
.
.
.
2
∂ f
∂xn ∂xn




• Positive semidenite Matrix: A 0
falls
xT · A · x > 0 ∀x ∈ Rn
falls die Determinante aller Untermatrizen
>0
falls die Matrix reel und symmetrisch ist, und alle Eigenwerte positiv sind
falls
A
eine Diagonalmatrix ist und alle Einträge
>0
• Quasikonvexe Funktion:
p
Bsp: f (x) = |x|
2.1 Konvexe Optimierungsprobleme
• Konvexes
Optimierungproblem:
(
min f0 (x)
x
s.t.
fi (x) ≤ 0, i = 1, . . . , m
Rechenzeit ist grob propotional zu
max{n3 , n2 , m, F }
• 
Linear Programming (LP):
T

min c x + d
s.t.
Gx ≤ h


Ax = b
• Quadratic
Programming (QP):

1 T

min
x
P x + qT x + d

2
s.t. Gx ≤ h


Ax = b
P ist positiv semidenite Matrix:
P 0
6
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
• Semidenite
Programming (SDP):

T

min c x
s.t. x1 F1 + x2 F2 + . . . + xn Fn 0


Ax = b
• Modell-Allgemeinheit:
• Lösungezienz:
LP < QP < ... < SDP
LP > QP > ... > SDP
2.2 Lagrange-Multiplikatoren
• Im
( Allgemeinen nicht
min f (x)
s.t. h(x) = 0
•
Lagrange Funktion:
•
Bedingung:
lineares Problem mit Gleichheitsbedingungen
Λ(x, λ) = f (x) + λT h(x)
∇Λ = ∇f + λT ∇h = 0
(Gradienten sind parallel)
2.3 Karush-Kuhn-Tucker (KKT) Bedingungen
•
Stationarity:
∇f (xopt ) +
m
P
µi ∇hi (xopt ) +
i=1
•
Primal feasability:
•
Dual feasability:
•
Complementary slackness:
λi ∇gi (xopt ) = 0
i=1
gj (xopt ) ≤ 0,
λj ≥ 0,
p
P
hi (xopt ) = 0,
i = 1, . . . , m
j = 1, . . . , p
j = 1, . . . , p
λj gj (xopt ) = 0,
j = 1, . . . , p
3 Modellierung von Systemen und Prozessen
3.1 Hardwaremodellierung
• SystemC:
Systembeschreibungssprache (SLDL, engl. System Level Design Language)
3.2 Petri-Netze
3.2.1
Allgemein
•
Auch P/T-Netze und S/T-Netze genannt (Plätze, Stellen, Transitionen)
•
Dienen der Modellierung von nebenläugen, asynchronen, verteilten, parallelen, nichtdeterministischen und/oder
stochastischen Systemen
•
Stellen ein graphisches und mathematisches Werkzeug dar
•
Nebenläugkeit ist nicht Gleichzeitigkeit, sondern Unabhängigkeit: Petri-Netze haben keine Zeitdimension!
3.2.2
Dentionen
• Strenge Transitionsregel: Eine Transition darf nur dann feuern, wenn dadurch die Kapazität der Ausgangsstellen
nicht überschritten wird
• Quellen-Transitionen:
Eine Transition ohne Eingangsstellen (immer aktiv)
• Senken-Transitionen:
Eine Transition ohne Ausgangsstellen
• Schleifen:
Ein Paar aus Stelle
p
und Transition
t,
bei dem
7
p
sowohl Eingangs- als auch Ausgangsstelle von
t
ist.
Zusammenfassung: GGI 3
• Pures Petri-Netz:
Maximilian Lorent & Steen Vogel
Ein Petri-Netz, dass keine Schleifen besitzt.
• Gewöhnliches Petri-Netz:
• Sicheres Petri-Netz:
• Kapazität K(p):
11. März 2012
Alle Kanten haben das Gewicht 1.
Ein Petri-Netz, das ist 1-beschränkt ist.
Anzahl der Tokens die in einer Stelle gespeichert werden können.
• Petri-Netz endlicher Kapazität:
Nur endlich viele Tokens können in
• Petri-Netz unendlicher Kapazität:
p
Unendlich viele Tokens können in
gespeichert werden.
p
gespeichert werden.
• Nebenläugkeit: Zwei Transitionen heiÿen nebenläug, wenn beide aktiviert sind und sie keine gemeinsamen Ausund Eingangsstellen besitzen.
• Konikt:
Zwei Transition enstehen im Konikt, wenn beide aktiviert sind und (wenigstens) eine gemeinsame Vor-
oder Nachbedingung erfüllt ist.
• Konfusion: Konfusion ist ein potentieller Konikt, der durch die willkürliche Reihenfolge des Feuerns zweier nebenläuger Transitionen entstehen könnte. Konfusion liegt immer dann vor, wenn die Reihenfolge des Feuerns zweier
nebenläuger Transitionen für den weiteren Ablauf des Systems wesentlich ist.
• Deadlock:
Nebenläugkeit kann zum Stillstand führen, d.h., zu einem Zustand, in dem keine Transition feuern
kann.
3.2.3
Formale Darstellung
•
als 5-Tupel:
•
endliche Menge von Stellen (Plätzen):
•
endliche Menge von Transitionen:
•
Menge von Kanten:
•
Gewichtungsfunktion:
•
Anfangsmarkierung:
•
Es gilt ferner:
3.2.4
P N = (P, T, F, W, M0 )
P = {p1 , p2 , . . . , pm }
T = {t1 , t2 , . . . , tn }
F ⊆ (P × T ) ∪ (T × P )
W : F → {1, 2, 3, . . .}
Mo : P → {0, 1, 2, 3, . . .}
B∩T =Ø
und
P ∪T =Ø
(Graph ist bipartit)
Dynamische Eigenschaften von Petri-Netzen
M0
von Anfangmarkierung
• Erreichbarkeit:
Abhängig
Eine Markierung
Mn
ist erreichbar, wenn es eine Folge von Transitionen gibt, die
M0
in
Mn
überführen kann.
Mn ist von M0
erreichbar, wenn es im im Überdeckbarkeitsbaum einen Pfad von
M0
nach
Mn exisiert
für den
man nicht in Richtung der Wurzel laufen muss.
• Beschränktheit: Ein Petri-Netz ist
mehr als k Tokens pro Stelle hat.
k-beschränkt, falls keine Markierung, die von
wenn die Knotenbezeichner des Überdeckbarkeitsbaums kein
• Lebendigkeit:
ω
M0
aus erreicht werden kann,
enthalten.
Petri-Netz ist lebendig, wenn es - ungeachtet der gerade erreichten Markierung - stets möglich ist
jede Transition durch eine Reihe von Feuerungen zu aktivieren (Nachweis ist schwer).
Eine Transition ist tot wenn sie nicht als Kante im Überdeckbarkeitsbaums exisistiert.
• Umkehrbarkeit:
Die Anfangsmarkierung
M0
kann von jeder Markierung
musste zuvor von der Anfangsmarkierung aus erreichbar sein)
8
M
aus erreicht werden (Wichtig:
M
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
• Überdeckbarkeit: Eine Markierung M
0
Stelle gilt: M (p) ≥ M (p)
• Beständigkeit:
11. März 2012
ist Überdeckbar, wenn eine andere Markierung
M0
existiert, sodass für jede
Für jedes paar von aktivierten Transitionen gilt, dass das feuern einer dieser Transitionen die
anderen nicht deaktiviert.
• Sicherheit:
wenn die Knotenbezeichner des Überdeckbarkeitsbaums nur Nullen oder Einsen enthalten.
• Fairness:
Nicht behandelt
3.3 Kahn-Prozessnetzwerke (KPN)
•
KPN dienen der Modellierung von Systemen bestehend aus Prozessen
•
Prozesse
•
Produzent muss nicht warten, bis Konsument liest
FIFO-Länge unbegrenzt
Konsument muss bei leerem FIFO warten bis nächstes Token vorliegt
Prozesse können nur an einem Kanal gleichzeitig warten
Kein Lese-Zugri auf einen Kanal, ohne dass ein Token konsumiert wird
Kahn-Prozess-Netzwerke sind deterministisch
•
produzieren und/oder konsumieren dabei eine festgelegte Anzahl von Tokens
Blockierendes Lesen
•
bestehen aus sequentiellen Anweisungen
Nicht-blockierendes Schreiben
•
kommunizieren ausschlieÿlich über FIFOs (message passing vgl. Erlang)
Folge der Ausgabetokens ist nicht von der Ausführungsreihenfolge abhängig
Ausführungsreihenfolge der Prozesse ist irrelevant
Scheduling der Prozesse
Anhäufung von Tokens muss vermieden werden
Bei begrenzenten FIFO Längen können Deadlocks entstehen
∗
∗
wenn Ausgangs-FIFO voll
wenn Eingangs-FIFO leer
Algorithmus vin Park (1995)
∗
∗
vermeidet Deadlocks
Scheduling für begrenzte FIFOs mit möglichst kleiner Länge
9
⇒
Zusammenfassung: GGI 3
3.3.1
•
11. März 2012
Synchrone Datenussgraphen (SDF)
SDF sind ein Spezialfall von KPN
•
Maximilian Lorent & Steen Vogel
Knoten: Prozesse
Kanten: Datenpfade
Die Anzahl der gefeuerten/konsumierten Tokens ist im Vorhinein festgelegt (vgl. Petri-Netze)
⇒
Scheduling kann
vorher festgelegt werden
•
SDF eigenen sich zur Modellierung vieler Algorithmen in der digitalen Signalverarbeitung (DSP)
• Homogene SDF:
Alle Knoten konsumieren und produzieren jeweils nur ein Token an den Eingangs- und Aus-
gangskanten
• Inhomogene SDF:
Knoten können unterscheidlich viele Tokens konsumieren bzw. produzieren
3.4 Zustandsautomaten, Turing Maschinen, Komplexitätsklassen
3.4.1
Turing Maschine
Die Turingmaschine stellt eine Erweiterung des endlichen Zustandsautomaten (FSM, Mealy & Moore, vgl Info2) dar
•
Endliche Menge an einnehmbaren Zuständen
•
Ein (einseitig) unendliches Band
•
Bewegbarer Lese/Schreib-Kopf zuum Lesen und Schreiben von Symbolen auf dem Band
•
Zustandsbasierte Steuerung (Programm)
Turing-Tabelle:
δ
read
write
• Curch-Turing-These:
move
new state
note
Die Klasse der Turing-berechenbaren Funktionen ist genau die Klasse der intuitiv berechen-
baren Funktionen.
• Turing-berechenbar:
Es existiert eine Turing Machine, die für Eingaben aus dem Denitonsbereich anhält, sodass
im Anschliuss der entsrechende Funktionswert auf dem Band steht.
• Turing-vollständig:
Ein Modell, dass ebenfalls alle Turing-berechenbaren Funktionen berechnen kann.
• Nicht deterministische Turing-Maschine (NTM): Falls nicht eindeutige Übergangsrelationen von einem Zustand
in den nächsten Zustand vorliegen, muss sich die Turing-Maschine verzweigen und parallel jeden dieser Wege
weiterverfolgen. Kommt einer dieser Zweige zu einem Halt, so ist die Lösung akzeptiert
3.4.2
•
7-Tupel der Touringmaschine
S: endliche Menge von Zuständen
• Σ:
EIngabealphabeth
• Γ:
Bandalphabet, mit
Σ∈Γ
und
∈Γ
• δ : (S\F × Γ) → (S × Γ × {R, L}):
• s0 ∈ S :
• :
•
Übergangsfunktion (R,L: Rechts- oder Linksshift des Lese/Schreibkopfes)
Anfangszustand
Leeres Symbol
F: Menge der Endzustände mit
F ⊆S
10
Zusammenfassung: GGI 3
3.4.3
Maximilian Lorent & Steen Vogel
11. März 2012
Komplexitätsklassen
Klassizieren Probleme anhand ihrer Komplexität. Übliche Metriken sind
• Komplexitätsklasse P:
Laufzeit, Speicherbedarf,
etc..
Ist in Polynomialzeit von deterministischer TM lösbar. Probleme dieser Klassen gelten als
praktisch (ezient) berechenbar.
• Komplexitätklasse NP:
Ist in Polynomialzeit von nicht deterministischer TM lösbar.
P ⊆ NP,
jedes Problem in
P ist auch Teil von NP.
• NP-schweres Problem: Ein Problem ist NP-schwer, wenn sich jedes Problem in NP in polyniomaler Zeit auf dieses
Problem zurückführen lässt.
• NP-vollständiges Problem:
Ist ein Problem NP-schwer und selbst in NP enthalten, ist es NP-vollständig.
4 Betriebssysteme
• Denition:
Das Betriebssystem ist eine softwareseitige Erweiterung der Hardware, welche diese abstrahiert und
einfache Zugrismechanismen zur Verfügung stellt. Daher verwaltet das Betriebssystm zur Verfügung stehende
Ressourcen und deren Zuteilung.
• Aufgaben:
Speicherverwaltung
Programm-Verwaltung / Prozess-Verwaltung
Geräte- und Dateiverwaltung / Ein- Ausgabe
Rechteverwaltung / Sicherheit
Abstraktion / Kompatibilitätschicht
4.1 Prozesse & Threads
• Prozesse:
Prozesse sind ablaufende Programme mit eigenem Befehlszähler, Register und Speicherbereich und
dienen dazu (Pseudo-)Nebenläugkeit eines Systems zu ermöglichen. Sie besitzen in ihrem Adressraum nur einen
Ausführungsfaden (
• Threads:
thread-of-control).
Mehrere Ausführungsfäden in einem Prozess, die sich einen gemeinsamen Adressraum teilen. Threads
sind in ihrer Erzeugung, Scheduling und der Kommunikation untereinander leichtgewichtiger als Prozesse.
•
Vergleich
Prozess Elemente
Thread Elemente
Adressraum
Befehlszähler
Globale Variabeln
Register
Oene Dateien/Verbindungen
Stack
Kindprozesse
Zustand
Ausstehende Signale
Signale und Signalroutinen
Verwaltungsinformationen
11
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
4.2 Scheduling/Ablaufplanung
• Denition: Die Ablaufplanung (engl. Scheduling) bestimmt die räumliche und zeitliche Zuordnung von Aktivitäten
zu auszuführenden Instanzen.
• Echtzeitbetriebssystem/RTOS:
4.2.1
Scheduling mit Sollzeitpunkten/Deadlines.
Algorithmen
Unterscheiden sich hauptsächlich durch die Aufrufreihenfolge der Prozesse und deren Verdrängung/Preemption
• First-Come First-Serve (FIFO)
Reihenfolge: Abarbeitung in Ankunftsreihenfolge (FIFO-Liste)
keine Verdrängung: Prozess wird abgearbeitet bis er sich selbst unterbricht oder beendet.
• Round-Robin
Reihenfolge: Abarbeitung in Ankunftsreihenfolge (FIFO-Liste)
Verdrängung: Prozesswechsel mindestens nach vorgeschriebener/fester Zeit
δ.
• Prioritäts-basiert (ohne Verdrängung)
Reihenfolge: nach Prioritäten sortierte Liste
keine Verdrängung: Prozess wird abgearbeitet bis er sich selbst unterbricht oder beendet.
• Prioritäts-basiert (mit Verdrängung)
Reihenfolge: nach Prioritäten sortierte Liste
Verdrängung: Prozess wird abgearbeitet bis er sich selbst unterbricht, beendet oder ein Prozess mit höherer
Priorität eintrit.
4.3 Interprozess-Kommunikation
• Race Conditions:
Wettlaufsituationen können auf treten, wenn zwei oder mehr Prozesse auf gemeinsame Daten
zugreifen (lesen oder schreiben), so dass das Endergebnis von der exakten Ausführungsreihenfolge abhängt (vgl.
Konfusion der Petri-Netze).
• Mutual exclusion:
Race Conditions können durch wechselseitigen Ausschluss verhindert werden. Gängige Mecha-
nismen sind dabei:
Aktives Warten / Spinlocks
Semaphore / Mutex (binäres Semaphore)
Monitor
Message Passing
Barriere
Lock-Mechanismen
4.4 Speicher Management
siehe auch Speicherarchitekturen
• Memory Management Unit:
Bildet logische Speicheradressen auf physikalische Adressen ab.
Versteckt dadurch Prozess-fremde Speicherbereiche.
Implementierung mittels Mase/Limit Paar oder Seiten-basiert (Paging)
12
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
5 Multi-Prozessorsysteme
• Homogenes Multi-Prozessorsystem:
viele gleichartige PE, hohe Flexibilität, geringe Performence
• Heterogenes Multi-Prozessorsystem: verschiede PE, anwendungsspezische Konguration, gute Energieezienz
& Performence
• Geschwindigkeitsgewinn (Speedup) durch Parallelisierung: S =
• Amdahl's Law: Tp = TS (1 − p + np ) ⇒ S =
mit
n
Prozessoren,
p
TS
TP
1
p
1−p+ n
Anteil an parallelisierbarem Code
Maximaler Geschwindigkeitsgewinn:
1
S(n → ∞) = 1−p
Optimaler Geschwindigkeitsgewinn:
S(p = 1) = n
S(p = 0.9) = 10
Realistischer Geschwindigkeitsgewinn:
(Beispiel)
5.1 Prozessorarten/Processing Elements (PE)
•
General Purpose Processor (GPP)
•
Digital Signal Processor (DSP)
•
Application Specic Instructionset Processor (ASIP)
•
Application Specic Integrated Circuit (ASIC)
•
Field Programmable Gate Array (FPGA)
5.2 Kommunikationsarchitekturen
•
Direkte Verbindung
•
Geteilter Speicherbereich
•
Bus-System
•
Crossbar
•
Network on Chip (NoC)
5.3 Speicherarchitekturen
• Speicherhierachie/pyramide:
zunehmende Kapazität
←→
abnehmende Zugriszeit
Prozessor-Register
L1/L2-Cache
Hauptspeicher
Flash-Speicher
Hard-Disks
Bänder/CDs
• Cache Kohärenz Problem:
Durch die Sicherstellung von Cache-Kohärenz wird bei Mehrprozessorsystemen mit
mehreren CPU-Caches verhindert, dass die einzelnen Caches für die gleiche Speicheradresse unterschiedliche (inkonsistente) Daten zurückliefern.
•
Cache Kohärenz Protokolle:
Snooping-basiert: alle Cache Controller lauschen auf einem gemeinsamen Interconnect und verwalten den
Status der Blöcke im lokalen Cache.
Verzeichnis-basiert: zentrales Verzeichnis aller gecachten Blöcke und die darauf zugreifenden Prozessoren mit
ihrem Status (exlusive, shared).
13
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
6 Einführung Netzwerke
• Computer Netzwerk:
Ein Sammlung von verbundenen Computern, die in der Lage sind, untereinander Informa-
tionen auszutauschen.
• Ziele:
Ortsunabhängigkeit
hohe Verfügbarkeit/Redunanz
hohe Energie- und Kostenezienz für Mainframe Rechner
• Service: Sammlung von primitiven Operationen von unteren Schichten oberen Schichten verfügbar gemacht werden
• Protocol:
Satz von Regeln, die die Kommunikation innerhalb einer Schicht denieren.
• Circuit Switching:
Vor der Datenübertragung muss eine fest denierte Verbindung zwischen beiden Kommunika-
tionspartnern aufgebaut werden, die erst nach dem Ende der Übertragung wieder geschlossen wird
• Packet Switching:
Ohne einen expliziten Verbindungsaufbau werden die Daten in Form von kleinen Paketen, die
in ihrem Header die Zieladresse enthalten über spontan gewählte Übertragungswege vom Absender zum Empfänger
versandt
6.1 OSI Referenz Modell
7. Application-Layer (Anwendungsschicht)
•
Verschat Anwendungen Zugri auf das Netz
• Protokolle:
Telnet, SMTP, HTTP, LDAP, FTP, NFS, SSH
6. Presentation-Layer (Darstellungsschicht)
•
Kommunikation zwischen Systemen
•
Denition Abstrakter Datenstrukturen
•
Datenkompression, Verschlüsselung, Übersetzer zwischen Datenformaten
• Protokolle:
ISO 8822/X.216, ASN.1
5. Session-Layer (Sitzungsschicht)
•
Prozesskommunikation, Dialogkontrolle, Token management, Synchronisation
•
Widerherstellung nach Sitzungszusammenbruch durch bereitgestellte Dienste
• Protokolle:
RPC, ISO 8306/X.215
4. Transport-Layer (Transportschicht)
•
Segmentierung des Datenstroms
•
Ende-zu-Ende-Kontrolle
•
Bietet den anwendungsorientierten Layern 5-7 einen einheitlichen Zugri
• Protokolle:
TCP, UDP, SCTP, ISO 8073/X.224
14
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
3. Network-Layer (Vermittlungsschicht)
•
Schalten von Verbindungen und Vermittlung von Paketen
•
Wegsuche / Routing
•
Bereitstellen netzwerkübergreifender Adressen
• Protokolle:
• Hardware:
IP, IPsec, X.25, ISO 8208, CLNP, ESIS, ICMP
Router, Layer-3-Switch (BRouter)
2. Data-Link-Layer (Sicherungsschicht)
•
lässt sich gliedern in Medium Access Control (MAC) und Logical Link Control (LLC)
•
Gewährleistung fehlerfreier Übertragung
•
Aufteilen des Datenstroms in Blöcke/Frames
•
Hinzufügen von Folgenummern und Prüfsummen
•
Daten Fusskontrolle
• Protokolle:
• Hardware:
Ethernet, CSMA/CD, WLAN, Token Bus, Token Ring, FDDI
Bridge, Switch (Multiport-Bridge)
1. Physical-Layer (Bitübertragungsschicht)
•
Hat die Aufgabe rohen Bitstream über einen physikalischen Kanal zu transportieren
•
Deniert die Interfaces des physikalisches Mediums (kabelgebunden, schurlos), die Signalübertragung und die Art
Circuit Switching, Packet Switching)
des hardwareseitigen Verbindungsaufbaus (
• Protokolle:
• Hardware:
V.24, V.28, X.21, RS 232 (Seriell), RS 422, RS 423, RS 499
Modem, Hub, Repeater
15
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
Teil II
Algorithmen
1 Zuordnungsprobleme in Graphen
1.1 Bestimmen einer maximalen Zuordnung (ungewichteter bipartiter Graph)
1. Wähle einen freien Knoten
2. Suche ausgehend von diesem Knoten alle alternierenden Pfade
(a) Ist der gefundene Pfad ein vergröÿerdner Pfad vergröÿere die Zuordnung durch Austausch von freien und
gebunden Kanten
(b) Tritt eine Schleife auf, wähle anderen Pfad. Gibt es keinen solchen, fahre fort mit 1.)
3. Wurden alle Knoten geprüft, ist die Zuordnung maximal.
1.2 Bestimmen einer maximalen Zuordnung (gewichteter bipartiter Graph)
Eine Zuordnung mit minimalen Gewicht kann gefunden werden, wenn man das Maximum m aller Zellen bestimmt und
jeden Zellenwert
1. Wähle
yi
2. Erzeuge
cij
von diesem Wert abzieht:
als das Maximum einer
Zeile
c0ij = m − cij
und
yj = 0
Überschuss-Matrix: eij = yi +yj −cij
(Alle Spalten, die im vorherigen Durchlauf durchgestrichen wurden,
ändern sich nicht)
3. Markiere alle Zellen, für die gilt:
Gleichheitsgraphen G.
(a) Bestimme die
eij = 0. Zeichne für all diese Zellen die Kanten von yi
maximale Zuordnung M
des Gleichheitsgraphen
G,
nach
yj
in einen sogenannten
ist diese perfekt wurde die Lösung gefun-
den.
Knotenüberdeckung W mit der Gröÿe |M | im Gleichheitsgraphen G
Satz von König: Überdeckt die Knotenüberdeckung W alle Kanten des Graphen,
(b) Finde eine
(c)
gibt es hingegen keine
perfekte Zuordnung!
4. Streiche in der ehemaligen Überschuss-Matrix alle Spalten die eine 0 enthielten durch und ermittle aus aus den
verbleibenden Zellen das Mimimum
(a) Berechne die neuen
yi
zu
m.
yi0 = yi − m ∈ V2 \ W
und
yj0 = yj + m ∀yj ∈ V1 ∩ W .
(b) Gehe wieder zu 2.) solange keine perfekte oder maximale Zuordung im Gleichheitsgraphen exisitiert.
1.3 Bestimmen einer maximalen Zuordnung (in allgemeinen Graphen, Algorithmus von
Edmonds)
2 Balancierte Bäume
2.1 AVL-Baum
2.1.1
Einfügen
1. Einfügeposition mit binärer Suche bestimmen und Knoten einfügen.
2. Ausgehend von Einfügeposition nach unbalancierten Teilbäumen suchen und diese balancieren.
16
Zusammenfassung: GGI 3
2.1.2
Maximilian Lorent & Steen Vogel
11. März 2012
Entfernen
1. Wenn Knoten ein Blatt ist, entferne ihn
(a) Ist der zu entfernende Knoten ein Blatt, entferne ihn.
(b) Hat der zu entfernende Knoten nur ein Kind, entferne den Knoten und ersetze ihn duch sein Kind.
(c) Sind beide Kinder des zu entfernenden Knotens Blätter, ersetze den Knoten durch eines seiner Blätter (beliebig).
(d) Ist mindestens eines der beiden Kinder des zu entfernenden Knotens ein innerer Knoten:
i. wähle den symmetrischen Knoten
SR
A. als Nachfolger (Balance des zu entfernenden Knotens
B. als Vorgänger (Balance des zu entfernenden Knotens
ii. übertrage den Schlüssel von
iii. und lösche das Blatt
SR
< 0)
≥ 0)
auf den zu entfernenden Knoten
SR
Balanciere den Baum nach jedem Schritt erneut!
2.1.3
Balancieren
Es werden 4 Fälle unterschieden:
•
left-of-left: Rechts-Rotation nötig
•
right-of-left: Links-Rotation mit anschliessender Rechts-Rotation nötig
•
right-of-right: Links-Rotation nötig
•
left-of-right: Rechts-Rotation mit anschliessender Links-Rotation nötig
2.2 Rot-Schwarz Baum
2.2.1
Einfügen
Neu eingefügte Knoten sind immer rot!
1. Der Baum ist leer: Füge den Knoten direkt ein und färbe ihn schwarz.
2. Der Vaterknoten ist schwarz: Füge den Knoten direkt ein
3. Vater-Knoten und Onkel-Knoten sind beide rot: Ändere die Farben dieser beiden Knoten in schwarz. Färbe den
Groÿvaterknoten rot und betrachte ihn wie einen neu eingefügten Knoten bezüglich seiner Vorgänger
4. Der neue Knoten hat einen schwarzen oder keinen Onkel und ist das rechte Kind seines roten Vaters während der
Vater jedoch links am Groÿvater sitzt: Führe eine linksrotation um den Vater aus, welche die Rolle des einzufügenden
Knotens und seines Vaters vertauscht. Danach kann man den ehemaligen Vaterknoten mit Hilfe des fünften Falles
bearbeiten.
5. Der neue Knoten hat einen schwarzen oder keinen Onkel und ist das linke Kind seines roten Vaters; der Vater
hängt auch links am Groÿvater: Zunächst rechtsrotation um den Groÿvater, wodurch der ursprüngliche Vater nun
der Vater von sowohl dem neu einzufügenden Knoten als auch dem ehemaligen Groÿvater ist. Im Anschluss Farben
vom ehemaligen Groÿvaters bzw. Vaters tauschen.
17
Zusammenfassung: GGI 3
2.2.2
Maximilian Lorent & Steen Vogel
11. März 2012
Entfernen
1. Knoten ist rot und hat nur Blätter als Kindknoten: Lösche den Knoten
2. Knoten ist schwarz und hat nur einen roten Kind-Knoten: Ersetze ihn durch seinen Kindknoten und färbe diesen
schwarz
3. Knoten ist schwarz und hat nur Blätter als Kind-Knoten: Entferne den Knoten. Anschlieÿend folgen Rotationen
und Farbänderungen (Drehen & Umfärben, falls noch weitere Unterebenen vorhanden, sonst nur Umfärben)
4. Knoten (N) hat zwei innere Knoten als Kindknoten: Bestimme den symmetrischen Vorgänger oder Nachfolger und
verschiebe die Werte von R nach N. Das Entfernen von R entspricht den Fällen 1-3.
2.3 B-Baum
2.3.1
Einfügen
1. Solange Einfügen, bis Anzahl Elemente in Knoten gleich m-1 ist
2. Dann überfüllten Knoten in linke und rechte Hälfte aufteilen und inneren Knoten hochschieben
3. Führt dies zu einer Überfüllung des oberen Knoten wiederhole für diesen Knoten Schritte 1-3
2.3.2
Löschen
1. Ist der Knoten aus dem ein Element gelöscht wird nach dem Löschen nicht leer, so werden die linken und rechten
Kindknoten des gelöschten Knotens zusammengefasst.
2. Ist der Knoten nach dem Löschen leer, so wandert das Vaterelement in den leeren Knoten und wird mit seinem
Geschwisterknoten zusammengefasst. Hierbei werden die Regeln des Einfügens beachtet.
3 Suchalgorithmen
?
Tabelle:
#
mu
mo
m
a[m].key
a[m].key S k
3.1 Binäre Suche
m = mu + 12 (mo − mu )
•
Algorithmus:
•
Der Suchbereich halbiert sich (näherungsweise) bei jedem Schritt
•
Durchschnittliche Laufzeit:
O(log N )
3.2 Interpolationssuche
k−a[mu ].key
a[mo ].key−a[mu ].key (mo
•
Algorithmus:
•
Durchschnittliche Laufzeit:
•
Worst Case Laufzeit:
m = mu +
O(N )
O(log2 log2 N )
− mu )
(bei gleichverteilten Schlüsseln)
(bei exponentiell ansteigenden Schlüsseln)
4 Hashverfahren
•
Kollisionsbehandlung
Überläufer in verketteter Liste speichern
Überläufer durch Sondierungsreihe verschieben
18
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
5 Suchen in Texten
5.1 Naive Zeichenketten-Suche
1. Beginne mit dem ersten Zeichen des Textes und fahre fort bis zum Zeichen
aN −M
2. Vergleiche das Muster zeichenweise mit dem Text.
(a) Tritt ein Mismatch auf, verschiebe das Muster auf das Nächste Zeichen und beginne wieder bei 2.)
(b) Wurde das Ende des Musters erreicht, wurde ein Vorkommen gefunden.
5.2 Knuth-Morris-Pratt Algorithmus
1. Aufbau einer Verschiebungstabelle:
(a)
m:
(b)
W:
(c)
T [m]:
m, W, T [m]
Index Muster
Muster
Anzahl der Zeichen, die ein Teil des Musters bereits mit dem Musteranfang übereinstimmt.
2.
6 Optimierungsprobleme & -verfahren
6.1 LP → SDP
(
min
s.t.
mit
(
min cT x
cT x
⇒
Ax ≤ b
s.t.
−x1 diag(A1 ) − . . . − xn diag(An ) + diag(b) 0
Ak als Spaltenvektoren von A
6.2 QP → SDP
skalarer Fall
x = x1
1. Einführen einer zusätzlichen Optimierungsvariablen
x2

min x2



s.t.
1
2 x1 P x1 + qx1 ≤ x2

G1 x1 ≤ h1



A1 x 1 = b1
2. Beschreibung der Ungleichheitsbedingungen durch eine positiv semidenite Matrix
3. Darstellung in SDP Standardform
6.3
6.4
6.5
6.6
Lagrange-Multiplikatoren
Gradientenvefahren
Newton'sches Verfahren
Branch-and-Bound
7 Event-basierter Simulationskernel
Tabelle:
#
Event Auslöser
•
Positive/steigende Flanke:
•
Negative/fallende Flanke:
Simulierte Zeit
Evaluation Zeilen Nr.
clk.pos()
clk.neg()
19
Updates
ausgelöste Events
Zusammenfassung: GGI 3
Maximilian Lorent & Steen Vogel
11. März 2012
8 Petri-Netze
8.1 Komplementäre-Stellen Transformation
Die Komplementäre-Stellen Transformation beschreibt eine Umwandlung eines pures Petri-Netz
ein Petri-Netz
unendlicher
endlicher
Kapazität in
Kapazität.
Ziel der Umwandlung ist es, die Begrenzung der Kapazität aufzugeben. Gleichzeitig soll sich das Verhalten des Netzes
dabei nicht ändern.
1. Einführen einer komplementären Stelle
p0
für jede Stelle
p
mit
M00 (p0 ) = K(p) − M0 (p)
(t, p0 ) bzw. (p0 , t) zwischen jeder Transition und einigen komplementären Stellen p0 , so dass
0
0
die Summe der Tokens in p und p vor und nach dem Feuern von t gleich K(p) ist. Dabei gilt: w(t, p ) = w(p, t)
0
bzw. w(p , t) = w(t, p).
2. Einführen von Kanten
8.2 Lösung von Konikten durch zusätzliche Eingabestellen
Rot markierte Stellen zwingen das Petri-Netz zwischen beiden Transitionen zu togglen.
8.3 Konstruktion eines Überdeckbarkeitsbaum
1. Anfangsmarkierung
2. Solange neue
M0 ist
Wurzel und wird als M
gekennzeichnet
Markierungen existieren:
(a) Wähle eine neue Markierung
(b) Wenn
neu
M
identisch ist zu einer Markierung auf dem Pfad von der Wurzel zu
M , dann kennzeichne M
als alt
und wähle eine andere Markierung.
(c) Solange es in
M
aktivierte Transitionen gibt, tue folgendes für jede aktivierte Transition
i. Ermittele Markierung
M
0
, die aus Feuern von
resultiert
M ” mit M 0 (p) ≥ M ”(p) für jede Stelle p
0
und M 6= M ” existiert, ersetze M (p) mit ω für jedes p mit M (p) > M ”(p)
0
0
Führe einen Knoten für M sowie eine Kante t von M nach M ein und kennzeichne M' als neu
ii. Wenn auf dem Pfad von der Wurzel zu
0
iii.
t
t:
M
eine Markierung
0
Beim Zeichnen des Baumes, darf man erst aufhören, wenn sich die Markierungen wiederholen.
8.4 Konstruktion eines Überdeckbarkeitsgraphen
1. Konstruiere gerichteten Graphen
•
Knotenmenge
•
Kantenmenge
M i und
V:
G = (V, E)
mit
Menge aller verschiedenen Knoten im Überdeckbarkeitsbaum
E : Menge aller Kanten, die einzelne Transition tk
Mj Knoten aus V sind
20
repräsentieren, für die
Mi [tk > Mj gilt, wobei
Herunterladen