2013数学建模B题国家一等奖Matlab程序

2013数学建模B题国家一等奖Matlab程序
2013数学建模B题国家一等奖Matlab程序

附录3:程序源文件

1.duqu_image.m文件

%数据读取预处理文件

%将附件中的图片读取到matlab矩阵中,并保存为image_1,image_2,image_3,image_4,image_5a,image_5b

%所有附件均放在文件夹 D:\B 中%%%%%%%%%%%%%%%%%%%%%%%%图片名序列

%图像名称序号

b = [ones(1,10);0 1 2 3 4 5 6 7 8 9]';

image_num= [

strcat( num2str(0*b(:,1)),num2str(0*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(0*b(:,1)),num2str(b(:,1)),num2str(b(:,2)) ),

strcat( num2str(0*b(:,1)),num2str(2*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(0*b(:,1)),num2str(3*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(0*b(:,1)),num2str(4*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(0*b(:,1)),num2str(5*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(0*b(:,1)),num2str(6*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(0*b(:,1)),num2str(7*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(0*b(:,1)),num2str(8*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(0*b(:,1)),num2str(9*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(0*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(2*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(3*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(4*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(5*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(6*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(7*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(8*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(b(:,1)),num2str(9*b(:,1)),num2str(b(:,2)) ),

strcat( num2str(2*b(:,1)),num2str(0*b(:,1)),num2str(b(:,2)) ),

]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 读取所有附件中的图片

%读取附件1中的图像

n = 19;

image_name = strcat('D:/B/附件1','/',image_num,'.bmp');%拼接图像地址和名字

for j = 1:n

image_1(:,:,j) = imread(image_name(j,:));%将图像读入矩阵

end

save image_1 image_1;%附件1图像

%读取附件2中的图像

n = 19;

image_name = strcat('D:/B/附件2','/',image_num,'.bmp');%拼接图像地址和名字

for j = 1:n

image_2(:,:,j) = imread(image_name(j,:));%将图像读入矩阵

end

save image_2 image_2;%附件2图像

%读取附件3中的图像

n = 209;

image_name = strcat('D:/B/附件3','/',image_num,'.bmp');%拼接图像地址和名字

for j = 1:n

image_3(:,:,j) = imread(image_name(j,:));%将图像读入矩阵

end

save image_3 image_3;%附件3图像

%读取附件4中的图像

n = 209;

image_name = strcat('D:/B/附件4','/',image_num,'.bmp');%拼接图像地址和名字

for j = 1:n

image_4(:,:,j) = imread(image_name(j,:));%将图像读入矩阵

end

save image_4 image_4;%附件4图像

%读取附件5 a 中的图像

n = 209;

image_name = strcat('D:/B/附件5','/',image_num,'a','.bmp');%拼接图像地址和名字for j = 1:n

image_5a(:,:,j) = imread(image_name(j,:));%将图像读入矩阵

end

save image_5a image_5a;%附件5a图像

%读取附件5 b 中的图像

n = 209;

image_name = strcat('D:/B/附件5','/',image_num,'b','.bmp');%拼接图像地址和名字for j = 1:n

image_5b(:,:,j) = imread(image_name(j,:));%将图像读入矩阵

end

save image_5b image_5b;%附件5a图像

2.f_hang_left_right.m文件

function [left_zi_chang right_zi_chang] = f_hang_left_right(image_hang)

% 此函数计算一行字左右两端汉字的长度

%image_hang表示附件图片中第几行字

%image_hang = image_1(106:146,:,1);%取行

[row col] = size(image_hang);

image_01 = image_hang>=200; %01化图形,0表示汉字,1表示背景

image_hang_he = sum(image_01,1);%对列求和%%%%%%%%%%%%%%%%%%%找汉字

hanzi_fa_zhi = row;%表示空格

kong_ge_chang = 3;% 空格的长度

hang_he_01 = image_hang_he == hanzi_fa_zhi;

if( hang_he_01(1) == 0 )%本行左边开头为汉字,统计汉字的长度

for i =1:col-kong_ge_chang

if( sum(hang_he_01(i:i+kong_ge_chang-1)) == kong_ge_chang )

break;

end

end

left_zi_chang = i - 1;

else

left_zi_chang = 0;

end

if(left_zi_chang > 41)

left_zi_chang = 0;

end

if( hang_he_01(col) == 0 )%本行结束为汉字,统计汉字的长度

for i =col:-1:kong_ge_chang

if( sum(hang_he_01(i-kong_ge_chang +1:i)) == kong_ge_chang ) break;

end

end

right_zi_chang = col - i;

else

right_zi_chang = 0;

end

if(right_zi_chang > 41)

right_zi_chang = 0;

end

3.f_pi_pei_du.m文件

function [left_zi_chang right_zi_chang] = f_hang_left_right(image_hang) % 此函数计算一行字左右两端汉字的长度

%image_hang表示附件图片中第几行字

%image_hang = image_1(106:146,:,1);%取行

[row col] = size(image_hang);

image_01 = image_hang>=200; %01化图形,0表示汉字,1表示背景image_hang_he = sum(image_01,1);%对列求和%%%%%%%%%%%%%%%%%%%找汉字

hanzi_fa_zhi = row;%表示空格

kong_ge_chang = 3;% 空格的长度

hang_he_01 = image_hang_he == hanzi_fa_zhi;

if( hang_he_01(1) == 0 )%本行左边开头为汉字,统计汉字的长度

for i =1:col-kong_ge_chang

if( sum(hang_he_01(i:i+kong_ge_chang-1)) == kong_ge_chang ) break;

end

end

left_zi_chang = i - 1;

else

left_zi_chang = 0;

end

if(left_zi_chang > 41)

left_zi_chang = 0;

end

if( hang_he_01(col) == 0 )%本行结束为汉字,统计汉字的长度

for i =col:-1:kong_ge_chang

if( sum(hang_he_01(i-kong_ge_chang +1:i)) == kong_ge_chang ) break;

end

end

right_zi_chang = col - i;

else

right_zi_chang = 0;

end

if(right_zi_chang > 41)

right_zi_chang = 0;

end

4.fujian_1_chengxu.m文件

%%%%%%%%

% 此文件,将附件1中的图片进行拼接

% 1.先统计出附件1 所有行字的左右汉字长度

% 2.计算匹配度

% 3.根据匹配度进行拼接

load image_1;%读取附件1数据文件

% 人工干预计算下列值

ding_kong = 37;% ding_kong 表示顶端空行

zi_gao = 41;% zi_gao 表示字的高度

zi_kuan = 41;% zi_kuan 表示字的宽度

konghang_gao = 26;% konghang_gao 表示空行的高度

hang_shu = 27;%附件1 所给文件的汉字总行数

% 1.先统计出附件1 所有行字的左右汉字长度

fujian_zitu = zeros(hang_shu,2);%附件1中的每一个子图的左右汉字长度fujian_1 = zeros(27,2,19);%附件1中所有图的左右汉字长度

for j = 1:19

zi_ding = ding_kong;

for i = 1:hang_shu

[fujian_zitu(i,1) fujian_zitu(i,2)]= f_hang_left_right( image_1( zi_ding+1 : zi_ding +

zi_gao ,:,j) );

zi_ding = zi_ding + zi_gao + konghang_gao;

end

fujian_1(:,:,j) = fujian_zitu;

end

save fujian_1_zuoyou_zichang fujian_1;%保存字长结果

fujian1_pinjie_jieguo = zeros(1,19);%保存拼接结果的矩阵

pipeidu = zeros(1,19);%用来保存中间匹配度的向量

fujian1_pinjie_jieguo(1) = 9;%人工干预找到的第一个(最左边)的纸条(即,图008.bmp)

fa_zhi = 0.8;% 匹配度计算时的阀值,大于此阀值的任务匹配正确,小于此值的认为匹配

不正确

% 2.计算匹配度

%匹配度

fujian_1_pipei_du = zeros(19,19);

for i= 1:19

for j=1:19

fujian_1_pipei_du(i,j) = f_pi_pei_du(fujian_1(:,2,i),fujian_1(:,1,j),fa_zhi);

end

end

save fujian_1_pipei_du fujian_1_pipei_du;;%保存匹配度结果

fujian_1_pipei_du_bian = fujian_1_pipei_du;%用于去除已选的纸条

% 3.根据匹配度进行拼接

fj1_pinjie_jieguo = zeros(1,19);

fj1_yong = zeros(1,19);

fj1_pinjie_jieguo(1) = 9;

fj1_yong(fj1_pinjie_jieguo(1)) = 1;

for i = 1:18

for j = 1:19;

if( fj1_yong(j)==1 )

fujian_1_pipei_du_bian(fj1_pinjie_jieguo(i),j) = 0;

end

end

[max_pipei_du fj1_pinjie_jieguo(i+1)] = max(fujian_1_pipei_du_bian(fj1_pinjie_jieguo(i),:));

fj1_yong(fj1_pinjie_jieguo(i+1)) = 1;

end

save fj1_pinjie_jieguo fj1_pinjie_jieguo;;%保存拼接结果

fj1_pinjie_jieguo%%%拼接结果输出到屏幕上

%%%%%%%%%%%%

fujian_1_jieguo_tu = zeros(1980,19*72);

for i = 1:19

fujian_1_jieguo_tu(:,(i-1)*72+1:i*72) = image_1(:,:,fj1_pinjie_jieguo(i));

end

save fujian_1_jieguo_tu fujian_1_jieguo_tu;

imview(fujian_1_jieguo_tu)

5.fujian2_pinjie_jieguo.m文件

%%%%%%%%

% 此文件,将附件2中的图片进行拼接

% 1.先统计出附件2 所有纸条的左右边界像素qian,hou

% 2.计算匹配度

% 3.根据匹配度进行拼接

% 1.先统计出附件2 所有纸条的左右边界像素qian,hou

load image_2;

for m=1:19

qian(:,m)=image_2(:,1,m);

hou(:,m)=image_2(:,72,m);

end

% 2.计算匹配度

%图像0-1化

qian_01 = qian>=255;

hou_01 = hou>=255;

%匹配度

fujian2_pipei_du = zeros(19,19);

for j= 1:19

for i=1:19

fujian2_pipei_du(i,j) = sum( qian_01(:,i) == hou_01(:,j) ) / 1980;

end

end

save fujian_2_pipei_du fujian2_pipei_du;

% 3.根据匹配度进行拼接

fj2_pinjie_jieguo = zeros(1,19);

fj2_pinjie_jieguo(1) = 4;

for i = 1:18

[max_pipei_du fj2_pinjie_jieguo(i+1)] = max(fujian2_pipei_du(:,fj2_pinjie_jieguo(i))); end

save fj2_pinjie_jieguo fj2_pinjie_jieguo;

fj2_pinjie_jieguo

fujian_2_jieguo_tu = zeros(1980,19*72);

for i = 1:19

fujian_2_jieguo_tu(:,(i-1)*72+1:i*72) = image_2(:,:,fj2_pinjie_jieguo(i));

end

save fujian_2_jieguo_tu fujian_2_jieguo_tu;

imview(fujian_2_jieguo_tu)

6.fujian_3_fenzu.m 文件

文件

%% 1.将11*19的纸条,分成11组,即先把属于同一组的图片归组,依据就是“每个纸条的上边界空行数”或者“汉字数”

load image_3;

for i = 1:209

image_hang_he(:,i) = sum(image_3(:,:,i)',1);

end

%若为空格则标记为1,并统计空格的个数。若为汉字则标记为0,并统计汉字的个数。将结果放入矩阵image_hang_he_18360中

for i = 1:209

he_18360 = 0; %若一行都是空格,则他的像素和为72*255=18360

for j=1:180

if(image_hang_he(1,i) == 18360)

index = 1;

if(image_hang_he(j,i) == 18360)

he_18360 = he_18360 + 1;

else

break;

end

else

index = 0;

if(image_hang_he(j,i) ~= 18360)

he_18360 = he_18360 + 1;

else

break;

end

end

end

image_hang_he_18360(1,i) = he_18360;

image_hang_he_18360(2,i) = index;

end

7. fj_3_hang_jieguo.m function fj_3_hang_jieguo = f_fj3_hang_pinjie(image_3,A1)

%A1 为附件3的一组

%例如 A1=[50 3 23 58 92 119 130 144 191 66 142 187 193 12 29 55 179 189 96]; %A1行所选择的图片 %输入参数

%将A1行的这些图片的最左边(第一列)的像素放入fujian3_1qian。将这些图片做右边(最后一列)的像素放入fujian3_1hou。

%load image_3;

fujian3_1qian = zeros(180,19);

for i=1:19

fujian3_1qian(:,i)=image_3(:,1,A1(i));

end

fujian3_1hou = zeros(180,19);

for i=1:19

fujian3_1hou(:,i)=image_3(:,72,A1(i));

end

%图像0-1化

qian_01 = fujian3_1qian>=255;

hou_01 = fujian3_1hou>=255;

%匹配度

fujian_3_pipei_du = zeros(19,19);

liaxu_fazhi = 5;

for i= 1:19

for j=1:19

if(j~=i)

%qian_hou_he = hou_01(:,i) + qian_01(:,j);

% fujian_3_pipei_du(i,j) = sum( (qian_hou_he == 0) + (qian_hou_he == 2)*2 - (qian_hou_he == 1)*3 ) / 180;

fujian_3_pipei_du(i,j) = sum( hou_01(:,i) == qian_01(:,j) ) / 180;

%fujian_3_pipei_du(i,j) = f_lianxu_pipei_du(hou_01(:,i),qian_01(:,j),liaxu_fazhi);

else

fujian_3_pipei_du(i,j) = 0;

end

end

end

%save fujian_3_pipei_du fujian_3_pipei_du;

fj_3_pinjie_jieguo = zeros(1,19);

fj_3_pinjie_yong = zeros(1,19)

fj_3_pinjie_jieguo(1) = 1;%输入参数

fj_3_pinjie_yong(3) = 1;

for i = 1:18

for j = 1:19;

if( fj_3_pinjie_yong(j)==1 )

fujian_3_pipei_du(fj_3_pinjie_jieguo(i),j) = 0;

end

end

[max_pipei_du max_pipei_index] = max(fujian_3_pipei_du(fj_3_pinjie_jieguo(i),:));

fj_3_pinjie_jieguo(i+1) = max_pipei_index;

fj_3_pinjie_yong(max_pipei_index) = 1;

end

fj_3_hang_jieguo = zeros(1,19);

for i = 1:19

fj_3_hang_jieguo(i) = A1(fj_3_pinjie_jieguo(i));

end

%A1

fj_3_pinjie_jieguo

fj_3_hang_jieguo

figure;

imshow([image_3(:,:,fj_3_hang_jieguo(1)),image_3(:,:,fj_3_hang_jieguo(2)),image_3(:,:,fj_3_ hang_jieguo(3)),image_3(:,:,fj_3_hang_jieguo(4))...

,image_3(:,:,fj_3_hang_jieguo(5)),image_3(:,:,fj_3_hang_jieguo(6)),image_3(:,:,fj_3_han g_jieguo(7)),image_3(:,:,fj_3_hang_jieguo(8))...

,image_3(:,:,fj_3_hang_jieguo(9)),image_3(:,:,fj_3_hang_jieguo(10)),image_3(:,:,fj_3_ha ng_jieguo(11)),image_3(:,:,fj_3_hang_jieguo(12))...

,image_3(:,:,fj_3_hang_jieguo(13)),image_3(:,:,fj_3_hang_jieguo(14)),image_3(:,:,fj_3_h ang_jieguo(15)),image_3(:,:,fj_3_hang_jieguo(16))...

,image_3(:,:,fj_3_hang_jieguo(17)),image_3(:,:,fj_3_hang_jieguo(18)),image_3(:,:,fj_3_h ang_jieguo(19))]);

8.fujian_3_pinjie_hang.m文件

%%%%%%%%

% 此文件,将附件 3 中的图片分好的组,进行组内拼接,产生源文件的行

%行分组情况

fujian_3_fenzu_juzh = [

30 6 49 60 76 173 207 11 38 45 56 65 93 99 105 112 172 181 202

39 106 9 26 36 47 75 82 89 104 123 131 149 162 168 194 10 25 190

95 35 59 44 48 78 85 91 98 113 122 125 128 137 145 150 165 184 43

8 1 46 33 69 71 127 159 167 175 176 54 57 94 138 139 154 197 209

62 97 117 132 7 20 21 37 53 64 68 70 73 79 80 100 163 164 178

72 84 86 171 203 34 81 133 134 157 166 199 201 206 28 16 153 18 61

126 17 22 111 140 146 151 158 182 183 185 188 205 107 174 198 14 67 110

90 5 102 103 109 114 124 152 155 156 195 41 120 141 147 208 115 186 118

169 51 63 121 180 192 196 19 24 27 42 77 88 101 143 148 87 2 31

15 74 108 4 13 32 40 83 116 129 135 160 161 170 177 200 52 136 204

50 3 23 58 92 119 130 144 191 66 142 187 193 12 29 55 179 189 96

];

load image_3;

fj_3_pinjie_hang = zeros(11,19);

for i = 1:11

%调用函数f_fj3_hang_pinjie ,完成行分组后的最内拼接,并图形显示结果 fj_3_pinjie_hang(i,:) = f_fj3_hang_pinjie(image_3,fujian_3_fenzu_juzh(i,:));

end

save fj_3_pinjie_hang fj_3_pinjie_hang;

9.fujian_3_pinjie_jieguo.m 文件

m 文件

%% 1.将11*19的纸条,分成11组,即先把属于同一组的图片归组,依据就是“每个纸条的上边界空行数”或者“汉字数”

load image_3;

for i = 1:209

image_hang_he(:,i) = sum(image_3(:,:,i)',1);

end

%若为空格则标记为1,并统计空格的个数。若为汉字则标记为0,并统计汉字的个数。将结果放入矩阵image_hang_he_18360中

for i = 1:209

he_18360 = 0; %若一行都是空格,则他的像素和为72*255=18360

for j=1:180

if(image_hang_he(1,i) == 18360)

index = 1;

if(image_hang_he(j,i) == 18360)

he_18360 = he_18360 + 1;

else

break;

end

else

index = 0;

if(image_hang_he(j,i) ~= 18360)

he_18360 = he_18360 + 1;

else

break;

end

end

end

image_hang_he_18360(1,i) = he_18360;

image_hang_he_18360(2,i) = index;

end

10.fujian_4_tezheng_chazhao.% 从投影图上观察图像特征

load image_4

image_4_01 = image_4<250;

%fujian_hang = [21 42 109 117 137 74 37 208 136 16 77 44 200 46 174 80 162 180 144];

fujian_hang = [ 21 42 109 117 137 74 37 208 136 16 77];

for i = 1:11

fujian_4_zitu = image_4_01(:,:,fujian_hang(i));

fujian_4_zitu_hang_touying = sum(fujian_4_zitu,2);

fujian_4_zitu_hang_touying_fazhi = 40*(fujian_4_zitu_hang_touying == 0);

figure;

subplot(2,2,1);

plot(1:180,fujian_4_zitu_hang_touying);

subplot(2,2,2);

plot(fujian_4_zitu_hang_touying_fazhi,'*');

subplot(2,2,3);

imshow(image_4(:,:,fujian_hang(i)));

end

%figure

%imshow([image_4(:,:,fujian_hang(1)),image_4(:,:,fujian_hang(2)),image_4(:, %:,fujian_hang(3)),image_4(:,:,fujian_hang(4)),image_4(:,:,fujian_hang(5))]);

11.f_fujian_4_weizhi

function zhongxin_weizhi = f_fujian_4_weizhi(tou_ying)

% 计算附件4中每个子图第一行的中心位置

%tou_ying = fujian_4_hang_touying(:,1);

biaozhi = 0;% 1表示找见第一行,

zi = 0;

qishi_weizhi = 1;

while(biaozhi == 0)

chang = 0;

if( tou_ying(qishi_weizhi) ~=0 )%字符

for i = qishi_weizhi:180

if(tou_ying(i) ~=0)

chang = chang + 1;

else

break

end

end

if(chang>20)

jiesu_weizhi = qishi_weizhi+chang;

biaozhi = 1;

break

else

qishi_weizhi = i;

end

else%空行

for i = qishi_weizhi:180

if(tou_ying(i) ==0)

chang = chang + 1;

else

break

end

end

qishi_weizhi = i;

end

end

%找极值

qishi_hang = tou_ying(1:jiesu_weizhi);

qishi_hang(1:qishi_weizhi) = zeros(1,qishi_weizhi);

zhengfu = zeros(1,jiesu_weizhi);

for i = 1:jiesu_weizhi-1

if(qishi_hang(i+1)>qishi_hang(i))

zhengfu(i) = 1;

else

zhengfu(i) = -1;

end

end

cuowei_jia = zhengfu(1:jiesu_weizhi-2) + zhengfu(2:jiesu_weizhi-1);

jizhi_weizhi = find(cuowei_jia==0);

jizhi_shu = length(jizhi_weizhi);

jizhi = [];

for i = 1:jizhi_shu

jizhi = [jizhi;[tou_ying(jizhi_weizhi(i)) jizhi_weizhi(i)]];

end

jizhi_sort = sortrows(jizhi);

zhongxin_weizhi = floor((jizhi_sort(jizhi_shu,1) + jizhi_sort(jizhi_shu-1,2))/2); if(zhongxin_weizhi>70)

zhongxin_weizhi = zhongxin_weizhi-70;

end

2013数学建模B题国家一等奖Matlab程序

附录3:程序源文件 1.duqu_image.m文件 %数据读取预处理文件 %将附件中的图片读取到matlab矩阵中,并保存为image_1,image_2,image_3,image_4,image_5a,image_5b %所有附件均放在文件夹 D:\B 中%%%%%%%%%%%%%%%%%%%%%%%%图片名序列 %图像名称序号 b = [ones(1,10);0 1 2 3 4 5 6 7 8 9]'; image_num= [ strcat( num2str(0*b(:,1)),num2str(0*b(:,1)),num2str(b(:,2)) ), strcat( num2str(0*b(:,1)),num2str(b(:,1)),num2str(b(:,2)) ), strcat( num2str(0*b(:,1)),num2str(2*b(:,1)),num2str(b(:,2)) ), strcat( num2str(0*b(:,1)),num2str(3*b(:,1)),num2str(b(:,2)) ), strcat( num2str(0*b(:,1)),num2str(4*b(:,1)),num2str(b(:,2)) ), strcat( num2str(0*b(:,1)),num2str(5*b(:,1)),num2str(b(:,2)) ), strcat( num2str(0*b(:,1)),num2str(6*b(:,1)),num2str(b(:,2)) ), strcat( num2str(0*b(:,1)),num2str(7*b(:,1)),num2str(b(:,2)) ), strcat( num2str(0*b(:,1)),num2str(8*b(:,1)),num2str(b(:,2)) ), strcat( num2str(0*b(:,1)),num2str(9*b(:,1)),num2str(b(:,2)) ), strcat( num2str(b(:,1)),num2str(0*b(:,1)),num2str(b(:,2)) ), strcat( num2str(b(:,1)),num2str(b(:,1)),num2str(b(:,2)) ), strcat( num2str(b(:,1)),num2str(2*b(:,1)),num2str(b(:,2)) ), strcat( num2str(b(:,1)),num2str(3*b(:,1)),num2str(b(:,2)) ), strcat( num2str(b(:,1)),num2str(4*b(:,1)),num2str(b(:,2)) ), strcat( num2str(b(:,1)),num2str(5*b(:,1)),num2str(b(:,2)) ), strcat( num2str(b(:,1)),num2str(6*b(:,1)),num2str(b(:,2)) ),

2013数学建模国赛B题

3v2013高教社杯全国大学生数学建模竞赛题目 (请先阅读“全国大学生数学建模竞赛论文格式规范”) B题碎纸片的拼接复原 破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。请讨论以下问题: 1. 对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果以图片形式及表格形式表达(见【结果表达格式说明】)。 2. 对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果表达要求同上。 3. 上述所给碎片数据均为单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。附件5给出的是一页英文印刷文字双面打印文件的碎片数据。请尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果,结果表达要求同上。 【数据文件说明】 (1)每一附件为同一页纸的碎片数据。 (2)附件1、附件2为纵切碎片数据,每页纸被切为19条碎片。 (3)附件3、附件4为纵横切碎片数据,每页纸被切为11×19个碎片。 (4)附件5为纵横切碎片数据,每页纸被切为11×19个碎片,每个碎片有正反两面。该附 件中每一碎片对应两个文件,共有2×11×19个文件,例如,第一个碎片的两面分别对应文件000a、000b。 【结果表达格式说明】 复原图片放入附录中,表格表达格式如下: (1)附件1、附件2的结果:将碎片序号按复原后顺序填入1×19的表格; (2)附件3、附件4的结果:将碎片序号按复原后顺序填入11×19的表格; (3)附件5的结果:将碎片序号按复原后顺序填入两个11×19的表格; (4)不能确定复原位置的碎片,可不填入上述表格,单独列表。

数学建模B题 含代码

2013高教社杯全国大学生数学建模竞赛 承诺书 我们仔细阅读了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。 我们参赛选择的题号是(从A/B/C/D中选择一项填写): B 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名):华南师范大学增城学院 参赛队员(打印并签名) :1. 2. 3. 指导教师或指导教师组负责人(打印并签名): 日期:年月日

赛区评阅编号(由赛区组委会评阅前进行编号):

2013高教社杯全国大学生数学建模竞赛 编号专用页 赛区评阅编号(由赛区组委会评阅前进行编号): 全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):

DVD在线租赁 摘要 问题(三):题目需要我们回答购买各种DVD的数量来使95%的会员能看到他DVD想看到的DVD,并且要怎么分配才能使满意度达到最大;每种建立以总的购买数最小、会员满意度最大为双目标的规划模型。通过确定在一个月内每张DVD的在每个会员中手中的使用率;然后通过c语言程序编程来确定每种DVD 的购买量;建立0-1规划模型;通过LINGO软件使满意度达到最大,来最终确定DVD的分配; 一级,二级目标,将多目标规划转化为单目标;同时将第j种DVD的购买量y的整数约束去掉,求解出最小购买数为张。将最小购买数作为约束条件,优j 化满意度后,得到最大满意度为95%;然后对此时DVD的购买量 y向上取整,得 j 到总购买数为186张。当购买数为186张时,会员满意度达到97%。 三、模型假设 1、租赁周期为一个月,每月租两次的会员可以在月中再租赁一次; 2、同一种DVD每人只能租赁一次; 3、DVD在租赁过程中无损坏; 4、会员每月至少交一次订单; 5、会员只有把前一次所借的DVD寄回,才可以继续下一次租赁 6、月底DVD全部收回,继续下个周期的租赁; 7、随着时间的推移,该网站的会员们的流动情况不会出现大变动。 四、符号说明

2013年数学建模B题一等奖优秀论文1

基于最小二乘法的碎纸片拼接复原数学模型 摘要 首先对图片进行灰度化处理,然后转化为0-1二值矩阵,利用矩阵行(列)偏差函数,建立了基于最小二乘法的碎纸片拼接数学模型,并利用模型对图片进行拼接复原。 针对问题一,当两个数字矩阵列向量的偏差函数最小时,对应两张图片可以左右拼接。经计算,得到附件1的拼接结果为: 08,14,12,15,03,10,02,16,01,04,05,09,13,18,11,07,17,00,06。 附件2的拼接结果为: 03,06,02,07,15,18,11,00,05,01,09,13,10,08,12,14,17,16,04。 针对问题二,首先根据每张纸片内容的不同特性,对图片进行聚类分析,将209张图片分为11类;对于每一类图片,按照问题一的模型与算法,即列偏差函数最小则进行左右拼接,对于没有拼接到组合里的碎纸片进行人工干预,我们得到了11组碎纸片拼接而成的图片;对于拼接好的11张图片,按照问题一的模型与算法,即行偏差函数最小则进行上下拼接,对于没有拼接到组合里的碎纸片进行人工干预。我们最终经计算,附件3的拼接结果见表9,附件4的拼接结果见表10。 针对问题三,由于图片区分正反两面,在问题二的基础上,增加图片从下到上的裁截距信息,然后进行两次聚类,从而将所有图片进行分类,利用计算机自动拼接与人工干预相结合,对所有图片进行拼接复原。经计算,附件5的拼接结果见表14和表15 该模型的优点是将图片分为具体的几类,大大的减少了工作量,缺点是针对英文文章的误差比较大。 关键字:灰度处理,图像二值化,最小二乘法,聚类分析,碎纸片拼 一、问题重述 碎纸片的拼接复原技术在司法鉴定、历史文献修复与研究、军事情报获取以及故障分析等领域都有着广泛的应用。近年来,随着德国“斯塔西”文件的恢复工程的公布,碎纸文件复原技术的研究引起了人们的广泛关注。传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。对于一页印刷文档,针对不同的破碎方法,讨论下列三个问题: (1)将给定的一页印刷文字文件纵切,建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。 (2)对于碎纸机既纵切又横切的情形,设计碎纸片拼接复原模型和算法,并针对附

2000年数学建模B题解答

2000年数学建模B题 解答 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

钢管订购和运输 摘要:本文建立了一个运输问题的最优化模型。 通过分析题图一,我们利用Floyd算法求出铁路网和公路网各点间最短路线,然后转化成最少运输,去掉了铁路和公路的性质,使运输网络变成一张供需运输价格表,然后建立了一个以总费用为目标函数的非线性规划模型,利用 Lingo 软件,求出问题一的最优解为1278632万元 通过对问题一中lingo运行结果的分析,我们得出S5钢厂钢管的销价的变化对购运计划和总费用影响最大,S1钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大。 问题三模型的建立原理和问题一的相同,利用Lingo 软件,求得最优解为1407149万元. 关键词:Floyd算法,非线性规划,0-1规划

一 问题重述 有7个生产厂,可以生产输送天然气主管道的钢管 721,,S S S 。要沿着 1521A A A →→→ 的主管道铺设, 如题图一所示。图中粗线表示铁路,单细线表示公路,双 细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。为方便计,1km 主管道钢管称为1单位钢管。 一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂i S 在指定期限内能生产该钢管的最大数量为i s 个单位,钢管出厂销价1单位钢管为i p 万元,如下表: 123456780080010002000200020003000160155155160155150160 i i s i p 1单位钢管的铁路运价如下表: 里程(km) ≤300 301~350 351~400 401~450 451~500 运价(万元) 20 23 26 29 32 里程(km) 501~600 601~700 701~800 801~900 901~1000 运价(万元) 37 44 50 55 60 1000km 以上每增加1至100km 运价增加5万元。 公路运输费用为1单位钢管每公里0.1万元(不足整公里部分按整公里计算)。 钢管可由铁路、公路运往铺设地点(不只是运 到点,而是管道全线)。 (1)请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。 (2)请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。 (3)如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情形给出一种解决办法,并对题图二按(1)的要求给出模型和结果。 二 问题分析 问题一,首先,所有钢管必须运到天然气主管道铺设路线上的节点 1521,,,A A A

2013年美国数学建模竞赛B题

水资源计划 摘要 本文是要设计一个有效的,可行的,低成本的用水计划,来满足某国2025年的用水需求。我们选择中国为研究对象,根据中国各地区历年的水资源总量并求出其均值,参考各地区历年用水总量来预测2025年的用水总量,将两者相减得出差值,并以此为依据将中国各地区分为缺水地区,不缺水地区,水资源丰富地区三类。经研究分析有两种可行性高的方案。第一种,由水资源丰富地区向缺水地区提供水。第二种,是由沿海缺水城市进行海水淡化并运往其他缺水城市。我们主要考虑经济因素对两种方案进行分析研究,最终得出结论由水资源丰富地区铺设管道向缺水地区提供水为最优方案。并以各省的省会作为核心城市,说明全省的需水和调水情况,并以省会城市或直辖市为顶点构成一个赋权图,即把问题转换为求水资源丰富地区到缺水地区的最短路问题,并用图论的知识来解决问题。在此基础上考虑到此方案会改变就业,生产力,水资源利用等因素,从而对经济,物理,环境产生不同程度的影响,并用层次分析加以研究,最终以报告的方式向政府反映。 关键词:回归分析最小生成树层次分析法

一、问题重述 淡水是世界大部分地区的发展限制。试建立一个数学模型,用来确定一个有效的、可行的和低成本的水资源战略,以满足2025年预计的用水需求,特别是,您的数学模型必须解决存储和输送,去盐碱化和环境保护等问题。如果可能的话,用你的模型探讨此战略在经济,物理和环境等方面的影响。试提供一个非技术性的文件,向政府相关部门介绍你的方法以及其可行性和成本,并说明为什么它是“最好的水战略”。 二、符号说明 ?y:预测得出的2025年用水量; S:输水的造价; 1 S:海水淡化的造价; 2 d1: 输水工程的单位造价; d2:海水淡化的单位造价; 2 R:拟合度. 三、模型假设 1.从2013年到2025年各外部因素对水资源总量无影响,例如:雪灾、地震、 洪水、战争等对环境的影响; 2.各地区海水淡化单位费用相同; 3.不同地区淡水转移的单位费用相同; 4.人们的消费水平及劳动力费用不会随意外事故发生明显改变。 四、问题分析 以下内容以中国为例,考虑到中国的实际国情,我国是世界上12个贫水国家之一,淡水资源还不到世界人均水量的1/4。全国600多个城市半数以上缺

2013年数学建模(B题)碎纸片的拼接复原模型

承诺书 我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛 参赛规则》(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网 站下载)。 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、 网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果 或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在 正文引用处和参考文献中明确列出。 我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。如 有违反竞赛章程和参赛规则的行为,我们将受到严肃处理。 我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开 展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。 我们参赛选择的题号是(从A/B/C/D中选择一项填写): B 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名): 参赛队员 (打印并签名) :1. 2. 3. 指导教师或指导教师组负责人 (打印并签名): (论文纸质版与电子版中的以上信息必须一致,只是电子版中无需签名。以上内 容请仔细核对,提交后将不再允许做任何修改。如填写错误,论文可能被取消评奖资格。) 日期: 2013 年 9 月 10 日赛区评阅编号(由赛区组委会评阅前进行编号):

编号专用页 赛区评阅编号(由赛区组委会评阅前进行编号): 全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):

2013年全国大学生数学建模竞赛B题全国一等奖论文

碎纸片的拼接复原 【摘要】 破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。本文主要解决碎纸机切割后的碎纸片拼接复原问题。 针对第一问,附件1、2分别为沿纵向切割后的19张中英文碎纸片,本文在考虑破碎纸片携带信息量较大的基础上,利用MATLAB对附件1、2的碎纸片图像分别读入,以数字矩阵的方式进行存储。利用数字矩阵中包含图像边缘灰度这一特征,本文采用贪心算法的思想,在首先确定原文件左右边界的基础上,以Manhattan距离来度量两两碎纸片边界差异度,利用计算机搜索依次从左往右搜寻最匹配的碎纸片进行横向配对并达成排序目的。最终,本文在没有进行人工干预,成功地将附件1、2碎纸片分别拼接复原,得到复原图片见附录2.1、2.2,纵切中文及英文结果表分别如下: 思想仍为贪心算法,整体思路为先对209张碎纸片进行聚类还原成11行,再对分好的每行进行横向排序,最后对排序好的各行进行纵向排序。本文在充分考虑汉字与拉丁字母结构特征差异以及每块碎纸片携带信息减少的基础上,创新地提出一种特征线模型来分别描述汉字及拉丁文字母的特征用于行聚类。对于行聚类后碎片的横向排序,本文综合了广义Jaccard系数、一阶差分法、二阶差分法、Spearman系数等来构建扩展的边界差异度模型,刻画碎片间的差异度。对于计算机横向排序存在些许错误的情况,本文给出了人工干预的位置节点和方式。对于横向排序后的各行,由于在一页纸上,文字的各行是均匀分布的,本文基于各行文字的特征线,在确定首行的位置后,估计出其他行的基准线位置,得到一页的基准线网格,并通过各行基准线在基准线网格上的适配实现纵向的排序。最终,本文成功的将附件3、4碎纸片分别拼接复原得到复原图片及结果表见附录1.3、1.4、2.3、2.4,同时本文给出了横向排序中人工干预的位置节点和方式。 针对第三问,附件5为双面文件既横切又纵切后的209张碎片(包含正反面),即包含418张图像。本文整体解决思路同第二问中对于拉丁文碎片的复原类似,并且由于正反两面的特征可以同时作为差异度判断条件,特征信息丰富,综合使用各种差异度函数后可以将各行全部正确排列,无需人工排错,同时正确排序时自然分出两面。以与问题二类似的方法,确定出每一面的第一行后,用基准线网格确定各行的位置并排序。然而由于附件5原件的第3、第4行及第9、第10行的两个切口正好切到了两行行间的空白,同时两面文字高度一致,所以计算机不可能分辨二者是否在同一面,此处必须由人工介入,通过上下文区分。最终,本文成功的将附件5所有碎片分别拼接复原得到复原图片及结果表见附录1.5、1.6、2.5、2.6。对于本问题,本文只在最后模块的上下文判断和横向排列的方法选择时进行了干预,自动化程度高。 本文发现在横向排序中,一、二阶差分法对于样本量大的情况适配成功率很高,而广义Jaccard系数及Spearman系数则对样本量小但特征显著的情况适配的成功率更高。 关键词:图像拼接复原贪心算法差异度相似系数文字基准线 1

2009年全国大学生数学建模B题

眼科病床的合理配置优化模型 摘要:本文将眼科患者中除外伤(一般作为急症处理)外的三种患者以平均等 待时间(从门诊就诊到入院的时间 + 手术准备时间)最短衡量病床安排方案合理程度,并以此为基础建立合理的评价指标体系;利用Matlab软件对医院所提供的有关数据进行了详细的分析处理,运用排队论建立了该医院病床安排模型,将分配床位的结果(等待时间)与原来等待时间做了比较,说明运用此模式分配床位更合理;根据每个窗口最大接收病人的能力以及住院病人及等待住院的病人的统计情况,可以在门诊就诊时告诉需要住院的病人大致入院时间;同时,在周六、周日不安排手术的情况下,对该医院病床安排模型进行了相应的调整;建立了使得病人在系统内的平均逗留时间(含等待入院及住院时间)最短的病床比例分配模型。 关键词:眼科医院;病床;安排;模型;排队论 一、问题重述 医院就医排队是大家都非常熟悉的现象,由于眼科病人的病情严重程度存在差异,有的只需要一次手术就可以治愈,有的需要二次手术(比如白内障患者分一只眼和两只眼患病两种情况),并且在入院前和术前一般都有等待时间,在术后都有不同长度康复时间(这里指需要留院观察的时间),会有很多患者为就诊治病而等待比较长的时间,为解决这种问题,如果医院增添服务人员和设备,就需要增加人力和物力的投资,若处理不当,很有可能对医院造成资源的浪费;不采取相应的措施,则排队等待时间太长的现象很难得到改善,对患者和社会都会带来不良影响。为此,采用排队论的有关理论[2],利用计算机对一个客观复杂的排队系统的结构和行为进行动态模拟,以获得反映其系统本质特征的数量指标结果,进而预测、分析或评价该系统的行为效果,为决策者提供决策依据。因此,医院管理人员要考虑如何在这两者之间取得平衡,以便提高服务质量,降低服务费用.。 二、问题假设 1、假设就医患者在某段时间区间内到达的患者数的概率与这段时间的长度和患者数有关; 2、在不相同的时间区间内到达的患者数是相互独立的; 3、在同时间点上就诊或手术最多到达1个患者,不存在同时到达2个以上患者的情况; 4、在有限的时间区间内只能到达有限个患者,不可能有无限个患者到达;

2013年数学建模美赛B题论文

2013建模美赛B题思路 摘要 水资源是极为重要生活资料,同时与政治经济文化的发展密切相关,北京市是世界上水资源严重缺乏的大都市之一。本文以北京为例,针对影响水资源短缺的因素,通过查找权威数据建立数学模型揭示相关因素与水资源短缺的关系,评价水资源短缺风险并运用模型对水资源短缺问题进行有效调控。 首先,分析水资源量的组成得出影响因素。主要从水资源总量(供水量)和总用水量(需水量)两方面进行讨论。影响水资源总量的因素从地表水量,地下水量和污水处理量入手。影响总用水量的因素从农业用水,工业用水,第三产业及生活用水量入手进行具体分析。 其次,利用查得得北京市2001-2008年水量数据,采用多元线性回归,建立水资源总量与地表水量,地下水量和污水处理量的线性回归方程 y?=-4.732+2.138x1+0.498x2+0.274x3 根据各个因数前的系数的大小,得到风险因子的显著性为r x1>r x2>r x3(x1, x2,x3分别为地表水、地下水、污水处理量)。 再次,利用灰色关联确定农业用水、工业用水、第三产业及生活用水量与总用水量的关联程度r a=0.369852,r b= 0.369167,r c=0.260981。从而确定其风险显著性为r a>r b>r c。 再再次,由数据利用曲线拟合得到农业、工业及第三产业及生活用水量与年份之间的函数关系,a=0.0019(t-1994)3-0.0383(t-1994)2-0.4332(t-1994)+20.2598; b=0.014(t-1994)2-0.8261t+14.1337; c=0.0383(t-1994)2-0.097(t-1994)+11.2116; D=a+b+c;预测出2009-2012年用水总量。 最后,通过定义缺水程度S=(D-y)/D=1-y/D,计算出1994-2008的缺水程度,绘制出柱状图,划分风险等级。我们取多年数据进行比较,推测未来四年地表水量和地下水量维持在前八年的平均水平,污水处理量为近三年的平均水平,得出2009-2012年的预测值,并利用回归方程 y?=-4.732+2.138x1+0.4982x2+0.274x3 计算出对应的水资源总量。通过预测的总用水量,水资源总量和缺水程度公式 S=(D-y)/D=1-y/D 计算出2009-2012年的缺水程度,根据划分的风险等级,判断出2009-2012年水资源风险等级均为中风险。

2013年数学建模B题碎纸片的拼接复原

B题 碎纸片的拼接复原 破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。请讨论以下问题: 1.对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果以图片形式及表格形式表达(见【结果表达格式说明】)。 2.对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果表达要求同上。 3.上述所给碎片数据均为单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。附件5给出的是一页英文印刷文字双面打印文件的碎片数据。请尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果,结果表达要求同上。 【数据文件说明】

(1)每一附件为同一页纸的碎片数据。 (2)附件1、附件2为纵切碎片数据,每页纸被切为19条碎片。 (3)附件3、附件4为纵横切碎片数据,每页纸被切为 11×19个碎片。 (4)附件5为纵横切碎片数据,每页纸被切为11×19个碎片,每个碎片有正反两面。该附件中每一碎片对应两个文件,共有2×11×19个文件,例如,第一个碎片的两面分别对应文件 000a、000b。 【结果表达格式说明】 复原图片放入附录中,表格表达格式如下: (1)附件1、附件2的结果:将碎片序号按复原后顺序填入 1×19的表格; (2)附件3、附件4的结果:将碎片序号按复原后顺序填入11×19的表格; (3)附件5的结果:将碎片序号按复原后顺序填入两个 11×19的表格;

全国大学生数学建模比赛B题答案

全国大学生数学建模比 赛B题答案 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

2013高教社杯全国大学生数学建模竞赛 承诺书 我们仔细阅读了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网 上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的 资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和 参考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规 则的行为,我们将受到严肃处理。 我们参赛选择的题号是(从A/B/C/D中选择一项填写): B 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名):重庆邮电大学 参赛队员 (打印并签名) :1. 2. 3. 指导教师或指导教师组负责人 (打印并签名): 日期: 2013 年 9 月 13 日赛区评阅编号(由赛区组委会评阅前进行编号):

2013高教社杯全国大学生数学建模竞赛 编号专用页 赛区评阅编号(由赛区组委会评阅前进行编号): 全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):

碎纸片的拼接复原 摘要 本文研究的是碎纸片的拼接复原问题。由于人工做残片复原虽然准确度高,但有着效率低的缺点,仅由计算机处理复原,会由于各类条件的限制造成误差与错误,所以为了解决题目中给定的碎纸片复原问题,我们采用人机结合的方法建立碎纸片的计算机复原模型解决残片复原问题,并把计算机通过算法复原的结果优劣情况作为评价复原模型好坏的标准,通过人工后期的处理得到最佳结果。 面对题目中给出的BMP格式的黑白文字图片,我们使用matlab软件的图像处理功能把图像转化为矩阵形式,矩阵中的元素表示图中该位置像素的灰度值,再对元素进行二值化处理得到新的矩阵。题目每一个附件中的碎纸片均为来自同一页的文件,所以不需考虑残片中含有未知纸张的残片以及残片中不会含有公共部分。鉴于残片形状分为“长条形”与“小长方形”,残片内容分为中文、英文,纸张的打印类型分为“单面型”、“双面型”,所以我们根据残片的类型对矩阵做不同处理。 针对问题一中给出的“长条形”碎纸片:对图片转化后的矩阵进行边缘检测,发现每一张图片的两短边在一定范围内全是白色,而仅有2张图片的长边在一定范围内全是白色,说明我们需要对长边进行拼接,一边包含全白的长边是原文件纸张的两端。由于考虑到模型应用的推广,我们在此问中的模型包含了图片倒置的情况(仅在问题一中考虑倒置情况,鉴于问题二、三中数据量的增多,二三问不再考虑倒置情况),对图片的长边及矩阵中的第一列和最后一列与其他矩阵的第一列和最后一列进行边缘匹配,根据边缘匹配度来确定图片复原,最后若发现拼接效果有偏差,在进行人工操作。 针对问题二中的“小长方形”碎纸片:由于数据量变多,盲目使用问题一中的方法不能保证准确度,所以这里要进一步约束使当前图片与少量图片进行匹配。观察两种文字的特点,我们可以发现中英文在位置上均有一定的特性,我们利用这种特性将有相同位置特性的碎纸片归类为一组,在问题一方法的基础上做少许修改后代入有相同位置特性的一组碎纸片中,根据边缘匹配度将他们连接、检查并做人工处理可得拼接后的横行纸片,再将横行纸片的长边用同样的方法做边缘匹配可将行与行之间拼接起来,再做人工调整得到最优结果。通过模型的建立求解过程可以发现中英文在本问题的求解方法中有着一定的不同,英文需要更多地人工判断处理。 针对问题三考虑到双面问题以及问题二中英文碎纸片的情况,我们把碎纸片两面匹配度之和作为判断碎纸片是否连接的评价标准,在问题一方法的基础上,在计算机每一步的匹配结果加以人工选择与判断,这样再次处理得到的结果,可以得到同问题二中一样的横行碎纸片,在根据新的横行碎纸片的两面边缘匹配度之和进行同样的操作处理可以将原纸张拼接复原。 关键词:残片复原 matlab图像处理二值化边缘匹配度倒置情况位置特性

2015年数学建模 B题

B题“互联网+”时代的出租车资源配置 摘要 本文针对现代生活中“打车难”这一问题,寻找引起其发生的主要因素,并在此基础上建立了与之相对应的打车软件服务信息平台,提出了最优控制策略,最后通过对深圳市出租车辆的调查做出了具体检验措施,验证出此模型的合理性。 针对问题一,本文首先运用层次分析方法,筛选出四至五个相对合理的指标以此来评判出对出租车供求的影响;其次运用SPSS软件对这些指标的数据进行预处理,应用主成分分析法从中再次筛选出三个重要指标,分别得出深圳市和佛山市供给量与需求量与对应三个重要指标间的关系,并利用MATLAB软件绘制供求量随影响因素变化的模型。利用灰色预测模型来分别预测未来几年深圳市和佛山市供给量与需求量发展趋势,验证其匹配状况,进而解决不同时间下的匹配度问题。运用灵敏度分析法,修正误差,完善模型。 针对问题二,考虑到出租车补贴主要为燃油补贴,由问题一的模型可知,燃油价格因素直接影响了供给量,通过问题一得出出租车补贴方案对缓解打车难有明显影响。 针对问题三,在软件平台建立上,为实现匹配度最佳,基于打车者与出租车距离最短,等待时间最短,首先利用图论的知识找出最短路径,进而运用改进的遗传算法求出最短时间,寻求到最优方案。其次根据空载量,分情况讨论具体补贴方案。最后根据GPS定位数据随机选取出“滴滴打车”某一时间内的经纬度,对以上服务信息平台进行检验,得出该平台较之前具有更好的合理性。 关键词:主成分分析灰色预测模型SPSS数据处理遗传算法

一、问题重述 随着经济的快速发展,人口密度的增大,“打车难”已成为全国大部分城市所面临的主要问题,人们均是采取“招手打车”方式,这不仅降低了司机载客量,而且对顾客来说,也浪费了很多时间。现在出现了“滴滴打车”,“快的打车”等软件服务平台,让人们利用“互联网+”方便快捷地打到车。而我们这个模型的主要目的既是通过搜集相关合理数据,从而进行以下问题的讨论。 1.寻找合适指标,建立数学模型,分析在不同时间地点的出租车需求量以及供应量之间的匹配程度。 2.通过分析现有不同的补贴方案,比较出租车的供求关系,观察出租车供不应求的现象是否得到缓解。 3.在第二问的基础上,设计合适的补贴方案,重新建立打车软件服务平台,并且论证所设计方案是否合理。 二、问题分析 本题要求我们建立数学模型,研究如何缓解“打车难“这一问题,并分析出租车补贴方案对其是否有缓解作用,并对建立的模型做相应的合理性预测检验。 2.1问题一的分析 问题一要求选取合理指标,并确定对不同时空内出租车资源匹配程度。我们将对搜取到的指标首先进行剔除,归一化处理,使其处于同一量纲下,便于计算研究。其次应用层次分析法,通过各权重的比较确定出对出租车资源匹配影响最重要的指标作为以下论文中的合理指标。为了使结果更有说服性,我们应用灰色预测模型对接下来几年数据进行预测,以此来检验不同时空出租车资源的匹配程度。 2.2问题二的分析 问题二要求分析各公司出租车补贴方案问题,确定各公司的补贴方案对“缓解打车难”是否有帮助。总结出油价补贴是各大公司的主要补贴政策,分析出对油价补贴影响显著的因素,根据这些因素对供需匹配程度的影响,从而间接推测出政府的补贴方案对缓解打车难是否有帮助。 2.3问题三的分析 问题三要求新创建一个打车软件服务平台,此平台在保证空间最短路径的情形下又保证了时间上的最短,达到了双重优化作用。此软件服务平台系统首先应用图

2013年数学建模b题

精心整理 碎纸片的拼接复原 【摘要】:碎纸片拼接技术是数字图像处理领域的一个重要研究方向,把计算机视觉和程序识别应用于碎纸片的复原,在考古、司法、古生物学等方面具有广泛的应用,具有重要的现实意义。本文主要结合各种实际应用背景,针对碎纸机绞碎的碎纸片,基于计算机辅助对碎纸片进行自动拼接复原研究。 针对问题1,依据图像预处理理论,通过matlab程序处理图像,将图像转化成适合于计算机处理的数字图像,进行灰度分析,提取灰度矩阵。对于仅纵切的碎纸片,根据矩阵的行提取理论,将 。建 中的任一列与矩阵值, 序列号。将程序进行循环操作,得到最终的碎片自动拼接结果。 、; 分别作为新生成的矩阵、。 , 将矩阵中的任一列分别与矩阵中每一列代入模型,所得p值对应的值即为横排序;将矩 阵中的任一行分别于矩阵中的任一行代入模型,所得q值对应的值即为列排序。循环进行此 程序,得计算机的最终运行结果。所得结果有少许误差,需人工调制,更正排列顺序,得最终拼接结果。

针对问题3,基于碎纸片的文字行列特征,采用遗传算法,将所有的可能性拼接进行比较,进行择优性选择。反面的排序结果用于对正面排序的检验,发现结果有误差,此时,进行人工干预,调换碎纸片的排序。 【关键词】:灰度矩阵欧式距离图像匹配自动拼接人工干预 一、问题重述 破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。传统上,大量的纸质物证复原工作都是以人工的方式完成的,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接不但耗费大量的人力、物力,而且还可能对物证造成一定的损坏。随着计算机技术的发展,人们试图把计算机视觉和模式识别应用于碎纸片复原,开展对碎纸片自动拼接技术的研究,以提高拼接复原效率。试讨论一下问题,并根据题目要求建立相应的模型和算法: 、附件4 (1) (2) (3) (4) 纸片的自动拼接。 问题1: 根据图像预处理理论,通过程序语言将图像导入matlab程序,对图像进行预处理,将碎纸片转换成适合于计算机处理的数字图像形式,并对数字图像进行灰度分析,提取灰度矩阵。对于仅纵切的碎纸片,根据矩阵的行提取理论,将每个灰度矩阵的第一列提取,作为新矩阵A,提取每个灰度矩阵的最后一列,作为新矩阵B。建立碎纸片匹配模型。根据遗传算法的思想,将矩阵A中的任 一行与矩阵B中的每一行带入模型,由最大相似性原理得s值对应的值,即为所拼接的碎片序列号。将程序进行循环操作,并最终建立对输入的解释。

2013年深圳杯数学建模B题参考论文

2013年山西赛区数学建模联赛 承诺书 我们仔细阅读了山西赛区数学建模联赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。 我们参赛选择的题号是(从A/B/C/D中选择一项填写):B 我们的参赛报名号为: 参赛队员(打印并签名) :

目录 一、摘要 (3) 二、关键词 (3) 三、问题重述与分析 (3) 四、模型假设 (3) 五、符号说明 (9) 六、模型的建立与求解 (9) 七、模型的检验 (10) 八、模型的优缺点分析 (10) 九、求解 (10) 十、合理化建议 (12) 参考文献 (13) 深圳关内外交通拥堵探究与治理 一、摘要

交通拥堵是目前中国各大城市面临的共同难题,但拥堵的成因各不相同,因而需要在摸清规律的基础上有针对性地提出解决方案。就深圳而言,交通堵塞对人们出行造成了较大的影响,造成深圳城市交通拥堵主要原因: 1、城市功能区构建。 2、城市公交发展相对迟缓,市民出行系统结构不合理。 随着深圳城市的不断扩大,市民出行距离的加大,公交车辆还远不能满足市民上下班或者出行的需要,城市公交发展却相对迟缓,市民出行系统结构不合理,导致了交通环境的进一步恶化。 3、城市道路交通规划滞后。 例如老城区路幅不宽,支路多、小街小巷多而且与主干道衔接相通,车辆交汇频繁致使交通不畅,成为“瓶颈”路口。 4、城市道路资源时常被侵占。 5、部分路段红绿灯过多。 6、市内停车供求矛盾突出。 7、市民交规意识薄弱。公共空间中以各种方式进行的空间移动(即交通)的需求,它具有需求时间和空间的不均匀性、需求目的的差异性等特征。伴随着城市居住人口的增长和经济速发展,人们对出行质量的要求也逐渐提高。城市机动车保有量持续攀升,居民出行机动化水平升高,交通需求总量不断增加。道路设施增长的速度远远赶不上机动车增长的速度,交通需求与交通供给不平衡,导致交通拥堵现象频频发生,给城市交通状况带来了新的挑战。交通拥堵是现代城市,尤其是大城市,不可避的交通问题。对路网进行交通拥堵状态的评价是改善其运行质量的前提和依据。我们通过图论和电路网络的知识对交通拥堵给予恰当的评价,从而提出合理化建议,解决交通堵塞问题。 二、关键词:图论、电路模型、线性拟合 三、问题重述与分析 1. 分析造成各关口拥堵的深层原因。以梅林关为例,考虑信息不完备的影响因素构建关口交通模型,分析造成关口广场区域高峰期拥堵的直接原因,对关口广场各连接道路进行分类或定出拥堵指数;根据你的模型参数,给出今后进一步研究关口广场拥堵问题所需交通数据的采集侧重内容建议。 2.在不增加关内外通道数量的情况下,能否通过调整城市分区功能、改变关口区域功能架构以及改善交通管控措施等来缓解梅林、布吉等关口的交通拥堵; 3.如果可以增加关内通道,试问应选在哪些地方(不考虑建设成本)。交通需求是指出于各种目的的人和物在社会。 4. 根据的知识可以知道交通堵塞问题可以抽象为电路网络求电阻的问题,电阻越大,则交通堵塞情况越严重,通过交通拥堵系数的函数关系式求得当因变量应当满足的条件后使得通量最大从而得到解决方案。 四、模型假设 将交通网络抽象为一个电路网络如图:→

相关文档
最新文档