欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種可視化圖形程序拓撲排序方法

文檔序號:6401006閱讀:442來源:國知局
專利名稱:一種可視化圖形程序拓撲排序方法
技術領域
本發(fā)明涉及可視化編程領域圖形化程序的拓撲排序。
背景技術
首先介紹拓撲排序中的幾個基本概念,可同時結合圖1a和圖1b所示:拓撲排序:由某個集合上的一個偏序得到該集合上的一個全序,這個操作稱之為拓撲排序。在代碼生成中指根據(jù)符號的連接關系,決定符號的調(diào)用順序。偏序:若集合X上的關系R是自反的、反對稱的和傳遞的,則稱R是集合X上的偏序關系。全序:設R是集合X上的偏序,如果對每個x,y G X必有xR y或者yRx,則稱R是集合X上的全序關系。直觀地看,偏序指集合中僅有部分成員之間可比較,而全序指集合中全體成員可比較。AOV-網(wǎng):圖中頂點表不程序符號塊(活動),有向邊(弧)表不先決條件,如符號a是b的先決條件,則圖中有弧〈a, b>。這種用頂點表示活動,用弧表示活動間優(yōu)先關系的有向圖稱為頂點表示活動的網(wǎng)(Activity On Vertex NetWork),簡稱AOV-網(wǎng)。在網(wǎng)中,若從頂點a到頂點b有一條有向路徑,則a是b的前驅(qū),b是a的后繼。若<a,b>是網(wǎng)中一條弧,則a是b的直接前驅(qū),b是a的直接后繼??梢暬幊淌且环N面向?qū)ο蟮膱D形化軟件開發(fā)方法,為了實現(xiàn)應用功能,用各種的編程符號搭建程序模型和配置數(shù)據(jù)流,用原理圖表示程序語言。圖形化程序的符號執(zhí)行順序是代碼生成的關鍵技術,已經(jīng)公開的排序算法有:全部人工指定順序、或者完全根據(jù)位置坐標來排序。人工指定順序存在的問題是當可視化頁面數(shù)量很多時,設置維護的工作量很大,例如在編程中間插入一個符號時,需要手工調(diào)整后續(xù)符號的排序值。按照位置坐標的方法,是把可視化頁面X坐標劃分成幾個區(qū)間,在單個區(qū)間內(nèi)按照從上到下的順序輸出,這種方法的問題是沒有考慮到兩個區(qū)間內(nèi)符號的數(shù)據(jù)流依賴關系,而且同一個區(qū)間內(nèi)只能畫一排垂直符號,不能繪制平行符號,單頁程序的符號數(shù)量有限,單個功能往往需要拆分為多個頁面實現(xiàn)。在AOV網(wǎng)中,不應該出現(xiàn)有向環(huán),這意味著某項活動應以自己為先決條件,而對程序的數(shù)據(jù)流圖來說,則表明存在一個死循環(huán)。目前還缺乏針對可視化閉環(huán)圖形程序的有效合理的智能解決方法,為此設計了一個破環(huán)符號,由程序編輯人員指定破環(huán)點?;谏鲜龇治?,本發(fā)明人針對現(xiàn)有圖形程序的拓撲排序方法的不足之處進行深入研究,本案由此產(chǎn)生。

發(fā)明內(nèi)容
本發(fā)明的目的,在于提供一種可視化圖形程序拓撲排序方法,其可減少人工干預過程,解決閉環(huán)死鎖依賴,以數(shù)據(jù)流依賴關系形成執(zhí)行分支,提高程序運行效率。
為了達成上述目的,本發(fā)明的解決方案是:一種可視化圖形程序拓撲排序方法,包括如下三部分:第一部分,先將符號按照先橫向X坐標進行升序排列,X坐標相同的按縱向I坐標升序排列,即按照從上到下、從左到右的Z字型掃描順序,形成初步順序,按照坐標排序符合可視化頁面程序的機器視覺;按照位置坐標進行初次排序,可以解決當兩個符號都同時滿足出棧條件時(0輸入點或所有輸入點都已知),那個符號優(yōu)先自動出棧的問題。由于可視化圖形程序的符號存儲是按照先繪制先存儲的原則,按照位置坐標的排序可以解決符號先繪制、后刪除、再繪制時存儲順序變化導致排序結果不同的問題;第二部分,設計閉環(huán)圖形網(wǎng)絡中的破環(huán)符號BreakLoop,把與閉環(huán)符號輸出點相連接的后繼符號的輸入點置為已知,可去除死鎖依賴;針對存在反饋閉環(huán)的圖形程序,設計了破環(huán)符號,該符號為單輸入單輸出,變量類型可設置,輸出值等于上一個周期的輸入點值,把與破環(huán)符號輸出點相連接的后繼符號的輸入點自動置為已知狀態(tài),從而去除死鎖依賴,所有的破環(huán)符號的代碼執(zhí)行放在最后,提供了一種簡單直觀的圖形化設置破環(huán)的方法,提高了靈活性;第三部分,按照深度優(yōu)先和數(shù)據(jù)流依賴關系進行拓撲排序,定義拓撲排序出棧的規(guī)則,當一個符號沒有輸入點或者所有輸入點都處于已知狀態(tài)時,該符號可以置為已知狀態(tài)優(yōu)先出棧,并置和該符號輸出點相連接的后繼符號的輸入點已知;并且根據(jù)輸入輸出點相連接的數(shù)據(jù)流依賴關系,優(yōu)先判斷緊隨該符號的后繼符號狀態(tài)是否已知,把有數(shù)據(jù)流依賴關系的符號按分支遍歷排序,這樣形成的運行代碼效率高,提高了 CPU的扇入扇出命中率;根據(jù)輸入輸出相連接的數(shù)據(jù)流依賴關系,形成有向無環(huán)圖,根據(jù)依賴關系形成符號的前驅(qū)后繼分支,然后按照深度優(yōu)先的遍歷原則,形成符號的執(zhí)行順序。采用上述方案后,本發(fā)明先以位置視覺進行初步排序,然后針對閉環(huán)進行檢測和破環(huán)處理,最后按照數(shù)據(jù)流依賴關系形成運行效率高的符號執(zhí)行調(diào)用順序,減少了人工設置的工作量,在多個特高壓直流保護控制的可視化程序中進行了應用,取得較好的應用效果。


