当我开始学习人工智能:知识表示方法

news/2024/11/28 5:43:39/

加油加油,五一前复习玩,五一就可以出去玩啦


一、状态空间法(State Space Representation)

问题求解技术主要是两个方面

  • 问题的表示
  • 求解的方法

状态空间法

  • 状态
  • 算符
  • 状态空间方法

1.1 问题状态描述

定义

  • 状态:描述某类不同事物间的差别而引入的一组最少变量q0,q1,…,qn的有序集合。
  • 算符:使问题从一种状态变化为另一种状态的手段称为操作符或算符。
  • 问题的状态空间:是一个表示该问题全部可能状态及其关系的图,它包含三种说明的集合,即三元状态(S,F,G)。

在这里插入图片描述
在这里插入图片描述

1.2 状态图示法

有向图
路径
代价
图的显示说明
图的隐示说明

1.3 状态空间表示举例

1.3.1 八数码难题

在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘上还有一个空格,与空格相邻的棋子可以移到空格中。
如何将棋盘从某一初始状态变成最后的目标状态?
在这里插入图片描述
在这里插入图片描述

1.3.2 A name of a boy

Genetics Professor
Wanting to name her new baby boy
Using only the letters D,N & A
Search by writing down possibilities (states)
D,DN,DNNA,NA,AND,DNAN, etc.
Operators: add letters on to the end of already known states
(i) add a ‘D’ to an existing string
(ii) add an ‘N’ to an existing string and
(iii) add an ‘A’ to an existing string
Initial state is an empty string
Goal test
Look up state in a book of boys names
Good solution: DAN

Question
How many strings of 3 or fewer letters are there where the
letters are D, N or A?
Are you guaranteed to find all boys names with letters D,
N and A in this manner?
Answer
For strings of length 3, there are three choices for the first
letter (D, N and A), three choices for the second and three
choices for the third. Hence, there are 333 = 27 possible
three-letter names with D, N and A in. Similarly, there are
3*3 = 9 possible two-letter names and 3 possible one
letter names. Adding all the possibilities up, we get: 27 +
9 + 3 = 39 possible names.
Yes, all names will eventually be enumerated .

在这里插入图片描述

1.3.3 传教士与野人问题

有三个传教士M和三个野人C过河,只有一条能装下两个人的船,在河的一方或者船上,如果野人的人数大于传教士的人数,那么传教士就会有危险,你能不能提出一种安全的渡河方法呢?

如何定义状态?
有意义的状态共有多少种?
有哪些可进行的操作,操作的执行条件和动作是
怎样的?

状态:问题在某一时刻所处的“位置”,“情况”等
根据问题所关心的因素,一般用向量形式表示,每一位表示一个因素

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

二、问题归约法

在这里插入图片描述
问题归约表示的组成部分

一个初始问题描述;
一套把问题变换为子问题的操作符;
一套本原问题描述。

问题归约的实质
从目标(要解决的问题)出发逆向推理,建立子问题以及子问题的子问题,直至最后把初始问题归约为一个平凡的本原问题集合。

2.1 梵塔问题

在这里插入图片描述

在这里插入图片描述

2.2 与或图

2.2.1 与图、或图、与或图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
不可解节点的一般定义

  • 没有后裔的非终叶节点为不可解节点。
  • 全部后裔为不可解的非终叶节点且含有或后继节点,
  • 此非终叶节点才是不可解的。
  • 后裔至少有一个为不可解的非终叶节点且含有与后继节点,此非终叶节点才是不可解的。

与或图构成规则

  • 每个节点对应一个问题或一个问题集合
  • 终叶节点对应一个本原问题
  • 通过算子将问题转化为子问题集合
  • 通过连接线将同一个子问题的“与”节点连接起来

