# Multimenge

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. Multiset oder Bag genannt) eine nützliche Datenstruktur dar. Beispielsweise behandelt die Datenbanksprache SQL Tabellen standardmäßig als Multimengen.

## Definition

Eine Multimenge $M$ über einer Menge $A$ ist eine Abbildung von $A$ in die Menge der natürlichen Zahlen $\mathbb {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 $\mathbb {N} _{0}^{A}$ geschrieben werden. Im Weiteren wird jedoch, um vertikalen Platz zu sparen, $\operatorname {MS} (A)$ verwendet.

### Reduzierte Grundmenge

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

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

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

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 jedes Element nur genau einmal vorkommt.

## Notation

Man notiert Multimengen 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 \!\}$.

## Halb-abstraktes Beispiel

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

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^{3}3^{1}5^{1}$
Sie lässt sich als Multimenge $\{2,2,2,3,5\}$ interpretieren.

## Anzahl der möglichen Multimengen

Die Anzahl der $k$-elementigen Multimengen über einer $n$-elementigen Menge $A$ wird (analog zu den Binomialkoeffizienten) als $\left(\!\!{\tbinom {n}{k}}\!\!\right)$ bezeichnet. Dies lässt sich gut als Binomialkoeffizient ausdrücken:
    $\left(\!\!{\dbinom {n}{k}}\!\!\right)={\dbinom {k+n-1}{k}}={\dbinom {k+n-1}{n-1}}={\frac {n(n+1)(n+2)\cdots (n+k-1)}{k!}},$
solange $k\geq 0$ und $n\geq 1$. Falls $k=n=0$, so ist die kombinatorische Größe sinnvoll definiert als $1$. In allen anderen Fällen ist sie gleich $0$.
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

Werden aus einer Urne mit 5 Kugeln nacheinander 10 gezogen, wobei jede gezogene Kugel wieder zurückgelegt wird, so gibt es
    $\left(\!\!{\dbinom {5}{10}}\!\!\right)={\dbinom {10+5-1}{10}}=1001$
mögliche Kombinationen, wenn die Reihenfolge der gezogenen Kugeln nicht beachtet wird.

### Variante: Multimengen mit mindestens einem Vorkommen von jedem Elementtypen

Bezeichne mit $\left(\!\!{\tbinom {n}{k}}\!\!\right)^{+}$ die Anzahl der möglichen Multimengen über einer $n$-elementigen Menge $A$, sodass jeder Elementtyp $x\in A$ mindestens $1$-mal vorkommt. Dann ist es leicht zu sehen, dass es sich, sobald die insgesamt $n$ obligatorischen Vorkommnisse von den $k$ Multimengenobjekten entfernt sind, um eine kombinatorische Aufzählung der ersten Art handelt. Genauer gesagt:
    $\left(\!\!{\dbinom {n}{k}}\!\!\right)^{+}=\left(\!\!{\dbinom {n}{k-n}}\!\!\right).$
Gemäß der o. s. Information gilt näher
    $\left(\!\!{\dbinom {n}{k}}\!\!\right)^{+}={\dbinom {k-1}{n-1}}$
solange $k\geq n>0$. Falls $k=n=0$, so ist die kombinatorische Größe sinnvoll definiert als $1$. In allen anderen Fällen ist sie gleich $0$.

### Variante: Multimengen mit Kapazitätsbeschränkungen

Bezeichne mit $\left(\!\!{\tbinom {n}{k}}\!\!\right)_{<c}$ bzw. $\left(\!\!{\tbinom {n}{k}}\!\!\right)_{\leq c}^{+}$ die Anzahl der möglichen Multimengen über einer $n$-elementigen Menge $A$, so dass jeder Elementtyp $x\in A$ zwischen $0$ und $c-1$ Mal (bzw. zwischen $1$ und $c$ Mal) vorkommt. Dies wird regelmäßige Kombination genannt. Mittels kombinatorischer Argumente erhält man die geschlossenen Form:
    $\left(\!\!{\tbinom {n}{k}}\!\!\right)_{<c}=\sum _{r=0}^{n}(-1)^{r}{\tbinom {n}{r}}\left(\!\!{\tbinom {n}{k-rc}}\!\!\right)$
und analog für die $^{+}$-Variante. Zur Herleitung dieser kombinatorischen Größe betrachte man die Mengen
    $S=\{M~{\text{Multimenge aus}}~\{0,1,\ldots ,n-1\}\mid \Sigma_{x}M(x)=k\};$
    $S_{c}=\{M\in S\mid \forall {x:}\,M(x)<c\};\quad S_{c}(x)=\{M\in S\mid M(x)\geq c\},~x\in \{0,1,\ldots ,n-1\}.$
