数学建模常用技巧幻灯片.ppt
《数学建模常用技巧幻灯片.ppt》由会员分享,可在线阅读,更多相关《数学建模常用技巧幻灯片.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数学建模常用技巧第1页,共30页,编辑于2022年,星期六常用技巧n计算复杂性分析n算法设计 精确算法 近似算法n算法计算量估计、算法优劣比较第2页,共30页,编辑于2022年,星期六比较算法的好坏,从不同的角度出发,有各种不同的标准。在这里,我们仅就算法比较算法的好坏,从不同的角度出发,有各种不同的标准。在这里,我们仅就算法的计算速度作一个十分粗略的比较。的计算速度作一个十分粗略的比较。例例1 1 (整理问题)给定(整理问题)给定n n个实数个实数a a1 1,a a2 2,a an n,要求将它整理成由小到大排列(或,要求将它整理成由小到大排列(或由大到小排列)的顺序:由大到小排列)的顺序
2、:b b1 1,b b2 2,b bn n,b b1 1 b b2 2 b bn n。(算法(算法1 1)取出取出a a1 1,a a2 2,a an n中的最小者,令其为中的最小者,令其为b b1 1。从。从a a1 1,a a2 2,a an n中去除中去除b b1 1,在余,在余下的下的n n1 1个数中选出最小者,令其为个数中选出最小者,令其为b b2 2,直至得到,直至得到b b1 1,b b2 2,b bn n。容易看出,为了排出容易看出,为了排出b b1 1,b b2 2,b bn n,算进行了,算进行了 n(n-1)/2n(n-1)/2 次比较。次比较。(算法(算法2 2)步步
3、0 0 b b1 1a a1 1 步步1 1 设已有设已有b b1 1,b bk k(1(1knkn),将按两分法比较的方式把,将按两分法比较的方式把a ak k+1+1排入其中:若排入其中:若b b1 1b bi ia ak+1k+1b bi i+1+1b bk k,令(,令(b b1 1,b b2 2,b bk k,b bk k+1+1)(b b1 1,b bi i,a ak k+1+1,b bi i+1+1,b bk k)。若)。若k k+1+1 b b4 4,可再和,可再和b b6 6比(若比(若a a8 8 b b4 4则和则和b b2 2比),易见,只要比比),易见,只要比3 3次
4、即可排入次即可排入a a8 8,由于,由于r rloglog2 2k k+1+1,算法的比较次数不超过,算法的比较次数不超过令令 ,设计算机每秒可作,设计算机每秒可作C C次比较,则算法次比较,则算法1 1与与算法算法2 2整理整理a a1 1,a a2 2,a an n所用的时间分别为所用的时间分别为 若若n n=100=100万,万,C=100C=100万次万次/秒,则秒,则t t1 15.85.8天,而天,而t t2 22020秒。可见在较大规模的秒。可见在较大规模的整理问题时,算法整理问题时,算法2 2明显优于算法明显优于算法1 1。第4页,共30页,编辑于2022年,星期六现设一台每
5、小时能作现设一台每小时能作M M次运算的计算机,并设求解某一问题已有了两个不同次运算的计算机,并设求解某一问题已有了两个不同的算法。算法的算法。算法A A对规模为对规模为n n的实例约需作的实例约需作n n2 2次运算而算法次运算而算法B B则约需作则约需作2 2n n次运算。次运算。于是,运用算法于是,运用算法A A在一小时内可解一个规模为在一小时内可解一个规模为 的实例,而算法的实例,而算法B B则只能则只能解一个规模为解一个规模为loglog2 2M M的实例。两者的差别究竟有多大呢?让我们来对比一下。的实例。两者的差别究竟有多大呢?让我们来对比一下。假如计算机每秒可作假如计算机每秒可作
6、100100万次运算,则算法万次运算,则算法A A一小时大约可解一个规模为一小时大约可解一个规模为n n=60000=60000的实例,而算法的实例,而算法B B在一小时内只能解一个规模在一小时内只能解一个规模 的实例且的实例且n n每每增加增加1 1,算法,算法B B求解时所化的时间就将增加求解时所化的时间就将增加1 1倍。例如算法倍。例如算法B B求解一个求解一个n n=50=50的的实例将连续运算实例将连续运算357357年多。年多。现设计算速度提高了现设计算速度提高了 100100倍,这对计算机来讲已是一个相当大的改进。此时算法倍,这对计算机来讲已是一个相当大的改进。此时算法A A可解
7、问题的规模增大了可解问题的规模增大了1010倍,而算法倍,而算法B B可解问题的规模只增加了可解问题的规模只增加了loglog2 2100710000,对任意正整数,对任意正整数N N,总可找,总可找到一个大于到一个大于N N的正整数的正整数n n及及D D的一个规模为的一个规模为n n的实例,对这一实例有的实例,对这一实例有fBfB(D D,n n)=)=O O(2(2knkn),则称,则称B B为求解问题为求解问题D D的一个指数算法。的一个指数算法。多项式算法被称为是多项式算法被称为是“好好”的算法即所谓有效算法,而指数算法则一般被认为是的算法即所谓有效算法,而指数算法则一般被认为是“坏
8、坏”算法,因为它只能求解规模极小的实例。算法,因为它只能求解规模极小的实例。第6页,共30页,编辑于2022年,星期六下面的表下面的表1 1列出了在规模大约为列出了在规模大约为n n时各类算法的计算量,而表时各类算法的计算量,而表2 2则反映了当则反映了当计算机速度提高计算机速度提高1010倍、倍、100100倍时,各类算法在倍时,各类算法在1 1小时内可求解的问题的模型小时内可求解的问题的模型的增长情况,(前三个是多项式时间的,后两个是指数时间的)的增长情况,(前三个是多项式时间的,后两个是指数时间的)表表1 1 几个多项式和指数时间复杂性函数增长情况几个多项式和指数时间复杂性函数增长情况算
9、法要求的计算量算法要求的计算量规模规模n的近似值的近似值101001000n101001000nlogn336649966n31031061092n10241.2710301.0510301n!3628800101584102567第7页,共30页,编辑于2022年,星期六表表2 12 1小时内可解的问题实例的规模小时内可解的问题实例的规模算法要求的计算量算法要求的计算量用现在计算机用现在计算机用快用快10倍计算机倍计算机用快用快100倍计算机倍计算机nN110N1100N1nlognN28.2N267N2n3N32.15N34.64N32nN4N4+3.32N4+6.64n!N5N5+2N5
10、+3由上可知由上可知4 4n n2 2与与2 2n n2 2都是都是O O(n n2 2),n nloglogn n+3+3n n是是O O(n nloglogn n),我们在以后分析时间复杂性函数时,我们在以后分析时间复杂性函数时也往往忽略常系数和增长速度较慢的项,因为前者可通过提高计算机速度来提高效率,而也往往忽略常系数和增长速度较慢的项,因为前者可通过提高计算机速度来提高效率,而后者增长速度最快的项才是决定效率的关键因素。后者增长速度最快的项才是决定效率的关键因素。下面介绍六个最初的下面介绍六个最初的NPNP难问题难问题第8页,共30页,编辑于2022年,星期六(1 1)()(3 3满足
11、问题,简记满足问题,简记3 3SATSAT问题)问题)每一个句子都是一个三项式每一个句子都是一个三项式的的SATSAT问题,称为问题,称为3 3SATSAT问题。问题。例如,例如,就是就是3 3SATSAT的一个实例。的一个实例。命题逻辑中合取范式(CN F)的可满足性问题(SA T)是当代理论计算机科学的核心问题,是一典型的N P 完全问题.考虑考虑CN FCN F:A=C1 A=C1 C i C i Cn(1)Cn(1)子句子句C i C i 具有如下形式:具有如下形式:Pi,1Pi,2Pi,1Pi,2 Pi,kiPi,kiP Pri,1 Pri,2ri,1 Pri,2 Pri,kri,P
12、ri,kri,其中其中Pi,1,Pi,2,Pi,1,Pi,2,Pi,ki,Pi,ki,P Pri,1,Pri,2,ri,1,Pri,2,Pri,kri,Pri,kri是两两不同的文字是两两不同的文字,Pi,j,Pi,j为命题变元为命题变元集集P1,P2,P1,P2,Pm,Pm 中的一个变元中的一个变元,文字文字Pi Pi 表示变元表示变元Pi Pi 的非的非,m,m 表示表示命题变元的个数命题变元的个数,n,n 表示子句的个表示子句的个.一个SA T 问题是指:对于给定的CN F 是否存在一组关于命题变元的真值指派使得A 为真.下面介绍六个最初的下面介绍六个最初的NPNP难问题难问题第9页,共
13、30页,编辑于2022年,星期六(1 1)()(3 3满足问题,简记满足问题,简记3 3SATSAT问题)问题)每一个句子都是一个三项式每一个句子都是一个三项式的的SATSAT问题,称为问题,称为3 3SATSAT问题。问题。例如,例如,就是就是3 3SATSAT的一个实例。的一个实例。下面介绍六个最初的下面介绍六个最初的NPNP难问题难问题如果如果A A 为真为真,则则CN F CN F 的每个子句中必有一个命的每个子句中必有一个命题变元为题变元为1(1(真真),),将每个将每个子句中的每个命题变元取反子句中的每个命题变元取反,则则CN F CN F 的每个子句中必有一个命题变元的每个子句中
14、必有一个命题变元为为0(0(假假),),然后将然后将看成加看成加,将将看成乘看成乘,将变元将变元P i P i 看成看成实参数实参数x i,x i,则则SA T SA T 问题就可以转换为一个求相应实问题就可以转换为一个求相应实函数最小值的优化问题函数最小值的优化问题.令令T T 表示这种转换表示这种转换,它可它可递归地定义为递归地定义为T:A Rm R,T:A Rm R,T(C1T(C1 C iC i Cn)=T(C1)+Cn)=T(C1)+T(C i)+T(C i)+T(Cn),+T(Cn),T(C i)=T(T(C i)=T(P Pi,1P i,2i,1P i,2 P i,k iP i,
15、k i P Pri,1ri,1Pri,2Pri,2 Pri,k ri)Pri,k ri)=T T(P i,1)T(P i,2)(P i,1)T(P i,2)T(P i,k i)T(T(P i,k i)T(P Pri,1)T(ri,1)T(Pri,2)Pri,2)T(T(Pri,k ri),Pri,k ri),i=1,i=1,n.,n.T(P i)=1-x i,T(T(P i)=1-x i,T(P Pi)=x i,x i0,1,i=1,i)=x i,x i0,1,i=1,m,m,T(T)=1,T(F)=0.T(T)=1,T(F)=0.第10页,共30页,编辑于2022年,星期六(1 1)()(3
16、 3满足问题,简记满足问题,简记3 3SATSAT问题)问题)每一个句子都是一个三项式每一个句子都是一个三项式的的SATSAT问题,称为问题,称为3 3SATSAT问题。问题。例如,例如,就是就是3 3SATSAT的一个实例。的一个实例。下面介绍六个最初的下面介绍六个最初的NPNP难问题难问题例如例如,T (P1T (P1 P P2)(2)(P P11P P2)=2)=T(P1T(P1P P2)+2)+T(T(P P11P P2)=2)=T(P1)T(T(P1)T(P P2)+2)+T(T(P P1)1)T(T(P Pv2)v2)=(1-=(1-x1)x2+x1x2,x1)x2+x1x2,用用
17、E(x1,x2,E(x1,x2,xm),xm)表示表示T(A)T(A)在点在点(v(P 1),(v(P 1),v(Pm)v(Pm)的值的值,则有下面定理则有下面定理.定理定理1.1.赋值赋值v v 为使为使A A 可满足的充要条件是可满足的充要条件是E(x1,x2,E(x1,x2,x m),x m)达到最小达到最小值值0.0.于是一个SA T 问题可以转化为优化模型求解:minE(x1,x2,E(x1,x2,x m),x m)ST:xi=0,ST:xi=0,或或1 1 第11页,共30页,编辑于2022年,星期六2 2)(三维匹配问题)(三维匹配问题3DM3DM)X X、Y Y、Z Z是三个不
18、相交的集合,是三个不相交的集合,|X X|=|=|Y Y|=|=|Z Z|=|=q q,。,。问:问:M M中是否包含一个匹配中是否包含一个匹配M M,使得,使得 (等价问题是求最大三维匹配)。(等价问题是求最大三维匹配)。注:这里给出的是标准形式,一般可不必要求注:这里给出的是标准形式,一般可不必要求|X X|=|=|Y Y|=|=|Z Z|,表示笛卡尔乘积。,表示笛卡尔乘积。三维匹配问题是二维匹配(三维匹配问题是二维匹配(2DM2DM)问题的推广,)问题的推广,2 2DMDM是是P P问题而问题而3 3DMDM是是NPNP完全的。完全的。一个匹配是指一个匹配是指M M的一个子集合的一个子集
19、合(x xi i,y yi i,z zi i),x xi iX X,y yi iY Y,z zi iZ Z,且当下标,且当下标不同时,它们分别取三个集合中的不同元素。不同时,它们分别取三个集合中的不同元素。3DM3DM可作如下形象的解释:记一可作如下形象的解释:记一单身男人集合为单身男人集合为X X,一单身女人集合为,一单身女人集合为Y Y,此外还有一个住房集合,此外还有一个住房集合Z Z。其间存在。其间存在一相容关系(例如有些人之间不愿组成家庭,或不愿住某一住房),这样就给一相容关系(例如有些人之间不愿组成家庭,或不愿住某一住房),这样就给出了一个集合出了一个集合,M M是由问题给出的,表示
20、了所有可能组合。所求的匹配即组成的一组家庭是由问题给出的,表示了所有可能组合。所求的匹配即组成的一组家庭(包括住房),其中不能有重婚,也不能让不同的两个家庭住进同一住房。(包括住房),其中不能有重婚,也不能让不同的两个家庭住进同一住房。下面介绍六个最初的下面介绍六个最初的NPNP难问题难问题第12页,共30页,编辑于2022年,星期六(3 3)(划分问题)(划分问题)给定一正整集合给定一正整集合A A=a a1 1,a a2 2,a an n,问是否存在,问是否存在A A的一个子集的一个子集A A,使得使得 ,即是否可将,即是否可将A A中的数分成总和相等的中的数分成总和相等的两部分。两部分。
21、(4 4)(顶点复盖问题)(顶点复盖问题VCVC)给定一个图)给定一个图G G=(V V,E E)及一个正)及一个正整数整数K K|V V|,问,问G G中是否有不超过中是否有不超过K K个顶点的复盖。个顶点的复盖。(一个顶点的子集称为(一个顶点的子集称为G G的一个复盖,若它至少包含的一个复盖,若它至少包含G G中任一边的两中任一边的两个端点之一)。个端点之一)。下面介绍六个最初的下面介绍六个最初的NPNP难问题难问题找出所有满足找出所有满足xi=0 xi=0或或1 1,f=ai*xi=f=ai*xi=(AA)/2/2的解的解练习:用MATLAB或LINGO实现划分问题划分问题(5 5)(团
22、问题)(团问题,控制集问题控制集问题)给定图给定图G G=(V V,E E)及一正整数)及一正整数K K|V V|,问是否存在图,问是否存在图G G中的一个团中的一个团V V,|V V|K K。(。(G G的一的一个顶点的子集个顶点的子集V V称为称为G G的一个团,若的一个团,若V V中任意两点间都有中任意两点间都有E E中的边中的边相连)。相连)。第13页,共30页,编辑于2022年,星期六问题问题4,54,5的应用之一的应用之一:系统监控模型系统监控模型 设图设图G=(V,E),K V如果图如果图G的每条边都至少有一个的每条边都至少有一个顶点在顶点在K中中,则称则称K是是G的一个的一个点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 常用 技巧 幻灯片
限制150内