基于Prolog服装导购专家系统的设计与实现

时间:2022-09-09 08:18:25

基于Prolog服装导购专家系统的设计与实现

摘要:购买服装对于人们来说是一件很平常的事情,该专家系统充当了服装店铺服务员的角色,根据顾客提供的基本信息,如颜色、价格和款式等,结合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

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\n "," the clothes Id : ",Id," ",X," ",H," ,\n

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 =Ansprice/2)和颜色范围,按多项因素优先级为顾客推荐服装。通过回溯,搜索所有答案,不断为顾客推荐服装,如果仍不能满足顾客需要,由“店长”根据今年的流行款式和颜色搭配为顾客推荐服装,并保证顾客能够接受颜色和最高价位。

3.3 结果测试

知识获取需要通过人机接口,按要求咨询顾客,结合顾客提供的基本信息,搜索和匹配事实,专家(店长)意见,进而推荐服装,测试实现结果如图2所示。

4 结束语

Prolog具有模式匹配、递归、回溯、对象机制、事实数据库和谓词库等强大功能,Prolog是当前人工智能应用编程和专家系统开发的一个常重要的工具,提高了工作效率和简化了程序编写。本系统是基于Prolog的专家系统,实现了快速为顾客推荐服装,在快节奏生活的今天,这是必要的。

参考文献:

[1] 武波,马玉祥.专家系统:修订版[M].北京:北京理工大学出版社,2001.

[2] 刘自伟,曾立胜.基于Visual Prolog中医诊疗专家系统的设计与实现[J].微电子学与计算机,2008(2).

[3] 雷英杰,邢清华,孙金萍,等.Visual Prolog编程、环境及接口[M].北京:国防工业出版社,2004.

上一篇:基于内容的音频参数提取与动画控制实现 下一篇:基于SOA的住房公积金管理系统的实现