Informatik I WS 03/04 Kapitel 2 Halbgruppen und · PDF fileI ·n ·f ·o...

Preview:

Citation preview

Institut für Programmstrukturen und Datenorganisation (IPD) Prof. Dr. Gerhard Goos

Informatik I WS 03/04

Kapitel 2Halbgruppen und

Relationen2.1 Halbgruppen und

Monoide

2.2 Relationen und Graphen

2.3 Ordnungsrelationen, Halbverbände, Verbände

2.4 Endliche Automaten

2.5 Petri-Netze

2.6 Relationale Algebra

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

1/1332 MotivationSatz: „Das Haus hat vier Wände.“

beschreibt Beziehung (Relation) zwischen System Haus und seinen Komponenten des Typs Wand☛ Haus ist ein Begriff

Satz: „Das Haus hat vier Buchstaben.“beschreibt Aufbau des Wortes Haus☛ Begriff: Wort bestehend aus Buchstaben☛ auch hier handelt es sich um eine Relation

Relationen gehören zu den Grundlagen der Informatik

Beispiele:kausale Abhängigkeiten (Zustandsfolgen)Ableitungsrelationenrelationale Datenbanken

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

2/1332 MotivationKausale Abhängigkeiten sind Ordnungsrelationen

Anwendungen in der Systemspezifikation: endliche Automaten und Petri-Netze

Darstellung von Relationen als Graphen

einfachste Relation: Nebeneinanderschreiben von Buchstaben in Texten

☛ Halbgruppen und Monoide

Voraussetzung: Mengenlehre

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

3/1332.1 Halbgruppen und MonoideZiel: Untersuchung der Struktur von Zeichenreihen (Texten)

Zeichenreihen sind Daten

können Informationen wiedergeben

werden umgeformt, z.B. durch Markov-Algorithmen

Zeichenreihe ist System mit Zeichen als elementaren Gegenständen

Beziehung zwischen Zeichen: „folgt auf"

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

4/1332.1 EinleitungKonkatenation (Verkettung): Hintereinanderschreiben von Zeichen

Das Zeichen · notiert diese Operation explizit

Beispiel:3 · 7 = 37I · n · f · o · r · m · a · t · i · k = Informatik

Verallgemeinerung: Auch Zeichenreihen können verkettet werden:(Infor) · (matik) = Infor · matik =I · n · f · o · r · m · a · t · i · k = Informatik

die Klammern (… ) sind sogenannte Metazeichen und gehören ebenso wie der Operator · nicht zu den zu verkettenden Zeichenreihen

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

5/1332.1 HalbgruppenHalbgruppe:Menge U mit binärer Operation ·, so daß für alle a, b, c ∈ U gilt:

a · b ∈ U ( algebraische Abgeschlossenheit )(a · b ) · c = a · (b · c ) ( Assoziativgesetz ) (HG1)

kommutative oder abelsche Halbgruppe:Es gilt zusätzlich für alle a,b ∈ U :

a · b = b · a ( Kommutativgesetz ) (HG2)Die meisten Halbgruppen in der Informatik sind nicht kommutativ

Algebra: Tripel A = (A, O, G) wobeiA ist Menge ( Trägermenge )O ist Menge algebraisch abgeschlossener OperationenG ist Menge von Gesetzen

Beispiel: Halbgruppe H = (U, {·} , {HG1}) der Zeichenreihen über dem Zeichenvorrat U

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

6/1332.1 Beispiele für HalbgruppenBeispiele:

natürliche Zahlen ℕ mit Addition +natürliche Zahlen ℕ mit Multiplikation ⋅

Mengen mit Vereinigung ⋃Mengen mit Durchschnitt ∩

alle diese Halbgruppen sind abelschdie Halbgruppe der Zeichenreihen mit · zur Verkettung ist nicht abelsch!jede Gruppe i.S.d. Mathematik ist auch eine Halbgruppeendliche Halbgruppen werden über Verknüpfungstabellen definiert

⋅ 0 1 viele0 0 1 viele1 1 viele viele

viele viele viele viele

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

7/1332.1 MonoideMonoid: Halbgruppe (U, ·) mit Element ε ∈ U, so daß für alle a ∈ U gilt:

ε · a = a und a · ε = a ( Einselement, neutrales Element oder kurz Eins )

Beispiele:leerer Text in der Halbgruppe der Zeichenleere Menge ∅ bei Mengen mit Vereinigung ⋃0 in der additiven Halbgruppe der ganzen Zahlen1 in der multiplikativen Halbgruppe der ganzen Zahlen

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

8/1332.1 MonoideLinkseins: 1l · a = a für alle a ∈ URechtseins: a · 1r = a für alle a ∈ U

Beispiel: Betrachte Halbgruppe U = {0, 1}

Ein Einselement ist eindeutig bestimmt

Beweis:Angenommen es gibt zwei Einsen e und e', dann gilt:

e = e' · e weil e' Rechtseins ist= e' weil e Linkseins ist

0 und 1 sind Linkseinsenaber: x · 0 = 0 und x · 1 = 1Also ist weder 0 noch 1 Rechtseins

⋅ 0 10 0 11 0 1

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

9/1332.1 Beispiel: Relationen mit VerknüpfungRelationen zwischen Mengen U und V: ρ ⊆ U ✕ V

Verknüpfung zweier Relationen ρ ⊆ U ✕ V und σ ⊆ V ✕ W:ρ · σ = { ( u,w) | ∃ v ∈ V: (u,v) ∈ ρ ∧ (v,w) ∈ σ} ⊆ U✕ WVorsicht: in der Mathematik schreibt man stattdessen gewöhnlich σ · ρ !

Monoid: Menge aller Relationen zwischen U und U mit Verknüpfung •Einselement: Δ = {(u,u) | u ∈ U}, identische RelationBeweis:ρ · Δ = { ( u,w) | ∃ v ∈ V: (u,v) ∈ ρ und (v,w) ∈ Δ} Definition von •

= { ( u,w) | u ∈ U und (u,w) ∈ ρ} Definition von Δ= ρ

Assoziativgesetz giltBeweis: Übung

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

10/1332.1 Beispiel: KomplexprodukteSei H = (U, ·) HalbgruppeKomplexprodukt von M,N ⊆ U: M · N = { m · n | m ∈ M und n ∈ N}

Potenzmenge P(U) = {M | M ⊆ U} mit Komplexprodukt ist Halbgruppe

Beweis:(M · N) · Q = { x · q | x ∈ M · N und q ∈ Q} (Def. Komplexprodukt)

= { (m · n) · q | m ∈ M, n ∈ N, q ∈ Q} (Def. Komplexprodukt)

= { m · (n · q) | m ∈ M, n ∈ N, q ∈ Q} (H ist Halbgruppe)

= { m · y | m ∈ M, y ∈ N · Q} = M · (N · Q) (wie oben)

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

11/1332.1 Beispiel: KomplexprodukteEs gilt:

Falls H ein Monoid mit Eins ε ist, dann ist die Potenzmenge P(U) mit Komplexprodukt und Eins e = {ε} ein Monoid.

Beweis:e · M = { ε · m | m ∈ M } (Definition Komplexprodukt)

= { m · ε | m ∈ M } (H ist Monoid)= M · e (Definition Komplexprodukt)= M

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

12/1332.1 Strukturen von Halbgruppen und MonoidenSei H = (U, ·) HalbgruppeUnterhalbgruppe von H: Halbgruppe H' = (U', ·) wobei

U' ⊆ UU' algebraisch abgeschlossen bzgl. ·

Sei M = (U, ·, e) MonoidUntermonoid von M: M' = (U', ·, e) wobei

