From 4e44c6cf139489327661f130f3c59fc25fb93aa1 Mon Sep 17 00:00:00 2001 From: unlockable Date: Tue, 13 Dec 2022 18:18:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC14=E5=91=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 10MatchingsInGraphs.tex | 11 +- 14FiniteGeometriesAndLatinSquares.tex | 269 +++++++++++++++++++++++++- 离散数学.tex | 3 + 3 files changed, 279 insertions(+), 4 deletions(-) diff --git a/10MatchingsInGraphs.tex b/10MatchingsInGraphs.tex index 4e93716..70bdf2b 100644 --- a/10MatchingsInGraphs.tex +++ b/10MatchingsInGraphs.tex @@ -71,7 +71,7 @@ \begin{figure}[!htpb] \begin{center} - \begin{tikzpicture} + \begin{tikzpicture}[scale=0.85] \draw (-2,0) ellipse (1 and 3); \draw (2,0) ellipse (1 and 3); \draw (-2,1.5) ellipse (0.7 and 1); @@ -152,6 +152,11 @@ 综上,$G$有完美匹配,$\vert A \vert = \vert B \vert = k + 1$时结论也成立。 \end{proof} +通过类似的证明方法,我们还能得到一个婚姻定理的推广: +\begin{theorem}\label{婚姻定理推广} + 在若一个二部图满足对$A$的任意子集$X \subset A$都有$\vert X \vert \leq \vert N(X) \vert$($A$与$B$的元素数不一定相等),那么一定存在一个匹配包括$A$中所有的点(但$B$中可能有点没有与$A$中的点匹配)。 +\end{theorem} + \section{如何找到完美匹配} \begin{figure}[H] \centering @@ -238,7 +243,7 @@ \end{enumerate} \subsection{方法正确性的证明} -\begin{wrapfigure}[15]{r}{7cm} +\begin{figure}[H] \begin{center} \begin{tikzpicture}[scale=0.85] \draw node[circle, draw = black] (a1) at (0,0) {}; @@ -286,7 +291,7 @@ \end{tikzpicture} \end{center} \caption{寻找可扩路的过程中可能遇到的几种情况} -\end{wrapfigure} +\end{figure} 设在贪心配对之后,$U$为未配对的$A$中的点的集合,$W$为未配对的$B$中的点的集合。 若一条路是以$U$中的某个点为起点、被选中的和没被选中的边交替、终点在$A$中的路,则称它是一条\newnoun{几乎可扩路}{almost augmenting path}。 diff --git a/14FiniteGeometriesAndLatinSquares.tex b/14FiniteGeometriesAndLatinSquares.tex index 89f33bd..dd298d8 100644 --- a/14FiniteGeometriesAndLatinSquares.tex +++ b/14FiniteGeometriesAndLatinSquares.tex @@ -282,4 +282,271 @@ Fano Plane有很多很好的性质。 \[\lambda(v-1) \equiv 0 \pmod{(k-1)} \tag{1} \label{BIBD必要条件1}\] 与 \[\lambda v (v-1) \equiv 0 \pmod{k} \tag{2} \label{BIBD必要条件2}\eqper\] -\end{theorem} \ No newline at end of file +\end{theorem} + +这些条件都是存在$(v,k, \lambda)$-BIBD的必要条件而不是充分条件。1967年,M. Hall提出了如下的猜想: + +\begin{conjecture}[设计存在性猜想] + 给定正整数$k, \lambda$,对于满足上述定理中条件\eqref{BIBD必要条件1}与\eqref{BIBD必要条件2}的正整数$v$,除去有限的个例外,一定存在$(v,k,\lambda)$-BIBD。 +\end{conjecture} + +Wilson在1975年证明了下面的定理,从而证明了这个猜想: + +\begin{theorem}[渐进存在性定理] + 给定正整数$k$与$\lambda$,存在依赖于$k,\lambda$的常数$v_0 = v_0(k, \lambda)$,使得当$v \geq v_0$时,只要$v$满足上述定理中条件\eqref{BIBD必要条件1}与\eqref{BIBD必要条件2},就一定存在$(v,k,\lambda)$-BIBD。 +\end{theorem} + +这说明对于一些比较大的$v$,总可以找到BIBD。那么如果$v$不太大又该如何判断是否存在BIBD?例如,不存在$(21,6,1)$-BIBD或者$(16,6,1)$-BIBD,但是它们也同样满足前面定理中的条件\eqref{BIBD必要条件1}与\eqref{BIBD必要条件2}。 + +Fisher给出了另外一个存在$(v,k,\lambda)$-BIBD的必要条件。 + +\begin{theorem}\label{Fisher必要条件} + 如果存在$(v,k,\lambda)-BIBD$,其中$1 < k < v$,那么区组总数$b \geq v$,或者等价地有$\lambda(v - 1) \geq k(k-1)$或者$k \leq r$。 +\end{theorem} + +要证明这个定理,我们首先需要另一个定理: + +\begin{theorem} + 如果存在$(v,k,\lambda)$-BIBD,$1 < k < v$,那么$AA\trans = (r - \lambda)I + \lambda J$,其中$J$为全1矩阵。 +\end{theorem} + +\begin{proof} + 首先,注意到$AA\trans$的对角线元分别是$A$的每行与自己的内积,即每个元素的重复数$r$;另外$AA\trans$的$i,j$元($i \neq j$)即为第$i$个元素与第$j$个元素的相遇数$\lambda$。 +\end{proof} + +有了这个定理,我们就能证明定理\ref{Fisher必要条件}: + +\begin{proof} + 由 + \[r = \frac{\lambda(v-1)}{k-1}\] + 可得$r > \lambda$。那么 + \[\det(AA\trans) = [r + (v-1)\lambda](r-\lambda^{v-1}) > 0\] + 因此$AA\trans$满秩且为大小为$v$的方阵,$v = \rank(AA\trans) = \rank(A) \leq b$。 +\end{proof} + +\begin{definition} + 称满足$b = v$的BIBD是对称的。由于$bk = vr$,此时也有$k = r$。 +\end{definition} + +\begin{theorem} + 若有$(v,k,\lambda)$-对称BIBD,$1 < k < v$,那么$AA\trans = A\trans A = (k - \lambda) I + \lambda J$。 +\end{theorem} + +\begin{proof} + \begin{align*} + A\trans A & = A^{-1}AA\trans A = A^{-1} [(k-\lambda) I + \lambda J]A\\ + & = (k - \lambda) I + \lambda A^{-1} J A + \end{align*} + 注意到$AJ = rJ = kJ = JA$因此$A^{-1} J A = J$那么 + \[A\trans A = (k - \lambda)I + \lambda J\eqper\qedhere\] +\end{proof} + +\begin{corollary} + 对称BIBD的任意两个区组都恰有$\lambda$个共同的元素。 +\end{corollary} + +下面给出区组设计的构成方法。 + +\begin{theorem} + 若$B_1, B_2, \dots, B_b$是$(v,k, \lambda)$-对称BIBD,那么对于任意的$B_i$, + \[B_1 \setminus B_i, \dots, B_{i-1}\setminus B_i, B_{i+1} \setminus B_i, \dots, B_b \setminus B_i\] + 是$(v - k, k - \lambda, \lambda)$-BIBD, + \[B_1 \cap B_i, \dots, B_{i-1}\cap B_i, B_{i+1} \cap B_i, \dots, B_b \cap B_i\] + 是$(k, \lambda, \lambda-1)$-BIBD。 +\end{theorem} + +\subsection*{会标问题} +现在我们来看一个实际的问题:一个小镇中的人们组成了若干社团,它们有各自不相同的会标。小镇中的每个人都参加了至少一个社团。现在,小镇想要组织一个游行,小镇中的每个人都要参加,且每个人要选择一个他参加的社团的会标戴在身上。请问:能否找到一种会标的佩戴方式,使得游行中的每个人佩戴的会标都不相同? + +\begin{proof}[解] + 我们首先需要转化这个问题。用图中的点来代表社团和市民,用连线代表某个人加入了某个社团,我们就能得到 + \begin{figure}[H] + \centering + \begin{tikzpicture}[scale=1.5] + \node[draw=black, fill=blue!50, circle] (a) at (0,-1) {}; + \node[draw=black, fill=blue!50, circle] at (1, -1) {}; + \node[draw=black, fill=blue!50, circle] at (2, -1) {}; + \node[draw=black, fill=blue!50, circle] at (3, -1) {}; + \node[draw=black, fill=blue!50, circle] at (-1, -1) {}; + \node[draw=black, fill=blue!50, circle] at (-2, -1) {}; + \node[draw=black, fill=blue!50, circle] at (-3, -1) {}; + + \node[draw=black, circle] at (0.5,0.5) {}; + \node[draw=black, circle] at (1.5,0.5) {}; + \node[draw=black, circle] at (2.5,0.5) {}; + \node[draw=black, circle] at (3.5,0.5) {}; + \node[draw=black, circle] (b) at (-0.5,0.5) {}; + \node[draw=black, circle] at (-1.5,0.5) {}; + \node[draw=black, circle] at (-2.5,0.5) {}; + \node[draw=black, circle] at (-3.5,0.5) {}; + \draw (a)--(b); + \node at (0,1) {社团}; + \node at (0,-1.5) {市民}; + \end{tikzpicture} + \caption{市民与社团作为节点的图} + \end{figure} + + 显然,这是一个二部图。现在,问题被转化为了:能否找到一个覆盖所有代表市民的节点的匹配? + + 设$S$是所有代表市民的节点构成的集合的一个子集。设$e(S, N(S))$为连接$S$与$N(S)$中元素的边的数量。注意到S中每个成员都在$r$个社团中,因此 + \[\vert S \vert r = e(S, N(S))\] + 同时,$N(S)$中节点代表的社团的成员不一定全部都在$S$中,因此 + \[e(S, N(S)) \leq \vert N(S) \vert k\] + 再根据\ref{Fisher必要条件},有 + \[\vert N(S) \vert k \leq \vert N(S) \vert r\] + 综合起来得到 + \[\vert S \vert r = e(S, N(S)) \leq \vert N(S) \vert k \leq \vert N(S) \vert r\] + 即$\vert S \vert \leq \vert N(S) \vert$。由定理\ref{婚姻定理推广},符合要求的匹配一定存在。 +\end{proof} + +\section{Steiner系} +\begin{definition} + $(v,3,\lambda)$-BIBD称为三元系。 +\end{definition} + +此时可以得到 +\[3b = rv, 2r = \lambda(v-1)\] +即 +\[r = \lambda\frac{v-1}{2}, b = \lambda \frac{v(v-1)}{6}\] +而$r,b$都是整数,因此 +\[\lambda(v-1) \equiv 0 \pmod{2}, \lambda v(v-1) \equiv 0 \pmod{3}\] + +\begin{definition} + $\lambda = 1$时,三元系又称为\newnoun{Steiner三元系}{Steiner System},即$(v,3,1)$-BIBD。 +\end{definition} + +可以得到 +\[r = \frac{v-1}{2}, b = \frac{v(v-1)}{6}\] +结合$r, b$都是整数的条件可以导出$v$模6的余数只能为1或3。 + +\subsection*{社团代表} +我们来看一个实际问题。假设在一个镇子上有人们$v$个人,他们和他们的社团组成一个Steiner系。现在他们希望能产生一个委员会来抗议过高的会费,且委员会中应该包含每个社团的至少一名成员。那么最少需要多少人才能组成这样的委员会? + +考虑一个不在委员会中的人,Andrew。他加入了$r$个社团,且 +\[r = \frac{v-1}{2}\] +由于他们是一个Steiner系,因此$\lambda = 1$,这意味着这$r$个社团两两之间共同的成员只能有Andrew一个人,否则Andrew就会和某人的相遇数大于1。所以我们至少从这$\dfrac{v-1}{2}$个社团中分别选出1个人才有可能组成委员会。因此,委员会的人数应不小于$\dfrac{v-1}{2}$。同时,考虑Fano plane中可以用三个点组成``委员会'',因此我们找到的下界是可以取到的。 + +\begin{theorem} + 如果存在一个包含$\dfrac{v-1}{2}$个点的委员会,那么委员会自身也是一个Steiner系。 +\end{theorem} + +\begin{proof}\label{委员会人数定理} + 如果某个社团中的三个人都是代表,那么我们就称这个社团是``特权的''。证明定理即证明任意两个代表在某特权社团相遇且只会相遇这一次。 + + 首先,因为原先的所有人组成一个Steiner系,因此两个代表之间最多相遇一次。 + + 现在我们可以考虑Alice与Bob两位代表。他们一定同属于某个社团$S$。我们可以设这个社团中的另一个人是Carl。我们现在需要说明Carl一定也是代表。 + + 假设Carl不是代表,那么他所属的$r$个社团中除去$S$成员中都没有Alice和Bob,且他们两两之间只有Carl一个共同成员,因而都需要一个代表,即需要$r - 1$个代表。这$r-1$个代表再加上Alice和Bob共有$r+1$个人,说明我们至少需要$r+1$个人才能组成代表,这与已知的$\dfrac{v-1}{2} = r$个点组成委员会矛盾。因此Carl也一定是代表。 +\end{proof} + +\subsection*{Gender balance} +若一个二色染色可使Steiner系的每个区组都有两种颜色,那么我们称这个染色是``好的''二色染色。 + +\begin{theorem} + ``好的''二色染色在Steiner系中不存在。 +\end{theorem} + +\begin{proof} + 假设存在这样一个满足要求的染色。那么每个区组中都含有红色,也都含有蓝色。这意味着红色或者蓝色都可以做为``代表'',这也就意味着红色和蓝色都有至少$\frac{v-1}{2}$个。相加后还有一个人的颜色没有确定,我们不妨假设他是红色的。那么这意味着蓝色的人组成了一个$\frac{v-1}{2}$个元素的委员会。由定理\ref{委员会人数定理},他们是一个Steiner系,而这个Steiner系中所有的``特权的''社团的成员全部都是蓝色的。这与我们假设的每个社团(区组)中都有两种颜色的人矛盾。 +\end{proof} + +\section{拉丁方} +\subsection{引言} +现代科技离不开科学实验,在一个复杂的科学实验中,往往有许多影响实验结果的因素,这些因素互相配合又互相制约,要搞清每个因素的影响,要知道怎样的搭配效果最好,就要进行科学合理的实验安排。 + +实验设计是一门专门的理论,组合数学中组合设计理论是这个理论最重要的数学工具。 + +例如,要对治疗某种疾病的6种药$d_1, d_2, d_3, d_4, d_5, d_6$的疗效进行试验。实验的疗程是六天,共有6个病人参加试验。 + +一种可能的方案是周一所有人都服用$d_1$,周二所有人都服用$d_2$,……,周六所有人都服用$d_6$。这个实验方案的缺点是可能看起来后服的药的疗效会更好,因为前面服用的药可能仍旧在起作用; + +另一种可能的方案是每人在六天实验疗程中只服用一种药,但是缺点是病人的体质与病情会影响实验的结果。 + +理想的方案是:六个人每个人都对这六种药进行了实验,且每天这六种药都在被某个人试验。试验方案可以用下面的矩阵来表示: +\begin{equation*} + \begin{bNiceMatrix}[first-col] + A & 1 & 2 & 3 & 4 & 5 & 6\\ + B & 6 & 1 & 2 & 3 & 4 & 5\\ + C & 5 & 6 & 1 & 2 & 3 & 4\\ + D & 4 & 5 & 6 & 1 & 2 & 3\\ + E & 3 & 4 & 5 & 6 & 1 & 2\\ + F & 2 & 3 & 4 & 5 & 6 & 1 + \end{bNiceMatrix} +\end{equation*} + +可以把上面的实验设计中出现的方阵推广,得到 + +\begin{definition}[拉丁方] + 由元素$1, 2, \dots, n$构成的$n \times n$的方阵 + \(\begin{bmatrix} + a_{ij} + \end{bmatrix}_{n \times n}\) + ,要求每行每列中$1, 2, \dots, n$各出现一次,这样的方阵就叫做\newnoun{拉丁方}{Latin Square}。 +\end{definition} + +下面先列举几个拉丁方的简单性质。 +\begin{proposition} + 设$p \in S_n$是任意一个$n$元置换。如果 + \(A = \begin{bmatrix} + a_{ij} + \end{bmatrix}_{n \times n}\) + 是一个拉丁方,则 + \[p(A) = p + \left(\begin{bmatrix} + a_{ij} + \end{bmatrix}\right)\] + 也是一个拉丁方。 +\end{proposition} + +\begin{proposition} + 一个拉丁方经过行、列任意置换后还是一个拉丁方。 +\end{proposition} + +\begin{proposition} + 拉丁方的转置还是拉丁方。 +\end{proposition} + +\subsection{正交拉丁方} +36军官问题:有36名军官来自六个不同的团,具有六种不同的军阶,而且每个团每种军阶的军官各有一名,能否把他们排成一个$6 \times 6$方阵,使得对每一个团与每一种军阶,在每一行或每一列都有一位军官来自这个团,也都有一位军官有此军阶? + +每一个军官用一个有序对$(i, j)$来表示,其中i表示它们的军阶类别$(i=1,2,\dots,6)$而j表示他所在的团$(j = 1, 2, \dots, 6)$。问题相当于设计出由军阶构成的一个6阶拉丁方 +\(\begin{bmatrix} + a_{ij} +\end{bmatrix}\) +和一个由团序号组成的6阶拉丁方 +\(\begin{bmatrix} + b_{ij} +\end{bmatrix}\) +,要求$(a_{ij}, b_{ij})$互不相同,正好是全部$6 \times 6$数组$i, j$,其中$i = 1, 2, \dots, 6$,$j = 1, 2, \dots, 6$。满足这样条件的两个拉丁方就是所谓的正交的拉丁方。 + +\begin{definition} + 设 + \(A = \begin{bmatrix} + a_{ij} + \end{bmatrix}_{n \times n}\), + \(B = \begin{bmatrix} + b_{ij} + \end{bmatrix}_{n \times n}\) + 是两个$n$阶拉丁方。若矩阵 + \(C = \begin{bmatrix} + (a_{ij}, b_{ij}) + \end{bmatrix}_{n \times n}\) + 中的$n^2$个数对$(a_{ij}, b_{ij})$互不相同,$i,j = 1, 2, \dots, n$,称$A$和$B$正交,或$A$和$B$是正交拉丁方。 +\end{definition} + +可以得到正交拉丁方的几个性质: + +\begin{proposition} + 如果$A$和$B$是一对正交拉丁方,则$A$中的元素经过某个置换$p$之后得到的$p(A)$和$B$也是一对正交拉丁方。 +\end{proposition} + +\begin{proposition} + 如果$A$和$B$是一对正交拉丁方,那么$A$和$B$经过相同的行列置换后得到的两个矩阵仍然是一对正交拉丁方。 +\end{proposition} + +\begin{proposition} + 如果$A$和$B$是正交拉丁方,则它们的转置$A\trans$与$B\trans$也是一对正交拉丁方。 +\end{proposition} + +问题:给定$n$,在所有$n$阶拉丁方中,最多能有多少对两两互相正交的拉丁方组? \ No newline at end of file diff --git a/离散数学.tex b/离散数学.tex index c57c25b..135a7f4 100644 --- a/离散数学.tex +++ b/离散数学.tex @@ -38,8 +38,10 @@ \newtheorem{example}{例}[section] \newtheorem{proposition}{命题}[section] \newtheorem*{remark}{注} +\newtheorem*{conjecture}{猜想} \DeclareMathOperator{\lcm}{lcm} +\DeclareMathOperator{\rank}{rank} % \renewcommand{\qedsymbol}{} %去掉证明结尾的方框 @@ -52,6 +54,7 @@ \newcommand{\realnum}{\mathbb{R}} \newcommand{\integer}{\mathbb{Z}} \newcommand{\naturalnum}{\mathbb{N}} +\newcommand{\trans}{^\mathrm{T}} \title{{\Huge{\bf{离散数学}}}} \author{}