und erkennt sofort, dass $|S_{c}|=\left(\!\!{\tbinom {n}{k}}\!\!\right)_{<c}$ und $|S|=\left(\!\!{\tbinom {n}{k}}\!\!\right)$. Man sieht, dass $S_{c}=\bigcap_{x\in \{0,1,\ldots ,n-1\}}S\setminus S_{c}(x)$, sodass $|S_{c}|=|S|-|\bigcup_{x\in \{1,2,\ldots ,n\}}S_{c}(x)|$. Mittels einer Bijektionskonstruktion beweist man außerdem, dass $|\bigcap_{x\in I}S_{c}(x)|=\left(\!\!{\tbinom {n}{k-rc}}\!\!\right)$ für alle $I\subseteq \{0,1,\ldots ,n-1\}$ mit $|I|=r$. Anhand dieser Erkenntnisse sowie der Inklusion-Exlusion-Formel für die Kardinalität einer endlichen Vereinigung lässt sich die o. s. geschlossene Form berechnen. Analog kann man die $^{+}$-Variante herleiten.

### Kombinatorische Identitäten: Summen

Um eine $K$-elementige Multiset über $n+1$ Elementtypen summiert man über die Möglichkeiten für die $n$ ersten Elementtypen gegeben die möglichen Werte für die Anzahl des letzten Elemententtyps. Mathematisch ausgedrückt bedeutet dies $\sum _{k=0}^{K}\left(\!\!{\tbinom {n}{k}}\!\!\right)=\left(\!\!{\tbinom {n+1}{K}}\!\!\right)$. Die Summendarstellung der beschränkten kombinatorischen Größe ermöglicht nun die Berechnung ihrer kumulativen Summe:
    $\sum _{k=0}^{K}\left(\!\!{\tbinom {n}{k}}\!\!\right)_{<c}=\sum _{r=0}^{n}(-1)^{r}{\tbinom {n}{r}}\left(\!\!{\tbinom {n+1}{K-rc}}\!\!\right).$
Anhand der Mengen von Multimengen im o. s. Abschnitt, lässt sich ersehen, dass die Gesamtzahl der Multimengen über $n$ Elementen sowie Kapazitätsbeschränkungen gegeben ist durch $\sum _{k=0}^{\infty }\left(\!\!{\tbinom {n}{k}}\!\!\right)_{<c}=c^{n}$. Dementsprechend kann man die komplementären Summen wie folgt bilden
    $\sum _{k>K}\left(\!\!{\tbinom {n}{k}}\!\!\right)_{<c}=c^{n}-\sum _{r=0}^{n}(-1)^{r}{\tbinom {n}{r}}\left(\!\!{\tbinom {n+1}{K-rc}}\!\!\right)$
Die o. s. Ergebnisse gelten analog für die $^{+}$-Variante. Diese Summen sind u. a. bei der Berechnung von Wahrscheinlichkeiten wichtig.

### Beispiel

Die beschränkte kombinatorische Größe kommt vor, wenn n{\textstyle n} Typen von Objekten vorhanden sind, davon 0{\textstyle 0} bis c−1{\textstyle c-1} (bzw. 1{\textstyle 1}– c{\textstyle c}) Kopien pro Typ, und man berechnen will, wie viele k{\textstyle k}-Kombinationen man daraus selektieren kann (ohne Rücksicht auf die Reihenfolge). Beispielsituationen: (1.) n=4{\textstyle n=4} Kartenfarben, davon c−1=13{\textstyle c-1=13} Karten und k={\textstyle k=}Anzahl der Karten. Dann ist ((n/k))$_{<c}${\textstyle \left(\!\!{\tbinom {n}{k}}\!\!\right)_{<c}} die Anzahl der möglichen Hände. (2.) n={\textstyle n=} Anzahl der Molekülarten mit jeweils c−1{\textstyle c-1} Teilchen und k={\textstyle k=}Anzahl der Teilchen, die in ein Gefäß fließen. Dann ist ((n/k))$_{<c}${\textstyle \left(\!\!{\tbinom {n}{k}}\!\!\right)_{<c}} die Anzahl der möglichen Mischungen.

## Operationen auf Multimengen

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

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
* $(M\cap N)(a)=\operatorname {min} (M(a),N(a))$, sowie
* $(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'\\\emptyset &{\text{sonst}}.\end{cases}}$
Für die Differenz zweier Multimengen über derselben Grundmenge $A$ gibt es ebenfalls mindestens zwei sinnvolle Definitionen.
* $(M\setminus N)(a)={\begin{cases}0&M(a)<N(a)\\M(a)-N(a)&{\text{sonst}}\end{cases}}$
* $(M\setminus N)(a)={\begin{cases}0&N(a)\neq 0\\M(a)&{\text{sonst}}.\end{cases}}$
Für beide gilt $X\setminus \emptyset =X$ und $X\setminus X=\emptyset$. 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

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. Vergleiche auch Fuzzymengen.
* 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.