Algebraische Beschreibung paralleler Prozesse

Größe: px
Ab Seite anzeigen:

Download "Algebraische Beschreibung paralleler Prozesse"

Transkript

1 Algebraische Beschreibung paralleler Prozesse Prof. Dr. W. Vogler Universität Augsburg WS 2011/2012

2 INHALTSVERZEICHNIS 2 Inhaltsverzeichnis 1 Einführung Parallele Systeme und Kommunikation Erste Beispiele Puffer Puffer Puffer mit Ack(nowledgment) Zahlenverarbeitung Fließband Zusammenfügen der Komponenten mit Parallelkomposition Semaphore Basis-Definitionen Aktionen CCS Transitionssysteme als operationale Semantik Sorten Reduktion des voll(ständig)en CCS auf Basis-CCS Gleichungsgesetze Dynamische Gesetze Statische Gesetze Expansion Starke Bisimulationen und starke Äquivalenz Starke Bisimulation Gesetze für Kongruenzeigenschaften Schwache Bisimulation und Beobachtungsäquivalenz Schwache Bisimulation Anwendung - ein einfacher Scheduler 38 7 Beobachtungskongruenz Definition und erste Eigenschaften Gesetze für = Axiome für endliche Prozesse Eine Schneller-als-Relation 47

3 1 EINFÜHRUNG 3 1 Einführung Dieses Vorlesungsskript beruht in erster Linie auf [1] sowie einer LATEX-Mitschrift von Hörern dieser Vorlesung im WS 03/04, denen ich sehr dankbar bin. Formale Systemmodelle bieten eine klare Implementationsgrundlage für die Softwareentwicklung. Mit ihrer Hilfe lässt sich bereits eine Simulation wie auch ein Model-Checking noch vor Beginn der Implementierungsphase durchführen. Damit lässt sich prüfen, ob sich das endgültige Produkt spezifikationskonform verhält; hierbei ist eine Spezifikation eine Sammlung erwünschter Eigenschaften. In dieser Vorlesung werden formale Modelle paralleler (nebenläufiger) Systeme anhand der Prozess-Algebra CCS beschrieben; die Terme einer Prozess-Algebra kann man sich als erweiterte rationale bzw. reguläre Ausdrücke vorstellen. Systemmodelle können abstrakter oder implementierungsnäher sein; letztere können z.b. die Aufteilung in parallele Komponenten beschreiben. In diesem Sinn kann CCS als Spezifikationsund als einfache Programmiersprache verstanden werden. 1.1 Parallele Systeme und Kommunikation Zunächst gehen wir davon aus, dass prinzipiell kein Unterschied zwischen einem System und einem Teilsystem besteht. Man wählt sich für die Betrachtung einfach eine für die aktuelle Zielsetzung geeignete Detailebene. So interessieren bei der Analyse von Prozessen in einem Unternehmen beispielsweise nicht die Organe der einzelnen Mitarbeiter. Das Verhalten der (Teil-)Systeme (Prozesse) besteht aus ihren Aktionen: Nachrichten (Der Benutzer eines Computers teilt diesem mit, dass er den C-Compiler starten soll; vgl. [1], Seite 13f.) autonom (Der Computer berechnet x := 1.) Dies kann oft als Kommunikation von Teilsystemen verstanden werden. (Im Beispiel: zwischen dem Prozessor und dem Hauptspeicher) Kommunikation: (i) FIFO-Kanal (First in - first out): Der Sender schreibt Nachrichten in einen Puffer, aus dem diese dann an den Empfänger weitergeleitet werden. (ii) Shared Memory: Sender und Empfänger teilen sich einen gemeinsamen Speicherbereich. Der Empfänger kann die Nachrichten mehrfach aus dem Speicher auslesen.

4 1 EINFÜHRUNG 4 (iii) Die Algebra CCS (CALCULUS OF COMMUNICATING SYSTEMS) verwendet Kommunikation per Handschlag (Rendezvous), eine gemeinsame Aktion zweier Prozesse. Während in (i) und (ii) aktive und passive Prozesse unterschieden werden, werden hier grundsätzlich alle Prozesse als aktiv betrachtet. In (i) sendet der aktive Sender an den passiven Puffer; ob der Puffer gegenüber dem Empfänger aktiv oder passiv ist, ist Geschmackssache. In (ii) sind Sender und Empfänger aktiv gegenüber dem passiven Speicher. Modellierung von (i) und (ii) in CCS: je 3 Prozesse: 1. send(5): gemeinsame Aktion von Sender und Puffer 2. write 5 into x: gemeinsame Aktion von Sender und Speicher 1.2 Erste Beispiele Wir führen zunächst eine Variante mit Variablen und Werten ein; später behandeln wir fast ausschließlich eine abstraktere Variante Puffer Ein Puffer bietet zwei Kommunikationsmöglichkeiten (Ports). Seine Beschreibung stützt sich auf zwei Prozessnamen C und C. Prozessnamen können auch als Prozedurnamen verstanden werden; genau wie letztere können sie Parameter haben. C in(x).c (x) C (x) out(x).c Das Verhalten eines Prozessnamens wird mit definiert. Auf der rechten Seite des Definitionspfeils steht ein Prozess, der dem Rumpf einer Prozedur/Methode entspricht. Hierbei tauchen noch einige unbekannte Symbole auf:

5 1 EINFÜHRUNG 5 in(x): Rendezvous, bei dem der Wertxam Portin empfangen wird out(x): Rendezvous, bei dem der Wert x am Port out gesendet wird; der Querbalken wird für Ausgaben verwendet. in(x).c (x): Rendezvous ausführen, dann sich wiec (x) verhalten. Der Punkt. ist das Symbol für Prefixing, eine einfache Form der Hintereinanderausführung. in(x).c (x) ist ein CCS-Term. Ein Ablauf des Systems ist z.b.: C in(42) C (42) out(42) C Dies bedeutet, dass der Port in mit dem Wert 42 angesprochen und damit der Pufferprozess C mit diesem Wert aufgerufen wird, der dann 42 ausgibt und wieder zum Prozess C wird. Also:C beschreibt den leeren Puffer,C (x) denxspeichernden Puffer. Wir betrachten also dasselbe System in verschiedenen Zuständen als verschiedene Prozesse, die ja auch unterschiedliches Verhalten zeigen. Bemerkung. Wir haben bereits den Parameter x in obigem Beispiel verwendet. Wie in Programmiersprachen auch besitzen Variablen in CCS verschiedene Bindungsbereiche (= scope): in(x).p : x ist hierbei eine Variable in P (mit Bindungsbereich P ). C (x)...:xist eine Variable der rechten Seite und dort gebunden. out(x).p : In diesem Fall ist x nicht gebunden und damit eine freie Variable. Der Wert von x ergibt sich erst durch eine Bindung weiter außen. Alternativ ließe sich der 1-Puffer auch mit folgender Definition beschreiben, in der kein weiterer (Unter-)Prozess mehr aufgerufen wird Puffer C in(x).out(x).c Als nächstes betrachten wir einen Puffer der Kapazität 2: Buff 2 in(x).buff 2 (x) Buff 2 (x) in(y).buff 2 (x,y)+out(x).buff 2 ( ) Buff 2 (x,y) out(x).buff 2 (y) ( ) In diesem System taucht zum ersten Mal das Symbol + auf, das einer nicht-deterministischen Auswahl (einem logischen oder) entspricht. Welche Option ausgewählt wird, wird erst zum Zeitpunkt der ersten Aktion entschieden, welche eventuell von der Umgebung beeinflußt wird. Prefixing. bindet stärker als +. Beachte: in( ): scope von x ist rechte Seite scope von y ist Buff 2 (x,y) in( ): Buff 2 (y) ist Aufruf von Buff 2 (x): formaler Parameter x, Wert y bei Aufruf.

