逻辑Agent

基于知识的Agent
知识库(Knowledge Base, KB): 是一个语句集合,用逻辑语言描述。
推理器(Inference Engine, IE): 使用逻辑推理的算法。
Agent维护一个数据库KB,通过告诉(Tell)和询问(Ask)来更新数据库内容以及选择采取的行动。

命题逻辑
语法:
命题符号\(P_1,P_2,\cdots\)为语句(称为原子语句)。
如果\(S_1,S_2\)为语句,则以下也为语句:
1. \(\lnot S_1\) (negation). 一个文字(literal)是指一个命题符号或者其否定式。
2. \(S_1\land S_2\) (conjunction)
3. \(S_1\lor S_2\) (disjunction)
4. \(S_1\Rightarrow S_2\) (implication)
5. \(S_1\Leftrightarrow S_2\) (biconditional)

命题逻辑的语义与\(\lnot, \land,\lor,\Leftrightarrow, \Rightarrow\)的常识语义相同。

蕴含(Entailment)
数据库KB蕴含语句\(\alpha\)指在所有KB成立的情况下,\(\alpha\)总是成立。记作\(KB\vDash\alpha\).
对于语句\(\alpha\), 如果m蕴含\(\alpha\),即\(\alpha\)在取值m下成立,记作\(m\vDash \alpha\), 称m为\(\alpha\)的一个模型(model).
用\(M(\alpha)\)表示\(\alpha\)的全体模型组成的集合。因此,\(KB\vDash\alpha\)当且仅当\(M(KB)\subseteq M(\alpha)\).

推理(Inference)
如果推理算法\(i\)能够根据KB得到\(\alpha\), 记为\(KB\vdash _i\alpha\), 称为\(\alpha\)通过i从KB导出。

如果\(KB\vdash_i\alpha\)蕴含\(KB\vDash\alpha\),称算法\(i\)是可靠的(soundness).
如果\(KB\vDash\alpha\)蕴含\(KB\vdash_i\alpha\),称算法\(i\)是完备的(completness).

通过枚举所有可能取值进行推断:使用深度优先枚举所有命题符号的取值(True/False)进行推断,是可靠且完备的。算法是\(O(2^n)\)且co-NP完全的。

两个语句是逻辑等价的,如果\(\alpha\vDash\beta,\beta\vDash\alpha\). 此时记作\(\alpha\equiv \beta\).

有效性(Validity)与可满足性(Satisfiability)
一个语句a称为有效的,如果在所有模型中均为真,此时a被称为重言式。
演绎定理(Deduction Theorem): \(KB\vDash\alpha\)成立当且仅当语句\((KB\Rightarrow\alpha)\)是有效的(重言式)。

可满足性:
语句a称为可满足的,如果存在一个模型使其成立。
反证法(归谬法, reductio, absurdum): \(KB\vDash\alpha\)成立当且仅当\((KB\land\lnot\alpha)\)是不可满足的。

一阶逻辑(First-Order Logic, FOL)
一阶逻辑的词汇表包括常量(Constants)、谓词(Predicates)、函数(Functions)、变量(Variables)、连接词(Connectives: \(\land, \lor, \lnot, \Rightarrow, \Leftrightarrow\))、等号(Equality, =)、量词(Quantifiers: \(\forall,\exists\))。

元数(parity): 自变量的个数。0元谓词即命题符号,0元函数为常量。
项(Term) \(:=function(term_1,\cdots,term_n)\ |constant\ |variable\)
原子语句(Atomic sentences) \(:=predicate(term_1,\cdots,term_n)\ |term_1=term_2\)

复合语句(Complex sentences)由原子语句和连接词归纳定义。
1. 每个原子语句是一个复合语句。
2. 如果\(S_1,S_2\)是复合语句,\(x\)是一个变量,则以下皆为复合语句:
\(\lnot S_1, S_1\land S_2, S_1\lor S_2, S_1\Rightarrow S_2, S_1\Leftrightarrow S_2,\forall x.S_1(x), \exists x.S_1(x).\)

    所属分类:人工智能     发表于2022-05-21