dds推理机实验报告

上传人:第*** 文档编号:32684508 上传时间:2018-02-12 格式:DOCX 页数:7 大小:24.53KB
返回 下载 相关 举报
dds推理机实验报告_第1页
第1页 / 共7页
dds推理机实验报告_第2页
第2页 / 共7页
dds推理机实验报告_第3页
第3页 / 共7页
dds推理机实验报告_第4页
第4页 / 共7页
dds推理机实验报告_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《dds推理机实验报告》由会员分享,可在线阅读,更多相关《dds推理机实验报告(7页珍藏版)》请在金锄头文库上搜索。

1、DDS 推理机实验报告学号:姓名:专业:指导: 赵峰时间: 2013-12-30正向推理机原理:创建 2 个二维数组 ,R 与 have 对应一个为规则 R一个为判断规则中是否有事实 have若存在则将 have 数组中相对应的弄成 true,表示存在包含 3 个类, 函数类 Function.java,规则类 Rule.java,演示类 TestDemo.java Rule 类package tuli;public class Rule String r=通过哺乳养育后代,r,哺乳动物,有毛发,r,哺乳动物,有羽毛,r,鸟,会飞且生蛋,r,鸟,哺乳动物,有爪,有犬齿,目盯前方,r,食肉动物,

2、哺乳动物,吃肉,r,食肉动物,哺乳动物,有蹄,r,有蹄动物,有蹄动物 ,反刍食物,r,偶蹄动物,/食肉动物,黄褐色,有黑色条纹,f, 老虎 ,食肉动物,黄褐色, 有黑色斑点,f,金钱豹,有蹄动物,长腿 ,长脖子,黄褐色, 有暗斑点 ,f,长颈鹿, 有蹄动物, 白色 ,有黑色条纹,f, 斑马 ,鸟,不会飞, 长腿,长脖子, 黑白色,f,驼鸟,鸟,不会飞, 会游泳,黑白色,f, 企鹅 ,鸟,善飞, 不怕风浪,f, 海燕,;Function 类package tuli;import java.util.Arrays;public class Function public static void i

3、sHave(String rule, String fact, boolean have)for(int i = 0; i rule.length; i+)for(int j = 0; j rulei.length-2; j+)for(int k = 0; k fact.length; k+)if(ruleij.equals(factk)haveij = true;public static void print(boolean have,String rule, String fact)for(int i = 0; i have.length; i+)for(int j = 0; j hav

4、ei.length j+)if(j = havei.length - 1 & ruleirulei.length - 2.equals(f)System.out.println(该动物是:+ruleirulei.length - 1);public static String expend(boolean have, String rule, String fact)int flag = 0;for(int i = 0; i have.length; i+)for(int j = 0; j havei.length j+)if(j = havei.length-1)for(int k = 0;

5、 k fact.length; k+)if(!factk.equals(ruleirulei.length-1)flag+;if(flag = fact.length-1)fact = Arrays.copyOf(fact, fact.length+1);factfact.length-1 = ruleirulei.length-1;return fact;public static int check(boolean have, String rule)int flag = 0;for(int i = 0; i have.length; i+)for(int j = 0; j havei.l

6、ength j+)if(ruleirulei.length - 2.equals(f)flag = 1;else if(ruleirulei.length - 2.equals(r)flag = -1;return flag;TestDemo 类package tuli;public class TestDemo public static void main(String args) Rule rule = new Rule();boolean have = new booleanrule.r.length;for(int i = 0; i rule.r.length; i+)havei =

7、 new booleanrule.ri.length-2 ;String oldfact;String fact = 通过哺乳养育后代 ,吃肉,黄褐色,有黑色条纹;while(true)Function.isHave(rule.r, fact, have);int flag = Function.check(have,rule.r);if(flag = 0)System.out.println(Sorry! 没有结果!); break;else if(flag = 1)Function.print(have, rule.r, fact); break;else if(flag = -1)old

8、fact = fact;fact = Function.expend(have, rule.r, fact);if(oldfact.equals(fact)System.out.println(Sorry! 信息不足, 无法得出结论);break;反向推理机Rules 类package tuli;public class Rules /定义规则类String str=R1:3555 岁之间的人称为中年人 ,R2:中年人是老练的,R3:中年人是细心的,R4:老练而细心并有驾驶技术的人是不会出交通事故的事实,目标条件:通过结论反向推理出结果?n;/打印如下的规则public void print(

9、)System.out.println(定义如下的规则:);for(int i=0;istr.length;i+)System.out.println(stri);Consequence 类package tuli;import java.util.Scanner;public class Consequence /*通过结论反推理出此人的特征 */public static void main(String args) Rules r=new Rules();/打印规则r.print();String str=new StringA.有,B.没有;/从控制台输入选项Scanner conso

10、le=new Scanner(System.in);System.out.println(1.此人有无出过交通事故?);for(int i=0;istr.length;i+)System.out.print(stri+t);System.out.println();System.out.println(请输入你选的答案:);String s=console.next();/进行逻辑判断if(s.equals(A)System.out.println(运用规则得出如下结论: n+分为以下几种情况:n+1.此人为非老练的和细心的但是有驾驶技术!n+2.此人是老练和细心的但是没有驾驶技术n+3.此人

11、既不是老练的和细心的也没有驾驶技术n);System.out.println(附加条件:n 此人是否是老练而细心?);System.out.println(A.是nB. 否);System.out.println(请输入你选的答案: );String p=console.next();if(p.equals(A)System.out.println(结论:n1.此人是中年人n +2.年龄在 3555 岁之间n +3.无驾驶技术);elseSystem.out.println(结论:n1.此人是非中年人n +2.年龄不在 3555 岁之间n +3.无驾驶技术);elseSystem.out.println(运用规则得出如下结论: n+可推出此人是:n 老练而细心的并且有驾驶技术n+再由规则 R1,R2,R3 反推出:n+1.此人是中年人 n2.年龄在 3555 岁之间);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号