6 1 EINFÜHRUNG 6 Buff 2 kann als Spezifikation eines Zwei-Puffers gesehen werden, der sich durch eine Verkettung C C von zwei 1-Puffern C implementieren läßt (vgl. obigen Flussgraphen). Das Symbol beschreibt eine Verkettung, welche die Ports out und in verbindet. Zusätzlich werden diese Ports internalisiert, so daß von außerhalb des Systems kein weiterer Zugriff auf diese Ports erfolgen kann (s.u.). Der Korrektheitsbeweis zeigt C C = Buff 2, wobei die Terme syntaktische ungleich ( ) sind Puffer mit Ack(nowledgment) In einigen Fällen ist eine weitere Form der Kommunikation zwischen Prozessen erforderlich, bei der keine Parameterübergabe stattfindet. Ein Prozess möchte beispielsweise eine Bestätigung für eine Datenübergabe erhalten. Dies ließe sich folgendermaßen formalisieren: D in(x).out(x).ackout.ackin.d Bemerkung. Die beiden Bestätigungsaktionen ackin und ackout besitzen dabei keine Parameter, sind reine Synchronisation der Prozesse. Daher besitzen sie eigentlich keine Richtung. Bei der Verknüpfung D D zweier Prozesse D müssen out mit in und ackout mit ackin verbunden werden. Die Verknüpfung D D hat ein Problem: sie kann Ändert man die Definition leicht ab in D so ist die neue Prozesskette D D in der Lage,

7 1 EINFÜHRUNG Zahlenverarbeitung Ein CCS-Prozess ist jedoch nicht nur in der Lage, Nachrichten zu übertragen, er kann intern auch Berechnungen durchführen, beispielsweise eine Eingabe verdoppeln: Doppeln in(x).out(2 x).doppeln Fließband Wir betrachten zwei Arbeiter, die Objekte mit einem kleinen Hammer K oder einem großen Hammer H bearbeiten. Es ist leicht einzusehen, dass ein Wettbewerb um die Hämmer entsteht. Dieser führt zu einem nicht-deterministischen Prozess. H geth.busyh K getk.busyk BusyH puth.h BusyK putk.k (Erster Buchstabe groß: Prozess, klein: eine Aktion.) Offenbar sind diese Definitionen sehr ähnlich. Jobber in(job).start(job) Start(job) if hard(job) then U seh(job) else U set ool(job) {hard(job) : boolean} UseTool(job) UseH(job)+UseK(job) U seh(job) geth.puth.f inish(job) U sek(job) getk.putk.f inish(job) F inish(job) out(done(job)).jobber {done: Funktion auf Objekten; done(job) = fertiges Objekt} Eine Sorte von P ist eine Menge von Aktionen, die alle Aktionen von P umfasst. Beispiele. H : {geth, puth} (H hat Sorte {geth, puth}) K : {getk,putk} Jobber : {in,out,getk,geth,putk,puth}

8 1 EINFÜHRUNG Zusammenfügen der Komponenten mit Parallelkomposition Zunächst betrachten wir das Teilsystem Jobber H. Dies bedeutet, dass Jobber und H parallel agieren, wobei komplementäre Aktionen (z.b. geth, geth) gemeinsam ausgeführt werden können, jedoch nicht müssen: geth ist auch ohnegeth möglich, da ein zweiter Jobber vorhanden sein könnte, der auch H nehmen will. Für die Sorten von Prozessen, die parallel ausgeführt werden (P Q), gilt: P Q : L M, wenn P : L und Q : M. Wir bringen nun eine zweite Instanz eines Jobbers ins Spiel. Dadurch verändert sich das Teilsystem zu (Jobber H) Jobber. Der Flussgraph legt nahe, dass die Parallelkomposition kommutativ und assoziativ ist, also z.b. H Jobber = Jobber H ist. Dies können wir erst zeigen, wenn = (im Sinne von gleichem Verhalten) definiert ist. Die Terme an sich sind verschieden ( ). Ebenso sollte + kommutativ und assoziativ sein. Die Aktionen für geth und geth beispielsweise können auch von anderen Prozessen aufgerufen werden; das war gerade sehr nützlich, soll aber im weiteren vermieden werden. Dazu werden die Aktionen internalisiert, so dass sie von außen nicht mehr zugreifbar sind. ((Jobber H) Jobber) \ {geth,puth} Der Restriktions-Operator \ bewirkt, dass die angegebenen Aktionen und deren Komplemente mit keinem weiteren Port verbunden werden können. Einzeln können diese Aktionen nicht mehr ausgeführt werden, wohl aber geth, geth zusammen (siehe weiter unten, τ). Restriktion verkleinert die Sorte des Prozesses genau wie der identisch geschriebene Mengenoperator. Die nachfolgenden Rümpfe von Fließband sind gleich: Fließband (((Jobber H) Jobber)\{getH,putH} K)\{getK,putK} = (Jobber Jobber H K)\{getH,putH,getK,putK} In CCS lassen sich Terme mit Hilfe algebraischer Gesetze umformen. 1.4 Semaphore Ein nützliches Konzept aus der Programmierung ist die Verwendung von Semaphoren. Definition 1.1. Ein Semaphor bestimmt sich durch Sem get.put.sem. Ein Semaphor ist offenbar ähnlich zu den Prozessen H und K. Zur Beschreibung der Ähnlichkeit dient eine Umbenennungsfunktion, die Aktionen auf Aktionen abbildet, wobeif(a) = b f(a) = b. Dabei seia = a, so daß auch f(in) = out möglich ist. ( f(in) = out) Wir schreiben a 1 / b1,, an / bn fürf mitf(b i ) = a i,f(b i ) = a i und f(a) = a sonst. Beispiel. get geth get geth. Eine Beschreibung von H und K mittels Umbenennung (Relabelling) würde so aussehen: H = Sem[ geth / get, puth / put ] K = Sem[ getk / get, putk / put ]

9 1 EINFÜHRUNG 9 Der Operator läßt sich damit so beschreiben: C C (C[ m / out ] C[ m / in ])\{m}

