Multimenge

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Multimenge ist ein Begriff, der den Mengenbegriff aus der Mengenlehre variiert. Die Besonderheit von Multimengen gegenüber dem gewöhnlichen Mengenbegriff besteht darin, dass die Elemente einer Multimenge mehrfach vorkommen können. Dementsprechend haben auch die für Multimengen verwendeten Mengenoperationen eine modifizierte Bedeutung.

In der Informatik stellen Multimengen (dort auch engl. Bag genannt) eine nützliche Datenstruktur dar. Beispielsweise behandelt die Datenbanksprache SQL Tabellen standardmäßig als Multimengen.

Definition[Bearbeiten]

Eine Multimenge M über einer Menge A ist eine Abbildung von A in die Menge der natürlichen Zahlen \N_0. Die Zahl M(x), x \in A gibt an, wie oft das Element x in der Multimenge M vorkommt. Die Menge aller Multimengen über A kann als \N_0^A geschrieben werden. Im weiteren wird jedoch, um vertikalen Platz zu sparen, \operatorname{MS}(A) verwendet.

Reduzierte Grundmenge[Bearbeiten]

Die reduzierte Grundmenge (engl. „support“) einer Multimenge M über A ist die Menge \operatorname{supp}(M) der relevanten Elemente von A, in Formeln:

\operatorname{supp}(M) := \left\{x \in A \mid M(x) > 0 \right\}.

Teilmultimenge[Bearbeiten]

Eine Multimenge M heißt Teil(multi)menge einer Multimenge N, wenn jedes Element der reduzierten Grundmenge von M in N mindestens so häufig vorkommt wie in M. Formal:

M \subseteq N \quad \Longleftrightarrow \quad \forall x\in\operatorname{supp}(M): M(x) \leq N(x).

Zwei Multimengen M und N sind gleich, wenn ihre reduzierten Grundmengen gleich sind und die Vielfachheiten übereinstimmen. Sie sind dann auch in beiden Richtungen Teilmultimengen voneinander.

Bemerkung[Bearbeiten]

Obige Definition mit Zulassung des (eigentlich irrelevanten) 0-Wertes ist eine Verallgemeinerung der Indikatorfunktion bei den gewöhnlichen Mengen. Sie ermöglicht die Bereitstellung eines „Universums“ als Grundmenge, auf welches alle fraglichen Multimengen bezogen werden, und vereinfacht in der Folge Handhabung und Vergleich.

Anschauung[Bearbeiten]

Anschaulich ist eine Multimenge eine Menge, in der jedes Element beliebig oft vorkommen kann. Mengen sind in diesem Sinne ein Spezialfall von Multimengen, bei denen jeder Wert nur genau einmal vorkommt.

Notation[Bearbeiten]

Man notiert Multimengen dann auch wie Mengen explizit mit geschweiften Klammern und schreibt ein Element so oft hinein, wie es in der Multimenge vorkommt. Um Multimengen von normalen Mengen zu unterscheiden, wird bei ihrer Aufzählung gelegentlich auch ein kleines _b (für engl. bag) als Index angefügt. Einige Autoren benutzen stattdessen modifizierte Klammern: \{\!\vert \;\;\; \vert\!\}.[1]

Halb-abstraktes Beispiel[Bearbeiten]

Es sei M die Multimenge über \{a,b,c\} mit M(a)=1, M(b)=3 und M(c)=0. Dann schreibt man also M=\lbrace a,b,b,b \rbrace oder M=\lbrace a,b,b,b \rbrace _b oder M=\{\!\vert a,b,b,b \vert\!\}.

Anschauliche Beispiele[Bearbeiten]

Man nehme einen Würfel und würfele 20-mal hintereinander. Dann kann es sein, dass man

3 mal eine 1
2 mal eine 2
4 mal eine 3
5 mal eine 4
3 mal eine 5 und
3 mal eine 6