(U',·) Unterhalbgruppe von (U, ·) e ∈ U'

Beispiel: Gegeben Monoid (ℕ, ·).Untermonoid U' = {0,1} ⊆ ℕ ist gegeben durch: ⋅ 0 1

0 0 01 0 1

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

13/1332.1 Das Monoid M+

Gegeben: Halbgruppe H = (U, ·) bzw. Monoid (U, ·, e).Für beliebiges M ⊆ U setzen wir inErweiterung des Komplexprodukts

M0 = {e} nur für Monoide definiertM1 = MMi+1 = Mi · MM+ = ⋃i∈ ℕ ∖ {0} Mi = M1 ⋃ M2 ⋃ …M* = ⋃i∈ ℕ Mi = {e} ⋃ M+ nur für Monoide definiert

(M+, ·) ist kleinste Unterhalbgruppe (V, ·) von H mit M ⊆ V (M*, ·, e) ist kleinstes Untermonoid (V, ·, e) mit M ⊆ V (falls H Monoid)

Beweis: Übung

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

14/1332.1 Erzeugte Halbgruppen und MonoideGegeben:

Menge M, Operation ·, definiert für Elemente x,y ∈ Maber: x · y ∈ M wird nicht vorausgesetzt!von M erzeugte Halbgruppe: (M+, ·)von M erzeugtes Monoid: (M*, ·, e),falls es ein Einselement e zur Operation · gibt(e muß nicht unbedingt zu M gehören!)

☛ M heißt Erzeugendensystem

☛ Wenn M endlich ist, dann heißt die Halbgruppe bzw. das Monoid endlich erzeugt

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

15/1332.1 Erzeugte Halbgruppen und MonoideBeispiel:

Halbgruppe/Monoid der natürlichen Zahlen ist über M = {1} und Addition + endlich erzeugt.

Monoid der Texte über Zeichenvorrat Σ ist über Σ und Konkatenation ·endlich erzeugt. Σ* ist Menge aller Texte einschließlich Σ über Σ.

für Mathematiker:ein Ideal I ⊆ ℤ ist ein bzgl. Multiplikation mit ganzen Zahlen abgeschlossenes additives Monoid: aus x, y ∈ I, n ∈ ℤ folgtx ± y ∈ I, n · x ∈ I.

tiefliegender Satz der Algebra: alle Ideale im Ring der ganzen Zahlen sind endlich erzeugt

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

16/1332.1 Relationen: Klassifikationreflexive Relation ρ ⊆ M2 : Für alle x ∈ M gilt x ρ xsymmetrische Relation ρ ⊆ M2 : Für alle x ,y ∈ M gilt: Aus x ρ y folgt y ρ xantisymmetrische Relation ρ ⊆ M2 :

Für alle x ,y ∈ M gilt: Aus x ρ y und y ρ x folgt x = ytransitive Relation ρ ⊆ M2 :

Für alle x ,y,z ∈ M gilt: Aus x ρ y und y ρ z folgt x ρ zinverse oder transponierte Relation ρT zu ρ ⊆ M2:

y ρT x genau dann, wenn x ρ yÄquivalenzrelation: reflexive, symmetrische (ρT = ρ), transitive Relation

Quasiordnung: reflexive, transitive Relation(Halb-)Ordnung: reflexive, antisymmetrische, transitive RelationAlternative Ordnung: für x, y ∈ M mit x ≠ y gilt entweder x ρ y oder y ρ xTotale oder lineare Ordnung: alternative Halbordnung

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

17/1332.1 Erzeugte Halbgruppen und Monoide für RelationenGegeben: Monoid der Relationen ρ ⊆ M ✕ M mit Komposition ·

I. ρ = ρ+ genau dann, wenn ρ transitivII. ρ = ρ* genau dann, wenn ρ reflexiv und transitivIII. ρ Äquivalenzrelation genau dann, wenn ρ = (ρ ⋃ ρT)*

Beweis: i.„wenn… dann… “

Es gelte ρ = ρ+, x ρ y und y ρ z.Zu zeigen: x ρ z

x ρ y und y ρ z ⇒ x ρ2 z⇒ x ρ+ z, weil ρ2 ⊆ ρ+

wegen ρ = ρ+ gilt also x ρ z

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

18/1332.1 Erzeugte Halbgruppen und Monoide für Relationen„… nur dann, wenn… “

Sei ρ transitiv⇒ ρ2 ⊆ ρ

Induktionsschritt: ρi+2 = ρi · ρ2 ⊆ ρi · ρ = ⊆ρi+1 ρ (Induktionsannahme)⇒ Für alle i ≥ 1 ist ρi ⊆ ρ⇒ ρ+ ⊆ ρ⇒ ρ+ = ρ, weil auch ρ ⊆ ρ+

Beweis von ii. und iii.: Übung

Transitive Hülle von ρ: ρ+

Reflexive, transitive Hülle von ρ: ρ*

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

19/1332.1 Erzeugte Halbgruppen von ZeichenreihenZeichenreihen: Monoid Σ* über Zeichenvorrat Σ mit Verkettung

leeres Wort:ε besteht aus null Zeichen und ist neutrales Element von Σ*

Notationen:

|x|: Länge des Wortes x in Anzahl der Zeichenxn = x · … · x : n-fache Wiederholung des Wortes x

x0 = ε

Beobachtung: Zeichenvorrat Σ ist in der Informatik meist endlich

n-mal

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

20/1332.1 GödelnumerierungKurt Gödel, 1906 - 1978, bedeutendster Logiker des 20. Jahrhunderts

Satz:Das Monoid Σ* über endlichem Zeichenvorrat Σ ist abzählbar.

Beweis:Numeriere die Zeichen von Σ mit 1, … , k☛ Jede Zeichenreihe x1… xn entspricht n-Tupel (j1, … , jn), jj ist der

Index von xj in Σ Sei p1, p2, … die abzählbar unendliche Folge der PrimzahlenDefiniere f : Σ* → ℕ durch:

f (ε) = 1f (x1, … , xn) = (p1)j1 ⋅ … ⋅ (pn)jn

f ist injektiv, weil sich jede natürliche Zahl n eindeutig in ihre Primzahlen zerlegen läßt, d.h. n = (p1)j1 ⋅ … ⋅ (pn)jn

☛ Σ* ist abzählbar

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

21/1332.1 GödelnumerierungGödelnummer von x : f (x)Gödelnumerierung von Σ* : f

Beispiel: Σ = {a, b, c}Numerierung: a hat Nummer 1, b hat Nummer 2, c hat Nummer 3f (abcaab) = 21 · 32 · 53 · 71 · 111 · 132 = 29279250

Lerne:den Satzdas Prinzip der Gödelnumerierung als Beweisprinzip

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

22/1332.1 ListenListe über Menge U (auch Sequenz oder Folge): Monoid U mit

Listenkonkatenation ++ und leerer Liste [ ] als neutralem ElementNotationen:

[a1, … , an]: Liste der Elemente a1, … , an (in dieser Reihenfolge)append(l, l') = l ++ l' Funktionsschreibweise[U]: alternative Notation für U*

Beispiel: [a, b, c] ++ [d, e] = [a, b, c, d, e]

Beobachtungen:append ist assoziativUnterschied zu Mengen: [1, 2] ≠ [2, 1], [1, 1, 2] ≠ [1, 2]

{1, 2} = {2, 1}, {1, 1, 2, 3, 2} = {1, 2, 3}

Listen spielen in der Informatik eine wichtige Rolle

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

23/1332.1 Inverse Elemente, Kürzen und Gruppen

Gegeben: Monoid M = (M, ·, e)

Inverses Element x' zu x ∈ M: x · x' = e = x' · xBeispiel: Im Monoid der Funktionen f : M → M mit Verknüpfung

besitzen nur die bijektiven Funktionen ein Inverses

Gruppe: Monoid, in dem jedes Element ein inverses Element besitzt

Aber: In Σ* und [U] besitzt nur e ein inverses Element ☛ keine Gruppe!

Allerdings gelten:Linkskürzungsregel:Für alle x, y, w ∈ Σ* gilt: Aus w · x = w · y folgt x = yRechtskürzungsregel:Für alle x, y, w ∈ Σ* gilt: Aus x · w = y · w folgt x = y☛ a1 … an = b1 … bm genau dann, wenn n = m und ai = bi , i = 1 … N

Beobachtung: Obige Kürzungsregeln gelten nicht in allen Monoiden

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

24/1332.2 Relationen und GraphenGegen sei eine (homogene) Relation: ρ ⊆ E ✕ E

Gerichteter Graph (Digraph): G = (E,K)endliche oder abzählbare Grundmenge E von Ecken (engl. vertex)homogene Relation K ⊆ E ✕ E Kanten (engl. edge)☛ gerichtete Graphen und Relationen entsprechen einander

Notation: e →G e' anstelle von (e, e') ∈ K bzw. e K e'Index G wird weglassen, wenn klar aus Kontext

endlicher gerichteter Graph:gerichteter Graph G = (E,K) mit endlicher Grundmenge

ungerichteter Graph:G = (E,K) mit symmetrischem K: (e, e') ∈ K und (e', e) ∈ K ☛ die Kanten werden dann ohne Pfeil gezeichnet

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

25/1332.2 Beispiel: Visuelle Darstellung von GraphenBeobachtung:

endliche Graphen können visuell dargestellt werdenEcken sind Punkte, Pfeil von e nach e' wenn e → e'

Beispiel: Betrachte drei äquivalente Graphen zur Relation:E = {a, b, c, d}ρ = {a → b, a → c, a → d, b → c, d → b, d → c}

d c

a b

d c

a b

d c

a b

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

26/1332.2 TeilgraphenTeilgraph eines Graphen G = (E,K):Graph G = (E',K') mit E' ⊆ E und K' = {(e,e') ∈ K | e,e' ∈ E'}

G' heißt auch durch E' induzierter Teilgraph von GBeispiel:

Dualer Graph von G = (E,K): GT = (E,KT) mit KT = { (e',e) | (e,e') ∈ K}Beispiel:

d c

a b

d

a b

d c

a b

d c

a b

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

27/1332.2 Ecken von GraphenSei G = (E,K) gerichteter GraphEingangskanten von e ∈ E: ∙e = {(e',e) | (e', e) ∈ K}Ausgangskanten von e ∈ E: e∙ = {(e,e') | (e,e') ∈ K}Eingangsgrad von e ∈ E: |∙e|Ausgangsgrad von e ∈ E: |e∙|Eigenschaft: ∑e ∈ E |∙e| = ∑e ∈ E |e∙| = Anzahl Kanten |K|Bei ungerichteten Graphen: grad(e) = |∙e| = |e∙|

Beispiel:

d c

a b

∙a = ∅ a∙ = {a → b, a → c, a → d}∙b = {a → b, d → b} b∙ = {b → c}∙c = {a → c, b → c, d → c } c∙ = ∅∙d = {a → d} d∙ = {d → b, d → c }

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

28/1332.2 Vollständiger GraphVollständiger Graph:

ungerichteter Graph, in dem je zwei Ecken durch eine Kante verbunden sind

Notation: Kn ist vollständiger Graph mit n Ecken

Beispiel: K5

Übung: Wieviele Kanten hat ein vollständiger Graph mit n Ecken?

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

29/1332.2 Wege, Zyklen und BäumeSei G = (E,K) gerichteter GraphWeg in G der Länge n: Folge von Ecken (e0, … , en), so daß (ei,ei+1) ∈

K, i = 0, … , n-1en ist erreichbar von e0

Definition gilt auch für ungerichtete Graphen

Zyklus in G: en = e0

in ungerichteten Graphen spricht man von einem Kreis

Beispiel:

d c

a b

Wege von a nach c: (a,c)

(a,d,b,c)

(a,b,c)

Zyklen: (b,c,d,b) (einfach)

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

30/1332.2 Eulerscher KreisLeonhard Euler, 1707 - 1783, schweizer MathematikerEulerscher Kreis:

Kreis, der alle Kanten des Graphs genau einmal enthältBeispiel: Königsberger Brückenproblem (Euler, 1736)

Gibt es einen Weg, der genau einmal über alle sieben Brücken führt und zum Ausgangspunkt zurückführt?

G = (E,K) enthält genau dann eulerschen Kreis, wenn G zusammenhängend und grad(e) gerade für alle Ecken e ∈ E

☛ Königsberger Brückenproblem nicht lösbar

a

b

c

d

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

31/1332.2 Hamiltonscher KreisSir William Rowan Hamilton, 1805 - 1865, irischer Mathematiker, führte

Kräftefunktion in theoretische Mechanik ein

Gegeben: ungerichteter Graph G = (E, K)

Hamiltonscher Kreis: Kreis, der alle Ecken genau einmal enthält

Beispiel:

Kreis: (a, c, b, d, a)

d c

a b

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

32/1332.2 Azyklische Graphengerichteter azyklischer Graph: gerichteter Graph ohne ZyklusBeispiel:

Wald: ungerichteter Graph ohne KreiseBeispiel:

(ungerichteter) Baum: Wald (ungerichteter, azyklischer Graph), in dem je zwei Ecken durch einen Weg verbunden sind

Blatt eines Waldes: Ecke mit grad(e) = 1

d c

a b

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

33/1332.2 Eigenschaften von Bäumen und WäldernSatz: Sei G = (E,K) ungerichteter Baum. Dann ist |E| = |K| + 1.Beweis: Induktion über |E|

Induktionsanfang:|E| = 1: Also |K|= 0

Induktionshypothese: Aussage gelte für |E| = nInduktionsschritt: Zu zeigen: Aussage gilt für |E| = n + 1

füge neue Ecke e zu Baum G mit n Ecken hinzu

damit Baum entsteht, existiert eine Kante von e zu Ecke e' von G

Annahme: es gibt eine weitere solche Ecke e''

da G Baum gibt es Weg w von e' nach e''⇒ Kreis (e, e',…, e'', e). Widerspruch!

e'

e''

e

w

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

34/1332.2 Gerichtete Wälder und Bäume(gerichteter) Wald: gerichteter azyklischer Graph G = (E,K) mit |∙e| ≤ 1

für alle e ∈ EBeispiel:

Wurzel: Ecke mit |∙e| = 0 Beispiel: a und fBaum: Wald mit genau einer WurzelBlatt: Ecke mit e∙ = 0 Beispiel: e, c, h, j und kHöhe von e ∈ E: maximale Länge eines Wegs von e zu einem Blatt

Beispiel:

Höhe eines Baums: Höhe seiner WurzelEltern und Kinder: Kante e → e' definiert Eltern-Kind Beziehung

Ecke a b c d e f g h i j kHöhe 3 2 0 1 0 3 2 0 1 0 0

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

35/1332.2 Semiwege, spannende Wege und Schlingen Sei G = (E,K) gerichteter GraphSchlinge: Zyklus der Länge 1Beobachtung: Relation ist genau dann reflexiv, wenn jede Ecke eine

Schlinge besitzt

Beispiel:

Semi-Weg: Folge von Ecken mit (e0, e1, … , en), ei → ei+1 oder ei+1 → ei

Beispiel: (c, a, b, d)

spannender Weg: Weg, der alle Ecken enthält

d c

a b

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

36/1332.2 Reflexive, transitive Hüllen endlicher RelationenGegeben:

Endliche Relation ρ über E.Behauptung:

Dann gibt es ein n ∈ N, so dass ρ* = (Δ ⋃ ρ)n, wobei Δ = {(e,e) | e ∈ E} die identische Relation ist und n =|E| - 1

Beweis:Es gilt (Δ ⋃ ρ)i ⊆ (Δ ⋃ ρ)n für alle 0 ≤ i ≤ n:

⇒ (Δ ⋃ ρ)n = ⋃i=0…n(Δ ⋃ ρ)i

Sei n+1 = |E|⇒ Wege der Länge ≥ n+1 enthalten wenigstens eine Ecke mehrfach⇒ jede von e ∈ E aus erreichbare Ecke ist mit Weg ≤ n erreichbar⇒ ρ* = ∪i=0

n (Δ ⋃ ρ)i = (Δ ⋃ ρ)n

e e'

Weg (w, e, … , e')(n-i)-mal

Weg w der Länge i

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

37/1332.2 Eigenschaften von Graphenzusammenhängender Graph: ungerichteter Graph G = (E,K), in dem

jedes e ∈ E von jedem e' ∈ E aus erreichbar ist

stark zusammenhängender Graph: gerichteter Graph G = (E,K), in dem jedes e ∈ E von jedem e' ∈ E aus erreichbar ist

einseitig zusammenhängender Graph: gerichteter Graph G = (E,K), in dem von je zwei Ecken e, e' ∈ E mindestens eine von der anderen erreichbar ist

schwach zusammenhängender Graph: gerichteter Graph G = (E,K), in dem zwischen je zwei Ecken e, e' ∈ E ein Semiweg existiert

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

38/1332.2 Eigenschaften von GraphenBeispiel:

schwach zusammenhängend, nicht stark zusammenhängend, einseitig zusammenhängend

(starke, einseitige, schwache) Zusammenhangskomponente:maximaler Teilgraph bzgl. der betrachteten Zusammenhangs-eigenschaft

d c

a b

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

39/1332.2 Bipartite oder paare GraphenBipartiter (paarer) Graph G = (E,K): E = U ⋃ V läßt sich in zwei disjunkte

Mengen U, V zerlegen, so daß K ⊆ U ✕ V ⋃ V ✕ U

Beispiel: vollständig bipartiter (paarer) Graph K3,3

Anwendungen: Modellierung von Zuordnungsproblemen

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

40/1332.2 Das HeiratsproblemGegeben:

n Jungen (Menge U) und n Mädchen (Menge V)Jeder Junge u ∈ U mag eine Menge Vu ⊆ V von MädchenJedes Mädchen v ∈ V mag eine Menge Uv ⊆ U von Jungen

Frage: Gibt es n Heiraten, so daß jeder Junge ein Mädchen heiratet, das er mag, und jedes Mädchen einen Jungen heiratet, den sie mag?

☛ Modellierung als bipartiter Graph:Kante u → v genau dann, wenn u v mag

Antwort (Philipp Hall, 1935): Es gibt n solche Heiraten gdw. zu jeder Teilmenge von k Mädchen (k = 1…n) die Menge der Jungen, die eines der Mädchen mag, mindestens k Jungen umfaßt.

Praktische, (aber noch kompliziertere) Anwendung:Aufstellung von Stundenplänen {((Lehrer, Klasse), Stunde)}

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

41/1332.2 Markierte Graphenmarkierter Graph: Graph G = (E,K) mit Markierungsfunktionen

ME: E → GE und MK : K → GK

Markierungen drücken Zusatzinformationen aus

Beispiel:

Netzplan: gerichteter azyklischer markierter Graph G = (E,K) mitgenau einer Ecke q ∈ E mit |∙q| = 0 (Anfang oder Quelle des Netzes)genau einer Ecke s ∈ E mit |∙s| = 0 (Ende oder Senke des Netzes)Kantenmarkierungen: Tätigkeit und deren ZeitdauerEckenmarkierung: Projekt

d c

a b

zustände mit Zeitpunkt

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

42/1332.2 Beispiel: Netzplan

Tätigkeiten und deren ZeitdauerMeilenstein: Beendigung einer Menge von TätigkeitenZeitpunkt für Fertigstellung eines Meilensteins

Anfang

M1

M2

M4

M3

M5

M6

M7

M8

T18 Tage

T215 Tage

T410 Tage

T315 Tage

T65 Tage

T510 Tage

T720 Tage

T1015 Tage

T915 Tage

T117 Tage

T1210 Tage

T825 Tage

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

43/1332.2 Weitere markierte GraphenMehrfachgraph: Graph G = (E,K) mit Kantenmarkierung MK: K → ℕ

Interpretation M(u → v) ist Anzahl der Kanten zwischen u und v

geordneter Baum: gerichteter Baum G = (E,K) mit Kantenmarkierung MK: K → ℕKantenmarkierung numeriert (ordnet) Kinder

Beispiel: Ableitungsbäume, Kantorowitsch-BäumeSatz

Subjekt Prädikat Objekt

Artikel Substantiv

Ein Informatiker ißt

Substantiv

Schokolade

+

*

+ c

d

a b

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

44/1332.2 Planare Graphenplanarer Graph (ebener Graph): G = (E,K) kann in der Ebene ℝ2 so

gezeichnet werden, daß alle Ecken auf verschiedene Punkte abgebildet werden und sich keine Kanten kreuzen.

Beispiel: planarer Graph

Beispiel: nichtplanarer Graph

Anwendungen:Zeichnen von Graphenelektronische Schaltungen (kreuzungsfreie Leitungen)

d c

a b

d c

a b

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

45/1332.2 Repräsentation von GraphenGegeben: gerichteter Graph G = (E,K) mit bijektiver Eckenmarkierung

ME: E → {0,… ,|E| - 1}☛ Ecken 0, … , n – 1

Adjazenzmatrix: A = (ai,j ) ∈ {0, 1}n ✕ n mit

aik ≔

☛ Darstellung von G im Binärcode

Adjazenzlisten:Für jede Ecke e: Darstellung der Menge {e': (e, e') ∈ K} als Liste

1 wenn (i,j) ∈ K0 sonst

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

46/1332.2 Beispiel

d c

a b

Adjazenzmatrix: Adjazenzliste:

0 1 1 10 0 1 00 0 0 00 1 1 0

a: [b, c, d]b: [c]c: []d: [b, c]

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

47/1332.2 Anwendungen Adjazenzlisten anstelle dünn besetzter MatrizenAdjazenzlisten werden zu k-Tupel bei Ausgangsgrad ≤ kAdjazenzmatrizen:

reflexive Relation: aii = 1 für i = 0, … , n symmetrische Relation: Adjazenzmatrix ist symmetrischVerknüpfung von Relationen ρ, σ gegeben durch A = (aij), B = (bij):i (ρ ∘ σ) j ⇔ es gibt ein k mit i ρ k und k σ j

⇔ es gibt ein k mit aik = 1 und bkj = 1⇔ ∑k=0…n aik · bkj ≥ 1⇒ Adjazenzmatrix C (cij) von ρ ∘ σ:

cij ≔

transitive Relation ρ☛ ρ2 ⊆ ρ ⇒ aij · ajk ≤ aik

1 wenn ∑k=0naik · bkj ≥ 1

0 sonst

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

48/1332.2 Alternative Codierung mit AdjazenzmatrizenSei C = (cij) = Al

cij = m genau dann, wenn es m Wege der Länge l von i nach j gibt

alternative Codierung für Relation ρ:

cij ≔

☛ Verknüpfung zweier Relationen entspricht Multiplikation der Adjazenzmatrizen

x > 0 wenn i ρ j, x beliebig0 sonst

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

49/1332.2 Alternative Codierung mit AdjazenzmatrizenBeweis: Induktion über l:

l=1: trivial

Induktionshypothese: Es gelte die Behauptung im Satz

Induktionsschritt: Zu zeigen: Behauptung gilt auch für Al+1

Sei D = (dij) = Al und C = (cij) = Al+1

⇒ C = D · A

⇒ dik · akj entspricht Anzahl der Wege i →l k → j

⇒ cij = ∑k=0…n-1 dik · akj entspricht Anzahl der Wege i →l+1 j

Variante: ρ reflexiv, C = (cij) = Al

cij = m genau dann, wenn es m Wege der Länge ≤ l von i nach j gibt

Beweis: Übung

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

50/1332.2 Satz von Floyd und WarshallGegeben: reflexive Relation ρ über E = {0, … , n-1}

Sei σ(k) = { (i,j) | Es gibt einen Weg i → e0 → … → el-1 → j, l ≤ k, ej ∈ {0, … , k-1}, 0 ≤ j < l}}

Dann: σ(0) = ρ, σ(k+1) = σ(k) ⋃ {(i,j) | i σ(k) k und k σ(k) j } und ρ* = σ(n)

Beweis: Induktionk = 0: σ0 = ρ trivialInduktionsschritt: Induktionshypothese: σ(k) umfaßt alle Wege beliebiger Länge i → e0 → … → el-1 → j mit {e0, … , el-1} ⊆ {0, … , k-1}

☛ {(i,j) | i σ(k) k und k σ(k) j } umfaßt alle Wege i → e0 → … → el-1 → j mit {e1, … , el} ⊆ {0, … , k} über Ecke k

☛ Behauptung ☛ ρ* = ρn = σ(n)

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

51/1332.2 Floyd Warshall AlgorithmusBerechnung der transitiven, reflexiven Hülle einer Relation ρ

Idee: Berechne σ(k+1) = σ(k) ⋃ {(i,j) | i σ(k) k und k σ(k) j } ausgehendvon σ(0) = Δ ⋃ ρ

Für Adjazenzmatrizen S(k) = (sij(k)) von σ(k) gilt:

sij(k+1) = sij

(k) + sik(k) · skj

(k)

Eingabe: Adjazenzmatrix A einer Relation ρAusgabe: Adjazenzmatrix S von ρ*

S ≔ A;für i = 0, … , n - 1 sei sii ≔ 1für k = 0, … , n – 1

für i = 0, … , n – 1für j = 0, … , n – 1 sei sij ≔ sij + sik · skj

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

52/1332.2 Adjazenzmatrizen von bipartiten Graphen Gegeben: Graph G = (E,K) mit Adjazenzmatrix A = (aij)

G ist genau dann bipartit, wenn es Numerierung der Ecken und Index k gibt, so dass gilt:

Beweis: E = U ⋃ V, U ∩ V = Ø, k = |U|

numeriere Ecken in U mit 0, … , k-1

☛ G ist genau dann bipartit, wenn gilt:aij ≠ 0 ⇒ i < k ≤ j oder j < k ≤ i

Θ ≙ Nullmatrix

B, C ≙ beliebige MatrizenΘ BC Θ

kA =

k

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

53/1332.3 Relationen und VerbändeHalbordnung auf U : Relation ≤ ⊆ U ✕ U, so daß für alle a, b, c ∈ U:

a ≤ a (reflexiv)wenn a ≤ b und b ≤ a, dann ist a = b (antisymmetrisch)wenn a ≤ b und b ≤ c, dann ist a ≤ c (transitiv)

Beispiel:Menge P(U) aller Teilmengen von U mit Teilmengenbeziehung ⊆

strenge Halbordnung auf U : transitive, irreflexive RelationEigenschaft: Wenn ρ ⊆ U ✕ U azyklisch ist, dann ist ρ* Halbordnung

und ρ+ strenge HalbordnungBeispiel: echte Teilmenge ⊂

halbgeordnete Menge:Paar (U,≤) mit Halbordnung ≤ ⊆ U ✕ U

streng halbgeordnete Menge:Paar (U,<) mit strenger Halbordnung < ⊆ U ✕ U

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

54/1332.3 QuasiordnungenGegeben: Funktion f : U → V und Relation ≤ ⊆ U ✕ U

Durch f und ρ induzierte Relation ρ': f(u) ρ' f(v) genau dann, wenn u ρ v Quasiordnung auf U: reflexive und transitive Relation ≺ ⊆ U ✕ U

Beispiel: reflexive transitive Hülle von:

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

55/1332.3 QuasiordnungenSatz:

Sei ≺ Quasiordnung auf U. Dann gibt es eine Menge U und Abbildung f : U → U, so daß die durch f und ≺ induzierte Relation ≤ Halbordnung auf U ist.

Beweis: Betrachte Graph G≺ = (U,≺)Sei [x] ≔ {y ∈ U : x ≺ y ≺ x}⇒ [x] ist starke Zusammenhangskomponente von G≺

Definiere U ≔ {[x] | x ∈ U} und f(x) ≔ [x]⇒ ≤ ist Quasiordnung

Es gelte [x] ≤ [y] und [y] ≤ [x].⇒ Für alle u ∈ [x], v ∈ [y] gilt u ≺ v und v ≺ u⇒ [x] = [y]

Also ist ≤ Halbordnung

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

56/1332.3 Beispiele von Halbordnungen und Quasiordnungen Sei Σ Zeichenvorrat

u ∈ Σ* Präfix von w ∈ Σ* : es gibt v ∈ Σ* mit w = uv

Beispiele:„Zimmer“ ist Präfix von „Zimmermann"Relation „ist Präfix" ist Halbordnung

Gegeben kontextfreie Grammatik G = (Σ, N, P, Z), V = Σ ⋃ NAbleitungsrelation ⇒* ⊆ V ✕ V ist QuasiordnungWenn G anständig ist, dann ist ⇒* Halbordnung

Markov-Algorithmus über Σ* (einschließlich Schiffchen)Ableitungsrelation ⇒* ist QuasiordnungWenn der Algorithmus für alle w ∈ Σ* terminiert, dann ist ⇒* Halbordnung

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

57/1332.3 Hasse-DiagrammeHelmut Hasse, 1898 - 1979, deutscher Mathematiker

Gegeben: Halbordnung ≤ auf einer Menge U

Zeichne U als Graph G mit Kanten x → y, wenn x ≤ y.

Der Graph ist unübersichtlich: wenn x ≤ y und y ≤ z, so auch x ≤ z.Also gibt es mindestens 2 Wege von x nach z: x→ y → z und x → z.

Frage: Was ist der einfachste Graph G', bei dem man auf genau einemWeg von x nach z kommt, wenn x ≤ z?

☛ G' entsteht aus G durch Weglassen von Kanten.G' heißt Hasse-Diagramm zu ≤.

Bemerkung: Das Hasse-Diagramm existiert für endliche Halbordnungen immer, bei unendlicher Grundmenge U jedoch oft nicht.

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

58/1332.3 Hasse-Diagramme: BegriffeTotalordnung ≤ auf U:

Halbordnung ≤, so daß x ≤ y oder y ≤ x für alle x, y ∈ UBeispiel: ℕ mit ≤

Kette K ⊆ U:total geordnete Teilmenge einer halbgeordneten Menge (U, ≤)

Beispiel: Ø ⊆ {1} ⊆ {1, 2} ⊆ {1, 2, 3} ⊆ … Beobachtung: Im Graph G≤ = (U, ≤) entspricht eine Kette einem Weg

Absteigende Kette: … ≤ e-n ≤ … ≤ e-1 ≤ e0

Beispiel: … ⊆ {3, 4, … } ⊆ {2, 3, 4, … } ⊆ {1, 2, 3, 4, … }

Aufsteigende Kette: e0 ≤ e1 ≤ … ≤ en ≤ …

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

59/1332.3 Azyklische Relationen und Halbordnungen Satz:

Seien ρ, σ azyklische Relationen auf U mit ρ ⊆ σ ⊆ ρ+,dann ist ρ+ = σ+.

Beweis: Es gelte e0 σ+ en

Es gibt in Gσ = (U, σ) einen Weg e0 →σ e1 →σ … →σ en

⇒ da σ ⊆ ρ+ gilt e0 (→ρ+)+ e1 (→ρ+)+ … (→ρ+)+ en

⇒ σ+ ⊆ ρ+

⇒ Aus ρ ⊆ σ folgt direkt ρ+ ⊆ σ+

⇒ ρ+ = σ+

Hasse-Diagramm zu σ: Graph Gσ zur kleinsten Relation ρ mitρ ⊆ σ ⊆ ρ+ = σ+

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

60/1332.3 Beispiel eines Hasse-DiagrammsHalbordnung: U = {1, … , 15} und x ≤ y gdw. x Teiler von y ist.

4 6

8 12

9 10 14 15

2 3 5 7 11 13

1

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

61/1332.3 Existenz von Hasse-DiagrammenGibt es immer ein Hassediagramm?

Satz:Sei σ endliche strenge Halbordnung auf U. Dann ist ρ ≔ σ ∖ σ2

kleinste Relation mit ρ+ = σ+ und Gρ = (U, ρ) ist Hasse-Diagramm.

Beweis: Sei Xpq die Menge aller Wege p σ p1 σ … σ pn σ q

Kein Weg in Xpq besucht ein p' ∈ U zweimal, weil σ azyklisch ist.

Alle Wege in Xpq sind endlich, weil σ endlich ist.

⇒ Aus endlichem p' σ q' lassen sich nur endlich viele

Wege aus Xpq zusammensetzen

⇒ Xpq ist endlich

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

62/1332.3 Existenz von Hassediagrammen Sei p0 = p σ p1 σ … σ pn ein Weg maximaler Länge von p0 nach pn

⇒ Für kein i gilt pi σ2 pi+1, sonst wäre der Weg verlängerbar

⇒ p0 = p ρ p1 ρ … ρ pn-1 ρ q = pn

⇒ ρ ⊆ σ ⊆ ρ+ = σ+

Sei p ρ q

⇒ Xpq = {(p,q)} enthält nur ein einziges Element (p,q)

⇒ Entfernen von (p, q) aus ρ erhält nicht mehr die transitive Hülle

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

63/1332.3 Topologisches SortierenGegeben: endliche Halbordnung (U, ≺)

Gesucht: Totalordnung (U, ≤) so, daß aus u ≺ v die Beziehung u ≤ v folgt.

Topologische Sortierung von (U, ≺):

Liste L = [e0, … , en] mit e0 ≤ e1 ≤ … ≤ en

Algorithmus zur Berechnung einer topologischen Sortierung

Setze L ≔ [];

Solange U ≠ Ø wiederhole

Wähle eine Ecke e mit |∙e| = 0 und hänge diese hinten an L an

Entferne e aus G = (U,≺), d.h. G ≔ (U ∖ {e}, ≺ ∖ {(e, e') | (e, e') ∈ ≺ }

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

64/1332.3 Topologisches SortierenKorrektheitsbeweis:

Wir zeigen, daß nach jeder Iteration der Schleife folgende Aussagen gelten:

i. Für alle e, e' ∈ L gilt: kommt e' vor e, dann ist e ⊀ e'

ii. G ist endlich und azyklisch

Induktionsanfang:

i. und ii. gelten trivialerweise vor Ausführung der Schleife

Induktionsannahme:

i. und ii. gelte nach m Iterationen

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

65/1332.3 Topologisches SortierenInduktionsschritt:

Zu zeigen: i. und ii. gelten nach m+1 Iterationen

Da G azyklisch, gibt es immer ein e mit Eingangsgrad 0

⇒ Für alle übrigen e' ∈ U gilt: e' ⊀ e

⇒ Für alle e'' ∈ L gilt: e ⊀ e''

⇒ Nach Einfügen von e am Ende von L gilt ii.

Streichen von e aus G erhält die Eigenschaften endlich, azyklisch

Terminierungsbeweis:

In jedem Schritt wird eine Ecke e aus U entfernt

⇒ da U endlich ist, wird nach |U| Iterationen U = Ø

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

66/1332.3 Beispiel

Beobachtung: topologisches Sortieren ist ein nichtdeterministischer Algorithmus

irgendeine Ecke mit Eingangsgrad 0 wird gewählt

Extremfall G = (U, Ø): jede Reihenfolge ist topologische Sortierung

L = [a, d, b, c]d c

a b

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

67/1332.3 Untere und obere SchrankenAusgangspunkt: Halbordnung (U, ≤)

untere Schranke x von X ⊆ U: x ≤ y für alle y ∈ X

obere Schranke x von X ⊆ U: y ≤ x für alle y ∈ X

größte untere Schranke inf(X) von X ⊆ U:

inf(X) ist untere Schranke von X und

es gibt keine untere Schranke z ≠ inf(X) von X mit inf(X) ≤ z

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

68/1332.3 Untere und obere Schrankenkleinste obere Schranke sup(X) von X ⊆ U:

sup(X) ist obere Schranke von X und

es gibt keine obere Schranke z ≠ sup(X) von X mit z ≤ sup(X)

Beispiel:

Halbordnung (ℕ, „ist Teiler“)

inf(X) = ggT(X)

sup(X) = kgV(X)

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

69/1332.3 Flach geordnete MengenAusgangspunkt: Menge U ohne RelationZiel: Erweiterung zu Halbordnung durch Hinzunahme eines Elements:

U = (U ⋃ {⊥}, ≤ ) mit ⊥ ≤ e für alle e ∈ U⊥ heißt unten (engl. bottom)U⊤ = (U ⋃ {⊤}, ≤) mit e ≤ ⊤ für alle e ∈ U⊤ heißt oben (engl. top)

flach geordnete Menge: Halbordnungen U⊥ bzw. U⊤

Beispiel: flache Ordnung von {a, b, c}

Ausblick:⊥ spielt eine wichtige Rolle in der Semantik von Programmier-sprachen, entspricht dem nil, null bzw. void-Verweis in objektorientierten Sprachen.

a b c

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

70/1332.3 Eigenschaften von HalbordnungenGegeben: Halbordnung (U, ≤)

fundierte Ordnung: für jedes nicht leere X ⊆ U gilt inf(X) ∈ X

Beispiel: (ℕ, ≤), aber (ℤ, ≤) ist nicht fundiert

artinsche Ordnung: (Emil Artin, 1898-1962, dt. Mathematiker)jede absteigende Kette … ≤ a-i ≤ … ≤ a-1 ≤ … bricht ab.

Beispiel: (ℕ, ≤)

noethersche Ordnung: (Emmy Noether, 1882-1935, dt. Mathematikerin)jede aufsteigende Kette a0 ≤ a1 ≤ … ≤ ai ≤ … bricht ab.

Beispiel: ⇒* eines terminierenden Semi-Thue-System

Ausblick: Diese Eigenschaften spielen eine wichtige Rolle bei Korrektheits- und Terminierungsbeweisen

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

71/1332.3 Eigenschaften von Halbordnungen Satz: (U, ≤) ist genau dann fundiert, wenn sie artinsch ist.

Beweis:

1. Sei (U, ≤) fundiert.

Jede Kette K ist Teilmenge von U

⇒ inf K ∈ K

2. Sei (U, ≤) artinsch

Annahme: Es gibt X ⊆ U mit inf(X) ∉ X

Sei x0 ∈ X

⇒ es gibt x1 ∈ X, mit x1 < x0

⇒ Induktion ergibt nicht abbrechende Kette x0 > x1 > … > xi > xi+1 > …

⇒ Widerspruch!

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

72/1332.3 Lexikographische OrdnungAusgangspunkt: endliches Alphabet (Σ, <)

Präfixordnung: (Σ*, ⊑) mit u ⊑ v genau dann, wenn u Präfix von v istartinsch, nicht noethersch, fundiert

lexikographische Ordnung: (Σ*, ≺) mitε ≺ x für alle x ∈ Σ*x ≺ y, wenn x ⊑ yxay ≺ xbz für alle x, y, z ∈ Σ* ; a, b ∈ Σ mit a < b

Die lexikographische Ordnung auf Σ* ist nicht fundiert, wenn Σ wenigstens zwei Zeichen a,b, a ≺ b, umfaßt:

Zu jedem Wort ambx, a ≺ ambx ≺ b, x∈Σ*, das zumindest ein b enthält, kann man beliebig viele kleinere Wörter a ≺ amanby ≺ ambxangeben. In einer vorgegebenen (unendlichen) Menge X ⊆ Σ* mit ambx ∈ X muß kein kleinstes Element ≺ ambx existieren.

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

73/1332.3 Vollständige HalbordnungenSei (U, ≤) Halbordnung:(U, ≤) ist vollständig (engl. complete partial order, kurz: cpo):

U hat kleinstes Element ⊥ undjede Kette K ⊆ U hat obere Schranke sup(K)

Ausblick: Vollständige Halbordnungen spielen eine wichtige Rolle in der Semantik von Programmiersprachen, Programmanalysen, Testfallgenerierung

Beispiel: flache Halbordnungalle Ketten haben maximal Länge 2: [⊥, a], a ∈ U

Beispiel: (P(U), ⊆)⊥ = ØBetrachte Kette K: U0 ⊆ U1 ⊆ ⊆ … ⊆ Ui ⊆ Ui+1 ⊆ … Dann ist sup(K) = ⋃ Ui

Beispiel: jede noethersche Halbordnung

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

74/1332.3 Partielle FunktionenPartielle Funktion f : U ↝ V, Relation f ⊆ U ✕ V mit

aus x f y und x f z folgt x = yDefinitionsbereich von f: Def(f) = {U | es gibt ein z, so daß x f z}

g : U ↝ V erweitert f (f ⊑ g):Def(f) ⊆ Def(g)f (x) = g(x) f.a. x ∈ Def(f)

Eigenschaft: (U ↝ V, ⊑) ist vollständige HalbordnungBeweis: Halbordnung: Übung, ⊥ = ∅

Sei K eine Kette f0 ⊑ … ⊑ fi ⊑ fi+1 ⊑ … . Dann gilt:Def(sup(K)) = ∪ Def(fi)sup(K)(x) = fi(x) für ein i mit x ∈ Def(fi)

sup(K) wird durch die Funktionen fi der Kette K approximiert.

Ausblick: Diese Approximationen spielen bei der Definition der Semantik einer Programmiersprache, bei Datenflußanalysen, bei Programmoptimierung und bei Testfallgenerierung eine wichtige Rolle

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

75/1332.3 Monotone und stetige FunktionenAusgangspunkt: Halbordnungen (U, ρ), (V, σ)

monotone Funktion f : U → V (auch Halbordnungs(homo)morphismus ):

Aus x ρ y folgt f(x) σ f(y)

Ausgangspunkt: vollständige Halbordnungen (U, ρ), (V, σ)

stetige Funktion f : U → V: Für jede aufsteigende Kette K in U existiert sup(f(K)) und sup(f(K)) = f(sup(K))

Warum „stetig“? einseitige Stetigkeit in der Analysis

Jede stetige Funktion ist monoton.

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

76/1332.3 Monotone und stetige FunktionenBeispiel: Betrachte (P(N),⊆) und ({0, 1},≤).

beides sind vollständige Halbordnungen

gegeben: unendlich: P(N) → {0,1} mit

unendlich(X) ≔

unendlich ist monoton aber nicht stetig:

K = [∅, {0}, {0, 1}, {0, 1, 2}, … ]

sup(K) = ℕ, f(K) = [0, … ]

f(sup(K)) = 1, aber sup(f(K)) = 0

0, wenn X endlich1, sonst, d.h. X unendlich

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

77/1332.3 FixpunkteFixpunkt von f : U → U, x ∈ U mit f (x) = x

Fixpunktsatz von Knaster-Tarski:Gegeben:

vollständige Halbordnung (U,≤) mit kleinstem Element ⊥ und monotone Funktion f : U → U.

Behauptung:es gibt eindeutigen kleinsten Fixpunkt x ∈ U mit f(x) = x

Beweis: s. Goos: Vorlesungen über Informatik, Band 1, S. 76-77

Ausblick: Der Fixpunktsatz von Knaster-Tarski wird in der theoretischen Informatik gebraucht. Häufiger ist der nachfolgende Fixpunktsatz

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

78/1332.3 FixpunkteGegeben:

vollständige Halbordnung (U,≤) mit kleinstem Element ⊥ und stetige Funktion f : U → U.

Behauptung:x0 = sup{fn(⊥) | n ≥ 0} ist kleinster Fixpunkt.

Beweis:

x0 ist Fixpunkt:

f(x0) = f(sup{fn(⊥) | n ≥ 0})= sup{fn+1(⊥) | n ≥ 0} (weil f stetig)= sup{fn(⊥) | n ≥ 0} (weil ⊥ minimal)= x0

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

79/1332.3 FixpunkteBeweis (Fortsetzung):

x0 ist kleinster Fixpunkt:D = {fn(⊥) | n ≥ 0} ⋃ {x0} ist kleinste Menge M mit den Eigenschaften

i. ⊥ ∈ Mii. falls x ∈ M, dann auch f(x) ∈ Miii. falls K ⊆ M Kette, so ist auch sup(K) ∈ M

Annahme: es gibt Fixpunkt y ≤ x0

⇒ D' = {fn(⊥) | n ≥ 0 und fn(⊥) ≤ y} ⋃ {y} erfüllt i., ii. und iii.⇒ D ⊆ D', weil D die kleinste Menge ist, die i., ii. und iii. erfüllt⇒ x0 ≤ y , also x0 = y

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

80/1332.3 Beispiel: MengengleichungenAusgangspunkt: vollständige Halbordnung (P(U)6, ⊑) mit

U = {a, b, c} und

(X1,… ,X6) ⊑ (Y1, … , Y6) genau dann, wenn X1 ⊆ Y1, … , X6 ⊆ Y6

Funktion f : P(U)6 → P(U)6 mit

f (X1, … , X6) =

Eigenschaften von f : monoton und stetig

X4

X1 ∖ {c}X4 ⋃ X6

X3 ⋃ {a,b,c}∅{c}

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

81/1332.3 Beispiel: MengengleichungFixpunkt von f :f (∅,∅,∅,∅,∅,∅) = (∅,∅,∅, {a, b, c},∅, {c})f (f (∅,∅,∅,∅,∅,∅)) = ({a, b, c},∅, {a, b, c}, {a, b, c},∅, {c})f (f (f (∅,∅,∅,∅,∅,∅))) = ({a, b, c}, {a, b}, {a, b, c}, {a, b, c},∅, {c})f (f (f (f (∅,∅,∅,∅,∅,∅)))) = ({a, b, c}, {a, b}, {a, b, c}, {a, b, c},∅, {c})

Also ist ({a, b, c}, {a, b}, {a, b, c}, {a, b, c},∅, {c}) kleinster Fixpunkt von f

Ausblick: Diese Art von Iterationen werden in Datenflußanalysen zur Programmoptimierung und Testfallgenerierung benutztKorrektheit und Terminierung hängt von der Existenz kleinster Fixpunkte abBeispiel aus der Datenflußanalyse: ein Programm berechnet einen Wert x. Frage: wird der Wert von x eventuell im weiteren Verlauf nochbenutzt oder war die Berechnung überflüssig? Antwort allein aus dem Programmtext, ohne Programmausführung!

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

82/1332.3 HalbverbändeMotivation:

Verbände schlagen Brücke zwischen Ordnungen, Algebren und Logik

Halbverband (U, ⋀):(U, ⋀) ist abelsche Halbgruppe und Idempotenzgesetz a ⋀ a = a gilt

Auch die duale Definitiona ≤ b genau dann, wenn a ⋀ b = bliefert eine Halbordnung. Wenn diese Halbordnung beabsichtigt ist, schreibt man die Verknüpfung des Halbverbands gewöhnlich als ⋁.

Umkehrung: geg. sei Halbordnung (U, ≤), in der für x,y ∈ U das größte Element inf(x, y) = sup{z | z≤ x, z≤ y} eindeutig definiert ist.x ⋀ y = inf(x, y) definiert nun die Operation eines Halbverbands (U, ⋀).

Beispiel: lexikographische Ordnung:x ⋀ y ist längstes gemeinsames Präfix

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

83/1332.3 DualisierungBeobachtung: Wenn ρ Halbordnung, dann ist auch ρT Halbordnung

(duale Halbordnung)

duale Begriffe: Begriff dualer Begriff≤ ≥

< >obere Schranke untere Schranke

sup(X) inf(X)⊤ ⊥

aufsteigende Kette absteigende Ketteaufsteigend monoton absteigend monoton

größtes Element kleinstes Elementartinsch noethersch

a ⋁ b a ⋀ b

Dualitätsprinzip:Wenn Aussage richtig für Halbordnung ρ, dann ist duale Aussage richtig für ρT

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

84/1332.3 VerbändeVerband (U, ⋀, ⋁): (U, ⋀) und (U, ⋁) sind duale Halbverbände,

Idempotenzgesetze: a ⋁ a = a und a ⋀ a = aVerschmelzungsgesetze: a ⋁ (a ⋀ b) = a und a ⋀ (a ⋁ b) = a

Beobachtungen:Es gilt a ≤ b genau dann, wenn a ⋀ b = a.Daher ist (U,≤) HalbordnungEs gilt zusätzlich a ≤ b genau dann, wenn a ⋁ b = b ist.

Beweis: Sei a ≤ b: b = b ∨ (b ∧ a) = b ∨ a = a ∨ bwegen Verschmelzungsgesetz und a ⋀ b = a, Umkehrung analogSchreibweise:

a ⋁ b = sup(a, b) und a ⋀ b = inf(a, b)

bzw. bei endlicher Grundmenge U:a ⋁ b = max(a, b) und a ⋀ b = min(a, b)

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

85/1332.3 VerbändeBeispiel:

kein Verband Verband Verband

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

86/1332.3 Eigenschaften von VerbändenDistributiver Verband (U, ⋀, ⋁): Es gelten die

Distributivgesetze

a ⋁ (b ⋀ c) = (a ⋁ b) ⋀ (a ⋁ c) und

a ⋀ (b ⋁ c) = (a ⋀ b) ⋁ (a ⋀ c)

Modularer Verband (U, ⋀, ⋁): Es gilt das

Modularitätsgesetz

Wenn a ≤ c, dann ist a ⋁ (b ⋀ c) = (a ⋁ b) ⋀ c

Beispiel:

nicht distributiv, modular nicht distributiv, modular

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

87/1332.3 Vollständige Verbändevollständiger Verband (U, ⋀, ⋁):

Für jede Teilmenge A ⊆ U existiert inf(A) ∈ U und sup(A) ∈ U

Beispiel: Teilmengenverband (P(U), ∩, ⋃)

Ordnungsrelation ⊆

inf(X) = ∩A ∈ X A, sup(X) = ∪A ∈ X A

(P(U), ∩, ⋃) ist auch distributiv:

A ⋃ (B ∩ C) = (A ⋃ B) ∩ (A ⋃ C) und A ∩ (B ⋃ C) = (A ∩ B) ⋃ (A ∩ C)

Jeder vollständige Verband definiert eine vollständige Halbordnung

Jeder endliche Verband ist vollständig

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

88/1332.3 Komplementäre VerbändeAusgangspunkt: Verband (U, ⋀, ⋁)

Komplement ∁a von a ∈ U: a ⋁ ∁a = ⊤ und a ⋀ ∁a = ⊥

Beispiel: Teilmengenverband (P(U), ∩, ⋃)

∁A = U ∖ A

A ⋃ ∁A = A ⋃ (U ∖ A) = U und A ∩ ∁A = A ∩ (U ∖ A) = ∅

komplementärer Verband:vollständiger Verband, in dem zu jedem Element genau ein Komplement existiert

Beispiel: Teilmengenverband

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

89/1332.3 Boolesche Verbände (Boolesche Algebren)George Boole, 1815 - 1864, britischer Mathematiker und Logiker

boolescher Verband (boolesche Algebra):vollständiger, komplementärer, distributiver VerbandIn einem booleschen Verband gelten das

Involutionsgesetz:∁∁a = a

und die

De Morgan'sche Gesetze:∁(a ⋀ b) = ∁a ⋁ ∁b∁(a ⋁ b) = ∁a ⋀ ∁b

Ausblick: Boolesche Algebren spielen beim Hardware-Entwurf und in vielen anderen Bereichen der Informatik eine wichtige Rolle

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

90/1332.3 InvolutionsgesetzAusgangspunkt: boolescher Verband (U, ⋀, ⋁)

Involutionsgesetz: ∁∁a = a

Beweis:

∁∁a = ∁∁a ⋀ ⊤ Eigenschaft von ⊤

= ∁∁a ⋀ (∁a ⋁ a) Definition von komplementär

= (∁∁a ⋀ ∁a) ⋁ (∁∁a ⋀ a) Distributivgesetz

= ⊥ ⋁ (∁∁a ⋀ a) Definition von komplementär

= (∁a ⋀ a) ⋁ (∁∁a ⋀ a) Definition von komplementär

= (a ⋀ ∁a) ⋁ (a ⋀ ∁∁a) Kommutativgesetz

= a ⋀ (∁a ⋁ ∁∁a) Distributivgesetz

= a ⋀ ⊤ Definition von komplementär

= a Eigenschaft von ⊤

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

91/1332.3 De Morgan‘sche GesetzeAugustus de Morgan, 1806 - 1871, engl. Mathematiker und Logiker

Ausgangspunkt: boolescher Verband (U, ⋀, ⋁)

De Morgan'sche Gesetze ∁(a ⋀ b) = ∁a ⋁ ∁b und ∁(a ⋁ b) = ∁a ⋀ ∁b

Beweis:Weil der Verband komplementär ist, genügt es zu zeigen, daß(a ⋀ b) ⋁ (∁ a ⋁∁ b) = ⊤ ist.

(a ⋀ b) ⋁ (∁a ⋁ ∁b)

= (a ⋁ (∁a ⋁ ∁b)) ⋀ (b ⋁ (∁a ⋁ ∁b)) Distributivgesetz

= ((a ⋁ ∁a) ⋁ ∁b) ⋀ (b ⋁ ∁a ⋁ ∁b) Assoziativgesetz

= (⊤ ⋁ ∁b) ⋀ (b ⋁ ∁a ⋁ ∁ b) Definition von komplementär

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

92/1332.3 De Morgan‘sche GesetzeBeweis (Fortsetzung):

= ⊤ ⋀ (b ⋁ ∁ a ⋁ ∁ b) Eigenschaft von ⊤

= ⊤ ⋀ (∁a ⋁ b ⋁ ∁b) Kommutativgesetz

= ⊤ ⋀ (∁a ⋁ (b ⋁ ∁b)) Assoziativgesetz

= ⊤ ⋀ (∁a ⋁ ⊤) Definition von komplementär

= ⊤ ⋀ ⊤ Eigenschaft von ⊤

= ⊤ Eigenschaft von ⊤

Das andere de Morgan-Gesetz ist dual, also analoger Beweis (Übung).

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

93/1332.3 Beispiel: TeilerverbandAusgangspunkt:

endliche Menge {x1, … , xn} paarweise teilerfremder Zahlen

ggT(xi, xj ) = 1 falls i ≠ j

Teilerverband: U = { ∏i ∈ I xi | I ⊆ {1, … , n}} wobei ∏i ∈ ∅ xi ≔ 1

n ⋀ m ≔ ggT(n,m)

n ⋁ m ≔ kgV(n,m)

∁ m ≔ ∏i = 1…n xi / m

☛ Halbordnung ist Teiler, geschrieben „ m | n “ (m teilt n)

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

94/1332.3 Beispiel für TeilerverbandMenge {2; 3; 5}. Dann ist Teilerverband U = {1, 2, 3, 5, 6, 10, 15, 30}.

3 52

30

1

6 1510

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

95/1332.4 Endliche Automatenendlicher Automat:

gedachte Maschine, die Zeichenreihen liest, und über ein beschränktes Gedächtnis des Gelesenen verfügt☛ statt Zeichen lesen: jede Art unterscheidbarer Eingangssignale verarbeiten

Zustand:Gedächtnis über Vorgeschichte der eingelesenen Zeichen☛ Ein endlicher Automat besitzt endliche Menge Q von Zuständen

Arbeitsweise:beginnt mit Anfangszustand q0

liest Zeichen aus Eingabe und geht in neuen Zustand☛ Darstellung als Semi-Thue-System oder gerichteter Graph: q0 a → q1 q0 b → q0

q1 a → q2 q1 b → q1

q2 a → q3 q2 b → q2

q3 a → q4 q3 b → q3

q4 a → q4 q4 b → q4

q0 q1 q2 q3 q4

b b b b ab

a a a a

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

96/1332.4 Endliche Automaten – EinleitungWas macht man damit?

Reaktion bei Erreichen bestimmter Zustände (Moore-Automat)Prüfung, daß Eingabe korrekt(Akzeptor, verlangter Endzustand erreicht?)

Reaktion bei bestimmten Zustandsübergängen (Mealy-Automat)

Beispiele:primitiv, aber wirkungsvoll:

Schlüssel im Schloß umdrehen (Zustände offen-geschlossen)Gegenstände abzählen: 0,1,2,3,viele (5 Zustände)Jeder vierten Person etwas schenken

komplizierter:Prüfung der korrekten Schreibweise von GleitpunktzahlenBeschreibung der Arbeitsweise von Fahrkartenautomaten usw.

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

97/1332.4 Arten endlicher AutomatenKlassifikation nach Art der Ausgabe:

Mealy-Automat: Zustandsübergänge erzeugen als Ausgabe Wörter

t ∈ Δ* über Zeichenvorrat Σ

Beispiel:

Moore-Automat: Zustände erzeugen als Ausgabe Wörter t ∈ Δ* über Zeichenvorrat Σ

q0 q1 q2 q3 q4

b / b / b / b / ab /

a / | a / | a / | a / f

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

98/1332.4 Arten endlicher AutomatenAkzeptor: spezieller Moore-Automat, der eine Menge von Endzuständen hat. Endet der Automat in einem Endzustand, dann akzeptiert er die Eingabe.

Beispiel:

q0 q1 q2 q3 q4

b b b b ab

a a a a

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

99/1332.4 Beispiel: ParitätParität einer Bitfolge w: gerade oder ungerade Anzahl der L in w

Automat:

q0: in bisher gelesenen Bits: Anzahl der L gerade (Anfangszustand)

q1: in bisher gelesenen Bits: Anzahl der L ungerade

Annahme: Automat im Zustand q0 nach Verarbeitung von Wort w

⇒ w hat gerade Parität

Annahme: Automat im Zustand q1 nach Verarbeitung von Wort w

⇒ w hat ungerade Parität

⇒ Akzeptor mit Endzuständen q0 und q1

q0 q10 0L

L

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

100/1332.4 Akzeptoren für BezeichnerBezeichner: Folge von Buchstaben und Ziffern, wobei erstes Zeichen

Buchstabe sein muß

typisch für Bezeichner von Variablen etc. in Programmiersprachen

Akzeptor:

q0: Anfangszustand

q1: Endzustand (erstes Zeichen ist Buchstabe)

b steht für beliebigen Buchstaben

z steht für beliebige Ziffer

q0 q1 b,zb

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

101/1332.4 Akzeptoren für Zahlenganze Zahlen: nicht leere Folge von Ziffern

Festpunktzahlen:

zn . zm wobei m ≥ 1 und z für beliebige Ziffern steht

Gleitpunktzahlen:

zn. zm Ee wobei m ≥ 1 und e eine ganze Zahl (evtl. mit Vorzeichen +oder -) ist oder

zn Ee wobei n ≥ 1 ist.

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

102/1332.4 Akzeptoren für Zahlen

q1 akzeptiert natürliche Zahlen, q3 akzeptiert Festpunktzahlen, q6akzeptiert Gleitpunktzahlen

q0 Startzustand

q1 ganze Zahl

q2 Punkt

q3 Festpunktzahl

q4 Exponent

q5 Vorz. Exponent

q6 Gleitpunktzahl

q0 q1 q4 q5

q6

E z

z E +, -

q2 q3z

z

z

z

z

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

103/1332.4 Akzeptoren und reguläre Sprachenendlicher Akzeptor:

A = (Σ,Q, q0, F, R) wobei

Σ Zeichenvorrat,

Q nicht leere Menge von Zuständen (Q ∩ Σ = ∅),

q0 ∈ Q Anfangszustand,

F ⊆ Q Menge der Endzustände und

R Menge von Zustandsübergangsregeln der Form qa → q' mit q,q' ∈ Q, a ∈ Σ ist.

Bemerkung: (Σ ⋃ Q, →) ist Semi-Thue-System

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

104/1332.4 Akzeptoren und reguläre SprachenBeispiel: A = ({b, z}, {q0, q1}, q0, {q1}, {q0b → q1, q1b → q1, q1z → q1})

Von Automat A akzeptierte Sprache:

L(A) = {w ∈ Σ* | es gibt qe ∈ F, so daß q0w ⇒* qe }

Beispiel: L(A) = { bw | w ∈ {b, z}* }

q0 q1 b,zb

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

105/1332.4 Vollständige AkzeptorenBeispiel:

kein Übergang q0 z → … im Akzeptor für Bezeichner

Grund: Fehler

Einführung eines Fehlerzustands fehler ∉ F

mit q0 z → fehler

fehler b → fehler

fehler z → fehler

vollständiger Akzeptor A = (Σ, Q, q0, F, R): für alle q ∈ Q und a ∈ Σ existiert q' ∈ Q mit q a → q' ∈ R

q0 q1 b,zbfehlerb,z

z

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

106/1332.4 Reguläre Grammatiken und endliche AkzeptorenSatz: L ⊆ Σ* ist L = L(A) für einen Akzeptor A = (Σ, Q, q0, F, R), genau

dann wenn L = L(G) für eine reguläre Grammatik G = (Σ, N, P, Z) ist.

Beweis: „nur dann, wenn“. Sei G reguläre Grammatik⇒ alle Produktionen haben die Form X → aB, X → a oder X → ε

Konstruiere Akzeptor A = (Σ, Q, q0, F, R) wie folgt:N' = {NXa | X → a ∈ P } ⋃ {X | X → ε ∈ P }Q = N ⋃ N'q0 = ZF = N' R = {Xa → Y | X → aY ∈ P} ⋃ {Xa → NXa | X → a ∈ P}

Behauptung:Für alle X ∈ N gilt: X ⇒*G w genau dann, wennXw ⇒*A H für ein H ∈ F

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

107/1332.4 Reguläre Grammatiken und endliche AkzeptorenBeweis: Induktion über Aufbau von w:

w = ε :Dann ist X → ε ∈ P und X ∈ F: X ⇒*G ε gdw. X ε ⇒*A X ∈ F

w = a und X → a ∈ P:Dann ist Xa ⇒ NXa ∈ R: X ⇒*G a gdw. Xa ⇒*A NXa ∈ F

Induktionshypothese: Aussage gelte für wInduktionsschritt: Zeige: Aussage gilt auch für x = aw, a ∈ A:

G : X ⇒G aY ⇒*G awA : Xaw ⇒A Yw ⇒*A H ∈ F

für ein Y ∈ N Induktionshypothese

X = Z ergibt die Behauptung; Umkehrung beweist man analog.

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

108/1332.4 BeispielGegeben: reguläre Grammatik mit Produktionen

Z → aX | bX

X → aX | bX | ε

L(G) = {a, b}+

endlicher Automat:

Anfangszustand Z

Za → X Zb → X

Xa → X Xb → X

Endzustand: X

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

109/1332.4 Automat als Semi-Thue-SystemBei bisherigen Beispielen:

Übergänge qa → q´ bilden zusammengenommen eine Übergangsfunktion δ: Q ✕ Σ → QEin endlicher Automat, der die Eigenschaft besitzt, daß die Übergänge zusammengenommen eine (Übergangs-)Funktion bilden, heißt deterministisch

Allgemeiner Fall: Indeterminismus zugelassenDie Übergänge definieren ein durch P endlich erzeugtes Semi-Thue-System mit Eingabezeichenvorrat Σ und syntaktischen Hilfszeichen q ∈ QDie Auffassung eines endlichen Automaten als Semi-Thue-System stellt die Beziehung zu regulären Chomsky-Grammatiken her

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

110/1332.4 Regulärer AusdruckEin regulärer Ausdruck R über einem Zeichenvorrat Σ ist induktiv definiert durch:

1. Das leere Wort ist ein regulärer Ausdruck

2. a ∈ Σ ist ein regulärer Ausdruck

3. Ist R ein regulärer Ausdruck, dann auch (R)*

4. Sind R, S reguläre Ausdrücke, so sind auch (RS) und (R + S) reguläre Ausdrücke (R + S bedeutet „R oder S“ (Vereinigung))

Meist gilt auch die leere Menge ∅ als regulärer Ausdruck

Beispiele:Bezeichner: b(b+z)*Ganze Zahlen: zz*Dezimalbrüche: zz* ’/ ’ zz*

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

111/1332.4 Rechnen mit regulären AusdrückenR + S = S + R Kommutativität

(R + S) + T = R + (S + T) Assoziativität

(R S) T = R (S T) Assoziativität

(R + S) T = R T + S T Distributivität

R (S + T) = R S + R T Distributivität

R + ∅ = R Neutralelement

R ε = R Neutralelement

R ∅ = ∅ Nullelement

R + R = R Idempotenz

(R*)* = R* Idempotenz

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

112/1332.4 Rechnen mit regulären AusdrückenR* = ε + RR*

R* = R + R*

ε* = ε

∅* = ε

Beweis: Übung

Satz:Seien R, S reguläre Ausdrücke über Σ. Dann ist X = S*R Lösung der Gleichung X = R + S X.

Beweis: Übung

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

113/1332.4 Eigenschaften regulärer AusdrückeFür reguläre Ausdrücke gelten die Gesetze:

Kommutativität, Assoziativität, Distributivität, Neutrales Element, Idempotenz

Satz:Eine Menge L* ist genau dann Sprache einer regulären Grammatik G, wenn L durch einen regulären Ausdruck beschrieben wird.

Beweis-Skizze:Zeige, daß aus einem regulären Ausdruck eine reguläre Grammatik konstruiert werden kannPrinzip: induktiv aus den Schritten 1 - 4 der DefinitionZeige umgekehrt, daß aus einer regulären Grammatik der zugehörige reguläre Ausdruck konstruiert werden kannPrinzip: jedes Nichtterminal der Grammatik wird als Bezeichner für reguläre Ausdrücke gebraucht

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

114/1332.4 Vom regulären Ausdruck zum endlichen AkzeptorBeweis des vorhergehenden Satzes liefert ein konstruktives Vorgehen zum Aufbau eines endlichen Akzeptors

Skizze dieses konstruktiven Vorgehens:Geg.: regulärer Ausdruck RDurch folgende Regeln wird R in einen endlichen Akzeptor überführt:

1. Füge zu Beginn von R sowie nach jedem terminalen Zeichen eine Zahl ein, die einen Zustand repräsentiert

2. Einzelnes Zeichen bedeutet: Zustandsübergang3. Vereinigung führt zu Zustandsübergängen der zu Beginn

gegebenen Zustände in alle durch Einzelzeichen erreichbaren Folgezustände

4. Kleenescher Stern S* führt zu Zustandsübergängen aus sämtlichen Endzuständen von S in die aus den Anfangszuständen aus S mit einem Zeichen erreichbaren Zustände

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

115/1332.5 PetrinetzeCarl Adam Petri, geb. 1926, früher Institutsleiter der GMD, BonnPetri-Netze: verallgemeinern endliche Automaten und sind die

einfachste Form, parallele und verteilte Systeme zu beschreiben

Grundidee: Gegeben ein paarer Graph von Übergängen (Transitionen: Kästchen) und Zuständen (Stellen: Kreise).

eine Stelle kann mehrere Transitionen als Nachfolger habeneine Transition kann mehrere Stellen als Nachfolger habenRegeln: jede Stelle kann eine oder mehrere Marken enthalten

Feuern einer Transition: jede Vorgängerstelle gibt eine Marke ab, jede Nachfolgerstelle erhält eine Marke (dabei Veränderung der Markenanzahl möglich)

Interpretation z.B.:Stelle: Prozeß, Vorgang; Transition: Botschaft übergebenStelle: Zustand; Transition: Zustandsübergang

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

116/1332.5 PetrinetzePetrinetze werden in der Informatik als Systemmodelle für Vorgänge und Organisationen verwendet, um Zustandsübergänge und Datenflüsse auch in parallelen und verteilten Systemen zu beschreiben

Bestandteile und Arbeitsweise eines Petrinetzes P = (S, T, F)S:Stellen repräsentieren Zustände, Bedingungen, PufferinhalteT: Transitionen (Übergänge) repräsentieren Zustandsübergänge,

Aktivitäten oder Verarbeitung von PufferinhaltenF: Kanten repräsentieren kausale oder zeitliche Abhängigkeiten

s → t bedeutet: Bedingung s ∈ S muß erfüllt sein, damit die Transition t ∈ T schaltet (feuert)s heißt Vorstelle von t

t → s bedeutet: Zustand s ∈ S wird erreicht, wenn die Transition t ∈ T feuerts heißt Nachstelle von t

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

117/1332.5 Markierungsfunktion und SchaltregelEine Markierungsfunktion MP(s) weist jeder Stelle s ∈ S eine Anzahl von Marken zuDas Petrinetz heißt binär falls für alle s ∈ S: MP(s) ≤ 1

Schaltregelführt das Petrinetz von einer Markierung in eine neue Markierung überVorbedingung:Transition t kann schalten, wenn für alle Vorstellen sv gilt: MP(sv) ≥ 1Nachbedingung:Wenn eine Transition schaltet, gilt für die neue Markierung MP’:

MP’(sv) = MP(sv) -1 für alle Vorstellen sv von t,MP’(sn) = MP(sn) +1 für alle Nachstellen sn von t,MP’(s) = MP(s) sonst

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

118/1332.5 MarkierungsgraphMögliche Markierungen MP bilden ihrerseits die Ecken eines gerichteten Graphen, dem sog. Markierungsgraph G = (M, U)

M = {MP} Menge der EckenU ∈ M ✕ M Menge der KantenEs gilt MP → MP’ ∈ U, wenn es eine Transition t so gibt, dass das Schalten der Transition t die Markierung MP in die Markierung MP’ überführt

Beispiel: Markierungsgraph zum Jahreszeiten-PetrinetzEcken: vier mögliche Markierungen MF, MS, MH , MW

Kanten:MW

MH MS

MF

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

119/1332.5 Beispiel: Erzeuger-Verbraucher-ProblemZiel: Synchronisierung von zwei nebenläufigen Prozessen

Erzeuger Verbraucher

verbraucheübergebe

s

produziere übernehme

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

120/1332.5 Gegenseitiger AusschlußZiel: Verhinderung, daß zwei Prozesse eine exklusiv nutzbare

Ressource gleichzeitig verwenden.

Die Sequenzen ti → vi → ti´ (i = 1, 2) heißen kritische Abschnittes heißt ein Mutex-Semaphor

Prozeß 1 Prozeß 2

t2t1s

t1´

v1 v2

t2´

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

121/1332.5 nochmals: Erzeuger-VerbraucherZiel: der Verbraucher darf nur weitermachen, wenn er vom Erzeuger

etwas geliefert bekommt

Die Stelle s kann unbeschränkt viele Marken aufnehmen:Erzeuger-Verbraucher mit unbeschränktem Puffer s

Erzeuger Verbraucher

s

übergebe verbrauche

produziere übernehme

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

122/1332.5 Erzeuger-Verbraucher mit beschränktem PufferZiel: der Verbraucher darf nur weitermachen, wenn er vom Erzeuger

etwas geliefert bekommt und genügend Platz im Puffer ist

Wenn die Stelle b n Marken enthält, kann Übergang t1´ n-mal feuern, sonst wartet der Erzeuger

Hier sind also 3+1 = 4 Marken in Puffer s möglich, bevor der Erzeuger stoppt

b

Erzeuger Verbraucher

s

übergebe

produziere

verbrauche

übernehmet1´

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

123/1332.5 Leser-Schreiber-SystemZiel: n Leser dürfen gleichzeitig Daten lesen, ein Schreiber verlangt

Exklusivzugriff und sperrt alle Leser aus

k=n: Stelle kann maximal n Marken aufnehmenn an einer Kante: n Marken fließen gleichzeitigkeine Fairness !

Leser Schreiber

k=n

lesen

freigeben

schreiben

freigeben

n

n

beliebig viele Leser beliebig viele Schreiber

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

124/1332.6 Relationale AlgebraGrundlage (Kalkül) der relationalen DatenbankenUntersuchung endlicher n-stelliger Relationen und Verknüpfungen solcher Relationen

Bestandteile und Aufbau der relationalen Algebra:gegeben: endliche Menge U von Wertebereichen,d.h. Mengen D1,… ,Dm, also U={Di}n-stellige Relationen ρ ⊆ Di1 ✕… ✕ Din

sind Teilmengen des kartesischen Produkts mehrerer Di jedem Dj wird ein eindeutiger Attributname aj zugeordnetfalls Tupel (v1,… , vn) ∈ ρ, so ist vj der Wert des Attributs ajBeschreibung der Relation ρ durch das relationale SchemaA = (a1:Di1,… ,an:Din)

Endliche Menge von relationalen Schemata heißt DatenbankschemaEndliche Menge von Relationen zu einem DB-Schema heißt Datenbank

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

125/1332.6 Festlegungen bzgl. relationaler SchemataAuffinden eines Elements aus dem Schema alternativ:

über die Position: j-tes Element vj aus (v1,… , vn)über den Namen: Wert des Attributs aj in der Menge (a1:v1… ,an:vn)

A(ρ) bezeichnet das Schema einer Relation ρρ(A) bezeichnet eine Relation zum Schema A

Kompatibel:Zwei Schemata A = (a1:D1,… ,an:Dn) und B = (b1:E1,… ,bm:Em) heißen kompatibel, wenn es eine Numerierung der Attribute so gibt, daßn = m und Di = Ei für i = 1,… ,n

Schlüsselmenge:Eine Teilmenge M der Attributnamen NA , deren Wertebelegung ein Tupel in der Relation eindeutig kennzeichnet.

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

126/1332.6 Mengenoperationen auf RelationenVereinigung ∪ und Differenz \ :geg.: zwei Relationen ρ, σ mit kompatiblen Schemata A(ρ) und B(σ):

ρ ∪ σ = {t | t ∈ ρ oder t ∈ σ}ρ \ σ = {t | t ∈ ρ, t ∉ σ}

Durchschnitt ∩ :Läßt sich mit Hilfe der Differenz \ ausdrücken

ρ ∩ σ = ρ \ (ρ \ σ) ρ ∪ σ:

Beispiel: ρ: σ: ρ \ σ:A B C12 xy 12 ba 75 fr 21 g 1

A B C7 as 612 xy 15 bg 2

A B C2 ba 75 fr 21 g 1

A B C12 xy 12 ba 75 fr 21 g 17 as 65 bg 2

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

127/1332.6 Schema-Operationen, Projektion, Kart. ProduktSchema-Operationen: A ∩ B, A ∪ B, A \ B wie angegeben als DB-

Operationen definiert

Unterschema B ⊆ AB = {ai1:Di1,… ,aik:Dik} ⊆ {a1:D1,… ,an:Dn} = A, k ≤ n

Projektion PB: ρ(A) → ρ(B)ρ(A) als Restriktion auf Schema B, für das B ⊆ A gilt, definiertρ(B) = {(ai1:vi1,… ,aik:vik) | es gibt (a1:v1… ,an:vn) ∈ ρ(A) so, daß

(ai1:vi1,… ,aik:vik) ⊆ (a1:v1… ,an:vn) }}

Kartesisches Produkt ρ ✕ σ zweier Relationen ρ = ρ(A), σ = σ(B)Jedes n-Tupel aus ρ wird mit jedem m-Tupel aus σ kombiniertρ ✕ σ = {(v1,… , vn-1 . vn , vn+1 ,… , vn+m) | (v1,… , vn ) ∈ ρ,

(vn+1,… , vn+m ) ∈ σ}

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

128/1332.6 SelektionSelektion selσ(ρ) zweier Relationen ρ(A), σ(B) mit B ⊆ A

selσ(ρ) = {t ∈ ρ | PB(t) ∈ σ}Relation zum Schema A, die nur solche Tupel enthält, deren Projektion auf σ(B) auch in σ vorkommtSpezialfall:

Statt expliziter Angabe von σ werden Bedingungen formuliert, die zwischen bestimmten Feldern der Relation ρ gelten müssenBeispiel: sela=b(ρ) bezeichnet die Menge aller Tupel mit va = vb

Selektion über drei Relationen ρ(A), σ(B), τ(C) mit B, C ⊆ Aselσ(selτ(ρ)) = {t ∈ ρ | PB (t)∈ σ und PC (t)∈ τ}Kommutativität: selσ(selτ(ρ)) = selτ(selσ(ρ))

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

129/1332.6 VerbundVerbund (engl. join):Wichtigste auf 2 Relationen ρ = ρ(A), σ = σ(B) anwendbare Operation

natürlicher Verbund ρ ⋈φ σ:φ ist ein Unterschema zu A und B (φ ⊆ A, φ ⊆ B)Idee: nimm alle Tupel aus ρ ✕ σ, die in φ übereinstimmenρ ⋈ σ = { z | z ∈ P (ρ ✕ σ), φ A∪φ∪B

P (z) ∈ ρ, P (z) ∈ σ,A BPφ (PA(z)) = Pφ(PB(z)) }

Eigenschaften: kommutativ, assoziativ, idempotent

Θ-Verbund ρ[X Θ Y]σ (engl. theta-join):ρ und σ sind RelationenX aus ρ und Y aus σ sind Attribute über demselben WertebereichΘ-Verbund sind die Tupel aus ρ✕σ, die Bedingung X Θ Y erfüllen:ρ[X Θ Y]σ ≔ selX Θ Y (ρ✕σ)

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

130/1332.6 Datenbankoperationen: DivisionDivision ρ / σ:

ρ = ρ(A), σ = σ(B), B ⊆ A und C = A \ BForderung: Es kann nur eine Relation eines Schema durch eine Relation eines Unterschemas geteilt werden

ρ / σ = PC (ρ) \ PC ((PC (ρ) ✕ σ) \ ρ)Klammerausdruck: alle Tupel t mit der Eigenschaft

t ∉ ρ , PB(t) ∈ σErgebnis der Division: alle Tupel PC(t) mit t ∈ ρ , PB(t) ∈ σ

Gleichwertige Definition:ρ / σ = PC (ρ) \ PC ((PC (ρ) ⊳⊲ σ) \ ρ)

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

131/1332.6 Realisierung der Datenbankoperationen in SQLSQL setzt sich aus zwei Teilen zusammen:

Datendefinitionssprache: Sprachelemente zur Definition von Datenbankschemata

Datenmanipulationssprache: Sprachelemente zur Manipulation von Datenobjekten

Wertebereiche Di zur Definition eines relationalen SchemasCHARACTER ein einzelnes ZeichenCHARACTER(n) Zeichenkette der Länge nINTEGER ganze Zahl mit VorzeichenFLOAT Gleitkommazahl

Sprachelement zur Definition eines SchemasCREATE TABLE Relationenname (a1Dj,… ,anDk)

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

132/1332.6 Operationen in SQLINSERT-Operation

Eintragen einer Relation bei vorgegebenem SchemaINSERT INTO Name(a1,… ,an) VALUES (v1,… , vn)Typ der vj muß mit den Wertebereichen der aj übereinstimmen

UPDATE- und DELETE-OperationÄndern und Löschen von Tupeln einer Relation

SELECT-OperationLesen bzw. Verknüpfen von Tupeln einer RelationSELECT Attribute FROM Relationen WHERE Bedingungen

Informatik I WS03/04 - Prof. Dr. Gerhard Goos 2. Halbgruppen und Relationen

133/1332.6 Beispiel zur SELECT-OperationBeispiel: für Datenbankrelationen

Studierender: Fächerbelegung:

Beispiel von SELECT-Operationen auf obigen Datenbankrelationen:

1. SELECT Name FROM Studierender

2. SELECT Fb.Fach, St.Semester FROM Fächerbelegung Fb, Studierender St WHERE Fb.Name = St.Name

Name Vorname Matr_Nr Semester

Meier Hans 123456 1Müller Petra 654321 3Bauer Klaus 232323 1

Schmid Astrid 865921 5

Bähr Claudia 987654 3

Fach Name

Inf MeierBio MüllerMed BauerInf Schmid

Med Bähr

Recommended