玫瑰有約數學模型Word版_第1頁
玫瑰有約數學模型Word版_第2頁
玫瑰有約數學模型Word版_第3頁
玫瑰有約數學模型Word版_第4頁
玫瑰有約數學模型Word版_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、傳播優秀word版文檔 ,希望對您有幫助,可雙擊去除!關于玫瑰有約的數學模型摘要:現在城市大齡青年的婚姻問題收起了社會的廣泛關注,針對這一社會現象,我們假設某單位有20對大齡青年男女,每個人的基本條件都不相同,并且每個人的擇偶條件也不相同。該單位的婦聯組織擬根據他們的年齡,基本條件和要求條件牽線搭橋。本文根據每個人的情況和要求,建立數學模型幫助婦聯解決3個問題。關鍵詞:數學模型;滿意度;匈牙利算法;km算法the mathematical model about making an appointment for life(department of mathematics and compu

2、tational science hunan university of science and engineering,yongzhou,425100,hunan)abstract: nowadays, the problem of the youngs marriage has roused more and more publics concern. according to this phenomenon, we assume that there are twenty pairs of aged people in a company, all of which have diffe

3、rent basic condition and their demanding。the women's federation of this company wants to wire-pull for them on the basis of their age, basic condition and demand. this paper, according to everyones condition and demands, helps the women's federation solving this problem.key words: mathematic

4、al model; the measurement of satisfaction; hungary algorithm; km algorithm; 1. 引言現在在城市大齡青年的婚姻問題引起了社會的廣泛關注,針對這一現象,我們給出20對青年男女的基本條件和擇偶條件的抽樣是真實可靠的。首先,我們將所給的兩個表格按年齡升序重新進行排列,分別編號為1,2,320。并且將外貌、性格、氣質、事業、財富五個方面的五個等級a、b、c、d、e分別賦值為5、4、3、2、1,這樣我們就得到了男女青年的基本條件和要求條件的四個矩陣;其次,我們定義了“滿意度”的概念,利用圖論(二部圖)的方法解決這個問題。 在模型

5、中,根據男青年的基本條件和女青年的要求條件構造度量矩陣(權值矩陣)a,男1號的基本條件和女1號的要求條件,比如在外貌方面,男1號滿足女1號的要求則賦值為5-3+1,在事業方面,男1號不滿足女1號的要求,則賦值為0,按照這個方法,如果滿足條件則按公式(男青年基本條件值-女青年相應的要求條件+1)賦值,反之賦值為0,這樣可以得到外貌,性格,氣質,事業,財富五個方面的數值,并將這些數值相加得到,最終得到權值矩陣t=()2020,同理可得,女青年的基本條件和男青年的要求條件所構成的權值矩陣s=()2020,那么男女青年配對的總權值矩陣(即為滿意度矩陣)為r1=t+s,(因為表示男i號的基本條件對j號的

6、要求條件,表示女j號的基本條件對男i號的要求條件,那么用+ 表示男i號對女j號的總權數即為他們之間的滿意度):再次,我們根據年齡的限制在矩陣r1中將不滿足條件的賦0,得到矩陣r,利用匈牙利算法可得到問題(1)的結果。再在矩陣r中將大于2的數字賦1反之賦0,再利用km算法可得問題(2)的結果。由于以上的模型在構造權值矩陣r時,男青年基本條件不滿足女青年要求條件時賦值為0,實際上還存在男女青年的失望度,故在模型改進中針對失望度將模型中賦值為0的另外賦值為(女青年要求條件值男青年相應的基本條件值)即考慮到可能單向面的滿意度較大而另一方面的失望度也較大時同樣不能配對成功,且在把模型無向化時是采用把每個

7、結點分成兩個結點的方法即把有向的平行邊分成各自帶自己權的無向邊,同時在此模型中將初等模型中的五個等級a、b、c、d、e量化為9、7、5、3、1(由于模型中的賦值尺度比較粗糙),其余的步驟與模型相同,從而得到了模型改進。2.問題的提出目前,在許多城市大齡青年的婚姻問題已引起了婦聯和社會團體組織的關注。某單位現在有20對大齡青年男女,每個人的基本條件都不相同,如外貌、性格、氣質、事業、財富等。每項條件通常可以分為五個等級a、b、c、d、e,如外貌、性格、氣質、事業可分為很好、好、較好、一般、差;財富可以分為很多、多、較多、一般、少。每個人的擇偶條件也不盡相同,即對每項基本條件的要求是不同的。該單位

