所得税交纳点选址的数学模型Word文件下载.docx

上传人:b****2 文档编号:15376962 上传时间:2022-10-29 格式:DOCX 页数:13 大小:313.98KB
下载 相关 举报
所得税交纳点选址的数学模型Word文件下载.docx_第1页
第1页 / 共13页
所得税交纳点选址的数学模型Word文件下载.docx_第2页
第2页 / 共13页
所得税交纳点选址的数学模型Word文件下载.docx_第3页
第3页 / 共13页
所得税交纳点选址的数学模型Word文件下载.docx_第4页
第4页 / 共13页
所得税交纳点选址的数学模型Word文件下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

所得税交纳点选址的数学模型Word文件下载.docx

《所得税交纳点选址的数学模型Word文件下载.docx》由会员分享,可在线阅读,更多相关《所得税交纳点选址的数学模型Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。

所得税交纳点选址的数学模型Word文件下载.docx

◆第一步:

模型的建立

根据假设一,每个纳税点集中在每个区的中心,可能的位置有12种,则三个纳税点的组合至多有=12*11*10/6=220个。

可将问题参数化。

参数的假定:

①i、j、k——所选纳税点的区号;

(共有=220种选择方案)

②m——区号数;

(m=1、2、3…12)

③——m区的居民数,单位为千人;

④、、——分别表示m区到i、j、k区(即所选纳税点)的最小距离;

⑤=Min[,,]即m区到三个纳税点的最小距离;

则问题可以表述为:

求目标函数:

Min[Z(i,j,k)]=

◆第二步:

模型的求解(考虑用穷举法)

一、距离矩阵的建立

1、i=1,j=2,k=3(即所选的三个纳税点为1区,2区,3区);

(1)m=1,2,3时,显然,=0;

=0;

=0(即纳税点所在居民到本区纳税的距离最小,距离为0)

(2)m=4时,由题图显然:

=55(4——3——2——1);

=40(4——3——2);

=18(4——3);

=min(,,)==18;

……

(10)m=12时,由题图显然:

=67(12——9——5——1);

=61(12——9——3——2);

=39(12——9——3);

=min(,,)==39;

2、i=1,j=2,k=4(即所选的三个纳税点为1区,2区,4区);

(1)m=1,2,4时,显然,=0;

