組合數學 組合設計泛談

2021-04-01 09:23:26 字數 4823 閱讀 6134

[組合數學]組合設計泛談

與旋轉矩陣相關的數字問題

從寇克曼女生問題講起

旋轉矩陣涉及到的是一種組合設計:覆蓋設計。而覆蓋設計,填裝設計,斯坦納系,t一設計都是離散數學中的組合優化問題。它們解決的是如何組合集合中的元素以達到某種特定的要求。

為了使讀者更容易明白這些問題,下面先從一道相當古老的數學名題講起:

1.寇克曼女生問題:

某教員打算這樣安排她班上的十五名女生散步:散步時三名女生為一組,共五組。問能否在一周內每日安排一次散步, 使得每兩名女生在這週內一道散步恰好一次?

題目似乎看起來很簡單,然而它的徹底解決並不容易。事實上,kirkman 於2023年提出了該問題,過了100多年後,對於一般形式的kirkman 問題的存在性才徹底解決。

用1-15這15個數字分別代表這15個女生,下面給出一組符合要求的分組方法:

星期日:(1,2,3),(4,8,12),(5,10,15),(6,11,13),(7,9,14)

星期一:(1,4,5),(2,8,10),(3,13,14),(6,9,15),(7,11,12)

星期二:(1,6,7),(2,9,11),(3,12,15),(4,10,14),(5,8,13)

星期三:(1,8,9),(2,12,14),(3,5,6),(4,11,15),(7,10,13)

星期四:(1,10,11),(2,13,15),(3,4,7),(5,9,12),(6,8,14)

星期五:(1,12,13),(2,4,6),(3,9,10),(5,11,14),(7,8,15)

星期六:(1,14,15),(2,5,7),(3,8,11),(4,9,13),(6,10,12)

該問題就是最典型的組合設計問題。其本質就是如何將乙個集合中的元素組合成一定的子集係以滿足一定的要求。表面上看起來,寇克曼女生問題是純粹的數學遊戲,然而它的解卻在醫藥試驗設計上有很廣泛的運用。

寇克曼女生問題是t- 設計中很特殊的一類——可分解斯坦納設計。下面我會詳細解釋這幾個名詞的含義。

2.幾種組合設計的含義:

所謂t-設計是「策略組態,tactical configuration 」的簡稱。

不妨用數學語言來定義t一設計:

s=是由這b個子集組成的集合(子集系),

對於固定整數t,和s的任意乙個t元子集(t≥1),如果包含該子集的b中子集的個數都是同乙個常數λt,則稱b=是集合s上的乙個t-(v, k, λt)設計,簡稱t-設計。

如果t-(v ,k , λt)設計中,t=2,λ=1,則稱為斯坦納系(steiner)。在該領域,我國已故的數學家陸家羲作出了巨大的貢獻,如今每一本講組合設計的書講到這個問題,就不能不提到他的大名,和以他的名字命名的定理。至今為止,斯坦納系仍然存在著許多未解決的問題,至今還沒有人證明s(17,5,4=476)和s(18,6,5=1428)的存在或不存在。雖然它的引數顯得很小。

而旋轉矩陣涉及的則是另一種更加複雜、引數更多的組合設計——覆蓋設計。

覆蓋設計是一種經過精心設計的b個區組組成的子集系,其中每個區組都有k個元素組成。它可以確保如果選出k個元素,有m個在其中,至少有λ個區組中的元素有t個元素符合。區組中元素的順序與區組的排列順序不影響覆蓋設計本身。

(c:v, k, t, m, λ=b)

可以用數學語言來定義比較簡單的覆蓋設計:

s=是由這b個子集組成的集合(子集系),

對於固定整數t,和s的任意乙個t元子集(t≥1),如果該子集至少包含在b的λ個區組中,則稱b=是集合s上的乙個c-(v, k, λt)設計,簡稱覆蓋設計。

填裝設計:

s=是由這b個子集組成的集合(子集系),

對於固定整數t,和s的任意乙個t元子集(t≥1),如果該子集至多包含在b的λ個區組中,則稱b=是集合s上的乙個c-(v, k, λt)設計,簡稱覆蓋設計。

