摘要: 1. 奖励函数 设t表示当前这次运行期间(第t次重启),a表示选择的启发式策略(lrb或vsids),\(decisions_t\)表示在运行t这段运行期间中所做的决策数量,\(decidedVars_t\)表示在t中通过分支策略选取的变元数量(重复选同一个文字只会算一次)。那么,策略a在运行t的奖 阅读全文
posted @ 2025-03-12 12:17 seonwee 阅读(51) 评论(0) 推荐(0)
摘要: 1. DP问题 1.1 DP问题的时间复杂度计算的一般公式 \(时间复杂度=状态数量 * 状态转移需要的计算量\) 2.2 注意事项 状态表示一定能够让答案能够推出来,在此基础上,状态表示的维数要越小越好,状态表示每高一维,计算的时间复杂度就会高一维。因此,状态表示一般从一维开始考虑,如果一维不能表 阅读全文
posted @ 2024-12-11 20:48 seonwee 阅读(29) 评论(0) 推荐(0)
摘要: 卡码网_97.小明逛公园 对于floyd算法的写法有几个注意点: 对边松弛的中间点的循环要放在三个for循环的最外层 使用邻接矩阵存图时,每个点自己到自己的距离要初始化为0,即对角线的位置要初始化为0,其他点没有边直接相连时,要初始化为inf(inf依照题目定),如果初始化INT_MAX,在判断是否 阅读全文
posted @ 2024-12-08 21:34 seonwee 阅读(27) 评论(0) 推荐(0)
摘要: 1.组成SAT问题的三要素 m个逻辑变元(variable)的集合: \(x_1, x_2,…, x_m\) 文字(literal)的集合:一个文字就是一个逻辑变元或其非。这样,全部基本式为:\(x_1, \overline {x_1}, x_2, \overline {x_2}…, x_m, \o 阅读全文
posted @ 2024-12-07 21:18 seonwee 阅读(706) 评论(0) 推荐(0)
摘要: 1. 结论 学习子句中含有比较多的冗余子句时,即vivification ratio高时采用vsids分支策略要比LRB好。 2. 相关内容 2.1 两种典型不同类别的算例 2.1.1 HWMCC instances HWMCC instances generated from real-world 阅读全文
posted @ 2024-12-05 13:41 seonwee 阅读(28) 评论(0) 推荐(0)
摘要: 1. CDCL算法流程图 2. 迹(Trail)与决策层 2.1 迹(Trail) 迹的作用是记录当前变元的赋值是怎么被推断出来的。迹是一串连在一起的文字,里面出现的每个文字代表这个文字赋值为真;同时我们要记录为什么这个文字赋值为真,于是在文字的右上角标注原因。当文字是因为决策取真时,我们就标“决策 阅读全文
posted @ 2024-12-04 22:39 seonwee 阅读(508) 评论(0) 推荐(0)
摘要: 1. CHB(conflict history-based branching heuristic)分支策略 1.1 奖励函数 \(numConflicts\) 从搜索开始发生冲突的总次数 \(lastConflict[v]\) 文字\(v\)在冲突分析出现,则\(lastConflict[v] = 阅读全文
posted @ 2024-12-04 22:22 seonwee 阅读(55) 评论(0) 推荐(0)
摘要: static double luby(double y, int x) { // Find the finite subsequence that contains index 'x', and the // size of that subsequence: int size, seq; for 阅读全文
posted @ 2024-09-29 15:25 seonwee 阅读(26) 评论(0) 推荐(0)
摘要: https://github.com/seonwee/sat-solver 阅读全文
posted @ 2024-07-14 18:41 seonwee 阅读(33) 评论(0) 推荐(0)
摘要: #include<iostream> #include<vector> using namespace std; const int N = 1000; struct { int to; int w; int next; }edge[N]; int head[N]; void add_edge(in 阅读全文
posted @ 2024-05-16 21:08 seonwee 阅读(20) 评论(0) 推荐(0)