数独问题_数学建模

数独问题_数学建模
数独问题_数学建模

数独问题

摘要

本文是对数独问题进行求解。结合数独生成的特点,立足于题中数独建模和

WNF P函数和整数规划模型。

求解的要求,建立了数独难度分析()

对于问题一,首先研究数独难度的影响因素,通过综合分析数独的特点结构,WNF P可以在常数时间计算出来以衡量数独的难易程度。通过计算可知得出()

()0.04531

WNF P=,根据数独难度的划分得到如下结论:数独难度系数为4,达到了极难的程度。

对于问题二,我们通过对此数独的分析和讨论,利用穷举法,通过matlab 软件编程求解,最终得出答案,如表1所示。

对于问题三,我们利用回溯法思想,建立求解模型,具体算法一般采用如下步骤:

1).在此数独初盘选择一个空单元格;

2).取这个单元格中一个可能的候选数;

3).将这个候选数填入单元格中,迭代完成数独;

4).若这个候选数推导得到一个无效数独终盘,返回此单元格取其他候选数;

对于问题四采用整数规划模型,采用三维0-1 变量的方法,运用lingo软件编程求解。最终得到答案,如表1所示。

关键词:数独数独难度分析穷举法回溯法整体规划

1问题的重述

前段时间芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上,让大家去挑战。该数独如下图所示:

数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫的数字均含1-9,且不重复。每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。

根据以上描述,试完成以下问题:

1. 分析此数独的难度;

2. 用穷举算法求解数独;

3. 设计此数独求解的较优的算法;

4. 建立数独求解模型并给出此数独的答案。

2模型的基本假设

1该数独问题存在唯一解。

3符号说明

X表示空单元格候选数

?

()

X的加权函数

W n表示候选数数?

()

c X表示数独空单元格中的候选数数目函数

n

E p表示该数独的空格处

()

()

WNF P表示该数独难度的函数

x表示数k是否填入数独方中的(i,j)处

ijk

c表示往空格处填入0后数独方中(i,j)处的数

ij

y表示经过求解后数独方中(i,j)处的数

ij

4模型的建立与求解

4.1 问题1

4.1.1数独难度的影响因素

通过对数独的分析与研究,数独难度与数独候选数、逻辑推理方法、搜索步数、空格数以及空格的分布情况都有密切的关系。通过大量的计算观察发现,用到的逻辑与推理方法越复杂,那么在数独中出现的候选数越多;反之,在数独题中出现的候选数越多,解决数独题所用到的逻辑推理方法一般也越难。解答一个数独所用到的搜索步数越多,数独中的候选数越多。反之,一般情况下也成立。另外数独中的空格数以及空格的分布情况与候选数也有同样类似的关系。综合这几个影响数独难度的几种因素,分析候选数和空格数为主要影响因素,再根据其构造加权规函数()WNF P ,计算数值来衡量数独难度。

4.1.2 ()WNF P 函数的建立

加权规函数建立在候选数列表的基础上。根据候选数列表,计算出每一个空单元格中的候选数数目,将候选数数目与其相对应的加权函数结合起来,计算加权规函数WNF 。

定义单元格X 中的候选数数目函数()c X 为()?c X =X ,这个函数仅适用 于数独P 中的空单元格,而数独P 中的空单元格可以表示为

(){}{}|1,2,3,4,5,6,7,8,9:ννE P =X∈P ?∈X →/ (1)

有()19n n <<个候选数的候选数数目函数

()(){}{}||?n C c n n X =X∈P X ==X∈P X = (2)

我们赋予它相应的加权函数()W n ,从而得到加权函数

()()()9

1n n WF W n C =P =P ∑ (3)

()WF P 不能准确的反映数独难度,()WF P 受数独中空单元格数目影响很大,呈正向关系,如在数独中删除单元格,数独空单元格数增加,导致()WF P 增加,即空格数越多,()WF P 越大,然而这并不符合所有的数独。为了排除这一影响,将加权函数()WF P 规,得到加权规函数:

()()

()()()

9

1

9n W n C W WNF =P P =

E P ∑ (4)

根据以上的分析,对于某单元格X ,其候选数数?X 越大,其对应的加权函数()W n 也应越大。我们采用指数函数()exp 2n W n =”计算数独P 的()WNF P ,其中n 为某空单元格的候选数数目。计算发现,()WNF P 与数独难度是正相关的,即()WNF P 越大,数独的难度越大。

4.1.3 ()WNF P 函数的求解

根据题中给出的数独,按照数独游戏应该满足的条件,可以得到该数独的空

格处的候选数列表,如下表2所示:

表2 空格处候选数列表

8 1246 24569 2347 12357 1234 13569 4579 1345679 12459 124 3 6 12578 1248 1589 45789 14579 1456 7 456 348 9 1348 2 458 13456 123469 5 2469 2389 2368 7 1689 2489 12469 12369 12368 269 2389 4 5 7 289 1269 24679 2468 24679 1 268 2689 5689 3 24569 23457 234 1 23479 237 2349 359 6 8 23467 2346 8 5 2367 23469 39 1 2379 23567 9 2567 2378 123678 12368 4 257 2357

根据表2,把所得变量带入式(3)得:

()1392WF P = (5)

由()60E P =代入式(4)式中得:

()0.04531WNF P = (6)

4.1.4数独难度的划分

根据计算所得()WNF P 大小,我们将数独题难度分为四个区间,分别表示简单、中等、难、极难。为方便表示,我们用1、2、3、4来表示难度系数。

1)若()()0,0.012WNF P ∈,数独简单,有较多候选数的空单元格很少,此时数独题用一些简单的直观法就可以解决,用1表示。

2)若()()

WNF P∈,数独有一定难度,要解决此数独要用到候选

0.012,0.035

数法中的一些简单方法,且与直观法结合起来推理,用2表示。

WNF P∈,数独比较难,部逻辑结构复杂,将直观法与

3)若()()

0.035,0.045

候选数法结合起来一般可以解决问题,用3表示。

0.045,1

WNF P∈,这个数独很难,部的逻辑结构相当复杂,将直观

4)若()()

法与候选数法结合起来不一定可以解决问题,甚至有时候需要对某些空单元格进行猜测,用4表示。

在这里,我们将(0,1)粗略分为四个区间,用来相对表示数独的相对难度。根据数独难度的划分,由式(6)可得此数独难度系数为4,达到了极难的程度。

4.2 问题2

4.2.1算法的介绍

本问中需要的是用穷举法对数独问题进行求解,首先介绍一下穷举法:穷举法,或称为暴力破解法,是基于计算机特点而进行解题的思维方法。一般是在一时找不出解决问题的更好途径(即从数学上找不到求解的公式或规则)时,可以根据问题中的部分条件(约束条件)将所有可能解的情况列举出来,然后通过逐个验证是否符合整个问题的求解要求,而得到问题的解。这样解决问题的方法我们称之为穷举算法。穷举算法特点是算法简单,但运行时所花费的时间量大。因此,我们在用穷举方法解决问题时,应尽可能将明显的不符合条件的情况排除在外,以尽快取得问题的解。

4.2.2 求解的思想

结合本问中需要用穷举法解决数独问题,最终算出上面所给出的数独问题的解。针对此数独问题,在此先介绍一下我的算法思想:

1)建立一个堆栈来存放数据;

2)根据每行、每列和一个小九宫中不能出现相同的数字的规则来找出所有空格中的所有可能值;

3)从可能值中选取一个可能项最少的并提取一个出来,若还有可能值就将其放入堆栈中去,若提出的值不满足条件则从堆栈中再提取一个值来继续求解直到找到满足条件的解;

举个例子吧,对这一数独问题,可以很快找到第八行第七列的可能值为3和9,其它空格的可能值都超过了三个,现取出3出来进行尝试,那么放入堆栈中的是9和其它的可能值,还有a(数独值),然后一直按这种方法进行下去,要是遇到不满足则从堆栈中重新拿出一个值来,直到结果满足结束循环。下面列了一个流程图,如下流程图所示。首先进行对程序中的所用符号进行说明,先将数独中问题的初始值(空格为0)存入数组a,将所有空格中的可能值存入数组y。

