update
This commit is contained in:
parent
8c1179ad2e
commit
7c4b1939bd
BIN
Writerside/images/image_678.png
Normal file
BIN
Writerside/images/image_678.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
BIN
Writerside/images/image_679.png
Normal file
BIN
Writerside/images/image_679.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@ -100,6 +100,7 @@
|
||||
</toc-element>
|
||||
<toc-element toc-title="Theoretische Informatik">
|
||||
<toc-element topic="01Einleitung.md"/>
|
||||
<toc-element topic="02_GrundlagenFormaleSprachen.md"/>
|
||||
</toc-element>
|
||||
|
||||
</toc-element>
|
||||
|
@ -0,0 +1,86 @@
|
||||
# Grundlagen formaler Sprachen
|
||||
## Von einer Problembeschreibung zur Codierung
|
||||
|
||||
**Erinnerung k-Clique**
|
||||
- Eingabe: Graph $V = (V, E)$ und $k ∈ Ν$
|
||||
- Ausgabe: Gibt es eine Clique C der Größe k in G
|
||||
|
||||
> Wie erhält ein Algorithms diese Eingabe (Graph)
|
||||
>
|
||||
> Wie teilt der Algorithmus die Ausgabe (Ja/Nein) mit?
|
||||
|
||||
### Beispiel: Codierung eines gerichteten Graphen
|
||||
- Graph sei über Adjazenzlisten gegeben
|
||||
- Wir Codieren den Graphen als Bitstring
|
||||
|
||||
**Mögliche Codierung eines Graphen**
|
||||

|
||||
|
||||
- andere Codierungen oder auch anderes Alphabet denkbar
|
||||
- geht auch für gerichtete Graphen (z.B. für k-Clique)
|
||||
|
||||
|
||||
## Grundbegriffe
|
||||
### Alphabete und Zeichenketten
|
||||
> Alphabet Σ: endliche Menge von Zeichen
|
||||
>
|
||||
> Zeichenkette s über Alphabet Σ: endliche Zeichenfolge aus Σ
|
||||
|
||||
- die leere Zeichenkette bezeichnen wir als ε
|
||||
- $s_1 * s_2$ ist die **Konkatenation** (_Verkettung_) zweier Zeichenketten $s_1$ und $s_2$
|
||||
|
||||
- $Σ^*$: Menge aller (auch leerer) Zeichenketten über Σ
|
||||
- $Σ^+$: Menge aller nicht-leerer Zeichenketten über Σ
|
||||
|
||||
#### Beispiel Alphabete und Zeichenketten
|
||||
Sei $Σ=\{a,b,c\}$
|
||||
- Alle Zeichenketten der Länge 2 über Σ:
|
||||
- {$aa$, $ab$, $ac$, $ba$, $bb$, $bc$, $ca$, $cb$, $cc$}
|
||||
- $s_1 = ababc ∈ Σ^*$ und $s_2 = cbbb ∈ Σ^*$
|
||||
- für $s = ababccbbb$ gilt $s = s_1 * s_2 ∈ Σ^*$
|
||||
|
||||
|
||||
### Präfixe, Suffixe und Teilzeichenketten
|
||||
> Sei s ∈ $Σ^*$ eine Zeichenkette über Σ.
|
||||
>
|
||||
>
|
||||
> Suffix u von s: $∃s' in Σ^*$ so dass $s = s' * u$
|
||||
>
|
||||
> Präfix u von s: $∃s'' ∈ E^*$ so dass $s = u * s''$
|
||||
>
|
||||
> Teilzeichenkette u von s: $∃s',s'' ∈ E^*$ so dass $s = s' * u * s''$
|
||||
|
||||
- $|s|$: Länge der Zeichenkette s
|
||||
- $\#_a(s)$: Häufigkeit des Zeichens $a ∈ Σ$ in Zeichenkette $s ∈ Σ^*$
|
||||
|
||||
#### Beispiel Präfixe, Suffixe und Teilzeichenketten
|
||||
Sei $Σ = \{0,1\}$ und $s = 101011110$.
|
||||
- Wieviele Präfixe hat s?
|
||||
- 8
|
||||
- Wie viele Zeilzeichenketten der Länge 3 hat s?
|
||||
- 3?
|
||||
- **kompaktere Notation**: $s:s = 101011110 = (10)^21^40$
|
||||
|
||||
## Sprachen und das Wortproblem
|
||||
> im Folgenden sei immer Σ das zugrunde liegende Alphabet
|
||||
|
||||
**Definition**:
|
||||
> formale Sprache L über Σ: eine Teilmenge von $Σ^*$
|
||||
>
|
||||
> Wort w aus L: ein Element $w ∈ L$
|
||||
|
||||
- L kann unendliche ($|l| = ∞$) oder endliche ($|L| = k ∈ Ν$) sein
|
||||
|
||||
**Beispiel**
|
||||
- Σ = {0,1,...,9}
|
||||
- Beschreibe die Worte aus $L=\{007*s | s ∈ Σ^*\}$.
|
||||
- $(007)^1\{0,1,...,9\}^*$ **?**
|
||||
- Wie viele Wörter enthält $L=\{s ∈ \{0,1,2\}^* | |s| ≤ 5\}$?
|
||||
- $ \sum_{n=0}^{5} 5^n$ **?**
|
||||
|
||||
### Algorithmisches Problem für formale Sprachen
|
||||
- L sei eine beliebige Sprache über Σ
|
||||
- 
|
||||
- es handelt sich also um ein Entscheidungsproblem
|
||||
- wir geben typischerweise $1$ aus, wenn $s ∈ L$ und sonst $0$
|
||||
|
Loading…
x
Reference in New Issue
Block a user