10 2 BASIS-DEFINITIONEN 10 2 Basis-Definitionen 2.1 Aktionen In (Basis)-CCS existieren keine Aktionen mit Parametern, sondern nur einfache Synchronisationen wie z.b.geth, was jedoch keine Einschränkung darstellt. Definition 2.1. A: Menge von Aktionsnamen a,b,c Ā: Menge der Co-Aktionen a,b,c; es seia = a L = A A: Menge der (Port-)Beschriftungen l, m, n (L steht für label.) Die Idee der Verhaltensbeschreibung ist, dass Prozesse Aktionen ausführen und dabei in einen anderen Zustand übergehen, also ein anderer Prozess werden: Beispiel. H geth BusyH, BusyH puth H Sei nun A a.a, A c.a, B c.b, B b.b. FürA B erhalten wir: es gilt A a A, also A B a A B; ferner A c A, also A B c A B. Rendezvous: A und B führen c und c zusammen aus. Dabei verschmelzen c und c zu einer internen, unbeobachtbaren Aktion (hidden action); es genügt eine interne Aktion τ. Bsp.:A c A,B c B, also A B τ A B. Definition 2.2 (Act). Die Menge der Aktionen α,β,γ... ist Act = L {τ} (disjunkte Vereinigung). Die Restriktion \ c verbietet c, erlaubt aber dennoch weiterhin τ. Damit ergeben sich folgende Transitionen für (A B)\c: Also erzwingt \ c eine Synchronisation über c. Wir sehen : (A B)\c = a.τ.c mit C b.a.τ.c +a.b.τ.c Dabei wurde die Parallelkomposition eliminiert. Mit dem Gesetz α.τ.p = α.p ergibt sich (A B)\c = a.d mitd b.a.d +a.b.d. Gilt auch einfach τ.p = P? Beispiel. Vergleiche die beiden Terme A a.a + τ.b.a und B a.b + b.b MitP = τ.p würde A = B folgen, aber: Durch τ kann sich A autonom in A verwandeln. Wenn jetzt die Umgebung a verlangt, tritt eine Verklemmung ein. Dies kann mit B nicht geschehen. Also ist A B und i.a. P τ.p! (Widerspruch zu endlichen Automaten).

11 2 BASIS-DEFINITIONEN CCS Definition 2.3. Gegeben sei eine Menge K von Prozessnamen A, B,... und eine Menge X von Prozessvariablen X, Y,... (nur technisch) Ein CCS-Term ist ein Prozessname, eine Variable, oder 1. α.e,α Act (Präfix) 2. i I E i (Auswahl) 3. E 1 E 2 (Parallelkomposition) 4. E\L,L L (Restriktion) 5. E[f] (Umbenennung, Relabelling), f ist eine Umbenennungsfunktion: f : L L; f(l) = l f(l) = l ; f(τ) = τ wobei E,E i (i I), E 1 und E 2 CCS-Terme sind. E ist die Menge aller CCS-TermeE,F,... Bei 2) handelt es sich um ein verallgemeinertes +. Für I = {1,2} schreiben wir auch E 1 +E 2. I kann unendlich oder auch sein; dann ist i E i =: 0 =: Nil (Nil ist der inaktive Prozess). Basisprozesse, die syntaktisch keine anderen Prozesse enthalten, sind also N il, Prozeßnamen und Variablen. Bindungsstärke: regelt das Weglassen und Wiederergänzen von Klammern 4. und 5. binden stärker als 1; 1. bindet stärker als 3; 3. bindet stärker als 2. Für 4. und 5. ist keine Unterscheidung nötig: E[f]\L kann nur (E[f])\L sein und ist E\L[f]. Beispiel. R+a.P b.q\l (b.q)\{b} b.(q\{b}) Definition 2.4. Ein Prozess ist ein CCS-Term ohne (freie) Variablen (hier: alle Variablen frei). P ist die Menge der ProzesseP,Q,... Wir nehmen an, dass für jeden Prozessnamen eine Definition der FormA P gegeben ist. Diese kann auch rekursiv (A a.a) oder verschränkt rekursiv sein (A a.a, A b.a) Definition 2.5. Für (E i ) i I schreiben wir eventuell auch kurz Ẽ. Ist (X i) i I eine Menge von Variablen, so bezeichnet { E i / Xi : i I} bzw. Ẽ/ X die simultane syntaktische Substitution der (freien) X i durch E i für alle i I. Beispiel. (a.x +b.y c.y){ (a.y) / X, Nil / Y } Die Zeichenkette (a.x +b.y c.y){ (a.y) / X, Nil / Y } ist kein Prozessterm, sie beschreibt aber einen daher.

12 2 BASIS-DEFINITIONEN Transitionssysteme als operationale Semantik Die operationale Semantik gibt zu jedem Zustand ( E) an, welche Aktionen möglich sind und welche Zustände sich bei einer Aktion ergeben können. Definition 2.6. Ein (beschriftetes) Transitionssystem (S,B,{ b b B}) besteht aus einer Menge S von Zuständen, einer Menge B von Transitionsbeschriftungen und einer Transitionsrelation b S S für jedes b B. Alternativen: äquivalent ist: eine Transitionsrelation S B S Eventuell gibt es einen Startzustand s 0 S Hier: S = E und B = Act. Ziel: Definition von α Vorgehen: Das Verhalten eines Terms, z.b.e F, lässt sich aus dem Verhalten der Komponenten, hier E und F, ableiten. WennE α E (ein Übergang ist), dann auch E F α E F. (Structured Operational Semantics, Plotkin). Schreibweise: E α E E F α E F Dabei ist oben die Voraussetzung, unten die Folgerung angegeben. (SOS-Regeln; Herleitungsregeln wie in der Logik). ( ) α α Act ist die Familie kleinster Relationen, die die folgenden Regeln erfüllen: Act α.e α E Com 1 Com 2 E α E E F α E F F α F E F α E F (keine Voraussetzung, Axiom) E l E,F l F Com 3 E F τ (l τ, z.b.l = a,l = a und E führt Co-Aktion aus) E F Sum j Res Rel E j i I E α i E j E j α E α E E\L α E \L E α E E[f] f(α) E [f] (j I) (Nebenbedingung) (α L L) Name P α P A α P (A P)

13 2 BASIS-DEFINITIONEN 13 Bemerkung. Sum für I = {1, 2} auch: Für Nil i E i gibt es keine anwendbare Regel, also Beispiel. ((a.e +b.nil) a.f)\a τ (E F)\a Zum Beweis ein Herleitungsbaum: Act a.e a E Sum 1 a (a.e +b.nil) E a.f a F Act Com 3 (a.e +b.nil) a.f τ E F Res τ (τ {a,a}) ((a.e +b.nil) a.f)\a (E F)\a Welche Übergänge gibt es überhaupt? Versuch, den Herleitungsbaum zu konstruieren: Res, α a,a und G G \a und ((a.e +b.0) a.f)\a α G (a.e +b.0) a.f α G Com 1,Com 2 oder (s.o.)com 3 ;Com 2 nicht möglich Com 1 : a.e +b.0 α...α a,a, also α = b, a.e +b.0 b 0 G 0 a.f ((a.e +b.0) a.f)\a b (0 a.f)\ a einziger weiterer Übergang! Beispiel. Ein Zufallsgenerator für natürliche Zahlen: Random Satz 2.7. Die E α E gemäß obiger Definition sind genau die Übergänge mit (endlichem) Herleitungsbaum. Die Familie ist also eindeutig definiert.