4.2.3 问题的求解

根据该流程图进行编程,并在matlab中实现,具体程序见附录1。经过2分钟左右求解得到最终结果,如下表4所示:

4.3 问题3

根据问题2中处理方法,发现穷举算法的特点是算法简单,但运行时所花费的时间较长。因此,我们在此基础上进行改进,尽可能将明显的不符合条件的情况排除在外,以尽快取得问题的解。在求解数独的过程中,遍历此数独所有可能的搜索树,直至找到数独的解为止!在这个过程中,我们采用回溯法进行求解。

回溯法是一种搜索算法,其基本思路是:在一个问题中,根据题意给出的边界条件划定出所有可能解的围(称为可能解),根据题意确定出约束条件。利用程

序顺次在所有可能解中,搜索时按照深度搜索的方式进行。即在第一层选定一个满足约束条件的解,然后以该可能解为出发点,搜索第二层的一个可能解(试探)。如果搜索到第二层的一个可能解,则继续搜索第三层的一个可能解。依次类推,直到所有层的可能解都被找到,则得到了该问题的一个完整解。如果第二层所有的可能解都不满足约束条件,则返回第一层,放弃原有的可能解,使用第一层的下一个可能解(回溯)。以此类推,寻找第二层的一个可能解。具体算法一般采用如下步骤:

1)在此数独初盘选择一个空单元格;

2)取这个单元格中一个可能的候选数;

3)将这个候选数填入单元格中,迭代完成数独;

4)若这个候选数推导得到一个无效数独终盘,返回此单元格取其他候选数;

由于回溯法是在不断地试探和回溯中运算,因此也可以称为试探法或者试探—回溯法。从上面的描述中可知,回溯法得到的问题的解只是根据不同的初始条件获得的第一个完全满足所有约束条件的解,因此该解的获得和初始条件有关。如果想要获得该问题的全部解,则需要遍历所有的可能的初始条件,也就是遍历所有的第一层的可能解。

回溯法相对于其他穷举的特点在于,不必把问题的每一层的所有的可能解都遍历一遍,只要当前的可能解不满足约束条件就抛弃该解,寻求下一个可能解,而不必求解其余的下层解。当当前层的所有可能解都不满足约束条件,」则回溯到上一层,抛弃上一层的当前可能解。从以上分析中结合数独问题的规则,得出数独问题的约束条件为:

l)每一格的数值围仅限于l一9。

2)每一格的数字在当前行不允许重复。

3)每一格的数字在当前列不允许重复。

4)每一格的数字在当前小九宫不允许重复

此算法最坏运行时间是()n k n-

Ω,其中。n为数独中数字未确定的单元格数,k是数字已经确定的单元格数。但是将这个方法稍作修改就可以在线性时间解决一个数独题目,即首先选择数独中候选数个数最少的空单元格,再在其中选择候选数进行试验一检验。虽然回溯法有超多项式的最坏时间,但是这种算法可以判断任何数独是否具有唯一解,进而解决这个数独,难度很大的数独求解经常用到此法。

4.4 问题4

4.4.1问题的分析

根据对数独问题的分析,可知数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫的数字均含1-9,并且不能重复。

为了叙述方便,对一个空的 9阶数独方的行、列、区进行重新编码。数独方的行序为从上到下记作1~9,列序为从左到右记作1~9;然后把每一个粗线宫作为一个区,区的行序为从上到下记作1~3,列序为从左到右记作1~3;区行的行序为从上到下记作1~3,区列的列序为从左到右记作1~3。具体的编码方式如下图1所示:

4.4.2模型的建立

由于数()1,2,,9k ∈L 要么填入 该9阶数独方矩阵的(i ,j )处,要么不填入,只有这两种状态,因而可用三维0和1 变量来表示。又该9 阶数独方的解唯一,可将这唯一解作为目标函数,行、列、区的约束条件可用三维的0和1 变量表出。

4.4.2.1 决策变量

令1ijk x =: 表示数k 填入 n 阶数独方矩阵的(i ,j )处

0ijk x =: 表示数k 不填入(i ,j )处

4.4.2.2 目标函数与约束

规划问题的目标函数一般都是最大或最小型的,又因根据题意可知该 9 阶数独方的可行解唯一,且该可行解就是最优解,所以确定目标函数为单位数 1。 通过对数独这个问题的分析可以得出,所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫的数字均含1-9,并且不能重复。因此可以得到如下约束 条件:

(1)每一(i ,j )处只能填一个数 k ; (2)第i 行只有一个 k ; (3)第j 列只有一个 k ; (4)第一个区只有一个k ;

4.4.2.3 该9 阶数独方的数学模型

由上述分析可建立该9阶数独方的整数规划模型如下:

min 1z =

()()()()()

9

19

19

133********..1911001

11ijk k ijk j ijk i j

i

mnk m j n i ijk x x s t x x x ====-=-?=???=????=???

=??=??∑∑∑∑∑或

注:

(7)式表示数独方中每一(i ,j )处只能填入一个数k ;

(8)式表示每一行只能有一个数k ; (9)式表示每一列只能有一个数k ; (10)式表示每一个区只能有一个数k ; (11)式表示ijk x 只能取0或1; (12)上所有式中,,1,2,,9i j k =L

4.4.3模型的求解

要想求解问题中给出的数独问题,首先可将题目中的所有空格处填入同一常数a,不妨取 a=0,如表2所示。记 ij c 是表3中(i ,j )处的数,ij y 是数独求解后(i ,j )处的数,ijk x 是三维的0和1 变量,其含义如上所述。由上分析可知,任意填入(i ,j )处的任意数 ()1,2,,9k k =L ,都有9

1

1ijk k x ==∑,那么9

1

ij ijk k y kx ==∑

模型的检验

问题1中采用了一种对数独难度等级的划分方法,首先对问题的进行了综合的分析,然后在多个影响数独难度的因素中选取空格数和空格候选数作为主要影响因素,根据给出的计算方法对该数独进行计算,得出该数独的难度是属于极难的。由于在最后的计算过程中未考虑其他影响因素,因此得到的结果必然存在一定的误差,但这个划分方法还是可取的、有一定道理的。

问题2中采用了穷举法对该问题进行求解,由于该方法考虑了所有可能出现的情况,所以在有解的情况下一定可以求解该问题的解;也正因为如此,运用该算法进行求解时会花费较长的时间。

问题3中设计了一种更优的求解算法——回溯法。它主要是对穷举法进行了一定的改进,缩短了求解该数独问题的的时间。

问题4中建立了一个求解数独问题的模型——整数规划模型。该模型充分考虑了该数独应该满足的约束条件,并在此基础上编程进行求解,得到最终答案。该模型求解的结果相当准确,并适应于这一类问题的求解。

模型的分析与推广

WNF P度量的优劣

1.()

衡量数独难度的最客观方法就是找到解决这个数独所用时间,根据时间的长短判断数独难易。其次,可以根据解答这个数独所用到的逻辑推理方法难易,量数独难度。但这两种方法都需要具体解答出所给数独后才能做出判断,虽然可以

WNF P可以在常数时间计算出以准确反映数独难度,但耗时较多。相比之下,()

衡量数独难易,对于任意一个数独,我们不必具体解答,只需列出它的候选数列表就可以计算出其相对难度,时间复杂性很低。扫描每个单元格所在的行、列、宫,通过唯一性原则确定其上的候选数,这种方法往往使得每个单元格上的候选数较多,而有些候选数是可以通过一些简单的逻辑推理消除的,从而使得()

WNF P的值可能会偏高,过高估量数独的难度,这也是这种方法的缺陷所在。

2.问题2利用穷举法,模型思路比较简单,正适用于解决多维、大规模、复杂问题的通用法,借助matlab软件编程求解,使数独求解更加容易、方便,但它

