Exploiting Treewidth for Projected Model Counting and its Limits - - PowerPoint PPT Presentation

exploiting treewidth for projected model counting and its
SMART_READER_LITE
LIVE PREVIEW

Exploiting Treewidth for Projected Model Counting and its Limits - - PowerPoint PPT Presentation

Exploiting Treewidth for Projected Model Counting and its Limits Gnther Charwat, Johannes K. Fichte 1 , Markus Hecher 2 , 3 , Michael Morak 4 , Andreas Pfandler, and Stefan Woltran 2 MII Shonan Meeting 144 Shonan Village March 7 th , 2019 1 TU


slide-1
SLIDE 1

Exploiting Treewidth for Projected Model Counting and its Limits

Günther Charwat, Johannes K. Fichte1, Markus Hecher2,3, Michael Morak4, Andreas Pfandler, and Stefan Woltran2

MII Shonan Meeting 144 Shonan Village

March 7th, 2019

1TU Dresden, Germany 2TU Wien, Austria 3University of Potsdam, Germany 4Alpen-Adria-Universität Klagenfurt, Austria

slide-2
SLIDE 2

Introduction

Outline

Introduction Tree Decompositions PMC and Tree Decompositions? Towards Solving in Practice Summary & Future Work

1 / 22

slide-3
SLIDE 3

Introduction

Motivation