圖1a是拓撲排序的偏序關系不意圖;圖1b是拓撲排序的全序關系不意圖;圖2是本發(fā)明的流程圖;圖3是破壞符號Breakloop的示意圖;圖4是存在閉環(huán)的排序前圖形程序示意圖;圖5是排序后執(zhí)行順序不意圖。
具體實施例方式以下將結合附圖,對本發(fā)明的技術方案進行詳細說明。如圖2所示,本發(fā)明提供一種可視化圖形程序拓撲排序方法,包括如下四個部分:第一部分,基于位置的初步排序過程,導入讀取可視化頁面文件,形成符號列表,記錄符號的頂點坐標,包括輸入塊、常量塊、輸出塊和功能塊,其中,輸入塊和常量塊是0輸A I輸出的圖形符號,在排序中該符號已經(jīng)滿足狀態(tài)已知的條件,可優(yōu)先出棧。可視化頁面的坐標起點設置為左上角,X坐標從左到右遞增,y坐標從上到下遞增,按照插入排序算法,先將符號按照X坐標進行升序排序,當符號的X坐標相同時,按照符號的I坐標升序排列,實現(xiàn)圖形符號的按照從上到下、從左到右的快速初步排序,符合可視化圖形程序的機器視覺和圖形程序開發(fā)人員的主觀意愿。第二部分,可視化頁面程序的閉環(huán)檢測和破壞處理。利用符號間輸入輸出點的連接線信息形成符號的前驅(qū)鏈表和后繼鏈表,通過某符號的后續(xù)鏈表遞歸遍歷,如果可回溯到源符號,則存在閉環(huán),如圖3所示,若閉環(huán)網(wǎng)絡中沒有BreakLoop符號,則提示報錯,退出排序過程。如果存在BreakLoop符號,定義如下處理原則:I)和破環(huán)符號輸出點相連接的后繼符號的輸入點自動置為已知狀態(tài),解除輸入點和破環(huán)符號輸出的邏輯依賴;2)從排序符號鏈表中刪除破環(huán)符號,把破環(huán)符號的執(zhí)行順序放在最后;3)符號為單輸入單輸出,變量類型可設置,輸出值等于上一個周期的輸入點值,符合自動控制的反饋離散化計算原理。按照數(shù)據(jù)流依賴關系,形成符號的輸入輸出依賴鏈表。符號之間的輸入輸出通過連接線連接,連接線記錄了連接起始符號的ID和起始輸出點名字、連接終端符號的ID和終端輸入點名字,每個符號有前驅(qū)鏈表和后繼鏈表。前驅(qū)鏈表記錄的是每個輸入點的相連接的源輸出符號,后繼鏈表記錄的是和輸出點相連接的終端符號。鏈表記錄符號指針索引,形成了基于數(shù)據(jù)流的拓撲圖,可以通過后繼鏈表,遍歷數(shù)據(jù)流分支,可以通過前驅(qū)鏈表,回溯到源端頂點。如果某符號的輸入點未連接,則該符號不可排序,退出排序過程。第三部分,基于數(shù)據(jù)流的二次排序處理,將破環(huán)處理后的符號列表形成AOV網(wǎng),按照數(shù)據(jù)流依賴關系形成前驅(qū)鏈表和后繼鏈表,如果符號的輸入點未連接,則給出錯誤提示,退出排序過程。拓撲排序規(guī)則:1)在AOV圖中以深度優(yōu)先的法則選一個沒有前驅(qū)的頂點并輸出;2)從圖中刪除該頂點和所有以它為尾的弧。檢測并處理閉環(huán),將拓撲圖轉(zhuǎn)換為有向無環(huán)AOV網(wǎng)。通過符號的后繼鏈表遞歸遍歷,如果可回溯到源符號,則表明圖形程序存在閉環(huán),當存在閉環(huán)并且沒有BreakLoop時,給出錯誤提示,退出排序過程。如果閉環(huán)存在BreakLoop時,貝U先把BreakLoop放到鏈表尾部,然后遍歷BreakLoop的后繼鏈表,把后繼符號相連接的輸入點直為已知,如圖4所不,和BreakLoop.0ut相連接的OR.1n2、N0T.1n、MAX3.1nl、MAX2.1ni共4個輸入點可置為狀態(tài)已知。第四部分,依次遍歷判斷符號列表,一個符號能否執(zhí)行計算功能即狀態(tài)已知的判決條件:這個符號所有輸入變量的來源(其它符號的輸出)已經(jīng)有計算結果,即所有輸入變量已知或者沒有輸入變量(例如常量塊)。當符號狀態(tài)已知時,依次遞歸遍歷每個輸出點的后繼,判斷緊密相連的后繼符號是否狀態(tài)已知,如果狀態(tài)已知,繼續(xù)遍歷后繼,如果狀態(tài)未知,則返回遍歷前驅(qū)符號。按照上述原則循環(huán)遍歷,直至所有符號的執(zhí)行順序都設置。按照深度優(yōu)先遍歷順序,判斷符號的輸入點狀態(tài),將滿足條件的符號放到可執(zhí)行順序鏈表中。如果符號沒有輸入點或者所有輸入點都已知,則該符號狀態(tài)置為已知,優(yōu)先出棧。如圖5所示,符號的執(zhí)行順序如下:OR、NOT、MAX3、MAX2、ABS、BreakLoop。以上實施例僅為說明本發(fā)明的技術思想,不能以此限定本發(fā)明的保護范圍,凡是按照本發(fā)明提出的技術思想,在技術方案基礎上所做的任何改動,均落入本發(fā)明保護范圍之內(nèi)。
權利要求
1.一種可視化圖形程序拓撲排序方法,其特征在于包括如下三部分: 第一部分,先將符號按照先橫向X坐標進行升序排列,X坐標相同的按縱向I坐標升序排列,形成初步順序; 第二部分,設計閉環(huán)圖形網(wǎng)絡中的破環(huán)符號BreakLoop,把與閉環(huán)符號輸出點相連接的后繼符號的輸入點置為已知; 第三部分,按照深度優(yōu)先和數(shù)據(jù)流依賴關系進行拓撲排序,定義拓撲排序出棧的規(guī)則,當一個符號沒有輸入點或者所有輸入點都處于已知狀態(tài)時,該符號置為已知狀態(tài)優(yōu)先出棧,并置和該符號輸出點相連接的后繼符號的輸入點已知;并且根據(jù)輸入輸出點相連接的數(shù)據(jù)流依賴關系,優(yōu)先判斷緊隨該符號的后繼符號狀態(tài)是否已知,把有數(shù)據(jù)流依賴關系的符號按分支遍歷排序。
2.如權利要求1所述的一種可視化圖形程序拓撲排序方法,其特征在于:所述第三部分中,根據(jù)輸入輸出相連接的數(shù)據(jù)流依賴關系,形成有向無環(huán)圖,根據(jù)依賴關系形成符號的前驅(qū)后繼分支,然后按照深度優(yōu)先的遍歷原則,形成符號的執(zhí)行順序。
全文摘要
本發(fā)明公開一種可視化圖形程序拓撲排序方法,先將符號按照先橫向x坐標進行升序排列,x坐標相同的按縱向y坐標升序排列,形成初步順序;設計閉環(huán)圖形網(wǎng)絡中的破環(huán)符號,把與閉環(huán)符號輸出點相連接的后繼符號的輸入點置為已知;按照深度優(yōu)先和數(shù)據(jù)流依賴關系進行拓撲排序,定義拓撲排序出棧的規(guī)則;并且根據(jù)輸入輸出點相連接的數(shù)據(jù)流依賴關系,優(yōu)先判斷緊隨該符號的后繼符號狀態(tài)是否已知,把有數(shù)據(jù)流依賴關系的符號按分支遍歷排序。此方法可減少人工干預過程,解決閉環(huán)死鎖依賴,以數(shù)據(jù)流依賴關系形成執(zhí)行分支,提高程序運行效率。
文檔編號G06F17/30GK103207903SQ20131010132
公開日2013年7月17日 申請日期2013年3月26日 優(yōu)先權日2013年3月26日
發(fā)明者馮亞東, 陳宏君, 劉克金, 曹冬明, 王國棟, 周強, 邱大為 申請人:南京南瑞繼保電氣有限公司, 南京南瑞繼保工程技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
贺兰县| 公安县| 遵义县| 邯郸市| 墨竹工卡县| 左权县| 丹棱县| 峨眉山市| 卓资县| 平昌县| 集贤县| 高阳县| 卓尼县| 普兰店市| 梁平县| 额敏县| 常山县| 南溪县| 武邑县| 孟连| 木兰县| 土默特左旗| 明水县| 藁城市| 嘉黎县| 石门县| 海兴县| 岳阳县| 阿坝| 尚义县| 车险| 黄浦区| 无极县| 嵩明县| 禹城市| 漾濞| 京山县| 武邑县| 东莞市| 固阳县| 南陵县|