8、的婦聯組織擬根據他(她)們的年齡、基本條件和要求條件進行牽線搭橋。下面給出20對大齡青年男女的年齡、基本條件和要求條件(如下表)。一般認為,男青年至多比女青年的年齡大5歲,或女青年的年齡比男青年的大2歲,并且要至少滿足個人要求5項條件中的2項,才有可能配對成功。本文根據每個人的情況要求,建立數學模型幫助婦聯解決如下問題:(1)給出可能的配對方案,使得在盡量滿足個人要求的條件下,使得配對成功率盡可能的高。(2)給出一種20對男女青年可同時配對的最佳方案,使得全部配對成功的可能性最大。(3)假設男女雙方都相互了解了對方的條件和要求,讓每一個人出一次選擇,只有當男女雙方相互選中對方時才認為配對成功,

9、每一個人只有一次選擇機會。怎樣告訴20對男女青年都應該如何做出選擇,使得自己的成功的可能性最大?選擇的方案最多能配對成功多少對?男青年 基本條件要求條件外貌 性格 氣質 事業 財富年齡外貌性格氣質事業財富acbca29aacbdcabad29babbcbbabb28baabccabbd28cabcddbcaa30cbbbecbcbb28bbcdcabbdc30cbbdcbabcd30abccdadceb28aaaccdbaaa28abadebacda32abcdbabcab29babbcbadec28acbbcaabbd30accdcabbcc28aabcddebaa30aaaeecabad2

10、8aaaeeabacb31bbacccdaaa29abaedabcde27bcbdb女青年基 本 條 件要 求 條 件 外貌 性格 氣質 事業財富 年齡 外貌 性格 氣質 事業 財富accda28babadbabad25cbbabcbaea26bacbcabbcd27aabbabdcec25abcbbacbca26babbcdcbab30cbaacabaec31bababaaace26cbbbabcdbb27bbaacabbcb28cbabcbecea26aabbeeacbb26cabccbbcaa25baabdcbaac29babbbbacdc28babbaaeeda25aadacaabbc

11、28cabacbacce25bbbaadbacd29bbabb注:表中的要求條件一般是指不低于所給的條件。為了方便后面的計算,我們按年齡升序重新對上述兩個表格進行排列并且編號:男青年基 本 條 件要 求 條 件 外貌 性格 氣質 事業財富 年齡 外貌 性格 氣質 事業 財富1abcde27bcbdb2bbabb28baabc3cabbd28cabcd4cbcbb28bbcdc5adceb28aaacc6dbaaa28abade7badec28acbbc8abbcc28aabcd9cabad28babbc10acbca29aacbd11cabad29babbc12abcab29babbc13cd

12、aaa29abaed14dbcaa30cbbbe15abbdc30cbbdc16babcd30abccd17aabbd30accdc18debaa30aaaee19abacb31bbacc20bacda32abcdb女青年基 本 條 件要 求 條 件 外貌 性格 氣質 事業財富 年齡 外貌 性格 氣質 事業 財富1babad25cbbab2bdcec25abcab3bbcaa25baabd4aeeda25aadac5bacce25bbbaa6cbaea26bacbc7acbca26babbc8aaace26cbbba9becea26aabbe10eacbb26cabcc11abbcd27aab

13、ba12bcdbb27bbaac13accda28babad14abbcb28cbabc15bacdc28babba16aabbc28cabac17cbaac29babbb18dbacd29bbabb19dcbab30cbaac20abaec31babab注:表格中的要求條件一般是指不低于所給條件3.問題分析 該問題是現實生活中的實際問題,主要就是確定合理配對方案,使得在盡量滿足個人要求條件下,使配對成功率盡可能的高。由于每個人的基本條件和要求條件都是給定的,雙方彼此是知道的,而且是相互之間有很大的差異,如果完全按照要求條件組合配對成功。任意一對男女的配對可以看成一個隨機事件,按某一概率可能配