14 2 BASIS-DEFINITIONEN 14 Aussagen A für alle E α E kann man mit Transitionsinduktion (Induktion über die Tiefe des Herleitungsbaums bzw. über die Länge der Herleitung) beweisen. Es gibt einen Fall für jede Regel. Verankerung entspricht dem (oder einem) Axiom. Für α zeigt man A direkt. E E Beispiel. Ind.schritt für den Fall Rel: Sei E[f] f(α) E [f] wegen E α E, und die Aussage A(E α E ) gilt nach Induktion. Zeige damit A(E[f] α E [f]). Restbaum E α E E[f] f(α) E [f] Hier noch ein, etwas abschreckendes, Beispiel für Herleitungen: Beispiel. A a 0.0 A[f] mitf : a i a i+1. CCS entspricht einem Transitionssystem; zu jedem E ist aber nur der von E erreichbare Teil interessant. Hier: Transitionssystem ist Grundlage aller Verhaltensbegriffe keine explizite Parallelität im Verhalten. Herleitung einer Transition eventuell langwierig Arbeiten mit CCS auch ohne eine Herleitung ( Gesetze / Axiome für = ). FallsE α E, dann heißt (α,e ) direkte Folge von E α eine Aktion von E E ein α-folgeterm von E Analog definiert man für E α 1 α n E (α 1 α n,e ) eine Folge von E α 1 α n eine Aktionsfolge von E E ein (α 1 α n -)Folgeterm von E Wir schreiben auch E α 1 α n E in diesem Fall; ferner E α 1 α n, falls E : E α 1 α n E ; Speziell: n=0, also E λ E, und λ ist eine Aktionsfolge, E ein Folgeterm von E für alle E. Wir erwarten: Haben E 1 und E 2 dieselben direkten Folgen (und damit im wesentlichen dieselben Folgen), so sind sie sicher verhaltensgleich (bisher undefiniert). τ ist intern (unbeobachtbar), daher ist interessant: Aus s Act entsteht ŝ L durch Entfernen aller τ s. Speziell: τ τ = λ.

