《人工智慧与软体工程之应用.ppt》由会员分享,可在线阅读,更多相关《人工智慧与软体工程之应用.ppt(28页珍藏版)》请在三一办公上搜索。
1、人工智慧與軟體工程之應用,Outline,軟體工程(Software Engineering)人工智慧(Artificial Intelligence)人工智慧的應用人工智慧的執行應用人工智慧技術於軟體工程結論,軟體工程(Software Engineering),軟體工程以標準的工程方法分多個階段一步步來開發軟體,系統設計,系統分析,需求規劃分析,系統上線維護,系統測試,程式編碼,結構化系統分析,問題分解/功能分解將大而複雜的問題(或功能)分解到較小而簡化的問題(或功能),直到成為容易理解的問題(或可直接實作的功能)為止,物件導向系統分析,將資料與功能封裝於物件中,1,N,1,1,N,N,N
2、,N,人工智慧(Artificial Intelligence),電腦聰明?有智慧?電腦會下棋、算命、解數學難題、玩電腦遊戲、看病、問題診斷等智慧功能由軟體程式所提供軟體程式所提供的功能,電腦才會具有此能力,電腦並不會自己發展新功能一般常用來撰寫人工智慧軟體之語言人工智慧程式語言Prolog、Lisp、CLIPS 等一般用途程式語言VB、C、JAVA 等,人工智慧(AI)的意義,Using methods based on the intelligent behavior of humans and other animals to solve complex problems-Ben Cop
3、pin人類的智慧行為有哪些?理解能力圖形識別(視覺)、聲音識別(聽覺)、語言理解學習能力從經驗中學習、從範例中學習、從教導中學習推理能力邏輯推理、知識推理判斷能力診斷、解釋、預測求解能力下棋、問題規劃,人工智慧的應用:圖形識別(電腦視覺),以文字辨別為例,需三個步驟方格切割骨架化資料庫比對,A B C,ABC,人工智慧的應用:下棋,兩人輪流下棋,可以用遊戲樹(game tree)來計算對自己最有利的走法訂出評估函數:計算各種走法的評估值,以選擇對自己最有利的走法MinMax search:由於為兩人輪流下棋,自己會選擇下層評估值的最大值(對自己最有利),而對方會選擇最小值(對自己最不利),-3
4、,2,-1,3,-,-,2,4,2,4,1,3,5,5,-2,3,-4,3,:自己走,取最大值,:對方走,取最小值,此遊戲樹只計算到第三步,第一步,第二步,第三步,以圈叉棋為例:假設只計算兩步自己贏(連成一線)則評估值=,對方贏則評估值=否則 評估值=自己還有可能連線的總數對方還有可能連線的總數,1,1,-1,-2,O,O,O,1,O,X,6-5=1,0,O,X,5-5=0,-1,O,X,4-5=-1,1,O,X,6-5=1,0,O,X,5-5=0,-1,O,X,5-6=-1,0,O,X,6-6=0,-1,O,X,5-6=-1,-2,O,X,4-6=-2,0,O,X,6-6=0,1,O,X,5
5、-4=1,2,O,X,6-4=2,第一步,第二步,人工智慧的應用:模糊邏輯(Fuzzy Logic),一般日常的用語或需求經常都是模糊的而非明確絕對的,例如冷氣再冷一點電子鍋煮的飯稍微硬一點身材高一點、年紀輕一點、快、慢、多、少、輕、重、冷、熱 等等傳統邏輯的真值只有“真”(1)或“假”(0),模糊邏輯允許真值介於 0 與 1 之間,而非絕對模糊邏輯可以使用成員函數(membership function)來表達模糊的意義例如,某人找工作的條件為錢多、事少、離家近,其成員函數,1,0,0.2,0.4,0.6,0.8,20K,30K,40K,50K,60K,70K,1,0,0.2,0.4,0.6
6、,0.8,30,35,40,45,50,薪水多一點的成員函數,每週工作時數少一點的成員函數,55,人工智慧的應用:專家系統(Expert Systems),利用專家知識來診斷、解釋、預測、或求解答以醫生診斷系統為例:將醫生的專家知識電腦化,儲存在知識庫(Knowledge Base)中若出現頭痛與鼻塞症狀,則為 A 型感冒症狀若出現咳嗽、流鼻水、與打噴嚏症狀,則為 B 型感冒症狀若出現發燒與喉嚨痛症狀,則為 C 型感冒症狀若為 A 型感冒症狀需吃阿司匹靈若有胃痛症狀需吃胃藥病人可以輸入其身體狀況到此醫生診斷系統中假設輸入頭痛、鼻塞、與胃痛三種症狀專家系統可以根據所輸入的事實來比對(match)
7、專家知識,以自動推理出診斷結果與藥方診斷結果:A 型感冒症狀藥方:阿司匹靈與胃藥,人工智慧的執行,使用人工智慧方法求得問題解答的過程中,需要執行兩個重要工作知識的表示知識的推理數學邏輯為最常用的知識表示法將知識表示成數學邏輯後,可利用數學推演的證明,從舊有知識中推理出新知識,述語邏輯(Predicate Logic)之例子,假設我們有下列五項知識與事實,請問 Mary 與 Peter 的關係若 x 是 y 的父親,y 是 z 的父親,則 x 是 z 的祖父若 x 是 y 的祖父,z 是 x 的太太,則 z 是 y 的祖母 John 是 Kevin 的父親Kevin 是 Peter 的父親Mar
8、y 是 John 的太太把這五項知識與事實表示成述語邏輯(x)(y)(z)Father(x,y)Father(y,z)GrandFather(x,z)(x)(y)(z)GrandFather(x,y)Wife(z,x)GrandMother(z,y)Father(John,Kevin)Father(Kevin,Peter)Wife(Mary,John),利用述語邏輯的歸結推演,以比對匹配及取代的方式產生新知識GrandFather(John,Peter)(x)(y)(z)Father(x,y)Father(y,z)GrandFather(x,z)Father(John,Kevin)Father
9、(Kevin,Peter)John 取代 x,Kevin 取代 y,Peter 取代 zGrandMother(Mary,Peter)(x)(y)(z)GrandFather(x,y)Wife(z,x)GrandMother(z,y)Wife(Mary,John)GrandFather(John,Peter)為新產生知識John 取代 x,Peter 取代 y,Mary 取代 z求得 Mary 與 Peter 的關係為 GrandMother(Mary,Peter)GrandMother(Mary,Peter)稱為一個述語 predicateGrandMother 為後面兩個參數的關係名稱,知
10、識推理方式,正向推理(forward chaining)根據已知的資料與事實往前推論,產生新的知識,以達到目標或稱為 資料驅動(data-driven)述語邏輯的例子即為正向推理已知 3 項事實,包括 John 是 Kevin 的父親、Kevin 是 Peter 的父親、Mary 是 John 的太太、以及祖父關係與祖母關係的兩個規則目標為“求出 Mary 與 Peter 的關係”(此目標為未知)經由正向推理之後產生新知識,得知 Mary 為 Peter 的祖母,目標,已知資料與事實,新事實,新事實,推理,推理,推理,知識推理方式,反向推理(backward chaining)已知目標是什麼,
11、往後推論此目標的達成方法或稱為 目標驅動(goal-driven),已知目標,解答,子目標,推理,子目標,推理,推理,反向推理之例子:機器人取下燈泡問題如下圖,房間內有一個機器人、一個箱子、和一個燈泡,燈泡掛在天花板下,但機器人的高度搆不到燈泡,請問機器人如何取下燈泡?已知目標為“機器人取下燈泡”機器人可以做的動作包括機器人用機器手臂取下燈泡機器人從 A 走到 B機器人從 B 走到 C機器人從 C 走到 B機器人從 B 走到 A機器人爬到箱子上機器人把箱子從 A 推到 B機器人把箱子從 B 推到 C機器人把箱子從 C 推到 B機器人把箱子從 B 推到 A請問機器人要如何做(做哪些動作以及順序為
12、何)才能取下燈泡?,反向推理過程已知目標為“機器人取下燈泡”,可以分解為三個子目標箱子在 B機器人站在箱子上機器人用機器手臂取下燈泡“箱子在 B”的子目標可以再分解為二個子目標機器人在 C機器人把箱子從 C 推到 B“機器人在 C”的子目標可以再分解為二個子目標機器人從 A 走到 B機器人從 B 走到 C因此解答為五個步驟:機器人從 A 走到 B、機器人從 B 走到 C、機器人把箱子從 C 推到 B、機器人爬到箱子上、機器人用機器手臂取下燈泡,應用人工智慧技術於軟體工程,Knowledge-Based Software Engineering 提供軟體系統知識推理之能力傳統的軟體工程無法處理知
13、識密集(knowledge-intensive)之應用,也無法提供推理功能(inference)以解決問題例子:資工系排課系統將系辦助理的排課知識寫成專家系統的規則(專家知識庫)載入所有的課程、教師、班級、教室、時段資料(事實)專家系統的推理引擎可以根據所輸入的事實來比對(match)專家知識,以自動推理出同時符合的可行解,將人工智慧程式整合至排課系統,Presentation Tier,Flow Control Tier,Business Logic Tier,Data Tier,KnowledgeBase,InferenceEngine,WorkingMemory,Database,Sol
14、ution,Application Server,Application Software,DB Server,Web Server,Client,Servlet,JSP,Browser,教師開課子系統,系辦排課子系統,應用人工智慧技術於軟體工程,Automated Software Engineering模擬軟體工程師與程式設計師的專家知識軟體開發自動化軟體規格自動驗證軟體規格自動產生程式軟體程式自動測試例子:MicroStep、Rational Rose、Borland Together、TBCG,會議排程系統的 TBCG 軟體規格,自動產生會議排程系統的輸入畫面,會議排程系統的排程結果,結論,軟體工程的終極目標?自動化程式設計加入人工智慧是否有可能達成目標?Specific vs General電腦是否可能有自行思考之能力?Strong AI vs Weak AI,