关系算子的prolog描述.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关系算子的prolog描述

关系算子的PROLOG描述 第三组 要点 表示Prolog的关系算子操作对象 定义Prolog上的关系算子 实现Prolog上的关系算子 关系算子操作对象的表示 关系算子作用于集合上。集合例子: P = {a, b, c, d} Fruit = {apple, banana, orange, peach, watermelon} Language = {Chinese, Japanese, French, English, Spanish} Prolog关系算子对象表示:List。对应例子: P = [a, b, c, d]. Fruit = [apple, banana, orange, peach, watermelon]. Language = [chinese, japanese, french, english, spanish]. 关系算子的定义 传统集合的关系算子 并运算 交运算 差运算 补运算 笛卡尔乘积 Prolog的关系算子定义 并运算 交运算 差运算 补运算 笛卡尔乘积 并运算定义 集合的并运算 Prolog的并运算定义 List R S, Prolog并运算实现思想 算法思想: 对于两个List A和B的并运算,结果包括两部分: 1、List A中所有的元素; 2、List B中所有不包含A的元素。 递归思路: 1、当B中无任何元素,结构为A。 2、对于B中的头元素,假如其属于A,则舍弃,不属于则加到结果中。接着继续处理B=B-BHead的情况。 Prolog并运算算法实现 %method 1 uni(A,[],A). uni(A,[Hb|Tb],[Hb|Tc]):-uni(A,Tb,Tc), not(member(Hb,A)). uni(A,[Hb|Tb],Tc):-uni(A,Tb,Tc), member(Hb,A). %method 2 uni(A,B,C):-union(A,B,C). 并运算实例 Example 1: Alike=[apple, orange, peach, watermelon] Blike= [orange, peach, banana] X = [banana, apple, orange, peach, watermelon] ?- uni([apple, orange, peach, watermelon], [orange, peach, banana],X). Example 2: Alearn = [chinese, japanese] Blearn = [chinese,french, english, spanish] X = [french, english, spanish, chinese, japanese] ?- uni([chinese, japanese],[chinese,french, english, spanish],X). 交运算定义 集合的交运算 Prolog的交运算定义 List R S, Prolog交运算实现思想 递归思路: 1、对于B为[ ]的情况,不论A为何值,并的结果为[ ]。 2、对于B不为[ ]的情况,若其头元素属于A中,将其放入结果中,否则舍弃;接着继续处理B=B-BHead的情况。 Prolog交运算算法实现 %method 1 myintersection(A,[],[]). myintersection(A,[Hb|Tb],[Hb|Tc]):-myintersection(A,Tb,Tc), member(Hb,A). myintersection(A,[Hb|Tb],Tc):-myintersection(A,Tb,Tc), not(member(Hb,A)). %method 2 Myintersection(A,B,C):-intersection(A,B,C). 交运算实例 Example 1: Alike=[apple, orange, peach, watermelon] Blike= [orange, peach, banana] X = [orange, peach] ?- myintersection([apple, orange, peach, watermelon], [orange, peach, banana],X). Example 2: Alear

文档评论(0)

zhuliyan1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档