15 2 BASIS-DEFINITIONEN 15 Für s = α 1 α n Act ist E = s E, falls E( ) τ α 1 τ ( ) (α i = τ möglich) E = s wie oben. α n ( τ ) E, Falls s Act und E ŝ = E (!), dann ist E ein s-nachkomme von E. (Beispielsweise haben P und τ.p speziell P als τ-nachkommen.) ŝ Uns interessiert vor allem =. Für s L ist s = ŝ und E = ŝ E dasselbe wie E = s E s. = mit s Act \L ist eher technisch. Beispiel. E ab = E bedeutet E τm aτ n bτ p E E = λ E bedeutet E = τa E bedeutet 2.4 Sorten Definition 2.8. E hat (semantische) Sorte L L, falls alle Aktionen von E und seinen Folgetermen in L {τ} liegen; E : L. Folgerung. L ist Sorte von E für alle E α E gilt: α L {τ} und L ist Sorte von E. Eigentlich hätten wir gerne die kleinste Sorte von E. Es ist aber generell unentscheidbar, ob ein ProzessP je die Aktionlausführen kann. (vergleiche hierzu Turingmaschinen und den Satz von Rice aus der Theoretischen Informatik) Syntaktische Sortenzuweisung: Definition 2.9. Gegeben seien Sorten L(A) L, A K (Konstanten) und L(X) L, X X. Dann ist die syntaktische Sorte L(E), E E, definiert durch: L(l.E) = {l} L(E), L(τ.E) = L(E) L( i I E i) = i I L(E i), ( L(Nil) = L(E F) = L(E\L) = L(E[f]) = Dabei sei vorausgesetzt, dass für alle A P gilt: L(P) L(A) Beispiel. L(a.b.0) = {a, b}, L((a.b.0)\a) Für A a.b.a ist L(A) = {a} unmöglich, denn dann wäre L(a.b.A) = {a, b} {a}. L(A) = {a, b, c} ist ok. (L(A) = L ist immer zulässig, aber wenig hilfreich!) Idee: Rate als syntaktische Sorte und korrigiere iterativ gemäß L(P). In diesem Beispiel funktioniert das; im abschreckenden Beispiel von oben terminiert es nicht. Lemma SeiE α E. Dann gilt:

16 2 BASIS-DEFINITIONEN 16 (i) α L(E) {τ} (ii) L(E ) L(E) Beweis. durch Transitionsinduktion (Transitionen sind induktiv definiert) Betrachte die letzte Regel im Herleitungsbaum von E α E. 1. Act : E α.e (Blatt im Herleitungsbaum Induktionsanfang) Nach Definition ist L(E) = {α} L(E ) für α τ, L(E) = L(E ) für α = τ (jeweils (i) und (ii) prüfen!) 2. Sum j : E i E i und E j α E (mit einem niedrigeren Herleitungsbaum) Nach Induktionsvoraussetzung ist α L(E j ) {τ} und L(E ) L(E j ). Nach Definition sehen wir, dass L(E j ) L(E). 3. Com 1 : E E 1 E 2, E E 1 E 2 und E 1 α E 1 Nach Induktionsvoraussetzung istα L(E 1 ) {τ} und L(E 1 ) L(E 1); mitl(e) = L(E 1 ) L(E 2 ) und L(E ) = L(E 1 ) L(E 2) L(E 1 ) L(E 2 ) = L(E). 4. Com 2, Com 3, Res, Rel: ähnlich 5. Name : E A mita P und A α E wegen P α E. Nach Induktionsvoraussetzung ist α L(P) {τ} und L(E ) L(P). DaL(P) L(A), ist L(E ) L(A). Satz Für alle E E gilt: E : L(E). Beweis. Seiαeine Aktion eines Folgeterms F von E. Wegen Lemma 2.10 (i) gilt α L(F) {τ}. Die wiederholte Anwendung von Lemma 2.10 (ii) ergibt L(F) L(E). FallsE keine Variablen, Namen oder Umbenennungen enthält, ist die syntaktische Sorte von E einfach die Menge der freien (nicht durch Restriktionen gebundenen) Portbeschriftungen. Wir kürzen oft α.n il durch α ab. Beispiel. P ((a+b.c)\c) ((b+c.d)\d) L(P) =

17 2 BASIS-DEFINITIONEN Reduktion des voll(ständig)en CCS auf Basis-CCS volles CCS: Aktionen und Namen mit Parameter gut für Anwendungen und Beispiele schwierig für Beweise Annahme: Alle Parameter-Werte liegen in V. Definition 2.12 (Volle CCS-Terme E + ). Jeder Prozessname A K habe eine Stelligkeit (# Parameter). Es seien Ausdrücke e (expression) und boolesche Ausdrücke b aus Daten-Variablen x,y,... und Konstanten über V und geeigneten Operationssymbolen gegeben. E + enthält alle X X, alle A(e 1,...,e n ), wobei A Stelligkeit n hat, und zue, E i E + : 1. a(x).e, a(e).e, τ.e (a A) 2. i I E i 3. E 1 E 2 4. E\L (L L) 5. E[f] (f eine Umbenennungsfunktion) 6. if b then E {if b thene else E ˆ= if b then E + if b thene } Zu jedem A K mit Stelligkeit n gibt es eine DefinitionA(x 1,...,x n ) E, wobei diex i verschieden sind und E keine Prozess-Variablen und keine freien Daten-Variablen außer x 1,...,x n enthält. (Bindung durch a(x). ; also keine globalen Datenvariablen, die außerhalb der Prozedur A definiert sind) Beispiele. 1. C in(x).c (x) und C (x) out(x).c (x frei inc (x), aber nicht inin(x).c (x);xfrei inout(x).c) Der Name C mit Parameter x wird zur Familie (C v ) v V. Analog wird out zu einer Familie(out v ) v V von Aktionen. Aus der einen (symbolischen) Definition von C wird eine Familie von Definitionen: C v out v.c (v V) C stellt eine Auswahl dar: C v V in v.c v 2. Even(x) if x gerade then out(x).0 wird zu Even 2n und Even 2n+1 (Kennen wir den Wert von x, so auch den Wert von x gerade.) Übersetzung: F E + ˆF E Zul im vollen CCS gibt es eine Familie(l v ) v V von eigenen Portbeschriftungen; zu A K : (Aṽ)ṽ V n Wir betrachten F E + mit freien Daten-Variablen x i bzw. x nur, wennf Teilterm von E

18 2 BASIS-DEFINITIONEN 18 ist. 1. in einer Definition A( x) E bzw. 2. in a(x).e 1. wird zu FamilieAṽ E{ṽ/ x },ṽ V n ; die x i sind nicht mehr frei ine{ṽ/ x }. 2. wird zu v V a v. E{ v / x },xnicht frei in E{ v / x }. Konsequenz: Wir übersetzen also nur F E + ohne freie Daten-Variablen: Ist F a(e).e oder A(e 1,...,e n ) oder if b then E, so kann man e, e i, b auswerten zu e, e i V bzw. b {T,F}. Übersetzungen: F X X a(x).e v V av.ê{v / x } a(e).e a e.ê { e V} τ.e τ.ê i I E i i I Êi E 1 E 2 Ê 1 Ê2 E\L Ê\{l v : l L, v V} E[f] ifbthene Ê[ f], mit f(l v ) = { f(l) v {Ê T, falls b = 0 F A(e 1,...,e n ) A e1,..., e n Beispiel. V = N, F in(x).if x < 3 then out(x).0 F Konsequenz: Wir arbeiten nach Wunsch mit (vollem) CCS oder Basis-CCS. Wir betrachten hier volles CCS nur als intuitive abkürzende Schreibweise für CCS; die Übersetzung gibt den Prozessen des vollen CCS eine Semantik. Alternative: Semantik direkt definieren; dann kann/sollte man beweisen, dass die Übersetzung korrekt ist, weile und Ê dieselbe Semantik haben. Basis-CCS: keine Daten-Variablen/-Ausdrücke, also keine Substitution, keine Auswertung von Ausdrücken, kein if a und a sind völlig symmetrisch

19 3 GLEICHUNGSGESETZE 19 3 Gleichungsgesetze Ziel: Angabe und Anwendungen von Gleichungen (rein syntaktisch) (Obwohl (verhaltens-) gleich bisher undefiniert!) Gesetze für: statisch: statische Operationen dynamische Operationen Kombinationen aus statischen und dynamischen Operationen Komposition, Restriktion, Umbenennung SOS-Regeln haben die Form: α E 1 i1 E α i1,...,e m im E im α op(e 1,...,E n ) op(e 1,...,E n) wobei op ein Operationssymbol; i 1,...,i m {1,...,n} und E i E i für alle anderen i Grobe Termstruktur bleibt erhalten dynamisch: Präfix, Auswahl, Namen (0-stellige Operationen) verschwinden beim Ausführen einer Aktion 3.1 Dynamische Gesetze Satz 3.1 (Monoid-Gesetze). ( P rozesse P, Q, R) (i) P +Q = Q+P (ii) (P +Q)+R = P +(Q+R) (iii) P +P = P (Idempotenz) (iv) P +Nil = P (neutrales Element) Beweisidee. gleiche direkte Folgen Wegen i), ii) und iv) istσ-summe sinnvoll. Satz 3.2 (τ-gesetze). (i) α.τ.p = α.p (ii) P +τ.p = τ.p (iii) α.(p +τ.q)+α.q = α.(p +τ.q) Korollar 3.3. P +τ.(p +Q) = τ.(p +Q) Beweis. Einschub. Was ist ein Beweis für P = Q? Genaugenommen sindp,q,... inp +Q = Q+P,... Variable. Eine Gleichung ist also ein Paar (E 1,E 2 ) E E.

20 3 GLEICHUNGSGESETZE 20 Definition 3.4. Gegeben sei eine Menge G von Gleichungen. Dann ist ein Beweis von F 1 = F 2 eine Herleitung mit folgenden Regeln: E = E reflexiv E = E E = E symmetrisch 3. E = E, E = E E = E transitiv E 1 = E 1,...,E n = E n op(e 1,...,E n ) = op(e 1 (op: Operationssymbol),...,E n ) Substitution Ein Term darf in jedem Kontext durch einen gleichen ersetzt werden. E = E E{Ẽ/ X} = E {Ẽ/ X} ({Ẽ/ X} eine Substitution) E = E falls (E,E ) G Instantiierung von Variablen Beachte: {Ẽ/ X} ist kein CCS-Operator. 4. läßt die Grobstruktur gleich; 5. verändert sie. Beispiel. P +τ.p = τ.p (6) τ.p = P +τ.p (2) (1) (5) P = P τ.(p +Q) = (P +Q)+τ.(P +Q) P +τ.(p +Q) = P +((P +Q)+τ.(P +Q)) (4) Folgerung. Wegen muss = eine Äquivalenzrelation sein. Wegen 4. sogar eine Kongruenz; vgl. z.b. Satz Im allgemeinen ist τ.p P, s.o. α.(p +Q)? = α.p +α.q (Entscheidung zwischen P und Q fällt bereits bei α) Dann wäre z.b. a.b 3.1(iv) = a.(b.0+0) = a.b.0+a.0 a.b und a.b+a haben dieselben Aktionsfolgen, abera.b+a a Also im Allgemeinem. 0 verklemmt, a.b a b nicht. Nun zua P. Oft trittainp auf, d.h.p E{ A / X }, wobeie genau die VariableX enthält. Wir erwarten: Da A E{ A / X }, gilt A = E{ A / X }, d.h. A löst die Gleichung X = E. Ferner wäre es gut, wenn A die einzige Lösung wäre, d.h. Q = E{ Q / X } A = Q. Beides soll auch bei verschränkter Rekursion gelten, d.h. für Gleichungssysteme X = Ẽ. Dabei ist P eine Lösung, wenn P = Ẽ{ P/ X}, d.h.

21 3 GLEICHUNGSGESETZE 21 Definition 3.5. Sei E E. X ist sequentiell in E, falls jeder Teilausdruck F von E, der X enthält, die Form F X oder F F 1 +F 2 oder F α.f hat. X ist bewacht (guarded) in E, wenn jedes Auftreten von X in E in einem Teilausdruck l.f, l L (also l τ), liegt. Beispiele. X inτ.x +a.(b+x)+b c X ina.x b X inτ.(a b+b.(c+τ.x)) Satz 3.6. (i) Wenn A P, dann gilt A = P. (ii) Falls die E i, i I, nur die Variablen X i, i I, enthalten und diese bewacht und sequentiell in allen E i sind, dann gilt: Wenn P = Ẽ{ P/ X} und Q = Ẽ{ Q/ X}, dann P = Q. (Wenn das Gleichungssystem X = Ẽ lösbar, dann eindeutig.) Beispiel. A a.a,b a.a.b Behauptung: A = B 3.2 Statische Gesetze Satz 3.7. (i) P Q = Q P (ii) P (Q R) = (P Q) R (iii) P 0 = P Satz 3.8. (i) P \L = P, falls L(P) (L L) = (wobei L(P) syntaktische Sorte von P ist) (ii) P \K \L = P \ (iii) P[f]\L = P \ [f] (iv) (P Q)\L = P \L Q\L, falls (sonst verlieren P, Q eventuell Kommunikationsmöglichkeiten)

22 3 GLEICHUNGSGESETZE 22 Satz 3.9. (i) P[id] = P (ii) P[f] = P[f ], falls f L(P) = f L(P) (iii) P[f][f ] = (iv) (P Q)[f] = P[f] Q[f], falls (sonst gewinnen P, Q eventuell Kommunikationsmöglichkeiten; kann z.b. P a und Q b ausführen, so können für f = a / b P[f] und Q[f] mittels a und a kommunizieren) Die Umbenennung ist meist injektiv. Speziell in P[ l 1 /l1,..., l n /ln ] sind meist alle l i, l i, l i, l i verschieden und l i, l i L(P). (D.h. f(l i) = l i = f(l i ) schadet nicht!). Dann ist 3.9 (iv) anwendbar und ( l 1 /l1,..., l n / ln ) = ( l n/ ln )... ( l 1 /l1 ), (Gleichheit von Funktionen, Funktionskomposition) d.h. P[ l 1 /l1,..., l n /ln ] = P[ l 1 /l1 ]...[ l n /ln ] nach Satz 3.9 (iii). Korollar Seien a,b,c L. (entgegen sonstiger Konvention, dass l L und a,b,c bzw. a,b,c Act; zur Erinnerung: τ L) (i) P[ b / a ] = P, falls a,a, L(P) (ii) P \a = P[ b / a ]\b, falls b,b L(P) (α-konversion: Umbenennung gebundener Größen) (iii) P \a[ b / c ] = P[ b / c ]\a, falls {b,c} {a,a} =. Beweis. (i) P[ b / a ] 3.9(ii) = P[id] 3.9(i) = P (ii) P[ b / a ]\b = P \{a,b} [ b / a ] (3.8 (iii) mitl = {b}, f = ( b / a )) = P \b\a [ b / a ] (3.8 (ii)) = P \a [ b / a ] (3.8 (i) mitl = {b}) = P \a (3.10 (i)) (iii) 3.8 (iii) mitl = {a}, f = ( b / c ). Beispiel. C C C C C := (C[ mid / out ] C[ mid / in ])\mid, wobei mid,mid L(C) Dies ist ein Beispiel für die Standard Concurrent Form (SCF) (P 1 [f 1 ]... P n [f n ])\L siehe auch Fließband (Abschnitt 1.2.5): (Jobber Jobber Sem[ puth / put, geth / get ]... )\{geth,puth,...}

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie und, oder, nicht, wenn... dann zwischen atomaren und komplexen Sätzen. I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten

Mehr

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise: Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 5.4 Prädikatenlogik mit Gleichheit Resolution 192 Beispiel Bsp.: Betrachte Schlussweise in: 1 Wenn es regnet, dann wird die Straße nass. R N

Mehr

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 05 -Kommunizierende Prozesse PD Dr. Bernhard Schätz Lehrstuhl für Software und Systems Engineering, Fakultät für Informatik

Mehr

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract:

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract: Spezifikation der zulässigen Parameter Bemerkungen: Bei jeder (partiellen) Funktion muss man sich überlegen und dokumentieren, welche aktuellen Parameter bei einer Anwendung zulässig sein sollen. Der Anwender

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit

Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit 18:13:55 2015-07-14 1 [16] Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit Christoph Lüth & Martin Ring Universität Bremen Sommersemester 2015 2 [16] Organisatorisches

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Foundations of Systems Development

Foundations of Systems Development Foundations of Systems Development Vergleich und Zusammenfassung Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer WS 2007/08 2 Ziele Wichtige Aspekte von algebraischen Spezikationen

Mehr

Wie kann man beweisen, dass (H, ) eine Gruppe ist?

Wie kann man beweisen, dass (H, ) eine Gruppe ist? Wie kann man beweisen, dass (H, ) eine Gruppe ist? Wie kann man beweisen, dass (H, ) eine Gruppe ist? (zb wenn die Multiplikation mit Hilfe einer Tabelle gegeben ist) Wie kann man beweisen, dass (H, )

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Also kann nur A ist roter Südler und B ist grüner Nordler gelten. Aufgabe 1.1: (4 Punkte) Der Planet Og wird von zwei verschiedenen Rassen bewohnt - dem grünen und dem roten Volk. Desweiteren sind die Leute, die auf der nördlichen Halbkugel geboren wurden von denen auf

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

5. Varianten des Turingmaschinen-Konzeptes I: Varianten der Programmstruktur

5. Varianten des Turingmaschinen-Konzeptes I: Varianten der Programmstruktur 5. Varianten des Turingmaschinen-Konzeptes I: Varianten der Programmstruktur In der Literatur findet sich eine Vielzahl von Varianten des Turingmaschinen-Konzeptes, die sich alle als äquivalent zum Grundkonzept

Mehr

Entwicklung eines korrekten Übersetzers

Entwicklung eines korrekten Übersetzers Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung

Mehr

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

Karlsruher Institut für Technologie Institut für Algebra und Geometrie

Karlsruher Institut für Technologie Institut für Algebra und Geometrie Karlsruher Institut für Technologie Institut für Algebra und Geometrie PD Dr. Stefan Kühnlein Dipl.-Math. Jochen Schröder Einführung in Algebra und Zahlentheorie Übungsblatt 2 Aufgabe 1 (4 Punkte) Seien

Mehr

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Teil II. Nichtlineare Optimierung

Teil II. Nichtlineare Optimierung Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Endlicher Automat (EA)

Endlicher Automat (EA) Endlicher Automat (EA) siehe auch Formale Grundlagen 3 1 Motivation: Automaten für die Modellierung, Spezifikation und Verifikation verwenden! Definition Ein Endlicher Automat A = (S,I,Σ,T,F) besteht aus

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

Rekursionen (Teschl/Teschl 8.1-8.2)

Rekursionen (Teschl/Teschl 8.1-8.2) Rekursionen (Teschl/Teschl 8.1-8.2) Eine Rekursion kter Ordnung für k N ist eine Folge x 1, x 2, x 3,... deniert durch eine Rekursionsvorschrift x n = f n (x n 1,..., x n k ) für n > k, d. h. jedes Folgenglied

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Geometrische Mannigfaltigkeiten

Geometrische Mannigfaltigkeiten Geometrische Mannigfaltigkeiten Thilo Kuessner Abstract Kurzfassung der Vorlesung: Definitionen, Beispiele und Sätze, keine Beweise. Definition 1. Ein topologischer Raum ist eine Menge X mit einer Familie

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 29/ Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws9

Mehr

Qualitative Datenanalyse

Qualitative Datenanalyse Qualitative Datenanalyse Prof. Dr. Stefan E. Schmidt Francesco Kriegel TU Dresden Fakultät Mathematik Institut Algebra SS 2007 28. September 2008 Inhaltsverzeichnis Kapitel 1 Formale Begriffsanalyse 1

Mehr

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative

Mehr

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s Nachtrag zur allgemeinen Vektorraum-Theorie. 1.5.15. Direkte Summen. Sei V ein Vektorraum, seien U 1,..., U t Unterräume, wir schreiben V = U 1 U 2 U t = t i=1 U i falls die folgenden beiden Bedingungen

Mehr

(2) (x 2 1 + x 2 2 + + x 2 n)(y 2 1 + y 2 2 + + y 2 n) = z 2 1 + z 2 2 + + z 2 n

(2) (x 2 1 + x 2 2 + + x 2 n)(y 2 1 + y 2 2 + + y 2 n) = z 2 1 + z 2 2 + + z 2 n Über die Komposition der quadratischen Formen von beliebig vielen Variablen 1. (Nachrichten von der k. Gesellschaft der Wissenschaften zu Göttingen, Mathematisch-physikalische Klasse, 1898, S. 309 316.)

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren 4: Stromchiffren Zwei Grundbausteine der symmetrischen Kryptographie: Stromchiffren Verschlüsseln beliebig langer Klartexte, interner Zustand Blockchiffren Verschlüsseln von Blocks einer festen Größe,

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

0, v 6 = 2 2. 1, v 4 = 1. 2. span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

0, v 6 = 2 2. 1, v 4 = 1. 2. span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 ) Aufgabe 65. Ganz schön span(n)end. Gegeben sei folgende Menge M von 6 Vektoren v, v,..., v 6 R 4 aus Aufgabe P 6: M = v =, v =, v =, v 4 =, v 5 =, v 6 = Welche der folgenden Aussagen sind wahr? span(v,

Mehr

Grundlagen der Programmierung 2. Parallele Verarbeitung

Grundlagen der Programmierung 2. Parallele Verarbeitung Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

3.3 Eigenwerte und Eigenräume, Diagonalisierung

3.3 Eigenwerte und Eigenräume, Diagonalisierung 3.3 Eigenwerte und Eigenräume, Diagonalisierung Definition und Lemma 3.3.1. Sei V ein K-Vektorraum, φ End K (V ), λ K. Wir defnieren den zu λ gehörigen Eigenraum von φ als Dies ist ein Unterraum von V.

Mehr

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Advanced Encryption Standard Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Vorwort Diese Präsentation erläutert den Algorithmus AES auf einfachste Art. Mit Hilfe des Wissenschaftlichen Rechners

Mehr

Prolog basiert auf Prädikatenlogik

Prolog basiert auf Prädikatenlogik Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:

Mehr

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) Aufgabe 3 Bankkonto Schreiben Sie eine Klasse, die ein Bankkonto realisiert. Attribute für das Bankkonto sind der Name und Vorname des Kontoinhabers,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

