【人工智能Prolog】Prolog data object AtomsVariablesStructure

2023-11-04 01:31

本文主要是介绍【人工智能Prolog】Prolog data object AtomsVariablesStructure,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Data Object of Prolog

  • Atoms and numbers
    • **Atoms 原子**
    • **Variables 变量**
  • Structure

在这里插入图片描述

Atoms and numbers

在之前的示例中我们有接触到大写与小写的C的不同之处:博客https://blog.csdn.net/weixin_43098506/article/details/124444714
然而事实上,对于变量常量的划定远不及大小写,还有包含数字以及符号在内的多种表达方式。本章将学习、记录这些表达方式的规则。

Atoms 原子

原子,是化学变化中最小的粒子,而在prolog中,代表的就是常量,而非变量。而对于常量与变量,最简单的理解方式就是:名字就是常量,而未知数则是变量。

原子(常量)有多种表达形式:

(1)由字母、数字和符号构成,但是首字符必须是小写的字母:
在这里插入图片描述
(2)由特殊的符号构成:
在这里插入图片描述
(3)由单引号与字母构成:
在这里插入图片描述


Variables 变量

变量主要有两种表达形式,第一种是大写字母开头,第二种是下划线开头。
在这里插入图片描述
而这两种变量的表达方法对结果有很大的影像。比如我们举例如下:

male(tom).
male(don).
male(pat).
female(bob).
parent(tom,bob).
parent(bob,pat).
parent(don,pat).
mother(X,Y) :- parent(X,Y),female(X).
father(X,Y) :- parent(X,Y),male(X).
grandpa(X,Y) :- parent(X,Z),parent(Z,Y).
has_a_child(X,Y) :- parent(X,Y).

执行程序:
在这里插入图片描述
会发现结果会将所有的满足条件的X和Y都打印出来。
而若我们将 has_a_child 函数重新定义为:
has_a_child(X,Y) :- parent(X,_)
则执行结果为:
在这里插入图片描述
不会打印出Y,只会打印出所有满足结果的X。


Structure

structure 可以理解为结构体。
一个最简单理解的结构体就是 date 日期,我们可以将2022年5月1日写成结构体的 Prolog 格式:
date(1,may,2022);而2022年5月的所有日子也可以写成:date(Day,may,2022).
在这里插入图片描述
而当我们掌握使用结构体的方法,可以用其来标识点线面:
在这里插入图片描述
比如点P1 = point(1,1),点P2 = point(2,3),线S = seg(P1,P2) = seg(point(1,1),point(2,3)),面T = triangle(point(4,2),point(6,4),point(7,1))
而且我们可以不仅限于二维,我们也可构建三维:
point(X,Y) 二维,point(X,Y,Z)三维

当然,我们更可以构造物理结构(电路与电子):
在这里插入图片描述

这篇关于【人工智能Prolog】Prolog data object AtomsVariablesStructure的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

基于人工智能的智能家居语音控制系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 随着物联网(IoT)和人工智能技术的发展,智能家居语音控制系统已经成为现代家庭的一部分。通过语音控制设备,用户可以轻松实现对灯光、空调、门锁等家电的控制,提升生活的便捷性和舒适性。本文将介绍如何构建一个基于人工智能的智能家居语音控制系统,包括环境准备

CentOS下mysql数据库data目录迁移

https://my.oschina.net/u/873762/blog/180388        公司新上线一个资讯网站,独立主机,raid5,lamp架构。由于资讯网是面向小行业,初步估计一两年内访问量压力不大,故,在做服务器系统搭建的时候,只是简单分出一个独立的data区作为数据库和网站程序的专区,其他按照linux的默认分区。apache,mysql,php均使用yum安装(也尝试

从希腊神话到好莱坞大片,人工智能的七大历史时期值得铭记

本文选自historyextra,机器之心编译出品,参与成员:Angulia、小樱、柒柒、孟婷 你可能听过「技术奇点」,即本世纪某个阶段将出现超级智能,那时,技术将会以人类难以想象的速度飞速发展。同样,黑洞也是一个奇点,在其上任何物理定律都不适用;因此,技术奇点也是超越未来理解范围的一点。 然而,在我们到达那个奇点之前(假设我们能到达),还存在另一个极大的不连续问题,我将它称之

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

[Day 73] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

AI在健康管理中的應用實例 1. 引言 隨著健康管理需求的提升,人工智能(AI)在該領域的應用越來越普遍。AI可以幫助醫療機構提升效率、精準診斷疾病、個性化治療方案,以及進行健康數據分析,從而改善病患的健康狀況。這篇文章將探討AI如何應用於健康管理,並通過具體代碼示例說明其技術實現。 2. AI在健康管理中的主要應用場景 個性化健康建議:通過分析用戶的健康數據,如飲食、運動、睡眠等,AI可

15 组件的切换和对组件的data的使用

划重点 a 标签的使用事件修饰符组件的定义组件的切换:登录 / 注册 泡椒鱼头 :微辣 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'