




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CLIPS程式技巧 練習一 (安裝與設定)練習二 (簡易程式)練習三 (資料定義與邏輯比較)練習四 (模組化)練習五 (讀取資料)練習六 資料(知識)結構練習七 物件導向程式設計練習八 程序控制與平行處理撰寫程式經常發現的問題實例討論專家有何特殊不同之處?和用網頁來表達有何不同?Procedure/non-procedure languages哲學思考練習一 (安裝與設定)l 下載程式及安裝 (/) l 請下載示範程式(.tw/ftlin/course/LOGIC/clips基本練習/ex 1-3 ICstrategies.CLP ),供練習一、二、三使用。l 請嚐試交談式操作n 視窗操作n load:載入純文字檔(.txt)的應用程式 (*.clp)n reset:重置。不移除應用程式,但是所有參數均重設成原預設值。n run:先要執行reset後,才能執行run。n clear:移除程式,再重新load/reset/run其他程式。l 交談式簡易操作n CLIPS是類似LISP 的人工智能(AI)語言。n 所有的運算式均為函數(function),寫在 ( ) 之內,運算子(operator)位於第一位,其餘運算元(operand)跟隨在後。運算子和各運算元之間均以空格隔開(不是逗號)。空格只要一格以上即可,多空無妨。n 請試 (+ 1 2) ,看會發生什麼結果?n (+ 1 3 5) n 請自行試其它的運算式。l 實務上,仍須寫成應用程式。l 請注意:括號要雙雙對對! 請養成良好的程式格式習慣,會減少很多程式除錯的時間和體力!練習二 (簡易程式)l TXT檔案格式;副檔名: CLPl 主要包括二部份: deffacts, defrule 【此二字均是保留字,視為operator】l deffacts 定義已知的事實, defrule 定義推理規則l ; 註記行l 事實以串列表示。如: (Relation X Y Z)l ?X 代表變數。如: (Relation ?X ?Y ?Z )l 英文字之大小寫有別! 例如:(duck) 和 (Duck) 是不同的fact。l 請注意雙引號 之使用,不能用Words裡的雙引號。WordPad 或小作家的雙引號才行。l 僅註記行及字串得用中文。指令及變數均須英文字母(及合法之符號)。l 推理方法為型態比對(pattern matching),同位之常數要相同,變數可以對應變數或常數。元素個數要相同。=左(上)方之所有事實均比對成功後,該規則被啟動(activate)並置入議程(agenda)之中。議程依一定之策略(strategy)次序執行(fire)已被啟動之規則的=右(下)方各指令。l 各規則之啟動,係因左(上)方事實成立。換言之,一旦事實有所增減,專家系統即會自動找尋有那些規則可被啟動,或議程內原被啟動之規則,不再可以啟動,而自議程撤下。l 以下是可執行的應用程式實例。;-; 例: 都市發展策略; 宣告基本信念;目標/策略關係 策略本身是一種次目標(deffacts goal-strategies(gs 都市發展策略 減少失業率) ; 都市發展策略: 減少失業率(gs 減少失業率 吸引廠商); 減少失業率策略: 吸引廠商(gs 吸引廠商 降低通信成本); 吸引廠商策略: 降低通信成本(gs 吸引廠商 充足的網路建設); 吸引廠商策略: 充足的網路建設(gs 降低通信成本 民營化);降低通信成本策略: 民營化);推理規則; 推出所有的 目標-策略 關係 (策略本身也是一種次目標)(defrule t-gs (gs ?x ?y) (gs ?y ?z)=(assert (gs ?x ?z) ;已知之事實用 deffacts。後來推論所得者用assert。(printout t 欲達成 ?x 可採取 ?z 之策略 crlf);-;實例結束;-【作業】 l 會推導出欲達成減少失業率可採取民營化之策略,合理嗎?l 請將城鄉發展相關文獻之知識改寫成專家系統之形式,以CLIPS推理,看結論是否合理?並討論其問題出在何處?如何修正,可以使推理合理化?練習三 (資料定義與邏輯比較)l 用 deftemplate 定義某一資料型態之綱目(schema),再用描述該資料型態之實例。如下,我們先定義city資料型態,再描述Glasgow市之各屬性值。; 定義city資料型態(deftemplate city(slot name)(slot area)(slot population)(slot popu-year)(slot popu-year-type)(slot rate-of-jobless)(slot rate-of-jobless-year)(slot rate-of-jobless-year-type); 描述Glasgow市之各屬性值(deffacts basic-data-of-Glasgow(city (name Glasgow) (population 600000) (popu-year 1980)(popu-year-type s)(rate-of-jobless 0.168)(rate-of-jobless-year 1996)(rate-of-jobless-year-type y)l 邏輯比較要放在RHS,用IF-THEN-ELSE,如下例:(defrule determine-the-degree-of-jobless (city (name ?x) (rate-of-jobless ?y) (rate-of-jobless-year ?z)=(if ( ?y 0.05)then (assert (status-of-jobless ?x serious)(printout t ?x 在 ?z 年的失業率十分嚴重 crlf) else(assert (status-of-jobless ?x no-problem)(printout t ?x 在 ?z 年沒有失業問題 crlf) )【作業 新增資料及規則】(1) 自行以deffacts之指令,增加1-2個城市的資料。(2) 執行練習三之程式,看是否正確判斷城市之失業問題。(3) 加入以下的規則:若X在z年的失業率十分嚴重,則X應找尋新的發展策略。練習四 (模組化)l 可以分別寫在不同檔案l 分別load各檔l 或者寫成一批次檔(如下,副檔名BAT),再以 load batch指令一次載入,例如:n (load C:/Documents and Settings/ftlin/My Documents/courses/空間邏輯/資訊城市/模組化/ex4 - 變數中文意義.CLP)n (load C:/Documents and Settings/ftlin/My Documents/courses/空間邏輯/資訊城市/模組化/ex4 - 目標策略關係.CLP)練習五 讀取資料l 用read讀取一個字;用readline讀取一個句子(數個字)。l 用bind 將讀取的字(句),指派給某一變數l 請注意執行過程中,Facts視窗內容的變化。(read 或readline所讀入之資料會出現在Facts視窗)l 由鍵盤讀取資料: l 相關指令: read(defrule test-read(initial-fact)=(printout t Name a primary color crlf); 【printout 後面的 t 代表輸出到螢幕 】(assert (color (read); 【單獨的 read代表由鍵盤輸入】)l 由鍵盤讀取一行字,並存於某變數,以供後續使用。l 相關指令:(readline) 、(bind )(defrule test-readline(initial-fact)=(printout t Enter input crlf) (bind ?string (readline) ; 【bind 指令: 將由鍵盤讀入之文字存於變數 ?string之中】(assert-string (str-cat ( ?string ); 【str-cat 指令:將數個字串連成一個字串】l 開啟檔案,並寫入、讀取、增加一行字。l 相關指令: open, close, printout, readline, read(defrule test-read(initial-fact)=(open test.dat rfile w); 【檔案test.dat位於與程式相同之目錄中】; 【可以加上路徑,以存取位於其他目錄之檔案】; 【rfile為簡稱,爾後程式中均使用簡稱,不用(含路徑之)檔案名稱】 ; 【w表示本檔案僅能從頭寫入,會覆蓋原有文字;不能讀取】(printout t 請輸入文字: crlf)(printout rfile This is the first test line. crlf); 【printout後加上檔案簡稱,將字串輸出於該檔案】(close); 【關閉檔案,檔案游標將回到檔案開頭】(open test.dat rfile r); 【r表示本檔案僅能被讀取,不能寫入】(printout t (readline rfile) crlf); 【readline後加上檔案簡稱,表示由該檔案讀取一行字串】(close)(open test.dat rfile a);【a表示該檔案僅能由文末寫入新字(串),不會覆蓋原有資料】(printout rfile This is the 2nd test line. crlf)(close)【完整程式範例親屬】; 本程式可以推論親屬關係; 本程式使用了以下之述詞(predicate); ( A X Y) 代表: X 是 Y 的 長輩; (deffacts names(A 甲 乙)(A 乙 丙)(A 乙 丁)(A 乙 戊)(A 丁 己)(defrule ancestor(A ?X ?Y)(A ?Y ?Z)=(assert (A ?X ?Z)(defrule ask=(printout t 請輸入長輩的名字:)(bind ?x (read)(assert (person ?x)(printout t crlf)(defrule answer(person ?x)(A ?x ?y)=(printout t ?y 是 ?x 的晚輩 crlf)【作業新增資料並存檔】增加上述親屬程式之功能:詢問新的親屬關係,寫入資料檔案。下次執行時,先行讀取該資料檔。練習六 資料(知識)結構一、指令練習l 複選及重置n .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/指令練習/複選.clp l Global variablesn .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/指令練習/globalvar.clp n local variablesl 串列(list)n .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/指令練習/事實串列.clp n .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/指令練習/num-arguments.clp l While loopl 複合條件邏輯運算AND, OR, NOTl 檢查某事實不存在: NOTn .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/指令練習/事實不存在的not.clp 二、 基本資料結構l 宗親(質性關係)n .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/指令練習/宗親.clp n 【作業兄弟姐妹】利用宗親程式,推論出同父母之兄弟姐妹的關係。n 【作業同輩】改寫(增修) 宗親程式,推論出同輩的關係。(提示:記錄輩份差)n 【作業親等及輩份差計算】找出任二人之間的親等及輩份差。l 決策樹(質性因果推論)n .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/指令練習/決策樹.doc n 【作業決策樹】(1)撰寫上述決策樹之CLIPS程式。(2)擴充決策樹,繼續判斷不同物種。(3) 增加quit 及 回到start的功能。l 水災防治因果關聯圖n 決策時經常遇到左右為難,或者長、短期效益矛盾的困境。本例模擬研訂治水政策所面對的問題。從知識結構的角度來說,本例的知識結構是比決策樹還複雜的循環圖。n .tw/ftlin/course/LOGIC/範例/水災防治因果關聯圖(教學範例).clp l 聯立方程式(量化預測)n .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/數學/聯立方程式.clp n 【作業一元二次方程式】:可以求 aX2+bX+c=0 解的專家系統n 【作業汽機車數量預測模型】 .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/數學/汽機車數量預測.doc l 堆疊與佇列 n 利用defclassn 堆疊: .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/basic data structure/stack.clp n 【作業佇列】:改寫stack.clp,使之成為具有佇列(排隊)行為的串列l 模糊推理 (Fuzzy reasoning)n 模糊集合理論,請參見 .tw/ftlin/course/CAAD/CourseInformation/document/模糊集合及邏輯.doc n 身高判斷(物理量心理量):輸入一身高,回報其身高的心理量:高、很高、矮、很矮、不高也不矮。u 提示1.分別建立高、矮、.等概念(心理量)的membership function。2.進一步建立很高、不算高、不高也不矮.的membership function。3.輸入一身高值後,分別計算它的各種degree of membership。4 .回報degree of membership最高值所對應的概念(心理量)。u 程式: .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/數學/模糊集合(身高).clpn 【作業】 請修正上列程式,加入很高、很矮、不高也不矮三個membership functions。n 【作業】承上題,輸入心理量之後,估計其可能的身高。l 階乘 (deffunction之運用)n .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/數學/階乘.clp l 樹狀結構n 讀入一連串的數目,以左方小於等於根,右方大於根之規則,建成樹狀資料結構,並輸出成一資料檔。n 程式1: .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/樹及圖/tree-example1.clp n 程式2: .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/樹及圖/tree-example2.clp 三、拓樸演算法 【注意:請在CLIPS的執行環境下,將Execution/Options/Strategy設定為Breadth】1. 以CLIPS練習拓樸學(topology) 或稱圖論(graph)之基本表示法。 .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/樹及圖/ex6-1 graph-basic.clp 2. 偵測迴圈之存在。 .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/樹及圖/ex6-2 loop.clp 3. 延伸樹之演算。 .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/樹及圖/ex6-3 spanning-tree.clp 4. 樹狀結構之廣度優先搜尋法 (Breadth First Search) .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/樹及圖/BFS-tree.clp 【學習重點: (1) defclass 指令的用法。 詳練習七! (2) 演算法 (algorithm)】5. 樹狀結構之深度優先搜尋法 (Depth First Search) .tw/ftlin/course/LOGIC/clips基本練習/ex6 資料結構/樹及圖/DFS-tree.clp 【學習重點: stack, push, pop】【作業】(1) 修改上述程式,讓操作者可以(1)自行增加節點及連結,如已經存在,應提醒已經存在,不必再加;(2)自行刪減連結(不刪節點,只刪連結),若該連結本不存在,應提醒該連結本不存在,無法刪去,(3)輸入二個節點名稱,系統告知二者之間是否存在路徑?(2) 請自行建構一個具有多個迴圈,ex6-2 loop.clp程式能夠找到多少迴圈?【討論】圖論之各種(程序性)演算法,以規則式來撰寫,有何其便利及困難之處?【作業中序】讀入上一題所建之樹的資料檔,依中序列印出其由小而大的順序。提示:每一個node要有一個編碼(ID),左右子點及父點均是指向其ID,而不是指向資料內容本身。Node的格式如:(node ID value left-ID right-ID parent-ID)【討論divide, conquer and merge】如何將一個複雜的問題切割(divide)成小的子問題,分別解決(conquer)之後再加以合併(merge)?在上例,排序問題被切成建樹及中序二個子問題,透過檔案加以結合。子問題的程式可以分別獨立撰寫,互不影響其所設定的local variable的命名。如是,子問題如同軟體零組件,可以交由不同國家/設計團隊開發,運用其低廉的人力,但他們僅知其一,不知其二,而由系統規劃分析人員加以組裝之。練習七 物件導向程式設計基本觀念 .tw/ftlin/course/GIS/物件導向式資料庫.doc .tw/ftlin/course/LOGIC/clips基本練習/ex7 物件導件基本技巧.clp 【Word 版: .tw/ftlin/course/LOGIC/clips基本練習/ex7 物件導件基本技巧(MSword).doc 】練習八 程序控制與平行處理 .tw/ftlin/course/LOGIC/clips基本練習/ex8 程序控制及平行作業 - OO之現勘準備作業.clp 本練習模擬營建署審議開發案現勘籌備作業之流程【註】目前(2005)CLIPS的OO僅能描述ISA的關係,尚不能描述HAS或其他關係。但仍能用原來的 predicate來描述各種關係。撰寫程式經常發現的問題:l (建議)步驟:n 以查詢者之身分,設定問題情境。【誰問什麼問題?】n 以領域專家之身分,回答問題,建構知識體系(決策樹)。n 繪製事件圖(決策樹)n 以知識工程師之身分,撰寫程式。n 找查詢者及領域專家進行測試,修正程式。l 程式的正確性:只好多翻翻手冊,問問有經驗的人。l 邏輯流程n 問題的前後次序n 重複問問題n 中文語意不清、不明確 【User Interface】n 出現Y/N 殊途同歸。不須問該問題,因為Y/N之結果一樣。n 有不可能發生的路徑?l 問題的本質:判斷/決策樹n 診斷:汽車、電腦n 分類:古蹟、動物 (terminals 為 Classes)n 指認:古蹟、動物 (terminals 為 instances)n 簡單的問題結構可以用decision tree來表達。複雜的問題便會需要graph。l 知識的體系化、結構化n 讓領域專家成為知識工程師(合為一人)。u 領域專家與知識工程師之間的溝通十分困難,經常造成專家系統的失敗。如今,我們讓領域專家成為知識工程師(合為一人)。希望能突破此一困境。n chunk:片斷知識n 有效的將片斷知識予以系統化,尤其當新的知識進來,或刪去舊知識,而仍舊保持明晰的系統(仍維持是decision tree)n 儘量避免預設的問答次序。(宜採用switchcasedefault指令)n 可以將已知的資料(庫)建立於deffacts/instances,讓查詢者有案例可參考。 l 化簡(精緻化)n 邏輯已經是正確n 如何縮短決策步驟? = 去除不必要之步驟n 如何設定default 值?(尤其是多選項)l 【User Interface】n 如何讓專家與一般使用者正確瞭解用詞之語意?n 如何很快的瞭解到(感知到)使用者與專家之間的知識差距?n 應請查詢者做專家系統測試,以瞭解使用者之查詢需求。n 應使用查詢者可以理解或者回答之語句。n 如使用術語,應能讓查詢者進一步查詢該術語之意義。n 應確認程式設計者與查詢者的語意是否相同?(是否對問答之用詞有相同之理解)。實例討論【王文君:法律專家系統】n 可以納入全部法條,變成一部電子書。n 可以加入案例(判例)及說明、參考。利用案例式推理的方法,擷取條件最近似之案件,提供查詢者參考。【分類問題】l 鳥類辨識、電腦問題診斷、古蹟分級、均是分類問題。l 分類有其目的。目的不同,分類的準則(屬性)不同,其結果也不同。l 分類的述詞: n 需要二種述詞u IS (X, A, V): X的A屬性值為Vu CLASS (X, Y): X 的類別為Yn X 為待分類之物件集合n A = A1, A2, A3, 【可以有不同的屬性,如體積、重量、價格】n V = VA1, VA2, VA3, 【不同屬性,分別對應不同的值域】n Y = Y1, Y2, Y3, n 例: n X 為所有中國建築之集合n A = 屋群型式,屋頂型式,樓層數,建材n V屋群型式= 獨棟式,四合院,三合院,連棟式街屋n V屋頂型式= 歇山式、硬山式、懸山式、燕尾、平屋頂 n V 樓層數 = 自然數系n V建材 = power set of 木,石,磚,竹,水泥,鋼骨 【容許多種建材混用】n Y = 官式建築,民居,窯洞,吊腳樓,廟,家祠,規則n 某類建築型式構成要素之規則u IS(x, 屋群型式, 四合院) IS(x, 歇山式) CLASS(x, 官式建築)n 類型及次類型之間的關係規則u CLASS(x, 窯洞) CLASS(x, 民居)l 以首階邏輯描述之分類體系,即便是樹狀的,其層級順序並非固定的。亦即,不一定要先就A1分類,再依A2, A3,依序分類。l 首階邏輯描述之分類體系容許網絡結構,讓一個子類同時(可能)屬於不同的父類。例如:歇山式的四合院建築可能是官式建築、宮殿,也可能是國家劇場(如中正紀念館之國家劇院、音樂廳)l 上述首階邏輯之分類體系,其基本事實之描述是表格式的。專家有何特殊不同之處?和用網頁來表達有何不同?l 語言的表述能力(expression power)。n 各種(電腦)語言的表述能力是否一樣?n 某些概念或者問題,用某種語言比較容易表述。l 可以用網頁來表達樹狀、網絡的知識結構。l 祖先問題是一個樹狀結構問題。l 可否用網頁來表述祖先問題?n 不能用網頁,一次全部推論出所有的祖先或子孫。u 要加上以下之能力才行l 推論n 仍然要建立龐大的資料庫。n 是否容許網頁具有搜尋、網頁編輯器(維基百科)的功能?n 功能程式一定要用ES來寫嗎?l Google可以不經首頁,直接找到某頁。l 網頁:必須一頁一頁去找。l 也必須沿者決策樹一層一層往下走。l 對使用者而言,無差別。l STRATEGY(程序控制策略):這是專家系統的特色之一。Procedure/non-procedure languagesl 傳統的程式語言(例如:FORTRAN, C, VB)大多是程序性語言(procedural languages),程式指令的順利相當重要。次序不同就會得到不同的結果。l 許多人工智能(AI)語言,是非程序語言。專家系統CLIPS即是。數學的聯立方程式也是。理論上(理想上),指令、規則的順序無關緊要。l 程序性語言的重點是HOW to do, 要把演算程序步驟詳細的寫出來。l 非程序性語言的重點是 WHAT to do, 只要把問題要素的關係、規則講清楚即可,不必考慮解決的步驟為何。(事實上,領域專家也經常說話顚三倒四,並不按一定的次序想起規則)l 聯立方程式是一種non-procedure languagel 方程式的順序不重要l 存在二種(以上)的解題程序。l 解題程序之控制,在程式執行時,才由使用者決定。(程序性語言必須於程式撰寫時同時決定各模組之執行順序)。l 概念的層級。高階概念(專業術語)是從低階概念建構上來的;例如,容積率是由土地面積、建築面積、除法等基本概念所構成。使用高階概念,會十分便利、迅捷。但是,必要時仍然可以用低階概念來重述高階概念。程式語言亦復如此。CLIP是一種相當高階的語言,具有許多浮現出來的能力(例如程序控制),但它仍然是可以用程序語言來表達(但就會十分繁瑣費事)。l 這是一個專業化、模組(具)化的分工過程。資訊系統因為如此分工,才使系統的發展變得相當有彈性、可以多樣化的組合(重構),結果,成長相當快速。必須注意的是,分工只是一個面向;另一個面向是整合。資訊系統因為有清楚定義的分工和整合界面,才能夠多而不亂、快速累積知識,產生知識的綜效力量。(知識分工反而造成零碎、片斷化,這是各知識領域之間未能有效整合之故)。l 從知識論來說,我們企圖建構一種知識整合平台,讓不同的知識能夠源源不斷的新陳代謝,而不失其系統性、結構性。(如何整合不同專家的知識?)l 使用某一種語言,得到了某一種便利,但也必然會受到它所帶來的限制。自然語言正如礦泉水,有許多雜質,也充滿了養分;電腦程式語言就像蒸餾水,十分純淨,可以醫療使用,避免細菌感染,但是毫無養分。所以,就單
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 军械检修考试题及答案
- 荆门驾考试题及答案
- 2025年中国硬笔书法模具数据监测研究报告
- 金融考试题目及答案
- 连铸工成本控制考核试卷及答案
- 电解精炼工数字化技能考核试卷及答案
- 保温成棉控制工适应性考核试卷及答案
- 教材分析考试题及答案
- 康复辅助技术咨询师操作考核试卷及答案
- 光伏聚光组件制造工成本预算考核试卷及答案
- 初步设计及概算评估咨询服务方案投标文件(技术方案)
- 深度学习课件:适合初学者的教程
- 英语四级+六级词汇大全(带音标)
- 2025唐山市遵化市华明路街道社区工作者考试真题
- 排水管网工程运营管理与维护方案
- 弘扬教育家精神做“四有”好老师专题培训
- 2025至2030中国煤炭贸易行业营销战略分析及未来发展机遇可行性报告
- 风力发电系统安全性研究-深度研究
- 大学新生专业思想教育
- 三叉神经鞘瘤护理查房
- 课件围术期下肢深静脉血栓的预防与护理
评论
0/150
提交评论