十进制网络(精选七篇)
十进制网络 篇1
随着现代科技的发展和人民对动物食品安全问题日益关注, RFID技术被广泛的应用于畜牧产品的饲养、防疫、运输、仓储、加工、装卸、配送和销售等环节[1]。动物食品溯源系统就是对上述环节的信息进行统一有效的管理, 一旦出现问题可迅速追溯源头。为了实现信息的可追溯国际上EPCglobal、UID和ISO/IEC等标准化组织等纷纷建立自己的溯源系统, 而且都在相关领域得到应用。
在国外, EPCglobal组织建立“EPC网络” (EPC network) , 该系统主要由EPC编码、EPC标签、读写器、神经网络软件Savant、对象名解析服务 (object naming service, ONS) 和实体标记语言 (physical markup language, PML) 六个部分组成, 其工作原理是, 读写器获取EPC编码, Savant过滤掉多余信息并将转换后的EPC编码发送给ONS, ONS查询已注册相关内容返回真实地址给Savant, Savant再由真实地址查找到产品信息, 从而完成EPC编码识别过程[2,3]。日本泛在中心建立“UID系统” (Ubiquitous ID system) , 该系统由泛在识别码 (ucode) 、泛在通信器UC (Ubiquitous Communicator) 、ucode关联数据库 (ucode Relation Database) 和ucode信息服务器 (ucode Information Server) 四部分组成, 其工作流程是, UC获取物体上的ucode识别码, 然后UC访问ucode关联数据库, 通过ucode解析过程, 得到ucode信息服务的地址, 最后从ucode信息服务器获取ucode的相关系信息[4]。
在国内, 黄能耿等提出“通用可溯源编码系统UTCode” (Unicersally Traceable Code) , 该系统主要由通用可溯源识别码UTID (Universally Traceable Identifiter) 、编码识别系统和识别码溯源协议IDTP (Identifiter Tracing Protocol) 三部分组成, 其工作流程是, 用户终端从UTID识别码中提取出IDTP服务器的DNS域名, 然后将UTID直接传递给IDTP服务器, IDTP服务器返回查询到的UTID的信息, 从而完成UTID识别码的识别过程[5]。
在EPC系统或UID系统中的工作流程中都有标识码解析、访问重定向的过程, 因此这两个系统过分依赖于ONS或UCode关联数据库, 导致了项目开发和实施时的复杂性;而UTCode系统虽然建立一个新的轻量级的系统, 不在有标识解析和访问重定向问题, 但是缺乏灵活的可扩展性, 只适合于中小型系统。
本文以十进制网络[6]和RFID技术为基础, 利用IPv9的“大地址、直接路由”等特点[7], 在现有系统基础之上建立一个全新溯源系统, 摒弃了其他体系过分依赖解析过程和缺乏灵活可扩展性等缺点, 具有轻量级、安全性高、独立性和高度可扩展性等特点, 大大提高系统的运行效率和降低维护成本。
2 基于十进制网络的溯源系统结构
结合EPC系统的灵活性和UTCode系统的自解析性, 加之十进制网络先天的优势, 本文提出基于十进制网络的溯源系统结构, 该系统不仅适合IPv9网络, 而且完全兼容当前IPv4、IPv6网络。标识全球唯一动物食品对象, 并实现相关信息的查询和溯源。其系统有以下2大部分组成。
1) 编码体系编码体系位于整个十进制网络溯源系统的最底层, 是整个系统的基础部分, 定义了本系统识别码的编码规则, 为每一个具体的物体创建全球唯一标识码。当读写器获取到识别码后, 系统保证能够根据此码返回适当的信息。
2) 网络架构本系统建立在IPv9之上, 并全面兼容原IPv4, IPv6网络, 而且实现IPv9资源与IPv4、IPv6资源共享。当查询终端和信息服务器均处于IPv9之下时, 查询服务可直接访问信息服务器, 而不需要域名解析和访问重定向过程;当查询终端和信息服务器分处于不同的网络之下时, 可根据编码体系规则, 经过自解析映射到信息服务器。
3 基于十进制网络的溯源系统设计
3.1 编码体系
编码体系是溯源系统的基础, 编码体系设计的好坏直接影响到整个系统的工作效率和后期可扩展性。编码体系应满足便于识别、内容丰富、编码长度短等特点, 能够为一个具体的对象创建全球唯一的识别码。本系统的编码体系规定, 编码格式采用定位不定长的编码形式, 编码最长为256位 (十进制1024位) 具体格式如表1所示。
注:国家和地区码采用GB/T 2659-2000世界各国和地区名称代码;行政区域码采用GB/T 2260-2007中华人民共和国行政区划代码;管理主体码采用GB/T4657-2002中央党政机关、人民团体及其它机构名称代码;行业类别采用GB/T 4754-2002国民经济行业分类与代码。
其中, 头字段用于兼容其他国际组织和客体标识符数据格式交换码, 在本系统中默认为26。年代轮换码用于标识物品的年代信息, 如2011年8月15日物品的年代轮换码为:20110815。如果年代轮换码距今超过十年将认为是过期码, 将被系统清除。单价代码为物品编码具有唯一性, 如有特殊需要可被二次划分。
例如:编码26.86.21.3221.332320.0.20110815.451016842157为中国上海用于生猪饲养产品信息的交换码, 2011年8月15日生产, 单件代码号为451016842157。
3.2 网络架构
本系统建立在I P v 9网络之下, 并且兼容现运行的IPv4、IPv6网络, 其系统网络架构如图1。
[1]读写器获取不同载体形式中的编码标识, 可以是一维码读写器、二维码读写器、RFID读写器、智能卡读写器或者以后可能会出现其他类型的读写器。
[2]服务中间件为系统提供输入输出接口, 根据标识获取服务信息并返回给终端, 其功能模块划分如下图2。
安全模块网络安全问题已经成为当前不可忽视的问题, 本系统采用IPSec协议[8], IPSec提供一种标准的、可靠的、可扩充的安全机制, 它是一个开放的基本框架, 使得其能广泛的应用于各种操作环境下, 对IPv4和IPv6提供良好的支持, 为流经网络层的IP数据报提供数据机密性、数据完整性、数据源身份认证。
标识转换模块由于读写器可能会获取一些非标准标识, 标识转换模块负责将非标准RFID标识转换为标准标识, 经过扩展后也可以将一维码、二维码和智能卡等编码标识转换为标准标识。
数据过滤模块读写器获取到的标签数据量很大, 而用来溯源的数据却不多, 如果不将冗余的数据过滤掉将会带来以下三方面影响:一是大部分网络资源被用来传输冗余数据, 导致其他数据传输受影响;二是增加数据处理器的负担;三是需要额外空间存储大量冗余数据。本系统自动根据标签来源IP地址判断是否需要传输头字段、地域码和管理主体码, 这样需要传输的数据量就很小了。
输入输出模块当系统并发数据较少的时候, 系统采用先进先出原则;当并发数据量很大的时候, 采用“近端优先, 远端让行”原则, 确保来自国内查询优先于来自国外查询。
[3]直接路由器直接路由器是专为射频技术设计的路由器, 采用IPv9协议, 负责接收射频编码并把射频技术的编码和地址直接送达目的地计算机。直接完成整个信息定位、寻址查询过程, 从而省略了DNS解析器和O N S解析器的额外程序。
[4]URI解算器URI解算器负责将服务中间件的标准标识转化为可被互联网识别的数字域名URI[9], 解算过程如图3所示。
[5]专家模块专家模块是用于十进制网络和互联网之间的中间件, 以实现两者的互联互通, 两者之间的数据交换格式采用XML (Extensible Markup Language) 。支持由IPv9路由器直接访问互联网信息服务器获取服务信息, 支持由互联网服务中间件直接访问IPv9信息服务器获取服务信息。
[6]信息服务器负责存储与标识相关的信息, 本系统的信息服务器是按行政区建立, 各自形成体系便于信息查询和后期维护。
3.3 信息查询过程
本系统同时支持IPv4、IPv6、IPv9三种协议网络, 专家模块负责协议转换和信息中转, IPv4、IPv6访问IPv9网络通过“IPv4 Over IPv9隧道”, IPv9访问IPv4、IPv6网络通过“IPv9 Over IPv4隧道”, 系统架构及查询过程如图1所示。
位于IPv4、IPv6之下:
a) 读写器获取标签标识码传递给服务中间件。
b) 经过服务中间件数据过滤、标识转换和安全处理等, 将转换后标准标识发送给URI解算器。
c) 服务中间件获取URI解算器返回的数字域名, 如果数字域名目的地是IPv4、IPv6下信息服务器, 则直接访问信息服务器获取标识信息, 完成一次信息查询。
d) 如果数字域名目的地是IPv9下信息服务器, 则将数字域名推送给专家模块进行网络协议转换。
e) 专家模块根据数字域名中的标识信息查询IPv9信息服务器, 获取标识信息后返回给服务中间件, 完成一次信息查询。
位于IPv9之下:
f) 读写器获取标签标识码传递给IPv9直接路由。
g) IPv9直接路由获得标识, 如果目标信息服务器为IPv9网络下, 则直接访问信息服务器获取标识信息, 完成一次信息查询。
h) 如果目标信息服务器是IPv4、IPv6信息服务器, 则将标识码推送给专家模块进行网络协议转换。
i) 专家模块根据标识码信息查询IPv4、IPv6信息服务器, 获取标识信息后返回给查询端, 完成一次信息查询。
4 基于十进制网络的溯源系统特点
基于十进制网络的溯源系统除了具备EPC系统和UTCode系统所有的特点外, 还具备如下特点:
1) 安全性
具有一套灵活且扩展性极佳的安全保护体系, 有效防止信息传输过程被信息截获和篡改等, 确保信息查询的准确性。不仅适用于安全较低的场合, 也适用于安全性较高的需要。
2) 通用性
该系统不仅适合RFID码还适合一维码、二维码、智能卡等, 只需要扩展相应标识转换模块即可。
3) 自解析性
编码体系中包含被查询信息区域编码, 可以自解析, 解析后通过服务中间件访问信息服务器, 不需要建立如ONS或UCode关联数据库等类似解析系统。
5 结束语
基于十进制网络的溯源系统是建立在EPC系统和UTCode系统之上, 具有良好的安全性、通用性和自解析性, 但是对于一个系统来讲还需要进一步完善和深入研究, 进一步研究重点有下述两方面:一是对RFID射频识别的编码系统应建立相应的国家标准、国际标准, 有了标准后来自不同地域的产品也可以进行标识读取、信息上报和信息查询。二是对十进制网络的溯源系统应制定不同的安全性级别的标准, 提出可行性方案, 以及发现各种潜在威胁。
摘要:动物食品安全是维系人们生命和健康的重要因素, 为实现动物食品溯源信息的实时性、准确性和可靠性, 本文在分析EPCglobal组织建立的“EPC网络”、日本泛在中心建立的“UID系统”和黄能耿等提出“通用可溯源编码系统UTCode”后, 提出基于十进制网络的射频识别系统, 新系统具有轻量级、安全性高、独立性和高度可扩展性等优点, 可广泛用于其他类似溯源系统。
关键词:动物食品安全,溯源,十进制网络,射频识别,IPv9
参考文献
[1]徐焕良, 陆荣和, 彭增起等.基于产品生命周期管理的肉品车间生产跟踪及追溯体系研究[J].农业工程学报, 2007, 23 (12) :161-166.
[2]GS1 EPCglobal.The EPCglobal architectureframework[Z].EPCglobal Final Version 1.4 Approved 15December, 2010.
[3]GSI EPCglobal.EPCglobal tag data standards[Z].Version 1.5, EPCglobal Ratified Standard, Augest, 2010.
[4]T-Engine Forum, Ubiquitous ID Center.Ubiqui-tous ID architecture[Z].910-S002-0.00.24/UID-C000002-0.00.24, 2006.
[5]黄能耿, 张炳良.通用可溯源编码系统的设计和实现[J].计算机应用与软件, 2011, 28 (11) :271-275.
[6]谢建平, 黄昌富.十进制网络的现状与发展[J].信息技术与标准化, 2004, 46 (4) :5-9.
[7]贺文华, 陈志刚, 胡玉平.IPv4、IPv6和IPv9比较研究[J].计算机科学, 2008, (4) :94-96.
[8]关慧, 刘俊, 曹连刚.基于IPv6-IPSec的网络安全访问的实现[J].微计算机信息.2008, (6) :95-97.
十进制网络 篇2
在进行网络通信逆向分析的时候, 我们要根据不同的软件进行分类, 有的软件必须要在软件不运行的情况下进行逆向分析, 有的软件可以在软件运行的情况下进行逆向分析。下面我们就介绍一下进行通信软件逆向分析的一些步骤。
1 对网络通信软件进行记录
对通信软件进行数据记录是逆向分析的第一步, 我们可以使用二进制平台Dynamo RIO将软件中贮存的数据和容量以及各个操作指令等大量的信息数据进行记录和监控。二进制平台只是一个工具, 它上面包含很多的函数信息, 我们完全可以根据自己的需要, 对二进制平台进行二次开发, 然后再利用开发后的进行各项数据和信息的记录和监控。
在图1的结构图中我们能够看出, 在二进制平台上有非常多的外部接口, 每个接口上面都有各自的一些功能。通过上面的整个流程结构图, 我们就能够把原有的目标函数, 进行一系列的计算和处理, 最后得到我们所要求的功能。
2 创建线程提高效率
我们在进行网络数据的传输时, 都是通过线程进行的, 在传输的过程中肯定会有一个主线程, 为了提高数据和信息传输的速度, 我们叶可以同时创建几个线程进行传输。但是由于线程数量的增加, 也会使通信软件的逆向分析变的复杂和困难。
在进行创建新的线程的时候, 我们一定要把每个线程进行序列号的标记, 还要记录线程的地址, 母线程的程序代码。这样我们就能够在通信软件逆向分析的时候, 有条不紊的进行, 提高分析的效率。
3 线程同步的分析
上面所讲的在进行线程的创建后, 进行各个线程进行同步的数据和信息的传输也是一个问题。要保证线程的同步就要使各个线程在进行传输的时候保持协调, 当线程接到协作信号的时候才能进行工作, 没有接到信号的时候就处于休息状态。
在实际的运行中, 我们常常会发现有的线程已经执行完了, 它的协作线程还处于执行状态, 这时完成的线程就要等待它的协作线程。我们为了使各个线程的工作尽可能的处于同一进度, 就要使用事件对象进行线程的同步。这种方法是将摸一个正在工作的线程作为一个事件对象, 当这个线程完成工作之后, 再将这个事件对象设置成有效工作状态, 这个时候其他的一些线程才能够进行数据和信息的传送, 这样就能达到多个线程工作的同步性。这时也要将各个同步线程的地址记录下来, 方便逆向分析的需要。
4 基于自动机的套接字I/O模型识别
主要有以下几个模型:
(1) select模型:该模型以集合的方式管理众多套接字连接, 其具体思想是调用select函数检查当前多个套接字的状态, 根据select函数返回信息判断套接字的可读可写性, 然后有针对性的处理各个套接字连接, 完成数据的发送或接收。
(2) WSAAsync Select模型:该模型又称为异步选择模型, 其具体思想是利用WSAAsync Select函数为套接字向某个窗口注册网络事件。并且在确定一定的事件后, 就会向子程序发出指令, 而且还会通知应用程序的时态, 然后应用程序在进行工作。
(3) WSAEvent Select模型:该模型又称事件选择模型, 其具体思想是在套接字上将设定的网络事件与某个通过API函数WSACreate Event创建的事件绑定, 应用程序通过查询该事件的状态判定套接字上是否发生了设定的网络事件。
5 结论
计算机信息技术发展和更新的速度越来越快, 各种软件和应用也在不断的开发和更新。我们在了解网络通信的过程后, 使用逆向推理的方法, 在各个环节上做好准备, 保证网络通信的安全性。本文提出了使用二进制平台进行通信软件的逆向分析, 先将目标函数的数据和信息进行记录和监控, 为了提高通信的效率采用了多线程的方式进行信息的传输, 为了使多线程达到同步传输信息的目的, 使用了事件对象的方式, 最后通过使用I/O通信, 从而达到通信软件的逆向分析。
参考文献
[1]戴理.数据加解密过程逆向分析技术研究[D].解放军信息工程大学, 2013.
十进制网络 篇3
关键词:配电网络,破圈法,网络重构,禁忌搜索算法,图论,二进制粒子群优化算法
0 引言
配网重构是配电网研究的重要领域。为提高供电可靠性和电网运行灵活性,配电网中设有大量分段开关和一些联络开关。在电网运行过程中,随着负荷变化,及时调整网络中联络开关和分段开关的状态,改变网络的运行结构,可以达到平衡负荷、消除过载、提高电压质量和降低网络损耗的目的[1]。在配电网重构中通常以降低网损为目标函数。
目前文献的求解方法有:(1)传统的数学方法[2],其优点是可以得到不依赖于初始网络结构的全局最优解,但存在严重的“维数灾”;(2)启发式方法,如支路交换法[3]和最优流算法[4],其优点是计算速度快,物理概念清晰,但缺乏数学意义上的全局最优;(3)人工智能方法,如模拟退火算法、遗传算法、禁忌搜索算法[5]等,但也存在缺点。如模拟退火算法[6],计算量大;遗传算法[7,8],计算速度慢,局部搜索能力差等。(4)多种算法结合的混合算法[9,10],可以使各个算法取长补短,在配电网重构中取得了很好的效果。
本文采用改进的二进制粒子群算法应用于配电网络重构,利用避圈法更新粒子,并结合禁忌搜索算法改善算法的搜索效率,算例表明,本文算法具有快速、高效的全局寻优能力。
1 配电网重构的数学模型
以网损最小为优化目标的数学模型:
式中:F为重构优化目标函数;N为配电网支路的集合;kb为对应的支路b的开合状态,kb为1表示该支路是闭合的,kb为0时表示该支路是打开的;br为对应支路b的电阻,Ib为流经支路b的电流;该目标函数需要满足下列网络约束条件:
1)辐射状网络结构,即网络不存在环路和孤立节点。
2)支路容量约束:|Ib|<|Ib|max,|Ib|max为对应支路允许流经电流幅值的最大值。
3)变电所容量或变压器容量约束:Si
4)配电网节点电压约束:Vimin
2 PSO算法及其改进
2.1 基本PSO算法
PSO是一种全新的智能优化算法[11],假设在一个D维的搜索空间中,第i个粒子的位置Xi,飞行速度iV,表示每个粒子经过的最好位置记为Pbest,群体中所有粒子经过的最好位置记为Gbest。对于每一代,粒子根据以下公式更新自己的位置和速度:
式中:ω是惯性因子,一般取0.4~1.2;1c和2c是学习因子,一般取1.5~2.0;1r和2r是区间[0,1]上的随机数;粒子群规模一般取30~50。
2.2 二进制PSO算法
二进制PSO算法(DPSO)中,状态空间中每个粒子的每一位xi,d的取值为0或1,vi,d为xi,d取1的概率。把式(3)中的xi,d用以下公式计算:
式中:r为[0,1]上的随机数。二进制PSO算法的其他部分同基本PSO算法。为了防止饱和,速度被限制在[-4,4]区间内。
2.3 改进DPSO
高斯分布N(µ,σ2),其P(-σ
(1)如果Fi-u<-σ,此时粒子适应值较小,离目标比较近,粒子在进化中表现比较好。对于这种粒子,进化策略采用认知模型。认知模型的一个显著的特点是粒子群收敛速度的减慢,能有效地避免粒子群多样性的丧失。
(2)如果Fi-u>σ,此时粒子适应值较大,离目标比较远,粒子在进化中表现比较差。该类粒子的进化策略采用社会模型。这样做的目的是使这些表现差的粒子加快收敛速度。
(3)如果-σ≤Fi-u≤σ,此时粒子的适应值适中,仍然保持标准PSO算法的进化策略,即采用完全模型。
取定c1和c2之后,把进化方程中的速度修正公式(2)更改为
同时对ω做适当调整
式中:r1、r2、r均为[0,1]中的随机数。
2.4 更新规则改进
为配合破圈法来保证网络的辐射状结构并大大减少搜索次数,本文对基本二进制PSO算法的位置更新规则进行如下改进:
规则1:
规则2:
式中:M是与开关d属于同一个环路的所有开关的集合。
少数粒子按规则1更新粒子,保证粒子的多样性,以跳出局部最优;多数粒子按规则2更新粒子,保证粒子快速收敛。把所有粒子经过的最好位置记为Gbest,每个粒子经过的最好位置记为Pibest。
3 改进二进制粒子群算法的配电网重构
3.1 配电网络结构简化
(1)确定基本环路,如图1(a),划分出5个基本环路。
(2)简化原则:a.为保证负荷点的供电,不在任何环路内的支路上的开关必须闭合;b.为提高搜索效率避免不必要的搜索,与电源点相连的开关一般也必须闭合。根据简化原则可以得到图1(b)。
(3)找出T节点,如图1(b)的节点4、9、11、
(4)把两个T节点之间的相连支路合成一条支路,如图1(b)中的节点4、9间的支路S4-5、S5-6、S6-7、S7-8、S8-9合成图1(c)中节点4、9间的b1支路。
这样,把一个复杂的69节点、74条支路的系统图简化成仅有8节点、12条支路的图1(c)。
13、15、20、48、66,共八个T节点。
3.2 基于图论的配电网络拓扑分析
根据图论中关于树的定义:若G无回路,则G本身为一树。若G有回路,则删去回路上任一边e,G-e仍连通,对G-e重复上述操作,直至得到G的无回路连通子图——生成树。由此可知,对于连通图G可以通过依次从回路中删边的方法得到其生成树,此方法称为破圈法。
破圈法要点是确定基本回路,上节中配电网结构简化后,就已得到基本回路。如图2(a)中的,就组成G的一个基本回路组。从G中删除15C~C中任选一个基本回路中的任意支路生成图1G:
(1)若删除回路C2的支路b9,则如图2(b)所示,支路b9的删除仅仅破坏了回路C2,而回路C1、C3、C4、C5则不受影响,仍然是1G的回路。
(2)若删除回路C1的b1支路,如图2(c)所示,由于b1同属于回路C1、C2,则b1的删除同时破坏了回路C1和C2,但却生成了新的回路C1'(b2-b10-b9-b6-b7)。而回路C3、C4和5C则不受影响,仍然是1G的回路。
删除过程可归结为:先确定待选支路b及所属基本回路C,若b不属于余下的基本回路,则这些回路维持不变;若b同时属于其他基本回路,则将C与这些基本回路进行环后生成新的基本回路。重复上述操作,直至没有回路为止。利用图论的知识可以证明,破圈法是一种高效、准确地求解图的生成树方法,可以百分之百得到辐射状网络。
3.3 生成辐射状网络的步骤
配电网重构的重要约束条件是配电网为辐射状。由图论可知,X分维中0的个数必定等于配电网的环路数。生成辐射状网络的步骤如下:
(1)配电网络结构简化成图1(a),根据公式(5)和(8)得到集合{r}和{S};
(2)找出min{r}或min{S}对应的开关,把开关对应的X分维置0,在图2(a)中找出包含此开关的支路,把此支路中其他开关对应的X分维置1,并删除此支路,此时图2(a)减少一个环路;
(3)为了减少搜索,删除不在任何环路上的支路,并把此支路上所有开关对应的X分为置1;
(4)把上两步删除的支路中包含的所有开关对应的r或S从集合{r}或{S}中删除;
(5)重复步骤(2)、(3)、(4),直到图2(a)中没有环路;
(6)这样得到的X能够百分之百的保证配电网络为辐射状。
3.4 禁忌算法在二进制粒子群算法中的应用
禁忌算法通过引入一个灵活的存储结构和相应的禁忌准则来避免迂回搜索。记录粒子群算法搜索到的当前最优位置作为禁忌对象,在下次迭代过程中,判断群体中的各个粒子更新的位置适应值是否由于被禁对象,若是,则更新禁忌对象,否则判断更新过的位置是否被禁忌,若是则重新更新粒子速度和位置,否则不做处理,保留粒子更新过的位置和速度。
3.5 算法流程
(1)初始化。输入网络信息,如支路阻抗矩阵,节点功率矩阵,节点-支路关联矩阵等;初始化粒子,如确定优化变量的维数,设置粒子群规模M和算法参数,即学习因子、速度限值等;设置最大迭代次数Imax;
(2)迭代次数Iiter=1时,在控制变量变化范围内随机生成M个解,即每个解都能保证网络为辐射状;用广度搜索法对每个解对应的网络进行分层,用前推回代算法计算每个粒子的目标函数;
(3)判断当前迭代次数是否达到最大迭代次数Imax或M个粒子都为最优解,如果是,终止程序,否则Iiter=Iiter+1。Iiter=1时,记录群体当前最好位置Gbest和每个粒子的位置作为粒子的最优位置Pbest;
(4)N>1时,用改进二进制粒子群优化算法更新每个粒子的速度和位置,然后用破圈法修正粒子位置,保证每个粒子都能生成辐射状网络;
(5)查看粒子位置是否被禁,若是,重新更新粒子速度、位置、用破圈法修正粒子位置;若不是,继续以下步骤;
(6)用广度搜索法对每个粒子对应的网络进行分层,用前推回代算法计算每个粒子的目标函数值;
(7)比较粒子的目标函数值与个体当前最优解iP对应的目标值fibest,若目标值小于fibest,则将当前位置作为粒子自身当前最优解iP。选取fibest中最小值作为当前迭代过程的全局最优解对应的目标函数值fg'best,并与粒子群当前群体最优解fgbest进行比较,若小于,更新当前最优解Gbest,相应的更新禁忌对象,转到步骤3。
4 算例
本文采用MATLAB 6.5编程,计算机配置为赛扬,CPU为2.40 GHz,512 MB内存。算例取自文献[12],是美国PG&E的69节点配电网系统,有74条支路,5个联络开关,如图1(a)所示。该系统的额定电压为12.66 k V,总负荷为3 802.2 k W+j2694.6 kvar。
设定粒子群规模为50,学习因子1c和2c均为2,速度限定vmax和vmin分别为4和-4,最大迭代次数为100。
表1为本文算法的计算结果和其他文献的计算结果。本文算法和其他文献算法形成的开关集合相同,网损和文献[13]的结果相同,比文献[8,13]的结果稍小。
表2为不同算法迭代次数比较结果,用本文算法连续运行100次,记录每次达到最优解的次数,最快为4次,其平均迭代次数为10.26次,优于文献[10,13]的结果。从表1和表2的结果分析,可以看出本文算法的高效率的搜索能力和优越性。
5 结语
十进制网络 篇4
由于NoC网络中存在大量互连结构,传统测试机制不能有效诊断和定位故障。因此,本文提出一种利用监控模块(Monitoring Module,MM)在线检测和诊断NoC互连线串扰故障,并以并行方法运行,最小化NoC入侵吞吐量。
1 NoC故障模型
NoC中常见的故障为逻辑层的门级故障、桥接故障和串扰故障[4],本文主要针对串扰故障进行研究。
在NoC互连中,串扰故障通常由空间相近的两条逻辑信道线路的信号相互影响而形成。本文使用最大激励串扰故障(Maximal Aggressor Fault,MAF)[5]模型描述导致串扰故障的所有原因。在MAF模型中,线路受相邻线路传输数据信号的干扰而形成串扰故障,如图1所示MAF模型形成的6种串扰方式,分别为正/负脉冲、上升/下降延迟、上升/下降加速。
图1表明检测器需给每条线路发送2个测试向量来形成各种可能干扰,因此需要12种测试向量来检测6种可能干扰。MAF模型对于一种N位信道,设定第4 b作为受干扰线路,测试向量(v1,v2,⋯,v8)依次发送特定测试向量,用于检测6种可能串扰故障,如图2所示。
2 提出的串扰故障检测方案
本文利用CCD组件[6]的监控模块来增强路由器检测故障的能力,监控模块通过隔离测试过程的流量和执行常规应用程序流量来管理NoC测试过程的入侵流量,使用基于二进制退避算法(Binary Exponential Back-off Algorithm,BEBOA)[7]的检测间隔时间参数动态设定检测时间,使网络快速恢复。
图3所示为监控模块与路由器中其他组件的连接结构。对一种n b数据包,最重要的4 b定义为头,目标地址占16 b,其余bit为有效负荷。以“(002025A5A)16”为例,则头字段为(0)16,目标地址为(0202)16,有效负荷为(5A5A)16。仅使用1 b的MSB表示数据包类型,若头字段的MSB为1,则该数据包为测试数据包,否则为常规应用程序数据包。
图4为两个路由器通过East端口和West端口相互连接的例子。监控模块(MM)有4个子组件,信道拥堵检测器(CDD)、信道检测器(CT)、流量传感器模块(TSM)和测试间隔时间决策模块(TID),下面详细介绍这些模块。
2.1 信道拥堵检测器
本文使用信道拥堵检测器(Channel Congestion Detector,CCD)[8]检测信道的当前流量状态,为流量传感器模块提供信道拥堵信息。流量状态分类为:信道不拥堵、信道繁忙和信道拥堵。该方法能有效地做出路由决策,选择轻拥堵路由,提高信道吞吐量。
2.2 流量传感器模块
由于故障检测应用程序和常规应用程序共享使用信道,所以流量传感器模块(TSM)定义了一种优先级仲裁方案,以避免冲突。TSM通过每个信道局部CCD提供的繁忙/拥堵/故障信号来获得端口状态,以此做出仲裁。共享信道的优先级定义如图5所示。
当信道处于无故障状态时,常规应用程序能随时通过无故障信道传输数据,因此常规应用程序(pregular)的优先级高于故障检测应用程序(ptest)优先级,即pregular>ptest。常规应用程序完成数据传输后,信道变为空闲状态时,则pregular<ptest,故障检测应用程序可以访问和检测信道。
如果信道发生故障,故障检测应用程序将重复检测信道且限制常规应用程序传输数据,即pregular<ptest。如果检测结果总是故障状态,该设定信道为永久性故障信道且状态一直为故障状态。然而,如果经过一定检测次数后故障消失,则信道标记为无故障状态(即信道从暂时故障恢复正常)。
如果信道处于诊断状态,传统检测周期被定义为诊断周期。此时,信道限制常规应用程序流量传输数据,所以故障检测优先级高于常规应用程序优先级,即pregular<ptest。然而,在两次检测之间的空隙,允许常规应用程序通过信道传输数据,即pregular>ptest。如果信道在诊断阶段通过所有检测,则设定信道无故障且信道的状态变为无故障状态。
2.3 信道检测器
信道检测器(Channel Detector,CT)[9]负责检测信道,若信道出现故障,CT将给其他模块发出警告标志。根据警告标志,自适应仲裁机制随后做出路由决策。CT由两个主要子模块组成:检测向量生成器和检测响应分析器。
若故障检测的优先级高于常规应用程序优先级且检测时间间隔等于0,则只进行信道故障检测过程。CT能检测每个信道中多种类型的故障,如果线路#1发生故障,CT单元将检测线路#2到线路n,直到检测到故障线路。对一个n b信道,受干扰线路的范围为从1~n-1。对每个受干扰线路,测试向量生成器顺序发送测试向量(v1,v2,⋯,v8)来诊断线路是否为6种串扰故障{sf,sr,gn,⋯,gp}中的一种。接收端的检测响应分析器生成标准检测向量,用于与接收到的检测向量作比较。如果它们不匹配,则该线路存在串扰故障且生成故障标签。检测向量生成器需要9个时钟周期检测一条线路,其中1个时钟周期用于发送初始数据包(表明需检测线路位置),8个时钟周期用于发送检测向量。因此,它需要总共9×(n-1)个时钟周期检测完n b信道。
信道检测器模块中生成检测向量的流程图,如图6所示。在每次检测的开始,CT读取来自TID的检测间隔时间并启动计数器。当计数器值等于检测间隔时间值时,CT初始化一个新的检测过程,且顺序发送检测向量(v1,v2,⋯,v8)。CT完成检测后,TID模块增加间隔时间,这是因为如果信道已经成功通过先前检测,则没有必要持续检测信道。间隔时间参数可以控制故障检测过程占有信道的平均时间。
2.4 检测间隔时间决策
图7描述了产生两次检测过程间隔时间的流程。通过测试间隔时间决策模块(TID)决定检测间隔时间,该时间值基于二进制指数后退算法。本文中检测间隔时间定义如下:
式中:tclk为系统时钟周期;Ncount(n)为第n次检测时间间隔,由参数β决定;β定义了后退的范围或程度,β∈{2,4,8,⋯}。
按照信道的不同状态,Ncount(n)根据不同情况进行计算:
(1)对于空闲且无故障信道(即常规应用程序没有占有信道且信道已经通过先前检测)的第n次检测,与上一次检测间隔时间相比,会延迟较长,即Ncount(n)=Ncount(n-1)×β。
(2)对于信道繁忙且无故障信道(常规应用程序占有信道),下一次检测延迟为前面几次检测的间隔时间的总和。该过程降低了检测的频率,使应用程序有更多时间占用信道,满足NoC对流量吞吐量的需求。
(3)对于故障信道,则需要更加频繁地检测诊断故障,因此Ncount(n)=0,即系统在信道上执行高频率的故障检测。
在诊断过程中,在两次检测周期之间的间隙存在pregular>ptest。因此,参数β会影响常规应用程序吞吐量的恢复速度。
3 实验结果与分析
3.1 实验平台
构建测试平台,使用VHDL实现NoC路由器和信道中的监控模块,路由器的吞吐量可用来分析故障检测应用程序对常规应用程序产生的影响。本文开发了基于SystemC的数据包生成器和计数器平台[10]来测量常规应用程序的吞吐量。数据包生成器根据图3描述的常规数据包结构生成数据,数据包计数器测量输出数据包率,用来推导路由器吞吐量和未成功发送的数据包数量。
图8为实现监控模块各种功能的3×3的NoC路由器平台。监控模块能处理NoC在实际中遇到的不同场景情况。基于XY路由选择算法,路由器[2,3]的Western输入信道在特定时间周期内是空闲的,但是Eastern信道总是拥堵的,如图9所示。根据这些信道的实时吞吐量来分析常规应用程序的入侵流量。
仿真实验中,设置数据包大小为36 b,系统频率为100 MHz。不同数据包发送率能产生不同流量,这些不同流量可以用来分析监控模块性能(特别是入侵流量分析)。通过故障分发器给一些信道分配串扰故障,引起一些永久故障(PF)或暂时故障(TF)。另外,本文使用基于SADE 90 nm CMOS的集成电路设计编译工具获取监控模块的面积开销(检测单元占路由器整体面积的百分比)。
3.2 实验结果
图10为不同故障情况(永久性故障、暂时故障)和不同β值的TID模型下的信道吞吐量,分析监控模块行为对平均常规应用程序吞吐量产生的影响。
如果信道无故障,则对常规应用程序吞吐量而言,故障检测流量不为入侵流量。图10(a)和图10(b)中,检测周期0~3之间,信道无故障且常规应用程序能在任何时间传输数据,因此pregular>ptest,信道吞吐量保持最大值(即3.6 Gb/s)。另一方面,当给信道引入故障时,第4个检测周期检测到了故障,故障检测过程将继续检测该信道。因此,常规应用程序不能通过该信道传输数据,其吞吐量为0。对于暂时故障,故障从第7个周期开始恢复,如图10(a)所示,在此诊断期间,常规应用程序在检测间隔时间内仍能传输数据。在监控模块诊断信道为无故障后,随着检测间隔时间呈指数增长,常规应用程序占有信道时间加长,信道吞吐量逐渐恢复。对永久性故障,故障检测过程总能检测到故障,因此常规应用程序吞吐量总是为0。
另外,从图10(a)能清楚地看到,TID模型中检测过程的恢复速度依赖于β值(后退程度)。例如,如果β=2,则第一次检测过程的Ncount(1)=2。如果没有检测到故障,则第二次检测过程的Ncount(2)=4。Ncount(n)的变化趋势依赖于β。β值越大,检测间隔时间Ncount(n)-Ncount(n-1)越大。在诊断阶段,常规应用程序在两次检测之间可以传输数据,因此β值越大,则吞吐量恢复速度越快。但如果β值太大,在故障检测阶段又出现故障时,模型的反应能力会下降。
在两种常见的通信模式下(均匀随机、位补码)评估各种算法随着网络中故障链路数目的增加对网络吞吐率的影响。故障条件设为无故障,5%链路故障和15%链路故障三种情况,另外,故障链路中设置一半为永久故障,一半为暂时故障。网络吞吐率为网络的最大通信量,单位为packet·(cycle·node)-1。4种算法的吞吐量比较,如表1所示。
从表1可以看出,本文方案的故障情况对网络吞吐量的影响最小。因为本文方案有效地检测故障,快速回复暂时故障的吞吐量,另外,检测模块所需的流量较小,并采用仲裁机制避免冲突,大大提高了检测和数据传输的效率。
以使用4个监控模块的路由器为例,每个信道有1个监控模块。路由器拥有32 928个逻辑门,假设其中11.56%(3 808个)的逻辑门有4个监控模块。各个算法的硬件面积开销如表2所示,可以看出,本文方案的硬件面积开销最小,约为12%,具有良好的可扩展性。
4 结语
本文提出了一种针对NoC互连的流量感知串扰故障自适应在线检测和诊断方案,使用TSM组件监控信道流量,使用后退算法和优先级定义构建一种信道访问仲裁机制,避免了应用程序和检测程序发生访问冲突。此外,还提出了快速故障恢复策略,故障消除后,能够使常规应用程序吞吐量快速恢复到最大值。在不同信道故障情况下评估本文方案性能,实验结果表明,本文方案能够在线准确诊断故障,在故障情况下能获得最大吞吐量,且需要的额外面积开销也较小。
检测时间间隔参数β的值影响着检测效率和吞吐量恢复速度,如何确定合适的β值非常重要。因此,在未来工作中,将进一步研究故障优化恢复决策。
摘要:针对片上网络(NoC)中互连线容易发生串扰故障问题,提出了一种基于二进制退避算法(BEBOA)结合流量感知的NoC串扰在线诊断故障方案。当NoC信道空闲时,使用信道检测器检测信道以最小化NoC入侵吞吐量;当临时故障恢复时,使用基于BEBOA的检测间隔时间参数动态设定检测时间,使网络快速恢复。此外,构建一种优先级仲裁机制,避免应用程序和检测程序发生信道访问冲突。实验结果表明,提出的方案能够准确检测和诊断故障,并能够迅速恢复吞吐量,同时具有最小的额外芯片面积开销需求。
关键词:故障检测,片上网络,二进制退避算法,互连线串扰,监控模块,优先级仲裁机制
参考文献
[1]王谛,赵天磊,唐遇星,等.一种面向通信特征的3D No C体系结构设计[J].计算机研究与发展,2014,51(9):1971-1979.
[2]DALL′OSSO M,BICCARI G,GIOVANNINI L,et al.A latency insensitive parameterized network-on-chip architecture for multi-processor So Cs[C]//Proceedings of 2012 30th IEEE International Conference on Computer Design.[S.l.]:IEEE,2012:45-48.
[3]胡婧瑾.基于环形拓扑的片上网络架构设计与性能评估研究[D].杭州:浙江大学,2013.
[4]CARRILLO S,HARKIN J,MCDAID L,et al.Advancing interconnect density for spiking neural network hardware implementations using traffic-aware adaptive network-on-chip routers[J].Neural networks,2012,33(4):42-57.
[5]LIU J,HARKIN J,LI Y,et al.Online fault detection for networks-on-chip interconnect[C]//Proceedings of 2014 NASA/ESA Conference on Adaptive Hardware and Systems.[S.l.]:IEEE,2014:31-38.
[6]张士鉴,韩国栋,沈剑良,等.基于故障链路缓存再利用的No C容错路由算法[J].计算机辅助设计与图形学学报,2014,26(1):131-137.
[7]TAMRAKAR D,BHATTACHARYA S,JAIN S.A scheme to eliminate redundant rebroadcast and reduce transmission delay using binary exponential algorithm in Ad-Hoc wireless networks[J].International journal of scientific research in network security and communication,2014,31(2):1-5.
[8]欧阳一鸣,张一栋,梁华国,等.基于虚通道故障粒度划分的3D No C容错路由器设计[J].计算机研究与发展,2014,51(9):1993-2002.
[9]GRECU C,IVANOV A,SALEH R,et al.Testing network-onchip communication fabrics[J].IEEE transactions on computeraided design of integrated circuits and systems,2007,26(12):2201-2214.
十进制网络 篇5
(1) B表示二进制, D表示十进制, H表示十六进制 (O表示八进制) .
十进制123456记作 (123456) 10或123456D, 可写作
同理, 二进制记作 (1101011) 2或1101011B, 可写作
十六进制类似.
(2) 仅讨论高中会考中涉及的笔算的数字 (一般不会太大) .
(3) 二进制、十进制 、十六进制整数转换表 ( 以下简称“表”) .
信息技术的应用十分广泛.在高中阶段, 我们应当掌握二进制、十进制和十六进制之间转换的笔算方法.
首先, 介绍笔算二进制、十进制和十六进制的基本方法:
上述“记号约定”本身就揭示了二进制、十六进制与十进制互化的方法:
“按位权展开、按权相加法”;反之 , 则采用“除二取余法”“除十六取余法”, 那么有什么方法能帮助我们笔算时算得快呢? 介绍一种查表计算的方法.
1.二进制与十进制互化
1.1十进制整数转二进制
除采用“除二取余法”外, 对不太大的数还可采用以下方法:
精髓步骤:拆开运算, 查表代入
为了简便起见, 我们把数m拆成ax+c的形式, 其中, a, c是十进制中的一位数, x为十进制中形如2的数.计算时保留系数n a, 将x, c转换为二进制.
【例1】将十进制数38转换成二进制数.
【略解】法一 :
【评注】 (1) “法二”在 (4110) 2 = (100110) 2的转换过程中有一个更简便的算法, 因为只有最高位超过了二进制的范畴, 所以将后三位保留, 查表得知 (4) 10 = (100) 2 , 将其直接替换在4所在的位置.
为了让转换变得更清楚, 可在算式中加入空格.
(4 110) 2 = (100 110) 2 .
(2) 由查表法可知, 如果m在拆分时选用x为十进制中最接近4或8或16或32…… (即2n型) 的数, 就能减少计算量.
(3) 高中会考中, 一般a, x, c均为十进制中的正整数 , 且均不超过10.
1.2二进制整数转十进制
二进制整数转为十进制数由“按位权展开、按权相加法”得每位上的数字×2 (数字所在位数-1) 的和即转换后的十进制计数.
因此:二进制的 (1010111) 2转化为十进制为
根据上述原理, 我们可以得到一种查表计算的方法
精髓步骤:从后往前, 四位一顿
为了简便起见, 我们对二进制的数字进行下列操作.
首先, 从后往前数, 每四位化为一组.然后从右往左数依次为一组、二组……查表得出每组对应的十进制数字, 然后用这个十进制数字×24× (组序号-1) , 最后相加就得到了转换后的十进制数字.
为了让转换变得更清楚, 可在算式中加入空格.
【例2】将下列二进制数转换成十进制数:
① (11111) 2 ;② (1110101110) 2 .
2.十六进制与十进制互化
鉴于高中会考中, 笔算的数字一般不会太大, 建议:十六进制与十进制互化用常规方法, 即:十进制整数转换为十六进制数采用“除十六取余法”十六进制整数转换为十进制数采用“按位权展开、按权相加法”.此处不再一一举例.
3.二进制与十六进制互化
精髓步骤:四位一顿, 查表补全
二进制转十六进制:从低到高, 4位一组, 每组用一位十六进制数表示;
十六进制转二进制:每一位用4位二进制数表示.
不论是二进制转十六进制还是十六进制转二进制, 精髓步骤都是一样的.
为了让转换变得更清楚, 在算式中加入空格.
【例3】二进制 与十六进 制互化 : ① (FA74) 16 ; ② (10110100) 2 .
【评注】 (1) 上表中“0~7”二进制转十六进制, 每一位用4位二进制数表示, 其余位补“0”.例如: (3) 16 = (0011) 2 .
(2) 所谓查表法的“表”, 在理解的基础上记住即可.此时, 就不需要“查表”这个动作了.
【作业1】[2008.10月高考 ] 二进制数1011与十进制数2相乘的值是 ( ) .
A. (10110) 2 B. (11010) 2 C. (11100) 2 D. (11111) 2
【作业2】十进制数31转换成二进制数是 ( ) .
A. (1lll1l) 2B. (1llll) 2 C. (11110) 2 D. (11101) 2
【作业3】 (1110) 2 - (4) 10的运算结果是 ( ) .
A. (1010) 2 B. (1011) 2 C. (9) 10 D. (11) 10
【作业4】在数制转换中, 每一位十六进制数可以用四位二进制数代替, 那么十六进制数“F”对应的二进制数是 ( ) .
A.1110B.110lC.1111D.0lll
【作业5】[2009年9月浙江省高考] 用Ultraedit软件观察到“学”字的内码为D1A7H, 其对应的二进制编码为
A.11010001 B.1010000110100010
C.11000110 D.1101000110100111
【作业6】[2012年3月普通高校招生浙江省统一考试信息技术试题第1题2分]
十六进制数10H减去十进制数10D, 结果用二进制数表示是 ( ) .
A.0000BB.0110BC.0100BD.0101B
六位十进制计数器的制作 篇6
一、主要元件
1.CD4026引脚
如图1示, 其内部可分为计数器和7段显示译码器两部分。输出以“1”为有效电平点亮数码管相应的段。可以不串连限流电阻直接带数码管, 电流不会超过10mA。
INH=“0”时, 时钟脉冲从CLOCK端引入, 时钟脉冲的上升沿使计数器翻转;INH=“1”时, 计数器停止计数, 显示的数字同时被保持。引脚REST=“1”时, 计数器复零, 显示器显示数“0”。QCO输出计数器时钟CP的十分频信号, 作级联下级计数时钟脉冲用。
DEI和DEO是控制显示的输入端和输出端, , 二二者者同相。当DEI=“l”时, 电路笔端输出真值电平平;;当当DEI=“0”时, 显示器消隐, 此时a-g都为“0”电平。进位“c”输出端不受DEI电平状态的控制。该端是计数内容为“2”的译码输出, 当计数内容为“2”时, 该端输出低电平。利用“C”端的性质可方便地实现÷60或÷12功能。方便地组成时钟计时电路。
2.LED数码管引脚及功能
本设计选用字高0.8英寸, 与芯片配合在线路板布线设计很便利。其引脚为左右排。其引脚从焊接面方向看如图2所示。其它共阴的数码也可以用。
二、CD4026计数器的级联方法
十进制网络 篇7
应当相信, 学生的学习是一个循序渐进、螺旋上升的过程。对知识的理解是过程性的, 是逐步深入的。这样的过程不仅包括对结论的记忆与应用, 还应当包括对知识发生与发展过程的经历、体验和感悟。因此, 任何知识的学习不可能是短时间可以完成的。在一些地区和学校采用的通过一节课“前测”和“后测”正确率的对比, 评价学生的学习效果以及教师的教学效果的做法, 有急功近利之嫌, 是值得商榷的。
“变教为学”倡导的教学是过程性的, 学生的学习是在感知、思考和交流的活动中逐渐感悟的过程。这样的过程所需要的时间可能是相当漫长的, 是不能用一时一事的“对与错”或者“好与坏”进行评价的。对知识背后所蕴含的思想性以及方法性内容的理解水平, 也不是通过结果的正确与错误能够看出来的。
以“十进制”为例, 有一种说法认为数学中的十进制的本质就是“位值 (Place Value) ”, 学会了这个内容, 就掌握了十进制。因此认为小学一年级“11~20各数的认识”这一课就是学习十进制, 这个内容学好了就意味着掌握了十进制。这种认识实际上是误解了十进制的本质及其所包含的内容。
十进制的本质属性是一种“人造 (Artifi cial) ”的语言, 用以记录和表达数及其运算, 因此属于发明 (Invention) 的知识。论及发明知识的本质, 首先应当揭示出发明的原因, 也就是要回答人“为什么发明”这样的问题, 发明的原因主要应当包括两个方面, 第一是“客观基础”, 第二是“主观意愿”或者“主观需求”。十进制可以说是起源于人类活动中的“数数 (音:shǔshù) ”和“测量”, 也就是对量及其关系的记录和表达。这些活动的客观基础应当是客观存在的量的“多与少”以及“大与小”等, 人类的活动中对于客观存在的量就有记录和表达的主观需求。比如, 以物易物的交易活动中需要记录多与少, 出行时需要记录距离的近与远, 做工时需要记录时间的长与短, 等等。
我国古时出现的“结绳”和“刻痕”, 实际上就是记录和表达这样过程的方法。正如《易经》中所说, “上古结绳而治, 后世圣人易之以书契”, 其中的“书契”就是在物体上刻痕。[1]随着人类文字语言的出现与发展, 人们开始用符号记录并表达数数与测量的过程和结果。不同地域、不同文化在历史上出现过许多不同类型的数字符号。比如, 古希腊用27个希腊字母表示数, 古罗马采用的罗马数字, 等等。现在普遍使用的十进制数字符号是古代印度发明的, 后来经阿拉伯传到欧洲, 因此叫作“印度—阿拉伯记数法”, 所使用的数字符号叫作“印度—阿拉伯数字”, 有时也简称为“阿拉伯数字”。
从字形上看, 印度—阿拉伯数字与汉语中的数字应当是同源的。比如, 汉字中的“二”是由两条横线构成的, 如果快速书写就会出现连笔, 连笔书写的“二”就会成为“”的形状, 与数字“2”的形状基本相同。同样快速连笔书写“三”, 就会出现“”的形状, 与数字“3”形状相同。因此有理由相信, 印度—阿拉伯数字符号与汉字的数字符号具有同样的渊源。
有了记录数的符号, 接下来出现的问题是“数”有无限多, 人们不可能发明无限多个符号去表示无限多的数。因此就有了“化无限为有限”的主观需求, 用有限多的符号能够记录、表达无限多的数。为此, 首先想到的应当是“以一代多”。所谓“以一代多”就是将“多个”看作“一个”, 我国历史上流传至今的“画正字”的数数方法, 就是每增加1就写一笔, 写出一个完整的“正”字, 就记录了一个五。因此一个“正”就表示五个1, 体现了以一代多的想法。在英语中的一些词汇也反映出历史上人们使用过的方法, 比如“Quinary”是把5个看作一个的意思;“Duodecimal”是把12个看作一个的意思;“Vigesimal”是把20个看作一个的意思;“Sexagesimal”是把60个看作一个的意思。
实现用有限个符号记录、表达无限个数的, 除了目前熟悉的印度—阿拉伯记数法之外, 在古代欧洲应用最为广泛的当数“罗马记数法”。这种方法是用有限的7个符号以及相关的规则, 能够表达出所有的数。从1到10的罗马数字分别为:
其中仅仅用到了三个基本符号, “Ⅰ”代表“1”;“Ⅴ”代表“5”;“Ⅹ”代表“10”。用三个符号能够表达十个数, 依赖的是人为规定并且约定俗成的组合规则, 相当于语言中的语法。表达“2”和“3”运用了对“Ⅰ”的重复加倍。表达“4”和“9”运用的是“右减左”的规则, 比如, “Ⅳ”就是“5-1=4”, “Ⅸ”就是“10-1=9”。类似地, 表达“6”“7”和“8”的规则是“左加右”, 比如, “Ⅵ”就是“5+1=6”, “Ⅶ”是“5+2=7”, “Ⅷ”是“5+3=8”。全部罗马数字符号一共只有7个, 除了从1~10中的三个符号之外, 还有“L”代表“50”, “C”代表“100”, “D”代表“500”, “M”代表“1000”。这些符号组合起来表达数的规则主要有四条, 前三条分别是前面提及的“重复加倍”“右减左”和“左加右”。比如, 16世纪欧洲出版的一本记载希腊数学的书, 封面显示该书的出版年代就是用罗马数字书写的。 (见图1)
这个年代用前面介绍的符号和相应的规则可以通过下面的算式计算出来:
因此可以断定这本书的出版年代是公元1588年。
罗马数字表达数的第四个规则是针对大数的, 可以叫作“加线乘千”, 也就是在某符号上面画出横线, 就表示将这个符号表示的数扩大1000倍。比如“”就代表“1000×50=50000”。
综上可以看出, 罗马记数法包含两个要素, 第一是七个数字符号, 第二是将数字符号组合并关联的规则。由此就实现了对无限多数的记录和表达。人们经过对诸如此类记录方法长时间的使用和比较, 逐步感受到印度人发明的十进制记数法更加便于掌握和计算, 而且与人的10根手指相一致。
与罗马记数法类似, 印度—阿拉伯十进制记数法同样也有两个类似的要素, 第一是0~9的十个数字符号, 第二是“满十变一”的规则, 这一规则在写法上体现为“左移乘十”。比如“22”, 右边的“2”代表2个1, 左边的“2”就代表“2×10=20”。“22”的写法可以看作是“2×10+2”的缩写。同样的数字符号放在不同的位置上, 就表示不同的值, 因此称之为“位值”。与罗马记数法相比, 印度—阿拉伯十进制记数法的规则相对简单, 便于学习和使用。除此之外, 这种记数法还有许多方面的优势。
数作为描述量及其关系的语言, 一个重要内容就是比较大小。在整数范围内, 印度—阿拉伯记数法比较两个数的大小的方法可以概括为:“位数相同看高位, 位数不同长者大”, 这样的方法简便易行, 而且非常直观。相比之下, 罗马记数法的大小比较就相对复杂。
十进制记数法的第二个优势是很容易推广到小数。前面所说的“左移乘十”反过来就是“右移缩十”, 也就是右侧数字的位值是左侧数字位值的十分之一。这样小数与整数的记录方法就统一了。比如, 整数22和小数2.2都符合“左移乘十”和“右移缩十”的规则。这就使得数学中“数系”的建立成为可能。
十进制记数法的另一个优势是便于运算。历史上对于数的运算是一个难题。特别是对于较大数的运算, 人们一直追寻能够程序化的操作方法。现如今数学课程中的“竖式”就是这种程序化的操作方法, 对于建立在数字符号和位值基础上的记数法, 只需要做到“数位对齐”就可以进行程序化的运算了。[2]
综上可以看出, 诸如0~9十个数字符号、位值、比较整数大小、数与数之间的运算、认识小数、小数比较大小、小数运算等内容都是以十进制记数法为基础的。不仅如此, 其中蕴含着的对“有限与无限的关系”的感悟, 对“以一代多”的方法的理解, 都需要长期的过程, 绝不是一节课能够实现的。因此在“变教为学”的实践中, 需要耐心地等待, 不能期望“浇水后立刻开花”。
参考文献
[1]郜舒竹.问题解决与数学实践[M].北京:高等教育出版社, 2012.P89.
【十进制网络】相关文章:
十进制计数法04-08
二进制与十进制转化06-02
七段数码管显示十进制数字04-21
eda实验报告-两位十进制频率计设计06-23
计算机中十进制数转换二进制数的方法比较09-29
十进十建宣传标语07-15
十进十建活动汇报05-01
十进十建学习总结05-04
十进十建心得体会04-08
十进十建活动整改方案02-21