v F c v F c 2 1 4 3 4 v < 3 v < 2 v < 1 v v F c - - PowerPoint PPT Presentation
v F c v F c 2 1 4 3 4 v < 3 v < 2 v < 1 v v F c - - PowerPoint PPT Presentation
v F c v F c 2 1 4 3 4 v < 3 v < 2 v < 1 v v F c ( ) v 0 F c v F c v F c r v r > 0 v F c = prox C ( r v ) r v r > 0 My Favorite
v Fc
v Fc λ1 λ2 λ3 λ4 λ4 v < λ3 v < λ2 v < λ1 v
v Fc λ (γ − λ) v ≥ 0 ∀γ ∈ Fc
v Fc λ
v Fc λ λ − r v ∀r > 0
v Fc λ λ − r v ∀r > 0 λ = proxC(λ − r v)
My Favorite Benefits
- Local non-linear friction models
used directly without any discretization
- Fixed point problem gives us
Gauss-Seidel and Jacobi schemes almost for free see paper for details
- Any solution for any r>0 value will
be an “exact” solution!
- Supports stabilization,
simultaneous impacts, various time-stepping methods and more see paper for details
λ = proxC(λ − r v) λ |{z}
x
= proxC(λ − r v) | {z }
F (x)
xk+1 = F(xk)
The Drawbacks
- Not obvious what r-value to
use
- Some r-values cause
divergence, others can accelerate convergence
- Our solution is to use adaptive
r-values
λ = proxC(λ − r v) λ |{z}
x
= proxC(λ − r v) | {z }
F (x)
xk+1 = F(xk)
Adaptive r-Factor Scheme
while not converged λk+1 = proxC(λk − Rv) rk+1 = |λk+1 − λk|∞ if rk+1 > rk R ← νR else λk ← λk+1
Initial r-Factor values
- Global strategy
- Local strategy
- Blocked strategy
ri = 1 Aii Rk = 1
Aii
A−1
s:r,s:r
- r = 5
Insight on Global Strategy
λk+1 = proxC
- λk − R(Aλk + b)
- We have the iterative scheme
If R = A−1 Then λk+1 = proxC (−Rb) Just one iteration
Insight on Global Strategy
λk+1 = proxC
- λk − R(Aλk + b)
- We have the iterative scheme
If R = A−1 Then λk+1 = proxC (−Rb) Just one iteration P r
- b
l e m : w e d
- n
- t
w a n t t
- c
- m
p u t e A
- r
i t s i n v e r s e s
- w
e a p p r
- x
i m a t e i t
Insight on Local Strategy
ri = γ 1 Aii γ ∈ [0, 2] Let us choose Then λi = proxC ✓ λi − γ P
j<i Uijλj + P j>i Lijλj + Diiλi − bi
Dii ◆ λi = proxC ✓ (1 − γ) λi + γ bi − P
j<i Uijλj + P j>i Lijλj
Dii ◆ This is exactly the usual LCP-PSOR variant A = L + D + U
Little Matlab Example
Adaptive r-Factor PSOR (1.4)
Test Scenes
Gauss-Seidel or Jacobi Variant?
20 40 60 80 100 120 140 160 180 200
Solver iteration
10-4 10-2 100 102 104 106
Merit function Convergence rate behaviors of 424 runs of Jacks (Jacobi) Max 3rd Quartile Median 1st Quartile Min
20 40 60 80 100 120 140 160 180 200
Solver iteration
10-4 10-2 100 102 104 106
Merit function Convergence rate behaviors of 424 runs of Jacks (Gauss Seidel) Max 3rd Quartile Median 1st Quartile Min
50 100 150 200 250 300 350 400
Solver run(#)
20 40 60 80 100 120 140
Count (#) Divergence Count Comparison Jacks (Jacobi) Spheres (Jacobi) Tower (Jacobi) Wall (Jacobi) Jacks (Gauss Seidel) Spheres (Gauss Seidel) Tower (Gauss Seidel) Wall (Gauss Seidel)
Exit Status
Blocked r-Factor
Glasses Jacks Spheres Tower Wall
Test Scenes
200 400 600 800 1000 1200 1400
Observations (#) Absolute Convergence Relative Convergence Non Convergence Divergence
Global r-Factor
Glasses Jacks Spheres Tower Wall
Test Scenes
200 400 600 800 1000 1200 1400
Observations (#) Absolute Convergence Relative Convergence Non Convergence Divergence
Local r-Factor
Glasses Jacks Spheres Tower Wall
Test Scenes
200 400 600 800 1000 1200 1400
Observations (#) Absolute Convergence Relative Convergence Non Convergence Divergence
Iterations
50 100 150 200 250 300 350 400 450
Solver iteration
10-4 10-2 100 102 104 106
Merit function Convergence rate behaviors of 424 runs of Jacks (Blocked) Max 3rd Quartile Median 1st Quartile Min
50 100 150 200 250
Solver iteration
10-4 10-2 100 102 104 106
Merit function Convergence rate behaviors of 424 runs of Jacks (Global) Max 3rd Quartile Median 1st Quartile Min
20 40 60 80 100 120 140 160 180 200
Solver iteration
10-4 10-2 100 102 104 106
Merit function Convergence rate behaviors of 424 runs of Jacks (Local) Max 3rd Quartile Median 1st Quartile Min
Overall Performance
50 100 150 200 250 300 350 400 450
Simulaiton Step (#)
100 101 102 103 104 105 106 107
Time (ms) Timing details of Spheres (Blocked) test scene Solver Collision Detection Narrow Phase Preprocessing Contact Reduction Broad Phase
50 100 150 200 250 300 350 400 450
Simulaiton Step (#)
100 101 102 103 104 105 106 107
Time (ms) Timing details of Spheres (Global) test scene Solver Collision Detection Narrow Phase Preprocessing Contact Reduction Broad Phase
50 100 150 200 250 300 350 400 450
Simulaiton Step (#)
100 101 102 103 104 105 106 107
Time (ms) Timing details of Spheres (Local) test scene Collision Detection Narrow Phase Solver Preprocessing Contact Reduction Broad Phase
Summary of Findings
- Proximal operators are a flexible modeling tool for contact dynamics
- Gauss-Seidel or Jacobi?
- Gauss-Seidel variant is more predictable than Jacobi variant
- Jacobi variant causes divergence more often than Gauss-Seidel variant
- The r-Factor strategies
- They only change the numerics not the model
- Adaptive r-values improves convergence over constant r-values
- Blocked is hopeless for our test cases
- Global has advantages for structured stacks, local is slightly faster but not
much