Menu Close

Diskrete Strukturen (Vorlesung 3)

In der heutigen Vorlesung beschäftigen wir uns mit der Bestimmung von k-Teilmengen und dem Revolving Door Algorithmus.

Skript-AnfangSkript – Seite 19
Skript-EndeSkript – Seite 23

k-Teilmengen

Fragestellungen

Wie viele k-Teilmengen gibt es?

Die Berechnung kann mittels Binomialkoffizient durchgeführt werden.

\( \binom{n}{k} = \frac{n!}{k!*(n-k)!} \)

Beispiel

Gesucht sind die 3-Teilmengen von V={0,1,2,3}.

\(\binom{4}{3} = \frac{4!}{3!*(4-3)!} = \frac{24}{3!*1!} = \frac{24}{6} = 4 \)

Beispiel

Welche k-Teilmengen gibt es in der Teilmenge V?

\( \binom{V}{3} = \begin{matrix}\{0,1,2\} \ \{0,1,3\} \ \{0,2,3\} \ \{1,2,3\} \end{matrix} \)

Das Verfahren zu deren Bestimmung wird in den nächsten Abschnitten näher erläutert.

Pascalsche Identität

Was ist die Pascalsche Identität?

Eine Eigenschaften der Binomialkoeffizienten, die später zur rekursiven Erzeugung genutzt werden kann. Weiterhin ist sie die Basis für eine geometrische Anordnung der Binomialkoeffizienten in Form eines Dreiecks.

\( \binom{n}{k} = \binom{n-1}{k} + \binom{n-1}{k-1} \)

Randbedingungen für die Rekursion

Abbruch der Rekursion, wenn \( \binom{n}{n} = 1 = \binom{n}{0} \)

Wie lässt sich die k-Teilmenge mit dem Pascalschen Dreieck bestimmen?

Systematische Erzeugung

Bestimmung der Teilmengen von V mit k- Elementen

\( \binom{V}{k} = \{ S\subseteq \left | S \right | =k \} \)

Entnimmt man der Teilmenge V = {0,1,…,n-1} das Element n-1, so ergibt sich die neue Teilmenge Teilmenge V‘ = {0,1,…,n-2}. Die Anzahl der Elemente ändert sich dabei wie folgt.

\( \ |V| = n \ |V’| = n-1 \ \left | \binom{V}{k} \right | = \binom{n}{k} \)

Partitionierung der Mengen

\( \binom{V}{k} = \binom{V‘}{k} \cup \left \{ S \cup \left \{ n-1 \right \} \mid S \in \binom{V‘}{k-1} \right \} \)

k-Teilmengen von V, die nicht das Element n-1 enthalten: \( \binom{V‘}{k}\)

k-Teilmengen von V, die das Element n-1 enthalten: \( S \cup \left \{ n-1 \right \} \)

Teilmengen von 0 bis n-2 = {0,…,n-2} = \( \left\{\begin {matrix}\Gamma = S^{(0)},…,S^{(l-1)}\ \Omega= T^{(0)},…,T^{(m-1)} \end{matrix}\right.\)

Operationen auf Mengen

Zusammenfügen: \( \Gamma \mid \Omega := S^{(0)},…,S^{(l-1)} \mid T^{(0)},…,T^{(l-1)} \)

Umdrehen: \( \Gamma^{R}=S^{(l-1)},…,S^{(0)} \)

Erweitern: \( \Gamma^{E} = S^{(0)}\cup \left \{ n-1 \right \},…,S^{(l-1)} \cup \left \{ n-1 \right \} \)

Systematische Erzeugung aller k- Teilmengen

Folge Aller k-Teilmengen von {0,1,…,n-1}: \( \Omega_{n,k} \)

\( \ \Omega_{n,n} = \{0,1,…,n-1\} \ \Omega_{n,0} = \emptyset \ \Omega_{n,k} = \Omega_{n-1,k} \mid \Omega^{E}_{n-1,k-1} \)

Beispiel

\( \ \Omega_{1,0} = \emptyset \ \Omega_{1,1} = \{0 \}\ \Omega_{2,1} = \Omega_{1,1} \mid \Omega^{E}_{1,0} = \{0\},\mid \{1\} \ \Omega_{3,1} = \Omega_{2,1} \mid \Omega^{E}_{2,0} = \{0\},\{1\}, \mid\{2\} \ \Omega_{3,2} = \Omega_{2,2} \mid \Omega^{E}_{2,1} = \{0,1\},\mid \{0,2\},\{1,2\} \ \Omega_{4,2} = \Omega_{3,2} \mid \Omega^{E}_{3,1} = \{0,1\}, \{0,2\},\{1,2\},\mid \{0,3\},\{1,3\},\{2,3\} \ \)

Wie lässt sich dies auf Vektoren übertragen?

\( \ \Delta_{n,n} = 1^{n} = 111..111 \text{ (entspricht n- Einsen)} \ \Delta_{n,0} = 0^{n} = 000..000\text{ (entspricht n-Nullen)} \ \Delta_{n,k} = \Delta_{n-1,k}0 \mid \Delta_{n-1,k-1} 1 \)

\( \Delta_{n-1,k} \) ist ein Element kürzer als \( \Delta_ {n,k} \), weshalb man eine Null dran hängt.

Beispiel

\( \begin{align} \Delta_{4,2} &= \Delta_{3,2}0 \mid \Delta_{3,1}1\ &=1100,1010,0110,\mid 1001,0101,0011 \end{align} \)

Wie lässt sich die Folge optimieren?

Mit Hilfe von Gray Code lässt sich eine Folge mit minimaler Änderung erzeugen.

\( \ \Gamma_{n,n} = 1^n \ \Gamma_{n,0} = 0^n \)

\( \Gamma_{n,k} = \Gamma_{n-1,k}0 \mid \Gamma^{R}_{n-1,k-1}1 \ \) ist eine Folge mit minimaler Änderung.

Wie lässt sich beweisen, dass dies wirklich eine Folge mit minimaler Änderung ist?

Mit Hilfe von Induktion ist ein solcher Nachweis möglich.

Annahme

\( \Gamma_{n-1,k} \) ist eine Folge mit minimaler Änderung, dann hat \( \Gamma_{n-1,k}0 \) ebenfalls nur eine minimale Änderung. Daraus folgt, dass \( \Gamma_{n-1,k-1} \) und wiederum \( \Gamma^{R}_{n-1,k-1} \) und \( \Gamma^{R}_{n- 1,k-1}1 \) ebenfalls nur eine minimale Änderung haben. Es muss folglich nur der Übergang geprüft werden.

Übergang

\( \ \text{Erstes Element: } \Gamma_{n,k} = 1^{k}0^{n-k} \ \text{Letztes Element: } \Gamma_{n,k} \ \hat{=} \text{ erstes Element von } \Gamma_{n-1,k-1}1 \ \hat{=} 1^{k-1}0^{(n-1) – (k-1)}1 \)

Randnotiz

\( \Gamma^{R}_{n-1,k-1}1 = (\Gamma_{n-1,k-1}1)^{R} \)

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Index