Consistency Maintenance: Propagation Consistency Maintenance: - - PowerPoint PPT Presentation

consistency maintenance propagation consistency
SMART_READER_LITE
LIVE PREVIEW

Consistency Maintenance: Propagation Consistency Maintenance: - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1
slide-2
SLIDE 2
slide-3
SLIDE 3

Consistency Maintenance: Propagation

slide-4
SLIDE 4

Consistency Maintenance: Propagation Conflict Resolution

slide-5
SLIDE 5

9 97

Activating inactive features Fix incompleteness

Challenges

slide-6
SLIDE 6

Configurator

Configuration GUI Configuration Language Code

slide-7
SLIDE 7

Configurator

Configuration GUI Configuration Language Code Range Fix Algorithm SMT-Lib Translation

slide-8
SLIDE 8

Use_Pre_Allocation -> (Pre_Allocation_Size <= Buffer_Size * 1024 / Object_Size)

10 <= 8

slide-9
SLIDE 9

Use_Pre_Allocation -> (Pre_Allocation_Size <= Buffer_Size * 1024 / Object_Size)

Fixes Decrease Pre_Allocation_Size Increase Buffer_Size Decrease Object_Size Disable Use_Pre_Allocation

By how much?

slide-10
SLIDE 10

Complete fix list

Pre_Allocation_Size <= 8 Buffer_Size >= 5 Object_Size <= 409,6 Use_Pre_Allocation = false

Fix Generator Typed variables

Pre_Allocation_Size: Int Buffer_Size: Int Object_Size: Int Use_Pre_Allocation: Bool

Assigned values

Pre_Allocation_Size = 10 Buffer_Size = 4 Object_Size = 512 Use_Pre_Allocation = true

Logic constraint

Use_Pre_Allocation -> (...)

Overview

slide-11
SLIDE 11

Constraint violation

V : {m:Bool, a:Int, b:Int } e : {m=true, a=6, b=5} c : (m→a>10) ⋀ (¬m→b>10) ⋀ (a < b)

Typed variables Configuration (assignment) Violated constraint

[m := false, b : b > 10] [(a,b) : a > 10 ⋀ a < b]

Range Unit Range Fix Range Fix Assignment Unit

Range Fixe

slide-12
SLIDE 12

Constraint violation

V : {m:Bool, a:Int, b:Int } e : {m=true, a=6, b=5} c : (m→a>10) ⋀ (¬m→b>10) ⋀ (a < b)

Typed variables Configuration (assignment) Violated Constraint

Range Fixe

Correct All the configuration that can be produced satisfy the constraint Minimality of variables A fix should change a minimal set of variables Maximality of ranges The range of a fix should be maximal

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

Fix generation algorithm

UNSAT cores? {1,2} and {3}

{1,2} {3} {3} SAT 1 2 3 3 SAT

{m = true, b=5} {a = 6, b=5}

UNSAT core 1 UNSAT core n ... Diag 1 Diag m ... 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

slide-16
SLIDE 16

Fix generation algorithm

  • 1. Find minimal diagnoses
  • 2. Replace unchanged variables

HS-DAG algorithm

{m = true, b=5} (m→6>10) ⋀ (¬m→b>10) ⋀ (6 < b)

Replace a

slide-17
SLIDE 17

Fix generation algorithm

  • 1. Find minimal diagnoses
  • 2. Replace unchanged variables
  • 3. Generate the fixes

(m→6>10) ⋀ (¬m→b>10) ⋀ (6 < b) (¬m⋁6>10) ⋀ (m⋁b>10) ⋀ (6 < b) (¬m) ⋀ (b>10) ⋀ (6 < b) (¬m) ⋀ (b>10⋀ 6 < b) (¬m) ⋀ (b>10)

merging CNF folding + simpl. simplifying

(m→6>10) ⋀ (¬m→b>10) ⋀ (6 < b) {m = true, b=5}

slide-18
SLIDE 18

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}

Satisfied constraints

[n := true]

Possible fix Violates

n→(x⋁y)

Ignore Eliminate fix Propagate

slide-19
SLIDE 19

Fix generation algorithm with propagation

P : {m⋀ n} P : {m⋀ n, n→(x⋁y)}

Shares variables with {n→(x⋁y), x→z} ?

P : {m⋀ n, n→(x⋁y), x→z}

Shares variables with { 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] c S

slide-20
SLIDE 20

250 500 750 1000 virtex4 xilinx ea2468 aki3068net gps4020 arcom-viper Options Constraints Violations

slide-21
SLIDE 21

Number of variables per fix Number of fixes

20 40 60 80 1 2 3 4 5 6 7 8 9

75%

Number of fixes Number of violations

10 20 30 40 50 1 2 3 4 5 8 9

95%

Generation Time (ms) Density of violations

0.000 0.005 0.010 0.015 0.020 0.025 50 100 150 200

73% coverage of error resolution by configtool 100% coverage of error resolution by our tool

slide-22
SLIDE 22

Number of variables Number of violations

10 20 30 40 50 60 10 20 30 40 50 60 10 20 30 40 50 60 1 2 3 4 6 7 8 9 16 18 23 38 56 57 58 Elimination Ignorance Propagation

50ms 17ms 20ms 17 ignored 0 ignored 1 ignored 32% new errors

slide-23
SLIDE 23

Configurator

Configuration GUI Configuration Language Code Range Fix Algorithm SMT-Lib Translation

slide-24
SLIDE 24

Configurator

Configuration GUI Configuration Language Code

slide-25
SLIDE 25
slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28
  • A. Hubaux
  • K. Czarnecki
  • C. Drescher
  • L. Hvam
  • V. Ganesh
  • D. Jannach
  • T. Mannisto
  • L. Murta
  • T. Nguyen
  • P. Heymans
  • M. Zanker

Unify Software & Product Configuration

slide-29
SLIDE 29

Knowledge Modelling Automated reasoning Complexity Life cycle coverage Knowledge evolution

?

slide-30
SLIDE 30

Knowledge Modelling Automated reasoning Complexity Life cycle coverage Knowledge evolution

slide-31
SLIDE 31

Knowledge Modelling Automated reasoning Complexity Life cycle coverage Knowledge evolution Dagstuhl Seminar submitted