=0(即纳税点所在居民到本区纳税的距离最小,距离为0。

(2)m=3时,由题图显然:

=37(3——2——1);

=22(3——2);

=18(3——4);

=min(,,)==18;

(10)m=12时,由题图显然(以此类推):

……

以此类推,可得距离矩阵如下:

二、距离与人数的加权

与人数加权后的距离矩阵如下:

由公式Min[Z(i,j,k)]=结合与人数加权后的距离矩阵可得结果为:

加权后的最小距离和为2438;

在1,6,和11设置纳税点为最佳。

三、将上述求解过程程序化(以Mathlab为主,C语言程序、Lingo的程序及运行结果见附录)

Mathlab思考过程及程序如下:

第一步,用标号法求出每一个顶点vi至其它各个顶点vj的最短路径长度dij(i,j=1,2,…,12),并将其写成如下距离矩阵:

ShortDistance=

第二步,以各顶点的载荷(人口数)加权,求每一个顶点至其它各个顶点的最短路径长度的加权和,并将其写成如下距离矩阵:

ShortPath=

第三部,用穷举法任选三点,求其他九点中的任意一点到该三点的加权距离的最短距离的加权和,MATLAB中可用矩阵依次求出所有可能的结果,并标记最短距离SDL及最优第三点i,j,k.

第四步,输出,shortpath,SDL及i,j,k.

M=inf;

A=[15101218524111613221920];

a=[0,15,M,M,24,M,18,M,M,M,M,M;

0,0,22,M,M,M,M,M,M,M,M,M;

zeros(1,3),18,16,M,M,M,20,M,M,M;

zeros(1,4),M,12,M,M,M,M,M,M;

zeros(1,5),M,M,12,24,M,M,M;

zeros(1,6),M,M,12,M,M,22;

zeros(1,7),15,M,22,M,M;

zeros(1,8),30,M,25,M;

zeros(1,9),M,19,19;

zeros(1,10),19,M;

zeros(1,11),21;

zeros(1,12)];

a=a+a'

;

fori=1:

length(a)

pb(1:

length(a))=0;

pb(i)=1;

d(1:

length(a))=M;

d(i)=0;

temp=i;

whilesum(pb)<

tb=find(pb==0);

d(tb)=min(d(tb),d(temp)+a(temp,tb));

tmpb=find(d(tb)==min(d(tb)));

temp=tb(tmpb

(1));

pb(temp)=1;

end;

Shortdistance(i,:

)=d;

ShortPath(i,:

)=d.*A;

%display¼

Ó

È

¨

Ç

°

Shortdistance;

ShortPath

SD=[];

SDL=10000;

k=1;

l=1;

p=1;

q=1;

x=0;

y=0;

z=0;

1:

12

forj=1:

fork=1:

if(k~=i&

k~=j&

i~=j)

SD=0;

forl=1:

12

if(l~=i&

l~=j&

l~=k)

SD=[SDmin([ShortPath(i,l)ShortPath(j,l)ShortPath(k,l)])];

end

SDL1=sum(SD);

if(SDL1<

SDL)

SDL=SDL1;

x=i;

y=j;

z=k;

end

TheShortestdistance=SDL

displayThepointchosed;

disp([xyz])

Mathlab运行结果截图如下:

模型评价

模型的优点:

思路比较简单、计算比较方便,只需用计算机软件编程辅助即可。

将问题参数化、公式化,便于理解。

(g;

e!

^(v$[(\6U8R7m

模型的缺点:

本模型是在一系列的假设中进行的,并没有充分考虑实际过程中出现的问题。

比如,首先图上的任何两点之间不可能都能以直线的路径行走;

其次,居民选择最佳纳税点的考虑因素不仅仅是距离长短,还可能和出行是否方便有关。

模型的改进:

更进一步,如果时间允许的话,我们可以到指定城市实地考察,调查该城市居民人数的稳定分布情况,道路的便捷程度等。

我们也可以编制个一个决策软件:

只要输入各条道路长,各个区的人口数,软件可以给决策者提供一个税收点选址的较优地址。

模型的推广:

此题归属于运筹学问题——线性规划选址问题。

本题是在有限个离散点中选取加权距离最短的优化问题。

例如工厂选址,机场的航班连接,物流中心的安排问题等。

以此题为基础,考虑参数个数的变化对此模型的影响(如道路难度系数,出行费用等等);

将此题的离散点连续化,建立更完备的模型体系。

附录一:

C语言程序和运行结果截图

C语言程序如下:

#include<

stdio.h>

voidfloyd(int(*dist)[13],intn)

{inti,j,k;

for(k=1;

k<

n;

k++)

{for(i=1;

i<

i++)

{for(j=1;

j<

i;

j++)

{if(((i!

=j)&

&

(dist[i][k]*dist[j][k]!

=0))&

((dist[i][k]+dist[j][k]<

dist[i][j])||(dist[i][j]==0)))

{

dist[i][j]=dist[i][k]+dist[k][j];

dist[j][i]=dist[i][j];

}

}

}

intmin(intx,inty,intz)

{intd;

if(x<

y)d=x;

elsed=y;

if(d<

z)returnd;

elsereturnz;

voidmain()

{intM=0,b[13][13]={0},

i,j,k,m,sum[1500]={0},p=1,q=1,r=1,n=0,summin,

a[13][13]={{0},

{0,0,15,M,M,24,M,18,M,M,M,M,M},

{0,15,0,22,M,M,M,M,M,M,M,M,M},

{0,M,22,0,18,16,M,M,M,20,M,M,M},

{0,M,M,18,0,M,12,M,M,M,M,M,M},

{0,24,M,16,M,0,M,M,12,24,M,M,M},

{0,M,M,M,12,M,0,M,M,12,M,M,22},

{0,18,M,M,M,M,M,0,15,M,22,M,M},

{0,M,M,M,M,12,M,15,0,30,M,25,M},

{0,M,M,20,M,24,12,M,30,0,M,19,19},

{0,M,M,M,M,M,M,22,M,M,0,19,M},

{0,M,M,M,M,M,M,M,25,19,19,0,21},

{0,M,M,M,M,M,22,M,M,19,M,21,0},

},

c[13]={0,15,10,12,18,5,24,11,16,13,22,19,20};

sum[0]=10000;

summin=sum[0];

floyd(a,13);

printf("

thedistancematrixis:

\n"

);

for(i=1;

13;

{for(j=1;

%4d"

a[i][j]);

printf("

}

for(i=1;

for(j=1;

k++)

if(i!

=j&

j!

=k&

k!

=i)

{n++;

for(m=1;

m<

m++)

sum[n]=sum[n]+c[m]*min(a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1