Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j
Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j
Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: G and H are adjacent Exactly characters of G x r ij ∧ x r jk ∧ g r i ∧ h r k ⇒ ¬ f r and H cross each other j χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: G and H are adjacent Exactly characters of G x r ij ∧ x r jk ∧ g r i ∧ h r k ⇒ ¬ f r and H cross each other j χ r ij ⇔ g r i ∧ h r j G and H are contiguous blocks x r ij ∧ x r jk ∧ g r i ∧ g r k ⇒ g r G is above H j g r i ∧ h r j ⇒ x r x r ij ∧ x r jk ∧ h r i ∧ h r k ⇒ h r ij j
Meeting Groups
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }}
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }} π 1 π 2 π 3 π 4
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }} q r ℓ = 1 ⇔ meeting group ℓ is assigned to permutation π r π 1 π 2 π 3 π 4
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }} q r ℓ = 1 ⇔ meeting group ℓ is assigned to permutation π r π 1 π 2 π 3 π 4
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }} q r ℓ = 1 ⇔ meeting group ℓ is assigned to permutation π r π 1 π 2 π 3 π 4
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }} q r ℓ = 1 ⇔ meeting group ℓ is assigned to permutation π r π 1 π 2 π 3 π 4
Minimize the Number of Block Crossings Choose a number of permutations λ and construct the clauses.
Minimize the Number of Block Crossings Choose a number of permutations λ and construct the clauses. There is a satisfying assignment ⇔ ∃ solution for the SBCM instance using λ permutations.
Minimize the Number of Block Crossings Choose a number of permutations λ and construct the clauses. There is a satisfying assignment ⇔ ∃ solution for the SBCM instance using λ permutations. O ( λ ( κ 2 + µ )) variables, O ( λµ ( λ + κ 3 )) clauses λ : number of permutations κ : number of characters µ : number of meeting groups
Minimize the Number of Block Crossings Choose a number of permutations λ and construct the clauses. There is a satisfying assignment ⇔ ∃ solution for the SBCM instance using λ permutations. O ( λ ( κ 2 + µ )) variables, O ( λµ ( λ + κ 3 )) clauses λ : number of permutations κ : number of characters µ : number of meeting groups Finding the optimum: Repeatedly run the SAT solver with different values for λ (exponential search)
Experiments FPT Breadth-first search a smarter state space; runtime: O ( k ! · k 3 · n ) • FPT are implemented in C++ • Concurrent meetings not implemented for FPT • SAT clauses generated by Python and solved using MiniSat
Experiments FPT Breadth-first search a smarter state space; runtime: O ( k ! · k 3 · n ) • FPT are implemented in C++ • Concurrent meetings not implemented for FPT • SAT clauses generated by Python and solved using MiniSat Test Data: • Real-World instances (movies used by Gronemann et al.): The Matrix, Inception, Star Wars • Random instances • Random instances having a solution with few block crossings
SAT: Runtime vs Number of Permutations 2 The Matrix Time [s] OPT 1 ↓ 0 0 20 40 Permutations
SAT: Runtime vs Number of Permutations 2 2 Star Wars The Matrix Time [s] OPT OPT 1 1 ↓ ↓ 0 0 0 0 20 20 40 40 Permutations Permutations
SAT: Runtime vs Number of Permutations Inception 2 2 2 Star Wars The Matrix Time [s] OPT OPT 1 1 1 OPT ↓ ↓ ↓ 0 0 0 0 0 0 20 20 20 40 40 40 Permutations Permutations Permutations
Uniform Random Instances: FPT Time on 100 instances [s] 20 κ = 7 κ = 6 10 κ = 5 0 0 200 400 600 800 1 , 000 Number of meetings
Uniform Random Instances: FPT Time on 100 instances [s] 20 κ = 7 κ = 6 10 κ = 5 0 0 200 400 600 800 1 , 000 Number of meetings
Uniform Random Instances: SAT 100 Time on 1 instance [s] κ = 9 80 60 40 20 0 0 20 40 Number of meetings
Small-OPT Random Instances: SAT 2 Time on 1 instance [s] κ = 10 , β ≤ 10 1 . 5 1 0 . 5 0 0 50 100 150 200 Number of meetings
Results Movie Instances: Our approach Gronemann et al. Instance cr bc OPT Time [s] cr OPT bc Time [s] Star Wars 54 10 3.77 39 18 0.99 The Matrix 21 4 2.86 12 8 0.77 Inception 51 12 1.54 35 20 2.02
Results Movie Instances: Our approach Gronemann et al. Instance cr bc OPT Time [s] cr OPT bc Time [s] Star Wars 54 10 3.77 39 18 0.99 The Matrix 21 4 2.86 12 8 0.77 Inception 51 12 1.54 35 20 2.02
Results Movie Instances: Our approach Gronemann et al. Instance cr bc OPT Time [s] cr OPT bc Time [s] Star Wars 54 10 3.77 39 18 0.99 The Matrix 21 4 2.86 12 8 0.77 Inception 51 12 1.54 35 20 2.02
Results Movie Instances: Our approach Gronemann et al. Instance cr bc OPT Time [s] cr OPT bc Time [s] Star Wars 54 10 3.77 39 18 0.99 The Matrix 21 4 2.86 12 8 0.77 Inception 51 12 1.54 35 20 2.02
Example: The Matrix Gronemann et al. 12 crossings / 8 block crossings Our approach 21 crossings / 4 block crossings
Example: The Matrix Gronemann et al. 12 crossings / 8 block crossings Our approach 21 crossings / 4 block crossings
Example: The Matrix Gronemann et al. 12 crossings / 8 block crossings Our approach 21 crossings / 4 block crossings
Example: The Matrix Gronemann et al. 12 crossings / 8 block crossings Our approach 21 crossings / 4 block crossings
Conclusion • Our SAT approach is usable for real-world instances. • Use SAT instead of ILP – turned out to be much faster! • Source code is available online.
Conclusion • Our SAT approach is usable for real-world instances. • Use SAT instead of ILP – turned out to be much faster! • Source code is available online. Future work • Try other (parallel) SAT solvers. • Find more efficient way to model lifespans. • Consider additional quality criteria of the drawing, e.g., minimize wiggles. [Fr¨ oschl & N¨ ollenburg, GD17] • Perform a user study on the effect of block crossings, especially for storyline visualizations.
Appendix
Describing Block Crossings F G Blocks G and H cross H F
Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j
Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j
Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: Exactly characters of G and H cross each other χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: G and H are adjacent Exactly characters of G x r ij ∧ x r jk ∧ g r i ∧ h r k ⇒ ¬ f r and H cross each other j χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: G and H are adjacent Exactly characters of G x r ij ∧ x r jk ∧ g r i ∧ h r k ⇒ ¬ f r and H cross each other j χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: G and H are adjacent Exactly characters of G x r ij ∧ x r jk ∧ g r i ∧ h r k ⇒ ¬ f r and H cross each other j χ r ij ⇔ g r i ∧ h r j G is above H g r i ∧ h r j ⇒ x r ij
Describing Block Crossings F G Blocks G and H cross H F Constraints: G and H are adjacent Exactly characters of G x r ij ∧ x r jk ∧ g r i ∧ h r k ⇒ ¬ f r and H cross each other j χ r ij ⇔ g r i ∧ h r j G and H are contiguous blocks x r ij ∧ x r jk ∧ g r i ∧ g r k ⇒ g r G is above H j g r i ∧ h r j ⇒ x r x r ij ∧ x r jk ∧ h r i ∧ h r k ⇒ h r ij j
Describing Block Crossings F G Blocks G and H cross H F Constraints: G and H are adjacent Exactly characters of G x r ij ∧ x r jk ∧ g r i ∧ h r k ⇒ ¬ f r and H cross each other j χ r ij ⇔ g r i ∧ h r j G and H are contiguous blocks x r ij ∧ x r jk ∧ g r i ∧ g r k ⇒ g r G is above H j g r i ∧ h r j ⇒ x r x r ij ∧ x r jk ∧ h r i ∧ h r k ⇒ h r ij j
Describing Block Crossings F G Blocks G and H cross H F Constraints: G and H are adjacent Exactly characters of G x r ij ∧ x r jk ∧ g r i ∧ h r k ⇒ ¬ f r and H cross each other j χ r ij ⇔ g r i ∧ h r j G and H are contiguous blocks x r ij ∧ x r jk ∧ g r i ∧ g r k ⇒ g r G is above H j g r i ∧ h r j ⇒ x r x r ij ∧ x r jk ∧ h r i ∧ h r k ⇒ h r ij j
Describing Block Crossings F G Blocks G and H cross H F Constraints: G and H are adjacent Exactly characters of G x r ij ∧ x r jk ∧ g r i ∧ h r k ⇒ ¬ f r and H cross each other j χ r ij ⇔ g r i ∧ h r j G and H are contiguous blocks x r ij ∧ x r jk ∧ g r i ∧ g r k ⇒ g r G is above H j g r i ∧ h r j ⇒ x r x r ij ∧ x r jk ∧ h r i ∧ h r k ⇒ h r ij j
Meeting Groups
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }}
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }} π 1 π 2 π 3 π 4
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }} q 1 1 = 1 q r ℓ = 1 ⇔ meeting group ℓ is assigned to permutation π r π 1 π 2 π 3 π 4
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }} q 2 1 = 1 q 1 1 = 1 q r ℓ = 1 ⇔ meeting group ℓ is assigned to permutation π r π 1 π 2 π 3 π 4
Meeting Groups {{ o , g }} {{ p , r , b }} {{ o , b }} {{ p , r , b } , { o , g }} {{ p , g , o } , { b , r }} q 2 1 = 1 q 1 q 3 1 = 1 1 = 1 q r ℓ = 1 ⇔ meeting group ℓ is assigned to permutation π r π 1 π 2 π 3 π 4
Recommend
More recommend