第一篇:管道铺设问题
实验三:管道铺设施工的最佳方案
一.问题描述 1.实验题目:
需要在某个城市n个居民小区之间铺设煤气管道,则在这n个居民小区之间只需要铺设n-1条管道铺设n-1条管道即可。假设任意两个小区之间则可以铺设管道,但由于地理环境不同,所需要的费用也不尽相同。选择最优的方案能使总投资尽可能小,这个问题即为求无向网的最小生成树。2.基本要求:
在可能假设的m条管道中,选取n-1条管道,使得既能连通n个小区,又能使总投资最小。每条管道的费用以网中该边的权值形式给出,网的存储采用邻接表的结构。3.测试数据:
使用下图给出的无线网数据作为程序的输入,求出最佳铺设方案。
A38.244.618.28.7112.IB5.9CH52.541.1.379.256.4G10.585.667.3D参考解: 21E98.7F
AI.32B5.988.H7C41.1EGD二.需求分析
1.程序所能达到的基本可能: 2110.5F
在某个城市n个居民小区之间铺设煤气管道,则在这n个居民小区之间只需要铺设n-1条管道铺设n-1条管道即可。假设任意两个小区之间则可以铺设管道,但由于地理环境不同,所需要的费用也不尽相同。选择最优的方案能使总投资尽可能小,在可能假设的m条管道中,选取n-1条管道,使得既能连通n个小区,又能使总投资最小。
2.输入输出形式及输入值范围:程序运行后,显示提示信息:请输入顶点数和边数(输入格式为:顶点数,边数)之后程序从文件名为”C:data.txt读入顶点信息和边的信息,之后显示提示信息输入开始节点,执行生成最小树程序,输出生成的最小树信息。
3.测试数据要求:顶点数边数为整数,顶点信息为大写字母,边的权值为浮点型,C:data.txt文件内容为:ABCDEFGHI 1 2 32.8 2 3 5.9 1 3 44.6 3 4 21.3 4 5 67.3 4 6 98.7 5 6 85.6 5 7 10.5 3 7 56.4 6 9 79.2 7 8 52.5 1 8 12.1 8 9 8.7 1 9 18.2 3 5 41.1 三.概要设计
1.所用到得数据结构及其ADT typedef struct node //边表结点 { int NO;//邻接点域;vertexType adjvex;.379.2.112 EdgeType info;//权值
struct node *next;//指向下一个邻接点的指针域
}EdgeNode;
typedef struct vnode //顶点表节点 { vertexType vertex;//顶点域 EdgeNode *firstedge;//编表头指针
}VertexNode;
typedef struct //邻接表 { VertexNode adjlist[MaxVertexNum];int n,e;//顶点数和边数
}ALGraph;// ALGraph是以邻接表方式存储的图类型 基本操作:ALGraph * CreateALGraph()//建表 2.主程序流程及其模块调用关系 1)主程序模块
开始显示主界面建表生成最小树结束
建表模块ALGraph * CreateALGraph()开始打开文件fp=fopen(“C:data.txt”,“r”);fp==NULL读取G->n,G->e顶点数边数printf(“Cann't open the file!n”);打开文件失败i=1i<=G->nYG->adjlist[i].vertex=fgetc(fp);G->adjlist[i].firstedge=NULL;visited[i]=i;Nk=1k<=G->eYfscanf(fp,“%d”,&i);fscanf(fp,“%d”,&j);fscanf(fp,“%f”,&m);输入边的信息N关闭文件结束i++;将边的信息存储到邻接表中k++最小生成树模块void tree(ALGraph *G,int m)开始sum=0;low[m]=0;visited[m]=0;i=1Ni<=G->nYlow[i]=1000;teed[i]=m;s=G->adjlist[m].firstedge;Ns!=NULLi=1结束Ylow[s->NO]=s->info;s=s->next;Ni
函数调用关系图
CreateALGraph();建表main()主函数tree(G,i);生成最小树
四、详细设计
1.实现每个操作的伪码,重点语句加注释 1)建表模块
ALGraph * CreateALGraph()//建表 {
int i,j,k;float m;FILE *fp;EdgeNode *s,*t;ALGraph *G;fp=fopen(“C:data.txt”,“r”);//打开文件 if(fp==NULL)//未找到文件 {
} printf(“Cann't open the file!n”);exit(1);G=(ALGraph *)malloc(sizeof(ALGraph));
printf(“请输入顶点数和边数(输入格式为:顶点数,边数)n”);scanf(“%d,%d”,&G->n,&G->e);for(i=1;i<=G->n;i++)//建立顶点信息 { G->adjlist[i].vertex=fgetc(fp);G->adjlist[i].firstedge=NULL;visited[i]=i;
} for(k=1;k<=G->e;k++){ // printf(“请输入第%d条边的两个端点序号,输入格式为:i,jn”,k);// scanf(“%d,%d”,&i,&j);
fscanf(fp,“%d”,&i);fscanf(fp,“%d”,&j);s=(EdgeNode *)malloc(sizeof(EdgeNode));t=(EdgeNode *)malloc(sizeof(EdgeNode));// printf(“请输入第%d条边的对应权值n”,k);
t->NO=i;t->adjvex=G->adjlist[i].vertex;
fscanf(fp,“%f”,&m);//保存边信息,以无向网方式 s->NO=j;s->adjvex=G->adjlist[j].vertex;s->info=m;s->next=G->adjlist[i].firstedge;G->adjlist[i].firstedge=s;t->info=m;
t->next=G->adjlist[j].firstedge;G->adjlist[j].firstedge=t;
} } fclose(fp);//关闭文件 return G;2)生成最小生成树模块 void tree(ALGraph *G,int m){
float low[100];int teed[100];int k,i,j;float min,sum=0;EdgeNode *s;low[m]=0;visited[m]=0;for(i=1;i<=G->n;i++)
{
} s=G->adjlist[m].firstedge;while(s!=NULL)//数组初始化 {
} for(i=1;i
min=1000;for(j=1;j<=G->n;j++){ low[s->NO]=s->info;s=s->next;low[i]=1000;teed[i]=m;
}
} if(visited[j]>0&&low[j] } min=low[j];k=j;//标记节点 sum+=min;visited[k]=0;s=G->adjlist[k].firstedge;while(s!=NULL){ } if(visited[s->NO]>0&&s->info } s=s->next;low[s->NO]=s->info;teed[s->NO]=k;printf(“最佳铺设方案n”); } 3)主函数模块 void main(){ ALGraph *G;int i;for(i=1;i<=G->n;i++)//输出最小生成树信息 if(i!=m)printf(“(%d,%d)%.2ft”,i,teed[i],low[i]);printf(“最小权值为:%.2fn”,sum);time_t rawtime;struct tm * timeinfo;time(&rawtime);timeinfo = localtime(&rawtime);printf(“ 实验名称:实验三:管道铺设施工的最佳方案n”);printf(“ 学号:031350102n”);printf(“ 姓名:王亚文n”);printf(“=============================================n”); printf(“程序运行开始,”);printf(“Current local time and date:%s”,asctime(timeinfo));G=CreateALGraph();//建表 printf(“输入开始节点n”);scanf(“%d”,&i);tree(G,i);//生成最小树 //printfALGraph(G);printf(“n”); } 五、调试分析 1.设计与调试过程中遇到的问题分析、体会 1)一开始对文件读写操作不熟,采用从键盘输出的方式验证正确与否,对应程序如下: int i,j,k; float m;EdgeNode *s,*t;ALGraph *G;printf(“Current local time and date:%s”,asctime(timeinfo));G=(ALGraph *)malloc(sizeof(ALGraph)); printf(“请输入顶点数和边数(输入格式为:顶点数,边数)n”);scanf(“%d,%d”,&G->n,&G->e);for(i=1;i<=G->n;i++)//建立顶点信息 { G->adjlist[i].vertex=fgetc(fp);G->adjlist[i].firstedge=NULL;visited[i]=i; } for(k=1;k<=G->e;k++){ printf(“请输入第%d条边的两个端点序号,输入格式为:i,jn”,k); scanf(“%d,%d”,&i,&j);s=(EdgeNode *)malloc(sizeof(EdgeNode));t=(EdgeNode *)malloc(sizeof(EdgeNode));printf(“请输入第%d条边的对应权值n”,k); } 对应截屏如下:发现这种方式输入耗时长,而且在生成树程序不正确时修改程序需要重复输入,较为麻烦 t->NO=i;t->adjvex=G->adjlist[i].vertex; scanf(“%f”,&m);//保存边信息,以无向网方式 s->NO=j;s->adjvex=G->adjlist[j].vertex;s->info=m;s->next=G->adjlist[i].firstedge;G->adjlist[i].firstedge=s;t->info=m; } return G;t->next=G->adjlist[j].firstedge;G->adjlist[j].firstedge=t; 2)为检验所建立的无向网,编写了一个输出函数,输出各个顶点以及与该顶点相邻的其他顶点以及对应权值,输出函数为void printfALGraph(ALGraph *G)//输出表 { int i;EdgeNode *s;printf(“输出信息n”);for(i=1;i<=G->n;i++) } 输出测试截屏如下证明从文件读写的与所需要建立的无向网相符 { } printf(“%c的邻接点及权值:n”,G->adjlist[i].vertex);s=G->adjlist[i].firstedge;while(s!=NULL){ } printf(“n”);printf(“%c %.2f ”,s->adjvex,s->info);s=s->next; 2.主要算法的时间复杂度分析 六、使用说明 程序运行后,显示提示信息:请输入顶点数和边数(输入格式为:顶点数,边数)之后程序从文件名为”C:data.txt读入顶点信息和边的信息,之后显示提示信息输入开始节点,执行生成最小树程序,输出生成的最小树信息。 七、测试结果 3)这个程序遇到的第一个主要问题是在建表过程,因为边的顶点信息是大写英文字母,一开始我是用的ASCLL码值,使用不方便,后来采用在定义时考虑多定义一个量,原程序: typedef struct node //边表结点 { vertexType adjvex; //邻接点域;EdgeType info;//权值 struct node *next;//指向下一个邻接点的指针域 }EdgeNode;修正后的程序为: typedef struct node //边表结点 { int NO;//邻接点域;vertexType adjvex;EdgeType info;//权值 struct node *next;//指向下一个邻接点的指针域 }EdgeNode;这样多定义了一个量在后面的过程中会简单许多,其次书上给的程序是生成有向网的,一开始我是考虑的将边输入两边,就是在循环时的终止条件设为k<=2*G->e;这样虽然能解决无向网问题,但是一条边重复输入两边,较为麻烦,后期修正为: s->NO=j; s->adjvex=G->adjlist[j].vertex;s->info=m; s->next=G->adjlist[i].firstedge;G->adjlist[i].firstedge=s;t->NO=i;t->adjvex=G->adjlist[i].vertex;t->info=m;t->next=G->adjlist[j].firstedge;G->adjlist[j].firstedge=t;修正后的函数虽然语句较之前的多了5句但在输入时少输了一半的边信息。其次解决耗时最长的一个错误是在建表中,原程序: typedef VertexNode Adjlist[MaxVertexNum]; typedef struct //邻接表 { Adjlist adjlist;//int n,e;//顶点数和边数 int n;int e;}ALGraph;// ALGraph是以邻接表方式存储的图类型 这个程序是抄的书上的,一开始不觉得书上的程序会是错的,结果一直没有看这个定义,在输入边的信息时循环次数总是不对,一直尝试着改动写的输入信息,弄了一下午也没有搞定这个问题,于是去求助研究生学长,下面是研究生学长发过来的邮件帮我指出错误所在,看了学长的这封邮件后,重新改了一下自己的程序,修正后的程序为 typedef struct //邻接表 { VertexNode adjlist[MaxVertexNum];int n,e;//顶点数和边数 }ALGraph;// ALGraph是以邻接表方式存储的图类型 程序修正后输入正常了,就开始进入下一个阶段生成最小树的程序。 3)在生成最小树这个程序的编写中,开始因为编程序是在老师讲解生成树之前,所以一开始是完全没有地方下手,网上百度了一下如何生成最小树,发现有两种方法,Kruskal和prim算法,但研究生学长这个适合用prim算法,Kruskal算法适合与边稀疏的连通图求解最小生成树,所以在编写时主要研究的是用prim算法,在编写prim算法时除了很多问题,例如一开始我并没有在循环中写teed[i]=m;这句话,导致在最后输出边的信息时会有随机数产生,截图如下: 想到随机数产生可能是因为没有赋值,所以加上teed[i]=m;这句话果然最后就输出正确了,再次在输出时,产生的结果中有重复的一个节点,<1,1>1000.00这个不应该被输出,所以考虑在输出时加一个限制条件 if(i!=m)再次输出就没有了,中间编写时问题不大,之前有看过prim算法的详细介绍,所以在主思路上没有太大的错误,相对写起来也比较顺利。 2)建立邻接表的复杂度为O(n+e);Prim算法的时间复杂度为O(elogn); 八、附录 #include int NO;//邻接点域;vertexType adjvex;EdgeType info;//权值 struct node *next;//指向下一个邻接点的指针域 }EdgeNode; typedef struct vnode //顶点表节点 { vertexType vertex;//顶点域 EdgeNode *firstedge;//编表头指针 }VertexNode; typedef struct //邻接表 { VertexNode adjlist[MaxVertexNum];int n,e;//顶点数和边数 }ALGraph;// ALGraph是以邻接表方式存储的图类型 ALGraph * CreateALGraph()//建表 { int i,j,k;float m;FILE *fp;EdgeNode *s,*t;ALGraph *G;fp=fopen(“C:data.txt”,“r”);//打开文件 if(fp==NULL)//未找到文件 { } printf(“Cann't open the file!n”);exit(1);G=(ALGraph *)malloc(sizeof(ALGraph)); printf(“请输入顶点数和边数(输入格式为:顶点数,边数)n”);scanf(“%d,%d”,&G->n,&G->e);for(i=1;i<=G->n;i++)//建立顶点信息 { G->adjlist[i].vertex=fgetc(fp);G->adjlist[i].firstedge=NULL;visited[i]=i; } for(k=1;k<=G->e;k++){ // printf(“请输入第%d条边的两个端点序号,输入格式为:i,jn”,k);// scanf(“%d,%d”,&i,&j); fscanf(fp,“%d”,&i);fscanf(fp,“%d”,&j);s=(EdgeNode *)malloc(sizeof(EdgeNode));t=(EdgeNode *)malloc(sizeof(EdgeNode));// printf(“请输入第%d条边的对应权值n”,k); } fscanf(fp,“%f”,&m);//保存边信息,以无向网方式 s->NO=j;s->adjvex=G->adjlist[j].vertex;s->info=m;s->next=G->adjlist[i].firstedge;G->adjlist[i].firstedge=s;t->NO=i;t->adjvex=G->adjlist[i].vertex;t->info=m; } fclose(fp);//关闭文件 return G;t->next=G->adjlist[j].firstedge;G->adjlist[j].firstedge=t;void tree(ALGraph *G,int m){ float low[100];int teed[100];int k,i,j;float min,sum=0;EdgeNode *s;low[m]=0;visited[m]=0;for(i=1;i<=G->n;i++) { low[i]=1000;teed[i]=m; } s=G->adjlist[m].firstedge;while(s!=NULL)//数组初始化 { } for(i=1;i min=1000;for(j=1;j<=G->n;j++){ } sum+=min;visited[k]=0;s=G->adjlist[k].firstedge;while(s!=NULL){ } if(visited[s->NO]>0&&s->info } s=s->next;low[s->NO]=s->info;teed[s->NO]=k;if(visited[j]>0&&low[j] } min=low[j];k=j;//标记节点 low[s->NO]=s->info;s=s->next;} printf(“最佳铺设方案n”); } /*void printfALGraph(ALGraph *G)//输出表 { int i;EdgeNode *s;printf(“输出信息n”);for(i=1;i<=G->n;i++)//输出最小生成树信息 if(i!=m)printf(“(%d,%d)%.2ft”,i,teed[i],low[i]);printf(“最小权值为:%.2fn”,sum);for(i=1;i<=G->n;i++) } */ void main(){ ALGraph *G;int i;time_t rawtime;{ } printf(“%c的邻接点及权值:n”,G->adjlist[i].vertex);s=G->adjlist[i].firstedge;while(s!=NULL){ } printf(“n”);printf(“%c %.2f ”,s->adjvex,s->info);s=s->next;struct tm * timeinfo;time(&rawtime);timeinfo = localtime(&rawtime);printf(“ 实验名称:实验三:管道铺设施工的最佳方案n”);printf(“ 学号:031350102n”);printf(“ 姓名:王亚文n”);printf(“=============================================n”); printf(“程序运行开始,”);printf(“Current local time and date:%s”,asctime(timeinfo));G=CreateALGraph();//建表 printf(“输入开始节点n”);scanf(“%d”,&i);tree(G,i);//生成最小树 //printfALGraph(G);printf(“n”); } 九、实验收获和感想 在这个管道铺设问题的程序设计中,弄懂题意后发现其实这个题需要解决两个问题,一个是建立无向网的问题,另一个就是最小生成树的求解,所以这个程序设计还是需要模块化设计这个思路,首先需要解决的是如何建立无向网,在这个过程中我编写了一个输出函数以检验所建立的无向网是否是我们所需要的,建立无向网这个过程是我编写这个程序耗时最长的,因为开始一味的相信书上的程序是正确的所以吃了不少苦,最后还是多亏了研究生学长才得以解决这个问题,这个教训也告诫我不能一味的相信书本,最后能输出正确结果的才是正确的程序,在之后的程序编写时不要再因为是书本的原程序就原封不动的抄上在后续出错时也不检查是否是这个抄的程序的错误,再次是要善于用自己所学的知识简化问题而不是只用一种方法解决这个问题,在这个程序中建立边表信息时再多建立一个NO信息就可以大大简化问题,所以编写程序时还是要多想想其他办法,还有就是这个测试数据有9个顶点信息,15条边的信息,在测试时挨个输入显然会很麻烦,所以善于运用文件操作会很方便的,但printf(“Current local time and date:%s”,asctime(timeinfo));是最开始我是使用的键盘输入,并且将原语句保留在程序中,使用时可以使用键盘输入,或者在定义的文件C:data.txt中改变边和顶点信息,不管怎么说,使用文件操作后真的是方便很多,在经历了一次又一次要输入9个顶点信息15条边信息后第一次使用文件操作后感悟还是蛮大的,而且通过上面截图对比发现界面也简洁很多,所以还是要多学些东西这样才可以在某些时候简化问题,使问题解决的更加方便,还有就是要善于求助,例如在建立无向网时被一个问题坑了一下午,这个时候去求教学长,不仅可以解决问题,而且能更加清晰的记住这个问题,还有因为这个程序最开始编写时老师没有讲到prim算法,书上也没有相关知识,而自己又无从下手时,这个时候可以考虑上网查些资料,毕竟网上资源还是很丰富的。 总之,这个管道铺设问题程序语句最后写下来并没有很多行,但还是暴露了自己的很多问题,在解决问题的过程中慢慢完善自己,希望自己的编程能力能有所提高。 法律意见及依据 综合你的问题分析,这其实是一个“管道地下通过权”的问题。管道企业铺设天然气管道,必然会涉及沿线土地使用问题,根据实际情况,可分为三类: 第一类是必然的永久性用地,例如建设阀室、首末站、压气站、清管站、分输站等的用地,如涉及使用集体土地的,一般先由国家征收,再申请使用。 第二类是事后完全不影响土地使用的临时性用地,例如施工管道工程铺设作业带、施工便道、设备堆放场地、取弃土场地,建设单位应当依据《土地管理法》有关规定,向县级以上人民政府土地行政主管部门申请临时用地,经批准后,与有关土地行政主管部门或者农村集体经济组织、村民委员会签订临时用地合同,并按合同约定支付临时用地补偿费。 第三类是埋设管道途经的用地,这一类用地并不直接使用地表的土地,但一般对地表土地的使用有长期的限制,如被局限于耕地和园地的用途、禁止取土,挖塘,堆放大宗物资,修筑建筑物、构筑物或者种植深根植物等。对该部分限制性用地的取得方式,国家并没有明确的规定。实践中一般有三种解决方式:第一种是根据《物权法》地役权的规定,可由用地方与权属人通过协议约定,这一种方式不具备强制性;第二种是根据《物权法》第八十八条关于相邻权的规定,由相邻土地权利人行使,双方因此发生争议可由法院管辖,对于土地权属人具有一定的强制性;第三种解决方式也可直接由国家先办理征收,这一种方式具备一定的强制性,具体见征收及拆迁的相关规定,但涉及多项补偿,成本较高。《物权法》 第八十八条 不动产权利人因建造、修缮建筑物以及铺设电线、电缆、水管、暖气和燃气管线等必须利用相邻土地、建筑物的,该土地、建筑物的权利人应当提供必要的便利。 第一百五十六条 地役权人有权按照合同约定,利用他人的不动产,以提高自己的不动产的效益。 前款所称他人的不动产为供役地,自己的不动产为需役地。第一百五十七条 设立地役权,当事人应当采取书面形式订立地役权合同。地役权合同一般包括下列条款: (一)当事人的姓名或者名称和住所; (二)供役地和需役地的位置; (三)利用目的和方法; (四)利用期限; (五)费用及其支付方式; (六)解决争议的方法。第一百五十八条 地役权自地役权合同生效时设立。当事人要求登记的,可以向登记机构申请地役权登记;未经登记,不得对抗善意第三人。 第一百五十九条 供役地权利人应当按照合同约定,允许地役权人利用其土地,不得妨害地役权人行使权利。 《国土资源部关于西气东输管道工程用地有关问题的复函》(国土资函[2001]327号)中国石油天然气集团公司: 你公司《关于西气东输管道工程用地问题的请示》(中油股字「20011158号)收悉。根据土地管理有关法律、法规和2001年6月21日协调会形成的意见,经研究,现就西气东输管道工程用地有关问题函复如下: 一、关于管道地下通过权问题 西气东输管道工程是经国务院批准的国家重点基础设施建设项目,依照《石油、天然气管道保护条例》进行管理,工程竣工后,建设单位享有管道地下通过权。 管道地下通过权的权利、义务可采取由取得管道地下通过权权利人与有关县、市人民政府土地行政主管部门签订地下通过权合同的方式约定。 管道地下通过权对地上土地使用权产生影响的,管道地下通过权权利人应对土地所有权人、使用权人给予适当补偿,补偿范围须严格界定。管道地下通过权权利人有权保养、检修已埋设管道,以保证正常运行。对因保养、检修管道造成的地上附着物损失,应按价赔偿。 二、关于临时用地问题 西气东输管道工程临时用地包括管道工程铺设作业带、施工便道、设备堆放场地、取弃土场地等。建设单位应当依据《土地管理法》有关规定,向县级以上人民政府土地行政主管部门申请临时用地,经批准后,与有关土地行政主管部门或者农村集体经济组织、村民委员会签订临时用地合同,并按合同约定支付临时用地补偿费。临时用地补偿费标准,按有关省(区、市)的规定执行。 临时用地使用期满后,由建设单位按照国家有关规定负责复垦;复垦后不能恢复原有土地生产能力的,建设单位应与当地政府协商给予适当补偿;没有条件复垦的,建设单位应当缴纳土地复垦费,由当地人民政府组织复垦。 临时用地确实无法复垦的,由建设单位依法办理农用地转用、土地征用手续,交由当地人民政府合理安排使用。 三、关于管道工程干线永久性用地问题 西气东输管道工程干线永久性用地,包括阀室、首末站、压气站、清管站、分输站等,均以划拨方式提供土地使用权。 管道工程干线永久性用地,涉及农用地转用、土地征用、使用国有未利用地的,均应依法办理有关批准手续。由建设单位提出用地申请,根据建设项目的总体设计,按照工程可行性研究报告确定的分期建设方案,由管道工程干线永久性用地涉及的有关县、市人民政府土地行政主管部门分别组织报批材料,以省为单位分期一次性按规定程序报国务院批准。三桩(里程桩、测试桩、转角桩)用地可不再办理用地审批手续。 管道工程干线永久性用地涉及征用农村集体土地的,由建设单位依法支付征地补偿费用(包括土地补偿费、安置补助费以及地上附着物和青苗的补偿费)。征用耕地的土地补偿费、安置补助费标准,依据《土地管理法》规定的补偿费用标准确定。征用其他土地的征地补偿费用标准以及地上附着物、青苗的补偿标准按有关省(区、市)政府规定的标准执行;尚未制订补偿标准的,省(区、市)可对西气东输管道工程永久性用地专门制订征地补偿费用标准。 管道工程干线永久性用地涉及占用耕地的,建设单位应依法履行补偿耕地义务。建设单位可按有关省(区、市)规定的用地所在县、市耕地开垦费标准的下限缴纳耕地开垦费,由县、市人民政府土地行政主管部门负责组织补充与所占耕地数量和质量相当的耕地,完成耕地占补平衡任务。 四、关于管道维修便道用地问题 管道维修便道用地属永久性用地,应随同管道工程干线永久性用地一并报批,依法办理农用地转用、土地征用、使用国有未利用地批准手续。管道维修便道完工后,交由当地政府统一管理,建设单位与当地政府共同使用。管道维修便道用地占用未确定土地使用权的国有未利用地的,以划拨方式无偿提供;占用已确定土地使用权的国有土地的,应参照征地补偿标准给予土地使用者适当补偿;涉及征用农村集体土地的,征地补偿原则与管道干线永久性用地一致。 管道维修便道涉及占用25度以上坡耕地,在土地利用总体规划确定退耕范围内的,不需补充耕地;占用25度以下坡耕地,属原有道路改造的,补充耕地任务由建设单位与当地政府协商解决;占用平原地区耕地的,由建设单位依法履行补偿耕地义务,按有关省(区、市)规定的用地所在县、市耕地开垦费标准的下限缴纳耕地开垦费,由县、市人民政府土地行政主管部门负责组织补充与所占耕地数量和质量相当的耕地,完成耕地占补平衡任务。 五、关于先行用地问题 对西气东输管道工程近期将要开工建设的部分隧道,穿跨越长江、淮河、黄河干线工程等控制工期的单体工程,在征得水利等有关业务部门同意,查清所需使用土地的权属、地类、面积,兑现被用地单位群众的地上附着物和青苗补偿费,妥善处理好先行用地有关问题的前提下,由工程所在地省级国土资源管理部门提出先行用地申请,报国土资源部同意后,可以先行用地开工建设。 六、关于业务工作配合有关问题 管道工程所需临时用地,建设单位应在临时用地前1个月向县、市人民政府土地行政主管部门提出临时用地申请;建设单位应在临时用地前2个月向拟用地所在省(区、市)国土资源厅(局)提供有关工程技术资料;有关省(区、市)国土资源厅(局)在接到有关工程技术资料后1个月内安排部署用地涉及的有关县、市人民政府土地行政主管部门,协助建设单位与有关人民政府土地行政主管部门或农村集体经济组织、村民委员会签定临时使用土地合同。 管道干线永久性用地、管道维修便道用地,建设单位应在正式用地前3个月向用地所在县、市人民政府土地行政主管部门提出用地申请,并按规定提供有关资料;县级以上人民政府土地行政主管部门应按《关于报国务院批准的建设用地审查报批有关问题的通知》(国土资发[2000] 201号)规定的办理时限组织呈报建设用地,完善用地批准手续,保证工程依法及时用地。 建设单位应积极配合管道工程沿线各县、市人民政府土地行政主管部门对工程永久性用地依据《建设项目用地勘测定界技术规程(试行))))< [1996〕国土[建〕字第204号)进行勘测定界工作。具体测量工作可以由建设单位承担。由县、市人民政府土地行政主管部门提供土地利用现状图等技术资料的,建设单位应支付资料成本费。对建设单位提供的测量成果,能满足土地登记工作技术要求的,可以作为土地登记发证工作的技术资料。西气东输管道工程临时用地、永久性用地,建设单位应支付业务协调费或征地管理费,具体费用标准由建设单位与有关省(区、市)国土资源厅(局)协商确定。 西气东输管道工程用地涉及占用林地的,由建设单位按国家有关规定依法办理有关手续,土地行政主管部门应积极配合和协调。 七、关于成立用地协调小组问题 为搞好西气东输管道工程用地协调工作,同意成立“西气东输管道工程用地协调小组”,组成单位和人员名单见附件。沿线各省(区、市)有关单位成立相应的协调机构,以加强组织领导,分级分工负责,共同做好工作。 自来水管道铺设协议书 甲方: 乙方: 签约地点: 签订日期: 年 月 日 根据《中华人民共和国合同法》及国家其他有关法律、法规的规定,甲、乙双方在平等、自愿、等价有偿、公平、诚实信用的基础上,经友好协商,就甲方委托乙方铺设自来水管道达成一致意见,特签订本合同,以资信守。 一、工程概况 (1)工程名称:关集小学自来水管道铺设 (2)工程地点: 关集小学院内 二、承包方式及安装要求 (1)本工程采用包税费、包工包料、包工期。包质量方式执行: 1)双方审定工程造价由乙方进行一次性包干。 2)工程量:140米 3)管道质量标准:32mmPEC水管 4)价格:甲方以综合价没米25元价格承包一方,工程总价为3500.00元(大写:叁仟伍佰元整) (2)安装要求:达到国家自来水供水管及水表安装要求。 三:工期 3天 四:工程质量 (1)乙方必须严格甲方指定路线铺设管道并按期完工。 (2)乙方在水管接头上必须接受甲方的监督,做到不漏水 五、验收: 乙方应提前1 日书面通知甲方进行竣工验收,工程质量及工程内容符合要求的,双方在“竣工工程验收证明书”上签章。 六、付款方式 :甲方提供验收证明,乙方开具国家法定票据,由甲方报中心校转账。 本协议一式三份,甲乙双方各执一份,报中心校一份。 甲方签字盖章: 乙方签字: ****年**月**日 年 月 日 自来水管道铺设验收证明 由李超同志为我校铺设的自来水管道共140米,经我校验收小组验收,数量属实,管道质量、直径与协议要求一致,上下水路接口严密,无漏水现象,认定合格。工程总价款为3500.00元(大写:叁仟伍佰元整),特此证明,同意开票付款。验收人: 关集镇中心小学 年 月 日 非开挖铺设管道施工技术 随着我国社会经济的快速发展,城市公用管道建设项目日益增多,常规的施工技术越来越不适应城市发展的需要。开槽铺设地下管线需要占用路面妨碍交通;开挖回填时容易损坏原有管线;渣土排放引起遗洒扬尘;坑槽回填及路面恢复容易造成不均匀沉降,路面下陷或突起给车辆和行人带来不便。因此,非开挖铺设地下管线施工技术以其安全、高效、环保的技术先进性己经进入管道施工领域,随着地下管线探测精度的提高、施工地层的多样性、管道新材料的应用等方面的发展,铺设地下管线施工将会首先选用非开挖技术,扩大该技术的应用范围。 一、特点: 非开挖管道施工技术在不开挖沟槽,不妨碍交通、不破坏环境的前提下,完成各类管线的铺设和置换工程。 二、适用范围: 铺设直径在Ф50~Ф2000㎜范围内的PE管、PVC管、钢管、混凝土管、广泛应用于电力、通讯、煤气、供水、雨水、污水等领域的各类管线铺设工程。 三、工艺应用: 1.管棚岩石加固技术 管棚岩土加固技术是指在地下隧道或通道的挖掘施工前,采用导向铺管或气动夯管施工法在其断面周围或局部,平行于通道轴线排布多根钢管,并且注入水泥浆,对特殊地段进行结构性支护的施工方法。采用管棚支护能够优先稳定地层,严防塌陷与控制沉降,多用于砂卵石、粉细沙、松散地层或穿越上部建筑物的隧道或地下通道、停车场的施工中。 2.水平旋喷、控制压浆岩土加固技术 水平旋喷岩土加固技术是采用控向技术钻进引孔,在回拉提上钻具的事时旋转高压喷射水泥浆或混合浆液,在松散地层中形成具有一定强度的固结柱体,根据设计需要,采用不同的钻孔组合,形成不同形状的固结体,达到加固强化地层或封堵渗漏的目的。控制压浆岩土加固技术是采用控向技术钻进引孔,在回拉提上钻具的同时,根据设计数据调整控制注入水泥浆液的压力,控制浆液注入范围或压裂地层,达到加固强化地层或封堵渗漏的目的。 铺设海底电缆管道管理规定 第一条 为维护中华人民共和国国家主权和权益,合理开发利用海洋,有秩序地铺设和保护海底电缆、管道,制定本规定。 第二条 本规定适用于在中华人民共和国内海、领海及大陆架上铺设海底电缆、管道以及为铺设所进行的路由调查、勘测及其他有关活动。 第三条 在中华人民共和国内海、领海及大陆架上铺设海底电缆、管道以及为铺设所进行的路由调查、勘测及其他有关活动的主管机关是中华人民共和国国家海洋局(以下简称主管机关)。 第四条 中国的企业、事业单位铺设海底电缆、管道,经其上级业务主管部门审批同意后,为铺设所进行的路由调查、勘测等活动,依照本规定执行。 外国的公司、企业和其他经济组织或者个人需要在中华人民共和国内海、领海铺设海底电缆、管道以及为铺设所进行的路由调查、勘测等活动,应当依照本规定报经主管机关批准;需要在中华人民共和国大陆架上进行上述活动的,应当事先通知主管机关,但其确定的海底电缆、管道路由,需经主管机关同意。 第五条 海底电缆、管道所有者(以下简称所有者),须在为铺设所进行的路由调查、勘测实施六十天前,主向管机关提出书面申请。申请书应当包括以下内容: (一)所有者的名称、国籍、住所; (二)海底电缆、管道路由调查、勘测单位的名称、国籍、住所及主要负责人; (三)海底电缆、管道路由调查、勘测的精确地理区域; (四)海底电缆、管道路由调查、勘测的时间、内容、方法和设备,包括所用船舶的船名、国籍、吨位及其主要装备和性能。 主管机关应当自收到申请之日起三十天内作出答复。 第六条 海底电缆、管道路由调查、勘测完成后,所有者应当在计划铺设施工六十天前,将最后确定的海底电缆、管道路由报主管机关审批,并附具以下资料: (一)海底电缆、管道的用途、使用材料及其特性; (二)精确的海底电缆、管道路线图和位置表以及起止点、中继点(站)和总长度; (三)铺设工程的施工单位、施工时间、施工计划、技术设备等; (四)铺设海底管道工程对海洋资源和环境影响报告书; (五)其他有关说明资料。 主管机关应当自收到申请之日起三十天内作出答复。 第七条 铺设施工完毕后,所有者应当将海底电缆、管道的路线图、位置表等说明资料报送主管机关备案,并抄送港监机关。 在国家进行海洋开发利用、管理需要时,所有者有义务向主管机关进一步提供海底电缆、管道的准确资料。 第八条 海底电缆、管道的铺设和为铺设所进行的路由调查、勘测活动,不得在获准作业区域以外的的海域作业,也不得在获准区域内进行未经批准的作业。 第九条 获准施工的海底电缆、管道在施工前或施工中如需变动,所有者应当及时向主管机关报告。如该项变动重大,主管机关可采取相应措施,直到责令其停止施工。 第十条 海底电缆、管道的维修、改造、拆除和废弃,所有者应当提前向主管机关报告。路由变动较大的改造,依照本规定重新办理有关手续。 外国船舶需要进入中国内海、领海进行海底电缆、管道的维修、改造、拆除活动时,除履行本条第一款规定的程序外,还应当依照中国法律的规定,报经中国有关机关批准。 铺设在中国大陆架上的海底电缆、管道的维修、改造、拆除活动时,除履行本第一款规定的程序外,还应当依照中国法律的规定,报经中国有关机关批准。 铺设在中国大陆架上的海底电缆、管道遭受损害,需要紧急修理时,外国维修船可在向主管机关报告的同时进入现场作业,但不得妨害中国的主权权利和管辖权。 第十一条 海底电缆、管道的路由调查、勘测和铺设、维修、拆除等施工作业,不得妨害海上正常秩序。 海底电缆、管道的铺设或者拆除工程的遗留物,应当妥善处理,不得防害海上正常秩序。 第十二条 铺设海底电缆、管道及其他海上作业,需要移动已铺设的海底电缆、管道时,应当先与所有者协商,并经主管机关批准后方可施工。 第十三条 从事海上各种活动的作业者,必须保护已铺设的海底电缆、管道。造成损害的应当依法赔偿。 其他海洋开发利用和已铺设的海底电缆、管道的正常使用发生纠纷时,由主管机关调解解决。 第十四条 主管机关有权对海底电缆、管道的铺设、维修、改造、拆除、废弃以及为铺设所进行的路由调查、勘测活动进行监督和检查。对违反本规定的,主管机关可处以警告、罚款直至责令其停止海上作业。 前款所列处罚的具体办法,由主管机关商____有关主管部门制定。 第十五条 为海洋石油开发所铺设的超出石油开发区的海底电缆、管理的路由,应当在油(气)田总体开发方案审批前报主管机关,由主管机关商国家能源主管部门批准。 在海洋石油开发区内铺设平台间或者平台与单点系泊间的海底电缆、管道,所有者应当在为铺设所进行的路由调查、勘测和施工前,分别将本规定第五条、第六条规定提供的内容,报主管机关备案。 第十六条 铺设、维修、改造、拆除、废弃海底电缆、管道以及为铺设所进行的路由调查、勘测活动,本规定未作规定的,适用国家其他有关法律、法规的规定。 第十七条 中华人民共和国军用海底电缆、管道的铺设依照本规定执行。军队可以制定具体实施办法。 第十八条 主管机关应当收集海底地形、海上构筑物分布等方面的资料,为海底电缆、管道的铺设及其调查、勘测活动提供咨询服务。 第十九条 本规定中的“电缆”系指通信电缆及电力电缆;“管道”系指输水、输气、输油及输送其他物质的管状输送设施。 第二十条 本规定由中华人民共和国国家海洋局负责解释。 第二十一条 本规定自****年____月___日起施行。第二篇:管道铺设用地征收
第三篇:自来水管道铺设协议书
第四篇:非开挖铺设管道施工技术
第五篇:铺设海底电缆管道管理规定