t-設計又叫恰好覆蓋與恰好填裝。t-設計不一定存在,而覆蓋設計一定存在。t一設計中,λ=1,而覆蓋設計一般λ>1此外,t-設計中m=t所以t-設計只是覆蓋設計中比較特殊的一種。

只要b足夠大,顯然覆蓋設計一定存在。而有意義的是找到b的最小值,並找出在此最小值下的覆蓋設計,此時的覆蓋設計叫做最小覆蓋。尋找最小覆蓋的問題是組合優化問題的一類,被稱為集合覆蓋問題(scp set covering problem )與著名的推銷員旅行問題或成本最小化,利潤最大化問題,都是優化問題的一種。

但是集合覆蓋問題往往比這些問題更加困難。因為其它問題往往已經有比較成熟的,固定的方法。而覆蓋設計並沒有通用的公式,所以大部分的設計即使用如克雷般超級電腦也很難求出,全盤搜尋的演算法耗用的時間將會是乙個天文數字。

這方面,演算法就顯得相當重要。oester grad 教授創造出一種全新的模擬演算法,它大大提高了求解覆蓋設計的速度,但它不能保證找到的覆蓋設計一定是最小覆蓋設計。它具有很強的通用性。而之前的其它演算法往往只能解決固定某些引數的特定問題,解決的往往只是一類問題。

對覆蓋設計的研究始於19世紀2023年j·plue cker w.s.b.wool house (1844)

到了2023年,人們發現它對軍隊中布陣與戰略設計以及計算機晶元設計都大有用途,因此得到了迅速發展。在統計上醫藥設計,農業試驗,核研究,質量控制甚至在彩票中都大有用途。

組合設計問題往往來自於智力遊戲,對它們的研究也是純數學的。但是當研究逐漸深入時,人們逐漸地在生產與其它學科中發現了它的用武之地。這樣對它的研究就有了更強大的天然動力,吸引了更多人的注意,成果也就更加豐富。

在選7的彩票涉及的旋轉矩陣中,所有的(六,6)型和(五,5)型旋轉矩陣都是t-設計。而一般的旋轉矩陣都是覆蓋設計。由於數學上對 t- 設計研究的比較多,所有有時侯我們可以利用t一設計可以生成一些覆蓋設計。

如以下的設計即為乙個1-(10,3,3)設計,它的有限射影幾何中有很廣泛的運用。

b: (2,3,4) (1,5,10) (1,6,9)

(1,7,8) (2,9,10) (3,8,10)

(4,8,9) (4,6,7) (3,5,7) (2,5,6)

即1-10每個數字都出現了3次,而且每兩個數字恰好一起出現1次。從它可以生成10注10個號(7,六)型矩陣(它相當對稱,平衡但不是最優的),具體生成方法很簡單,取每一組的剩餘的7個數就可以生成對應的一組。

3.組合設計的研究內容:

〈1〉 存在性問題:

若給出要求,研究符合要求的組合設計是否存在,以及存在的條件問題。比如,彩票中的覆蓋設計問題,它的存在性就不是問題,因為只要注數足夠多,總是可以覆蓋的,(它的上限為複式投注即完全組合,有意義的是它的下限)。而t一設計又叫恰好覆蓋,它的存在性就是乙個很值得研究的問題,也就是說,引數要符合什麼條件,才會恰好存在覆蓋一次的設計。

對存在性的研究更多的是從理論上。然而,對於一般情形的t設計是否存在,還遠遠沒有解決。

〈2〉 構造問題:

如果已知某種組合設計存在時,如何把它們構造出來?這是與實際應用聯絡最緊的問題。實際上,最終無論在彩票中,還是新藥設計中,人們關心的是構造出的組合設計。經過數學家上百年的努力,現在已尋有一些構造方法。如利用有限的射影幾何,關聯矩陣,數論中的差集等。構造出大量的設計。用組合論自身也能解決一些構造問題。然而,對於一般情形的組合設計的構造性問題離解決還相當遙遠。比如彩票中覆蓋設計問題(即旋轉矩陣)當引數變大時,設計的難度顯幾何級數上公升。

