610 likes | 1.04k Views
Pebble Game Algorithm Demonstration 2|V| - 3, 6|V| - 6. Adnan Sljoka. Recall (from last week) the 2|V| - 3 counting condition for (generic) rigidity in 2D …. This is basically saying is that we need |E|=2|V| – 3 independent Rows in the rigidity matrix.
E N D
Pebble Game Algorithm Demonstration 2|V| - 3, 6|V| - 6 Adnan Sljoka
Recall (from last week) the 2|V| - 3 counting condition for (generic) rigidity in 2D … This is basically saying is that we need |E|=2|V| – 3 independent Rows in the rigidity matrix Laman’s Theorem (1970):A graph G = (V, E) is minimally rigid (generically) in 2D if and only if |E|=2|V| – 3 and for every subgraph (V′ ,E′) with |V′| ≥ 2 vertices, |E′| ≤ 2|V′| − 3. (Generic) rigidity of the framework depends only on the graph - i.e. not concerned with positions of vertices, edge lengths Rigidity of a graph G = (V, E) |E|=2|V| – 3 Minimal number of edges needed Condition that edges are independent (well-distributed) No edges are wasted! |E′|≤2|V′| – 3 • Minimally rigid: flexible after any edge (but no vertices) is removed. |E′|>2|V′| – 3 (red subgraph has one extra (redundant) edge) Remember that first order rigidity and rigidity are the same if we consider generic frameworks |E|=2|V| – 3 |E|<2|V| – 3 |E′|≤2|V′| – 3 • (Generic) rigidity of the framework depends only on the graph • - i.e. not concerned with positions of vertices, edge lengths minimally rigid (all edges are independent) Flexible Not enough edges (constraints).
Counting in 2D (2|V| - 3) |E|=2|V| – 3 |E′|≤2|V′| – 3 • 2|V| – 3 counting condition (Laman’s Theorem) taken literally leads to a poor (exponential time) algorithm need to count edges in all subgraphs! • Several fast (polynomial time) and intuitive algorithms exist, based on counting degrees of freedom (tracking the 2|V| – 3 count) using some alternate form of Laman’s Theorem Note: 2|V| – 3 = 2(|V| –1) – 1 Add an edge and look for 2 trees
2|V| - 3 Pebble Game Algorithm Demonstration |E|=2|V| – 3 |E′|≤2|V′| – 3
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Assign 2 pebbles (degrees of freedom-DOF) to each vertex
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Pick any edge, and test it for independence (i.e. see if it removes a DOF) The idea is to match pebbles or DOF with edges according to some specific rules
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Need 4 pebbles on the ends! (3 pebbles (DOF) are always present in the graph) Pick any edge, and test it for independence (i.e. see if it removes a DOF)
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 This vertex looses one free pebble Cover edge with any of the 4 free pebbles from endvertices, orienting the edge accordingly! Edge (constraint) removes a DOF.
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 … Continue covering edges (one by one) with 4 pebble on the ends
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 … Continue covering edges (one by one) with 4 pebble on the ends
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 … Continue covering edges (one by one) with 4 pebble on the ends
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Need four pebbles on the ends. Have only 3.
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Found free pebble! Search for the 4th pebble by following the directed path
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Note: this edge remains pebbled Reverse pebble along the directed path Got four pebbles on ends!
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Later stage …
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 One more edge to test! Need four pebbles Later stage …
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Reversing pebbles
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Reversing pebbles …
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Reversing pebbles …
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Reversing pebbles …
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Reversing pebbles …
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Failed search Could not find fourth free pebble
2|V| - 3 Pebble Game Algorithm Demonstration |E′|≤2|V′| – 3 Edge is redundant (not independent) This region is overconstrained Graph is flexible: 4 free pebbles remaining (3 trivial DOF and 1 internal DOF) We now have all but four pebbles matched to edges. The entire graph is still flexible.
Pebble Game Algorithm and other counts We can adapt the 2|V| - 3 pebble game algorithm for other interesting counts (3|V| - 3, 3|V| - 4, 6|V| - 6, …) Recall that Laman’s Theorem (counting) does not extend to graphs (bar and joint) in 3D! (3|V| - 6 count) Theorem: If a graph G = (V,E) is minimally rigid in 3D then |E|=3|V| – 6 and for all subgraphs (|V′| >2), |E′|≤3|V′| – 6. Converse is false! |V|=8 |E|=18 |E|=3|V| –6, |E′|≤3|V′| –6 Theorem: If a graph G = (V,E) is minimally rigid in 3D then |E|=3|V| – 6 and for all subgraphs |E′|≤3|V′| – 6. We don’t have any nice counting (combinatorial) characterizations for rigidity. In fact there are no no known polynomial-time algorithm for testing rigidity in 3-space
6|V| - 6 count has important applications • based on Theorems and Conjectures developed by Tay and Whiteley for Body-Bar, Body-Hinge structures Switch to a different structure(s) and nice counting condition (6|V| – 6 count) that works in 3-space COUNT on a multigraph for (generic) rigidity where bodies (vertices) have 6 DOF Body-bar / Body-hingestructures • Consider two rigid bodies joined on a linear hinge • 6 DOF (trivial motions) for each body: total 12 DOF • Hinge removes 5 DOF: 12 – 5 = 7 = 6 DOF + 1 DOF (rotation about the hinge) Just to make sure you have a better understanding of the pebble game let us look at the pebble game for this specific count hinge 6 6 • Hinges can be represented with 5 bars (body-bar structure) I am basically skipping a whole lot of theory, so I can illustrate this other pebble game • Extract a multigraph G* = (V, E) vertices are bodies and 5 edges (bars) between pairs of vertices that share a hinge 5 bars It has nice combinatorial features, just like in the plane for bar and joint frameworks, count edges and vertices in the graph Theorem (Tay and Whiteley) (1984): hinge Minimally (generically) rigid iff |E| = 6|V| – 6 and for every nonempty subset E′ with vertices V′, |E′|≤6|V′| – 6. There are these other structures in 3-space which have a complete combinatorial characterization of generic rigidity, just like in 2 space bar and joint frameworks. The conjecture is that this count also works for molecules.
6|V| - 6 Pebble Game Algorithm Demonstration Minimally rigid 6-membered ring 30 = 6(6) – 6 |E| = 6|V| – 6 |E′|≤6|V′| – 6 Replace each hinge (bond) by five edges Multigraph G* = (V, E) Note: |E| = 6|V| - 6 = 6(|V| - 1) (look for 6 edge-disjoint spanning trees) 6|V| - 6 Pebble Game Algorithm is implemented in program FIRST (Floppy Inclusion Rigid Structure Topography) for flexibility/rigidity analysis of proteins http://flexweb.asu.edu Ok, let’s see how we play the 6|V| - 6 pebble game algorithm, it is essentially the same, but it is still worth doing.
|E′|≤6|V′| – 6 6|V| - 6 Pebble Game Algorithm Assign 6 pebbles (degrees of freedom) to each vertex |E| = 6|V| – 6 |E′|≤6|V′| – 6
|E′|≤6|V′| – 6 6|V| - 6 Pebble Game Algorithm Test an edge (constraint) for independence (i.e. see if it removes a DOF) Need seven pebbles on the ends!(6 pebbles (DOF) are always present) You could obviously have anywhere between 6 and 12 |E| = 6|V| – 6 |E′|≤6|V′| – 6
6|V| - 6 Pebble Game Algorithm |E′|≤6|V′| – 6 Cover edge with any of the 12 free pebbles from endvertices, orienting the edge accordingly! Edge (constraint) removes a DOF
|E′|≤6|V′| – 6 Continue covering edges (one by one) with 7 pebble on the ends
|E′|≤6|V′| – 6 … Continue covering edges (one by one) with 7 pebble on the ends
|E′|≤6|V′| – 6 … Later stage Less than 7 free pebbles available at ends!
|E′|≤6|V′| – 6 Found 7th free pebble Search for the 7th pebble by following the directed path
|E′|≤6|V′| – 6 7 pebbles on the ends pebble is swapped Edge stays covered
|E′|≤6|V′| – 6 Place pebble on the edge
|E′|≤6|V′| – 6 … Later stage One more edge to test! Less than 7 free pebbles available at ends!
|E′|≤6|V′| – 6 Found 7th free pebble Search for the 7th pebble by following the directed path
|E′|≤6|V′| – 6 “Draw” (reverse) free pebble along the path (i.e. sequence of swaps)
|E′|≤6|V′| – 6 “Draw” (reverse) free pebble back along the path (i.e. sequence of swaps)
|E′|≤6|V′| – 6 “Draw” (reverse) free pebble back along the path (i.e. sequence of swaps)
|E′|≤6|V′| – 6 We have 7 free pebbles on the ends Note: We have reversed the direction of the path Edges always remain covered (pebbled)
All edges are successfully pebbled! 6 remaining free pebbles (6 trivial DOF) Isostatic (minimally rigid) |E| = 6|V| – 6 |E′|≤6|V′| – 6
6|V| - 6 Pebble Game Algorithm More interesting example … Multigraph G = (V, E)
… Later stage of the algorithm So far all edges are covered (pebbled) successfully One more edge to test