运行时间比较长。

3.问题3中介绍的算法——回溯法,它通过问题中的约束条件以试探-回溯-试探的筛选方式,将所有解的围中不符合约束条件的解予以排除,从而达到快速求解的目的,这也是求解这一类问题的较优的算法。

4.对于问题4建立新的数独求解模型,我们采用三维0-1 变量,利用lingo 软件编程进行求解,使数独问题的数学表述变得简单易懂。同时该模型可用于处理类似的填数问题如幻方,拉丁方等。

参考文献

[1] 孟庆铃. 数独问题人工解法的程序实现[J]. 科技,2006,22(09):150-151.

[2] 雷蕾,富可. 关于数独问题的算法的设计与实现[J]. 电脑知识与技术,

2007(2):481-482.

[3] 王琼,邹晟. 数独问题的求解、评价与生成算法的研究[J]. 师大学学报:

工程技术版,2010,3(1):76-79.

[4]胡英武.数独问题的整数规划模型[J]. 职业技术学院学报:2011,6:86-88.

[5] 晓宝. 数独游戏的解题算法[J]. 电脑编程技巧与维护,2007(5):64-67.

[6] 程曦,肖华勇.数独谜题难度等级划分的步数法研究[J].电子设计工程,

2012,3:86-89

附录

附录1 问题2中matlab软件求解源程序:clear

clc

a=open('qiujie.mat');

a=a.a;

sp=0;

dui=[];

while find(a==0)

for i=1:3

for j=1:3

b(:,:,3*i+j-3)=a(3*i-2:3*i,3*j-2:3*j);

end

end

for i=1:9

for j=1:9

if a(i,j)==0

clear c

k=3*(ceil(i/3)-1)+ceil(j/3);

c=b(:,:,k);

lg=(c>0);

c=c(lg);

x=setdiff(1:9,c);

clear c

c=a(i,:);

lg=(c>0);

c=c(lg);

x=setdiff(x,c);

clear c

c=a(:,j);

lg=(c>0);

c=c(lg);

x=setdiff(x,c);

n=length(x);

for ii=1:9-n

x(ii+n)=0;

end

else

x=10*ones(1,9);

end

y(9*(i-1)+j,:)=x;

end

end

d=(y>0);

d=d';

d=sum(d);

d=d';

if find(d==0)

y=dui(:,:,sp);

a=dua(:,:,sp);

sp=sp-1;

d=(y>0);

d=d';

d=sum(d);

d=d';

end

d=find(d==min(d));

d=d(1);

i=ceil(d/9);

j=d-9*i+9;

A=y(d,1);

y(d,1)=y(d,2);

y(d,2)=y(d,3);

y(d,3)=0;

if sum(y(d,:))>0

sp=sp+1;

dui(:,:,sp)=y;

dua(:,:,sp)=a;

end

a(i,j)=A;

end

a

附录2 问题4中lingo软件的求解源程序:model:

sets:

da/1..9/:n;

link(da,da):y,c;

link1(da,da,da):x;

endsets

data:

n=1 2 3 4 5 6 7 8 9;

c=

8 0 0 0 0 0 0 0 0

0 0 3 6 0 0 0 0 0

0 7 0 0 9 0 2 0 0

0 5 0 0 0 7 0 0 0

0 0 0 0 4 5 7 0 0

0 0 0 1 0 0 0 3 0

0 0 1 0 0 0 0 6 8

0 0 8 5 0 0 0 1 0

0 9 0 0 0 0 4 0 0 ;

enddata

min=1;

