Inclusion-exclusion

This commit is contained in:
Antti H S Laaksonen 2017-01-13 19:42:00 +02:00
parent 2fed4f2df8
commit 8280718374
1 changed files with 75 additions and 64 deletions

View File

@ -527,21 +527,19 @@ and the rooted trees are
\end{tikzpicture} \end{tikzpicture}
\end{center} \end{center}
\section{Inclusion-exclusion}
\section{Inkluusio-ekskluusio} \index{inclusion-exclusion}
\index{inkluusio-ekskluusio} \key{Inclusion-exclusion} is a technique
that can be used for counting the size
\key{Inkluusio-ekskluusio} of a union of sets when the sizes of
on tekniikka, jonka avulla pystyy laskemaan the intersections are known, and vice versa.
joukkojen yhdisteen koon leikkausten A simple example of the technique is the formula
kokojen perusteella ja päinvastoin.
Yksinkertainen esimerkki periaatteesta on kaava
\[ |A \cup B| = |A| + |B| - |A \cap B|,\] \[ |A \cup B| = |A| + |B| - |A \cap B|,\]
jossa $A$ ja $B$ ovat joukkoja ja $|X|$ where $A$ and $B$ are sets and $|X|$
tarkoittaa joukon $X$ kokoa. is the size of a set $X$.
Seuraava kuva havainnollistaa kaavaa, The formula can be illustrated as follows:
kun joukot ovat tason ympyröitä:
\begin{center} \begin{center}
\begin{tikzpicture}[scale=0.8] \begin{tikzpicture}[scale=0.8]
@ -556,16 +554,20 @@ kun joukot ovat tason ympyröitä:
\end{tikzpicture} \end{tikzpicture}
\end{center} \end{center}
Tavoitteena on laskea, kuinka suuri on yhdiste $A \cup B$ In the above example, our goal is to calculate
eli alue, joka on toisen tai kummankin ympyrän sisällä. the size of the union $A \cup B$
Kuvan mukaisesti yhdisteen $A \cup B$ koko that corresponds to the area of the region
saadaan laskemalla ensin yhteen ympyröiden $A$ ja $B$ koot that is inside at least one circle.
ja vähentämällä siitä sitten leikkauksen $A \cap B$ koko. The picture shows that we can calculate
the area of $A \cup B$ by first summing the
areas of $A$ and $B$, and then subtracting
the area of $A \cap B$.
Samaa ideaa voi soveltaa, kun joukkoja on enemmän. The same idea can be applied, when the number
Kolmen joukon tapauksessa kaavasta tulee of sets is larger.
When there are three sets, the formula becomes
\[ |A \cup B \cup C| = |A| + |B| + |C| - |A \cap B| - |A \cap C| - |B \cap C| + |A \cap B \cap C| \] \[ |A \cup B \cup C| = |A| + |B| + |C| - |A \cap B| - |A \cap C| - |B \cap C| + |A \cap B \cap C| \]
ja vastaava kuva on and the corresponding picture is
\begin{center} \begin{center}
\begin{tikzpicture}[scale=0.8] \begin{tikzpicture}[scale=0.8]
@ -585,35 +587,37 @@ ja vastaava kuva on
\end{tikzpicture} \end{tikzpicture}
\end{center} \end{center}
Yleisessä tapauksessa yhdisteen $X_1 \cup X_2 \cup \cdots \cup X_n$ In the general case, the size of the
koon saa laskettua käymällä läpi kaikki tavat muodostaa union $X_1 \cup X_2 \cup \cdots \cup X_n$
leikkaus joukoista $X_1,X_2,\ldots,X_n$. can be calculated by going through all ways to
Parittoman määrän joukkoja sisältävät leikkaukset construct an intersection for a collection of
lasketaan mukaan positiivisina ja sets $X_1,X_2,\ldots,X_n$.
parillisen määrän negatiivisina. If the intersection contains an odd number of sets,
its size will be added to the answer,
and otherwise subtracted from the answer.
Huomaa, että vastaavat kaavat toimivat myös käänteisesti Note that similar formulas also work when counting
leikkauksen koon laskemiseen yhdisteiden kokojen perusteella. the size of an intersection from the sizes of
Esimerkiksi unions. For example,
\[ |A \cap B| = |A| + |B| - |A \cup B|\] \[ |A \cap B| = |A| + |B| - |A \cup B|\]
ja and
\[ |A \cap B \cap C| = |A| + |B| + |C| - |A \cup B| - |A \cup C| - |B \cup C| + |A \cup B \cup C| .\] \[ |A \cap B \cap C| = |A| + |B| + |C| - |A \cup B| - |A \cup C| - |B \cup C| + |A \cup B \cup C| .\]
\subsubsection{Epäjärjestykset} \subsubsection{Derangements}
\index{epxjxrjestys@epäjärjestys} \index{derangement}
Lasketaan esimerkkinä, As an example, let's count the number of \key{derangements}
montako tapaa on muodostaa luvuista of numbers $\{1,2,\ldots,n\}$, i.e., permutations
$(1,2,\ldots,n)$ \key{epäjärjestys} where no element remains in its original place.
eli permutaatio, For example, when $n=3$, there are
jossa mikään luku ei ole alkuperäisellä paikallaan. two possible derangements: $(2,3,1)$ ja $(3,1,2)$.
Esimerkiksi jos $n=3$, niin epäjärjestyksiä on kaksi: $(2,3,1)$ ja $(3,1,2)$.
Yksi tapa lähestyä tehtävää on käyttää inkluusio-ekskluusiota. One approach for the problem is to use
Olkoon joukko $X_k$ niiden permutaatioiden joukko, inclusion-exclusion.
jossa kohdassa $k$ on luku $k$. Let $X_k$ be the set of permutations
Esimerkiksi jos $n=3$, niin joukot ovat seuraavat: that contain the number $k$ at index $k$.
For example, when $n=3$, the sets are as follows:
\[ \[
\begin{array}{lcl} \begin{array}{lcl}
X_1 & = & \{(1,2,3),(1,3,2)\} \\ X_1 & = & \{(1,2,3),(1,3,2)\} \\
@ -621,14 +625,14 @@ X_2 & = & \{(1,2,3),(3,2,1)\} \\
X_3 & = & \{(1,2,3),(2,1,3)\} \\ X_3 & = & \{(1,2,3),(2,1,3)\} \\
\end{array} \end{array}
\] \]
Näitä joukkoja käyttäen epäjärjestysten määrä on Using these sets the number of derangements is
\[ n! - |X_1 \cup X_2 \cup \cdots \cup X_n|, \] \[ n! - |X_1 \cup X_2 \cup \cdots \cup X_n|, \]
eli so it suffices to calculate the size of the union.
riittää laskea joukkojen yhdisteen koko. Using inclusion-exclusion, this reduces to
Tämä palautuu inkluusio-eks\-kluu\-sion avulla calculating sizes of intersections which can be
joukkojen leikkausten kokojen laskemiseen, done efficiently.
mikä onnistuu tehokkaasti. For example, when $n=3$, the size of
Esimerkiksi kun $n=3$, joukon $|X_1 \cup X_2 \cup X_3|$ koko on $|X_1 \cup X_2 \cup X_3|$ is
\[ \[
\begin{array}{lcl} \begin{array}{lcl}
& & |X_1| + |X_2| + |X_3| - |X_1 \cap X_2| - |X_1 \cap X_3| - |X_2 \cap X_3| + |X_1 \cap X_2 \cap X_3| \\ & & |X_1| + |X_2| + |X_3| - |X_1 \cap X_2| - |X_1 \cap X_3| - |X_2 \cap X_3| + |X_1 \cap X_2 \cap X_3| \\
@ -636,12 +640,13 @@ Esimerkiksi kun $n=3$, joukon $|X_1 \cup X_2 \cup X_3|$ koko on
& = & 4, \\ & = & 4, \\
\end{array} \end{array}
\] \]
joten ratkaisujen määrä on $3!-4=2$. so the number of solutions is $3!-4=2$.
Osoittautuu, että tehtävän voi ratkaista myös toisella It turns out that there is also another way for
tavalla käyttämättä inkluusio-ekskluusiota. solving the problem without inclusion-exclusion.
Merkitään $f(n)$:llä jonon $(1,2,\ldots,n)$ epäjärjestysten määrää, Let $f(n)$ denote the number of derangements
jolloin seuraava rekursio pätee: for $\{1,2,\ldots,n\}$. We can use the following
recursive formula:
\begin{equation*} \begin{equation*}
f(n) = \begin{cases} f(n) = \begin{cases}
@ -651,18 +656,24 @@ jolloin seuraava rekursio pätee:
\end{cases} \end{cases}
\end{equation*} \end{equation*}
Kaavan voi perustella käymällä läpi tapaukset, The formula can be derived by going through
miten luku 1 muuttuu epäjärjestyksessä. the possibilities how the number 1 changes
On $n-1$ tapaa valita jokin luku $x$ luvun 1 tilalle. in the derangement.
Jokaisessa tällaisessa valinnassa on kaksi vaihtoehtoa: There are $n-1$ ways to choose a number $x$
that will replace the number 1.
In each such choice, there are two options:
\textit{Vaihtoehto 1:} Luvun $x$ tilalle valitaan luku 1. \textit{Option 1:} We also replace the number $x$
Tällöin jää $n-2$ lukua, joille tulee muodostaa epäjärjestys. by the number 1.
After this, the remaining task is to construct
a derangement for $n-2$ numbers.
\textit{Vaihtoehto 2:} Luvun $x$ tilalle ei valita lukua 1. \textit{Option 2:} We replace the number $x$
Tällöin jää $n-1$ lukua, joille tulee muodostaa epäjärjestys, by some other number than 1.
koska luvun $x$ tilalle ei saa valita lukua 1 Now we should construct a derangement
ja kaikki muut luvut tulee saattaa epäjärjestykseen. for $n-1$ numbers, because we can't replace
the number $x$ with number $1$, and all other
numbers should be changed.
\section{Burnsiden lemma} \section{Burnsiden lemma}