前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的編號規則主題范文,僅供參考,歡迎閱讀并收藏。
【關鍵詞】柴油機性能指標 柴油機型號 油 燃油 扭距 功率 轉速
柴油機在農田作業中的作用越來越大,在我縣使用家用柴油機和拖拉機進行農田作業的農戶已經越來越多,農民已經完全擺脫了日益繁重的農業生產勞動而走進了農業機械化時代。對于廣大農機用戶來說,要想使用好柴油機,使之更好地服務于農業生產就一定要充分了解柴油機的主要性能指標及其柴油機的型號編制,以便在購買和使用過程中能及時辨別,適時維修。
一、農用柴油機主要性能指標
柴油機的主要性能指標包含的內容很多,但柴油機使用性能的好壞,主要用于動力性指標和經濟性指標來衡量。
1.柴油機動力性指標主要指扭距、功率和轉速。(1)扭距。柴油機飛輪上,對外輸出的旋轉力矩叫有益扭矩,簡稱扭矩。它是燃油在氣缸內燃燒產生的熱能使氣體膨脹所產生的,除了克服機器內部各零部件的摩擦阻力和驅動各輔助裝置(比如油泵、發電機等等)之外,最后傳到飛輪上可以供柴油機對外使用的能量。在實際工作中,柴油機飛輪輸出的扭矩與外界作用到飛輪上的阻力矩(外界負荷)相等。(2)功率。柴油機在單位時間內對外所作的功,叫做有效功率,簡稱功率。有效功率是發動機最主要的性能指標之一。它表明了一臺發動機在單位時間內對外作功能力的大小和使用范圍。按照國家標準(簡稱國標)規定的功率值,稱之為標定功率。國際規定,發動機的標定功率,按照用途和使用特點分為以下五種:一是15分鐘功率。為發動機允許連續運轉15分鐘時的最大有效功率,適用于需要在短時間內有良好超負荷和加速性能的汽車、摩托車使用的發動機;二是1小時功率。為發動機允許連續運轉1小時時的最大有效功率,適用于需要有一定功率儲備,以克服負荷突然增加的輪式拖拉機、船舶用發動機等等;三是12小時功率。為發動機允許連續運轉12小時時的最大有效功率,適用于為需要在12小時內連續運轉又需要充分發揮功率的拖拉機、農用排灌機械及工程機械用發動機等等;四是持續功率。為發動機允許長期連續運轉的最大有效功率,適用于需要長期連續運轉的農用排灌機械、船舶、電站用發動機等等;五是專業標準功率。根據本行業機的特點和要求而規定的其他種類的標定功率。(3)轉速。轉速是指發動機曲軸或飛輪每分鐘旋轉的圈數,單位為轉/分。在缸徑、行程等有關參數相同的條件下,轉數越高,作功次數越多,發出的功率也越大。在柴油機的使用中,應當使轉速達到標定轉速,否則,柴油機發出的功率就達不到標定值。
2.柴油機經濟性指標主要指燃油和油的消耗率。(1)燃油消耗率。在1小時內發動機所消耗的燃油量(對于柴油機來說即為消耗的柴油量),稱為小時耗油量,計量單位是千克/小時。由于發動機功率不同,每種型號的發動機,其小時耗油量也就不同。所以,不能用小時耗油量作為不同發動機經濟性能評定和比較的參數,而要用燃油率來表示。柴油機發出每單位有效功率,在1小時內所消耗的柴油量,稱為有效燃油消耗率,單位是克/(千瓦?時)[克/(馬力?時)]。即每發出1千瓦(馬力)的功率,在1小時內所消耗的油量(克)越低,則柴油機的經濟性能越好。耗油率和小時耗油量有如下關系:耗油率=小時耗油量/(功率×1000)[克/(千瓦?時)或克/(馬力?時)。柴油機通常在使用說明書中,標明12小時功率時的耗油率。(2)油消耗率。油消耗率也是評價柴油機經濟性能的一個重要指標,其計算方法與燃油消耗率相同,也是[克/(千瓦?時)或克/(馬力?時)。油消耗率高時,不僅浪費能源,而且也會對柴油機工作產生不良影響。
還需要注意:非常動力性指標和經濟性指標,雖然是評價一臺柴油機的主要性能指標,但衡量柴油機的性能時,還要考慮其可靠性(指在規定條件下和規定時間內,實現規定功能的能力)和有效性。有效性包括無故障性(指在一定時期內,不出故障的性能)、維修性(指適用進行技術維護和修理來預防和消除障礙的性能)、保持性(指在一定的儲運期后,保持規功能的性能)和耐久性(指使用期限和技術壽命)。另外,還要考慮啟動難易程度及成本等等。
二、柴油機型號編制規則
柴油機發電機組是以柴油機作動力,驅動同步交流發電機而發電的電源設備。為了便于生產管理和使用,國家對柴油機發電機組的名稱和型號編制方法做了統一規定,柴油發電機組的型號,為了便于柴油機發動機的生產、管理和使用,國家標準(GB725――1991)“內燃機產品名稱和型號編制規則”規定,發動機型號的編制應當能夠反映它的主要結構及其性能。國家標準規定的發動機型號的表示方法、排列順序及其各符號所代表的意義是各不相同的。舉例如下:(1)165F型柴油機―表示單缸、四行程、缸徑65毫米、風冷、通用型;(2)R175A型柴油機―表示單缸、四行程、缸徑75毫米、風冷、通用型(R為175產品換代符號,A為系列產品改進的區分符號);R175ND ―表示單缸,四沖程,缸徑 75mm ,凝氣冷卻,發電用 (R 含義同上 );X4105 ―表示四缸,四沖程,缸徑 105mm ,水冷 ( 這里取 X 表示系列代號 ) ;495T ―表示四缸,四沖程,缸徑 95mm ,水冷,拖拉機用。(3)S195型柴油機―表示單缸、四行程、缸徑95毫米、風冷、通用型,S表示采用雙軸平衡系統;(4)185N型柴油機―表示單缸、四行程、缸徑85毫米、凝氣風冷、通用型。
第二條、發行人編制財務報表附注時,除應遵循中國證券監督管理委員會(以下簡稱中國證監會)有關財務報表附注的一般規定外,還應遵循本規定的要求。
第三條、發行人在主要會計政策中披露如下內容:
(一)在合并會計報表編制方法中說明對合作開發項目編制合并報表時采用的方法。
(二)在存貨的核算方法中增加披露:
開發用土地的核算方法;
披露公共配套設施費用的核算方法;
披露出租開發產品、周轉房的攤銷方法;
對不同類別存貨(如:庫存設備、開發成本、開發產品、出租開發產品、周轉房)計提跌價準備的比例及依據。
(三)披露維修基金的核算方法。
(四)披露質量保證金的核算方法。
(五)披露各類型業務收入的確認原則及方法:
房地產銷售收入的確認原則及方法。應根據行業特點確定具體的確認標準。對采用分期收款方式銷售、出售自用房屋、代建房屋和工程業務,應單獨披露有關收入確認方法。
出租物業收入的確認原則及方法。
建筑施工收入的確認原則及方法。
物業管理收入的確認原則及方法。
其他業務收入的確認原則及方法。
(六)為房地產開發項目借入資金所發生的利息及有關費用的會計處理方法。
第四條、發行人在存貨項目注釋應披露:
(一)按性質(如:庫存設備、開發成本、開發產品、分期收款開發產品、出租開發產品、周轉房)分類列示存貨余額。
(二)按下列格式分項目披露“開發成本”:
項目名稱開工時間預計竣工時間預計總投資期初余額期末余額合計注:對尚未開發的土地,應披露預計開工時間。
(三)按下列格式分項目披露“開發產品”:
項目名稱竣工時間期初余額本期增加本期減少期末余額合計(四)按下列格式分項目披露“分期收款開發產品”、“出租開發產品”、“周轉房”:
項目名稱期初余額本期增加本期減少期末余額合計(五)應按下列格式披露存貨跌價準備金計提情況:對于開發中項目,可以合并列示。對“停工”、“爛尾”“空置”項目,如果不計提或計提跌價比例較低,應詳細說明理由。
項目名稱期初余額本期增加本期減少期末余額備注合計
第五條、發行人在預收帳款項目注釋中,除按賬齡列示余額外,對預售房產收款,應按下列格式分項目披露。
項目名稱期初余額期末余額預計竣工時間預售比例合計
第六條、發行人在主營業務收入項目注釋中,應分項目披露報告期內各期間金額。
第七條、發行人的經營業務涉及不同行業和地區時,應按行業和地區披露收入、營業利潤、資產的分部資料。行業可以按照房地產、施工、物業管理、商業等分類;地區可以按境內、境外披露,對經營環境存在差異的省、直轄市,也應分別披露。
第八條、發行人為商品房承購人向銀行提供抵押貸款擔保的,應披露尚未結清的擔保金額,并說明風險程度。
第九條、本規則由中國證監會負責解釋。
第十條、本規則自之日起施行。
證監會關于《公開發行證券公司信息披露編報規則》第10號、第11號的通知
通知
各擬公開發行股票的從事房地產開發業務的公司:
一般來說每個企業都是按照本單位的編號規則進行合同編號的,以便于登記和查閱。
合同編號沒有統一的格式,只要能區別不同的合同,符合企業的管理,就可以。
通常合同編號的最開始幾位都是合同項目的漢字拼音縮寫加上年份。
例如:采集系統二期工程2006年發生的合同,可能的編號就是CJXT(采集系統)+2006(年份)+具體編號。
[關鍵詞] 基于案例推理(CBR) 增值稅 案例匹配 案例學習
一、引言
基于案例的推理(case-based reasoning,CBR)是利用過去解決相似問題的方法來解決當前問題。CBR系統將過去對問題的求解經驗作為案例按一定的組織方式存儲在案例庫中,當遇到新問題時,系統首先從案例庫中查找以前解決類似問題的經驗,并應用它來解決新問題。本文應用CBR方法設計了增值稅納稅申報系統,就增值稅的案例特點和業務特征來具體運用CBR方法解決稅法領域的問題。
增值稅主要有納稅人、征稅對象、稅目、稅率、納稅期限、減免稅等這些稅收要素組成,而這些稅收要素正好可以作為一個案例的特征集,以不同的特征集收集具有特殊情況的典型案例,并且給每個案例加上專家的點評分析、法律提示、專家釋疑等形成一個生動有說服力的案例,進而建成CBR系統中的案例庫。這樣,對于缺乏稅法專業知識和不精通納稅申報業務的納稅人就可以使用這個案例庫來處理他們遇到的實際案例。在增值稅的業務領域中,,不管一個多么復雜的納稅情況總能按業務特征將其歸類到前面案例庫的一個小案例中,當找到匹配案例后即可取其增值稅的計算方法、相法律提示和專家釋疑,使新的增值稅納稅問題迎刃而解。
二、系統目標
該系統的主要目標如下:(1)為增值稅納稅申報提供決策支持和計算機輔助手段。(2)為各種企事業單位、個人、扣繳義務人等納稅義務人提供增值稅的計算方法、依據和填制增值稅納稅申報表。(3)為稅務人員提供疑難案例的稽查服務。(4)通過查閱、學習本領域中典型案例的解決方案;對增值稅法規政策進行咨詢等方法,提高系統使用者的稅法業務水平。(5)填制、匯總、打印增值稅納稅申報表;打印案例稽查結論表;也可打印典型案例的原始描述、相關法律和專家釋疑等。
三、系統的體系結構
運用基于案例推理的方法來處理增值稅的納稅申報問題,知識庫設計為案例庫和法規政策規則庫,以案例庫為主,以法規政策庫為輔助知識庫協同解決問題。本系統的總體結構如圖1所示。
四、CBR方法實現
1.數據庫設計
根據系統目標和總體結構的要求,可以確定以下系統所需的數據項和數據結構。
(1)案例庫。由于本系統案例庫較小,案例間無關聯關系。所以整個案例庫采用線性組織、并行存儲的方法,案例不分層次順序存儲。對于單個案例來說,采用關系數據庫技術,將所搜集的典型案例存放在一系列相互關聯的數據表中,主要的幾張數據表結構如下:①原始案例表:案例編號、案例文本。②基本狀況表:案例編號、稅款時間、納稅人標志、納稅人識別號、納稅人名稱、開戶銀行及賬號、法定代表人名稱、企業登記注冊類型、營業地址、電話號碼。③銷售業務狀況表:案例編號、貨物、摘要、業務特征、貨物編碼、業務特征編碼、銷售額、含稅銷售額、免稅銷售額。④外購業務狀況表:案例編號、貨物、摘要、業務特征、貨物編碼、業務特征編碼、買價、進項稅額。⑤銷售結論表:案例編號、規則標識號、銷售額、免稅銷售額、稅率、銷項稅額。⑥外購結論表:案例編號、規則標識號、買價、扣除率、可否抵扣、進項稅額。⑦案例釋疑表:案例編號、專家釋疑。⑧新案例基本狀況表:案例編號、稅款時間、納稅人標志、納稅人識別號、納稅人名稱、開戶銀行及賬號、法定代表人名稱、企業登記注冊類型、營業地址、電話號碼。⑨新案例銷售業務處理表:案例編號、貨物編碼、摘要、業務特征、業務特征編碼、銷售額、含稅銷售額、免稅銷售額、稅率、銷項稅額。⑩新案例外購業務處理表:案例編號、貨物編碼、摘要、業務特征、業務特征編碼、買價、扣除率、可否抵扣、進項稅額。
(2)規則庫。①原法規表:法規標志、條目號、法規條文、規則標識號。②規則表:規則標識號、貨物、業務特征、稅率、結論。
(3)字典庫。①貨物或應稅勞務名稱編碼表:序號、貨物、貨物編碼。②業務特征編碼表:序號、業務特征、業務特征編碼。③納稅人標志編碼表:標志代碼、納稅人類型名稱(一般納稅人、小規模納稅人)。④納稅人注冊類型表:注冊類型代碼、納稅人注冊類型名稱(工業、商業、其他)。
2.案例匹配
(1)單筆業務案例匹配。指一個案例只包含一筆業務的情況。這種情況處理較簡單,輸入案例后,取其案例特征(貨物或應稅勞務名稱+業務特征)到相應的業務狀況表(銷售或外購)中進行查找匹配,找到完全匹配的案例后,據其案例編號到相關聯的其他表中取回稅額計算方法、相關法律提示、專家釋疑等案例結論集,返回本案例進行稅額計算后整理輸出,并生成增值稅納稅申報表進行打印輸出,如圖2所示。
(2)多筆復雜業務案例處理。如果一個案例是包含兩筆以上業務的復雜案例,就要分步進行處理。首先逐筆處理業務,即將每一筆業務按以上的處理方法,先得到每一筆業務的解答,然后再按照納稅人名稱和納稅日期收集整理每筆業務的處理結果,計算匯總整個案例的應納增值稅額,并給出所有業務的相關法律提示和專家釋疑,再填制增值稅納稅申報表進行顯示。具體步驟如下:①取第i筆業務,加業務編號Ki;②按單筆業務匹配處理,得到本筆業務的稅額值、相關法律提示和專家釋疑;③取第i+1筆業務處理,方法同上;④至止處理完所有單筆業務,得到每一筆業務的解答;⑤按納稅人名稱和納稅日期收集1~i筆業務的解答,得到完整案例的應納稅額計算公式和計算結果,以及相關法律提示和專家釋疑;⑥生成當期增值稅納稅申報表。
(3)與規則推理相結合的案例學習當案例匹配無效,即在案例庫中沒有找到與新案例業務特征相同的案例時,需要到規則庫中尋找相關的法規依據來求解問題,并通過人機交互的修改機制,形成一個新的完整案例解,最后將新案例保存至案例庫中,實現案例的學習過程。具體過程如下:①根據貨物+業務特征到規則庫查找匹配的法規條款。②找到的相關的規則可能有多條,將這些規則的結論信息反饋給用戶進行判斷,并通過人機交互對規則進行反復適配,以最終獲取決策知識。③從適配到的規則中取計算方法,如果是銷售業務就取稅率并結合結論信息編輯稅額計算公式;如果是購進業務就取扣除率、可否抵扣,并編輯進項稅額計算公式。④取法規原文作為新案例的相關法律提示。⑤通過人機交互利用結論信息總結出新案例的專家釋疑。⑥將新案例的完整解答:案例描述、稅額計算方法、相關法律提示、專家釋疑等保存到典型案例庫中,完成新案例的學習。
實現案例的學習過程是增值稅中一個CBR的完整設計,包括:案例的定義與表示、案例的組織與索引、案例的推理匹配、案例學習。
五、結束語
將CBR引入了增值稅納稅申報系統中。在增值稅業務領域中,將實際問題逐筆業務與典型案例進行檢索匹配,再對每筆業務結果進行收集整理,輸出案例完整解答及相關法律提示和專家釋疑,并填制增值稅納稅申報表;對匹配失敗的案例,采取與規則推理相結合的新案例學習方法等技術實現了增值稅納稅申報系統。
參考文獻:
[1]魏明英:新編稅法案例大點撥[M].西安:陜西人民出版社,2002
[2]張榮梅 徐序彥:基于CBR的交通事故處理智能決策支持系統[J].計算機工程與應用,2002,38(2):247~249
【關鍵詞】遼河流域 技術庫 語義分析 知識規則庫
我國水環境管理涉及各部委及各省、市、自治區相應機構,基本上屬于分散型管理體制。鑒于我國的水環境特點和國情,加強對水環境有關方面的技術文檔的利用,建立一系列的數據庫表對其內容進行存儲辨析,以實現智能提取文檔內容,提高文檔檢索效率,加速推進水環境管理技術文檔的利用。針對遼河流域水環境管理現狀,本文提出了遼河流域水環境管理技術庫的構建方法。
1 技術庫構建方法研究
1.1 數據庫構建技術
在系統的設計和開發過程中,數據庫是系統的核心和基礎,把大量相關的數據存入系統所設計的數據庫中,可以按一定的模型組織起來,為這些數據的存儲、維護、檢索提供方便的操作,使系統可以方便、及時、準確地從數據庫中獲得所需的信息。在數據庫構建過程中,需要遵循以下基本原則:
(1)實現數據庫構建的標準化和規范化。
(2)對表中參數使用統一命名規則,并添加清晰易懂注釋信息。
(3)使用自定義域定義出現頻率高的字段,有利于調整和修改。
(4)設置常用的隱藏字段來滿足特殊需要, 使數據庫表的設計更加符合系統的具體應用。
1.2 語義分析技術
在一個社會網絡中常有節點之間的信息交流。可以對這種社會網絡進行分析的一種強大的用來獲得和理解文本信息的技術被稱為語義分析技術。作為一個在人工智能和計算語言學的方法,它為知識推理和語言提供了一個結構和過程。
對此,將技術文檔中的句子提取出來,根據語義中包含的目標詞內容進行語義類型的分析,并形成一種語義搭配,從而對傳統的檢索技術進行改進,找出語義相近的內容,設計檢索系統可以檢索到相近的語句內容。計算機的語義分析應用于技術文檔的分析,可以消除專家們在提煉文檔內容過程中的主觀意見,計算機語義分析則客觀的檢索文檔中可能與檢索的關鍵詞相關的內容。
由于檢索時需要選定目標詞匯,在系統設計過程中,根據用戶檢索不同目標詞,系統設置了記憶功能,對用戶感興趣的內容進行整理歸納,并對新用戶進行推薦,節約了用戶再次對相同內容查詢時檢索的時間。而隨著文檔數逐漸增多,文檔相關詞匯也在不斷增加,檢索系統不斷自我完善,區別文檔語義和詞義的精確度會有所提高。
2 水環境管理技術庫設計
在技術庫實現過程中,用戶可根據系統的功能,在文檔中自動提取技術文檔的參數值,并作為計算參數存入知識規則庫。系統可以根據文檔內容自動分析文檔成分,并提出有價值的知識供使用者查閱及學習。
2.1 技術庫邏輯結構設計
遼河流域水環境管理技術庫的構建主要包括技術文檔信息表、關鍵字詞典表、本地化參數表及參數屬性表等試題。各實體的邏輯設計如下:
2.1.1 類別
根據“分區、分類、分級、分期”的基本理念,將技術庫文檔進行分類,將技術文檔數據規范化管理,更加高效科學。
2.1.2 技術文檔
技術文檔可以存儲在本數據表中,用戶可以通過查詢此數據表來查看技術文檔的詳細內容。
2.1.3 關鍵字詞典
技術文檔通過檢索比對關鍵字詞典表篩選有用內容和知識,系統可以對篩選內容作進一步處理。
2.1.4 本地化參數
根據對上述系統的詳細分析,針對不同地域使用不同的數據進行計算,將數據更精確化,是計算結果更加準確。
2.1.5 參數屬性
每一個本地化參數對應一個或多個屬性,此數據表將用來存儲本地化參數的屬性。
2.2 技術庫物理結構設計
對技術文檔的主要相關內容采用Oracle數據庫進行建表存儲,遼河流域水環境管理技術庫數據庫構建了以下屬性表:水環境管理技術文檔類別表(編號,類別名稱,類別描述),水環境管理技術文檔表(編號,名稱,描述,所屬類別,上傳時間,操作員,路徑),水環境管理技術關鍵字詞典表(編號,關鍵字,關鍵字描述,關鍵字等級),水環境管理技術本地化參數表(編號,文檔編號,參數名稱,參數描述,備注),水環境管理技術參數屬性表(編號,屬性編號,屬性值,參數表示區域)。
通過對項目需求的分析及前期設計,完成了技術庫表的建立,并建立了數據表之間的邏輯關系,實現了表之間的相互關聯。
3 水環境管理知識規則庫設計
根據水環境技術庫的要求,將技術文檔中各種內容進行整理,并將那些較為重要的內容存入輔助的知識規則庫。知識規則庫的設計是基于水環境管理的技術庫以及政策庫文檔的收集分析而形成的。系統管理員根據實際情況收集技術、政策文檔并上傳,并將實際內容存儲于數據庫中,供分析模塊分析使用。通過對技術庫以及政策庫內存儲的文檔進行分析,并將分析內容進行整理,存入知識規則庫中。
系統通過使用者提交文檔,并對文檔內容形式進行劃分,區別公式、表格以及文本等內容,并對不同的內容進行不同的處理方式。對文本內容才去傳統的文本分析,提取有用的內容并將這些內容M行進一步的篩選處理,提供給用戶;對表格內容,系統提取了表名并將表格內容呈現給用戶;對于文檔中的公式內容,文檔提取出了部分公式介紹內容對公式進行注釋,同時提取保存公式內容的圖片存入數據庫,而公式的存儲則需要人工協助錄入,實現對文檔的半智能分析。
4 結論
本文根據遼河流域現階段水環境管理現狀,通過對水環境相關的技術文檔進行整理存儲,并采用語義分析方法對存儲文檔進行分析,根據關鍵字詞典進行分析預測,將各種不規則的文檔內容進行統一整理,提取表格、公式及關鍵文本等相關內容,并將其存儲為知識規則,以便于用戶對關鍵技術的查閱和學習。
參考文獻
[1]孟偉.遼河流域水污染治理和水環境管理技術體系構建[J].中國工程科學,2013(03):4-10 .
[2]程麗麗.企業信息化建設中數據庫的結構設計應用[J].福建電腦,2008(07):41-42.
[3]李博湘.數據庫設計技巧[J].科技情報開發與經濟,2006(19):237-238.
[4]王水利,黃廣君.基于語義分析的查詢擴展方法[J].計算機工程,2011(08):77-79.
[5]劉云峰,齊歡.中文信息的潛在語義分析[J].華南理工大學學報,2004.
作者簡介
夏廣鋒,現任職于遼寧省環境科學研究院,主要從事水污染及大氣污染治理方面研究工作。
付立冬,現任職于沈陽理工大學。主要研究方向為計算機應用技術。
吳赫,現為沈陽理工大學研究生。計算機應用技術專業。
作者單位
關鍵詞:漢諾塔;遞歸;C語言
中圖分類號:TP301.6文獻標識碼:A文章編號:1009-3044(2010)09-2130-02
Algorithm Analysis and C Realization of Hanio Issue
BAI Hui-bo1,GAO Rui-ping2
(1.Qinhuangdao Branch of Daqing Petroleum Institute, Qinhuangdao 066004, China;2.Hebei Normal University of Science and Technology, Qinhuangdao 06600, China)
Abstract: This text carries on detailed analysis about classical Hanio issue and provides realization of algorithm in C.Through concrete realization of the problem,can make learners observe the whole course which solves this issue and Extend to the general.
Key words: hanio; recursive; the C programming language
1 問題描述
漢諾塔是一個經典的數學問題,其具體描述如下:有三根相鄰的塔子,標號為A,B,C,A塔子上從下到上按金字塔狀疊放著n個不同大小的圓盤,現在把所有盤子借助于A,B,C三個塔子一個一個移動到塔子C上,并且每次移動在同一根塔子上都不能出現大盤子在小盤子上方.根據問題描述得到以下規則:
1)圓盤必須一個一個的移動;
2)大的圓盤必須在小圓盤的下方或單一圓盤;
3)滿足規則2)的序列可以出現在A,B,C任意一根塔子上。
C語言演示程序規則:
1)輸入一個盤子的個數n(時間可接受范圍內的值0
2)用C語言演示盤子在塔A,B,C間的移動全過程。
2 算法分析
題目實現的是設計一個盤子移動的方案,使得A塔上的所有盤子借助于B塔按照原來的次序移動到C塔上,并且給出完整的最佳的盤子移動的方案。
從實際的具體的盤子的移動過程來分析,找出問題內在的規律。當n=1時,問題比較簡單,只要將塔A上的編號為1盤子直接移動到塔C即可;當n>1時,需利用塔B作為輔助塔,若能設法將壓在編號為n的盤子之上的n-1個盤子從塔A(依據移動規則)移至塔B上,則可將編號為n的盤子從塔A移至塔C,然后再將塔B上的n-1個盤子(依據移動規則)移至塔C;經分析可知,在移動的過程中, 將始終會出現這樣的狀態情況: (n-1)個盤子將會以從下到上、從大到小的次序疊置在B塔上,這時,A塔上第n個盤子就能被輕而易舉疊放到C塔上; 接著, 我們再把B塔上的共(n-1)個盤子移動到C塔上, 問題好像已經解決。
但B塔上(n-1)個盤子怎么移動到C塔上呢?同樣, 利用塔C作為輔助塔, 將會出現這樣的狀態情況:(n-2)個盤子將會以從上到下、從小到大的次序疊置在A塔上,這時,B塔上第(n-2)個盤子就能被輕而易舉放到C塔上;接著,把A塔上的共(n-2)個盤子移動到C塔上。
這明顯是一個遞歸的過程,不斷深入,不斷細小化,最終,將到達僅有一個盤的情形,這時, 遞歸也就終止了,問題也得到了解決。通過以上分析,遞歸的出口是當n=1時,能直接得到解。現在,嚴格按照遞歸算法來解決問題。先定義遞歸方法Hanio(int n,zarray * A, zarray *B, zarray *C),按如下步驟進行解題(設初始盤子個數為N):若A塔上僅僅只有一個盤子(n=1), 則直接從A移動到C,問題完全解決。若A塔上有一個以上的盤子(n>1),則需要考慮以下三個步驟。
第一步: 把(n-1)個盤子從A塔經過移動, 疊放到C塔上。在不違反規則情況下,所有(n-1)個盤子不能作為一個整體一起移動,而是要符合要求地從一個塔移到另一個塔上。用Hanio(n-1,A,C,B)調用遞歸方法,注意:這里是借助于C塔,將(n-1)個盤子從A塔移動到B塔, A是源塔, B是目標塔。
第二步: 將剩下的第n個盤子(也就是最底下的一個)直接從A塔疊放到空著的C塔上。
第三步: 用第一步的方法,再次將B塔上的所有盤子疊放到C塔上。同樣,這一步實際上也是由一系列更小的符合規則的移動盤子的操作組成的。用Hanio(n-1,B,A,C)調用遞歸方法, 注意:這里是借助于A塔,將(n-1)個盤子從B塔移動到C塔,B是源塔,C是目標塔。這個算法達到了預期的目標,即在C塔上按正確的次序疊放了所有的圓形盤子。
3 算法實現
定義結構體plate表示盤子:typedef struct
{ int x,y,xsize,ysize;/*盤子通過繪制橢圓實現,x,y,xsize,ysize確定橢圓的大小*/
int No;/*盤子的編號,編號為0的表示塔柱,大于零的是盤子*/
}plate;
定義一個堆棧zarray來表示塔:typedef struct
{plate p[INIT_SIZE];
int top;/*棧頂*/
int x,y,xof,yof; /*塔的繪制視區*/
}zarray;
用zarray的三個變量A、B、C分別表示三個塔,初始盤子在A塔,設置屏幕繪制區域并相對與繪制區域分別繪制A、B、C三塔、盤子,并在相應盤子的位置標明其編號(編號和盤子一起移動)調用hanoi()函數,并在move()函數中源塔和目標塔的盤子進行繪制。
程序的主要函數由:initZarray(),setLongth(),getplate(),pushplate(),popplate(), outNo(),toDraw(),toDrawZhu(),getn(),hanoi(),move()等組成。
initZarray()負責塔A,B,C數據的初始化, pushplate()負責將盤子壓入目標塔中,并對新壓入的盤子進行繪制,popplate()負責從源塔取下一個盤子,并對源塔進行重新繪制。
1)函數main()的算法
函數main()的算法如圖1,程序執行用戶根據提示輸入合法的n值,根據得到的n值初始化塔A,B,C和n個盤子的大小,設置繪圖視區在屏幕上繪制塔A,B,C和盤子,調用hanoi()函數。
2)函數hanoi()的算法
函數hanoi()的算法如圖1,當程序第一被調用時,源塔A有n個盤子,將塔C作為輔助塔,調用move()函數將源塔A上的n-1個盤子移至塔B上,將源塔A上的編號為n的盤子移到目標塔C,完成將最大盤子移至目標塔C,接下來,將塔B作為源塔有n-1個盤子,塔A作為輔助塔遞歸調用,每次都將源塔上的最大盤子移至目標塔,直到遞歸結束。
3)函數move()的算法
函數move()的算法如圖2,函數的作用就是調用popplate()函數,將源塔出棧重繪,再將出棧的盤子p調用pushplate()函數壓入目標塔,重新繪制。popplate()函數和pushplate()見圖2。
4 結束語
本文深入分析了用遞歸實現漢諾塔的問題,并用圖形仿真程序顯示的盤子的移動過程,對漢諾塔的本質進行了新的剖析,對數據結構的教學有一定的好處。
參考文獻:
根據目前學院ISO9000的運行情況,在構建教育教學質量管理系統時,主要考慮了以下幾個方面:第一,如何保證信息系統的隨需應變能力,隨時適應管理機制的變化。第二,如果某一個業務點產生變化或者調整,是否面要重新編譯整個程序,還是進行局部構建。第三,在系統開發過程中,產生的一些公用組件,在學院新建的或現有的業務系統中使用,是否還需要重新來進行開發,如何使用現有的成熟的組件,如何向項目中引用或使用。第四,是否能夠形成一個基礎平臺,在進行新的業務系統開發時,直接在基礎平臺上建設即可。基于以上四點來考慮教育教學質量管理系統的構建方式。對整個系統的標準規范作了如下定義,以確保系統的建設,能夠滿足以上的要求。
(一)具體環境規范。
應用程序的運行環境采用兩臺應用服務器和兩臺數據服務器,進行負載均衡的高可用web集群運行環境配置,保證應用程序運行的穩定性和運行效率,數據庫采用主從備份的方面,用以保證數據的安全性。
(二)總體規范。
1.統一縮寫或名詞約定。在項目中,對于同一概念如果需要使用縮寫,統一使用如下定義:info-信息;doc-文檔;src-源碼;demo-項目的靜態頁面原型;fea-功能點;req-需求點;query-查詢;add-增加;update-編輯;input-輸入;delete-刪除;list-結果列表使用的英文名稱;impor-導入;export-導出;rtn-返回;success-成功;fault-失敗;error-錯誤;業務字典-與業務相關的代碼及對代碼的描述,系統提供了對業務字典的管理,通過系統業務字典功能,為系統實現提供的大量組件,方便開發。
2.需求/功能編號定義。需求編號規范:“req”+“-”+一級模塊編號+“-”+二級模塊編號+“-”+功能點編號。功能點代碼編號規范:“fea”+“-”+一級模塊編號+“-”+二級模塊編號+“-”+功能點編號。在此,“fea”表示功能,“req”表示需求一級模塊對應一個包,二級模塊對應構件包下的構件,功能點為構件下的具體功能。
3.子系統及程序包規劃。一級模塊與包命名最后一段一致:小寫英文單詞組成的業務描述。如:權限管理(auth),功能矩陣樣式如下:子系統:um,包中文名:權限管理與控制,包名稱:auth,功能中文名稱對應的功能名稱依次是:認證管理-auth,應用功能管理-function,菜單管理-menu,角色管理-role,操作員管理-operator,數據權限管理-dataright;包中文名:組織機構管理,包名稱:organization,功能中文名稱對應的功能名稱依次是:機構管理-organization,崗位管理-position,人員管理-person,職務管理-duty,工作組管理-workgroup,業務機構管理-busiorg;包中文名:應用基礎服務,包名稱:common,功能中文名稱對應的功能名稱依次是:單點登錄———sso,業務字典———busidict,業務日志———busilog,元數據管理———metada-ta,基礎構件———comm;包中文名:應用基礎工具,包名稱:Utili-ty,功能中文名稱對應的功能名稱依次是:文件上傳———fileup-load,通用數據選擇———datachoose。在進行構建時,包名全部使用英文小寫,包名稱建議采用長命名空間的方式。
4.應用架構構建。Maven除了以程序構建能力為特色之外,還提供高級項目管理工具。由于Maven的缺省構建規則有較高的可重用性,所以常常用兩三行Maven構建腳本就可以構建簡單的項目。由于Maven面向項目的方法,許多ApacheJa-karta項目時使用Maven,而且公司項目采用Maven的比例在持續增長。本應用采用JAVAEE架構,應用系統的功能開發,將通過Maven的方式對項目進行構建。以Maven的方式進行構造,依賴的版本定義在公共模塊或子系統中,子(模塊)pom設置<parent>,繼承父(項目)pom,設置一個虛擬的總項目,多個實際項目作為總項目的模塊。在編碼過程中,要求盡量使用公用模塊,以減少系統編碼、維護工作量,使程序具有良好的結構性。一般定義,超過三個地方使用的相同邏輯的代碼主要抽象為公用模塊。
(三)配置規范。
1.配置工具。項目的配置工具內部采用SVN作為配置管理工具,MavenRepository作為Maven倉庫的定義。2.配置目錄結構。配置目錄結構如圖2所示。
(四)文檔規范。
1.文檔命名規范。文檔名稱=系統名稱+“_”+中文文檔名[+“_”+作者姓名]。修改者必須在文檔中注明修改時間、版本和大致內容。
2.文檔編寫規范。對于項目的成果性文檔,要求在編寫前提供統一的模板,編寫和修正過程中,要記錄變更歷史。在Word中的插圖盡可能使用JPG或GIF以及PNG格式,以降低Word文檔的大小。所有文檔中涉及的圖形,要求提供原始文件,并保存到配置庫中。文檔一旦初步定稿之后,評審者采用修正模式修改文檔。如果文檔參考了其他資料,需要提供參考資料的出處,如某個文檔、網站、書籍。
(五)結構設計開發規范。系統中以包為復用的基本對象,構件包中包含數據訪問層、業務層、控制層、頁面資源、配置信息等概念。一個項目中可包含多個子項目,按Maven的體系結構,項目按照功能模塊進行劃分,力求便于維護和管理。其中“model”為整個系統的顯示層,即所有的界面操作及界面邏輯都在些項目中進行構建common項目為系統的公用項目,所有公用部分的代碼在項目中進行構建。model-caculate為系統中模型算法部分,所有算法在此項目中進行構建其它核心功能模塊和輔助功能模塊按照規則進行創建,即“項目名稱———功能模塊名稱”。
1.總體規范。(1)項目路徑規劃。com.sinocarbon.model.(2)對于應用中的變量命名,要求遵循如下規范。在數據訪問層中,變量名稱遵循Java變量命名規則;業務層中,變量命名和數據訪問層的命名規則一致;控制層中,變量名和業務層的命名規則一致。為保證程序邏輯或代碼的可追溯性,要求每個文件都保留正確合適的開發人員信息。(3)針對創建者和部門,按照如下要求進行設置。作者:輸入開發環境使用者正式姓名的中文。開發人員的英文名或者系統缺省的用戶名。部門:輸入開發環境使用者所在公司的名稱,例如“信息中心”等。
2.包命名規范。包是項目中基礎的業務實現和業務部署單元,其中包含了數據訪問、業務邏輯、控制以及一些額外需要的資源,包采用以下方式進行命名:包名稱全部使用英文小寫;包名稱采用長命名空間的方式;包名=系統命名空間+”.”+業務描述的英文單詞;包命名在設計期由設計人員確定,不允許開發期確定;顯示名稱描述為中文信息;包屬于一個抽象概念。
3.數據訪問層命名規范。數據訪問層是進行數據庫操作的邏輯層。數據訪問層按以下所描述的方式進行命名。包名定義為com.sinocarbon.model.um.dao。實現接口規則com.sinocar-bon.model.+子項目名稱+模塊名稱Dao,類規則為com.sino-carbon.model.+子項目名稱+模塊名稱DaoImpl如用戶管理模塊的包命名規則為在包com.sinocarbon.model.um,在該包下創建接口和類名稱為UserDao.java和UserDaoImpl.java,首字母大寫,與java類命名一致。接口和類直接建在以構件包為名稱的包下,原則上不增加新的包的定義。名稱不使用前綴或后綴。接口和類包含一個單一實體管理功能的操作集合,即增、刪、改、查等。
4.業務層命名規范。業務層為進行業務邏輯操作的邏輯層。業務層按下面方式進行命名:包名定義為com.sinocarbon.model.um.service。實現接口規則com.sinocarbon.model.+子項目名稱+模塊名稱Service,類規則為com.sinocarbon.model.+子項目名稱+模塊名稱ServiceImpl如用戶管理模塊的包命名規則為在包com.sinocarbon.model.um,在該包下創建接口和類名稱為UserService.java和UserServiceImpl.java,首字母大寫,與java類命名一致。接口和類直接建在以構件包為名稱的包下,原則上不增加新的包的定義。名稱不使用前綴或后綴。接口和類包含一個單一實體管理功能的操作集合,即增、刪、改、查等。
5.頁面資源命名規范。一是在web項目中創建一個文件夾,與模塊名稱一致文件夾下創建與該模塊相關的頁面資源,例如user,在頁面資源下創建user目錄;二是如果涉及較多的不同頁面資源,可以在同名的文件夾下再創建js和image,并將相應資源放置在目錄下;三是頁面資源文件一律使用小寫字母,命名一般采用主謂格式,各個單詞之間使用下劃線“_”連接。
6.web目錄規范。WEB目錄是針對整個項目的WEB配置目錄,允許放置對整個應用有效的資源文件,包括公共的js、圖片、頁面、以及WEB-INF的配置等。
二、結語
關鍵詞:排課系統;FP_Growth算法;資源沖突;C/S模式
中圖分類號:TP311文獻標識碼:A
文章編號:1004-373X(2010)02-060-05
Design and Implementation of Online Course Arrangement System
Based on Association Rule Algorithm
ZHANG Jian′an,YANG Xuejun,WU Wenyi
(Kunming Branch of Electronic Technology,Institute PLA Information Engineering University,Kunming,650231,China)
Abstract:In order to achieve the optimization of teaching resources usage,on the basis of analysing class demands of university and the present situation of course arrangement system,based on FP_Growth association rule algorithm,C/S pattern_based university automatic course arrangement system is designed and realized.This system realizes class schedule automatic production,dynamic alignment,the educational administration department′s urgent need is solved.
Keywords:course arrangement system;FP_Growth algorithm;resource conflict;C/S mode
0 引 言
隨著高校擴招力度的加大,目前高等院校中普遍存在著學生基數大、專業設置多而教學資源(教師、場地、器材等)有限的瓶頸問題。加之高校課程設置的特殊性和復雜性,使得人工調配資源生成課表的工作量大,且難以做到資源利用最優化。而現有的排課系統大多功能單一,且主要面向中小學,不適應高校的復雜需求。隨著高校校園網絡的普及,利用校園網資源,開發面向高校、自動調配教學資源的智能排課系統已迫在眉睫,對于促進教學管理科學化、降低勞動強度、實現教學資源最大效益具有重大的意義[1]。
1 排課問題分析
1.1 排課問題的規則分析
實用的課表編排應是符合教學計劃和任務安排的,滿足教室資源、時間、空間以及一些特殊要求的,并讓學生和教師滿意的。因此,對于學期課表的編排需要遵循的原則可分為如下幾類[2]:
(1) 正確性。要求所排課表準確無誤地反映出每個班級各門課程及任課教師的上課時間和教室,滿足以下基本要求:
① 一個班(教師或教室)不能安排同時上兩門課;
② 合班上同一課程的不同班級應安排相同時間、相同教室上該門課;
③ 一個班級分若干個小班上某門課程應安排在相同時間;
④ 一個班(如分班則指小班)的一門課只安排一個教室,且學生人數不得超過教室的容量。
(2) 合理性。要求所排課表符合教學規律,有利于學生有效地學習知識,以保證教學質量,主要表現在:
① 一個班級的課表是均勻的,首先在每周內每天上課的課時數是均勻,其次整個學期每周安排的課時數也應基本相等;
② 每門課程的時間安排均勻的,在一周內兩次課之間的間隔應基本相等,每周該課的上課時間也應基本穩定;
③ 一些難度較大的重要課程一般安排在上午。
(3) 適用性。對由于不確定因素影響而提出的要求應盡量給與滿足:
① 為了教學上的要求需要某一些班級的某一課程安排在相同時間上課,即所謂同步上課;
② 有時需要某課程安排在每周的指定時間或指定的每次內;
③ 有時需要某教師(或某教室)只被安排在每周指定時間或指定的周次內上課。
(4) 限制性。根據不同要求,其課程安排和使用不很相同:
① 教師在某一時間段不能上課時,不要安排課程;
② 教師與系統管理員的權限的分配要不同。
1.2 排課算法研究
排課問題早在20世紀70年代就證明是一個NP完全問題,即排課算法的計算時間是呈指數增長的,這一論斷確立了排課問題的理論深度[3]。
目前,解決排課問題的方法有:遺傳算法、貪心算法、蟻群算法、回溯算法、FP_Growth關聯規則算法等[4]。
1.3 FP_Growth關聯規則算法
1.3.1 算法框架描述
該系統由以下幾個主要的過程組成:
(1) 系統數據初始化,形成本期教學信息二維數據庫;(包含數據屬性、條件屬性及信息編碼等)。
procedure Tzypneoform1.firststep_initialize (sender:object)
(2) 課程定位,按照預排算法,形成無任何決策信息的課表樣本視圖。
procedure Tzypneoform1.secondstep_orient station(sender:object)
(3) 按構建規則對課表樣本庫進行課表混排。
procedure Tzypneoform1.thirdstep_pred eject (sender:object)
(4) 用FP_growth 算法定位課表混排庫中出現的沖突。
procedure Tzypneoform1.forthstep_trans(sender:object)
(5) 按優先處理沖突計數值最高元素的原則消除沖突。
procedure Tzypneoform1.fifthstep_collies ion(sender:object)
(6) 系統綜合檢測原始信息和約束條件,輸出結果。
procedure Tzypneoform1.sixthstep_inspect(sender:object)
1.3.2 算法描述
排課問題是典型的資源調度問題,該問題已被證明為一個NP完全問題。由于排課調度算法涉及到教室、教師、班級、課程和時間等信息對象,要滿足各種約束關系,需實現合理的資源分配,所以具有相當的難度[5]。這里認為:雖然排定課表問題及其復雜,但可以采用一種分而治之的觀點來看待它。將其分為兩個不同的部分,分階段來解決它。即將排課算法分為兩個子算法:按權均值算法排定基本課表;通過建立沖突樹對資源沖突進行處理算法。
(1) 基本課表的排定。設“可安排教學時間集”為H,“班級集”為S(|S|=ns),“教師集”為T,“課程集”為L(|L|=nk),“場地集”為R。
對于每個班級Si(教師t∈T),有一個“未排定時間集”A(Si)H(A(t)H);對于每門課程有一個可安排時間集A(l)H(集合中含nk個元素),對于每一個門課程有一個場地集r(l)R(其包含有nk個元素),并且對于每一個四元組(Si,t,l,r)∈S×T×L×R,有一個“要求教學時間數目”X(Si,t,l,r)∈Z+0(Z+0表示非負整數集)。且X(Si,t,l,r)A(l)。要排定課表,即求函數f(Si,t,l,r,h){0,1}(其中f(Si,t,l,r,h)=1表示班級Si,教師t,在時間h內,場地r上課程l)。
課表排定應滿足:
① 給定Si時,第一門課程排定時應滿足:hi∈H(在整個教學時間內抽取隨機時間點)。取li∈L使得A(li)=max{A(l)}在整個A(Si)=H內使f(Si,t,l,r,h)=1。以后課程的排定則循環:lj(j≠i),A(lj)=max{A(l)-A(li)}(每排出一門課程lm,A(lj)為原{A(l)}除去已排課程A(lm))。在A(Si)=H-A(li)(每排出一門課程lm,A(Si)為原H除去A(lm))中使f(Si,t,l,r,h)=1,直至A(Si)=0,其中f(Si,t,l,r,h)=1僅需Si∈S,t∈T,l∈L,h∈H,r∈R。
② 對于i∈[1,ns],Si依次循環步驟①,直至A(Si)=0(i∈[1,ns])。
(2) 資源沖突的處理。按權均值算法,使得每個班級排定課表更自動,高效。但由于制約條件多,各班級初次混排的課表中按權均值算法并沒有解決資源沖突問題。該系統采用了第二個子算法對該問題進行處理:查找和定位課表中的沖突元素,對沖突元素按其沖突次數值降序排列,并將各個班級的沖突元素集生成相應的沖突樹,再對樹進行遍歷查找,按照沖突最高的元素優先處理原則進行處理,直至沖突樹的節點為空。即采用FP_growth關聯規則思想,使得該系統能高效,正確排出滿足所有約束條件的課表,使算法更具智能化[6]。
輸入:混排課表數據庫D。
輸出:以沖突計數值降序排列的沖突元素集。
方法:
① 掃描數據庫D,查找沖突元素Cij并計數(這里的下標用于對沖突元素C定位);按沖突計數值降序排列沖突元素存入L表中;
L={C11,C12,…,Cij,…,Cnm}
(2) 創建FP_tree的根節點標記為null,對每一個班級的課表執行如下操作:
依據L中的沖突元素及其順序對每個班課表中的Cij作選擇和排序操作;
形成各班課表的沖突元素集Tran=a|A。這里的a是Tran中的第一個元素,A是Tran的剩余部分;
調用insert_tree(a|A,Tran)過程將Tran中的元素加入到FP_tree中。如果Tran中有一個分枝N它的節點名與a相同,則對N的計數值加1,否則為Tran創建一個新的分枝N,該N中各節點的計數值為1;
如果A非空,再次調用insert_tree(A,N)過程處理。
與遺傳算法、蟻群算法等相比,FP_Growth算法是所有搜索算法中最為基本的一種算法,相對比較簡單些,且較適于開發該高校排課的實際要求,所以本排課系統選擇FP_Growth算法[7]。
采用具有智能概念的FP_Growth算法思想設計的按權均值隨機排課算法方案,比常規的遞歸排序方法設計的方案效率提高近10倍,顯著提高了系統效率。
2 系統設計與實現
2.1 模塊劃分
該系統由應用程序服務器、客戶端程序、遠程數據庫、數據庫引擎BDE四部分組成。系統在Delphi 開發平臺上編制,采用Borland公司BDE數據庫驅動引擎,Paradox數據庫,基于DCOM+和MIDAS技術,實現多層分布式體系結構。其體系結構圖如圖1所示,客戶端程序結構框圖如圖2所示。
圖1 排課系統體系結構
圖2 客戶端程序結構框圖
(1) 應用程序服務器。應用程序服務器主要提供遠程數據模塊,其中封裝有所有的數據表。客戶端程序通過DCOM接口組件與之相聯。遠程數據模塊還提供了數據表中數據的維護功能,盡可能減小客戶端,以形成“瘦客戶”。
(2) 客戶端程序。客戶端程序又分為系統功能模塊、代碼維護模塊、課表排定模塊、課表查詢模塊、課表生成模塊及系統幫助模塊。客戶端程序主要實現對高校復雜課表的自動排定、調整、查詢及課表的自動生成和打印、輔助信息管理等。軟件設置用戶身份管理模塊,用戶身份等級分為系統管理員、普通級和最低級,各級用戶有不同的操作權限。
2.2 數據結構
2.2.1 數據庫結構
該系統建立了一個數據庫,所有具體的數據項都以表的形式存放在該數據庫中。這些表中包括:班級信息表、教師信息表、課程信息表、教室信息表、時間模式表,還有兩個代碼表分別記錄教師和課程、班級課程和周課時量[8]。如圖3所示。
圖3 層次結構圖
2.2.2 數據類型實體及屬性
(1) 數據模型實體。系統中包含的數據模型實體主要有:班級、課程、教室、教師。
(2) 實體屬性
① 班級:班級編號、班級人數、所屬專業、所屬年級。
② 課程:課程編號、課程名稱、課程性質、考查方式、學分、總學時、周學時。
③ 教師:教師編號、教師姓名、教師所屬教研室、教師簡介、周課時量。
④ 教室:教室編號、教室名稱、教室類型、教室容量。
(3) 數據字典及數據表的構造。基本信息設置需要10個數據表,有班級信息表、上課時間表、課程信息表教師信息表、教室信息表、教研室信息錄入表、管理員表、用戶表、兩個代碼表分別記錄教師與課程和教室與課程[9]。
① 班級信息表:存放全校各班級的基本情況,見表1所示。
表1 班級信息表
字段名稱數據類型說明
ID自動編號班級編號
CID文本班級號
GRADE文本年級
PROFESSION文本專業
NLJM數字人數
定義:班級信息表 = 班級編號+班級號+人數+專業+年級
② 上課時間表:用來存放上課的時間模式,如表2所示。
定義:上課時間表=星期+節數
表2 上課時間表
字段名稱數據類型說明
DAY文本星期
TIME數字節數
③ 課程信息表:存放所有課程和與之相應的屬性,如表3所示。
定義:課程信息表=課程編號+課程名+專業+課程簡介+課程類別+周課時+電算化標志
表3 課程信息表
字段名稱數據類型 說明
CID文本課程編號
COURSE_NAME文本課程名稱
COURSE INTRO文本課程簡介
PROFESSION文本專業
TYPE數字課程類別
W EEKNUM數字周課時量
ELECTRONIC數字電算化標志
④ 教師信息表:存放全校教師的基本情況,如表4所示。
定義:教師信息表=教師編號+教師姓名+教師簡介+已安排完課時量+教研
表4 教師信息表
字段名稱數據類型說明
ID文本教師編號
NAME文本教師姓名
INTRODUCTION文本教師簡介
OFFICE文本教研室
hasassign數字已安排完課時量
⑤ 教室信息表:存放全校所有教室的基本信息,如表5所示。
定義:教室信息表=教室編號+房間號+教室容量+是否電算化+占用標志
表5 教室信息表
字段名稱數據類型說明
RID文本教室編號
RNAME文本房間號
CONTAIN數字教室容量
TYPE是/否是表示有電算化,否表示無
TAKE_UP是/否是表示占用,否表示無
⑥ 教師和課程代碼表:用來記錄教師所教課程,如表6所示。
定義:教師和課程代碼表=編號+教師編號+課程編號+教師名稱+課程名稱
表6 教師和課程代碼表
字段名稱數據類型說明
ID自動編號編號
TID文本教師編號
CID文本課程編號
tname文本教師名稱
cname文本課程名稱
⑦ 班級和課程代碼表:用來記錄每個班級所要上的課程,如表7所示。
定義:班級和課程代碼表=編號+班級編號+課程編號+已安排完課程標志+班級+課程
表7 班級和課程代碼表
字段名稱數據類型說明
ID1自動編號編號
CID文本課程編號
ID文本班級編號
hasassign數字已安排完課程標志
class文本班級
course文本課程
⑧ 管理員表:用來存放管理員的名稱、口令。該表通過設置管理員的密碼實現系統功能設計中分角色設計。不同的用戶具有不同的權限級別,不同的級別則應對應不同的操作內容,如表8所示。
定義:管理員表=管理員編號+管理員用戶名+密碼
表8 管理員表
字段名稱數據類型說明
ID自動編號管理員編號
NAME文本管理員用戶名
MIMA文本密碼
⑨ 教研室信息錄入表:用來存放全校不同的教研室的信息的,如表9所示。
表9 教研室信息錄入表
字段名稱數據類型說明
ID自動編號教研室編號
NAME文本教研室名稱
INTRODUCTION文本教研室簡介
定義:教研室信息錄入表=教研室編號+教研室名稱+教研室簡介
⑩ 用戶表:用來設置用戶的不同權限,如表10所示。
定義:用戶表=編號+用戶名+密碼
表10 用戶表
字段名稱數據類型說明
ID自動編號編號
NAME文本用戶名
MIMA文本密碼
2.2.3 數據表之間的關系
數據庫完整性規則的目的就是保證數據的一致性,正確性和符合業務規則。它主要包括四個方面:實體完整性、值域完整性、引用完整性和用戶定義完整性。為了防止數據冗余,數據庫的數據表中不包含所有需要的信息的,有些信息可以通過表之間的關系從其他的表中獲得。出于這種考慮,在該系統的數據庫設計中,主要建立如圖4所示數據表之間的關系,并通過設置關鍵字將這些表聯系在一起[10]。
3 結 語
基于C/S工作模型實現的自動排課系統,實現了大專院校教務部門的自動排課、動態調整和集中管理。系統功能全面完善,運行穩定可靠,操作簡單易行,符合高校教務部門實際工作需求,極大地減輕了教務人員的勞動強度,實現了教務管理工作的自動化,達到了資源配置最優化的目標。
圖4 數據表之間關系圖
參考文獻
[1]徐華成.管理信息系統\.北京:清華大學出版社,2006.
[2]吳金榮.關于大學課程表問題的研究[J].運籌與管理,2002,11(6):66_71.
[3]王能斌,錢祥根.大學課表調度系統――UTSS\.計算機學報,1984(5):383_389.
[4]吳志斌,陳淑珍,孫曉安.回溯算法與計算機智能排課[J].計算機工程,1999(3):792_801.
[5]高尚,楊靜宇.群智能算法及其應用[M].北京:中國水利水電出版社,2006.
[6]傅清祥,王曉東.算法與數據結構[M].2版.北京:電子工業出版社,1996.
[7]周培德.算法設計與分析[M].北京:機械工業出版社,1996.
[8]薩師煊.數據庫系統概論\.北京:高等教育出版社,1996.
Abstract: Development is for improving the efficiency and reducing errors of garment automatic cutting system. It analysed the problems of using garment automatic cutting system, designed the data structure of pattern, designed the optimization algorithm of sorting, and illustrated the method that set up knife-start point.System has been tested by factory, realizing the target to reduce air travel, improve cutting efficiency and reduce costs.
關鍵詞: 服裝;計算機應用;路徑優化;路徑仿真;算法
Key words: garment;computer applications;path optimization;path simulation;algorithm
中圖分類號:TP273文獻標識碼:A文章編號:1006-4311(2010)05-0117-02
0引言
服裝自動裁剪系統實際上是計算機數字控制(CNC)加工機床(或稱為CAM,俗稱電腦裁床),在計算機的控制下,裁刀按裁剪指令進行布料的裁剪。裁剪數據文件是由CAD(計算機輔助設計)系統在排料圖的基礎上自動生成的用于控制裁刀進行工作的裁剪指令的集合。
隨著服裝行業的發展,服裝自動裁剪系統的普及率日漸提高,目前我國大約有500多家服裝企業使用大約十幾個國內外廠商推出的自動裁剪系統,如:美國格柏(GERBER)、法國的力克(Lectra)、加拿大的派特(PAD)、日本的川上(Kawakami)、高鳥(Takatori)、島精(Shima Seiki)、德國艾斯特(Assyst),以及我國的和鷹等。其中,美國格柏的服裝自動裁剪系統在八十年代初期就已進入中國市場,在國內已有大量的用戶。
際華三五零二職業裝有限公司早在1996就已引進了國外單層的、多層的服裝自動裁剪系統多套,對提高產品質量和企業經濟效益,提高企業的自動化水平起到了很大的作用。
1裁剪路徑優化的要求
使用服裝自動裁剪系統進行裁剪具有效率高、精度高的優點,但若處理不當也容易出現問題,這就需要在正式裁剪之前進行優化處理,以提高效率、防止裁剪錯誤發生。由于電腦裁剪指令是在使用服裝CAD系統設計的排料圖的基礎上生成的,在樣片排料時,設計人員根據節省面料的要求而排列樣片,由于排料的規則與自動裁剪系統的裁剪規則有差異,導致在排料圖中樣片的排列與裁剪路徑缺乏一致性,使得在電腦裁剪加工過程中空行程過大,效率降低。若不對裁剪路徑進行處理,難免在裁剪的過程中容易產生一些問題,主要表現在:①裁片的排列順序的順序不規則,容易造成空行程過大,使裁床效率降低;②有的起刀點部位不合適,容易損傷衣片;③共線部位重復裁剪,造成毛邊和浪費行程;④對稱裁片單向走刀,造成衣片的歪斜等。
裁剪路徑優化與仿真系統就是自動裁剪系統之前的一個輔助準備系統,主要作用是重新優化調整樣片的順序,下刀、走刀的位置,在正式裁剪之前對裁剪路徑和裁剪順序進行模擬,以便檢查,防止出現裁剪錯誤,造成損失。
2系統的總體設計
裁剪路徑優化與仿真系統由以下幾部分組成:與CAD/CAM的接口技術、樣片優化排序[1,2]、起刀位置優化、特殊樣片的處理、樣片重疊檢測、裁剪路徑仿真[3,4,5]等。
2.1 與CAD/CAM的接口技術用于讀取由CAD系統生成的排料圖文件,以便于進一步進行優化處理,見圖1。
2.2 樣片優化排序。按照減少空行程的原則,排列樣片裁剪時的先后順序。
2.3 起刀位置優化因為裁刀有一定的寬度和厚度,為了防止損傷鄰近的樣片,需要檢查各樣片的起刀位置,若對其它的樣片有影響,就需要調整起刀位置。
2.4 特殊樣片的處理特殊樣片指的是對稱樣片、矩形組等,要進行特殊的處理,對稱樣片需要雙向裁剪,矩形組共線部分要修改為只裁剪一次。
2.5 樣片重疊檢測在排料時若有樣片重疊,在裁剪時有可能造成樣片的損壞,對此必須進行檢測。
2.6 裁剪路徑仿真動態的模擬顯示裁剪路徑,便于正式裁剪之前的檢查。
3關鍵技術的實現
3.1 樣片的數據結構設計排料圖是由若干個獨立的樣片(見圖2)組成的,每個樣片包括一個編號和一條輪廓線,輪廓線是由若干個點連接而成的封閉多邊形,此多邊形即為自動裁剪系統裁剪時的有效行程(路徑)。因此在設計樣片的數據結構時,將樣片設計為一個樣片類CPiece,成員變量有、點數組,成員函數有編號設定函數、編號讀取函數、點坐標設定函數、點坐標讀取函數、樣片的繪圖函數。
3.2 樣片排序的規則和算法規則:樣片排序走向從排料圖的左下角點開始,走向見圖3所示,相鄰樣片遵循先近后遠、先小后大的原理進行排列[1,2]。
算法:①確定每節的長度;②計算排料圖的左下角點與第1節內各樣片的起刀點的距離,將距離最小的樣片的編號設定為1。若有兩樣片的距離相等,則樣片面積小的編號為1;③計算第1個樣片的抬刀點與第1節內其它樣片的起刀點的距離,將距離最小的樣片的編號設定為2。若有兩樣片的距離相等,則樣片面積小的編號為2;④按③中同樣的方法依次確定第1節內其它樣片的編號;⑤按按第1節同樣的方法確定其它節內樣片的編號。
實例:圖4、圖5分別為優化排序前后的樣片編號變化情況。
3.3 對稱片的處理與一般的樣片不同,具有對稱特點的樣片若在裁剪時沿輪廓線一周單向進行走刀的方式時(見圖6),容易造成裁剪后樣片的變形,最好是樣片沿對稱軸分為兩部分,進行雙向走刀,見圖7所示。
4結束語
本系統是服裝自動裁剪系統正式裁剪之前的預處理系統,主要工作是將排料圖中的樣片進行優化排序及路徑的動態仿真。所有功能均通過Visual C++ 6.0編程實現,優化可通過自動及交互完成,體現了智能化的要求。經過工廠實際試用,縮減空行程8-10%,裁剪錯誤減少85%,證明了系統的可行性和有效性。本系統的開發對服裝企業中電腦裁剪工作提高效率、降低成本,具有一定的意義。
參考文獻:
[1]梁吉元,郁鼎文,張玉峰,解開顏,王先逵.CAM系統中孔加工路徑的優化處理[J].計算機集成制造系統CIMS,2000,6(1),74-76.
[2]龔清洪,常智勇.基于DXF-OpenGL的繪圖軌跡優化及仿真[J].制造業自動化,2007,29(5):62-65.
[3]張少伍,韓江.基于VB 的數控系統圖形軌跡仿真設計[J],銅陵學院學報,2005,(3):62-63.
[4]張登霞,陳剛,沙琳.OpenGL在數控加工仿真系統中的應用[J].山東理工大學學報(自然科學版),2007,21(1):105-107.