17. Penalty- und Barriere-Methoden

17. Penalty- und Barriere-Methoden H.J. Oberle Optimierung SoSe 01 17. Penalty- und Barriere-Methoden Penalty- und Barriere Methoden gehören zu den ältesten Ansätzen zur Lösung allgemeiner restringierter Optimierungsaufgaben. Die grundlegende

Mehr

Formaler Entwurf mit Event-B Die Eventbank

Formaler Entwurf mit Event-B Die Eventbank Institut für Theoretische Informatik Anwendungsorientierte Formale Verifikation Vorlesung Anwendung Formaler Verifikation SS 2015, 9.6.15 Dr. V. Klebanov, Dr. M. Ulbrich Formaler Entwurf mit Event-B Die

Mehr

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Assertions (Zusicherungen)

Assertions (Zusicherungen) April 10, 2005 Oberseminar Software-Entwicklung Inhalt 1. Einführung (Motivation, Tony Hoare, Programmverifikation) 2. Design by Contract (Idee, Eiffel) 3. Praxis: Programming by Contract for Python 4.

Mehr

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

194 Beweis eines Satzes von Tschebyschef. Von P. E RDŐS in Budapest. Für den zuerst von T SCHEBYSCHEF bewiesenen Satz, laut dessen es zwischen einer natürlichen Zahl und ihrer zweifachen stets wenigstens

