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

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的