◮ Interest in Solving Model Counting (#SAT)

◮ Canonical #P-complete [Valiant79] problem ◮ Variants: approximation, weights, . . .

1 / 22

slide-4
SLIDE 4

Introduction

Motivation

◮ Interest in Solving Model Counting (#SAT)

◮ Canonical #P-complete [Valiant79] problem ◮ Variants: approximation, weights, . . .

◮ Applications of #SAT and its variants

◮ Bayesian reasoning [SangBK05], Probabilistic planning [DomshlakH07], Reliability estimation [Dueñas-OsorioMPV17]

1 / 22

slide-5
SLIDE 5

Introduction

Motivation

◮ Interest in Solving Model Counting (#SAT)

◮ Canonical #P-complete [Valiant79] problem ◮ Variants: approximation, weights, . . .

◮ Applications of #SAT and its variants

◮ Bayesian reasoning [SangBK05], Probabilistic planning [DomshlakH07], Reliability estimation [Dueñas-OsorioMPV17]

◮ Projected Model Counting (PMC)

◮ Given: CNF Formula ϕ and set P ⊆ var(ϕ) of projection variables ◮ Task: Compute PMCP(ϕ) := |{I ∩ P | I ⊆ var(ϕ), I | = ϕ}|

1 / 22

slide-6
SLIDE 6

Introduction

Motivation

◮ Interest in Solving Model Counting (#SAT)

◮ Canonical #P-complete [Valiant79] problem ◮ Variants: approximation, weights, . . .

◮ Applications of #SAT and its variants

◮ Bayesian reasoning [SangBK05], Probabilistic planning [DomshlakH07], Reliability estimation [Dueñas-OsorioMPV17]

◮ Projected Model Counting (PMC)

◮ Given: CNF Formula ϕ and set P ⊆ var(ϕ) of projection variables ◮ Task: Compute PMCP(ϕ) := |{I ∩ P | I ⊆ var(ϕ), I | = ϕ}| ◮ SAT · · · · · · · · · · · · PMC · · · · · · · · · · · · #SAT P = ∅ · · · · · · · · · · · · P arbitrary · · · · · · · · · · · · P = var(ϕ)

1 / 22

slide-7
SLIDE 7

Introduction

Motivation

◮ Interest in Solving Model Counting (#SAT)

◮ Canonical #P-complete [Valiant79] problem ◮ Variants: approximation, weights, . . .

◮ Applications of #SAT and its variants

◮ Bayesian reasoning [SangBK05], Probabilistic planning [DomshlakH07], Reliability estimation [Dueñas-OsorioMPV17]

◮ Projected Model Counting (PMC)

◮ Given: CNF Formula ϕ and set P ⊆ var(ϕ) of projection variables ◮ Task: Compute PMCP(ϕ) := |{I ∩ P | I ⊆ var(ϕ), I | = ϕ}| ◮ SAT · · · · · · · · · · · · PMC · · · · · · · · · · · · #SAT P = ∅ · · · · · · · · · · · · P arbitrary · · · · · · · · · · · · P = var(ϕ) ◮ Considered hard(er): #·NP-complete [DurandHK05]

1 / 22

slide-8
SLIDE 8

Introduction

Motivation: What’s the issue?

Theory: PMC cannot be solved in a polynomial number of steps!

2 / 22

slide-9
SLIDE 9

Introduction

Motivation: What’s the issue?

Theory: PMC cannot be solved in a polynomial number of steps! Idea: ◮ Instances are usually highly structured ◮ Structure can be exploited by algorithms

2 / 22

slide-10
SLIDE 10

Introduction

Motivation: What’s the issue?

Theory: PMC cannot be solved in a polynomial number of steps! Idea: ◮ Instances are usually highly structured ◮ Structure can be exploited by algorithms ⇒ Parameterized Algorithmics

2 / 22

slide-11
SLIDE 11

Introduction

Solution: Parameterized Algorithmics

◮ Utilize (structural) properties of instances ◮ Goal: Confine complexity to certain (structural) parameters

3 / 22

slide-12
SLIDE 12

Introduction

Solution: Parameterized Algorithmics

◮ Utilize (structural) properties of instances ◮ Goal: Confine complexity to certain (structural) parameters Which PARAMETER?

3 / 22

slide-13
SLIDE 13

Introduction

Solution: Parameterized Algorithmics

◮ Utilize (structural) properties of instances ◮ Goal: Confine complexity to certain (structural) parameters Which PARAMETER? ⇒ HERE: Treewidth, a widely applicable, structural parameter

3 / 22

slide-14
SLIDE 14

Introduction

Solution: Parameterized Algorithmics

◮ Utilize (structural) properties of instances ◮ Goal: Confine complexity to certain (structural) parameters Which PARAMETER? ⇒ HERE: Treewidth, a widely applicable, structural parameter

Contribution

◮ Algorithm for PMC using treewidth with worst-case runtime 22O(tw) · poly(|ϕ|) ◮ Unless ETH fails, there is no algorithm for PMC running in time 22o(tw) · 2o(|ϕ|)

3 / 22

slide-15
SLIDE 15

Tree Decompositions

Outline

Introduction Tree Decompositions PMC and Tree Decompositions? Towards Solving in Practice Summary & Future Work

4 / 22

slide-16
SLIDE 16

Tree Decompositions

“Treewidth”?

◮ Many problems are (comput.) hard on graphs, but simpler on trees ◮ There is a way to capture how “tree-like” a graph is – the treewidth, defined in terms

  • f tree decompositions . . .

4 / 22

slide-17
SLIDE 17

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x b c y b, c b, c b, x, c b, x, a b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-18
SLIDE 18

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x x b c y b, c b, c b, x, c b, x, a b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-19
SLIDE 19

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x x b c y b, c b, c b, x, c b, x, a b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-20
SLIDE 20

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x b c y b, c b, c b, x, c b, x, a b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-21
SLIDE 21

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x x b c y b, c b, c b, x, c b, x, a b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-22
SLIDE 22

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x x b c y b, c b, c b, x, c b, x, a b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-23
SLIDE 23

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x b c y b, c b, c b, x, c b, x, a b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-24
SLIDE 24

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x b c y b, c b, c b, x, c b, x, a b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-25
SLIDE 25

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x b c y b, c b, c b, x, c b, x, a b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-26
SLIDE 26

Tree Decompositions

Tree Decompositions

Tree Decomposition T of G

a G: x b c y b, c b, c b, x, c b, x, a

  • width

b, c, y b, c T :

Definition

A tree decomposition is a tree obtained from an arbitrary graph s.t.

  • 1. Each vertex must occur in some bag
  • 2. For each edge, there is a bag containing both endpoints
  • 3. Connected: If vertex v appears in bags of nodes t0 and t1, then v is also in the bag of

each node on the path between t0 and t1

5 / 22

slide-27
SLIDE 27

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

6 / 22

slide-28
SLIDE 28

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

  • 1. Decompose graph

b, c b, c b, x, c b, x, a b, c b, c, y

6 / 22

slide-29
SLIDE 29

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via A

b, c b, c b, x, c b, x, a b, c b, c, y

6 / 22

slide-30
SLIDE 30

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a a x b c y

  • 1. Decompose graph
  • 2. Solve problems via A

b, c b, c b, x, c b, x, a b, x, a b, c b, c, y

b c · · · · · · · · · · · · · · · · · · · · · · · · b x c · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · · b x a · · · · · · · · · · · · · · · · · · b c y · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · ·

6 / 22

slide-31
SLIDE 31

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via A

b, c b, c b, x, c b, x, c b, x, a b, c b, c, y

b c · · · · · · · · · · · · · · · · · · · · · · · · b x c · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · · b x a · · · · · · · · · · · · · · · · · · b c y · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · ·

6 / 22

slide-32
SLIDE 32

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via A

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c · · · · · · · · · · · · · · · · · · · · · · · · b x c · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · · b x a · · · · · · · · · · · · · · · · · · b c y · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · ·

6 / 22

slide-33
SLIDE 33

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via A

b, c b, c b, x, c b, x, a b, c b, c, y b, c, y

b c · · · · · · · · · · · · · · · · · · · · · · · · b x c · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · · b x a · · · · · · · · · · · · · · · · · · b c y · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · ·

6 / 22

slide-34
SLIDE 34

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via A

b, c b, c b, x, c b, x, a b, c b, c b, c b, c, y

b c · · · · · · · · · · · · · · · · · · · · · · · · b x c · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · · b x a · · · · · · · · · · · · · · · · · · b c y · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · ·

6 / 22

slide-35
SLIDE 35

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via A

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c · · · · · · · · · · · · · · · · · · · · · · · · b x c · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · · b x a · · · · · · · · · · · · · · · · · · b c y · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · ·

6 / 22

slide-36
SLIDE 36

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via A

b, c b, c b, x, c b, x, a b, c b, c, y

b c · · · · · · · · · · · · · · · · · · · · · · · · b x c · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · · b x a · · · · · · · · · · · · · · · · · · b c y · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · ·

6 / 22

slide-37
SLIDE 37

Tree Decompositions

Exploiting Tree Decompositions (TDs)

Dynamic Programming DPA via local algorithm A

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via A
  • 3. Combine solutions

b, c b, c b, x, c b, x, a b, c b, c, y

b c · · · · · · · · · · · · · · · · · · · · · · · · b x c · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · · b x a · · · · · · · · · · · · · · · · · · b c y · · · · · · · · · · · · · · · · · · · · · · · · · · · b c · · · · · · · · · · · · · · · · · · · · · · · ·

6 / 22

slide-38
SLIDE 38

PMC and Tree Decompositions?

Outline

Introduction Tree Decompositions PMC and Tree Decompositions? Towards Solving in Practice Summary & Future Work

7 / 22

slide-39
SLIDE 39

PMC and Tree Decompositions?

How would we solve PMC by means of Tree Decompositions?

7 / 22

slide-40
SLIDE 40

PMC and Tree Decompositions?

How would we solve PMC by means of Tree Decompositions? Relax! Let us go one step back to SAT!

7 / 22

slide-41
SLIDE 41

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

7 / 22

slide-42
SLIDE 42

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

Mod(ϕ) = { {b}, {a, b}, {b, c}, {a, b, c}, {b, c, x}, {a, b, c, x}, {b, y}, {a, b, y}}

7 / 22

slide-43
SLIDE 43

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph

b, c b, c b, x, c b, x, a b, c b, c, y

7 / 22

slide-44
SLIDE 44

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S

b, c b, c b, x, c b, x, a b, x, a b, c b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 1 b c 1 1 1

7 / 22

slide-45
SLIDE 45

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S

b, c b, c b, x, c b, x, c b, x, a b, c b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 1 b c 1 1 1

7 / 22

slide-46
SLIDE 46

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 1 b c 1 1 1

7 / 22

slide-47
SLIDE 47

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S

b, c b, c b, x, c b, x, a b, c b, c, y b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 1 b c 1 1 1

7 / 22

slide-48
SLIDE 48

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S

b, c b, c b, x, c b, x, a b, c b, c b, c b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 1 b c 1 1 1

7 / 22

slide-49
SLIDE 49

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 1 b c 1 1 1

7 / 22

slide-50
SLIDE 50

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S

b, c b, c b, x, c b, x, a b, c b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 1 b c 1 1 1

7 / 22

slide-51
SLIDE 51

PMC and Tree Decompositions?

Local algorithm S for SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S
  • 3. Combine solutions

b, c b, c b, x, c b, x, a b, c b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 1 b c 1 1 1

7 / 22

slide-52
SLIDE 52

PMC and Tree Decompositions?

Local algorithm S# for #SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S
  • 3. Combine solutions

b, c b, c b, x, c b, x, a b, c b, c, y

b c # 1

2

1 1

4

b x c # 1

2

1 1

2

1 1 1

2

b c #

2

1

2

1 1

1

b x a # 1

1

1 1

1

1 1

1

1 1 1

1

1 1

1

b c y #

1

1

1

1

1

1 1

1

1 1

1

b c # 1

4

1 1

4

7 / 22

slide-53
SLIDE 53

PMC and Tree Decompositions?

Local algorithm S# for #SAT [SamerS10]

ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Decompose graph
  • 2. Solve problems via S
  • 3. Combine solutions

b, c b, c b, x, c b, x, a b, c b, c, y

b c # 1

2

1 1

4

b x c # 1

2

1 1

2

1 1 1

2

b c #

2

1

2

1 1

1

b x a # 1

1

1 1

1

1 1

1

1 1 1

1

1 1

1

Runtime: 2O(tw) · poly(|ϕ|)

b c y #

1

1

1

1

1

1 1

1

1 1

1

b c # 1

4

1 1

4

7 / 22

slide-54
SLIDE 54

PMC and Tree Decompositions?

Solving PMC using S?

As already shown, algorithm S can be extended to solve #SAT!

8 / 22

slide-55
SLIDE 55

PMC and Tree Decompositions?

Solving PMC using S?

As already shown, algorithm S can be extended to solve #SAT!

Can we trivially extend S to solve PMC?

8 / 22

slide-56
SLIDE 56

PMC and Tree Decompositions?

Solving PMC using S?

As already shown, algorithm S can be extended to solve #SAT!

Can we trivially extend S to solve PMC?

Short answer: NO!

Theorem

Unless ETH fails, there is no algorithm for PMC running in time 22o(tw) · poly(|ϕ|).

8 / 22

slide-57
SLIDE 57

PMC and Tree Decompositions?

Solving PMC using S?

As already shown, algorithm S can be extended to solve #SAT!

Can we trivially extend S to solve PMC?

Short answer: NO!

Theorem

Unless ETH fails, there is no algorithm for PMC running in time 22o(tw) · poly(|ϕ|).

Proof.

◮ Solve closed QBF ∀X.∃Y.ϕ by checking whether 2|X| solves PMC of (ϕ, P = X)

8 / 22

slide-58
SLIDE 58

PMC and Tree Decompositions?

Solving PMC using S?

As already shown, algorithm S can be extended to solve #SAT!

Can we trivially extend S to solve PMC?

Short answer: NO!

Theorem

Unless ETH fails, there is no algorithm for PMC running in time 22o(tw) · poly(|ϕ|).

Proof.

◮ Solve closed QBF ∀X.∃Y.ϕ by checking whether 2|X| solves PMC of (ϕ, P = X) ◮ Unless ETH fails, 2-QSAT can not be solved [LampisM17] in time 22o(tw) · 2o(|ϕ|)

8 / 22

slide-59
SLIDE 59

PMC and Tree Decompositions?

Side Question: Does it get simpler eventually?

9 / 22

slide-60
SLIDE 60

PMC and Tree Decompositions?

Side Question: Does it get simpler eventually?

#Σℓ: “PMC” for QBFs

◮ Given: QBF ψ = ∃X1.∀X2. . . . QXℓ.ϕ, where set P is the set of free variables of ψ ◮ Task: Compute PMCQP(ψ) := |{I | I ⊆ P, ψ[I] valid}|

9 / 22

slide-61
SLIDE 61

PMC and Tree Decompositions?

Side Question: Does it get simpler eventually?

#Σℓ: “PMC” for QBFs

◮ Given: QBF ψ = ∃X1.∀X2. . . . QXℓ.ϕ, where set P is the set of free variables of ψ ◮ Task: Compute PMCQP(ψ) := |{I | I ⊆ P, ψ[I] valid}|

Theorem ([FHP19])

Unless ETH fails, there is no algorithm for #Σℓ running in time 22...2

  • height ℓ+1
  • (tw)

· 2o(|ϕ|).

9 / 22

slide-62
SLIDE 62

PMC and Tree Decompositions?

Side Question: Does it get simpler eventually?

#Σℓ: “PMC” for QBFs

◮ Given: QBF ψ = ∃X1.∀X2. . . . QXℓ.ϕ, where set P is the set of free variables of ψ ◮ Task: Compute PMCQP(ψ) := |{I | I ⊆ P, ψ[I] valid}|

Theorem ([FHP19])

Unless ETH fails, there is no algorithm for #Σℓ running in time 22...2

  • height ℓ+1
  • (tw)

· 2o(|ϕ|).

Proof.

◮ Argument similar to before, boils down to:

9 / 22

slide-63
SLIDE 63

PMC and Tree Decompositions?

Side Question: Does it get simpler eventually?

#Σℓ: “PMC” for QBFs

◮ Given: QBF ψ = ∃X1.∀X2. . . . QXℓ.ϕ, where set P is the set of free variables of ψ ◮ Task: Compute PMCQP(ψ) := |{I | I ⊆ P, ψ[I] valid}|

Theorem ([FHP19])

Unless ETH fails, there is no algorithm for #Σℓ running in time 22...2

  • height ℓ+1
  • (tw)

· 2o(|ϕ|).

Proof.

◮ Argument similar to before, boils down to: ◮ Unless ETH fails, (ℓ + 1)-QSAT can not be solved [FHP19] in time 22...2

  • height ℓ+1
  • (tw)

· 2o(|ϕ|)

9 / 22

slide-64
SLIDE 64

PMC and Tree Decompositions?

Solving PMC using S?

Wanted

◮ PMCP(ϕ) := |{I ∩ P | I ⊆ var(ϕ), I | = ϕ}|

10 / 22

slide-65
SLIDE 65

PMC and Tree Decompositions?

Solving PMC using S?

Wanted

◮ PMCP(ϕ) := |{I ∩ P | I ⊆ var(ϕ), I | = ϕ}| “Directly” computing PMCP: too expensive

10 / 22

slide-66
SLIDE 66

PMC and Tree Decompositions?

Solving PMC using S?

Wanted

◮ PMCP(ϕ) := |{I ∩ P | I ⊆ var(ϕ), I | = ϕ}| “Directly” computing PMCP: too expensive Approach: Compute numbers “locally” We will still be using S

10 / 22

slide-67
SLIDE 67

PMC and Tree Decompositions?

Solving PMC using S?

Wanted

◮ PMCP(ϕ) := |{I ∩ P | I ⊆ var(ϕ), I | = ϕ}| “Directly” computing PMCP: too expensive Approach: Compute numbers “locally” We will still be using S

PMC in three steps

  • 1. Run algorithm DPS

10 / 22

slide-68
SLIDE 68

PMC and Tree Decompositions?

Solving PMC using S?

Wanted

◮ PMCP(ϕ) := |{I ∩ P | I ⊆ var(ϕ), I | = ϕ}| “Directly” computing PMCP: too expensive Approach: Compute numbers “locally” We will still be using S

PMC in three steps

  • 1. Run algorithm DPS
  • 2. Purge non-solutions

10 / 22

slide-69
SLIDE 69

PMC and Tree Decompositions?

Solving PMC using S?

Wanted

◮ PMCP(ϕ) := |{I ∩ P | I ⊆ var(ϕ), I | = ϕ}| “Directly” computing PMCP: too expensive Approach: Compute numbers “locally” We will still be using S

PMC in three steps

  • 1. Run algorithm DPS
  • 2. Purge non-solutions
  • 3. Projected counting via DPP

Step 3 requires the following: Assign counter to a set of rows

10 / 22

slide-70
SLIDE 70

PMC and Tree Decompositions?

Towards projection via local algorithm P

Ingredients for given PMC instance (ϕ, P)

◮ Equivalence classes (partitioning) of table rows

For rows u, v of a table: u ≡P v ⇐ ⇒ I(u) ∩ P = I(v) ∩ P

11 / 22

slide-71
SLIDE 71

PMC and Tree Decompositions?

Towards projection via local algorithm P

Ingredients for given PMC instance (ϕ, P)

◮ Equivalence classes (partitioning) of table rows

For rows u, v of a table: u ≡P v ⇐ ⇒ I(u) ∩ P = I(v) ∩ P

◮ Map subsets of resulting “row classes” to a counter ◮ Maintain counters using the principle of inclusion and exclusion

11 / 22

slide-72
SLIDE 72

PMC and Tree Decompositions?

Towards projection via local algorithm P

Ingredients for given PMC instance (ϕ, P)

◮ Equivalence classes (partitioning) of table rows

For rows u, v of a table: u ≡P v ⇐ ⇒ I(u) ∩ P = I(v) ∩ P

◮ Map subsets of resulting “row classes” to a counter ◮ Maintain counters using the principle of inclusion and exclusion

Example: Computing pmct given P = {x, y, z}

. . . . . . x . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . x

counter

. . . . . . . . .

1

. . . . . . . . .

3 1

. . . . . . . . .

2 2 1

. . . . . . . . .

1 3

t : . . . . . .

11 / 22

slide-73
SLIDE 73

PMC and Tree Decompositions?

Towards projection via local algorithm P

Ingredients for given PMC instance (ϕ, P)

◮ Equivalence classes (partitioning) of table rows

For rows u, v of a table: u ≡P v ⇐ ⇒ I(u) ∩ P = I(v) ∩ P

◮ Map subsets of resulting “row classes” to a counter ◮ Maintain counters using the principle of inclusion and exclusion

Example: Computing pmct given P = {x, y, z}

. . . . . . x . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . x

counter

. . . . . . . . .

1

. . . . . . . . .

3 1

. . . . . . . . .

2 2 1

. . . . . . . . .

1 3

t : . . . . . .

11 / 22

slide-74
SLIDE 74

PMC and Tree Decompositions?

Towards projection via local algorithm P

Ingredients for given PMC instance (ϕ, P)

◮ Equivalence classes (partitioning) of table rows

For rows u, v of a table: u ≡P v ⇐ ⇒ I(u) ∩ P = I(v) ∩ P

◮ Map subsets of resulting “row classes” to a counter ◮ Maintain counters using the principle of inclusion and exclusion

Example: Computing pmct given P = {x, y, z}

. . . . . . x . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . x

counter

. . . . . . . . .

1

. . . . . . . . .

3 1

. . . . . . . . .

2 2 1

. . . . . . . . .

1 3

t : . . . . . .

11 / 22

slide-75
SLIDE 75

PMC and Tree Decompositions?

Towards projection via local algorithm P

Ingredients for given PMC instance (ϕ, P)

◮ Equivalence classes (partitioning) of table rows

For rows u, v of a table: u ≡P v ⇐ ⇒ I(u) ∩ P = I(v) ∩ P

◮ Map subsets of resulting “row classes” to a counter ◮ Maintain counters using the principle of inclusion and exclusion

Example: Computing pmct given P = {x, y, z}

. . . . . . x . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . x

counter

. . . . . . . . .

1

. . . . . . . . .

3 1

. . . . . . . . .

2 2 1

. . . . . . . . .

1 3

t : . . . . . .

11 / 22

slide-76
SLIDE 76

PMC and Tree Decompositions?

Towards projection via local algorithm P

Ingredients for given PMC instance (ϕ, P)

◮ Equivalence classes (partitioning) of table rows

For rows u, v of a table: u ≡P v ⇐ ⇒ I(u) ∩ P = I(v) ∩ P

◮ Map subsets of resulting “row classes” to a counter ◮ Maintain counters using the principle of inclusion and exclusion

Example: Computing pmct given P = {x, y, z}

. . . . . . x . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . x

counter

. . . . . . . . .

1

. . . . . . . . .

3 1

. . . . . . . . .

2 2 1

. . . . . . . . .

1 3

t : pmct = 6 . . . . . .

11 / 22

slide-77
SLIDE 77

PMC and Tree Decompositions?

Towards projection via local algorithm P

Ingredients for given PMC instance (ϕ, P)

◮ Equivalence classes (partitioning) of table rows

For rows u, v of a table: u ≡P v ⇐ ⇒ I(u) ∩ P = I(v) ∩ P

◮ Map subsets of resulting “row classes” to a counter ◮ Maintain counters using the principle of inclusion and exclusion

Example: Computing pmct given P = {x, y, z}

. . . . . . x . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . x

counter

. . . . . . . . .

1

. . . . . . . . .

3 1

. . . . . . . . .

2 2 1

. . . . . . . . .

1 3

t : pmct = 6−4∗

*: Counter for 1st and 3rd row: 1

. . . . . .

11 / 22

slide-78
SLIDE 78

PMC and Tree Decompositions?

Towards projection via local algorithm P

Ingredients for given PMC instance (ϕ, P)

◮ Equivalence classes (partitioning) of table rows

For rows u, v of a table: u ≡P v ⇐ ⇒ I(u) ∩ P = I(v) ∩ P

◮ Map subsets of resulting “row classes” to a counter ◮ Maintain counters using the principle of inclusion and exclusion

Example: Computing pmct given P = {x, y, z}

. . . . . . x . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . x

counter

. . . . . . . . .

1

. . . . . . . . .

3 1

. . . . . . . . .

2 2 1

. . . . . . . . .

1 3

t : pmct = 6−4∗+1 = 3

*: Counter for 1st and 3rd row: 1

. . . . . .

11 / 22

slide-79
SLIDE 79

PMC and Tree Decompositions?

Towards projection via local algorithm P

Principle of Inclusion-Exclusion (PIE) for family X of finite sets Xi

|

Xi∈X

Xi| = |X1| + |X2| + . . . − |X1 ∩ X2| + . . . + (−1)|X|−1 · |

  • Xi∈X

Xi|

12 / 22

slide-80
SLIDE 80

PMC and Tree Decompositions?

Towards projection via local algorithm P

Principle of Inclusion-Exclusion (PIE) for family X of finite sets Xi

|

Xi∈X

Xi| = |X1| + |X2| + . . . − |X1 ∩ X2| + . . . + (−1)|X|−1 · |

  • Xi∈X

Xi| = ΣI{1,...,|X|}(−1)|I|−1 · |

  • i∈I

Xi| + (−1)|X|−1 · |

  • Xi∈X

Xi|

12 / 22

slide-81
SLIDE 81

PMC and Tree Decompositions?

Towards projection via local algorithm P

Principle of Inclusion-Exclusion (PIE) for family X of finite sets Xi

|

  • Xi∈X

Xi|

  • pmct

= |X1| + |X2| + . . . − |X1 ∩ X2| + . . . + (−1)|X|−1 · |

  • Xi∈X

Xi| = ΣI{1,...,|X|}(−1)|I|−1 · |

  • i∈I

Xi| + (−1)|X|−1 · |

  • Xi∈X

Xi|

12 / 22

slide-82
SLIDE 82

PMC and Tree Decompositions?

Towards projection via local algorithm P

Principle of Inclusion-Exclusion (PIE) for family X of finite sets Xi

|

  • Xi∈X

Xi|

  • pmct

= |X1| + |X2| + . . . − |X1 ∩ X2| + . . . + (−1)|X|−1 · |

  • Xi∈X

Xi| = ΣI{1,...,|X|}(−1)|I|−1 · |

  • i∈I

Xi| + (−1)|X|−1 · |

  • Xi∈X

Xi|

  • ipmct

12 / 22

slide-83
SLIDE 83

PMC and Tree Decompositions?

Towards projection via local algorithm P

Principle of Inclusion-Exclusion (PIE) for family X of finite sets Xi

|

  • Xi∈X

Xi|

  • pmct

= |X1| + |X2| + . . . − |X1 ∩ X2| + . . . + (−1)|X|−1 · |

  • Xi∈X

Xi| = ΣI{1,...,|X|}(−1)|I|−1 · |

  • i∈I

Xi| + (−1)|X|−1 · |

  • Xi∈X

Xi|

  • ipmct

12 / 22

slide-84
SLIDE 84

PMC and Tree Decompositions?

Towards projection via local algorithm P

Principle of Inclusion-Exclusion (PIE) for family X of finite sets Xi

|

  • Xi∈X

Xi|

  • pmct

= |X1| + |X2| + . . . − |X1 ∩ X2| + . . . + (−1)|X|−1 · |

  • Xi∈X

Xi| = ΣI{1,...,|X|}(−1)|I|−1 · |

  • i∈I

Xi| + (−1)|X|−1 · |

  • Xi∈X

Xi|

  • ipmct

Local algorithm P in more details: ◮ Only store (“counter”) ipmct-values ◮ pmct-values are used intermediately ◮ Generalization of PIE that – instead of cardinalities – relies on stored ipmct-values

12 / 22

slide-85
SLIDE 85

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

13 / 22

slide-86
SLIDE 86

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

Mod(ϕ) = { {b}, {a, b}, {b, c}, {a, b, c}, {b, c, x}, {a, b, c, x}, {b, y}, {a, b, y}} PMCP(ϕ) = |{∅, {x}, {y}}| = 3

13 / 22

slide-87
SLIDE 87

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Local algorithm S

b, c b, c b, x, c b, x, a b, c b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 1 b c 1 1 1

13 / 22

slide-88
SLIDE 88

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

a x b c y

  • 1. Local algorithm S
  • 2. Purge non-solutions

b, c b, c b, x, c b, x, a b, c b, c, y

b c 1 1 1 b x c 1 1 1 1 1 1 b c 1 1 1 b x a 1 1 1 1 1 1 1 1 b c y 1 1 1 1 1 b c 1 1 1

13 / 22

slide-89
SLIDE 89

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, x, c b, x, a b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-90
SLIDE 90

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, x, c b, x, a b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-91
SLIDE 91

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, x, c b, x, a b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-92
SLIDE 92

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, x, c b, x, c b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-93
SLIDE 93

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, x, c b, x, c b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-94
SLIDE 94

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, x, c b, x, c b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-95
SLIDE 95

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-96
SLIDE 96

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-97
SLIDE 97

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, x, c b, x, a b, c b, c, y b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-98
SLIDE 98

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, x, c b, x, a b, c b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-99
SLIDE 99

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-100
SLIDE 100

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

13 / 22

slide-101
SLIDE 101

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

PMCP(ϕ) = 2 + 2−1 = 3 ∀x, y. ∃a, b, c. ϕ invalid

13 / 22

slide-102
SLIDE 102

PMC and Tree Decompositions?

Dynamic Programming via local algorithm P for PMC

P = {x, y}, ϕ =(¬a ∨ b ∨ x) ∧ (a ∨ b) ∧ (c ∨ ¬x) ∧ (b ∨ ¬c) ∧ (¬b ∨ ¬c ∨ ¬y)

  • 1. Local algorithm S
  • 2. Purge non-solutions
  • 3. Solve PMC via P

b, c b, c b, c b, x, c b, x, a b, c b, c, y

b c

ipmc

1

1

1 1

2 1

b x c

ipmc

1

1

1 1

1 1

1 1 1

1

b c

ipmc

1

2

1 1

1 1

b x a ipmc 1

1

1 1

1 1

1 1

1 1

1 1 1

1

b c y

ipmc

1

1 1

1 1

1

1 1

1

b c

ipmc

1

2

1 1

2 1

Runtime: 22O(tw) · poly(|ϕ|)

13 / 22

slide-103
SLIDE 103

Towards Solving in Practice

Outline

Introduction Tree Decompositions PMC and Tree Decompositions? Towards Solving in Practice Summary & Future Work

14 / 22

slide-104
SLIDE 104

Towards Solving in Practice

Put Things on Track: Experiments

15 / 22

slide-105
SLIDE 105

Towards Solving in Practice

Put Things on Track: Experiments

Wanted: PMC for QBFs (#Σℓ)

15 / 22

slide-106
SLIDE 106

Towards Solving in Practice

The dynQBF System

Core Features ◮ Deciding QSAT ◮ Partial certificates (outermost quantifier block) System Specifics ◮ C++, open source ◮ Tree decomposition: htd library ◮ Hybrid solving via BDD system as “local algorithm”, linked by tree decomposition https://github.com/TU-Wien-DBAI/dynqbf

16 / 22

slide-107
SLIDE 107

Towards Solving in Practice

Experiments: 2-QBF instances

w ≤ 80 (86 instances) w > 80 (89 instances) System Solved Time System Solved Time dynQBF 79 6K RAReQS 69 17K DepQBF 41 28K QSTS 69 18K Qesto 39 31K Qesto 67 19K RAReQS 33 34K DepQBF 50 28K CAQE 28 36K AReQS 47 28K AReQS 25 38K CAQE 46 29K QSTS 21 40K dynQBF 12 47K GhostQ (CEGAR) 9 47K GhostQ (CEGAR) 12 49K Table: Data set: QBFEval’16 – 2-QBF track, 175 non-trivial instances after preprocessing

17 / 22

slide-108
SLIDE 108

Towards Solving in Practice

Experiments: PCNF instances

w ≤ 80 (182 instances) w > 80 (302 instances) System Solved Time System Solved Time RAReQS 137 28K RAReQS 155 98K dynQBF 134 32K Qesto 148 100K Qesto 129 34K DepQBF 131 108K DepQBF 124 36K CAQE 129 114K QSTS 123 37K QSTS 128 112K CAQE 119 40K GhostQ (CEGAR) 112 120K GhostQ (CEGAR) 118 41K dynQBF 19 171K Table: Data set: QBFEval’16 – PCNF track, 484 non-trivial instances after preprocessing

18 / 22

slide-109
SLIDE 109

Towards Solving in Practice

Proposal: Unleash Hybrid Parameterized Solving

Full potential not revealed yet ◮ Decomposition heuristics not suited for larger instances ◮ Hybrid solving performance not sensitive to treewidth alone

19 / 22

slide-110
SLIDE 110

Towards Solving in Practice

Proposal: Unleash Hybrid Parameterized Solving

Full potential not revealed yet ◮ Decomposition heuristics not suited for larger instances ◮ Hybrid solving performance not sensitive to treewidth alone ◮ Decomposing the whole graph not always feasible in practice

19 / 22

slide-111
SLIDE 111

Towards Solving in Practice

Proposal: Unleash Hybrid Parameterized Solving

Full potential not revealed yet ◮ Decomposition heuristics not suited for larger instances ◮ Hybrid solving performance not sensitive to treewidth alone ◮ Decomposing the whole graph not always feasible in practice Goals ◮ Find a suitable model to capture solving performance ◮ Analyze promising decomposition “shapes”

19 / 22

slide-112
SLIDE 112

Towards Solving in Practice

Proposal: Unleash Hybrid Parameterized Solving

Full potential not revealed yet ◮ Decomposition heuristics not suited for larger instances ◮ Hybrid solving performance not sensitive to treewidth alone ◮ Decomposing the whole graph not always feasible in practice Goals ◮ Find a suitable model to capture solving performance ◮ Analyze promising decomposition “shapes” ◮ Elaborate on the interplay between local solving and dynamic programming (on tree decompositions) ◮ Best of two worlds: decompose parts of the graph?

19 / 22

slide-113
SLIDE 113

Summary & Future Work

Outline

Introduction Tree Decompositions PMC and Tree Decompositions? Towards Solving in Practice Summary & Future Work

20 / 22

slide-114
SLIDE 114

Summary & Future Work

Conclusion & Future Work

Parameterized Algorithmics ◮ Structural parameter treewidth ◮ Promising results for counting instances [FHMW17,FHWZ18] ◮ Hybrid solver dynQBF [CW17] as a competitive alternative for QSAT

21 / 22

slide-115
SLIDE 115

Summary & Future Work

Conclusion & Future Work

Parameterized Algorithmics ◮ Structural parameter treewidth ◮ Promising results for counting instances [FHMW17,FHWZ18] ◮ Hybrid solver dynQBF [CW17] as a competitive alternative for QSAT

Projected Model Counting (PMC)

◮ PMC not only believed harder than #SAT w.r.t. classical counting complexity Under ETH, PMC requires at least double-exponential runtime (in the treewidth)

21 / 22

slide-116
SLIDE 116

Summary & Future Work

Conclusion & Future Work

Parameterized Algorithmics ◮ Structural parameter treewidth ◮ Promising results for counting instances [FHMW17,FHWZ18] ◮ Hybrid solver dynQBF [CW17] as a competitive alternative for QSAT

Projected Model Counting (PMC)

◮ PMC not only believed harder than #SAT w.r.t. classical counting complexity Under ETH, PMC requires at least double-exponential runtime (in the treewidth) ◮ PMC for QBF can also be solved via the presented algorithm DPP [FHMW18] ◮ Established algorithm DPP can also count projected solutions for AI-relevant problems, as, e.g., Argumentation [FHMeier19], logic programming [FH18], etc.

21 / 22

slide-117
SLIDE 117

Summary & Future Work

Conclusion∗ & Upcoming Work

∗) Note that during preparation of

this talk no living tree was harmed.

Unleash Hybrid Solving

◮ Highly optimized solvers for local solving, linked via tree decomposition Dedicated decompositions for efficient practical solving Investigate and deepen interplay between decomposing and solving

22 / 22