当前位置:网站首页>Alpha Beta Pruning in Adversarial Search
Alpha Beta Pruning in Adversarial Search
2022-07-02 06:25:00 【霏霏小雨】
Alpha Beta Pruning in Adversarial Search
Minimax Implementation
def max-value(state):
initialize v = -∞
for each successor of state:
v = max(v, min-value(successor))
return v
def min-value(state):
initialize v = +∞
for each successor of state:
v = min(v, max-value(successor))
return v
V ( s ) = m a x ( V ( s ′ ) ) s ′ ∈ s u c c e s s o r ( s ) V(s) = max(V(s')) s' \in successor(s) V(s)=max(V(s′))s′∈successor(s)
V ( s ′ ) = m i n ( V ( s ) ) s ∈ s u c c e s s o r ( s ′ ) V(s') = min(V(s)) s \in successor(s') V(s′)=min(V(s))s∈successor(s′)
Alpha Beta Pruning
General configuration (MIN version)
We’re computing the MIN-VALUE at some node n
We’re looping over n’s children
n’s estimate of the childrens’ min is dropping
Who cares about n’s value? MAX
Let α \alpha α be the best value that MAX can get at any choice point along the current path from the root
If n becomes worse than α \alpha α, MAX will avoid it, so we can stop considering n’s other children (it’s already bad enough that it won’t be played)
MAX version is symmetric
Examples
To start with, we know nothing about the bounds, so we set α = − ∞ , β = ∞ \alpha = - \infty, \beta = \infty α=−∞,β=∞.
Then we passing along the bounds to the child, child’s child…
Now we reach at the level: depth of 4. We run our evaluation functions here.
An evaluation function is like:
Ideal function: returns the actual minimax value of the position
In practice: typically weighted linear sum of features: E v a l ( s ) = w 1 f 1 ( s ) + ⋅ ⋅ ⋅ + w n f n ( s ) Eval(s) = w_1f_1(s) + \cdot\cdot\cdot + w_nf_n(s) Eval(s)=w1f1(s)+⋅⋅⋅+wnfn(s).
We get value 3, since this is a min node, we now know the minmax value must be less than or equal to 3, thus, we set β = 3 \beta = 3 β=3.
Next child in depth 4 is value 17, while 17 > 3, we ignore this child.
All children handled, we return to depth 3. we have β = 3 \beta = 3 β=3 here, so we can set α = 3 \alpha = 3 α=3 at the depth 2 node.
We pass along the bounds of depth2 to next child of depth3.
At this moment, we get α = 3 a n d β = 2 , α > β \alpha = 3 \space and \space \beta = 2, \alpha > \beta α=3 and β=2,α>β.
If these values are to change, children values would be greater than 3 and less than 2, which is impossible. We can prune any children and return.
We do these steps recursively, we will reach this:
Some pictures and ideas comes from h t t p s : / / w w w . c s . u c l a . e d u / https://www.cs.ucla.edu/ https://www.cs.ucla.edu/.
Two Quiz
notice: I do not have answers.
边栏推荐
- 外币记账及重估总账余额表变化(下)
- SQLI-LABS通关(less18-less20)
- php中的二维数组去重
- php中生成随机的6位邀请码
- Oracle RMAN semi automatic recovery script restore phase
- 2021-07-17C#/CAD二次开发创建圆(5)
- Oracle segment advisor, how to deal with row link row migration, reduce high water level
- IDEA2020中测试PySpark的运行出错
- Network security -- intrusion detection of emergency response
- SSM学生成绩信息管理系统
猜你喜欢
Explain in detail the process of realizing Chinese text classification by CNN
Sqli-labs customs clearance (less18-less20)
Go package name
Oracle EBs and apex integrated login and principle analysis
图解Kubernetes中的etcd的访问
ssm+mysql实现进销存系统
CVE-2015-1635(MS15-034 )遠程代碼執行漏洞複現
ORACLE EBS 和 APEX 集成登录及原理分析
Basic knowledge of software testing
Message queue fnd in Oracle EBS_ msg_ pub、fnd_ Application of message in pl/sql
随机推荐
JS create a custom JSON array
php中的二维数组去重
ssm超市订单管理系统
sqli-labs通關匯總-page2
Principle analysis of spark
Oracle EBS DataGuard setup
TCP攻击
Oracle 11.2.0.3 handles the problem of continuous growth of sysaux table space without downtime
Brief analysis of PHP session principle
ORACLE APEX 21.2安装及一键部署
Take you to master the formatter of visual studio code
ORACLE EBS 和 APEX 集成登录及原理分析
@Transational踩坑
SQLI-LABS通關(less6-less14)
第一个快应用(quickapp)demo
Build FRP for intranet penetration
JS divides an array into groups of three
Oracle segment advisor, how to deal with row link row migration, reduce high water level
Explanation of suffix of Oracle EBS standard table
Sqli-labs customs clearance (less1)