14、對成功,或不成功。在這里雙方的滿意度主要反映出一個人對另一個人的客觀和主觀看法,因此,滿意度的定義成為解決問題的一個關鍵。所謂的“成功率”,就是男女雙方最終配對的概率。實際上,可以用他們相互之間的滿意度來間接刻畫。相互的滿意度越高,雙方配對的成功率就越大。對于問題(1),要使配對成功率盡可能的高明,也就是給出一種方案,使得20對男女的配對后的滿意度之和最高。對于問題(2),要使20對男女青年同時配對,使得全部同時成功的可能性(概率)最大。對于問題(3),因為每人個只能選擇一次,能不配對成功取決于雙方是不是選中對方,即要看雙方彼此的滿意度如何。實際中,假如一個男青年()對一個女青年()的滿意度最

15、高,但對的滿意度不一定最高,即若選擇,但不一定選擇。因此,與不一定配成對,反之亦然。現在的問題是誰選誰,使配對成功的可能性最大呢?這個問題實際上是男女雙方在彼此基本了解的情況下,在保證自己一定滿意的條件下做出自己的選擇,也需要猜測對方會做出怎樣的選擇。因此,這個問題可能轉化為男女雙方的對策問題,即轉化為求男女雙方的非零和對策的納什平衡點的問題。4. 模型的假設與符號說明41模型的假設 (1)題目所給出的男女青年的評價是客觀真實的;(2)每個人在選擇雙方的時候是理智的; (3)男女青年不會受當時環境的影響。42符號說明k=1,2,3,4,5.分別表示外貌、性格、氣質、事業、財富這5個條件;(i=

16、1,2 20)表示年齡升序排列后男青年編號;(j=1,2 20)表示年齡升序排列后女青年編號;( i=1,2 20,k=1,2,3,4,5)表示男青年在k方面的基本條件; ( i=1,2 20,k=1,2,3,4,5)表示男青年在k方面的要求; ( j=1,2 20,k=1,2,3,4,5)表示女青年在k方面的基本條件;( j=1,2 20,k=1,2,3,4,5)表示女青年在k方面的要求;表示男青年i對女青年j在k方面的滿意度;表示女青年j對男青年i在k方面的滿意度;表示男青年i與女青年j在k方面的滿意度之和.5模型的建立和求解5.1條件量化處理 對于每個人的外貌、性格、氣質、事業、財富五項

17、條件的5個等級a,b,c,d,e分別作量化處理為5,4,3,2,1。于是根據上表可以得到男女青年的基本條件量化矩陣和要求條件量化矩陣(或稱權值矩陣)以及滿意度分量分別記為:5.2 滿意度現在,我們對滿意度進行說明,要確定對的第k項條件的滿意度。先對年齡進行篩選,年齡為大于或大于的滿意度為0;如果基本條件達不到的要求即,給它賦值為0值.否則,滿意度記為剛好達到為1,超過一個等級加1。即滿意度為。這樣就體現了,當一方實際條件高于對方期望(要求)條件時,則對方對他(她)的好感(相對于要求條件)就會增加,超過得越多,好感增加得越多。5.3模型的建立 我們把二十個青年男女抽象化為40個結點得到一個帶權二

18、部圖,其中aj表示二十個男青年,bj表示二十個女青年,而從男青年到女青年有一條帶權邊,權則由上面求得的滿意度矩陣決定,然后,我們用最大二部圖匹配算法(匈牙利算法)求出一個最大匹配的解;但是,一開始所求得的是一個有向圖,因此我們必須把它無向化,至此對問題(1)我們僅僅是采用把兩結點間權值相加而轉化為一個無向圖,進而就可以用匈牙利算法對其求解了。而對于問題(2)則要采用圖的完美匹配算法(km算法)進行求解,從而使全部配對成功的可能性最大,對于問題(3),則同樣采用匈牙利算法只是把權值改變即可,這里我們把結點間有向邊的權值同時大于2且滿意度和不滿意度差別不是很大時才有可能配對成功此時把它賦為1,而在