for(da(i):for(da(j):for(link|c(i,j)#ne#0:y(i,j)=c(i,j))));

for(da(i):for(da(j):y(i,j)=sum(da(k):k*x(i,j,k))));

for(da(i):for(da(j):sum(da(k):x(i,j,k))=1));

for(da(i):for(da(k):sum(da(j):x(i,j,k))=1));

for(da(j):for(da(k):sum(da(i):x(i,j,k))=1));

for(da(i)|i#le#3:

for(da(j)|j#le#3:

for(da(k):

x(3*i-2,3*j-2,k)+x(3*i-2,3*j-1,k)+x(3*i-2,3*j,k)

+x(3*i-1,3*j-2,k)+x(3*i-1,3*j-1,k)+x(3*i-1,3*j,k)

+x(3*i,3*j-2,k)+x(3*i,3*j-1,k)+x(3*i,3*j,k)=1)));

for(link1(i,j,k):bin(x));

end

数学建模中常见的十大模型讲课稿

数学建模中常见的十 大模型

精品文档 数学建模常用的十大算法==转 (2011-07-24 16:13:14) 转载▼ 1. 蒙特卡罗算法。该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟来检验自己模型的正确性,几乎是比赛时必用的方法。 2. 数据拟合、参数估计、插值等数据处理算法。比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用MA TLAB 作为工具。 3. 线性规划、整数规划、多元规划、二次规划等规划类算法。建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo 软件求解。 4. 图论算法。这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备。 5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法。这些算法是算法设计中比较常用的方法,竞赛中很多场合会用到。 6. 最优化理论的三大非经典算法:模拟退火算法、神经网络算法、遗传算法。这些问题是用来解决一些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。 7. 网格算法和穷举法。两者都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具。 8. 一些连续数据离散化方法。很多问题都是实际来的,数据可以是连续的,而计算机只能处理离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的。 9. 数值分析算法。如果在比赛中采用高级语言进行编程的话,那些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。 10. 图象处理算法。赛题中有一类问题与图形有关,即使问题与图形无关,论文中也会需要图片来说明问题,这些图形如何展示以及如何处理就是需要解决的问题,通常使用MATLAB 进行处理。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 2 十类算法的详细说明 2.1 蒙特卡罗算法 大多数建模赛题中都离不开计算机仿真,随机性模拟是非常常见的算法之一。 举个例子就是97 年的A 题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的组合方案将要面对着的是一个极其复杂的公式和108 种容差选取方案,根本不可能去求解析解,那如何去找到最优的方案呢?随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。另一个例子就是去年的彩票第二问,要求设计一种更好的方案,首先方案的优劣取决于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。 2.2 数据拟合、参数估计、插值等算法 数据拟合在很多赛题中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是98 年美国赛A 题,生物组织切片的三维插值处理,94 年A 题逢山开路,山体海拔高度的 收集于网络,如有侵权请联系管理员删除

数学建模期末考试A试的题目与答案

华南农业大学期末考试试卷(A 卷) 2012-2013学年第 二 学期 考试科目:数学建模 考试类型:(闭卷)考试 考试时间: 120 分钟 学号 姓名 年级专业 一篮白菜从河岸一边带到河岸对面,由于船的限制,一次只能带 一样东西过河,绝不能在无人看守的情况下将狼和羊放在一起;羊和白菜放在一起,怎样才能将它们安全的带到河对岸去? 建立多步决策模型,将人、狼、羊、白菜分别记为i = 1,2,3,4,当i 在此岸时记x i = 1,否则为0;此岸的状态下用s =(x 1,x 2,x 3,x 4)表示。该问题中决策为乘船方案,记为d = (u 1, u 2, u 3, u 4),当i 在船上时记u i = 1,否则记u i = 0。 (1) 写出该问题的所有允许状态集合;(3分) (2) 写出该问题的所有允许决策集合;(3分) (3) 写出该问题的状态转移率。(3分) (4) 利用图解法给出渡河方案. (3分) 解:(1) S={(1,1,1,1), (1,1,1,0), (1,1,0,1), (1,0,1,1), (1,0,1,0)} 及他们的5个反状(3分) (2) D = {(1,1,0,0), (1,0,1,0), (1,0,0,1), (1,0,0,0)} (6分) (3) s k+1 = s k + (-1) k d k (9分) (4)方法:人先带羊,然后回来,带狼过河,然后把羊带回来,放下羊,带白菜过去,然后再回来把羊带过去。 ?或: 人先带羊过河,然后自己回来,带白菜过去,放下白菜,带着羊回来,然后放下羊,把狼带过去,最后再回转来,带羊过去。 (12分) 1、 二、(满分12分) 在举重比赛中,运动员在高度和体重方面差别很大,请就下面两种假设,建立一个举重能力和体重之间关系的模型: (1) 假设肌肉的强度和其横截面的面积成比例。6分 (2) 假定体重中有一部分是与成年人的尺寸无关,请给出一个改进模型。6分 解:设体重w (千克)与举重成绩y (千克) (1) 由于肌肉强度(I)与其横截面积(S)成比例,所以 y ?I ?S 设h 为个人身高,又横截面积正比于身高的平方,则S ? h 2 再体重正比于身高的三次方,则w ? h 3 (6分) ( 12分) 14分) 某学校规定,运筹学专业的学生毕业时必须至少学

数学建模实验报告第十一章最短路问答

实验名称:第十一章最短路问题 一、实验内容与要求 掌握Dijkstra算法和Floyd算法,并运用这两种算法求一些最短路径的问题。 二、实验软件 MATLAB7.0 三、实验内容 1、在一个城市交通系统中取出一段如图所示,其入口为顶点v1,出口为顶点v8,每条弧段旁的数字表示通过该路段所需时间,每次转弯需要附加时间为3,求v1到v8的最短时间路径。 V1 1 V2 3 V3 1 V5 6 V6 V4 2 V7 4 V8

程序: function y=bijiaodaxiao(f1,f2,f3,f4) v12=1;v23=3;v24=2;v35=1;v47=2;v57=2;v56=6;v68=3;v78=4; turn=3; f1=v12+v23+v35+v56+turn+v68; f2=v12+v23+v35+turn+v57+turn+v78; f3=v12+turn+v24+turn+v47+v78; f4=v12+turn+v24+v47+turn+v57+turn+v56+turn+v68; min=f1; if f2

f4 实验结果: v1到v8的最短时间路径为15,路径为1-2-4-7-8. 2、求如图所示中每一结点到其他结点的最短路。V110 V3V59 V6

floy.m中的程序: function[D,R]=floyd(a) n=size(a,1); D=a for i=1:n for j=1:n R(i,j)=j; end end R for k=1:n for i=1:n for j=1:n if D(i,k)+D(k,j)

数独介绍 (文科试卷分析侯立伟)

有关数独知识的背景介绍 数独Sudoku(日语:すうどく)是2005年风靡世界的智力填数游戏,在英国尤为狂热.在标准的9?9矩阵中,游戏者用从1到9九个数字填满空格,要求横竖各行都是从1到9的数字,而且每一行或者列没有重复数字.与普通的填字游戏相比,Sudoku的优势显而易见,第一,使用阿拉伯数字,全球通用;第二,游戏者具有一般的思考能力就够了;第三,规则非常简单. 一.数独发展的历史 数独的雏型首先于1970年代由美国的一家数学逻辑游戏杂志发表,当时名为Number Place.现今流行的数独于1984年由日本游戏杂志《パズル通信ニコリ》发表并确定为现在的名称.数独本是“独立的数字”的省略,因为每一个方格都填上一个个位数. Sudoku的流行与1997年香港回归有点渊源.新西兰人韦恩·古尔德(Wayne Gould),在香港法院系统工 作了大半生.随着香港回归的临近,他一边环球旅游,一边打算在退休之后找点事情 做.就在退休前去东京的旅行时,他发现一种日本80年代中期出现的数字游戏.它就 是Sudoku,这个游戏的推广商是一家叫做Nikoli的出版社,专门从事智力题业务, 他们最早从一家叫《戴尔杂志》(Dell Magazine)的美国智力游戏杂志获得了灵感. 早在1979年这家杂志推出了Sudoku,发明人是一位叫霍华德·戛纳斯(Howard Garnes)的建筑师. 从来没有玩过Sudoku,古尔德很快就做完了,于是就想着多做 一些.他不是数学天才,只不过是对数字感兴趣,一度希望退休了可以编编程序.结果 在这样的兴趣驱动下,古尔德花了6年的时间研究如何用计算机来随机产生Sudoku 的矩阵,不想6年之后,当2004年11月,他的一个Sukodu游戏在《泰晤士报》 刊登出来,他的兴趣引发了全球性的“数独迷幻”.Sudoku的规则看起来很简单,然而英国谢菲尔德大学和德国Dresden技术大学的研究表明,这样的9?9的矩阵,理论上说有6,670,903,752,021,072,936,960种组合.因此,这是一个穷尽一生的游戏. 二.现代科学家关于数独研究 著名的程序是爱尔兰数学教授麦盖尔博士(Gary McGuire)的免费程序SOLVER.EXE ,计算机专业的学生都可以写的出这个程序,. http://www.math.ie/checker.html 下载这个程序 全部的数独解(Sudoku grids )有6,670,903,752,021,072,936,960这是贝米耳(Stanley E. Bammel)与罗思坦(Jerome Rothstein)二位数学家计算出来的,有专门研究的报告 https://www.360docs.net/doc/7e5117439.html,/sudoku/ 登陆这个网址可以查看报告内容 由于同一个数独可以变形,例如左右纵列交换、上下横行交换、数字代码交换(例如1和5交换,2和8、3和4...)重复前面几次之后,就分不清是来自同一个数独,但是专家们还是有法子的. 澳大利亚的大学(The University of Western Australia )教授Gordon Royle 博士利用图形理论,发展出辨识数独变形的方法.将数独谜题利用Nauty 程序图形转化,然后作比对. https://www.360docs.net/doc/7e5117439.html,.au/gordon/sudokumin.php 如果考虑经过变形的数独不算是新数独,那么数独解的数目会少很多! 现在有数学、计算机、...等专家们正在研究, 三.数独Sudoku背后的四个数学问题 德国名画家丢勒的这幅木刻画《忧郁症》(Melencolia)描述的就是一个因为数学患上忧郁症的天使.让画中天使牵挂的就是墙上挂着的数字迷宫,横向、纵向、对角线数字的和都是34,在最下面一行的中间两格,画家自娱地留下了创作年代1514. 古埃及石墙上的数字方阵也许是最古老的数独游戏

数学建模模最短路

基于最短路问题的研究及应用 : Fanmeng 学号: 指导老师:

摘要 最短路问题是图论中的一大问题,对最短路的研究在数学建模和实际生活中具有很重要的实际意义,介绍最短路问题的定义及这类问题的解决办法Dijkstra算法,并且能够在水渠修建实例运用到此数学建模的方法,为我们解决这类图论问题提供了基本思路与方法。 关键字数学建模最短路问题 Dijkstra算法水渠修建。

目录 第一章.研究背景 (1) 第二章.理论基础 (2) 2.1 定义 (2) 2.2 单源最短路问题Dijkstra求解: (2) 2.2.1 局限性 (2) 2.2.2 Dijkstra算法求解步骤 (2) 2.2.3 时间复杂度 (2) 2.3 简单样例 (3) 第三章.应用实例 (4) 3.1 题目描述 (4) 3.2 问题分析 (4) 3.3符号说明 (5) 3.4 模型假设 (5) 3.5模型建立与求解 (5) 3.5.1模型选用 (5) 3.5.2模型应用及求解 (5) 3.6模型评价 (5) 第四章. 参考文献 (6) 第五章.附录 (7)

第一章.研究背景 在现实生活中中,我们经常会遇到图类问题,图是一种有顶点和边组成,顶点代表对象,在示意图中我们经常使用点或者原来表示,边表示的是两个对象之间的连接关系,在示意图中,我们使用连接两点G点直接按的下端来表示。顶点的集合是V,边的集合是E的图记为G[V,E] ,连接两点u和v的边用e(u,v)表示[1]。最短问题是图论中的基础问题,也是解决图类问题的有效办法之一,在数学建模中会经常遇到,通常会把一个实际问题抽象成一个图,然后来进行求的接任意两点之间的最短距离。因此掌握最短路问题具有很重要的意义。

四宫数独教学设计

模块六统计 “幼儿四宫数独”教学设计 【学习内容】 幼儿数独 【学习目标】 1.认识四宫“数独”游戏的规则,掌握玩“数独”的方法; 2.通过数学游戏,提高学生推理能力,培养学习数学的兴趣; 3.培养学生养成动手之前先动脑的好习惯,动手实际摆一摆,在拼摆的过程中不断尝试,克服困 难,用数独的思想指导生活。 学习工具:益智学具:幼儿数独 学习形式:每4人为一组,拼摆与讨论。 问题清单: 1.仔细观察横着看,你能发现哪几个数字? 2.竖着看你又能发现哪几个数字? 3.在一个正方形围城的框里,你又能发现哪几个数字? 【活动过程】 1.创设情境,提出问题 教师带来一个既能培养我们的观察能力,又能锻炼我们动手动脑能力,并且它是所有聪明人喜欢玩的一种填数字游戏,孩子想变成聪明人那就一起来玩游戏。 出示:幼儿四宫数独 简介“独”的意思:单一的,独自的,然后理解“数独”之意:单一的数字或独立的数字,“宫”为一种小房子,古代帝王或太子居住的地方,用自己的话说“四宫数独”的意思,加深游戏印象。 简介游戏组成部分: 左面这是游戏盒,类似于我们平时的棋盘,上面有十六个圆形的小孔,右面是十六颗棋子,分别是四个相同的1、2、3、4,从图中,你能猜到我们要玩什么吗? 预设:玩数字,把数字摆放在小圆孔上。 这是我提前摆好的棋子,请看:

动手之前,我们先来看“问题清单”: 1.仔细观察棋盘,横着看你能发现哪几个数字? 2.竖着看你又能发现哪几个数字? 3.在分成的四个正方形内,你又能发现哪几个数字? 【设计意图】学生平时接触的棋类和今天要玩的数字棋大不相同,因此在清单里面要抓住让学生观察的重点四个数字:1、2、3、4,先让学生在意识里引起注意要玩让学生的棋跟四个数字有关,而且要简洁明了的让他知道四个数字分别出现在哪里,显得尤为重要。 2.活动与实验,建立模型 1.弄清横着为行,竖着为列,每四个小格子围城的正方形是一宫。 2、填数字游戏规则:每一行里有1、2、 3、4,每一列里有1、2、3、4,每一宫里也有1、2、3、 4,而且不能够重复,只能出现一次。 同学们已经迫不及待了,想玩填数字游戏吗?那就要按要求去做。 活动要求: (1)在一行中这样摆,那剩余的格子怎么摆。 (2)在一列中这样摆,那剩余的格子应该怎么摆? (3)在一宫中这样摆,那剩余的格子应该怎么摆? 【设计意图】学生第一次接触这种填数字的游戏,增加了难度,孩子不但会填更要动手操作把它摆正确,这就要求学生动手之前先动脑,设计了三个简单的动手操作活动,简单的活动让学生熟悉规则,调动学生继续玩下去的兴趣,让他获得成功的喜悦。为后面更加复杂的摆数字游戏积累初步的活动经验,把复杂的问题简单处理,由易到难的拼摆符合学生的认知规律。 2.汇报展示。 (1)我这样摆。 (2)我这样摆.

数学建模习题集及标准答案

第一部分课后习题 1.学校共1000名学生,235人住在A宿舍,333人住在B宿舍,432人住在C宿舍。学 生们要组织一个10人的委员会,试用下列办法分配各宿舍的委员数: (1)按比例分配取整数的名额后,剩下的名额按惯例分给小数部分较大者。 (2)2.1节中的Q值方法。 (3)d’Hondt方法:将A,B,C各宿舍的人数用正整数n=1,2,3,…相除,其商数如下表: 将所得商数从大到小取前10个(10为席位数),在数字下标以横线,表中A,B,C行有横线的数分别为2,3,5,这就是3个宿舍分配的席位。你能解释这种方法的道理吗。 如果委员会从10人增至15人,用以上3种方法再分配名额。将3种方法两次分配的结果列表比较。 (4)你能提出其他的方法吗。用你的方法分配上面的名额。 2.在超市购物时你注意到大包装商品比小包装商品便宜这种现象了吗。比如洁银牙膏50g 装的每支1.50元,120g装的3.00元,二者单位重量的价格比是1.2:1。试用比例方法构造模型解释这个现象。 (1)分析商品价格C与商品重量w的关系。价格由生产成本、包装成本和其他成本等决定,这些成本中有的与重量w成正比,有的与表面积成正比,还有与w无关的因素。 (2)给出单位重量价格c与w的关系,画出它的简图,说明w越大c越小,但是随着w的增加c减少的程度变小。解释实际意义是什么。 3.一垂钓俱乐部鼓励垂钓者将调上的鱼放生,打算按照放生的鱼的重量给予奖励,俱乐部 只准备了一把软尺用于测量,请你设计按照测量的长度估计鱼的重量的方法。假定鱼池中只有一种鲈鱼,并且得到8条鱼的如下数据(胸围指鱼身的最大周长): 先用机理分析建立模型,再用数据确定参数 4.用宽w的布条缠绕直径d的圆形管道,要求布条不重叠,问布条与管道轴线的夹角 应 多大(如图)。若知道管道长度,需用多长布条(可考虑两端的影响)。如果管道是其他形状呢。

数独问题 数学建模

数独问题 摘要 本文是对数独问题进行求解。结合数独生成的特点,立足于题中数独建模和 WNF P函数和整数规划模型。 求解的要求,建立了数独难度分析() 对于问题一,首先研究数独难度的影响因素,通过综合分析数独的特点结构,WNF P可以在常数时间内计算出来以衡量数独的难易程度。通过计算可知得出() ()0.04531 WNF P=,根据数独难度的划分得到如下结论:数独难度系数为4,达到了极难的程度。 对于问题二,我们通过对此数独的分析和讨论,利用穷举法,通过matlab 软件编程求解,最终得出答案,如表1所示。 对于问题三,我们利用回溯法思想,建立求解模型,具体算法一般采用如下步骤: 1).在此数独初盘选择一个空单元格; 2).取这个单元格中一个可能的候选数; 3).将这个候选数填入单元格中,迭代完成数独; 4).若这个候选数推导得到一个无效数独终盘,返回此单元格取其他候选数; 对于问题四采用整数规划模型,采用三维0-1 变量的方法,运用lingo软件编程求解。最终得到答案,如表1所示。 关键词:数独数独难度分析穷举法回溯法整体规划

