SWI项目开发(项目书框架)+代码

2023-10-07 21:59
文章标签 代码 项目 开发 框架 swi

本文主要是介绍SWI项目开发(项目书框架)+代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SWI项目开发(简略版)

”熊猫“鉴别系统设计与实现

创建一个”熊猫“鉴别系统

项目书如下:
实验目的
实验要求
实验环境
实验内容
实验步骤
问题思考
实验总结

一、实验目的

(1)深入实践课程的理论知识;
(2)理解并掌握人工智能prolog语言,熟练使用SWI-PROLOG;
(3)加强对智能系统课程内容的理解和掌握,培养综合运用所学知识开发智能系统的能力。
(4)增强小组成员间的合作能力和沟通能力。

二、实验要求

(1)用产生式规则作为知识表示,用产生系统实现该系统。
(2)可使用本实验指导书中给出的示例程序,此时只需理解该程序,并增加自己感兴趣的修改即可;也可以参考该程序,然后用PROLOG语言或其他语言另行编写。
(3)程序运行时,应能在屏幕上显示程序运行结果。

三、实验环境

 SWI-Prolog

四、实验内容

由于小熊猫、熊猫和小浣熊三个物种的动物高度相似,拟定建造一个熊猫鉴别系统(根据条件检索和区别小熊猫、熊猫和小浣熊),具体应用领域暂定,具体功能为检索区别、列举特征。

五、实验步骤

1、建造一个“熊猫鉴别”系统所需完成的内容有:
(1)用户界面:采用问答方式;
(2)知识库:存放产生式规则,库中规则可以增删;
(3)数据库:用来存放用户回答的问题,已知事实,推理的得到的中间事实;
(4)推理机:如何运用知识库中的规则进行问题的推理控制;

2、“熊猫鉴别”实验规则集

物种/特征毛发颜色栖息地黑眼圈爪子第一印象
小熊猫 (ailurusFulgen)红棕色森林憨憨的
熊猫(panda)黑白森林憨憨的
浣熊(racoon)黑白(灰)河边贱贱的

3、实验具体步骤
(1)充分理解知识库已有知识,提出待解决问题
(2)建立规则库
(3)从规则库中获取可用规则集
(4)确定搜索控制策略
(5)通过搜索控制策略,从规则集中选出最优规则
(6)执行最优规则,更新知识库
(7)反复多次以上步骤
(8)获得解决方案
4、编写程序及调试运行步骤
(1)程序代码
(此处展示大体思路和部分细节,详情后续更新)

%animals we want to check out
......%fur color
......%location
......%dark circles
......%claws
......%first expression
......%judgment index
......%you need first use order 'pickup' or 'inputin' to have a try.%list characters for the animal you pick
pickup :-((write('you may choose one from [ailurusFulgen, panda, racoon]'),nl,read(Q),animal(Q)) ->%triggers the first line(write('is one of three animals'), nl) ;(write('isnt any one of three animals,please try again'),nl)),((with_brown_fur(Q)) ->%triggers the second line(write('with brown fur'), nl) ;(write('with gray and black fur'),nl)),(......).
%input some characters to find out which animal it is
inputin :-write("Judge characteristics and answer one from yes and no:"),nl,((......).......(write("Is it living in forest:"),nl, read(A), judgeyes(A), nl) ->write("it is a panda") ;write("it is a racoon")).

(2)调试
记事本编写程序后,在swi-prolog环境下进行代码运行和结果判断,进行修改;

(3)运行结果
这里简单展示了功能,一个为列举出三个动物中的某一个的特征,另一个为根据特征判断该动物是三个钟的哪一种
这里简单展示了功能,一个为列举出三个动物中的某一个的特征,另一个为根据特征判断该动物是三种动物中的哪一种。

六、问题思考

思考:从 Prolog 的语句来看, Prolog 语言的文法结构相当简单。但由于它的语句是 Horn 子句,而 Horn 子句的描述能力是很强的,所以 Prolog 的描述能力也是很强的。例如,当它的事实和规则描述的是某一学科的公理,那么问题就是待证的命题;当事实和规则描述的是某些数据和关系,那么问题就是数据查询语句;当事实和规则描述的是某领域的知识,那么问题就是利用这些知识求解的问题;当事实和规则描述的是某初始状态和状态变化规律,那么问题就是目标状态。所以可以看出,同过程性语言相比,对于一个 Prolog 程序,其问题就相当于主程序,其规则就相当于子程序,而其事实就相当于数据。

七、实验总结

这次设计大大增加了我们对prolog语言的认识和实践,虽然我们编译实现复杂功能的能力还有代提升,但是这次编译开发让我们对这个语言有了进一步的理解和认识,这种事实-逻辑-推断的运行方式是很棒的体验。

这篇关于SWI项目开发(项目书框架)+代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/160689

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能