19、不滿足條件時則賦為0,從而得出能配對成功最多的方案。下面對匈牙利算法和km算法進行說明。匈牙利算法的主要思想是在每次增廣的時候不是找一條增廣路而是同時找幾條點不相交的最短增廣路,形成極大增廣路集,隨后可以沿著這幾條增廣路同時進行增廣。可以證明在尋找增廣路集的每一個階段所尋找到的最短增廣路都具有相等的長度,并且隨著算法的進行最短增廣路的長度是越來越長的,更進一步分析可以證明最多只需增廣ceil(sqrt(n)次就可以得到最大匹配(證明在這里略去)。km算法:(全稱是kuhn-munkras,是這二個人在1957年提出來的),首先為每個點設立一個頂標li,設vi,j-為(i,j)邊的權,如果可以求

20、得一個完美匹配,使得每條匹配邊vi,,其余邊。此時的解就是最優的,因為匹配邊的權和=,其余任意解的權和都不可能比這個大。5.4模型的求解以題中所給數據為例,我們用excel處理后得到權值,然后編程求得結果為:問題(1)男a1a2a3a4a5a6a7a8a9a10女b18b17b16b15b2b19b3b12b1b14男a11a12a13a14a15a16a17a18a19a20女b20b10b7b8b6b5b4b11b9b13問題(2)男a1a2a3a4a5a6a7a8a9a10女b11b12b19b18b8b5b3b6b2b20男a11a12a13a14a15a16a17a18a19a20女

21、b1b17b7b14b15b13b16b9b4b10問題(3)男a1a3a5a10a12a14a15a17a18a19女b15b18b19b9b2b6b4b14b11b85.5模型修正(1)對滿意度的說明首先要注意到兩個事實:其一,如果基本條件比的要求條件差得越多,則對的第k項條件的滿意度就越小,反之亦然。也就是說,如果一方的實際條件比對方期望(要求)的條件差距越大,則對方對另一方失望就越大,即滿意度就越小。其二,如果的基本條件比的要求條件高,則對的第k項條件的滿意度(k)就會增加,但增加不會太多。即當一方的實際條件高于對方期望(要求)的條件時,則對方對加一方的好感(相對要求條件)增加不會太大

22、。而在模型中只考慮了實際條件高于要求條件,好感會增加并考慮到實際條件低于要求條件時,失望會增加,即滿意度會減小。現在模型的基礎上加以改進:如果的基本條件達不到的要求,即()時,給它賦值它是一個負值,體現了當一方實際條件低于期望(要求)的條件時,則對方對他(她)失望(相對于要求條件)就會增加差距越大,失望度就越大,相應的滿意度就越小。顯然,改進后成功的解決了上面所提出的問題,所以顯得更加合理。滿意度矩陣中的各分量分別表示如下:(2) 模型的重新建立 首先,我們把量化的尺度改為1-9尺度把a,b,c,d,e五個等級分別量化為9、7、5、3、1,然后在給出的二部圖轉化為無向圖時則把每個結點分為兩個結

23、點,從而問題轉化為求40對結點的二部圖的最大匹配和完美匹配問題了,對問題1和問題2用同樣算法求解,而對于問題3則當滿意度矩陣中的權大于零時賦為1而在小于零時則賦為0。(3)以題中所給數據為例,我們用excel處理后得到權值,然后編程求得結果為:問題(1)男a1a2a3a4a5a6a7a8a9a10女b4b18b15b20b2b5b3b13b17b9男a11a12a13a14a15a16a17a18a19a20女b16b10b7b1b6b19b14b11b8b12問題(2)男a1a2a3a4a5a6a7a8a9a10女b2b18b6b14b19b5b3b13b11b20男a11a12a13a14

24、a15a16a17a18a19a20女b1b17b7b12b15b9b16b8b4b10問題(3)男a1a3a5a10a12a14a15a17a18a19女b15b18b19b9b2b6b4b14b11b86. 模型結果的分析 從所得的結果分析可知,模型改進后所得到的結果比改進前所得到的結果更加合理,對問題1是為了要盡量滿足個人要求的條件使配對成功率更高,即要使得二部圖中的邊的權值相對來說是比較大的,而對問題2則是要全部配對成功的可能性最高,即是要使得所得到的完美配對圖的權值之和最大即使得要20對同進配對的可能性最大的方案。而對問題3則要在男女雙方都滿意的前提下并且是雙方都選擇了雙方。則從我們

25、得到的結果可知模型改進后得到的結果比模型要更優。7. 模型的優缺點 對于兩個模型,改進前的模型顯然比改進后的模型粗糙得多,但是運行起來相對簡單,而且在模型中我們運用了匈牙利算法使問題更加簡單化,充分體現了熟練運用數學軟件在我們運用數學思想解決實際問題中的重要性。而在改進后的模型中,我們利用圖論的思想,運用匈牙利算法(二部圖的最大匹配算法)和km算法(二部圖的完美匹配算法),并且將原精度提高,采用1-9尺度,使得問題的解答更加精確,但是由于算法太復雜,在計算機計算方面顯得比較吃力,運行也相對難以實現一點。在社會上各人的擇偶標準不同,所以他們在選擇對象的側重點也會不同,比方說;有的人會特別注重外表

26、,然而有的人特別注重對方的事業和個人的氣質等等。而我們在兩個模型中,只是簡單的將五個方面的五個等級分別賦值為幾個數值,不能體現個人的側重點。同時,我們在模型中假設了對各人的抽樣是真實可靠的,然而各人的擇偶標準還會隨時間不斷改變,所以假設不一定會長久成立,若在模型的改進方向上再注意這些問題,結果會更接近現實。參考文獻1韓中庚.數學建模方法及其應用m.北京:高等教育出版社,2005.5.2邊馥萍,侯文華,梁馮珍.數學模型方法與算法m.北京:高等教育出版社,2005.4.3姜啟源,謝金星.數學模型(第三版)m.北京:高等教育出版社,2003.8.4吳乃陵,況迎輝.c+程序設計(第二版)m.北京:高等

27、教育出版社,2006.3.5 bczdek j, pal s. fuzzy models for pattern recognition m. piscataway: ieee press, 1992. 6 zdek j. pattern recognition with km algorithm m. new york: plenumbe press, 1981. 附 錄匈牙利算法#include<iostream> #include<string> #include<vector> using namespace std; bool mark1100,m

28、ark2100; int list100; int n,m,edge,num;c ector<vector<int> > v; bool dfs(int to) register int i,point,s = listto; for(i=0;i<vs.size();i+) point = vsi; if(!mark2point) continue; mark2point = false; if(listpoint=-1 | dfs(point) listpoint = s; return true; return false; void solve() int

29、i,j,point; bool flog = false; memset(mark1,true,sizeof(mark1); memset(list,-1,sizeof(list); num=0; for(i=0;i<n;i+) for(j=0;j<vi.size();j+) if(listvij = -1) mark1i = false; listvij = i; num+; if(i=0) flog = true; break; for(i=0;i<n;i+) if(mark1i) if(!vi.empty() memset(mark2,true,sizeof(mark2

30、); for(j=0;j<vi.size();j+) point = vij; if(!mark2point) continue; mark2point = false; if(listpoint = -1 | dfs(point) listpoint = i; num+; break; mark1i = false; if(flog | list0 != -1) cout << num-1 << endl; else cout << num << endl; int main() int i,j,s,d; while(cin>>

31、;n) if(n = 0)break; v.clear(); v.resize(n); cin >> m >> edge; for(i=0;i<edge;i+) cin >> j >> s >> d; vs.push_back(d); solve(); return 0; km算法:#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int size = 160; const

32、int inf = 100000000;  /  相對無窮大 bool mapsizesize;         / 二分圖的相等子圖, mapij = true 代表xi與yj有邊 bool xckdsize, yckdsize;  / 標記在一次dfs中,xi與yi是否在交錯樹上 int matchsize;             / 保存匹配信息,其中i為y中的頂點標號,matchi為x中頂點標號 bool dfs(int, const

33、int); void km_perfect_match(const int n, const int edgesize)    int i, j;    int lxsize, lysize;   /  km算法中xi與yi的標號    for(i = 0; i < n; i+)       lxi = -inf;       lyi = 0;       for(j = 0; j

34、 < n; j+)          lxi = max(lxi, edgeij);                bool perfect = false;     while(!perfect)       /  初始化鄰接矩陣         for(i = 0; i < n; i+)       &

35、#160;     for(j = 0; j < n; j+)             if(lxi+lyj = edgeij) mapij = true;             else mapij = false;                        / 匹

36、配過程       int live = 0;       memset(match, -1, sizeof(match);       for(i = 0; i < n; i+)          memset(xckd, false, sizeof(xckd);          memset(yckd, false, sizeof(yckd);

37、         if(dfs(i, n) live+;          else             xckdi = true;             break;                   

38、;     if(live = n) perfect = true;       else          / 修改標號過程          int ex = inf;          for(i = 0; i < n; i+)             fo

39、r(j = 0; xckdi && j < n; j+)                if(!yckdj) ex = min(ex, lxi+lyj-edgeij);                                 for(i = 0; i < n; i+)             if(xckdi) lxi -= ex;             if(yckdi) lyi += ex;                      / 此函數用來尋找是否有以xp為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論