codecamp

AI人工智能 如何用逻辑编程解决问题

逻辑编程依靠事实规则解决问题,二者也被称为逻辑编程的核心基石。此外,逻辑编程中的每一个程序都需要明确一个求解目标。想要理解逻辑编程的问题求解逻辑,首先需要掌握事实和规则的定义:

1. 事实(Facts)

任何逻辑程序的运行都需要以事实为基础,从而实现既定的求解目标。事实是关于程序和数据的真实陈述,是无需证明的既定前提,例如“德里是印度的首都”“水的沸点是100摄氏度”。

2. 规则(Rules)

规则是能让我们对问题域做出合理推导的约束条件,通常会以逻辑子句的形式表达各类事实间的关联。例如开发一款棋牌游戏时,需要先定义所有的游戏规则,程序才能依据规则完成对局推理。

规则是逻辑编程解决问题的核心,是能表达事实间逻辑推导关系的语句,其通用语法为:

$$A \leftarrow B1,B2,...,Bn$$

其中,A 被称为规则的头部(推导结论),B1、B2……Bn 被称为规则的体部(推导条件),体部的多个条件之间为“且”的关系。

示例:定义“祖先”的推导规则

ancestor(X,Y) :- father(X,Y).
ancestor(X,Z) :- father(X,Y), ancestor(Y,Z).

上述规则的语义为:

  1. 对于任意的X和Y,若X是Y的父亲,那么X是Y的祖先;
  2. 对于任意的X、Y和Z,若X是Y的父亲,且Y是Z的祖先,那么X是Z的祖先。
AI人工智能 逻辑编程的概念
AI人工智能 安装必需的包
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

AI人工智能监督学习(回归)

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }