Consistency Maintenance: Propagation
Consistency Maintenance: Propagation Con fl ict Resolution
Challenges Activating inactive features Fix incompleteness 9 97
Con fi gurator Con fi guration GUI Con fi guration Language Code
Con fi gurator Con fi guration GUI Con fi guration Language Code Translation SMT-Lib Range Fix Algorithm
10 <= 8 Use_Pre_Allocation -> (Pre_Allocation_Size <= Bu ff er_Size * 1024 / Object_Size)
Use_Pre_Allocation -> (Pre_Allocation_Size <= Bu ff er_Size * 1024 / Object_Size) By how much? Fixes Decrease Pre_Allocation_Size Increase Bu ff er_Size Decrease Object_Size Disable Use_Pre_Allocation
Overview Typed variables Pre_Allocation_Size: Int Bu ff er_Size: Int Object_Size: Int Use_Pre_Allocation: Bool Assigned values Complete fi x list Pre_Allocation_Size = 10 Pre_Allocation_Size <= 8 Bu ff er_Size = 4 Bu ff er_Size >= 5 Fix Generator Object_Size = 512 Object_Size <= 409,6 Use_Pre_Allocation = true Use_Pre_Allocation = false Logic constraint Use_Pre_Allocation -> (...)
Constraint violation Typed variables V : {m:Bool, a:Int, b:Int } Con fi guration (assignment) e : {m=true, a=6, b=5} c : (m → a>10) ⋀ (¬m → b>10) ⋀ (a < b) Violated constraint Range Fixe Assignment Range Unit Unit Range Fix [m := false, b : b > 10] [(a,b) : a > 10 ⋀ a < b] Range Fix
Constraint violation Typed variables V : {m:Bool, a:Int, b:Int } Con fi guration (assignment) e : {m=true, a=6, b=5} Correct All the con fi guration that can be produced c : (m → a>10) ⋀ (¬m → b>10) ⋀ (a < b) Violated Constraint satisfy the constraint A fi x should change a minimal set of Minimality of variables Range Fixe variables Maximality of ranges The range of a fi x should be maximal
Fix generation algorithm 1. Find minimal diagnoses HS-DAG algorithm Hard constraint (c) (m → a>10) ⋀ (¬m → b>10) ⋀ (a < b) Soft constraints (e) [1] m = true [2] a = 6 [3] b = 5
Fix generation algorithm 1. Find minimal diagnoses HS-DAG algorithm Hard constraint (c) (m → a>10) ⋀ (¬m → b>10) ⋀ (a < b) Soft constraints (e) [1] m = true [2] a = 6 [3] b = 5
Fix generation algorithm HS-DAG algorithm {1,2} Hard constraint (c) 1 2 (m → a>10) ⋀ (¬m → b>10) ⋀ (a < b) {3} {3} Soft constraints (e) 3 3 [1] m = true {1,2} and {3} UNSAT core 1 UNSAT cores? SAT SAT Diag Diag [2] a = 6 ... 1 m [3] b = 5 ... {m = true, b=5} {a = 6, b=5} UNSAT core n
Fix generation algorithm 1. Find minimal diagnoses HS-DAG algorithm {m = true, b=5} 2. Replace unchanged variables Replace a (m → 6>10) ⋀ (¬m → b>10) ⋀ (6 < b)
Fix generation algorithm 1. Find minimal diagnoses {m = true, b=5} (m → 6>10) ⋀ (¬m → b>10) ⋀ (6 < b) 2. Replace unchanged variables (m → 6>10) ⋀ (¬m → b>10) ⋀ (6 < b) 3. Generate the fi xes CNF (¬m ⋁ 6>10) ⋀ (m ⋁ b>10) ⋀ (6 < b) folding + simpl. (¬m) ⋀ (b>10) ⋀ (6 < b) simplifying merging (¬m) ⋀ (b>10) (¬m) ⋀ (b>10 ⋀ 6 < b)
Multi-Constraint violation V : {m:Bool, n:Bool, x:Bool, y:Bool, z:Bool } e : {m=true, n=false, x=false, y=false, z=false} c : (m ⋀ n) S : {n → (x ⋁ y), x → z} Satis fi ed constraints Possible fi x Violates n → (x ⋁ y) Ignore [n := true] Eliminate fi x Propagate
Fix generation algorithm with propagation c S P : {m ⋀ n} Shares variables with {n → (x ⋁ y), x → z} ? P : {m ⋀ n, n → (x ⋁ y)} Shares variables with { x → z} ? P : {m ⋀ n, n → (x ⋁ y), x → z} Replace c by P c : (m ⋀ n) ⋀ (n → (x ⋁ y)) ⋀ (x → z) Apply Fix generation algorithm [n=true, x=true, z=true] [n=true, y=true]
1000 750 500 250 0 virtex4 xilinx ea2468 aki3068net gps4020 arcom-viper Options Constraints Violations
95% 75% 50 Number of violations 80 Number of fixes 40 60 30 40 20 20 10 0 0 0 1 2 3 4 5 8 9 1 2 3 4 5 6 7 8 9 Number of fixes Number of variables per fix Density of violations 0.025 0.020 73% coverage of error resolution by con fi gtool 0.015 0.010 100% coverage of error resolution by our tool 0.005 0.000 50 100 150 200 Generation Time (ms)
60 20ms Elimination 50 40 17 ignored 30 20 10 Number of violations 0 60 17ms 50 Ignorance 40 0 ignored 30 20 32% new errors 10 0 60 50ms Propagation 50 40 1 ignored 30 20 10 0 0 1 2 3 4 6 7 8 9 16 18 23 38 56 57 58 Number of variables
Con fi gurator Con fi guration GUI Con fi guration Language Code Translation SMT-Lib Range Fix Algorithm
Con fi gurator Con fi guration GUI Con fi guration Language Code
Unify Software & Product Con fi guration A. Hubaux K. Czarnecki P. Heymans C. Drescher V. Ganesh L. Hvam D. Jannach T. Mannisto L. Murta T. Nguyen M. Zanker
Knowledge Modelling Automated reasoning Complexity Life cycle coverage Knowledge evolution ?
Knowledge Modelling Automated reasoning Complexity Life cycle coverage Knowledge evolution
Knowledge Modelling Automated reasoning Dagstuhl Seminar submitted Complexity Life cycle coverage Knowledge evolution
Recommend
More recommend