happy halloween
This commit is contained in:
parent
fc3ffe8449
commit
513bfcc583
@ -372,3 +372,89 @@ Sei $L\subseteq \sum^*$ eine Sprache, dann sind äquivalent
|
||||
- Reguläre Ausdrücke
|
||||
- erlauben kompakte Darstellung in Textform
|
||||
|
||||
## Nicht-Reguläre Sprachen
|
||||
ist vielleicht jede Sprache regulär? Zeige für jede Alphabet $\sum$
|
||||
1. es gibt nur abzählbar unendlich viele Sprachen über $\sum$, die Sprache einer Grammatik sind
|
||||
2. Es gibt überabzählbar viele Sprachen über $\sum$
|
||||
|
||||
> Lemma: Für jedes Alphabet $\sum$ ist die Menge ${L(G) | \text{G Grammatik über} \sum}$ abzählbar unendlich.
|
||||
|
||||
$|P(\sum^*)\cap RE|=|RE|=|\N|$
|
||||
|
||||
> Satz: Für jedes Alphabet $\sum$ ist die Menge $P(\sum^*)={L|L \text{Sprache über} \sum}$ überabzählbar, d.h. es gibt keine bijektive Funktion $F:\N \rightarrow P(\sum^*)$.
|
||||
|
||||
Beweis: Indirekt "Diagonalisierung"
|
||||
|
||||
> Korollar: Für jedes Alphabet $\sum$ existiert eine Sprache L über $\sum$, die von keiner Grammatik G erzeugt wird.
|
||||
|
||||
### Konkrete nicht-reguläre Sprachen
|
||||
Um zu zeigen, dass eine konkrete Sprache L regulär ist, kann man
|
||||
- einen NFA M angeben mit $L(M)=L$, oder
|
||||
- eine rechtslineare Grammatik G angeben mit $L(G)=L$, oder
|
||||
- einen regulären Ausdruck $\gamma$ angeben mit $L(\gamma)=L$, oder
|
||||
- zeigen, dass $L=L_1 \cap L_2$ ist und $L_1$ und $L_2$ regulär sind, oder
|
||||
- ...
|
||||
|
||||
### Pumping Lemma (auswendig lernen!)
|
||||
Wenn L eine reguläre Sprache ist, dann gibt es $n\leq 1$ derart, dass für alle $x\in L$ mit $|x|\geq n$ gilt: es gibt Wörter $u,v,w \in \sum^*$ mit:
|
||||
1. $x=uvw$
|
||||
2. $|uv|\leq n$
|
||||
3. $|v|\geq 1$
|
||||
4. $uv^i w\in L$ für alle $i\geq 0$
|
||||
|
||||
Dieses Lemma spricht nicht über Automaten, sondern nur über die Eigenschaften der Sprache.
|
||||
|
||||
### Myhill-Nerode Äquivalenz
|
||||
[...]
|
||||
|
||||
Der Index $index(R)$ von R ist die Anzahl der Äquivalenzklassen von R.
|
||||
|
||||
> Satz von Myhill-Nerode: Sei L eine Sprache. L ist regulär $\leftrightarrow index(R_L)< \infty$
|
||||
(d.h. nur wenn die Myhill-Nerode-Äquivalenz endliche Klassen hat)
|
||||
|
||||
Beweis:
|
||||
- "$Rightarrow$": Sei L regulär -> es gibt DFA M mit $L(M)=L$;
|
||||
- "$Leftarrow$": sei $index(R_L)< \infty$;
|
||||
|
||||
## Minimalautomat
|
||||
Es gibt bekanntlich sehr verschiedene endliche Beschreibungen einer regulären Sprache. Diese können ineinander übersetzt werden aber eine einzelne Sprache kann auch durch verschiedene DFAs dargestellt werden.
|
||||
|
||||
Gibt es einen "besten DFA" bzw was macht einen Automaten besser? D.h. gibt es einen DFA mit möglichst wenig Zuständen?
|
||||
|
||||
> Definition: Ein DFA M heißt reduziert, wenn es für jeden Zustand $z \in Z$ ein Wort $x_z\in \sum^*$ gibt mit $\hat{\sigma}(l, x_z)=z$
|
||||
|
||||
Wenn in einem DFA M aus Startzustand X und Y dieselben Sprachen akzeptiert werden, heißen diese "erkennungsäquivalent" und werden "verschmolzen" (es entsteht M'). M und M' akzeptieren diesselbe Sprache. Sind keine Zustände mehr erkennungsäquivalent können keine weiteren verschmolzen werden und es gibt keinen DFA der mit weniger Zuständen L(M) akzeptiert
|
||||
|
||||
> Definition: Sei M ein DFA. Zwei Zustände $z,z'\in Z$ heißen erkennungsäquivalent (in Zeichen $z\equiv z'$) wenn für jedes Wort $w\in \sum^*$ gilt: $\hat{\sigma}(z,w)\in E \leftrightarrow \hat{\sigma}(z',w)\in E$
|
||||
|
||||
> Lemma: Sei M ein DFA, $z,z'\in Z$ und $a\in \sum$:
|
||||
> - $\equiv$ ist eine Äquivalenzrelation auf Z
|
||||
> - $z\equiv z'$ impliziert $(z\in E \leftrightarrow z'\in E)$
|
||||
> - $z\equiv z'$ impliziert $\hat{\sigma}(z,a)\equiv \sigma(z',a)$
|
||||
|
||||
> Definition: Sei M ein DFA. Dann ist $M'=(Z\/_{\equiv},\sum, [z_0],\sigma', E')$ mit
|
||||
> - $\sigma'([z],a)=[\sigma (z,a)]$ für $z\in Z$ und $a\in \sum$ und
|
||||
> - $E'=\{[z]|z\in E\}
|
||||
> der Quotient von M bzgl $\equiv$
|
||||
(es wird nicht mehr jeder einzelne Fall betrachtet sondern "ganze Gruppen"; Bsp Sitz->Reihe)
|
||||
|
||||
> Lemma: Ist M ein DFA und M' sein Quotient bzgl. $\equiv$, so ist M' ein DFA mit $L(M)=L(M')$
|
||||
|
||||
Es bleibt zu zeigen, dass $\sigma'$ wohldefiniert ist $\rightarrow z\equiv z' \rightarrow \sigma (z,a)\equiv \sigma (z',a) \rightarrow [\sigma (z,a)]=[\sigma (z',a)]$. Also ist M' tatsächlich ein DFA.
|
||||
|
||||
> Definition: Seien $M_i$ DFAs und $f:Z_1 \rightarrow Z_2$ eine Funktion. Dann ist f ein Homomorphismus von $M_1$ auf $M_2$, falls gilt:
|
||||
> - $f(l_1)=l_2$
|
||||
> - $f(\sigma_1(z,a))=\sigma_2(f(z),a)$ für alle $z\in Z_1$ und $a\in \sum$
|
||||
> - $z\in E_1 \leftrightarrow f(z)\in E_2$ für alle $z\in Z_1$ (bildet Endzustände aufeinander ab)
|
||||
|
||||
> Satz: Seien $M_i$ reduzierte DFAs mit $L(M_1)=L(M_2)$. Sei weiter $M_2'$ der Quotient von $M_2$ bzgl $\equiv$. Dann existiert ein surjektiver Homomorphismus von $M_1$ auf $M_2'$
|
||||
|
||||
- die Abbildung f ist surjektiv (auf $M_2$). Und damit ist $M_2 < M_1$
|
||||
- die Abbildung f ist ein Homomorphismus
|
||||
|
||||
> Satz: Seien $M_1$ und $M_2$ reduzierte DFAs mit $L(M_1)=L(M_2)$. Sei $M_1'$ der Quotient von M bzgl $\equiv$
|
||||
> - $M_2$ hat wenigstens so viele Zustände wie $M_1'$
|
||||
> - Hat $M_2$ genauso viele Zustände wie $M_1'$, so sind $M_2$ und $M_1'$ bis auf Umbennenung der Zustände identisch (sie sind Isomorph)
|
||||
|
||||
> Folgerung: Seien $M_1$ und $M_2$ reduzierte DFAs mit $L(M_1)=L(M_2)$. Seien $M_1'$ und $M_2'$ die Quotienten bzgl $\equiv$. Dann sind $M_1'$ und $M_2'$ isomorph, d.h. für jede reguläre Sprache gibt es (bis auf Umbenennung der Zustände) genau einen minimalen DFA
|
||||
|
||||
|
@ -4,3 +4,123 @@ date: Wintersemester 20/21
|
||||
author: Robert Jeutter
|
||||
---
|
||||
|
||||
> Software: Menge von Programmen oder Daten zusammen mit begleitenden Dokumenten, die für Ihre Anwendung notwendig oder hilfreich sind [Hesse]
|
||||
|
||||
Gute Software ist schwer herzustellen
|
||||
- Entspricht Kundenwünsche, Vollständigkeit
|
||||
- Funktioniert Korrekt
|
||||
- Kosten- und Termintreue bei der Erstellung
|
||||
- weitere nicht-funktionale Qualitätsforderungen
|
||||
- Benutzerfreundlichkeit, Ergonomie
|
||||
- Sicherheit
|
||||
- Zuverlässigkeit, Fehlertoleranz
|
||||
- Performanz
|
||||
- Ressourcen-Effizienz, Skalierbarkeit, Übertragbarkeit
|
||||
- Wartbarkeit, Änder- und Erweiterbarkeit
|
||||
|
||||
Softwaretechnik
|
||||
- Technische Disziplin der Software Herstellung
|
||||
- Zielorientierte Bereitstellung uns systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen [Balzert]
|
||||
|
||||
Wie kann man Software besser entwickeln?
|
||||
- Ingenieursmäßige Herangehensweise
|
||||
- Verwendung bekannter Prinzipien und Methoden
|
||||
- Systematische Vorgehensweise
|
||||
- Verwendung von:
|
||||
- Abstraktion, Modelle, Notation, Simulation
|
||||
- Wiederverwendung:Muster, Komponenten, Framework
|
||||
- Organisation
|
||||
- Arbeitsteilung, Integration, Planung
|
||||
- Verwendung von Werkzeugen
|
||||
- IDE (Integrated Development Environment)
|
||||
- Versionierung, Bugtracker, Modellierungswerkzeug
|
||||
|
||||
# Modellierungskonzepte
|
||||
> Modell: ist eine Abstraktion eines Systems mit der Zielsetzung, das Nachdenken über ein System zu vereinfachen, indem irrelevante Details ausgelassen werden [Brügge]
|
||||
$\rightarrow$ Beschreibung eines Ausschnitts der Realität
|
||||
|
||||
- erstellen einer Abstraktion
|
||||
- abbilden signifikanter Eigenschaften
|
||||
- Deskriptiv/präskriptiv (real oder geplant)
|
||||
- Sichtweise auf ein System (Struktur, Verhalten, Zustand,...)
|
||||
- heißt Weglassen
|
||||
- setzt Verstehen voraus
|
||||
- ist nicht automatisierbar
|
||||
|
||||
Verschiedene Modelle:
|
||||
- Analysemodell
|
||||
- Entwurfsmodell
|
||||
- Implementierung (-smodell)
|
||||
- Vorgehensmodell
|
||||
- Produktmodell
|
||||
- Dokumentation, Alternativen-Auswahl
|
||||
|
||||
Modelle für:
|
||||
- Sichten
|
||||
- Funktionen
|
||||
- Daten
|
||||
- Algorithmen
|
||||
- Systemumgebung
|
||||
- Dynamisches Verhalten
|
||||
- Objektorientierte Modelle
|
||||
|
||||
## Klassische Modelle
|
||||
- Funktionen:
|
||||
- Funktionsbaum
|
||||
- Hierarchische Dekomosition der Fkt
|
||||
- nummerieren der Ebenen/Funktionen möglich
|
||||
- Bsp: Abonnement Verwaltung
|
||||
- Blockschaltbild
|
||||
- eingebettetes System, HW/SW
|
||||
- Daten
|
||||
- Data Dictionary
|
||||
- Verzeichnis von Daten mit Strukturinformationen
|
||||
- Backus-Naur-Form, kontextfreie Grammatik
|
||||
- Entity Relationship Diagram
|
||||
- Daten und ihre Beziehungen
|
||||
- Systemumgebung
|
||||
- Datenflussdiagramm
|
||||
- Fluss und Transformation von Daten zwischen Funktionen, Speichern und Schnittstellen
|
||||
- kein Kontrollfluss
|
||||
- Algorithmen
|
||||
- Entscheidungstabelle
|
||||
- Regelbasierte Beschreibung
|
||||
- Bedingung
|
||||
- Aktionen
|
||||
- Reduktionsregeln
|
||||
- Pseudocode
|
||||
- von Programmiersprache abstrahierende, detaillierte Beschreibung eines Algorithmus
|
||||
- Programmablaufplan
|
||||
- Grafische Beschreibung des Kontrollflusses
|
||||
- DIN 66001
|
||||
- Unstrukturiert
|
||||
- Struktogramm
|
||||
- Nassi-Shneidermann-Diagramm
|
||||
- keine Sprünge
|
||||
- Dynamisches Verhalten (diskrete Zustände und atomare zustandübergänge)
|
||||
- Zustandsautomat
|
||||
- Verhalten mit Zuständen und -übergängen
|
||||
- Automatenmodelle und -theorie
|
||||
- Ggf zerlegung oder kommunizierende Automaten
|
||||
- Flow-Chart
|
||||
- Ereignisgesteuerte Prozesskette (EPK)
|
||||
- Geschäftsprozesse
|
||||
- BPM
|
||||
- Petri-Netz (ggf. mit Zeitmodell)
|
||||
- Grafische Beschreibung von Nebenläufigkeit und Synchronisation
|
||||
- Objektorientierte Modelle
|
||||
- Klassendiagramme
|
||||
- UML
|
||||
|
||||
|
||||
## Objektorientierung
|
||||
- bessere Strukturierung für komplexe Zusammenhänge
|
||||
- Abstraktere Sichtweise
|
||||
- Objekt hat
|
||||
- definiertes Verhalten
|
||||
- inneren Zustand
|
||||
- eindeutige Identität
|
||||
- Klasse: gleichartige Objekte mit ggf versch Zu
|
||||
|
||||
## Unified Modeling Language
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user