COGS201 学习笔记 week 6
4.1 - Recursion WHAT IS RECURSION? A statement that refers to itself一个指代自身的陈述 OR:一个句子中,相同的谓语(predicate)出现在头部和身体中 递归是计算机编程中的一种强大工具。 Example: Ancestors 什么是祖先? • 父母parent • 祖父母grandparent • 曾祖父母great-grandparent • 曾曾祖父母great-great-great-great • 等等 12ancestor(X,Y) :- X is directly above Y, in the family tree, by any number of generations.(X在家族谱系中直接位于Y之上,无论经过多少代。) 我们如何向Prolog解释这个? Brute Force Version 12345ancestor (X,Y):-parent (X,Y). ancestor (X,Y):-grandparent (X,Y). ancestor (X,Y):-greatGrand...
CISC352_Quiz2复习笔记
Week4 Minimax Types of Games General Games Agents具有独立的效用(utilities) 合作、冷漠、竞争等都是可能的 我们不让AI独自地行动,它应当 a) 与人协同工作 b) 帮助人类 这意味着每个AI agents理都需要解决game Zero-Sum Games Agents具有相反的效用(utility)(即对结果的价值) A 觉得越好,B 就越坏 让我们设想一个单一的数值,一个代理最大化(maximizes)而另一个最小化(minimizes) 可以把结果用一个分数/价值表示:A 想把它变大,B 想把它变小。 对抗性的(Adversarial,),纯竞争(competition) Deterministic Games with Terminal Utilities Many possible formalizations, one is: States: S (start at [s_0])(状态集合,起点 [s_0]) [S] 是所有可能局面的集合。 [s_0] 是初始状态(...
COGS201 学习笔记 week 3
2 - Introduction to Prolog VARIABLE NAMES 考虑:parent(X,luke), + male(X). Prolog首先将变量替换为新名称 parent(G312,luke), + male(G312). • 这样在遇到其他句子中名为X的变量时,就不会产生混淆。 TRACING TRACING A QUERY There are 4 types of actions Call(调用) 含义: 逻辑引擎开始尝试解决一个查询或子目标。 动作: 它会进入程序数据库,寻找能与当前查询匹配(合一)的第一条规则或事实。 Exit(成功退出) 含义: 查询成功,找到了匹配项。 动作: Prolog 暂时满足了这个目标,并返回 true。如果查询中包含变量,此时变量会被赋予特定的值(绑定)。 Fail(失败退出) 含义: 无法找到能满足查询的匹配项。 动作: 这一步返回 false。这通常会触发 Redo,让程序回头去寻找其他的可能性。 Redo(重试) 含义: 回溯(Backtracking)。 动作: 当之前的某个分支失败...
CISC352_Quiz1复习笔记
Week1 Search Search Problems(搜索问题) 组成: **状态空间(state space):**所有可能出现的“情况/局面”(比如游戏里每一种棋盘摆法、迷宫里每个位置等 后继函数(successor function)(包含动作与代价): 从当前状态出发,你能做哪些动作(actions),做完会到达哪些新状态; 每个动作可能还有代价/成本(cost)(图里示例动作 N/E,代价 1.0)。 起始状态 + 目标测试(start state & goal test) 从哪里开始(start state) 怎么判断“到目标了”(goal test:是否满足目标条件) State Space 和 Search state World state(世界状态) 包含环境的所有细节, 例如整张地图里:墙、豆子、怪物、角色位置……每一个细节都算进去。 Search state(搜索状态) 只保留“为了规划/解题需要”的信息(抽象 abstraction) State Space Graph(状态空间图)/Search Trees(搜索树...
CISC365 Lecture 2-5 笔记
Lecture 2: Complexity 如何比较算法 最优性-基于问题 Sorting(排序) vs Packing(装箱/打包) • 优雅性/可解释性-重要但通常不是必须的 • 在需要向用户/非计算机专家提供解释时有用 • 更简洁/更优雅使得以后需要的更改更容易实现 • 通常不是优先事项* 复杂度-用来比较算法的标准,尤其是用大O • 时间复杂度 • 空间复杂度 Efficiency 比较复杂度时使用O, Θ, Ω (Big O, Big Theta, Big Omega)来比较 复杂度从大x大到小排序 渐近复杂度(Asymptotic notations) Best case(最好情况,渐近下界 Ω) 表示:算法在“最好”的情况下,至少需要多少时间/操作数 Worst case(最坏情况,渐近上界 O) 表示:算法在“最坏”的情况下,最多需要多少时间/操作数 Exact order of growth(精确增长阶,紧确界 Θ) 表示:算法的增长速度被上界和下界同时夹住,也就是“总体上就是这个量级”。 Θ 需要对“所有足够大的 n”都同时成立(不能只在偶数或...
COGS201 学习笔记 week 1
Representations 和 Procedures的区别 Representations: 你所知道的 Procedures: 你所在做的 Thinking = Representations + Procedures Representations的例子 Concepts概念 (what is a “chair”? 什么是“椅子”?) Facts事实 (Convocation Hall has a balcony 集会厅设有阳台) Production Rules 规则 (IF the door has a knob, THEN I can turn the knob 如果…那么…) Memories 记忆(读取) (how I felt when I woke up yesterday) Sensations感受 (it’s cold in here) Procedures 的例子 • Logical reasoning逻辑推理 • Solving a problem解决问题 • Making a plan制定计划 • Process...
COGS201 学习笔记 week 2
查询 123?- parent(anakin,Who).Who = lukeWho = leia 一个查询可能有多个正确答案 返回false表示没有找到 Conditional Sentences 条件语句 组成: Consequent 结论 Implication 蕴含关系 Antecedent 前提 1mother(X,Y) :- parent(X,Y), female(X). 若X是Y的父母且X为女性,则X是Y的母亲。 逗号表示‘’和’ 12father(X,Y) :- parent(X,Y), male(X).grandparent(X,Y) :- parent(X,Z), parent(Z,Y) “若X是某个Z的父母,且Z是Y的父母,则X是Y的祖父母。” Negation 否定 Prolog 中的“非”符号是 \+ 例: 1?- parent(X,luke), \+ female(X). 找到luke的父母中不是女性的那位 Equality 相等 Prolog 支持等式: X=Y,但通常不需要单独写 X=Y 而是直接用同一个变量名 写法 A(用等式把两个变量连起来) ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start Create a new post 1$ hexo new "My New Post" More info: Writing Run server 1$ hexo server More info: Server Generate static files 1$ hexo generate More info: Generating Deploy to remote sites 1$ hexo deploy More info: Deployment