AI

project1数独
约束传播和搜索

project2 Build an AI that play games
minimax alpha-beta pruning
吃豆人
BFS DFS A*
最优路径问题

project3 马尔可夫模型 手语字符转化为对应的英文文本

Navigation 导航 A*
智能体 动态交互
棋盘的状态 搜索树 剪枝
对抗搜索 Mini-Max

Monty Hall三门问题
switch
先验概率 P(A) = P(B) = P(C) = 1/3
后验概率 P(B|open_B) = 0
贝叶斯定理
P(C|open_B) = P(open_B|C) * P(C) / P(open_B) = 1 * 1/3 / 1/2 = 2/3

智能的定义是什么?
Agent, Enviroment, State
智能体:是指会根据给定目标采取行动,最大化其预期效用的事物
Perception, Action, Cognition
感知: 智能体通过感知环境属性与环境互动
行为:输出行为通常会改变环境的状态
认知:智能体决定采取什么行动的过程,取决于感知输入,这个过程称为认知
我们对AI的大部分讨论都会集中在认知上,特别是推理和决策
有限最优性

Conda与pip相似,不同之处在于可用的软件包集中于数据科学,而pip则用于一般用途。
conda create -n env_name list of packages
conda create -n data python=3.6 numpy pandas
source activate env_name
conda list 查看安装的packages
source deactivate

保存和加载环境
conda env export > enviroment.yaml
write the exported text to a YAML file

从保存的环境文件创建行动环境
conda env create -f enviroment.yaml
create a new enviroment with the same listed in enviroment.yaml

移除环境
conda env remove -n env_name

windows配置Git环境变量
https://blog.csdn.net/C_chuxin/article/details/87880332


搜索、逻辑、规划
概率、贝叶斯网络
Main topics:

  1. Adversarial Search
  2. Minimax Algorithm
  3. Alpha-Beta pruning
  4. Evaluation Functions
  5. Isolation Functions
  6. Multi-player, probabilistic Games

——————————————————————————————————————
路径搜索
Definition of A problem
Initial State -> S0 开始的城市
Actions(S) -> {a1, a2, a3…} 可到达的城市的路径
Result(S, a) -> S’ (到达)新的城市
GoalTest(S) -> True|False 判断是否到达目标城市
Path Cost(Si -aj-> Si+1 -aj+1-> Si+2)–> cost value(n) where i=0,1… j=1,2… 总的cost
Step Cost (S, a, S’) –> n 单步cost

Frontier 已访问的边界
Unexplored 未访问
Explored 已访问

Tree Search
function Tree.Search(problem):
frontier = {[initial]}
loop:
if frontier is empty:
return FAIL
path = remove.choice(frontier)
s = path.end
if s is a goal:
return path
for a in actions:
add[path + a > Result(s, a)] to frontier

Breadth First Search
shortest path first

Graph Search
function Graph.Search(problem):
frontier = {[initial]};
explored = {} // 记录已访问的节点
loop:
if frontier is empty:
return FAIL
path = remove.choice(frontier)
s = path.end; add to explored
if s is a goal:
return path
for a in actions:
add [path + a -> Result(s, a)] to frontier
unless Result(s, a) in frontier or explored // 避免重复

A*搜索算法