對於一般的最小覆蓋問題,仍然沒有通用的構造方法。也就是說,目前市場上出現的許許多多號碼比較多的旋轉矩陣,都很難保證是最小覆蓋設計,也就是無法保證它是最優的。很多旋轉矩陣不斷地有重新整理它的下限紀錄,也就是越來越接近最小覆蓋設計,然而,要證明乙個旋轉矩陣是否已經是最小覆蓋設計,是極其困難的,如果號碼很少,還可以通過計算機程式設計用窮舉的方式來解決,而號碼稍微多一點,用窮舉法超級電腦運算所耗用的時間也將是天文數字。

〈3〉 組合設計之間的關係:

例如:乙個組合設計是否與另外乙個組合設計本質上一樣的(同構)。比如把組合中某兩個數字互換,這兩個設計應該算同一種設計。每一種設計的同構設計是非常多的。有些同構是很難直接看出的,所以就需要研究同構的設計有什麼特點,如何準確快速的判斷和產生同構設計。

組合設計還研究如何由乙個組合設計構造出另外乙個。

比如旋轉矩陣中存在著這樣的問題,比如10個號碼01-10,開始我先選定3注:

01,02,03,04,05,06,07,

01,03,05,07,08,09,10,

02,04,06,07,08,09,10

問如何添上盡可能少的注數,使它成為(7,六)型平衡式矩陣。

又如乙個旋轉矩與另外乙個旋轉矩陣是否同構。即使兩個旋轉矩陣所有引數都相同,也不一定同構。然而,在實際運用中,人們並不關心同構問題。因為只要能用就行了。

又如10個號碼(7,六)型的有8注,比如(01-10)間能否在它基礎上添上盡可能少的注數,使得它成為11個號碼的(7,六)型的旋轉矩陣(01-11)。

〈5〉計數問題。

如果已知某類組合設計存在,自然希望知道這類設計的個數。也就是說成互不同構的設計的個數。然而,這個問題是乙個極其艱難的問題現在還很少人去研究它。

比如很簡單的10個號碼的(7,六)型矩陣,共有多少個。號碼一多,這將是乙個很困難的問題。

〈6〉最優設計

從純數學角度看,旋轉矩陣屬於乙個典型的組合設計問題,嚴格地講,是屬於組合設計中的覆蓋設計的問題。如何才能找到最少的注數以保證全面的覆蓋是乙個歷時已久的數學難題,與旋轉矩陣相關的數學問題還有很多,比如填裝設計、斯坦納設計、t-設計等等,這些問題都是數學界長期以來的難題,在軍事上和醫藥實驗上都有著廣泛的運用。當然把高深的數學原理運用在彩票這一極其通俗的事物上,也是乙個歷史的玩笑。好在對於一般運用旋轉矩陣的彩民來講,其背後高深的數學原理一點也不會成為運用的障礙,因為我們需要的是知道如何運用就夠了。目前,對旋轉矩陣的解法,數學界還沒有找到乙個通用的公式,大部分的設計即使用最先進的超級電腦也很難求出,全盤搜尋的演算法耗用的時間將會是乙個天文數字。

好在人們找到了一種全新的模擬演算法,它大大提高了求解覆蓋設計的速度,但它不能保證找到的覆蓋設計一定是最小的覆蓋設計。它具有很強的通用性。而之前的其它演算法往往只能解決固定某些引數的特定問題,解決的往往只是一類問題。

數學 組合數學

mod must be a prime const int mod 1e9 7 namespace combinatory ll inv ll x ll fac maxn invfac maxn void initc int n ll a ll n,ll m ll c ll n,ll m ll d ...

組合數學 組合數問題(四類彙總)

給定n n 組詢問,每組詢問給定兩個整數a,b a,b 請你輸出 n a,b n a,b cab mod 109 7 的值。n a,b cab mod 109 7 1 n 10000 1 n 10000,1 b a 2000 1 b a 2000 n a,b cab mod 109 7 1 n 10...

數學 組合數 Jzoj P4257 著色

description input 兩個整數n 1 n 8 k 1 k 1000 n代表他要塗的是書裡的第n張,k代表有k中不同的顏料選擇。這本書的內容請看後面!output 輸出乙個整數。代表合法的方案數。sample input 輸入1 2 2輸入2 5 3輸入3 7 3 sample outp...