ftr算法
‘壹’ 为什么这个程序Free pascal 能执行,Free pascal for NOI 就不能执行
201 是因为调用了tree[0].data而你的程序定义的tree是从1开始的
这个可能跟编译器的版本有关
有些是从左到右判断布尔表达式并且一旦有可以确定表达式真伪的条件出现便不再继续比如你写的lch=0时有些编译器就不会执行tree[lch].data<>'#'
但是有的会完整的对布尔表达式作检查
那么避免这个问题的方法是做如下之一的改动
1\if <语句> then if <语句>...这样来做多个条件且互为前提的逻辑判断
2\将tree从0开始定义(不一定符合算法要求)
‘贰’ 什么是节点电价
基于最优潮流的节点电价计算法研究
本文首先介绍了国外电力市场节点电价理论的研究和应用情况,根据我国区域电力市场建设进程,有针对性的分析了采用节点电价体制的优点。本文介绍了交流最优潮流和直流最优潮流在一般电力市场节点电价计算中的应用,并对基于两种电价算法建立相应数学模型,推导出节点电价数学公式。以IEEE-14母线系统算例证明,节点电价能够有效反映电力资源稀缺程度,提高电力资源的使用效率,同时可为投资者提供可靠的经济信号。 本文进一步介绍了传统的考虑节点边际输电损耗的节点电价计算法,并提出一种改进的节点电价模型,并以简单的3节点母线系统进行算例分析说明。此外本文提出一种考虑网络损耗的节点电价近似算法,并以IEEE-14母线系统算例表明,考虑网损成本的节点电价不仅保持了原有节点电价的优点,而且可进一步激励电源和电网投资,引导经济合理的运行方式,完善电力市场电价体系,促进电力市场的建设。
作 者: 王永强
学科专业: 电力系统及其自动化
授予学位: 硕士
学位授予单位: 上海交通大学
导师姓名: 侯志俭
学位年度: 2007
研究方向:
语 种 : chi
分类号:
关键词: 节点电价计算法
电力市场
输电损耗
机标分类号: TM728.3
机标关键词:
基于输电市场长期效率的节点电价研究
中国贵阳政府门户网站 http://www.gygov.gov.cn | 更新时间:2009-02-03 | 来源:中经专网
字号:【大】【中】【小】 【复制本页地址】 【打印本页】 【关闭窗口】
[摘要]国外电力市场普遍实的节点电价制度对我国电力市场的改革具有重要的借鉴意义。本文从输电市场的长期效率出发,对节点电价内涵、特征及作用进行了深入的分析。通过研究发现,节点电价可以引导输电容量的合理投资,促进发电公司和电力用户有效使用输电网,从而实现输电市场的长期效率。
(中经评论·北京)输电市场是输电企业向发电企业、配电企业或用户提供电能输送服务的市场。输电企业的成本以固定成本为主,其运营特点是投资周期长,沉没成本高。输电市场长期效率主要来自于电网企业的长期投资效率、发电企业和用电企业对电网的长期使用效率。
节点电价是电力批发市场价格制定的重要方法,已经被广泛应用在美国几个主要的电力市场,如PJM、加州、纽约电力市场。对于节点较为密集的网格状输电网,节点电价法是非常科学的电价制定方法,可以给出丰富的区域或节点价格信号,引导用户合理进行电力消费和投资。节点电价可以引导发电企业和电力用户合理使用电网,而根据节点电价之差确定的输电阻塞价格也是引导输电有效投资的经济信号。另外,以阻塞价格为基础确定的金融输电权(FTR)作为一种长期的产权安排,可以对输电容量的扩展产生有效的激励。
当前,我国的输电网建设进入了高速增长期,很多区域电网公司要在“十一五”期间将电网的规模翻一番。在这样的背景下,如何保证电网的投资效率就变得非常重要。所以,关于节点电价和输电投资效率的研究对于我国电力市场的改革与电力行业的健康发展具有重要的意义。
一、节点电价的形成机制
节点电价是~种市场定价机制,电力批发市场的买卖双方在提供报价的基础上形成了市场出清价格和交易量。所谓节点,就是输电网中发电厂、电力用户或变电所在某输电网中的位置。节点电价,是指随着节点或位置的不同而不统一的电能价格。节点电价是发电厂卖电的电量电价,比如一度电0.30元。节点电价也是供电商或大用户购买电能的价格,其水平的确定是根据各个节点供电短期边际成本。具体来说,在电网某一运行状态下,该节点增加单位电能消费导致电网和发电厂总体增加的成本。节点电价的形成是基于各发电商的卖方报价、各供电商和大用户的需求报价、对未进行需求报价的电力消费预测、电网运行状态和阻塞情况等因素,是市场定价和电网技术约束共同作用的结果。
节点电价主要是竞争性电力批发市场上的电能交易价格。在竞争性的电力批发市场中,多个发电公司直接将电能卖给多个电力大用户和地方供电商(供电公司或配电商),而输电网提供网络输送服务。这个市场主要是一种集中交易市场。目前,我国电力批发市场比较特殊,多个发电公司将电能卖给唯一的、地域垄断的电网公司(输电公司和配电公司),再由该电网公司将电能卖给多个电力用户。这是一个电网公司双边垄断的市场。竞争性批发市场的基础是输电、配电分离和独立输电价格机制形成,配电公司与输电公司分离以后成为批发市场的买方。由于目前我国电力批发市场的实体一般为省或区域,而一个省或区域包含多个地区及相应的地区配电商,所以,只要实现了输院分离,即使没有电力用户直接进入批发市场,由于有多个地区配电商的存在,电力批发市场买方也能形成竞争关系。独立输电价格是电能交易时输电网提供输电网服务的价格。当输电公司有了独立的输电价格,就可以退出批发市场,不参与电力批发市场的交易,而只是作为基础设施运营商,提供网络服务。
二、节点电价包含的输电成本信息
输电电价是输电公司的输电服务价格。一般由电网服务费用、网损费用、辅助服务费用和阻塞费用等几部分组成。电网服务费用主要是弥补电网的投资成本、管理成本等固定成本。辅助服务费用主要是电网为了电力系统运行的安全性、可靠性和电能质量保证提供的辅助服务所消耗的成本。网损费用是电能在输电网中传输发生的电能损耗形成的成本。阻塞费用是由于电网输送容量限制导致的电网阻塞形成的成本,它可以是直接进行阻塞管理发生的费用,也可以是电网稀缺容量租金。电网服务费用和辅助服务费用都有独立的价格,但网损费用和阻塞费用可能都包含在节点电价中,没有独立的价格。
输电服务是电能从电网某个节点的输入和从电网另外一个节点的输出,而电网是跨地域的基础设施,所以由电能的输入节点和输出节点确定的交易路径就非常重要。由于节点电价是某个电能输入节点卖方的售电价格和电能输出节点买方的购电价格,由此可以推出买方的购电电价中包含电能价格和输电价格,电能价格就是电能输入节点的卖方售电价格,而输电价格就是电能输出节点价格与电能输入节点价格之差。这个输电价格只是输电阻塞价格与网损价格,是输电服务价格中的一部分。
三、节点电价与输电市场效率
节点电价是通过最优潮流程序计算出来的,该程序的目标是社会福利最大化。如果电力批发市场的需求为刚性需求,这个目标就等价于发电费用最小化;如果电力批发市场的需求为弹性需求,这个目标就等价于发电公司的生产剩余和电力用户的消费剩余。最优潮流程序根据发电厂的卖方报价和用户、供电公司的买方报价,在电网容量约束满足的前提下安排各方的交易量并确定节点电价。如果在某线路上输电阻塞发生,该线路作为稀缺资源就具有了市场价值(阻塞租金)。当从某一输电路径传输电能时,部分电能会流过该阻塞线路,占用部分线路容量的机会成本就包含在节点电价之中。如果不考虑电网损耗,两个节点的节点电价之差就是输电阻塞价格,它等于这两个节点之间传输电能导致的所有阻塞线路上的机会成本。所以,阻塞线路的阻塞租金、节点电价和输电阻塞价格之间有密切的关系。
节点电价包含的阻塞租金信息是有效输电容量判定的重要依据,因而成为引导输电有效投资的重要的价格信号。某一条输电线路的阻塞租金是是指通过增加该线路的单位输电容量导致的电力批发交易中发电成本的减少量,或者是交易中消费者剩余、发电商生产剩余的增加量。这是输电线路容量增加带来的边际容量收益,体现了输电线路容量的真实市场价值。随着线路容量的增加,其阻塞租金会下降。若假设输电边际容量成本不变,可以推断,当增加某一线路单位输电容量带来的收益与由此增加的输电容量成本相等时,也就是边际容量收益等于边际容量成本时,此时该线路输电容量达到最优。
电力批发市场的交易时段很短,往往是半个小时或15分钟一个时段。然而,电网投资周期都比较长,一个电网投资周期包含了非常多的交易时段,而某一条输电线路的市场价值取决于在一个投资周期内该线路在所有的阻塞时段或高峰时段的累积阻塞租金。
由于节点电价和线路阻塞租金反映了输电投资价值,可以作为有效的投资信号。如果输电线路的边际容量收益高于边际容量成本,说明该线路容量投资不足,可以增加投资;如果线路边际容量收益低于边际容量成本,则说明投资过度,应该减少投资。无论是对电网总体的评价,还是对于某一输电项目的评价,输电容量阻塞租金都可以作为基本的价值评价标准。输电阻塞价值是未来电网投资的收益,可以凭借过去实际发生的线路阻塞价值来预测,也可以通过电力期货市场来对未来的电力交易和输电阻塞价值进行预测。
金融输电权是一种输电市场上采用的金融衍生工具,它是将输电阻塞价值产权化的一种安排。在电网的投资市场,电网投资商通过对某条线路容量的投资来获得金融输电权.通过输电权,输电的投资收益权可以被分解、流动,这提高了输电投资市场的效率。而对于输电市场的需求方,考虑到电力市场运行的随机性和不确定性,发电公司和用户的双边交易可以通过购买金融输电权来规避未来可能发生的阻塞收入风险。金融输电权的交易可以通过定期拍卖来实现交易效率。另外,输电权可以分为长期输电权和短期输电权。对于电网投资商来说,出售金融输电权可以套现未来的收益,规避了,电力市场的经营风险。所以,长期输电权比短期输电权更具有吸引力。从国外电力市场的实践来看,短期输电权对电网商业投资的激励效果并不理想。所以,基于电力期货市场的长期输电权将是大势所趋。
输电阻塞发生以后,一般是发电容量集中的区域的节点电价低,用电和负荷集中的区域的节点电价高。所以,节点电价的分布会鼓励发电公司在负荷集中的区域投资发电厂,或在这一区域原有发电厂增加发电容量;节点电价的分布也会鼓励用电企业在节点电价便宜的发电集中区域落户,或扩大生产。这将导致发电容量充裕的地区用电增加,节点电价水平下降;而发电容量短缺的地区发电容量的增加,节点电价上升,最终各个地区的节点电价水平差异减小。而对于用电成本在总成本40%以上的高耗能企业来说,这种节点电价的引导作用会非常明显。从总体来看,高水平节点电价地区的用户会减少用电,低水平节点电价地区的用户会多用电,而且长期弹性大于短期弹性,这有利于提高电力市场的效率。
四、节点电价的应用价值
目前,在我国的各省电力市场并没有独立的输电电价,由自然垄断的省电网公司运营输电网和配电网。省电网公司的收入来自于向电力用户售电的收入与向发电公司买电的费用之差,这就是实际的输配电价,它不包含任何的区域或阻塞信号。
从电网用扇来看,发电企业和用电企业面临的价格也是如此。各个发电公司的上网电价都是政府制定的管制价格。是按照发电公司平均成本制定的价格,并没有包括区域信号。在2004年国家发改委颁布的电价改革方案中,发电公司在未来将采取两部制电价,容量电价由政府控制,电量电价在市场中竞价形成。无论是现在的管制价格,还是将来的市场竞价,都未考虑区域信号。各省电力市场的各类电力用户都面临的是由政府制定的用户电价,这个价格对全省的用户是统一的,也没有包括区域信号。
电网是跨地区的基础设施,如果没有包含区域信息的市场价格去引导的电力的投资和消费,也就不能通过市场机制去实现输电市场的长期效率。从这个角度来看,在条件成熟时,在我国的电力市场引入节点电价制度将有利于电力行业的健康发展。
五、结论
本文从输电市场长期效率的视角,分析了节点电价的内涵、市场形成机制和价格引导作用。节点电价是电力批发市场的价格,包含了输电成本信息。节点电价之差反映了输电容量租金或输电阻塞价格,是输电容量作为稀缺资源的市场价值,是引导输电容量合理投资的重要信号。由于节点电价包含丰富的经济信号,电力市场中的各个主体行为可以被有效引导,有利于实现资源的优化配置,这对电力市场的健康发展具有重要的意义。
‘叁’ 机器学习的txt全集下载地址
链接:
《机器学习》展示了机器学习中核心的算法和理论,并阐明了算法的运行过程。
‘肆’ 急!那位大侠有用C语言实现的互相关算法的源代码,谢谢啦
#include <math.h>
#define M_PI 3.14159265358979323846
#define FALSE 0
#define TRUE 1
#define BIG 1e10
#define SMALL 1e-10
typedef struct {
float r, i;
} complex;
/* FAST CORRELATION OF X(0:L) AND Y(0:L). FINDS RXY(0) THRU RXY(NMAX). */
/* L=LAST INDEX IN BOTH X AND Y. MUST BE (POWER OF 2)+1 AND AT LEAST 5. */
/* ITYPE=TYPE OF CORRELATION=0 IF X AND Y ARE THE SAME VECTOR (AUTO- */
/* CORRELATION), OR NOT 0 IF X AND Y ARE DIFFERENT VECTORS. */
/* NMAX=MAXIMUM LAG OF INTEREST IN THE CORRELATION FUNCTION. */
/* FFT LENGTH ,N, USED INTERNALLY, IS L-1. */
/* LET K=INDEX OF FIRST NONZERO SAMPLE IN Y(0)---Y(N-1). THEN X(0) */
/* 到 X(N-1) MUST INCLUDE PADDING OF AT LEAST NMAX-K ZEROS. */
/* CORRELATION FUNCTION, RXY, REPLACES X(0) THRU X(NMAX). */
/* Y(0) THRU Y(L) IS REPLACED BY ITS FFT, COMPUTED USING SPFFTR. */
/* IERROR=0 NO ERROR DETECTED */
/* 1 L-1 NOT A POWER OF 2 */
/* 2 NMAX OUT OF RANGE */
/* 3 INADEQUATE ZERO */
void spcorr(float *x, float *y, long *l, long *type, long *nmax, long *error)
/*
x:序列X;
y:序列Y;
l:序列X与序列Y的长度,不小5,且要为2的幂次方;
type:相关的类型,0:表示X与Y序列相同,其它值:X与Y序列不相同
nmax:相关的最大时延;
error:运行出错提示;0:无错;1:数据长度不是2的幂次方;2:时延超界;3:无足够零填充出错
*/
{
long j, k, m, n;//n:FFT长度;k:序列Y中的首个非零样本的位置序号;在序列Y中必须最少包含有(nmax-k)零填充。
complex cx;
float test;
n = *l - 1;
if (*nmax < 0 || *nmax >= n)
{
*error = 2;
return;
}
test = (float) n;
test /= 2.0;
while ((test - 2.0) > 0.0)
{
test /= 2.0;
}
if ((test - 2.0) == 0)
{
for (k = 0 ; k < n && y[k] == 0.0 ; ++k) ;
for (j = n - 1 ; j >= 0 && x[j] == 0.0 ; --j) ;
if ((n - 1 - j) < (*nmax - k))
{
*error = 3;
return;
}
spfftr(x, &n);//对X序列FFT变换
if (*type != 0)
{
spfftr(y, &n);//如果X、Y是相同序列,则对Y序列也进行FFT
}
for (m = 0 ; m <= (n / 2) ; ++m)
{
cx.r = x[m * 2] * y[m * 2] - -x[(m * 2) + 1] * y[(m * 2) + 1];
cx.i = x[m * 2] * y[(m * 2) + 1] + -x[(m * 2) + 1] * y[m * 2];
x[m * 2] = cx.r / n;
x[(m * 2) + 1] = cx.i / n;
}
spiftr(x, &n);
*error = 0;
}
else if ((test - 2.0) < 0.0)
{
*error = 1;
}
return;
} /* spcorr */
/* SPFFTR 11/12/85 */
/* FFT ROUTINE FOR REAL TIME SERIES (X) WITH N=2**K SAMPLES. */
/* COMPUTATION IS IN PLACE, OUTPUT REPLACES INPUT. */
/* INPUT: REAL VECTOR X(0:N+1) WITH REAL DATA SEQUENCE IN FIRST N */
/* ELEMENTS; ANYTHING IN LAST 2. NOTE: X MAY BE DECLARED */
/* REAL IN MAIN PROGRAM PROVIDED THIS ROUTINE IS COMPILED */
/* SEPARATELY ... COMPLEX OUTPUT REPLACES REAL INPUT HERE. */
/* OUTPUT: COMPLEX VECTOR XX(O:N/2), SUCH THAT X(0)=REAL(XX(0)),X(1)= */
/* IMAG(XX(0)), X(2)=REAL(XX(1)), ..., X(N+1)=IMAG(XX(N/2). */
/* IMPORTANT: N MUST BE AT LEAST 4 AND MUST BE A POWER OF 2. */
//FFT计算函数
void spfftr(complex *x, long *n)
{
/* Builtin functions */
void r_cnjg();
/* Local variables */
void spfftc();
long m, tmp_int;
complex u, tmp, tmp_complex;
float tpn, tmp_float;
tpn = (float) (2.0 * M_PI / (double) *n);
tmp_int = *n / 2;
spfftc(x, &tmp_int, &neg_i1);
x[*n / 2].r = x[0].r;
x[*n / 2].i = x[0].i;
for (m = 0 ; m <= (*n / 4) ; ++m)
{
u.r = (float) sin((double) m * tpn);
u.i = (float) cos((double) m * tpn);
r_cnjg(&tmp_complex, &x[*n / 2 - m]);
tmp.r = (((1.0 + u.r) * x[m].r - u.i * x[m].i)
+ (1.0 - u.r) * tmp_complex.r - -u.i * tmp_complex.i) / 2.0;
tmp.i = (((1.0 + u.r) * x[m].i + u.i * x[m].r)
+ (1.0 - u.r) * tmp_complex.i + -u.i * tmp_complex.r) / 2.0;
tmp_float = ((1.0 - u.r) * x[m].r - -u.i * x[m].i
+ (1.0 + u.r) * tmp_complex.r - u.i * tmp_complex.i) / 2.0;
x[m].i = ((1.0 - u.r) * x[m].i + -u.i * x[m].r
+ (1.0 + u.r) * tmp_complex.i + u.i * tmp_complex.r) / 2.0;
x[m].r = tmp_float;
r_cnjg(&x[*n / 2 - m], &tmp);
}
return;
} /* spfftr */
/* SPIFTR 02/20/87 */
/* INVERSE FFT OF THE COMPLEX SPECTRUM OF A REAL TIME SERIES. */
/* X AND N ARE THE SAME AS IN SPFFTR. IMPORTANT: N MUST BE A POWER */
/* OF 2 AND X MUST BE DIMENSIONED X(0:N+1) (REAL ARRAY, NOT COMPLEX). */
/* THIS ROUTINE TRANSFORMS THE OUTPUT OF SPFFTR BACK INTO THE INPUT, */
/* SCALED BY N. COMPUTATION IS IN PLACE, AS IN SPFFTR. */
//逆FFT变换函数
void spiftr(complex *x, long *n)
{
long m, tmp_int;
complex u, tmp_complex, tmp;
float tpn, tmp_float;
tpn = (float) (2.0 * M_PI / (double) *n);
for (m = 0 ; m <= (*n / 4) ; ++m)
{
u.r = (float) sin((double) m * tpn);
u.i = (float) -cos((double) m * tpn);
r_cnjg(&tmp_complex, &x[*n / 2 - m]);
tmp.r = ((1.0 + u.r) * x[m].r - u.i * x[m].i)
+ ((1.0 - u.r) * tmp_complex.r - -u.i * tmp_complex.i);
tmp.i = ((1.0 + u.r) * x[m].i + u.i * x[m].r)
+ ((1.0 - u.r) * tmp_complex.i + -u.i * tmp_complex.r);
r_cnjg(&tmp_complex, &x[*n / 2 - m]);
tmp_float = ((1.0 - u.r) * x[m].r - -u.i * x[m].i)
+ ((1.0 + u.r) * tmp_complex.r - u.i * tmp_complex.i);
x[m].i = ((1.0 - u.r) * x[m].i + -u.i * x[m].r)
+ ((1.0 + u.r) * tmp_complex.i + u.i * tmp_complex.r);
x[m].r = tmp_float;
r_cnjg(&x[*n / 2 - m], &tmp);
}
tmp_int = *n / 2;
spfftc(x, &tmp_int, &pos_i1);
return;
} /* spiftr *
void r_cnjg(complex *r, complex *z)
{
r->r = z->r;
r->i = -z->i;
}
‘伍’ IDE的使用方法!
IDE是数据线,用于硬盘光驱,传输数据用的! 详细: IDE的多种含义解释一:
集成设备电路,Integrated Device Electronics,一般叫做IDE总线,但是更准确地应该是ATA。IDE总线是平行总线,在SATA(Serial ATA)引入后,Parallel ATA(IDE)被称为PATA.它一般会作为ATA硬件的接口,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容。对用户而言,硬盘安装起来也更为方便。IDE这一接口技术从诞生至今就一直在不断发展,性能也不断的提高,其拥有的价格低廉、兼容性强的特点,为其造就了其它类型硬盘无法替代的地位。
它有3个传输模式:PIO,Multiword DMA和Ultra DMA.
解释二:
集成开发环境,Integrated Development Environment,可以辅助开发程式的应用软件(详细见网络之集成开发环境) [编辑本段]IDE ATA/ATAPI控制器 PIO的英文拼写是“Programming Input/Output Model”,PIO模式是一种通过CPU执行I/O端口指令来进行数据的读写的数据交换模式。是最早先的硬盘数据传输模式,数据传输速率低下,CPU占有率也很高,大量传输数据时会因为占用过多的CPU资源而导致系统停顿,无法进行其它的操作。PIO数据传输模式又分为PIO mode 0[3.3MB/S]、PIO mode 1[5.2MB/S]、PIO mode 2[8.3MB/S]、PIO mode 3[11.1MB/S]、PIO mode 4[16.7MB/S]几种模式,数据传输速率从3.3MB/s到16.6MB/s不等。受限于传输速率低下和极高的CPU占有率,这种数据传输模式很快就被淘汰。
IDE架构剖析与发展趋势
Enhanced IDE接口历史(一)
1. AT ATTACHMENT (ATA):ATA接口是个人电脑上最具有实力的存储接口,ATA接口早先被广泛应用于IBM及其兼容机,它被定义为标准的硬盘接口。
2. ATA-1:ATA硬盘接口的第一代标准ANSI X3.279-1994,也就是早期的IDE接口。
3. ATA-2:ATA硬盘接口的第二代标准ANSI X3.279-1995,就是大家所知道的Fast ATA或者称之为Enhanced IDE(EIDE)接口。
4. Apple-ATA:Apple上使用的ATA接口,当然也是由标准的ATA接口演化而来的,在ANSI的国际标准提案申请为X3T9.2/90-143.Revision 3.1,这一个由标准ATA接口规格演化而来Apple-ATA支持IDE接口的硬盘LBA驱动模式,但是没有支持ATATP。
5. ATA-3:ATA硬盘接口的第三代标准ANSI X3T13/2008D Revision 7(draft),同样包含在Fast ATA或Enhanced IDE的接口之中,一般使用者大多都知道Fast ATA或是Enhanced IDE接口,而对原来Fast ATA或Enhanced IDE接口居然还包括了ATA-2以及ATA-3两组国际标准。
6. ATAPI:AT Attachment Packet Interface,这是ATA Protocol的延伸,被定义用来支持CD-ROM光驱以及Tape磁带机,这一个ATAPI Protocol容许硬盘以外的设备使用ATA数据线。
7. ATA/ATAPI-4:ATA硬盘接口的第四代标准ANSI X3T13/D96153(draft),也就是大家所知道的Ultra ATA或是Ultra DMA,这一个版本支持33MB/sec的数据传输率(in burst mode),相信各位读者对ATA-4/Ultra DMA都是比较熟悉的了。
8. ATA/ATAPI-5:这是目前ATA硬盘接口的比较新的一代标准,这一规格里规定的数据流传输速率(in burst mode)为66MB/sec,并且加强了内部资料的检查与错误修正的算法,强化了资料的完整性和可靠性。
9. ATA/ATAPI-6:还有更新的一个标准,是ATA/ATAPI-5的改进,这一规格里规定的数据流传输速率(in burst mode)为100MB/sec。
表一:
PIO驱动模式的资料传输速率
PIO Mode Cycle time Transfer Rate
PIO Mode 0 600ns 3.3Mbytes/sec
PIO Mode 1 383ns 5.2Mbytes/sec
PIO Mode 2 240ns 8.3Mbytes/sec
PIO Mode 3 180ns 11.1Mbytes/sec
PIO Mode 4 120ns 16.6Mbytes/sec
Enhanced IDE接口发展至今,ULTRA DIRECT MEMORY ACCESS(ULTRA-DMA)的是目前最新的目前大家最为熟悉的就是Ultra-DMA的资料传输率最高可以达到ATA-3标准的四倍,也就是66.6Mbytes/sec。
实际上硬盘接口的鼻祖,除了SCSI界面以外,就是MFM/ST-506 Bus接口了,后来经过不断的演变才演进成为今天的Enhanced IDE接口,而在Enhanced IDE之前的IDE/AT-BUS接口,则仅仅提供了PIO驱动模式,而没有DMA驱动模式,这两种驱动模式简单来讲区别主要是在数据传输时是否需要CPU来控制。在PIO模式下,任何一个硬盘的读取动作,都必须经过CPU来控制管理,所以只要硬盘读写动作频繁的时候,CPU的资源就被大量的消耗,进而降低了电脑整体的效率。而在DMA模式下,硬盘和内存之间的数据可以直接交换,这样就不会占用CPU的资源,提高了电脑的整体效率。读者千万不要忽略掉从PIO到DMA的进步,事实上个人电脑内的任何一个动作都必须运用系统的内存,毕竟CPU内部的缓存器容量太小了,所以凡是程序的读取、运算都必须在内存上操作,这样从硬盘到内存的数据交换就会非常频繁,所以简化这么一步对于电脑整体性能的提高还是非常突出的。
以前硬盘采用PIO模式的时候,只要一开始大量的硬盘读写操作,就会使得电脑的性能急剧下降,让人感觉电脑总在等待什么似的,实际上SCSI接口一开始也是采用PIO模式,后来也演变成了DMA模式,IDE/AT-BUS接口也不例外,到了PIO Mode 4驱动模式之后,IDE/AT-BUS接口已经成功的演化成为Enhanced IDE接口,驱动模式也由PIO Mode 4升级为Multi-word DMA Mode2,原本预计还有一个PIO Mode 5会问世的,但是DMA Mode已经出现,PIO Mode已经没有市场了。
所以读者可以认为Enhanced IDE接口的特点主要在于:驱动模式的改变,增加了对非硬盘存储设备的支持等,而且原本是一组的IDE界面现在也增加到了两组。
DMA的全名为Direct Memory Access直接内存存取,采用DMA驱动模式以后,CPU不再象往常那样需要花费相当多的时间在硬盘的O/I操作上,DMA的意义就是在于让硬盘和内存直接沟通,所有的硬盘操作都不需要占用太多的CPU时间。
接着让我们来看看DMA Mode的相关资料。
DMA驱动模式资料传输速率
DMA Mode I/O Cycle time Transfer Rate
Single-word DMA Mode 0 900ns 2.1 Mbytes/sec
Single-word DMA Mode 1 480ns 4.2 Mbytes/sec
Single-word DMA Mode 2 240ns 8.4 Mbytes/sec
Multi-word DMA Mode 0 480ns 4.2 Mbytes/sec [编辑本段]IDE RAID是什么 RAID(Rendant Array of Inexpensive Disks)磁盘阵列是一种由多块廉价硬盘构成的冗余阵列,RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。组建RAID可以充分发挥出多块硬盘的优势,实现远远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。RAID对服务器/工作站是一项很重要的技术,目前的服务器RAID主要可分为IDE、SCSI、SATA三大类产品,下面我们就先来了解一下IDE RAID芯片,以便您能对RAID这种技术和产品有更深入的了解。
与SCSI RAID相比,IDE RAID具有极低的价格,和一点也不逊色的性能表现,IDE RAID具有SCSI RAID无法比拟的高性价比。IDE RAID自推出后,受到工作站用户和普通商业应用的普遍欢迎。也正是IDE RAID的出现,让RAID对于普通的商业用户来说再也不是什么奢侈的技术,通过使用IDE磁盘阵列就可以让你的机器性能更高、速度更快、稳定性更强。
Linux如何使用IDE RAID
RAID卡几乎已经成为服务器的标准配置了,RAID卡不但可以大大提高数据的安全,还可以大幅提高硬盘读写性能,从而提供服务器的整体性能和可靠性。
Linux很早就提供对RAID的支持,不但支持RAID卡,也支持软RAID,不过软RAID实在是比不上硬RAID.早期的RAID卡都是用于scsi系统的,性能好,可惜价格高昂,而且scsi硬盘也大大贵过ide硬盘。
近年来,市场上出现了ide RAID卡,配合新一代的高速ide硬盘的降价,一些入门级的服务器和工作站开始考虑采用ide RAID系统。
ide RAID系统相对scsi RAID而言,性能稍差,但价格相当低廉,实在是DIY友的利器。ide RAID卡的代表是promise fasttrak100.我就以此为例,介绍IDE RAID卡在Linux上的应用。
Linux的2.4.x核心开始支持ide RAID卡promise fasttrak系列产品。但有少少问题,可能会导致有些型号工作不稳定,推荐使用promise公司提供的驱动。
promise提供单cpu的驱动ftrh71_120b5.zip。它提供对fasttrak100TX2/LP/100的支持,可用在redhat 6.2和redhat 7.x上。
promise提供多cpu的驱动FTv120b3RHsmp.TAR。它提供对 fasttrak100TX2/66/100的支持,可用在redhat 6.2和redhat 7.0上。
如果你的promise ide RAID卡上的芯片是PDC20262和PDC20265,厂家建议你用redhat 7.0,因为可启动的scsi模块只支持单cpu,不支持smp.
现在我们来用单cpu的驱动来介绍安装。
你需要两张空白的,用dos格式化的软盘。解压文件ftrh71_120b5.zip后,可以看到几个文件。看到disk1.img和disk2.zip了吧。可在dos下用rawrite.exe工具来把disk1.img写进disk1软盘中。
Linux用户就更好办:
dd if=disk.img of=/dev/fd0,要注意先不要把软盘mount上。接下来,解压disk2.zip,把生成的文件拷贝到disk2软盘中。如果你有一个安装好的Linux系统,想把fasttrak的驱动加进系统,从disk2软盘上找到scsi_mod.o和ft.o两个模块。
insmod scsi_mod.o
insmod ft.o
用lsmod检查一下是不是加载成功。如果你想在新的ide RAID系统上安装新的Linux系统的话,就要麻烦一点。首先在ide RAID卡的cmos中选择RAID方式和其它设置,如块的大小等。把disk1软盘插进软驱,开始安装。disk1软盘包含了redhat的启动部分,可以当作redhat 7.x的安装启动软盘。
正常安装系统
当系统安装接近完毕,显示“Congratulations”的时候
按Ctrl+Alt+F2进入命令行模式
更换disk2软盘
chroot /mnt/sysimage
mount -t vfat /dev/fd0 /mnt/floppy
cd /mnt/floppy
./setup-ft
完成后按Ctrl+Alt+F1,会到正常安装模式,继续进行完成安装。 [编辑本段]IDE 集成开发环境 较早期程序设计的各个阶段都要用不同的软件来进行处理,如先用字处理软件编辑源程序,然后用链接程序进行函数、模块连接,再用编译程序进行编译,开发者必须在几种软件间来回切换操作。现在的编程开发软件将编辑、编译、调试等功能集成在一个桌面环境中,这样就大大方便了用户。
集成开发环境(简称IDE Integrated Develop Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫做集成开以环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。例如,BASIC语言在微软办公软件中可以使用,可以在微软Word文档中编写WordBasic程序。IDE为用户使用Visual Basic、Java和PowerBuilder等现代编程语言提供了方便。不同的技术体系有不同的IDE。比如visual studio.Net可以称为C++、VB、C#等语言的集成开发环境,所以visual studio.Net可以叫做IDE。同样,Borland的JBuilder也是一个IDE,它是Java的IDE。zend studio、editplus、ultraedit这些,每一个都具备基本的编码、调试功能,所以每一个都可以称作IDE。
IDE有三项必须集成的基本功能:“编辑器”、“编译/链接器”、“调试器”。还有一些更强大的功能,如:代码提示、项目管理、界面设计、建模功能
IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver、FrontPage(Sharepointdesigner),等等),因为很多脚本可以自动生成。
‘陆’ 安装xp系统产品密钥是
这是XP的序列号。虽然真正的系统是干净的,但可能不容易使用。有些提示很烦人
正品序列号:
MRX3F-47B9T-2487J-KWKMF-RPWBY
QC986-27D34-6M3TY-JJXP9-TBGMD
CM3HY-26VYW-6JRYC-X66GX-JVY2D
DP7CM-PD6MC-6BKXT-M8JJ6-RPXGJ
BW2VG-XXDY6-VW3P7-YHQQ6-C7RYMACER
MXVK6-CVJR8-7XB27-J87Q4-4V4HYALIENWARE
KYKVX-86GQG-2MDY9-F6J9M-K42BQCOMPAQ
XJM6Q-BQ8HW-T6DFB-Y934T-YD4YTDELL
BG6RK-BJ28X-4QTVT-T3BV2-C96V8EMACHINES
HW8DV-GBVHT-YRPRK-RPDQ2-9K6XTEQUUS
F4G2M-BH2JF-GTGJW-W82HY-VMRRQFOUNDER
GVVF9-44R2P-DHC42-QGVQV-R67RMFUJITSU-PC
C873T-F3X3M-9F6TR-J26GM-YTKKDFUJITSUSIEMENS
PXQKT-6Y2TF-HHYGX-RFB48-YKVRQGATEWAY
DMQBW-V8D4K-9BJ82-4PCJX-2WPB6HP
HCBR8-FGC2K-RY7BM-HM3KT-BKVRW IBM & LENOVO
FCDGH-QW3DJ-VBC6C-9BYTX-4GKQJLEGEND
KPWY2-Y6VCB-GRKQG-MVH23-JQTW6MAXDATA
MVF4D-W774K-MC4VM-QY6XY-R38TBMicrosoft
FD4PM-TVGHD-3BC36-D3DPJ-FYF6YOptima
WRPKR-XB7PK-RJ4H3-MPJHM-PPXK8POWERSPEC
HXDYM-CPFJP-7VP7Q-98CRF-GVTDYRoverBook
CXD6B-HTKB7-DVPWP-KTHH7-43TWQSAMSUNG
K4TDP-MGJ8D-YGF6X-9H3JM-W8PCMSOTEC
Q9RV4-G448X-F4WJP-F69MX-YBQ46SONY
TFJMW-TGPQH-77PCH-8448V-XB3HGSUPORTETECNICO
WDWCD-QBBPF-YCFC7-4P6RP-H8YF8TOSHIBA
M68XC-TX2C9-PKK8H-GP8JH-RC8XBTSINGHUATONGFANG
前几个是批量发行版的激活码,后面是对应品牌的激活码。注意你的版本。
(6)ftr算法扩展阅读:
产品密钥
产品密钥是产品授权的证明。它是根据某种算法(如椭圆算法)生成的随机数。当用户进入密钥产品时,会根据密钥输入判断是否符合相应的算法,然后通过这种方式进行判断,确认用户的身份和使用权限。每个产品密钥只能用于在特定数量的唯一计算机上安装软件。
简介
与某些使用同一密钥对数据进行加密和解密的加密技术不同,公钥加密技术使用一对匹配的密钥对数据进行加密和解密。每个键执行数据的单向处理,每个键的功能正好相反。当一个密钥用于加密时,另一个密钥用于解密。
公钥由其所有者公开,而私钥必须保密。为了发送机密消息,发送方必须使用接收方的公钥来加密数据。一旦加密,只有接收者才能用他的私钥解密。相反,用户可以使用自己的私钥处理数据。
换句话说,密钥对可以在任何方向工作。这为“数字签名”提供了基础。如果用户想要用自己的私钥处理数据,其他人可以使用他提供的公钥来处理数据。因为只有所有者知道私钥,处理后的消息形成一个电子签名——一种其他人无法生成的文件。数字证书包含公钥信息,从而确认拥有密钥对的用户的身份。
‘柒’ SENet及对轻量级网络的一些理解
转自: https://zhuanlan.hu.com/p/71995304
受限于硬件的羸弱,深度学习在上世纪的发展一直是不温不火,直到2012年,Alexnet横空出世,深度学习才开始前所未有的大发展。随着技术的发展,卷积神经网络逐渐取代了之前全连接的神经网络,成为深度学习领域的主流算法。
卷积神经网络的优势在于能够更好的提取特征和权值共享,自Alexnet之后,VGG又提出了神经网络的深度越深,效果越好的思想。自此深度成为构建网络时所考虑的第一要素。此时,又有人提出了Inception模型,这是人们在关注深度之外第一次关注网络的时间复杂度和空间复杂度。
图1
如图1所示,就是Inception v1的模型,该模型主要利用了1x1卷积进行了降维处理,达到了减小网络参数量和计算量的效果。在接下来的改进中,Inception又提出了利用两层3x3网络取代一层5x5网络这样的奇思妙想,进一步达到了减轻网络复杂度的作用。
如图2所示,就是5x5卷积变成3x3卷积的示意图。
图2
从此之后,轻量级网络开始盛行。诸如Squeezenet,Mobilenet等都是轻量级网络中的杰出代表。
自Inception之后,人们已经不再通过暴力的增加网络层数的方法来企图获得更高的准确率了,然而面对复杂的问题,过浅的网络很难达到理想的效果,所以加深网络依然是解决图像分类问题的最佳途径。但是增加网络很容易造成overfiting甚至训练集上得到的效果也比浅层网络要差,所以如何有效的增加网络层数就成了深度学习领域研究的重中之重。
为了解决这个问题,很多学者提出了自己的见解,如resnet所讲述的残差网络就是一例。然而残差网络虽然能够增加层数但是层数增加到三位数之后再增加也就有些无能为力了。此时作者另辟蹊径,提出了一种新型的网络结构SENet,这个网络结构可以对所有网络进行改进然后做到真正有效的增加层数,无论原网络层数有多深,通过加入SENet,都能增加相当数量的深度,并有效的提高实验效果。值得一提的是SENet在2017年的ImageNet挑战赛获得冠军。
从Inception开始,学者们提出网络的时候就主要是提出一个block,然后用这个block像搭积木一样的搭出整个网络。同样,作者也是用这个方法设计网络的,作者提出了一个Squeeze-and-Excitation block,然后用这个SE block搭出了整个网络。
卷积神经网络虽然有诸多的好处,但是卷积神经网络捕捉到的只是局部的信息,假如卷积核是7x7,那么感受野的大小也只有7x7。但是一张图片的每一个像素点之间都是互相有联系的,之前使用局部感受野的网络都忽略掉了全局像素点之间的关联信息,使得实验效果不够理想。Inception通过多尺度的卷积核,找到了提取一张feature map上全局关联信息的方法,然而直到本文网络之前都没有谁考虑各通道之间的全局关联信息。所以作者将关注点放到了通道关联信息上,作者发现提取出通道之间互相关联的信息可以有效的增加神经网络的分类准确率。
图3
如图3所示,就是一个SE block。对于任意给定的变换
(1)
我们可以构造一个对应的SE块来进行特征重新校准。首先通过挤压操作,跨越空间维度WXH产生一个全局描述符,这个全局描述符聚合了所有通道的空间信息,之后再进行激励操作,其中通过基于通道依赖性的门控机制为每个通道学习特定采样的激活,控制每个通道的激励。然后特征映射U被重新加权以生成SE块的输出,再与之前的block结合在一起,就达到了提取通道关联信息的目的。
SE网络可以通过简单地堆叠SE block的集合来生成,也可以用作架构中任意深度的原始块的直接替换。
新CNN架构的开发是一项具有挑战性的工程任务,通常涉及许多新的超参数和网络各层配置的选择。相比之下,上面概述的SE块的设计是简单的,并且可以直接与现有的最新架构一起使用,其卷积层可以通过直接用对应的SE层来替换从而使效果得到加强。另外,SE块在计算上是轻量级的,并且在模型复杂性和计算负担方面仅稍微增加。为了支持这些声明,作者开发了一些SENets,即SE-ResNet,SE-Inception,SE-ResNeXt和SE-Inception-ResNet,并在ImageNet 2012数据集上对SENets进行了广泛的评估。此外,为了证明SE块的一般适用性,作者还呈现了ImageNet之外的结果,这表明作者所提出的方法不受限于特定的数据集或任务。
图3所示的Ftr,我们可以将其看做一个普通的卷积层,事实上,在SE-ResNet,SE-Inception中,对应的Ftr分别就是残差块和Inception块。
Squeeze操作的目的其实就是将空间信息提取出来,为了网络的轻量级,事实上我们还希望能够将信息进行压缩,不要增加过大的时间复杂度和空间复杂度。
因此作者选取了全局平均池化进行Squeeze操作。如图3所示,我们将通过全局平均池化得到的向量设为Z,那么z的第c个元素即可通过公式(2)进行计算:
(2)
这个操作实际上是在得到U之后再进行的全局平均池化。一般CNN的每个通道的滤波器都是对局部感受野进行特征提取,因此U中的每个feature map都无法利用与其他feature map之间的关联关系,而且在较低网络层次上对应到原图尺寸上的感受野相对于较高层数的来说,无疑是很小的,这样空间关联信息的流失就会更加严重。
那么作者提出的这个Squeeze,实际上就相当于将感受野扩展到了全局,自然能够提取的特征就更为丰富,通过训练得到的分类识别的准确率就更高了。
为了利用在上一个操作中得到的全局信息,作者就提出了Excitation这个操作来全面捕获通道相关性。如图4和图5所示,就分别是SE-Inception Mole和SE-Inception Mole。作者指出我们所需的这个Excitation必须是灵活的同时又要能学习到非互斥的信息。
那么通过观察图4和图5我们也能轻易的得知:
(3)
其中指的是Relu函数,指的是sigmoid函数,r为压缩比例。这实际上就是两个全连接层再加上两个激活层。第一层全连接层的作用就是将global pooling所得到的全局信息进行压缩,作者通过实验发现,压缩比例r=16的时候实验结果最为理想。那么第二层全连接层的作用就是将被压缩的向量进行还原,还原到和global pooling层之后的向量大小一致。然后再将该向量与Ftr得到的三维卷积进行乘运算,实际上该向量中的每个值就与三维卷积中每个通道对应的feature map 相乘,这样每一个feather map就得到了与其他通道的空间关联特征了。
图4
那么图4和图5中的C指的就是通道的数目,而指的就是这个模块输入的feather map的尺寸大小。而通过图示我们也能清楚的看到SE block可以通用的加在所有的网络结构中从而达到提升性能的作用。
SENet通过堆叠一组SE块来构建。实际上,它是通过用原始块的SE对应部分(即SE残差块)替换每个原始块(即残差块)而产生的,作者在表1中描述了SE-ResNet-50和SE-ResNeXt-50的架构。
图5
表1
作者通过实验发现,SE block改进resnet-50时,所增加参数量不超过10%,却提升了1.5个百分点的准确率,并且作者后来通过实验发现整体网络最末尾的SE block对效果提升作用很小,去除掉这些block网络的准确率也不过下降0.1个百分点,而增加的额外参数量就减小到4%了。如表2所示,是几个原有的网络结构的top-1和top-5的准确率,original表示的是网络提出者得到的结果,而re-implementation指的是作者复现的结果,而SENet指的是作者运用SENet加强之后得到的结果,很明显有显着的准确率提升。
表2(该表截取自论文)
同时,作者还提出了一个计算模型复杂度的方法来探究运用了SENet之后,模型的参数量到底增加了多少,很显然准确率增加百分比相同的情况下,参数量增加越少的话,算法性价比越高。
两个全连接层的参数量都是,那么两个全连接层的参数量就是。以resnet为例,假设resnet一共包含了S个stage,其中第s个stage里面包含了个重复的残差块,那么用SENet加强过的resnet所增加的参数量就可以用公式(4)进行计算:
(4)
SENet的结构非常简单,特别容易部署,不需要引入新的函数或者卷积层,并且增加的参数量微乎其微,是一个有效增加神经网络分类准确率的方法。同时,作者通过实验发现,在Faster-rcnn等用于实现目标检测的网络中增加SENet块进行加强,也能得到很好的效果,这进一步证明了SENet网络的通用性。
接下来,作者思考了最后一个问题,增加的SE block添加在原有block中位置的不同会不会影响到实验结果。为此,作者进行了对比试验。
如图6所示, 是原来的残差网络与作者在四个不同位置添加了SE block的四种不同的网络结构,总共是五个不同的网络结构。
图6
表3
而表3即是四种不同的SENet结构的错误率对比,我们能够看到SE-PRE结构是其中相对表现最好的,这说明了SE block块所在位置确实会影响到神经网络的整体效果,所以我们在运用SENet时,对于其所添加的位置应该好好斟酌。
这篇论文提出了一个名为名为SE block的架构单元,通过使网络能够执行动态的信道特征重新校准来提高网络的表示能力。实验证明了SENets的有效性,它在多个数据集和任务之间实现了最先进的性能。此外,SE块揭示了以前的体系结构无法充分地对通道相关关系建模。并且SE块生成的特征重要度值可以用于其他任务,例如用于模型压缩的网络剪枝。
‘捌’ 有什么快速的方法将扫描件彩色的变成黑白的(比如文字)
设置扫描方式为黑白扫描。或者在PS里面打开扫描件,点击“去色”。
‘玖’ 三角曲面相交特性
用三角曲面表示的两张简单曲面可能交于若干交线、若干交点与若干交面。下面将介绍两张简单曲面的交集的特性。
6.1.1.1 两个空间三角形的关系与求交算法及程序
6.1.1.1.1 空间三角形的关系
简单曲面是若干三角形面片的集合,因此,简单曲面的交由若干三角形面片对的交决定。两个空间三角形面片的关系包括交于一点、交于一条线段、部分或全部重合、分离。图6.1给出了两个空间三角形可能存在的相交关系。
从图6.1可以看出两个三角形相交具有如下特征:
(1)如果两个三角形交于一点,那么交点可能是一个或两个三角形的顶点,或者两个三角形只交于一条边上。对于两张曲面而言,这种交点可能是独立的,也可能位于其他交线段上。如果交点位于其他交线上,则一定能在计算其他三角形对的交线时获得。
(2)如果两个三角形交于一条线段,那么交线段的每个端点一定位于两个三角形的某条边上。在计算完所有三角形对的交线后,可以利用这个特点进行交线追踪。
(3)如果两个三角形完全或部分重合,那么重合区域的边界一定位于两个三角形的边界上。
6.1.1.1.2 空间三角形的求交算法与程序
三角曲面求交运算最终归结为空间三角形的求交运算,因此,三角形求交算法的效率与正确性对曲面求交效率与结果影响显着。下面介绍两种求交算法。
算法一:先计算两个三角形所在平面的交线,然后分别计算出该交线与两个三角形边的交点,再根据交点在交线上的位置直接确定交线段。如图6.2所示,三角形Δ1与Δ2所在平面的交线为L,L与Δ1的交点为a与b,L与Δ2的交点为c与d。根据4个交点在L上的位置可以直接判断出Δ1与Δ2的交线段为cb。
图6.1 两个空间三角形可能存在的相交关系
三维地质建模方法及程序实现
三维地质建模方法及程序实现
6.1.1.2 简单曲面的相交特征
两张简单曲面s1与s2之间可能交于一条或若干条交线,或者交于若干交点,也可能存在若干部分重合。简单曲面的交集具有如下特征:
(1)s1与s2之间的每条交线由若干线段顺序连接而成,每条线段同时位于s1与s2的一个三角形上。由于简单曲面是由三角形组成的,曲面之间的交线实际上就是分别来自两张曲面的三角形之间的交线段的集合,因此,每条交线段一定同时位于两张曲面的一个三角形上。
(2)s1与s2之间每条交线是连续的,相当于一条封闭或不封闭的简单弧。每条交线只存在两种可能:交线是首尾相连的封闭环,或者交线的两个端点分别位于s1或s2的某条边界线上。根据这个特点,可以判断一条交线上的所有交线段是否全部被搜索到。
(3)s1与s2之间可能存在若干独立的交点,任意两个独立的交点之间的连线不位于其他交线上。当两张简单曲面之间出现独立交点时,应在曲面重构后保证交点位于曲面网格的结点上,或者适当微调曲面,消除独立交点。
(4)s1与s2之间可能存在若干独立的重合面,每个重合面均有一个封闭的外边界与若干个内边界。重合面的边界均位于s1与s2上三角形的边上。在地质模型中,地层尖灭是经常遇到的地质现象,地层尖灭的位置就会出现地层界面部分重合。