geworfen hat. Die Grundmenge ist dann \{1,2,3,4,5,6\}; die Vielfachheit der 3 ist 4; also M(3)=4. Die Multimenge listet jeden Wurf auf, wobei die Reihenfolge außer Acht gelassen wird:

M=\{1,1,1,2,2,3,3,3,3,4,4,4,4,4,5,5,5,6,6,6\}.

Ein anderes Beispiel ist etwa die Primfaktorzerlegung von 120:

120=2^33^15^1

Sie lässt sich als Multimenge \{2, 2, 2, 3, 5\} interpretieren.

Anzahl der möglichen Multimengen[Bearbeiten]

Gegeben sei eine Menge A mit n Elementen. Die Anzahl der Multimengen über A, die k Elemente enthalten, wird dann (analog zu den Binomialkoeffizienten \tbinom nk) als

\left(\!\!{n\choose k}\!\!\right)

bezeichnet. Er lässt sich gut als Binomialkoeffizient ausdrücken:

\left(\!\!{n\choose k}\!\!\right) = {n + k - 1 \choose k}={n+k-1 \choose n-1}={n(n+1)(n+2)\cdots(n+k-1)\over k!(n-1)!}

Dies gibt die Anzahl der möglichen Ausgänge beim Ziehen von unterscheidbaren Kugeln aus einer Urne an, wenn die Reihenfolge nicht beachtet wird und jede gezogene Kugel wieder in die Urne zurückgelegt wird, nachdem sie gezogen wurde (siehe Kombination mit Wiederholung).

Beispiel[Bearbeiten]

Werden aus einer Urne mit 5 Kugeln nacheinander 10 gezogen, wobei jede gezogene Kugel wieder zurückgelegt wird, so gibt es

\left(\!\!{5\choose 10}\!\!\right)= {5 + 10 - 1 \choose 10} = 1001

mögliche Kombinationen, wenn die Reihenfolge der gezogenen Kugeln nicht beachtet wird.

Operationen auf Multimengen[Bearbeiten]

Eine Multimenge über Multimengen über A kann unter Beachtung der Vielfachheiten vereinigt werden. Dies leistet \mu\colon\operatorname{MS}(\operatorname{MS}(A))\to\operatorname{MS}(A), mit

\mu(M)(a) = \sum_{N \in supp(M)}M(N) \cdot N(a).

Eine Funktion f\colon A\to B kann erweitert werden zu einer Funktion \operatorname{MS}(f)\colon\operatorname{MS}(A)\to\operatorname{MS}(B), wobei

\operatorname{MS}(f)(M)(b)=\sum_{a\in f^{-1}(b)} M(a).

