冲突发生时刻BCP蕴含关系图镜像给出很多信息。已经形成的功能和策略实施办法:

    (1) 冲突分析得到学习子句;

    (2) 参与冲突推导的变元活跃度的提升;

 

从最新的求解器代码分析,可以获取以下信息:

     (1)参与冲突的各层变元、各层参与此次冲突的变元个数;


 

lichuming老师团队2018年关于DISTANCE方案中相关代码:

 
    //solver.h声明数据成员和成员函数
    bool collectFirstUIP(CRef confl);
    vec<double> var_iLevel,var_iLevel_tmp;
    uint64_t nbcollectfirstuip, nblearntclause, nbDoubleConflicts, nbTripleConflicts;
    int uip1, uip2;
    vec<int> pathCs;
    CRef propagateLits(vec<Lit>& lits);
    uint64_t previousStarts;
    double var_iLevel_inc;
    vec<Lit> involved_lits;
    double    my_var_decay;
    bool   DISTANCE;

 

   

 

 
1 //newVar()函数中初始化相关数据成员
2   activity_distance.push(0);//新的变元活跃度数组
3 var_iLevel.push(0);
4 var_iLevel_tmp.push(0); //每个变元对应到冲突点的路径长度
5 pathCs.push(0); //每层参与形成冲突的变元个数,该数组开辟的长度按最富裕的情况(每个变元占一层)考虑;

 

   

 新的文献:What we can learn from conflicts in propositional satisfiability

 

posted on 2023-09-05 10:47  海阔凭鱼跃越  阅读(16)  评论(0编辑  收藏  举报