• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      軌道電子地圖基礎(chǔ)數(shù)據(jù)建模與驗(yàn)證

      2023-08-03 00:32:14
      關(guān)鍵詞:斷鏈謂詞電子地圖

      黃 旭

      (中鐵第一勘察設(shè)計(jì)院集團(tuán)有限公司,西安 710000)

      0 引言

      隨著全球?qū)Ш叫l(wèi)星系統(tǒng)的發(fā)展,衛(wèi)星定位的技術(shù)在軌道交通領(lǐng)域的應(yīng)用也日漸成熟。國(guó)外的RUNE[1]、GADEROS[2]和LOCOPROL[3];國(guó)內(nèi)的青藏鐵路增強(qiáng)型列車(chē)控制系統(tǒng)(ITCS)以及正在試驗(yàn)的新型列控系統(tǒng)均是將衛(wèi)星定位作為列車(chē)定位的重要手段。尤其隨著我國(guó)自主研發(fā)的北斗衛(wèi)星導(dǎo)航系統(tǒng)的不斷發(fā)展,將北斗衛(wèi)星定位應(yīng)用于鐵路各個(gè)領(lǐng)域的研究也日益增長(zhǎng)[4-7]。

      基于軌道線路的電子地圖數(shù)據(jù)是實(shí)現(xiàn)列車(chē)衛(wèi)星定位的前提,不正確的電子地圖數(shù)據(jù)將會(huì)導(dǎo)致列車(chē)定位失效或錯(cuò)誤,甚至?xí)?dǎo)致系統(tǒng)輸出錯(cuò)誤或停車(chē)等事故,因此確保電子地圖數(shù)據(jù)的正確性至關(guān)重要。電子地圖數(shù)據(jù)的生成過(guò)程可概括為:前期設(shè)計(jì)、現(xiàn)場(chǎng)測(cè)繪、數(shù)據(jù)生成、驗(yàn)證與確認(rèn)。前期設(shè)計(jì)是生成電子地圖數(shù)據(jù)的第一步,將前期設(shè)計(jì)輸出的內(nèi)容暫且定義為電子地圖基礎(chǔ)數(shù)據(jù)(簡(jiǎn)稱(chēng)“基礎(chǔ)數(shù)據(jù)”)?;A(chǔ)數(shù)據(jù)是根據(jù)系統(tǒng)需求和相關(guān)規(guī)范進(jìn)行設(shè)計(jì),可供后續(xù)測(cè)繪和制作電子地圖數(shù)據(jù)文件使用,基礎(chǔ)數(shù)據(jù)是源頭,其正確與否直接關(guān)系到后續(xù)工作的正確性。為確保列車(chē)精確定位和系統(tǒng)安全運(yùn)行,需對(duì)電子地圖基礎(chǔ)數(shù)據(jù)進(jìn)行正確性驗(yàn)證。

      當(dāng)前電子地圖基礎(chǔ)數(shù)據(jù)的驗(yàn)證方式主要為人工校驗(yàn),存在以下問(wèn)題:一是易出錯(cuò),校核過(guò)程個(gè)人的能力水平直接決定著校核質(zhì)量,易帶來(lái)錯(cuò)誤判斷或遺漏等問(wèn)題;二是效率低,人工判斷時(shí)間花費(fèi)較長(zhǎng),且因現(xiàn)場(chǎng)或試驗(yàn)結(jié)果,基礎(chǔ)數(shù)據(jù)的迭代頻次較高,這就導(dǎo)致人工核對(duì)效率無(wú)法滿足實(shí)際需求。因此探索一種高效、準(zhǔn)確的驗(yàn)證方法,對(duì)確保電子地圖的正確性有重要意義,也有助于實(shí)現(xiàn)列車(chē)精確定位。

      當(dāng)前對(duì)軌道電子地圖數(shù)據(jù)的研究主要集中在地圖數(shù)據(jù)處理、約簡(jiǎn)和地圖匹配算法等方面。文獻(xiàn)[8]提出一套生成高精度軌道電子地圖的數(shù)據(jù)處理方法,分別采用卡爾曼濾波方法對(duì)采集數(shù)據(jù)進(jìn)行濾波,采用軌跡擬合方法對(duì)軌道曲線進(jìn)行歸一化處理,采用垂直距離判據(jù)數(shù)據(jù)約簡(jiǎn)算法去除冗余數(shù)據(jù),最終可生成高精度電子地圖數(shù)據(jù)。文獻(xiàn)[9]提出用線段近似法描述曲線軌道,可保證軌道精度又降低數(shù)據(jù)量。文獻(xiàn)[10]提出基于方位角的曲率方法對(duì)線路的平面線性進(jìn)行特征識(shí)別與分段擬合。文獻(xiàn)[11]對(duì)電子地圖數(shù)據(jù)進(jìn)行分析,開(kāi)發(fā)了電子地圖生成軟件。文獻(xiàn)[12-14]分別對(duì)電子地圖的匹配算法進(jìn)行了研究,通過(guò)仿真可證明匹配算法的準(zhǔn)確性。作為電子地圖數(shù)據(jù)驗(yàn)證中重要的環(huán)節(jié),電子地圖基礎(chǔ)數(shù)據(jù)的驗(yàn)證目前研究較少。

      針對(duì)當(dāng)前現(xiàn)狀,本文首先對(duì)電子地圖基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)和內(nèi)容進(jìn)行分析;深入分析基礎(chǔ)數(shù)據(jù),結(jié)合相關(guān)規(guī)范和領(lǐng)域?qū)<抑R(shí),提取出基礎(chǔ)數(shù)據(jù)驗(yàn)證規(guī)則;針對(duì)基礎(chǔ)數(shù)據(jù)內(nèi)容多、變更頻繁等特點(diǎn),提出一種電子地圖基礎(chǔ)數(shù)據(jù)建模與驗(yàn)證方法,用Prolog語(yǔ)言描述數(shù)據(jù)和驗(yàn)證規(guī)則,搭建其驗(yàn)證模型。最后以實(shí)際線路數(shù)據(jù)為例,搭建其數(shù)據(jù)驗(yàn)證模型,證明該驗(yàn)證方法的高效性和準(zhǔn)確性。這對(duì)提高電子地圖數(shù)據(jù)的正確性有著積極作用。

      1 軌道電子地圖基礎(chǔ)數(shù)據(jù)分析

      當(dāng)前不同列控系統(tǒng)對(duì)應(yīng)的電子地圖數(shù)據(jù)格式不盡相同,本文以其中一種列控系統(tǒng)對(duì)應(yīng)的數(shù)據(jù)為例展開(kāi)研究。電子地圖數(shù)據(jù)以車(chē)站為最小數(shù)據(jù)組織單位,區(qū)間數(shù)據(jù)按照劃分原則分別納入相鄰的車(chē)站數(shù)據(jù)組織。電子地圖數(shù)據(jù)包含軌道地理信息文件和固定應(yīng)用數(shù)據(jù)文件,軌道地理信息描述的是衛(wèi)星數(shù)據(jù)與軌道位置數(shù)據(jù)間的對(duì)應(yīng)關(guān)系,固定應(yīng)用數(shù)據(jù)文件描述了區(qū)間和站內(nèi)的關(guān)鍵設(shè)備及邊界所在的軌道和坐標(biāo)位置信息。地圖數(shù)據(jù)均是依據(jù)基礎(chǔ)數(shù)據(jù)加上測(cè)繪數(shù)據(jù)編制而成。

      電子地圖基礎(chǔ)數(shù)據(jù)一般是由設(shè)計(jì)院輸出的一套Excel表格,描述了每個(gè)車(chē)站管轄范圍內(nèi)測(cè)繪的軌道、關(guān)鍵點(diǎn)的名稱(chēng)、類(lèi)型、所在軌道、里程等信息?;A(chǔ)數(shù)據(jù)包括車(chē)站信息表、軌道信息表、關(guān)鍵點(diǎn)信息表、應(yīng)答器信息表和道岔信息表,如線路里程存在里程轉(zhuǎn)換或斷鏈則還需要補(bǔ)充里程轉(zhuǎn)換信息表和斷鏈信息表。車(chē)站信息表描述了線路中車(chē)站名稱(chēng)、對(duì)應(yīng)的各級(jí)編號(hào)及車(chē)站所屬的中心設(shè)備序號(hào)。軌道信息表描述了線路劃分的軌道號(hào)、軌道的起始和結(jié)束邊界以及邊界對(duì)應(yīng)的里程和相對(duì)軌道起點(diǎn)的位置。關(guān)鍵點(diǎn)包括3種類(lèi)型:應(yīng)答器、道岔和數(shù)據(jù)邊界,關(guān)鍵點(diǎn)信息表分別描述了各種關(guān)鍵點(diǎn)的類(lèi)型、名稱(chēng)、里程、所在軌道、距軌道起始邊界的位置等信息。應(yīng)答器信息表和道岔信息表則根據(jù)關(guān)鍵點(diǎn)信息表進(jìn)行填寫(xiě),應(yīng)答器信息表中補(bǔ)充了應(yīng)答器編號(hào)、用途等內(nèi)容,道岔信息表中補(bǔ)充了開(kāi)岔開(kāi)向、定位開(kāi)向等信息。基礎(chǔ)數(shù)據(jù)中的位置數(shù)據(jù)均是基于線路運(yùn)營(yíng)里程計(jì)算所得,可供后續(xù)的測(cè)繪數(shù)據(jù)做一致性校驗(yàn)。對(duì)應(yīng)的數(shù)據(jù)組織關(guān)系如圖1所示。

      圖1 軌道電子地圖基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)組織

      2 驗(yàn)證規(guī)則提取

      電子地圖基礎(chǔ)數(shù)據(jù)驗(yàn)證規(guī)則來(lái)源可分為兩類(lèi):一是鐵總頒布的各類(lèi)行業(yè)規(guī)范文件;二是通過(guò)對(duì)基礎(chǔ)數(shù)據(jù)的深入分析和挖掘結(jié)合領(lǐng)域?qū)I(yè)知識(shí)提取所得?;A(chǔ)數(shù)據(jù)本身數(shù)據(jù)格式定義明確、數(shù)據(jù)間的關(guān)聯(lián)性較強(qiáng),因此根據(jù)其內(nèi)容特點(diǎn),可將規(guī)則概括為兩類(lèi):值域規(guī)則和邏輯規(guī)則。

      2.1 值域規(guī)則

      基礎(chǔ)數(shù)據(jù)包含幾類(lèi)數(shù)據(jù)對(duì)象,每一類(lèi)數(shù)據(jù)對(duì)象所描述的信息均需滿足其對(duì)應(yīng)的值域規(guī)則,從數(shù)據(jù)類(lèi)型、格式、精度和取值范圍四方面對(duì)基礎(chǔ)數(shù)據(jù)的值域規(guī)則進(jìn)行描述。

      2.1.1 數(shù)據(jù)類(lèi)型

      不同的數(shù)據(jù)對(duì)象描述的內(nèi)容不同,每一項(xiàng)內(nèi)容屬性對(duì)應(yīng)的數(shù)據(jù)類(lèi)型不同?;A(chǔ)數(shù)據(jù)主要包含的數(shù)據(jù)類(lèi)型有:整型、字符串、布爾類(lèi)型、枚舉類(lèi)型。

      2.1.2 數(shù)據(jù)格式

      根據(jù)相關(guān)規(guī)范,基礎(chǔ)數(shù)據(jù)格式有明確要求,各項(xiàng)數(shù)據(jù)均有其對(duì)應(yīng)的命名或表示規(guī)則。如里程的格式應(yīng)為(KXXX+XXX);應(yīng)答器名稱(chēng)應(yīng)以B開(kāi)頭等。

      2.1.3 數(shù)據(jù)精度

      數(shù)據(jù)值應(yīng)與其對(duì)應(yīng)的單位精度匹配,如里程值精確到米;位置值精確到厘米。

      2.1.4 取值范圍

      每一項(xiàng)數(shù)據(jù)都有對(duì)應(yīng)的實(shí)際意義,根據(jù)相關(guān)規(guī)范和專(zhuān)業(yè)知識(shí),可總結(jié)得到某些數(shù)據(jù)對(duì)應(yīng)的取值范圍,如距軌道起點(diǎn)的位置值一定大于等于0;軌道號(hào)取值應(yīng)為正數(shù);根據(jù)區(qū)間長(zhǎng)度劃分原則可確定距軌道起點(diǎn)位置值的上限。

      表1為提取得到的基礎(chǔ)數(shù)據(jù)值域規(guī)則具體內(nèi)容的部分示例。

      表1 值域規(guī)則舉例

      2.2 邏輯規(guī)則

      值域規(guī)則是對(duì)數(shù)據(jù)本身的值域、格式等方面的約束,邏輯規(guī)則是描述數(shù)據(jù)之間的約束關(guān)系。以下定義并列舉了部分電子地圖基礎(chǔ)數(shù)據(jù)的邏輯驗(yàn)證規(guī)則。

      定義1:車(chē)站信息定義為,分別表示序號(hào)、車(chē)站名稱(chēng)、大區(qū)編號(hào)、分區(qū)編號(hào)、車(chē)站編號(hào)、TSRS序號(hào)、RBC序號(hào)。

      規(guī)則1:不可能存在編號(hào)相同的兩個(gè)車(chē)站。

      (Regionnum,i,Partitionnum,i,Stationnum,i)≠

      (Regionnum,j,Partitionnum,j,Stationnum,j)

      定義2:若存在線路斷鏈,斷鏈數(shù)據(jù)定義為,分別表示序號(hào)、斷鏈類(lèi)型、斷鏈起點(diǎn)里程、終點(diǎn)里程、長(zhǎng)度和線別。

      定義3:軌道信息定義為,分別表示序號(hào)、軌道所屬車(chē)站、軌道號(hào)、軌道起/終點(diǎn)屬性、里程、位置。

      規(guī)則2:斷鏈長(zhǎng)度等于斷鏈起點(diǎn)和終點(diǎn)里程之差。

      Dlength=|Dend-Dbegin|

      規(guī)則3:軌道終點(diǎn)位置值與軌道終點(diǎn)里程、軌道起點(diǎn)里程以及是否包含斷鏈信息有關(guān)。若軌道起終點(diǎn)之間不存在斷鏈,則軌道終點(diǎn)位置等于終點(diǎn)里程與起點(diǎn)里程之差乘100;若存在斷鏈則需考慮斷鏈長(zhǎng)度。Di為斷鏈:

      當(dāng)?Di∈D,Di?T,Tend_len=100*|Tend_loa-Tbegin_loa|;

      當(dāng)?Di∈D,Di?T,Tend_len=100*(|Tend_loa-Tbegin_loa|±Dlength)。

      式中,D為斷鏈合集,Di為斷鏈合集中的一個(gè)元素;T表示軌道合集。

      規(guī)則4:同一車(chē)站內(nèi)軌道號(hào)唯一。

      (Tstation,i,Tnum,i)=≠(Tstation,j,Tnum,j)

      規(guī)則5:一般情況一條軌道長(zhǎng)度存在上限。

      max{Tend_len,1,Tend_len,2, ,Tend_len,n}

      定義4:應(yīng)答器信息定義為,分別表示序號(hào)、應(yīng)答器組名稱(chēng)、應(yīng)答器組編號(hào)、組內(nèi)位置、里程、類(lèi)型、用途、所屬車(chē)站、所屬軌道號(hào)、距所在軌道起點(diǎn)的位置。

      規(guī)則6:當(dāng)且僅當(dāng)應(yīng)答器類(lèi)型是“虛擬”,對(duì)應(yīng)的用途為“XQ”。

      Btype=“虛擬”<-->BUSE=“XQ”

      規(guī)則7:應(yīng)答器組內(nèi)間距為5 m。

      當(dāng)BGname,i=BGname,j且Gnum,j=Gnum,i+1時(shí),Bloa,j=Bloa,i±5。

      規(guī)則8:應(yīng)答器距軌道起點(diǎn)的位置與應(yīng)答器里程、應(yīng)答器所在軌道起點(diǎn)里程以及是否包含斷鏈信息有關(guān)。

      當(dāng)?Di∈D,Di?B,Blen=100*|Bloa-Tbegin_loa|;

      當(dāng)?Di∈D,Di?B,Blen=100*(|Bloa-Tbegin_loa|±Dlength。

      式中,D為斷鏈合集,Di為斷鏈合集中的一個(gè)元素;B表示應(yīng)答器與軌道起點(diǎn)之間數(shù)據(jù)合集。

      規(guī)則9:應(yīng)答器所屬車(chē)站名稱(chēng)一定是車(chē)站信息表中的車(chē)站。

      Bstation∈StationName

      定義5:道岔信息定義為,分別表示序號(hào)、道岔所屬車(chē)站、道岔編號(hào)、里程、開(kāi)向、岔尖所在軌道號(hào)、位置、定位軌道號(hào)、位置、反位軌道號(hào)、位置。

      規(guī)則10:一個(gè)車(chē)站內(nèi),同一條軌道上不存在岔尖里程相同的兩組道岔。

      當(dāng)(Sstation,i=Sstation,j)∩(STtrack,i=STtrack,j)時(shí),Sloa,i≠Sloa,j

      規(guī)則11:岔尖所屬軌道要不與定位所屬軌道一致,要不與反位所屬軌道一致。

      (STtrack=SDtrack∩STtrack≠

      SDtrack∩STtrack=SFtrack)

      定義6:關(guān)鍵點(diǎn)信息定義為,分別表示序號(hào)、車(chē)站名稱(chēng)、關(guān)鍵點(diǎn)類(lèi)型、名稱(chēng)、類(lèi)型、軌道號(hào)、位置、里程。

      規(guī)則12:關(guān)鍵點(diǎn)信息表中只描述組內(nèi)第一個(gè)應(yīng)答器信息。

      當(dāng)(Gnum=1∪Gnum=null)∩(Ptype=“應(yīng)答器”)時(shí),P=B。

      規(guī)則13:關(guān)鍵點(diǎn)信息表中應(yīng)包含道岔信息表中所有道岔。

      當(dāng)(Ptype=“道岔”)時(shí),P=S。

      規(guī)則14:關(guān)鍵點(diǎn)信息表中應(yīng)包含所有軌道邊界。

      (Tbeginattr=“起始數(shù)據(jù)邊界”)∪Tbeginattr=“結(jié)束數(shù)據(jù)邊界”)∩(Ptype=“數(shù)據(jù)邊界”)時(shí),P=T。

      其中:P表示關(guān)鍵點(diǎn)合集,B表示應(yīng)答器合集,S表示道岔合集,T表示軌道合集。

      3 建模與驗(yàn)證

      為實(shí)現(xiàn)電子地圖基礎(chǔ)數(shù)據(jù)的自動(dòng)驗(yàn)證,本文采用Prolog語(yǔ)言搭建基礎(chǔ)數(shù)據(jù)的驗(yàn)證模型,目的一是對(duì)驗(yàn)證規(guī)則進(jìn)行形式化描述,二是基于驗(yàn)證工具搜索出不滿足規(guī)則的數(shù)據(jù)反例,最終可實(shí)現(xiàn)基礎(chǔ)數(shù)據(jù)的自動(dòng)驗(yàn)證。

      3.1 Prolog語(yǔ)言

      Prolog語(yǔ)言[15]是以一階謂詞邏輯為基礎(chǔ)的邏輯編程語(yǔ)言,采用陳述句式使用演繹推理進(jìn)行問(wèn)題求解,它利用已知事實(shí)和規(guī)則結(jié)合內(nèi)部搜索、匹配和回溯的推理機(jī)智自動(dòng)求解程序設(shè)定的目標(biāo),不需要在程序中列出詳細(xì)的求解步驟。Prolog語(yǔ)言僅具有事實(shí)、規(guī)則和目標(biāo)3種基本類(lèi)型[16]。Prolog語(yǔ)言在構(gòu)建專(zhuān)家系統(tǒng)[17-18]、智能檢索系統(tǒng)[19]、數(shù)據(jù)驗(yàn)證[20-21]等方面已有不少研究。

      事實(shí)是用來(lái)描述已知的對(duì)象和他們之間的關(guān)系,事實(shí)由謂詞及對(duì)象組成,對(duì)象可以是一個(gè)或多個(gè)。謂詞和對(duì)象可由用戶自己定義。例如like(bill,dog),該事實(shí)描述的是bill喜歡cindy。

      規(guī)則用來(lái)描述事實(shí)之間的依賴關(guān)系,由左邊表示結(jié)論的謂詞和右邊表示條件的謂詞組成,中間通過(guò)“:-”連接,以“.”結(jié)束。例如like(cindy,X):-like(bill,X)表示cindy喜歡bill喜歡的東西。

      把事實(shí)和規(guī)則寫(xiě)進(jìn)Prolog語(yǔ)言描述后,可以其詢問(wèn)有關(guān)問(wèn)題的答案,問(wèn)題就是程序運(yùn)行的目標(biāo)。目標(biāo)可以是一個(gè)簡(jiǎn)單的謂詞,也可以是多個(gè)謂詞組合。例如?-like(cindy,dog)表示向程序詢問(wèn)“cindy是否喜歡狗?”。

      本文用Prolog語(yǔ)言的事實(shí)描述電子基礎(chǔ)數(shù)據(jù),規(guī)則描述基礎(chǔ)數(shù)據(jù)應(yīng)滿足的驗(yàn)證規(guī)則,目標(biāo)則是遍歷數(shù)據(jù)是否滿足所有規(guī)則,并找出反例,即不符合驗(yàn)證規(guī)則的數(shù)據(jù)。

      3.2 數(shù)據(jù)事實(shí)

      電子地圖基礎(chǔ)數(shù)據(jù)由車(chē)站信息表、軌道信息表、應(yīng)答器位置表、道岔信息表、關(guān)鍵點(diǎn)信息表組成,需要將excel表格中的每一行數(shù)據(jù)轉(zhuǎn)換為Prolog可識(shí)別的事實(shí)。各數(shù)據(jù)表的事實(shí)表示如下:

      車(chē)站信息:station(Aid,Aname,Regionnum,Partitionnum,Stationnum,TSRS_Num,RBC_Num)。

      軌道信息:track(Tid,Tstation,Tnum,Tbegin_attr,Tbegin_loa,Tbegin_len,Tend_attr,Tend_loa,Tend_len)。

      應(yīng)答器信息:balise(Bid,BGname,BGnum,Gnum,Bloa,Btype,Buse,Bstation,Btrack,Blen)。

      道岔信息:switch(Sid,Sstation,Snum,Sloa,Sdir,STtrack,STlen,SDtrack,SDlen,SDtrack,SDlen,SFtrack,SFlen)。

      關(guān)鍵點(diǎn)信息:poi(Pid,Pstation,Ptype,Pname,Ptype2,Ptrack,Plen,Ploa)。

      斷鏈信息:chain(Did,dtype,Dbegin,Dend,Dlength,Ddir)。

      數(shù)據(jù)事實(shí)由對(duì)應(yīng)謂詞和參數(shù)組成,例如:track是軌道數(shù)據(jù)事實(shí)的謂詞,參數(shù)Tid序號(hào)、Tstation表示軌道所屬車(chē)站、Tnum表示軌道號(hào)、Tbegin_attr表示軌道起點(diǎn)屬性、Tbegin_loa表示起點(diǎn)里程、Tbegin_len表示起點(diǎn)位置、Tend_attr表示軌道終點(diǎn)屬性、Tend_loa表示終點(diǎn)里程、Tend_len表示終點(diǎn)位置。由此可將excel表中每一行數(shù)據(jù)轉(zhuǎn)換為事實(shí)。

      此外,數(shù)據(jù)值域規(guī)則中枚舉屬性對(duì)應(yīng)的數(shù)據(jù)事實(shí)可用列表來(lái)表示。

      軌道起點(diǎn)屬性Tbegin_attr對(duì)應(yīng)的數(shù)據(jù)事實(shí)為:track_begin_attr([‘起始數(shù)據(jù)邊界’,‘道岔’])。

      軌道終點(diǎn)屬性Tend_attr對(duì)應(yīng)的數(shù)據(jù)事實(shí)為track_end_attr([‘結(jié)束數(shù)據(jù)邊界’,‘道岔’])。

      道岔開(kāi)岔方向Sdir對(duì)應(yīng)數(shù)據(jù)事實(shí)為:switch_dir([0,1])。

      關(guān)鍵點(diǎn)類(lèi)型Ptype對(duì)應(yīng)數(shù)據(jù)事實(shí)為:poi_type([‘應(yīng)答器’,’數(shù)據(jù)邊界’,’道岔’])。

      3.3 規(guī)則模型

      將提取的基礎(chǔ)數(shù)據(jù)驗(yàn)證規(guī)則轉(zhuǎn)換為Prolog語(yǔ)言對(duì)應(yīng)的規(guī)則表述,構(gòu)建數(shù)據(jù)驗(yàn)證的規(guī)則模型。

      3.3.1 值域規(guī)則模型

      值域規(guī)則對(duì)應(yīng)的是數(shù)據(jù)類(lèi)型和取值的約束。簡(jiǎn)單的數(shù)據(jù)類(lèi)型約束可利用Prolog的內(nèi)部謂詞作為規(guī)則謂詞,如integer(A),float(A),number(A)等。其他特殊的格式約束需進(jìn)行自定義規(guī)則。

      軌道信息事實(shí)中軌道起點(diǎn)屬性應(yīng)滿足固定幾種類(lèi)型,驗(yàn)證軌道屬性的規(guī)則可描述為:

      check_track_beginAttr(Tid):-track(Tid,_,_,_,_,Tbegin_attr,_,_,_,_,_),track_begin_attr(Track_begin_attr),/+member(T_begin_attr,Track_begin_attr)。

      其中:Tid是軌道數(shù)據(jù)的序號(hào),member是Prolog的內(nèi)部謂詞,member(T_begin_attr,Track_begin_attr)描述變量T_begin_attr(軌道起點(diǎn)屬性值)是否是集合Track_begin_attr(軌道起點(diǎn)屬性值集合)的一個(gè)元素,“/+”是Prolog的內(nèi)部符號(hào),表示取反值。執(zhí)行check_track_attr(Tid)規(guī)則,可搜索出軌道起點(diǎn)屬性不滿足要求的軌道序號(hào)。

      應(yīng)答器名稱(chēng)的第一個(gè)字符應(yīng)是字母“B”。對(duì)應(yīng)規(guī)則可描述為:

      check_blase_name(Bid):-balise(Bid,BGname,_,_,_,_,_,_,_,_),name(BGname,X),X=[X1|_],X1/=66。

      其中:Bid是應(yīng)答器數(shù)據(jù)的序號(hào),BGname是應(yīng)答器組名稱(chēng),name是Prolog的內(nèi)部謂詞,name(BGname,X)是將BGname轉(zhuǎn)換為對(duì)應(yīng)ASCII碼列表,X1為BGnameASCII碼列表中的第一個(gè)元素。執(zhí)行check_blase_name(Bid)規(guī)則可輸出名稱(chēng)中第一個(gè)字符不是“B”的應(yīng)答器數(shù)據(jù)對(duì)應(yīng)的序號(hào),可供錯(cuò)誤定位及修改。

      3.3.2 邏輯規(guī)則模型

      規(guī)則1:不可能編號(hào)相同的兩個(gè)車(chē)站。

      check_stationNum(Aid1,Aid2):-station(Aid1,_,Regionnum1,Partitionnum1,Stationnum1,_,_),station(Aid2,_,Regionnum2,Partitionnum2,Stationnum2,_,_),Aid1

      執(zhí)行check_stationNum(Aid1,Aid2)規(guī)則可以輸出大區(qū)編號(hào)、分區(qū)編號(hào)和車(chē)站編號(hào)分別相同的車(chē)站數(shù)據(jù)序號(hào)。

      規(guī)則2:斷鏈的長(zhǎng)度等于終點(diǎn)里程于起點(diǎn)里程之差,對(duì)應(yīng)規(guī)則可描述為:

      check_chainLen(Did):-chain(Did,_,Dbegin,Dend,Dlength,_),Dlength=/=abs(Dend-Dbegin)。

      其中:Did是斷鏈序號(hào),abs是Prolog的內(nèi)部謂詞,表示求絕對(duì)值。執(zhí)行Check_chainLen(Did)規(guī)則可輸出不滿足長(zhǎng)度等于起終點(diǎn)里程差的斷鏈序號(hào)。

      規(guī)則3:軌道長(zhǎng)度與起終點(diǎn)里程和是否存在斷鏈有關(guān),該條規(guī)則需多條規(guī)則組合描述。

      check_ChainIn(Tid,Dtype,Dlength):-track(Tid,_,Tnum,Tbegin_loa,_,_,Tend_loa,_),chain(Did,Dtype,Dbegin,Dend,Dlength,Ddir),(Tbegin_loaDend,is_odd(Tnum),Ddir=’下行’);(Tbegin_loa>Dbegin,Tend_loa

      check_T_endLen(Tid):-track(Tid,_,_,_,Tbegin_loa,_,_,Tend_loa,Tend_len), check_Chain_in(Tid,Dtype,Dlength),(Dtype=’長(zhǎng)鏈’,Tend_len/=100*(|Tbegin_loa-Tend_loa|+Dlength));(Dtype=’短鏈’,Tend_len/=100*(|Tbegin_loa-Tend_loa|-Dlength))。

      check_T_endLen(Tid):-track(Tid,_,_,_,Tbegin_loa,_,_,Tend_loa,Tend_len),/+check_Chain_in(Tid),Dtype,Dlength),Tend_len/=100*(|Tbegin_loa-Tend_loa|)。

      謂詞check_ChainIn是判斷序號(hào)為的軌道數(shù)據(jù)的起終點(diǎn)范圍內(nèi)是否包含斷鏈,并取得斷鏈的類(lèi)型和長(zhǎng)度。其中”,”代表邏輯關(guān)系中的“且”,”;”代表邏輯關(guān)系中的“或”。謂詞check_T_endLen由兩條規(guī)則組成,用多條規(guī)則可以定義同一個(gè)謂詞,分為軌道數(shù)據(jù)包含斷鏈和不包含斷鏈兩種情況,執(zhí)行check_T_endLen(Tid)可輸出軌道終點(diǎn)位置與里程不符合邏輯規(guī)則的軌道數(shù)據(jù)序號(hào)。

      規(guī)則4:同一車(chē)站內(nèi)軌道號(hào)唯一。

      is_uniq(X,Y_list):-member(X,Y_list),delete(Y_list,X,Last_l),length(Last_l,Len_last),length(Y_list,Len_Y),Len_Y is Len_last+1。

      首先自定義is_uniq規(guī)則,其中member,delete和length均是內(nèi)部謂詞,執(zhí)行is_uniq(X,Y_list)可判斷變量X是否是列表Y_list中的非重復(fù)項(xiàng),如果是輸出FALSE,如果是非重復(fù)項(xiàng)則輸出TRUE。

      Check_T_num(Tid):-track(Tid,Tstation,_,_,_,_,_,_,_),findall(Tnum,track(_,Tstation,Tnum,_,_,_,_,_,_),T_numList),findall(Tid,track(Tid,_,Tstation,_,_,_,_,_,_,_),T_IdList),findall(Tid,(is_uniq(T_num,T_numList),track(Tid,_,Tstation,T_num,_,_,_,_,_,_)),Uniq_id),member(Tid,T_IdList),/+member(Tid,Uniq_id)。

      利用Prolog內(nèi)部謂詞findall首先找出軌道信息表中同一個(gè)車(chē)站內(nèi)所有軌道號(hào)和序號(hào)分別至變量T_num_list,Id_list中,在找出軌道號(hào)T_num是T_num_list中的非重復(fù)項(xiàng)的軌道數(shù)據(jù)對(duì)應(yīng)的序號(hào)至變量Uniq_id中,再判斷如果序號(hào)是Id_list中的元素,但不是Uniq_id中的元素,則說(shuō)明該序號(hào)對(duì)應(yīng)的軌道號(hào)是重復(fù)項(xiàng)。執(zhí)行Check_T_num(Tid)可輸出同一車(chē)站內(nèi)軌道號(hào)重復(fù)的數(shù)據(jù)對(duì)應(yīng)的序號(hào)。

      規(guī)則5:一般情況一條軌道長(zhǎng)度存在上限

      check_T_max(Tid):- track(Tid,_,_,_,_,_,_,_,Tend_len),/+(Tend_len<10000000)。

      執(zhí)行check_T_max(Tid)可輸出軌道長(zhǎng)度不小于100 km的軌道數(shù)據(jù)序號(hào)。

      規(guī)則6:當(dāng)且僅當(dāng)應(yīng)答器類(lèi)型是“虛擬”,對(duì)應(yīng)用途為“XQ”。

      check_baliseUse(Bid):-balise(Bid,_,_,_,_,Btype,Buse,_,_,_),/+(Btype=’虛擬’->Buse=’XQ’,Buse=’XQ’->Btype=’虛擬’)。

      3.3.3 錯(cuò)誤輸出模型

      值域規(guī)則模型和邏輯規(guī)則模型可以驗(yàn)證數(shù)據(jù)事實(shí)是否滿足對(duì)應(yīng)規(guī)則,并輸出不滿足規(guī)則的數(shù)據(jù)序號(hào)。但每一條規(guī)則需在Prolog編譯器中逐條去詢問(wèn)后才會(huì)輸出驗(yàn)證結(jié)果,電子地圖基礎(chǔ)數(shù)據(jù)的值域規(guī)則和邏輯規(guī)則多達(dá)幾十至上百條,每次驗(yàn)證逐條詢問(wèn)規(guī)則效率太低。因此本文設(shè)計(jì)了錯(cuò)誤輸出模型,可將自動(dòng)輸出違反規(guī)則的數(shù)據(jù)信息至一個(gè)文檔,可供錯(cuò)誤修改。

      第一步:將每條規(guī)則對(duì)應(yīng)的錯(cuò)誤數(shù)據(jù)信息添加至error事實(shí);

      在每一條規(guī)則后添加”*-> assertz(error(message)).”,可將錯(cuò)誤數(shù)據(jù)信息添加至error事實(shí)中。 ”*->”是Prolog的內(nèi)部操作符,”A->B”等價(jià)于”if A then B”,assertz是Prolog內(nèi)部謂詞,是將插入當(dāng)前動(dòng)態(tài)數(shù)據(jù)庫(kù)中的同名謂詞的事實(shí)之后。例如:

      check_track_beginAttr(Tid):-track(Tid,_,_,_,_,Tbegin_attr,_,_,_,_,_),track_begin_attr(Track_begin_attr),/+member(T_begin_attr,Track_begin_attr),*-> assertz(error(Tid,T_begin_attr,'not in',Track_begin_attr))。

      執(zhí)行check_track_beginAttr規(guī)則后,error(X)事實(shí)中會(huì)增加軌道起點(diǎn)屬性不滿足值域規(guī)則的數(shù)據(jù)信息。

      第二步:設(shè)置一個(gè)總詢問(wèn)規(guī)則all_rule(_):-rule1(Tid);rule2(Bid); rule_n(Bid)。每次驗(yàn)證數(shù)據(jù)只需在編譯器詢問(wèn)一次all_rule(_),即可將所有規(guī)則對(duì)應(yīng)的錯(cuò)誤信息添加至error事實(shí)中。

      第三步:將所有error事實(shí)輸出至文檔中。

      save(FileName):-telling(Old),tell(FileName),listing(error),told,tell(Old)。

      其中save,telling,tell,listing,told,tell均是Prolog的內(nèi)部謂詞,save謂詞可將當(dāng)前內(nèi)存中的事實(shí)存入文件“Filename”中,listing(error)列出謂詞error中的所有子句。

      3.4 驗(yàn)證結(jié)果

      利用規(guī)則模型對(duì)實(shí)際線路電子地圖基礎(chǔ)數(shù)據(jù)進(jìn)行驗(yàn)證,本文采用GUN prolog解釋器作為驗(yàn)證工具,以某單線鐵路為例,線路全長(zhǎng)800多公里,共設(shè)有21個(gè)車(chē)站,電子地圖基礎(chǔ)數(shù)據(jù)共2 499條,提取的值域規(guī)則30條,邏輯規(guī)則54條。表2是數(shù)據(jù)驗(yàn)證結(jié)果。

      表2 規(guī)則模型驗(yàn)證結(jié)果

      驗(yàn)證結(jié)果可知,驗(yàn)證2 499條數(shù)據(jù),84條規(guī)則總耗時(shí)約2.6 s,相較于人工驗(yàn)證數(shù)據(jù),本文建立的驗(yàn)證模型及方法具有高效性。

      錯(cuò)誤驗(yàn)證率是模型監(jiān)測(cè)出的錯(cuò)誤數(shù)量占數(shù)據(jù)真實(shí)的錯(cuò)誤數(shù)量的百分比,其中真實(shí)的錯(cuò)誤人工添加所得,是由非模型設(shè)計(jì)人員對(duì)已確認(rèn)正確的數(shù)據(jù)添加錯(cuò)誤。2 599條數(shù)據(jù)的錯(cuò)誤驗(yàn)證率達(dá)94%,可見(jiàn)該驗(yàn)證模型和方法具有較高的準(zhǔn)確性。

      分析未被模型識(shí)別的錯(cuò)誤數(shù)據(jù),發(fā)現(xiàn)主要原因有兩方面:(1)數(shù)據(jù)邏輯關(guān)系獨(dú)立,例如車(chē)站信息表中TSRS設(shè)備序號(hào)與其他數(shù)據(jù)之間無(wú)規(guī)則約束,因此當(dāng)序號(hào)由“4”被錯(cuò)誤修改為“3”,規(guī)則模型無(wú)法檢測(cè)錯(cuò)誤;(2)多個(gè)錯(cuò)誤疊加,構(gòu)成數(shù)據(jù)巧合。例如同時(shí)修改軌道終點(diǎn)里程和位置值,使得修改后位置和里程之間的關(guān)系仍滿足規(guī)則。

      4 結(jié)束語(yǔ)

      針對(duì)電子地圖基礎(chǔ)數(shù)據(jù)校核當(dāng)前存在的問(wèn)題,提出基于Prolog的數(shù)據(jù)驗(yàn)證方法,深入分析基礎(chǔ)數(shù)據(jù)格式、內(nèi)容,通過(guò)相關(guān)規(guī)范以及領(lǐng)域?qū)I(yè)知識(shí),提取出基礎(chǔ)數(shù)據(jù)的驗(yàn)證規(guī)則,采用Prolog語(yǔ)言搭建數(shù)據(jù)事實(shí)和驗(yàn)證模型,以實(shí)際線路為例進(jìn)行試驗(yàn),證明了模型的可行性和有效性。

      猜你喜歡
      斷鏈謂詞電子地圖
      中國(guó)公豬站引種指南電子地圖
      “科技創(chuàng)新是人類(lèi)發(fā)展進(jìn)步的成果,沒(méi)有任何國(guó)家可以獨(dú)享,更不應(yīng)該利用科技優(yōu)勢(shì)打壓遏制別國(guó)發(fā)展”
      被遮蔽的邏輯謂詞
      ——論胡好對(duì)邏輯謂詞的誤讀
      黨項(xiàng)語(yǔ)謂詞前綴的分裂式
      西夏研究(2020年2期)2020-06-01 05:19:12
      變頻一體機(jī)斷鏈保護(hù)在刮板輸送機(jī)中的應(yīng)用分析
      基于Mapserver的增強(qiáng)現(xiàn)實(shí)電子地圖的設(shè)計(jì)與實(shí)現(xiàn)
      也談“語(yǔ)言是存在的家”——從語(yǔ)言的主詞與謂詞看存在的殊相與共相
      城鎮(zhèn)化進(jìn)程中農(nóng)民工流動(dòng)子女教育的斷鏈與銜接
      綜采工作面運(yùn)輸機(jī)斷鏈處理方法
      電子地圖在初中地理教學(xué)中的應(yīng)用實(shí)踐
      江津市| 图片| 张掖市| 长沙市| 景东| 永宁县| 太湖县| 德州市| 江川县| 黔江区| 长沙县| 霍山县| 栾城县| 屯门区| 夏邑县| 当涂县| 泗阳县| 安图县| 扎鲁特旗| 安图县| 丹阳市| 惠来县| 漳浦县| 全州县| 上虞市| 镇赉县| 海兴县| 华坪县| 清远市| 昂仁县| 龙海市| 鄂尔多斯市| 屯昌县| 秦皇岛市| 梧州市| 石柱| 名山县| 仲巴县| 清水县| 德钦县| 镇巴县|