Zusammen mit \eta\colon A\to\operatorname{MS}(A) mit

 \eta(a)(a') = \begin{cases}1 & a=a'\\0&\text{sonst}\end{cases}

haben wir es mit einer Monadenstruktur zu tun.

Der Funktor \operatorname{MS} sowie \mu lassen sich auch auf eine andere nützliche Operation zurückführen. \operatorname{lift} erweitert eine Funktion f\colon A\to\operatorname{MS}(B) zu einer Funktion \operatorname{lift}(f)\colon\operatorname{MS}(A)\to\operatorname{MS}(B), und zwar durch

\operatorname{lift}(f)(M)(b) = \sum_{a \in supp(M)}M(a) \cdot f(a)(b).

Mit Hilfe dieser Operation kann \mu = \operatorname{lift}(\operatorname{id}) und \operatorname{MS}(f) = \operatorname{lift}(\eta\circ f) gesetzt werden.

Vereinigung, Durchschnitt und Differenz[Bearbeiten]

Die (große) Vereinigung zweier Multimengen über derselben Grundmenge A kann entweder direkt als

(M\uplus N)(a) = M(a)+N(a),

oder mittels \mu

M\uplus N = \mu(\{M, N\}_b)

angegeben werden.

Als kleine Vereinigung zweier Multimengen wird die kleinste Multimenge

(M\cup N)(a) = \operatorname{max}(M(a), N(a)),

die beide umfasst, angesehen.

Der Durchschnitt zweier Multimengen über derselben Grundmenge A ist anwendungsspezifisch. Es gibt

  1. (M\cap N)(a) = \operatorname{min}(M(a), N(a)), sowie
  2. (M\cap N)(a) = M(a)\cdot N(a).

Die zweite Definition lässt sich auf obiges \operatorname{lift} zurückführen, wenn zusätzlich eine weitere Operation eingeführt wird. Sei f\colon A\times B\to\operatorname{MS}(C), dann ist \operatorname{lift}_2(f)\colon\operatorname{MS}(A)\times\operatorname{MS}(B)\to\operatorname{MS}(C) definiert durch

\operatorname{lift}_2(f)(M, N) = \operatorname{lift}(a\mapsto\operatorname{lift}(b\mapsto f(a,b))(N))(M).

Der Durchschnitt im zweiten Sinne ergibt sich dann als M\cap N=\operatorname{lift}_2(h)(M,N) mit

h(a,a') = \begin{cases}\{a\}_b&a=a'\\\empty&\text{sonst}.\end{cases}

Für die Differenz zweier Multimengen über derselben Grundmenge A gibt es ebenfalls mindestens zwei sinnvolle Definitionen.

  1. (M\setminus N)(a) = \begin{cases}0&M(a) < N(a)\\M(a)-N(a)&\text{sonst}\end{cases}
  2. (M\setminus N)(a) = \begin{cases}0&N(a)\neq 0\\M(a)&\text{sonst}.\end{cases}

Für beide gilt X\setminus\empty = X und X\setminus X=\empty. Welche die "richtige" ist, hängt vom Anwendungsfall ab.

Bemerkung:
Seien M,N Multimengen über den Primzahlen. Mit m:=\Pi M und n:=\Pi N als ausmultiplizierten Multimengen haben wir:

  • Die große Vereinigung entspricht dem Produkt m \cdot n.
  • Die kleine Vereinigung entspricht dem kgV, d. h. \operatorname{kgV}(m,n)=\Pi {M\cup N}.
  • Die erste Version des Durchschnitts entspricht dem ggT, d. h. \operatorname{ggT}(m,n)=\Pi {M\cap N}.
  • Die erste Version der Differenz entspricht m/\operatorname{ggT}(m,n).

Verallgemeinerungen[Bearbeiten]

Behält man die im vorangegangenen Abschnitt definierten Operationen bei, erhält man durch Variation der Vielfachheitenmenge verwandte Strukturen.

  • Reelle Vielfachheiten im Intervall [0,1] ergeben Wahrscheinlichkeitsverteilungen. Die Multimengen-Grundmenge wird zur Menge möglicher Ereignisse. Die \operatorname{lift}-Operation rechnet Funktionen, die auf der Basis von eingetretenen Ereignissen Wahrscheinlichkeitsverteilungen anderer Ereignismengen erzeugen, in solche um, die mit Wahrscheinlichkeitsverteilungen als Eingabe umgehen können.
  • Lässt man für die Vielfachheiten Körperelemente zu und definiert zusätzlich eine Skalierung, werden Multimengen über A zu Vektoren eines Vektorraums mit einer Basis, die durch A indiziert wird. \operatorname{lift} verkörpert dabei die Tatsache, dass es für die Festlegung einer linearen Abbildung ausreicht, die Bilder der Basisvektoren festzulegen. Auf ähnliche Weise rechnet \operatorname{lift}_2 Funktionen auf Basisindexpaaren in bilineare Abbildungen um.

Literatur[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Christian S. Calude, Gheorghe Păun, Grzegorz Rozenberg, Arto Salomaa, Multiset Processing: Mathematical, Computer Science, and Molecular Computing Points of View Springer Verlag 2001, ISBN 3-540-43063-6 S. 105