2.3 步骤:

  1. 与或图中的每个节点代表一个要解决的单一问题或问题集合,起始节点对应原始问题;
  2. 对应于本原问题的节点,叫做终叶节点,它没有后裔;
  3. 把问题变换为一个子问题集合,用有向弧线指向后续节点;
  4. 把据有共同父节点的与节点后裔的所有弧线用小弧线连接起来;
  5. 当只有一个算符应用于问题,代表子问题集合的中间或节点可以省。

答案:
在这里插入图片描述

三、谓词逻辑法

什么是谓词?

原子命题中刻画个体的性质或个体间关系的成分
  • 谓词逻辑是一种形式语言
  • 是目前为止能够表达人类思维活动规律的一种最精确的语言
  • 接近自然语言,又方便存入计算机处理
  • 最早应用于人工智能中表示知识
  • 适合于表示事物的状态、属性、概念等,也可用来表示事物间确定的因果关系

3.1 谓词公式

Terms(项)
a. 一个常量是项
b. 一个变量是项
c. 如果f是一个n元函数符号,t1,t2,…,tn是项,则f(t1,t2,…,tn)也是项
d. 所有项都是由规则(a)(b)©产生的
Atoms(原子公式 )
如果P是一个n元谓词符号,t1,t2,…,tn是项,则P(t1,t2,…,tn) 是一个原子公式或原子谓词公式,其他任何表达式都不是原子公式.
当对应的语句在定义域内为真时值为真T,否则为假F.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/41810.html

相关文章

每天一道大厂SQL题【Day20】华泰证券真题实战(二)表转置

每天一道大厂SQL题【Day20】华泰证券真题实战(二) 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…

【MATLAB图像处理实用案例详解(9)】——基于最大类间方差遗传算法的道路分割

目录一、最大类间方差遗传算法二、代码示例一、最大类间方差遗传算法 最大类间方差的求解过程,就是在解空间中查找到一个最优的解,使得其方差最大,而遗传算法能非线性快速查找最优解k*及最大的方差,其步骤如下: ①为了…

《2023金融科技·校园招聘白皮书》新鲜出炉|牛客独家

数智创新时代,科技人才为先。 眼下,在建设“数字中国”的时代背景下,金融行业全面数智化转型已箭在弦上。政策端,金融行业为中共中央、国务院印发《数字中国建设整体布局规划》的7大重点行业之一。 资本端,仅2022年三…

手把手教你安装Visual Studio 2019(史上最全)

前言: 本文是以Visual Studio Community 2019为例子,介绍如何在微软官网下载Visual Studio Community 2019并安装.net桌面开发程序环境(主要是winform开发环境)。 下载请点击这里Visual Studio Community 2019下载,然后点击下图的箭头的DownLoad下载,要注意的是下载时要…

【python学习】基础篇-常用函数-format函数 格式化操作

format()可以对数据进行格式化处理操作,语法如下: format(value,format_spec) value 为要转换的数据,fommat spec 为格式化解释, 当参数 format spec 为空时,等同于函数 str(value)的方式。 format spec 可以设置非常复…

「STM32入门」TIM输出比较

输出比较的简介 输出比较英文写作OC (Output Compare) 输出比较可以通过比较CNT和CCR寄存器值的关系,来对输出电平进行置高或者置低或者翻转的操作,用于输出一定频率和占空比的PWM波形常见应用例子如:呼吸灯,调速电机等CCR&#x…

Android开发中kotlin编程语言的一些实用技巧

前言 相信大家都知道,kotlin是kotlin是google力推的用以取代java的android开发语言 ,kotlin使用起来比较方便,同时有许多语法糖,本文主要讲解了一些比较实用的kotlin技巧。 一,自定义圆角矩形 在项目中,…

在Ubuntu18.04或者20.04下搭建edk2运行环境

#更新完之后依次执行下面两条命令 1.apt-get update 2.apt-get upgrade 如果执行之后出现源不能更新的问题,到/etc/apt/sources.list.d 下删除对应的ppa源重新更新即可解决 git clone https://github.com/tianocore/edk2.git cd edk2 git submodule update --init 如果git cl…