Tie break
University of Tokyo
Seongsoo Moon
Lists of solvers
• Sequential solvers
–
–
–
–
CHBR_GLUCOSE
CHBR_GLUCOSE_TUNED
TB_GLUCOSE
TC_GLUCOSE (bug exist?)
• Parallel solver
– ParaGlueminisat
}
Glucose + CHB [Liang+, 16]
Glucose + TBVSIDS
Glucose + CHB + TBVSIDS
Session 4A (12:00 – 12:30)
CHB [Liang+, AAAI 16]
• Conflict history-based branching heuristic
• Introduced in AAAI 2016
– Title: Exponential Recency Weighted Average Branching
Heuristic for SAT Solvers
– Solve significantly more instances than VSIDS
TBVSIDS [MOON+, CP-DP 2016]
• Tie break of VSIDS
– Tie occurs frequently and broken randomly in VSIDS
“Ties are broken randomly by default, although this is configurable”
[Moskewicz+, 2001]
VSIDS in many SAT solvers uses heap array for VSIDS
– Proposal of meaningful selection from ties
VSIDS
v2
Variables {v1 , v2 , v3 , v4 , v5 , v6 }
v3
v5
activity(v1 ) 2
activity(v2 ) 100
v1
v6
activity(v3 ) 19
v4
activity(v4 ) 25
Pick v2 , reconstruc t
activity(v5 ) 36
activity(v6 ) 3
v5
v3
v1
v4
v6
VSIDS
v2
Variables {v1 , v2 , v3 , v4 , v5 , v6 }
v3
v5
activity(v1 ) 2
activity(v2 ) 100
v1
v6
activity(v3 ) 100
activity(v4 ) 25
activity(v5 ) 36
v4
Is this reasonable?
Pick v2 , reconstruc t
activity(v6 ) 100
v5
v3
v1
v4
v6
TBVSIDS [MOON+, CP-DP 2016]
v2
Variables {v1 , v2 , v3 , v4 , v5 , v6 }
activity(v1 ) 2,
v3
activityQ(v1 ) 1
activity(v2 ) 100, activityQ(v2 ) 15
v1
activity(v3 ) 100, activityQ(v3 ) 10
activity(v4 ) 25, activityQ(v4 ) 10
activity(v5 ) 36, activityQ(v5 ) 5
v5
v6
VSIDS
×
TBVSIDS
v6
activity(v6 ) 100, activityQ(v6 ) 20
Compare first by activity
If activitys are equal,
compare activityQ
v4
v5
v2
v1
v3
v4
TBVSIDS [MOON+, CP-DP 2016]
v2
Variables {v1 , v2 , v3 , v4 , v5 , v6 }
activity(v1 ) 2,
v3
activityQ(v1 ) 1
activity(v2 ) 100, activityQ(v2 ) 15
v1
activity(v3 ) 100, activityQ(v3 ) 10
activity(v4 ) 25, activityQ(v4 ) 10
activity(v5 ) 36, activityQ(v5 ) 5
v5
v6
v4
VSIDS
TBVSIDS
v6
activity(v6 ) 100, activityQ(v6 ) 20
Priority
v5
v2
In VSIDS, v3 v2 v6
In TBVSIDS, v3 v2 v6
×
v1
v3
v4
TBVSIDS [MOON+, CP-DP 2016]
v2
Variables {v1 , v2 , v3 , v4 , v5 , v6 }
activity(v1 ) 2,
v3
activityQ(v1 ) 1
activity(v2 ) 100, activityQ(v2 ) 20
v1
activity(v3 ) 100, activityQ(v3 ) 10
activity(v4 ) 25, activityQ(v4 ) 10
activity(v5 ) 36, activityQ(v5 ) 5
v5
v6
v4
VSIDS
TBVSIDS
v6
activity(v6 ) 100, activityQ(v6 ) 20
Priority
v5
v2
In VSIDS, v3 v2 v6
In TBVSIDS, v3 v2 v6
×
v1
v3
v4
TBVSIDS [MOON+, CP-DP 2016]
Conflict
Update each varia ble`s activity
relevant t o resolution
{v6 , v8 } {v7 , v8 }
{v6 , v7 } {v2 , v5 , v6 }
{v2 , v5 , v7 } {v3 , v5 , v7 }
{v2 , v3 , v5}
Clause learning
Update each varia ble`s activityQ
in a learned clause
{v2 , v3 , v5}
TBVSIDS1 [MOON+, CP-DP 2016]
TBVSIDS2 [MOON+, CP-DP 2016]
Tie occurences
Benchmarks: 300 instances from SAT Competition 2014 application track
Timeout: 1,000 s
96 / 145 (66.2 %) reduced
110 / 151 (72.8 %) reduced
Hybrid CHB + TBVSIDS
Why Hybrid?
Benchmarks: 300 instances from SAT Competition 2014 application track
Timeout: 3,600 s
Results
Benchmarks: 900 instances from 2014Crafted, 2014App and 2015App
© Copyright 2026 Paperzz