1樓:匿名使用者
開發一個決策支援系統,是一項費時費力的艱鉅工作。決策支援系統的推廣,必須
有一個良好的開發工具,即要求提供一套語言體系將資料部件、模型部件和對話部件三者
有機地結合起來。雖然這三個部件各自有一套比較成熟或逐步成熟的語言體系支援,但目
前還沒有一種語言能將這三者所需要的功能都有機地結合在一起。
傳統的演算法語言如fortran、pascal等很適合數學模型的實現,但不支
持對資料庫的操作;各種dbms語言適合資料庫的管理和操作,但不適宜數值運算。這
些語言,如果做為開發工具的主要語言而不加改進,是很難承擔重任的。
在分析決策支援系統的具體需求和現有語言的優缺點的基礎上,我們研製了一個開發
工具:gfkd-dss(guofangkeda-decision suppor
t system)決策支援系統開發工具,設計了一套計算機語言體系,把數值計算、
資料庫操作、模型執行控制和人機互動功能融為一體,根本上滿足了開發決策支援系統的
需要。利用這個工具開發一個對於具體問題的決策支援系統,首先需要進行問題分解,把一
個大而複雜的問題分解成若干個較小且容易解決的子問題。對各子問題選用相應的模型來
求解,並建立所需的資料庫。這些模型應該是廣義的模型,可以是數學模型、智慧推理模
型,也可以是繪圖模型和報表模型等。對各模型可以選用最合適的語言編寫實現,數學模
型用pascal、fortran語言編寫,智慧模型用prolog、lisp語言
編寫,報表模型用foxbase語言編寫。然後,在解決了這些子問題的基礎上,利用
工具提供的語言描述這些子問題的相互關係,如所需引數、所用資料庫、執行方式和次序
等等,經過編譯,就生成了對於這個特定問題的決策支援系統。
一、系統結構和dss語言
1.系統結構圖
gfkd-dss決策支援系統開發工具的結構見圖1。系統根據使用人員和開發人
員的特點、要求不同,提供兩個入口,分別供決策使用者和開發人員(包括管理人員)使用
。決策使用者的入口為執行控制系統,完成對dss程式(該程式描述了該決策問題的求
解方法)的目標**解釋執行。在解釋執行的過程中實現對模型的呼叫、對多個模型的組
合執行控制、對資料庫中資料的存取等。開發(管理)人員的入口為管理系統,由dss
管理語言實現對模型庫和資料庫的管理和維護工作,其中包括對模型程式的開發(編輯、
編譯)支援等。兩系統的簡介如下:
(1)執行控制系統
這個系統直接面對使用人員(dss使用者)。它由dss核心語言的解釋執行部分、
模型的驅動執行部分和資料庫操作支援部分等組成。
解釋執行部分對dss核心語言程式經編譯後產生的目標**進行逐條解釋,完成數
值計算、邏輯運算、人機互動等功能,當遇到模型的執行語句時,就轉交模型的驅動執行
部分執行。
在本工具系統中,模型的可執行部分以帶.exe或.com字尾的可執行檔案的形
式存放於磁碟上,對模型的一次執行相當於對給定引數的子程式的一次呼叫。驅動執行部
分根據模型的名稱,檢索字典庫,查出模型的執行程式名稱,利用ms-dos作業系統
對程序的排程功能把模型的執行程式作為一個子程序執行。
資料庫操作支援部分根據模型程序的要求,從資料庫中讀取資料,通過ms-dos
傳送給模型程序或把模型程序的資料存入資料庫中。為實現這些功能,設定了一組虛擬的
裝置檔案,這些虛擬檔案是模型程序和資料庫的介面。
(2)管理系統
管理系統是由模型庫管理系統、資料庫管理系統和對模型檔案的處理三部分組成。
模型庫管理系統完成對模型字典庫和相應的模型檔案庫(模型源程式檔案和目標程式
檔案)的管理。這是由模型庫管理語言來完成的。
資料庫管理系統是dbaseⅲ管理系統,該系統已納入我們dss工具的管理之下
。對模型檔案的處理是實現對模型源程式的編輯和編譯,形成模型目標程式。
2.dss語言
gfkd-dss工具的dss語言稱為核心語言。
使用者(開發人員)使用核心語言編寫實際問題的決策支援系統,完成對模型目標程式
執行的控制、對資料庫中資料的存取以及人機對話等功能。
本系統核心語言由三個部(division)組成,總體結構為:
·io division(描述本dss程式所使用的資料庫、控制變數)
·using division(描述本程式中呼叫的各個模型中使用的資料庫、
控制變數)
·program division(決策問題dss程式的處理和對模型控制運
行的具體表達)
在io部和using部中均分為三個節(section)和有關語句。
program部由說明部分和語句體兩部分組成。
說明部分包括對標號、型別、變數、過程及函式的說明語句。
語句體中有多種型別語句,即:
(1)程式基本語句
賦值語句、過程呼叫語句、goto、if、case、for、repeat、w
hile、with等語句。
(2)資料操縱語句
「資料庫符號」表示為:
#[庫編號]([記錄編號,]欄位編號)
讀取資料庫資料:
初等量:=<資料庫符號>
存入資料庫資料:
<資料庫符號>:=<表示式>
(3)模型執行語句
run(「模型名」)
(4)執行作業系統命令語句
system(<dos>)
(5)螢幕聲音類語句
crtmode等語句├├
二、模型庫和模型庫管理系統
1.模型庫
模型庫由模型字典庫和對應的模型檔案庫所組成。
(1)模型字典庫
模型字典庫根據使用者的需要,按性質進行分類。
每個字典庫又包括若干模型。每個模型在字典庫上佔有一個記錄。模型字典庫的資料
結構是關係型結構,包含屬性專案為:
模型名、源程式名、執行程式名、幫助檔名、資料描述檔名等等。
不同的模型可以利用相同的標準方法(模型)程式。由於解決的問題不一樣,資料量
大小也不一樣,我們應該把它們看成兩個模型,模型名不同,它們有兩個不同模型記錄,
但兩個記錄中可以有相同的源程式名和執行程式名。
(2)模型檔案庫
所有模型的模型檔案分別存入不同的檔案庫中。各個模型檔案分別在不同的子目錄下
。各個目錄下的模型檔案庫為;
/ecr 各模型的執行程式檔案庫
/prg 各模型的源程式檔案庫
/iod 各模型的資料描述檔案庫
/hlp各模型的幫助檔案庫
說明:(1)源程式檔案庫中存放的是所有模型以各種語言編寫的源程式檔案。檔名的後
綴為.pas、.for、.bas、.prg、.dss,分別表示用不同語言編寫的
源程式。其中.dss是用我們系統提供的dss語言編寫的模型程式。
(2)目標(執行)程式檔案庫中存放的是所有模型的可執行程式檔案。以.com
或.exe為字尾的程式檔案。
(3)資料描述檔案庫中存放每個模型所需要的資料檔案(資料庫檔案或正文檔案)
的說明。
(4)幫助檔案庫中存放每個模型的技術說明。
2.模型庫管理系統(mbms)
對模型庫的管理主要包括對模型字典庫的管理和相應子目錄下模型檔案的管理。它的
功能由模型庫管理語言和對模型檔案處理的外部命令來完成。
(1)模型庫管理語言(內部命令)
管理語言主要完成對模型庫的管理和對模型開發的支援等工作。對模型庫的管理不外
乎建立、刪除、檢索等工作,對模型開發的支援有編輯原始檔和呼叫相應語言的編譯器進
行編譯等功能。
對模型字典庫有一套完整的管理語言。
(2)對模型檔案的處理(外部命令)
模型檔案主要是模型程式檔案。一種是源程式,方便模型的編制、修改和閱讀;另一
種是目標程式,實現對模型的執行。對模型檔案的處理是dss管理系統的一個特定功能
。本dss系統已經把作業系統中所提供的編輯程式,各種語言的編譯程式以及連線程式
都納入在dss系統的控制之下。
三、資料庫、資料庫管理系統及資料傳輸
本系統中用到的資料都存放在資料庫中,它們都是關係型結構,應用微機上的dba
seⅲ資料庫。
資料庫由資料庫結構和資料記錄所組成。資料庫的關係結構和陣列有很方便的對應關
系,資料庫的欄位對應於陣列的列,資料庫的記錄對應於陣列的行。本系統中經常利用這
利對應關係。
資料庫比陣列更能明確地表示欄位項的含義和各記錄的內容,因此,它更面向決策用
戶。對dss系統來說,用資料庫存放資料是一個重要的特點(dss系統經常要對資料
庫中某個資料進行修改,這就比資料以正文檔案形式存放時,對某項資料的修改更明確和
方便)。
由於本系統中資料庫的格式為.dbf格式,所以在系統中把dbaseⅲ系統納入
我們的控制之下,做為本系統的資料庫管理系統(dbms),完成諸如資料庫的建立、
刪除、資料錄入等維護、管理工作。
由於dbase ⅲ的規模龐大,且又是一個封閉型的系統,模型程式不可能或很難
通過該dbms對資料庫中的資料進行存取,所以模型程式在執行時不通過dbase
ⅲ,而在執行控制系統的幫助下直接對資料庫中的資料進行存取。這樣,dbase ⅲ
系統的用途便主要側重於對資料庫的維護、管理等工作。
為給使用各種語言編寫的模型以方便、統一的方式存取資料庫中的資料,且又不對各
種語言的語法和編譯程式作修改(這樣導致不通用性和極大的工作量),考慮各種語言的
共性和ms-dos作業系統的特點,決定採用檔案介面作為資料傳送的媒介。
在本系統中,設定了若干個名稱為sysdbf*的虛擬檔案(即ms-dos的設
備檔案),一個虛擬檔案與一個資料庫相對應(這種對應關係可由程式指定)。從模型的
角度來看,從這些虛擬檔案中讀資料,就相當於從資料庫中取出資料;向這些虛擬檔案中
寫入資料,就相當於把資料存到資料庫中。由於各種高階語言都具有檔案讀寫功能,所以
虛擬檔案就成為統一的介面形式。
這些虛擬檔案安裝到ms-dos的核心(利用系統的初始配置功能),由執行控制
系統提供輸入/輸出驅動程式,這些介面是用組合語言完成的,通過中斷呼叫(a0h)
來傳遞資訊。
模型存取資料命令(由各模型程式使用):
·cread:模型從dss程式中讀取控制變數值
·cwrite:模型把控制變數值回送給dss程式
·mread:模型從資料庫中讀指定位置的資料到系統緩衝區
·mwrite:模型將系統緩衝區的資料送入資料庫的指定位置
……四、dss核心語言的編譯實現
在本系統中,開發人員使用核心語言編寫dss程式,構成實際的dss系統。從結
構上來說,核心語言由三個部組成,它們分別是dss主程式使用的資料庫映象定義部(
io部)、主程式使用模型及模型所用資料庫映象的定義部(using部)及主程式的
執行部分——語句部(program部)。
前兩個部(io部和using部)主要是說明性的,每個部又由若干節(sect
ion)組成。這兩個部的編譯結果是生成一個字尾為.str的結構映象檔案(見圖2
),其中記錄了映象的資料結構,以供執行控制系統在解釋目標**時參考。
program部是程式的執行部分,它的編譯結果是生成一個字尾為.run的目
標**件,可由執行控制系統解釋執行。
五、gfkd dss工具的操作命令
本工具系統的主要操作命令彙總如下:
1.管理系統命令
·mcommand:從作業系統進入工具管理系統
·modify:編輯模型程式、dss程式
·compile:編譯模型源程式
·help:求助命令
·其他管理命令
2.核心語言編譯系統命令
·dssc:編譯dss源程式
·codeana:以文字方式顯示dss程式的目標**(在.run檔案中)
·libana:以文字方式顯示dss程式io部和using部的資料結構映象
(在.str檔案中)
3.執行控制系統命令;dssr
六、決策支援系統的開發
對任一個領域的決策問題,在分析了所需要呼叫的模型、所要使用的資料庫後,對模
型用最合適的語言編寫程式,並加入模型存取資料庫命令,編譯成目標程式,存入相應的
子目錄下,在模型字典庫中建立該模型的記錄。在dbase ⅲ下建立資料庫的結構並
輸入資料。在確定多個模型之間的聯結方式以及需要安排的人機對話方式以後,把決策問
題用核心語言寫成dss程式,再編譯解釋執行之。
該dss程式和模型庫、資料庫以及支援它們執行的gfkd-dss系統,它們組
合的有機整體就形成了特定問題的決策支援系統。
dss程式中包含直接存取資料庫操作、呼叫模型目標程式執行、資料處理和人機對
話等功能。dss程式的執行結果也就是決策問題的決策結果。
模型程式包括對資料庫的存取和模型執行,它的執行也產生後果,這個結果有的是為
dss程式服務的,有的是為決策使用者服務的。
任一種語言(pascal、fortran等)編寫的模型程式並不支援對資料庫
中資料進行操作。為解決該問題,需要對已編寫好的程式加入dss工具提供的模型存取
資料庫命令(如cread、cwrite、mread…等)。在進行模型程式編譯時
,就需要增加外部過程來實現模型目標程式和存取資料庫命令(目標程式)之間的連線,
從而完成模型與執行控制系統的介面。
七、gfkd-dss工具的應用
本工具已完成了兩個實用系統:
1.松毛蟲智慧**系統
由南京林業大學提出問題、選擇**數學模型、整理了大量的**知識和林場資料,
由我們用gfkd-dss工具生成了該系統。該系統由三大部分組成:專家諮詢(70
0多條知識)、模型**(12個**模型)、資料包表(有42個林場資料庫)。該系
統是一個大型系統,全部程式4mb。
2.縣級規劃實施反饋決策支援系統
該系統具有系統分析、戰略研究和計劃決策三步決策模式,利用gfkd-dss工
具研製該系統,縮短了研製時間50%,同時大大提高了系統的技術水平和總體效果
linux作業系統和windows系統中的伺服器相比較,它的
人在旅途 我列下提綱,你自己找資料做下擴充 1.開源 質量 安全性高,從破解xp和破解linux難度上就能看出來 辯論時這個是重點,推薦看看開源聖經 大教堂與集市 2.自由,可自己定製,從100多k到幾十個g的linux都存在 3.linux的網路效能好,誕生於網路也依託網路發展,適應未來的發展 4...
linu作業系統和windows的區別
區別很簡單理解,linux是給開發者或者那些死宅以及愛折騰電腦的人使用的。windows適合大眾 老男孩教育 linux是類unix的作業系統,比windows系統更穩定 安全,現在超級計算機都是在linux系統上,應用是非常安全的,但是大部分的軟體開發商沒有給予應有的關注,不過隨著linux發展,...
linux 和windows哪個作業系統好
同樣作為作業系統,linux與windows相比主要的優勢和劣勢有哪些?同樣作為作業系統,linux與windows相比主要的優勢和劣勢有哪些?做為公司的管理人員,我準備進行採購。對於以linux作為作業系統,一直是一個討論中的問題,這取決於你問誰以及他們的建議,它的優劣可以很容易的顯現出來 優勢。...