一阶逻辑的语法和语义
引入
一阶逻辑模型具有对象,模型的域是它包含的对象集或域元素的集合。域应当是非空的——每个可能世界至少要含有一个对象。数学上来说,对象是什么无所谓——有意义的只是每个特定模型中有多少对象。 模型中的对象可能有多方面的关系。从形式上来看,关系就是相关对象的元组集。(一个元组是以固定顺序排列的一系列对象,使用尖括号将对象括起来……继续阅读 »
yanzexi
1年前 (2023-10-22) 284浏览 0评论
1个赞
许多计算机科学中的组合问题都可以被归为检验命题语句的可满足性。对可满足性算法的任何改进对于处理复杂性的能力都有巨大的作用。
完备的回溯算法
$DPLL$算法
戴维斯-普特南算法,得名于马丁·戴维斯和希拉里·普特南的重要论文。这个算法实际上采用的是戴维斯、洛吉曼和洛夫兰所描述……继续阅读 »
yanzexi
1年前 (2023-10-21) 247浏览 0评论
1个赞
红黑树
性质
插入
红黑树的插入有 12 种情况,插入一个结点最容易出现两个连续的红色结点从而破坏红黑树的性质,故需要进行双红调整。插入的情况整体分为三类,第一类是父节点为黑节点直接插入:
第二种情况是父节点为红色且父节点有兄弟:
&nbs……继续阅读 »
yanzexi
1年前 (2023-10-20) 265浏览 0评论
2个赞
推断与证明
推断证明
首先介绍可以用于推导证明的推断规则。证明是一系列可以引向所需目标的结论。最著名的规则是肯定前件,写作:
$$
\frac{\alpha \Rightarrow \beta \text{,}\alpha}{\beta}
$$
意为给定$\alpha $和……继续阅读 »
yanzexi
1年前 (2023-10-20) 277浏览 0评论
1个赞
伸展树
引入
伸展树($splay$ $tree$)也是平衡二叉搜索树的一种形式。相对于$AVL$树,伸展树的实现更为简捷。伸展树无需时刻都严格地保持全树的平衡,但却能够在任何足够长的真实操作序列中,保持分摊意义上的高效率。伸展树也不需要对基本的二叉树节点结构,做任何附加的要求或改动,更不需要记录平衡因子或高度之类的额外信息,故适用范围更广。
……继续阅读 »
yanzexi
1年前 (2023-10-19) 299浏览 0评论
0个赞
引入
引入
人类似乎具有知识,人类的知识能够帮助他们做事。在人工智能中,基于知识的智能体对知识的内部表示进行推理来确定要采取的动作。搜索求解智能体具有知识,但这种知识是非常有限且死板的。它们知道可以采取哪些动作,也知道在某个状态采取某个动作将得到哪种结果,但它们不知道一般事实。问题求解智能体具有的知识对寻找从起点到终点的路径这种问题非常有用,但……继续阅读 »
yanzexi
1年前 (2023-10-19) 252浏览 0评论
0个赞
二叉搜索树的最小绝对差
中序遍历逐行算差:
TreeNode* pre = nullptr;
int result = INT_MAX;
void traversal(TreeNode* cur) {
if (!cur){
return;
}
traversal(cur -> left);
……继续阅读 »
yanzexi
1年前 (2023-10-18) 275浏览 0评论
0个赞
回溯搜索
引入
许多情况下完成约束传播过程后仍存在具有多个可能值的变量。在这种情况下,必须通过搜索来求解问题。首先介绍用于部分赋值的回溯搜索算法,$CSP$的回溯搜索不断选择未赋值变量,然后依次尝试该变量的域中的所有值,试图通过递归调用将每个值扩展为一个解。如果调用成功,则返回解,如果调用失败,则将赋值恢复到前一状态,然后尝试下一个值。如果所有……继续阅读 »
yanzexi
1年前 (2023-10-18) 215浏览 0评论
0个赞
二叉搜索树
基于二叉树模板实现
查找:
bool search(TreeNode* root, int x){
if(!root){
return false;
}
if(x == root -> val){
return true;
}else if(x < root -> val){
……继续阅读 »
yanzexi
1年前 (2023-10-17) 268浏览 0评论
0个赞
定义
引入
之前的搜索部分讨论了通过搜索状态空间进行问题求解的思想:状态空间是一个由节点表示状态,边表示动作的图。领域特定的启发式算法可以估计从给定状态到达目标的代价,但从搜索算法的角度来看,每个状态都是原子的,即不可分割的——一个没有内部结构的黑盒。对于每个问题,需要领域特定的代码来描述状态之间的转移。
&……继续阅读 »
yanzexi
1年前 (2023-10-17) 303浏览 0评论
0个赞