Mehr

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

ab (a wird gefunden als die Abcisse des Minimums). so erhält man eine

ab (a wird gefunden als die Abcisse des Minimums). so erhält man eine 24 ab (a wird gefunden als die Abcisse des Minimums). so erhält man eine gerade Linie. Die (:~). Kurve (verg I. Fig. 5) ist ein Parabel. Wenn nun d gröszer als a wird. wird die Kurve wieder steigen. Die

Mehr

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4 Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der

Mehr

Kapitel 15: Differentialgleichungen

Kapitel 15: Differentialgleichungen FernUNI Hagen WS 00/03 Kapitel 15: Differentialgleichungen Differentialgleichungen = Gleichungen die Beziehungen zwischen einer Funktion und mindestens einer ihrer Ableitungen herstellen. Kommen bei vielen

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

A.1 Schaltfunktionen und Schaltnetze

A.1 Schaltfunktionen und Schaltnetze Schaltfunktionen und Schaltnetze A. Schaltfunktionen und Schaltnetze 22 Prof. Dr. Rainer Manthey Informatik II Bedeutung des Binärsystems für den Rechneraufbau Seit Beginn der Entwicklung von Computerhardware

Mehr

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Kapitel 7: Formaler Datenbankentwurf

Kapitel 7: Formaler Datenbankentwurf 7. Formaler Datenbankentwurf Seite 1 Kapitel 7: Formaler Datenbankentwurf Die Schwierigkeiten der konzeptuellen Modellierung sind zu einem großen Teil dadurch begründet, dass sich die relevanten Strukturen

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

4 Definition, Analyse und Vergleich von SPS-Zeitautomaten

4 Definition, Analyse und Vergleich von SPS-Zeitautomaten 4 Definition, Analyse und Vergleich von SPS-Zeitautomaten Im folgenden Kapitel wird gezeigt, wie eine Translation Validation für Steuermodelle und -programme mit Zeitbedingungen durchgeführt werden kann.

