摘要:購買服裝對于人們來說是一件很平常的事情,該專家系統充當了服裝店鋪服務員的角色,根據顧客提供的基本信息,如顏色、價格和款式等,結合Prolog語言的自動推理能力,實現了給顧客快速推薦服裝。
關鍵詞:Prolog;推理;專家系統
中圖分類號:TP182文獻標識碼:A文章編號:1009-3044(2009)33-9552-02
The Design and Realization ofPurchasing Clothing Expert System Based onProlog
PENG Tian-hao
(School of Computer and Information Science, Kaili University, Kaili 556000, China)
Abstract: It is a common thing for buying clothes. The expert system recommends clothes to customers more quickly and convenient than a shop server do. The system there, linking with the automatic reasoning ability of Prolog, act as a shop server to provide basic information, such as colors, prices, styles and so on with the customers.
Key words: Prolog; reasoning; expert system
1 設計的基本思想
購買服裝對于人們來說是一件很平常的事情,服裝品牌多,款式多,價格層次不一,希望能快速挑選一件適合自己的,自己喜歡的衣服,卻又不想花太多時間去店鋪閑逛挑選,聽服裝導購員不停的解說。設計該專家系統,根據顧客提供的基本信息,包括顧客喜歡的服裝款式、顏色和能接受的價格,實現服裝店鋪服務員快速推薦服裝的功能。如果提供的所有衣服都不能滿足顧客需求,此時由店鋪虛擬“店長”給該顧客推薦服裝,該服裝具備的特點有:本年度流行款式,顧客能接受的顏色和價格。
Prolog是目前最有影響的人工智能語言之一,由于該語言很適合表達人的思維和推理規則,具有邏輯推理能力,語法簡單,使用方便,在自然語言理解、機器定理證明、專家系統等方面得到了廣泛的應用,已經成為人工智能應用領域的強有力的開發語言。基于Prolog的服裝導購專家系統,能夠結合顧客基本信息,自動實現推理,快速推薦服裝。
2 體系結構
該系統包含有知識庫、推理機、綜合數據庫和人機接口等四部分,如圖1所示。
知識庫用于存放領域專家提供的專門知識。這些專門知識包含與領域相關的書本知識、常識性知識以及專家憑經驗得到的試探性知識。專家系統的問題求解是運用專家提供的專門知識來模擬專家的思維方式進行的,這樣知識庫中擁有知識的數量和質量就成為一個專家系統中系統性能和問題求解能力的關鍵因素。專家系統將領域專家的知識、經驗加以總結,形成規則,存入計算機建立知識庫,因此,知識庫的建立是建造專家系統的中心任務。
綜合數據庫用于存放關于問題求解的初始數據、求解狀態、中間結果、假設、目標以及最終求解結果。
推理機在一定的控制策略下針對綜合數據庫中的當前信息,識別和選取知識庫中對當前問題求解有用的知識進行推理。在專家系統中,由于知識庫中的知識往往是不完全的和不精確的,因此其推理過程一般采用不精確推理。
人機接口是將專家或用戶的輸入信息翻譯為系統可接受的內部形式,把系統向專家或用戶輸出的信息轉換成人們易于理解的外部形式。
3 具體實現
3.1 知識庫的設計
1) 通過詢問顧客喜歡的服裝類型(Ansstyle)、顏色(Anscolor)和能接受的價格(Ansprice),確定顧客的基本信息并保存在相關變量中。對服裝店的每一件衣服,采用事實來描述,描述如下:facts
clothes (id_clothes,name_clothes,style,colors,price)
對應的語義是(服裝編號,品牌名稱,服裝款式,顏色,價格)
如:clothes (10001,\"K-boxing\",\"Business Shirts\",[\"red\",\"white\"],660).
clothes_is(10002,\"K-boxing\",\"Business Shirts\",[\"green\",\"white\"],760).
2) 顧客提供喜歡的單一顏色color,如果沒有這種顏色滿足顧客,“店長”認為喜歡該顏色的顧客可能還喜歡其他顏色,再從其他顏色中選擇服裝。實現示例如下:
color_similar(\"red\",[\"red\",\"yellow\",\"orange\"]).%顧客第一喜歡紅色,可能還喜歡黃色和橙色,優先級為:紅色>黃色>橙色,下同
color_similar(\"white\",[\"white\",\"blue\",\"green\"]).等。
3) 顧客能夠接受的價格price,店長認為該price就為顧客能接受價格的最大值,最小值為price/2,所以有一個顧客接受價格的活動區間:[price, price/2],規則實現為:
ask_price(Ansprice,Price):-
Price<=Ansprice,
Price>=Ansprice/2.
4) 根據以上的服裝款式(Clothing styles)、顏色(color)、價格(price),然后就為顧客挑選衣服(find_clothes(clothestype,color,price))。規則如下:
find_clothes([H|T],Acolor,Aprice):-
clothes(Id,X,H,Color,Price),
ask_color(Acolor,Color), %被選出的衣服顏色Color是否是顧客喜歡的Acolor
ask_price(Aprice,Price), %該衣服價格是否是顧客能接受
write(\"The clothes we may provide is\ \",\" the clothes Id : \",Id,\" \",X,\" \",H,\" ,\
the Color is \",Acolor,\",the Price is\",Price), nl,
ask_customer(T,Acolor,Aprice), !,nl. %征求顧客的意見,是否喜歡
find_clothes([_|T],Anscolor,Ansprice):-
find_clothes(T,Anscolor,Ansprice).
find_clothes([],Anscolor,Ansprice):-
expert_select(Anscolor,Ansprice), !. %所有衣服都不滿足顧客時,由店長為顧客推薦今年的流行款
3.2 推理機的設計
所謂推理是指依據一定的原則從已有的事實出發推出結論的過程。在專家系統中,通常使用基于知識的推理。人類解決問題的能力主要體現在兩個方面:一是人類擁有大量的知識,二是人類具有選擇知識和應用知識的能力。基于實現知識推理的計算機構成了推理機,因此,推理機就是用來控制、協調整個系統的一組程序。
推理機是用來模擬人類專家求解問題的思維活動,它按照一定的推理策略,有效選擇知識庫中的知識,根據用戶提出的問題進行推理,最終推導出問題解答。所以說推理過程是一個思維過程,也是一個搜索的過程。本服裝導購專家系統推理采用的是匹配、回溯和遞歸技術,收集到顧客的基本信息后,搜索答案,嚴格尋找事實匹配,即強模式匹配。如果匹配不成功,采用弱勢匹配,擴大價格區間(Ansprice <= Price>=Ansprice/2)和顏色范圍,按多項因素優先級為顧客推薦服裝。通過回溯,搜索所有答案,不斷為顧客推薦服裝,如果仍不能滿足顧客需要,由“店長”根據今年的流行款式和顏色搭配為顧客推薦服裝,并保證顧客能夠接受顏色和最高價位。
3.3 結果測試
知識獲取需要通過人機接口,按要求咨詢顧客,結合顧客提供的基本信息,搜索和匹配事實,專家(店長)意見,進而推薦服裝,測試實現結果如圖2所示。
4 結束語
Prolog具有模式匹配、遞歸、回溯、對象機制、事實數據庫和謂詞庫等強大功能,Prolog是當前人工智能應用編程和專家系統開發的一個常重要的工具,提高了工作效率和簡化了程序編寫。本系統是基于Prolog的專家系統,實現了快速為顧客推薦服裝,在快節奏生活的今天,這是必要的。
參考文獻:
[1] 武波,馬玉祥.專家系統:修訂版[M].北京:北京理工大學出版社,2001.
[2] 劉自偉,曾立勝.基于Visual Prolog中醫診療專家系統的設計與實現[J].微電子學與計算機,2008(2).
[3] 雷英杰,邢清華,孫金萍,等.Visual Prolog編程、環境及接口[M].北京:國防工業出版社,2004.