1问题的重述 前段时间芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上,让大家去挑战。该数独如下图所示: 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,且不重复。每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。 根据以上描述,试完成以下问题: 1. 分析此数独的难度; 2. 用穷举算法求解数独; 3. 设计此数独求解的较优的算法; 4. 建立数独求解模型并给出此数独的答案。 2模型的基本假设 1该数独问题存在唯一解。 3符号说明 X表示空单元格候选数 ? () X的加权函数 W n表示候选数数? () c X表示数独空单元格中的候选数数目函数 n E p表示该数独的空格处 () () WNF P表示该数独难度的函数 x表示数k是否填入数独方中的(i,j)处 ijk c表示往空格处填入0后数独方中(i,j)处的数 ij y表示经过求解后数独方中(i,j)处的数 ij

数学建模期末考试2018A试的题目与答案

华南农业大学期末考试试卷(A卷) 2012-2013学年第二学期考试科目:数学建模 考试类型:(闭卷)考试考试时间:120 分钟 学号姓名年级专业 一、(满分12分)一人摆渡希望用一条船将一只狼.一只羊.一篮白菜从河岸一边带到河岸对面.由于船的限制.一次只能带一样东西过河.绝不能在无人看守的情况下将狼和羊放在一起;羊和白菜放在一起.怎样才能将它们安全的带到河对岸去? 建立多步决策模型,将人、狼、羊、白菜分别记为i = 1.2.3.4.当i在此岸时记x i = 1.否则为0;此岸的状态下用s = (x1.x2.x3.x4)表示。该问题中决策为乘船方案.记为d = (u1, u2, u3, u4).当i 在船上时记u i = 1.否则记u i = 0。 (1) 写出该问题的所有允许状态集合;(3分) (2) 写出该问题的所有允许决策集合;(3分) (3) 写出该问题的状态转移率。(3分) (4) 利用图解法给出渡河方案. (3分) 解:(1) S={(1,1,1,1), (1,1,1,0), (1,1,0,1), (1,0,1,1), (1,0,1,0)} 及他们的5个反状(3分) (2) D = {(1,1,0,0), (1,0,1,0), (1,0,0,1), (1,0,0,0)} (6分) (3) s k+1 = s k + (-1) k d k (9分) (4)方法:人先带羊.然后回来.带狼过河.然后把羊带回来.放下羊.带白菜过去.然后再回来把羊带过去。 或: 人先带羊过河.然后自己回来.带白菜过去.放下白菜.带着羊回来.然后放下羊.把狼带过去.最后再回转来.带羊过去。(12分) . .