Mehr

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Teilbarkeit von natürlichen Zahlen

Teilbarkeit von natürlichen Zahlen Teilbarkeit von natürlichen Zahlen Teilbarkeitsregeln: Die Teilbarkeitsregeln beruhen alle darauf, dass man von einer Zahl einen grossen Teil wegschneiden kann, von dem man weiss, dass er sicher durch

Mehr

Optimale Strategien beim Spiel Rot und Schwarz

Optimale Strategien beim Spiel Rot und Schwarz Fachbereich 6-Mathematik Seminar Spieltheorie und Glücksspiele Sommersemester 09 Optimale Strategien beim Spiel Rot und Schwarz Verfasser Tatiana Wandraj 29. August 2009 Betreuer Prof. Dr. Alfred Müller

Mehr

Projektive Moduln. Lemma/Definition 1.1. Folgende Aussagen für einen R-Modul P sind äquivalent: (i) P erfüllt folgende Liftungseigenschaft:

Projektive Moduln. Lemma/Definition 1.1. Folgende Aussagen für einen R-Modul P sind äquivalent: (i) P erfüllt folgende Liftungseigenschaft: Seminar Summen von Quadraten und K-Theorie Projektive Moduln Im Folgenden sei R ein assoziativer Ring mit Eins, nicht notwendigerweise kommutativ. R-Modul ist im Folgenden stets ein Rechts-R-Modul. Ein

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Wintersemester 07/08 Übungsblatt 5 08.01.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1:

Mehr

Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka

Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka Literatur: John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie,

Mehr

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen 4.3.2 Zusammengesetzte Zufallsvariablen Beispiel 48 Ein Würfel werde zweimal geworfen. X bzw. Y bezeichne die Augenzahl im ersten bzw. zweiten Wurf. Sei Z := X + Y die Summe der gewürfelten Augenzahlen.

Mehr

Seminar Analysis Konvexe Funktionen und einige wichtige Ungleichungen

Seminar Analysis Konvexe Funktionen und einige wichtige Ungleichungen Seminar Analysis Konvexe Funktionen und einige wichtige Ungleichungen Michael Schaeer 3.04.03 Abstract This seminar is about convex functions and several imortant ineualities. At the beginning the term

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt:

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt: Informatik 13: Gierhardt Theoretische Informatik III Berechenbarkeit Nicht-berechenbare Funktionen Nach der Church-Turing-These kann alles, was berechenbar ist, mit einer Turing-Maschine oder einer While-Maschine

Mehr

1 Kryptosysteme 1 KRYPTOSYSTEME. Definition 1.1 Eine Kryptosystem (P(A), C(B), K, E, D) besteht aus

1 Kryptosysteme 1 KRYPTOSYSTEME. Definition 1.1 Eine Kryptosystem (P(A), C(B), K, E, D) besteht aus 1 RYPTOSYSTEME 1 ryptosysteme Definition 1.1 Eine ryptosystem (P(A), C(B),, E, D) besteht aus einer Menge P von lartexten (plaintext) über einem lartextalphabet A, einer Menge C von Geheimtexten (ciphertext)

Mehr

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN CHRISTIAN HARTFELDT. Zweiter Mittelwertsatz Der Mittelwertsatz Satz VI.3.4) lässt sich verallgemeinern zu Satz.. Seien f, g : [a, b] R auf [a,

Mehr

RSA Verfahren. Kapitel 7 p. 103

RSA Verfahren. Kapitel 7 p. 103 RSA Verfahren RSA benannt nach den Erfindern Ron Rivest, Adi Shamir und Leonard Adleman war das erste Public-Key Verschlüsselungsverfahren. Sicherheit hängt eng mit der Schwierigkeit zusammen, große Zahlen

Mehr

1. Grundlegende Konzepte der Informatik

1. Grundlegende Konzepte der Informatik 1. Grundlegende Konzepte der Informatik Inhalt Algorithmen Darstellung von Algorithmen mit Programmablaufplänen Beispiele für Algorithmen Aussagenlogik Zahlensysteme Kodierung Peter Sobe 1 Algorithmen

Mehr

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus Zur Erinnerung: Threads Programmierung (fortgeschrittene Konzepte) Threads, Monitore, Semaphore und speisende en Wolf-Ulrich Raffel (uli@wuraffel.de) Möglichkeiten, Threads zu definieren Bildung einer

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben Technische Universität Kaiserslautern Prof Dr Sven O Krumke Dr Sabine Büttner MSc Marco Natale Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben Aufgabe 1 (Konvertieren

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 5 26.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Erläutern

Mehr

Vorlesung. Komplexe Zahlen

Vorlesung. Komplexe Zahlen Vorlesung Komplexe Zahlen Motivation Am Anfang der Entwicklung der komplexen Zahlen stand ein algebraisches Problem: die Bestimmung der Lösung der Gleichung x 2 + 1 = 0. 1 Mit der Lösung dieses Problems

Mehr

Egon Börger (Pisa) S-BPM. Über den praktischen Gewinn. einer wissenschaftlichen Fundierung

Egon Börger (Pisa) S-BPM. Über den praktischen Gewinn. einer wissenschaftlichen Fundierung Egon Börger (Pisa) S-BPM Über den praktischen Gewinn einer wissenschaftlichen Fundierung Dipartimento di Informatica, Università di Pisa, Pisa (Italia) boerger@di.unipi.it Copyright c Egon Börger, Dipartimento

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Bisher angenommen: jeder Spieler kennt alle Teile des Spiels. - Diskontfaktor des Verhandlungspartners

Bisher angenommen: jeder Spieler kennt alle Teile des Spiels. - Diskontfaktor des Verhandlungspartners 1 KAP 15. Spiele unter unvollständiger Information Bisher angenommen: jeder Spieler kennt alle Teile des Spiels seine Gegenspieler, deren Aktionen, deren Nutzen, seinen eigenen Nutzen etc. Oft kennt man

Mehr

Generische Record-Kombinatoren mit statischer Typprüfung

Generische Record-Kombinatoren mit statischer Typprüfung System Generische mit statischer Typprüfung Brandenburgische Technische Universität Cottbus Lehrstuhl Programmiersprachen und Compilerbau Lehrstuhlkolloquium am 13. Januar 2010 Überblick System System

Mehr

Mathematischer Vorkurs für Physiker WS 2009/10

Mathematischer Vorkurs für Physiker WS 2009/10 TU München Prof. Dr. P. Vogl, Dr. S. Schlicht Mathematischer Vorkurs für Physiker WS 2009/10 Vorlesung 1, Montag vormittag Vektoralgebra Ein Vektor lässt sich geometrisch als eine gerichtete Strecke darstellen,

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2013 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Deterministische Kellerautomaten

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Logik & Semantik 7. Vorlesung Prädikatenlogik 1. Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen

Logik & Semantik 7. Vorlesung Prädikatenlogik 1. Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen Logik & Semantik 7. Vorlesung Prädikatenlogik 1 Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen 1 Definition eines logischen Systems: Generelles Schema

Mehr