• 约束满足中的回溯搜索


    一、回溯搜索的变量赋值顺序

    1-最少剩余值启发式(MRV)

    最大受限变量(具有最少合法赋值的变量),优先赋值

    2-最大约束变量

    约束其他未赋值变量最多的变量

    3-最小约束值

    选择好变量后,选择一个 最小约束值来对变量赋值

    最小约束值:对其他未赋值变量的合法赋值影响最小的值

    二、回溯搜索的前向检查和约束传播(弧相容原则)

    1-前向检查

    跟踪未赋值变量的合法赋值,如果发现有变量没有合法赋值,搜索停止

    (前向检查表)

    2-弧相容-约束传播一种方法

    前向检查不能提前检测到所有失败

    弧相容:弧x->y是相容的当且仅当,对于变量x的每一种赋值,变量y都存在一个合法赋值

    把弧x->y从不相容变成相容:删除x的一个剩余合法值

    当变量x删除了一个合法赋值,那么它的邻居变量需要重新检查,

    即:从x的邻居变量出发到x的弧需要检查

    3-弧相容算法AC-3

    时间复杂度:n平方*d立方

    n:变量个数,d:取值个数

    n2*d,检查每一条弧(加上重复检查的,最多n(n-1)条弧,每条弧最多检查d次)

    单条弧的相容性检查d2(对于d个xi和d个xj),

    四、

    偏好约束通常被计入个体变量赋值的耗散。

    约束传播的一种形式:边界传播

    后向跳转:基于失败的原因回溯
    冲突指导的后向跳转

     

    朝闻道
  • 相关阅读:
    E小press框架之第三步(参数接收)
    Express框架之第二步(路由)
    Express框架之第一步(创建工程)
    【排序】基数排序
    【数学】平方和公式$$sum_{i=1}^{n}i^2=frac{n(n+1)(2n+1)}{6}$$
    【博弈论】Nim游戏
    【搜索】对抗搜索【CF】J. Situation
    【图论】Kruskal算法
    dijkstra算法+堆优化 + 链式前向星版本
    【DP】【数位DP】
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/8544647.html
Copyright © 2020-2023  润新知