数独中的数学模型

数独中的数学模型 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

数独中的数学模型 摘要 现如今数独游戏风靡全球,深受人们喜爱。其难度等级多样,求解数独难度等级较高的常常需要花费大量的时间和精力,因此我们试图用计算机来解决这一问题。 在问题一中,我们主要考虑空格数的多少以及空格自由度与数独难度等级的关系。由一定的案例分析得出数独题目的难度等级与空格数存在正比关系,接着我们考虑如果只是简单的按照空格的数目多少来划分数独题目的难易程度是不全面的,因此继续分析,得出空格自由度与数独的难度等级存在正比的关系,最后又以空格数和空格自由度综合分析进行验证,得出此数独等级为3级。[1] 空格自由度法模型如下: 在问题二中,我们运用穷举法分析大量可能情况,再用MATLAB编写程序得出此数独游戏的终盘。 在问题三中,我们运用了比较排除法、唯一解法和综合法来求解此数独游戏,最终选用综合法作为较优方法。[1] 在问题四中,我们用循环回溯法进行求解,使用MATLAB编写程序得出结果(见表8)。[1] 关键字:穷举法比较排除法唯一解法循环回溯法数独空格数空格自由度 一、问题背景 数独是一种数字解谜游戏,英文名叫Sudoku,前身为“九宫格”,当时的算法比现在的更为复杂,要求纵向、横向、斜向上的三数之和等于15,而不只是数字的不能重复,儒家典籍《易经》中的“九宫图”也是来源于此。关于它

的起源一直存有争议,有人认为最早起源于中国,也有人认为起源于瑞士。1970年由美国一家数学逻辑游戏杂志首先发表,名为Number。后在日本流行,于1984年把Sudoku取名为数独。数独全面考验做题者观察能力和逻辑推理能力,它的玩法逻辑简单,除了1到9的阿拉伯数字以外,不必用到任何东西,但数字的排列方式却又千变万化,不少教育者认为,数独是锻炼大脑的绝佳方式。它不仅具有很强的趣味性,也是一种对智慧和毅力的考验。 二、问题重述 芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上,让大家去挑战。这位数学家说,他相信只有“智慧最顶尖”的人才有可能破解这个“数独之谜”。 所给数独游戏表格如下: 据介绍,目前,数独游戏难度的等级有一到五级,一是入门等级,五则比较难。不过这位数学家说,他所设计的数独游戏难度等级是十一,可以说是所有数独游戏中,难度最高的等级。 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。 由此我们要解决以下问题: 问题一:分析此数独的难度; 问题二:用穷举算法求解数独; 问题三:设计此数独求解的较优的算法;

数学建模运输问题

运输问题 摘要 本文主要研究的是货物运输的最短路径问题,利用图论中的Floyd算法、Kruskal算法,以及整数规划的方法建立相关问题的模型,通过matlab,lingo编程求解出最终结果。 关于问题一,是一个两客户间最短路程的问题,因此本文利用Floyd算法对其进行分析。考虑到计算的方便性,首先,我们将两客户之间的距离输入到网络权矩阵中;然后,逐步分析出两客户间的最短距离;最后,利用Matlab软件对其进行编程求解,运行得到结果:2-3-8-9-10总路程为85公里。 关于问题二,运输公司分别要对10个客户供货,必须访问每个客户,实际上是一个旅行商问题。首先,不考虑送货员返回提货点的情形,本文利用最小生成树问题中的Kruskal算法,结合题中所给的邻接矩阵,很快可以得到回路的最短路线: 1-5-7-6-3-4-8-9-10-2;然后利用问题一的Floyd算法编程,能求得从客户2到客户1(提货点)的最短路线是:2-1,路程为50公里。即最短路线为:1-5-7-6-3-4-8-9-10-2-1。但考虑到最小生成树法局限于顶点数较少的情形,不宜进一步推广,因此本文建立以路程最短为目标函数的整数规划模型;最后,利用LINGO软件对其进行编程求解,求解出的回路与Kruskal算法求出的回路一致。 关于问题三,是在每个客户所需固定货物量的情况下,使得行程之和最短。这样只要找出两条尽可能短的回路,并保证每条线路客户总需求量在50个单位以内即可。因此我们在问题二模型的基础上进行改进,以货车容量为限定条件,建立相应的规划模型并设计一个简单的寻路算法,对于模型求解出来的结果,本文利用Kruskal算法结合题中所给的邻接矩阵进行优化。得到优化结果为:第一辆车:1-5-2-3-4-8-9-1,第二辆车:1-7-6-9-10-1,总路程为280公里。 关于问题四,在问题一的基础上我们首先用Matlab软件编程确定提货点到每个客户点间的最短路线,然后结合一些限定条件建立一个目标模型,设计一个较好的解决方案进行求解可得到一种很理想的运输方案。根据matlab运行结果分析得出4条最优路线分别为:1-5-2,1-4-3-8,1-7-6,1-9-10。最短总路线为245公里,最小总费用为645。 关键词: Floyd算法 Kruskal算法整数规划旅行商问题 一、问题重述 某运输公司为10个客户配送货物,假定提货点就在客户1所在的位置,从第i个客户到第j个客户的路线距离(单位公里)用下面矩阵中的(,) i j(,1,,10) i j=位置上的数表示(其中∞表示两个客户之间无直接的路线到达)。 1、运送员在给第二个客户卸货完成的时候,临时接到新的调度通知,让他先给客户10送 货,已知送给客户10的货已在运送员的车上,请帮运送员设计一个到客户10的尽可能短的行使路线(假定上述矩阵中给出了所有可能的路线选择)。 2、现运输公司派了一辆大的货车为这10个客户配送货物,假定这辆货车一次能装满10个 客户所需要的全部货物,请问货车从提货点出发给10个客户配送完货物后再回到提货点所行使的尽可能短的行使路线?对所设计的算法进行分析。 3、现因资源紧张,运输公司没有大货车可以使用,改用两辆小的货车配送货物。每辆小

数学建模模拟试题及答案.pdf

数学建模模拟试题及答案 一、填空题(每题5分,共20分) 1. 若,, x z z y ∝∝则y 与x 的函数关系是. 2. 在超级市场的收银台有两条队伍可选择,队1有1m 个顾客,每人都买了1n 件商品,队2有2m 个顾客,每人都买了2n 件商品,假设每个人付款需p 秒,而扫描每件商品需t 秒,则加入较快队1的条件是 . 3. 马尔萨斯与罗捷斯蒂克两个人口增长模型的主要区别是假设了 4. 在研究猪的身长与体重关系时,我们通过与已知其相关性质的的弹性梁作 的方法建立了模型. 二、分析判断题(每小题15分,满分30分) 1. 要为一所大学编制全校性选修课程表,有哪些因素应予以考虑?试至少列出5种. 2. 一起交通事故发生3个小时后,警方测得司机血液中酒精的含量是 ),m l /m g (100/56 又过两个小时,含量降为),m l /m g (100/40试判断,当事故发生时,司 机是否违反了酒精含量的规定(不超过80/100)m l /m g (. (提示:不妨设开始时刻为)(,0t C t =表示t 时刻血液中酒精的浓度,则依平衡原理,在时间间隔],[t t t ?+内酒精浓度的改变量为 t t kC t C t t C ??=??+)()()( 其中0>k 为比例常数,负号则表示了浓度随时间的推移是递减的.) 三、计算题(每题25分,满分50分) 1. 一个毛纺厂使用羊毛、兔毛和某种纤维生产甲、乙两种混纺毛料,生产一个单位产品甲需要的三种原料依次为3、2、8个单位,产值为580元;生产一个单位产品乙需要的三种原料依次为2、3、5个单位,产值为680元,三种原料在计划期内的供给量依次为90、30和80单位.试建立线性规划模型以求一个生产方案,使得总产值达到最大,并由此回答: (1) 最优生产方案是否具有可选择余地?若有请至少给出两个,否则说明理由. (2) 原材料的利用情况.

数学建模中常见的十大模型

数学建模常用的十大算法==转 (2011-07-24 16:13:14) 转载▼ 1. 蒙特卡罗算法。该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟来检验自己模型的正确性,几乎是比赛时必用的方法。 2. 数据拟合、参数估计、插值等数据处理算法。比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用MA TLAB 作为工具。 3. 线性规划、整数规划、多元规划、二次规划等规划类算法。建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo 软件求解。 4. 图论算法。这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备。 5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法。这些算法是算法设计中比较常用的方法,竞赛中很多场合会用到。 6. 最优化理论的三大非经典算法:模拟退火算法、神经网络算法、遗传算法。这些问题是用来解决一些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。 7. 网格算法和穷举法。两者都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具。 8. 一些连续数据离散化方法。很多问题都是实际来的,数据可以是连续的,而计算机只能处理离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的。 9. 数值分析算法。如果在比赛中采用高级语言进行编程的话,那些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。 10. 图象处理算法。赛题中有一类问题与图形有关,即使问题与图形无关,论文中也会需要图片来说明问题,这些图形如何展示以及如何处理就是需要解决的问题,通常使用MA TLAB 进行处理。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 2 十类算法的详细说明 2.1 蒙特卡罗算法 大多数建模赛题中都离不开计算机仿真,随机性模拟是非常常见的算法之一。 举个例子就是97 年的A 题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的组合方案将要面对着的是一个极其复杂的公式和108 种容差选取方案,根本不可能去求解析解,那如何去找到最优的方案呢?随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。另一个例子就是去年的彩票第二问,要求设计一种更好的方案,首先方案的优劣取决于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。 2.2 数据拟合、参数估计、插值等算法 数据拟合在很多赛题中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是98 年美国赛A 题,生物组织切片的三维插值处理,94 年A 题逢山开路,山体海拔高度的插值计算,还有吵的沸沸扬扬可能会考的“非典”问题也要用到数据拟合算法,观察数据的

儿童数独入门(三)

儿童数独入门(三) 戎卫武 一、教学内容: “数独”(英文名为 SU DOKU)(三) 二、教学目标: 知识与技能: 1、培养学生把握全局的能力。 2、培养学生的观察反应能力。 3、培养学生分析推理能力。 数学思考:通过数独游戏,可以益智,可以获得持久的脑力锻炼。 解决问题:培养学生用排除法思考问题,初步学会的推理分析问题,掌握解决问题的策略。 情感态度与价值观:既在同伴之间的交流与团结协作中,获得肯定,又在独立思考后,获得成就感。 三、教学重、难点: 培养学生的观察和推理能力。 四、教具和学具: 课件数独游戏学具 五、教学过程: 1、激趣引新: 师:同学们,我们已经学会了玩简单的数独,你们喜欢数独吗?今天老师将为你们介绍9×9的数独游戏:

数独是一种逻辑数组谜题。“数独”是一个9×9的方阵,它是由九个“九宫格”(图中黑色实线围住的3×3的方阵)构成的,每个九宫格又是由九个小格子构成的,在空白的小格子里填上1~9中的数字,使得每个数字在“九宫格”的每行、每列、每个九宫格中均只出现一次。游戏会从一个部分带有数字的九宫格开始。 2、建立数独的模型 数独是一款很经典的益智数字游戏,可以用来锻炼益智的,它包含九直行九横列,共分成九个九宫格,每行列都由1到9、不能重复的阿拉伯数字组成,每个九宫格亦然。 赶紧来看看数独的游戏规则吧: 数独游戏在9x9的方格内进行,分为3x3的小方格,被称为“宫”: 数独游戏首先从已经填入数字的格子开始:

数独游戏的目的是根据下列规则,用1至9之间的数字填满空格,一个格子只能填入一个数字: 1. 每个数字在每一行只能出现一次: 2. 同样的,每个数字在每一列只能出现一次: 3. 每个数字在每一区只能出现一次: 总结这些规则,即每个数字在每一行、每一列和每一宫只能出现一次。 3、应用体验。 学生用数独游戏卡片及学具玩9×9数独游戏 两人一组(或四人一组)玩 第1---5关(基本的9×9数独)

数学建模模最短路

基于最短路问题的研究及应用令狐采学 姓名:Fanmeng 学号: 指导老师:

摘要 最短路问题是图论中的一大问题,对最短路的研究在数学建模和实际生活中具有很重要的实际意义,介绍最短路问题的定义及这类问题的解决办法Dijkstra算法,并且能够在水渠修建实例运用到此数学建模的方法,为我们解决这类图论问题提供了基本思路与方法。 关键字数学建模最短路问题Dijkstra算法水渠修建。

目录 第一章.研究背景1 第二章.理论基础2 2.1 定义2 2.2 单源最短路问题Dijkstra求解:2 2.2.1 局限性2 2.2.2 Dijkstra算法求解步骤2 2.2.3 时间复杂度2 2.3 简单样例3 第三章.应用实例4 3.1 题目描述4 3.2 问题分析4 3.3符号说明4 3.4 模型假设5 3.5模型建立与求解5 3.5.1模型选用5 3.5.2模型应用及求解5 3.6模型评价5 第四章. 参考文献5 第五章.附录6

第一章.研究背景 在现实生活中中,我们经常会遇到图类问题,图是一种有顶点和边组成,顶点代表对象,在示意图中我们经常使用点或者原来表示,边表示的是两个对象之间的连接关系,在示意图中,我们使用连接两点G点直接按的下端来表示。顶点的集合是V,边的集合是E的图记为G[V,E] ,连接两点u和v的边用e(u,v)表示[1]。最短问题是图论中的基础问题,也是解决图类问题的有效办法之一,在数学建模中会经常遇到,通常会把一个实际问题抽象成一个图,然后来进行求的接任意两点之间的最短距离。因此掌握最短路问题具有很重要的意义。

第二章.理论基础 2.1 定义 最短路问题(short-path problem ):若网络中的每条边都有一个数值(长度、成本、时间等),则找出两节点,(通常是源节点和目标节点)之间总权和最小的路径就是最短路问题。最短路问题是网络理论解决的典型问题之一,可用来解决管道铺设,线路安装,厂区布局和设备更新等实际问题[2]。 2.2 单源最短路问题Dijkstra 求解: 2.2.1局限性 Dijkstra 算法不能够处理带有负边的图,即图中任意两点之间的权值必须非负。 2.2.2Dijkstra 算法求解步骤 (1).先给图中的点进行编号,确定起点的编号。 (2).得到图的构成,写出写出图的矩阵 0000(,)(,) (,) (,) n n n n u u u u G u u u u = (3).根据要求求出发点S 到终点E 的最短距离,那么需要从当前没被访问过的结点集合 unvist={u | u {1,2,3...}}n ∈中找到一个距离已经标记的点的集合中vist={u | u {1,2,3...}}n ∈的最短距离,得到这个顶点; (4).利用这个顶点来松弛其它和它相连的顶点距离S 的值 (5).重复步骤(2)和(3),直到再也没有点可以用来松弛其它点,这样我们就得到了由起点S 到其它任意点的最短距离。 2.2.3时间复杂度 时间复杂度达到 2 ()O N

数学建模题目及其答案(疾病诊断)

数学建模疾病的诊断 现要你给出疾病诊断的一种方法。 胃癌患者容易被误诊为萎缩性胃炎患者或非胃病者。从胃癌患者中抽 取5人(编号为1-5),从萎缩性胃炎患者中抽取5人(编号为6-10),以及非胃病者 中抽取5人(编号为11-15),每人化验4项生化指标:血清铜蓝蛋白( X)、 1 蓝色反应( X)、尿吲哚乙酸(3X)、中性硫化物(4X)、测得数据如表1 2 所示: 表1. 从人体中化验出的生化指标 根据数据,试给出鉴别胃病的方法。

论文题目:胃病的诊断 摘要 在临床医学中,诊断试验是一种诊断疾病的重要方法。好的诊断试验方法将对临床诊断的正确性和疾病的治疗效果起重要影响。因此,对于不同疾病不断发现新的诊断试验方法是医学进步的重要标志。传统的诊断试验方法有生化检测、DNA检测和影像检测等方法。而本文则通过利用多元统计分析中的判别分析及SPSS软件的辅助较好地解决了临床医学中胃病鉴别的问题。在临床医学上,既提高了临床诊断的正确性,又对疾病的治疗效果起了重要效果,同时也减轻了病人的负担。 判别分析是在分类确定的条件下,根据某一研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。 其基本原理是按照一定的判别准则,建立一个或多个判别函数,用研究对象的大量资料确定判别函数中的待定系数,并计算判别指标。 首先,由判别分析定义可知,只有当多个总体的特征具有显著的差异时,进行判别分析才有意义,且总体间差异越大,才会使误判率越小。因此在进行判别分析时,有必要对总体多元变量的均值进行是否不等的显著性检验。 其次,利用判别分析中的费歇判别和贝叶斯判别进行判别函数的建立。 最后,利用所建立的判别函数进行回判并测得其误判率,以及对其修正。 本文利用SPSS软件实现了对总体间给类变量的均值是否不等的显著性检验并根据样本建立了相应的费歇判别函数和贝叶斯判别函数,最后进行了回判并测得了误判率,从而获得了在临床诊断中模型,给临床上的诊断试验提供了新方法和新建议。 关键词:判别分析;判别函数;Fisher判别;Bayes判别 一问题的提出 在传统的胃病诊断中,胃癌患者容易被误诊为萎缩性胃炎患者或非胃病患者,为了提高医学上诊断的准确性,也为了减少因误诊而造成的病人死亡率,必须要找出一种最准确最有效的诊断方法。为诊断疾病,必须从人体中提取4项生化指标进行化验,即血

数独中的数学模型

数独中的数学模型 摘要 现如今数独游戏风靡全球,深受人们喜爱。其难度等级多样,求解数独难度 等级较高的常常需要花费大量的时间和精力,因此我们试图用计算机来解决这一 问题。 在问题一中,我们主要考虑空格数的多少以及空格自由度与数独难度等级的 关系。由一定的案例分析得出数独题目的难度等级与空格数存在正比关系,接着 我们考虑如果只是简单的按照空格的数目多少来划分数独题目的难易程度是不 全面的,因此继续分析,得出空格自由度与数独的难度等级存在正比的关系,最 后又以空格数和空格自由度综合分析进行验证,得出此数独等级为3级。[1] 空格自由度法模型如下: 在问题二中,我们运用穷举法分析大量可能情况,再用MATLAB编写程序得 出此数独游戏的终盘。 在问题三中,我们运用了比较排除法、唯一解法和综合法来求解此数独游戏,最终选用综合法作为较优方法。[1] 在问题四中,我们用循环回溯法进行求解,使用MATLAB编写程序得出结果(见表8)。[1] 关键字:穷举法比较排除法唯一解法循环回溯法数独空格数空格自由度 一、问题背景 数独是一种数字解谜游戏,英文名叫Sudoku,前身为“九宫格”,当时 的算法比现在的更为复杂,要求纵向、横向、斜向上的三数之和等于15, 而不只是数字的不能重复,儒家典籍《易经》中的“九宫图”也是来源于此。关于它的起源一直存有争议,有人认为最早起源于中国,也有人认为起 源于瑞士。1970年由美国一家数学逻辑游戏杂志首先发表,名为Number。后在 日本流行,于1984年把Sudoku取名为数独。数独全面考验做题者观察能力和逻 辑推理能力,它的玩法逻辑简单,除了1到9的阿拉伯数字以外,不必用到 任何东西,但数字的排列方式却又千变万化,不少教育者认为,数独是锻炼大 脑的绝佳方式。它不仅具有很强的趣味性,也是一种对智慧和毅力的考验。 二、问题重述 芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上, 让大家去挑战。这位数学家说,他相信只有“智慧最顶尖”的人才有可能破解这 个“数独之谜”。 所给数独游戏表格如下: 据介绍,目前,数独游戏难度的等级有一到五级,一是入门等级,五则比较难。不过这位数学家说,他所设计的数独游戏难度等级是十一,可以说是所有数 独游戏中,难度最高的等级。 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足 每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。每一道合格的数

数独并不需要特别的数学方法或技巧

数独并不需要特别的数学方法或技巧,只是一个简单且有意思的逻辑游戏但它同样需要运用你的大脑并且要集中精力。 数独只有一条规则:在图中格子内填入1到9的数字使每行、列、3×3的宫(我们把行,列和宫统一称做:规则)内数字不重复,数字可以是任何顺序,不限制斜线上数是否重复不能改变图中已经给定的那些数字,你的任务就是填满那些空格,但要符合上面的规则 注意,每个数独都只有一个最终结果,你可以据此来解答。 关于数独的历史,其他网站也说的很多了,小编这里不再多讲,大家记住一个人吧,新西兰人高乐德(Wayne Gould),被称为数独之父,https://www.360docs.net/doc/7e5117439.html,就是他办的网站,在https://www.360docs.net/doc/7e5117439.html, 的论坛里有很多数独技巧,程式,感兴趣的可以去那里看看 下面介绍下传统9×9数独的一些名词,还有最简单的技巧 Grid:格,每个数独有9×9即81格,每个格子填的是1~9的数字,因为阿拉伯数字世界通用嘛,当然也会有其他的符号来代替1~9,不过还是1~9最直观啦

Row:行,每个数独由9行组成,每一行都是1~9,每个数字在每行中只出现一次,不重复。一般是用A~I由上到下来标识每一行的,第一行就是A,第二行是B依次类推 Columns:列,每个数独由9列组成,每一列都是1~9,每个数字在每列中只出现一次,不重复。一般是用1~9由左到右来标识每一列的,第一列就是1,第二列是2依次类推 Boxes:宫,每个数独由9个宫组成,每个宫都是1~9,每个数字在每宫中只出现一次,不重复。一般按照图中顺序,左上称为第一宫,左中称为第二宫,依此类推 将行列搭配起来就成了每一格的坐标,坐标一般有两种表示方法,比如第一行的第三格,可以用R1C3来表示,也可以用A3来表示;第五行的第三格就可以用R5C3或者E3来表示数独的答案是唯一的,所以就不存在数字可以互换的情况出现在解题过程当中,这是出题者需要考虑的问题,如果你进一步了解数独的一些解题技巧,你可以发现很多技巧的理论基础就是数独的答案是唯一的。 数独一共有多少题呢,以不重复最简的来记一共有5472730538题(可以参考

相关文档
最新文档