Sliding Token on Bipartite Permutation Graphs Eli Fox-Epstein 1 Duc A. Hoang 2 Yota Otachi 2 Ryuhei Uehara 2 1 Brown University, USA 2 JAIST, Japan 1 / 85
Reconfiguration Problems 2 / 85
[Flake & Baum 2002] 3 / 85
[Romanishin, Rus, Gilpin 2013] 4 / 85
[Ito, Demaine, Harvey, Papadimitriou, Sideri, Uehara, Uno 2008] 5 / 85
6 / 85
Reconfiguration Problems ◮ Start with some problem with solutions 7 / 85
Reconfiguration Problems ◮ Start with some problem with solutions (e.g. Rush Hour) 8 / 85
Reconfiguration Problems ◮ Start with some problem with solutions (e.g. Rush Hour) ◮ Define legal transformations between solutions 9 / 85
Reconfiguration Problems ◮ Start with some problem with solutions (e.g. Rush Hour) ◮ Define legal transformations between solutions (legal if solutions differ by sliding one car) 10 / 85
Reconfiguration Problems ◮ Start with some problem with solutions (e.g. Rush Hour) ◮ Define legal transformations between solutions (legal if solutions differ by sliding one car) ◮ Question: is there a sequence of transformations between two given solutions? 11 / 85
Reconfiguration Problems ◮ Start with some problem with solutions (e.g. Rush Hour) ◮ Define legal transformations between solutions (legal if solutions differ by sliding one car) ◮ Question: is there a sequence of transformations between two given solutions? (PSPACE-complete for Rush Hour) 12 / 85
Sliding Token 13 / 85
Sliding Token : a natural, pure problem in Combinatorial Reconfiguration 14 / 85
Sliding Token ◮ Classic optimization problem: Independent Set 15 / 85
Sliding Token ◮ Classic optimization problem: Independent Set ◮ Reconfiguration moves: “slide” a “token” to a neighbor 16 / 85
Sliding Token ◮ Classic optimization problem: Independent Set ◮ Reconfiguration moves: “slide” a “token” to a neighbor ◮ Induces a “reconfiguration graph” 17 / 85
Sliding Token ◮ Classic optimization problem: Independent Set ◮ Reconfiguration moves: “slide” a “token” to a neighbor ◮ Induces a “reconfiguration graph” ◮ Nodes: independent sets 18 / 85
Sliding Token ◮ Classic optimization problem: Independent Set ◮ Reconfiguration moves: “slide” a “token” to a neighbor ◮ Induces a “reconfiguration graph” ◮ Nodes: independent sets ◮ Adjacency: one reconfiguration move 19 / 85
Sliding Token ◮ Classic optimization problem: Independent Set ◮ Reconfiguration moves: “slide” a “token” to a neighbor ◮ Induces a “reconfiguration graph” ◮ Nodes: independent sets ◮ Adjacency: one reconfiguration move ◮ Notation: [ A ] is A ’s connected component 20 / 85
Sliding Token ◮ Classic optimization problem: Independent Set ◮ Reconfiguration moves: “slide” a “token” to a neighbor ◮ Induces a “reconfiguration graph” ◮ Nodes: independent sets ◮ Adjacency: one reconfiguration move ◮ Notation: [ A ] is A ’s connected component ◮ Ask: B ∈ [ A ] ? 21 / 85
A Brief Overview of Sliding Token ’s Complexity ◮ PSPACE-complete on general, AT-free, planar, perfect, and bounded treewidth graphs [Ito, Demaine, Harvey, Papadimitriou, Sideri, Uehara, Uno 2008] , [Wrochna 2014] ◮ Polytime on proper interval graphs, claw-free graphs, forests, cographs [Bonsma, Kami´ nski, Wronchna 2014] , [Demaine, Demaine, F., Hoang, Ito, Ono, Otachi, Uehara, Yamada 2014] , [Kami´ nski, Medvedev, Milanic 2010] ◮ ??? on bipartite graphs 22 / 85
A Brief Overview of Sliding Token ’s Complexity ◮ PSPACE-complete on general, AT-free, planar, perfect, and bounded treewidth graphs [Ito, Demaine, Harvey, Papadimitriou, Sideri, Uehara, Uno 2008] , [Wrochna 2014] ◮ Polytime on proper interval graphs, claw-free graphs, forests, cographs [Bonsma, Kami´ nski, Wronchna 2014] , [Demaine, Demaine, F., Hoang, Ito, Ono, Otachi, Uehara, Yamada 2014] , [Kami´ nski, Medvedev, Milanic 2010] ◮ ??? on bipartite graphs ◮ We give an efficient algorithm on a subclass of bipartite graphs. 23 / 85
Main Result Algorithm for Sliding Token on bipartite permutation graphs. 24 / 85
Main Result Algorithm for Sliding Token on bipartite permutation graphs. Given graph G , independent sets A and B , finds a reconfiguration sequence from A to B or reports that none exists. 25 / 85
Bipartite Permutation Graphs { bipartite permutation graphs } = { bipartite graphs } ∩ { permutation graphs } 26 / 85
Bipartite Permutation Graphs { bipartite permutation graphs } = { bipartite graphs } ∩ { permutation graphs } = { bipartite graphs } ∩ { tolerance graphs } 27 / 85
Bipartite Permutation Graphs { bipartite permutation graphs } = { bipartite graphs } ∩ { permutation graphs } = { bipartite graphs } ∩ { tolerance graphs } = { bipartite graphs } ∩ { AT-free graphs } 28 / 85
Bipartite Permutation Graphs { bipartite permutation graphs } = { bipartite graphs } ∩ { permutation graphs } = { bipartite graphs } ∩ { tolerance graphs } = { bipartite graphs } ∩ { AT-free graphs } ( Sliding Token is PSPACE-hard on AT-free graphs) 29 / 85
Bipartite Permutation Graphs { bipartite permutation graphs } = { bipartite graphs } ∩ { permutation graphs } = { bipartite graphs } ∩ { tolerance graphs } = { bipartite graphs } ∩ { AT-free graphs } ( Sliding Token is PSPACE-hard on AT-free graphs) = . . . 30 / 85
Bipartite permutation graph iff vertices can be ordered v 1 , v 2 , . . . , v n such that ∀ i ≤ j ≤ k , all paths from v i to v k include a vertex of N [ v j ] . 31 / 85
Bipartite permutation graph iff vertices can be ordered v 1 , v 2 , . . . , v n such that ∀ i ≤ j ≤ k , all paths from v i to v k include a vertex of N [ v j ] . N ( v 5 ) N ( v 4 ) N ( v 2 ) v 2 v 1 v 3 v 5 v 4 32 / 85
Algorithmic Tools 33 / 85
Algorithmic Tools 1. Wiggling: greedily moving each token to a neighbor and then eventually back 34 / 85
Algorithmic Tools 1. Wiggling: greedily moving each token to a neighbor and then eventually back 2. Rigid tokens: R ( G, A ) = � [ A ] 35 / 85
Algorithmic Tools 1. Wiggling: greedily moving each token to a neighbor and then eventually back 2. Rigid tokens: R ( G, A ) = � [ A ] ◮ Wiggling finds rigid tokens efficiently 36 / 85
Algorithmic Tools 1. Wiggling: greedily moving each token to a neighbor and then eventually back 2. Rigid tokens: R ( G, A ) = � [ A ] ◮ Wiggling finds rigid tokens efficiently ◮ If R ( G, A ) = R ( G, B ) , simplify by deleting N [ R ( G, A )] from graph. Otherwise, A does not reconfigure to B 37 / 85
Algorithmic Tools 1. Wiggling: greedily moving each token to a neighbor and then eventually back 2. Rigid tokens: R ( G, A ) = � [ A ] ◮ Wiggling finds rigid tokens efficiently ◮ If R ( G, A ) = R ( G, B ) , simplify by deleting N [ R ( G, A )] from graph. Otherwise, A does not reconfigure to B ◮ Now, wlog no rigid tokens 38 / 85
Algorithmic Tools 1. Wiggling: greedily moving each token to a neighbor and then eventually back 2. Rigid tokens: R ( G, A ) = � [ A ] ◮ Wiggling finds rigid tokens efficiently ◮ If R ( G, A ) = R ( G, B ) , simplify by deleting N [ R ( G, A )] from graph. Otherwise, A does not reconfigure to B ◮ Now, wlog no rigid tokens 3. Targeting: putting a token on a specific vertex 39 / 85
Algorithmic Tools 1. Wiggling: greedily moving each token to a neighbor and then eventually back 2. Rigid tokens: R ( G, A ) = � [ A ] ◮ Wiggling finds rigid tokens efficiently ◮ If R ( G, A ) = R ( G, B ) , simplify by deleting N [ R ( G, A )] from graph. Otherwise, A does not reconfigure to B ◮ Now, wlog no rigid tokens 3. Targeting: putting a token on a specific vertex 4. Canonical representatives of reconfiguration graph’s connected components 40 / 85
Canonical Representatives ◮ Canonical representative A + for connected component [ A ] : lexicographically minimum independent set 41 / 85
Canonical Representatives ◮ Canonical representative A + for connected component [ A ] : lexicographically minimum independent set ◮ (Minimize max index of vertex in set, then second max, etc.) 42 / 85
Canonical Representatives ◮ Canonical representative A + for connected component [ A ] : lexicographically minimum independent set ◮ (Minimize max index of vertex in set, then second max, etc.) ◮ B ∈ [ A ] iff A + = B + . 43 / 85
Finding A + : use DP Two ideas: 44 / 85
Finding A + : use DP Two ideas: (a) A + contains v 1 or vertex of least index in N ( v 1 ) ; call this u 45 / 85
Finding A + : use DP Two ideas: (a) A + contains v 1 or vertex of least index in N ( v 1 ) ; call this u (b) Can maneuver a token to u and delete neighborhood without making new rigid tokens 46 / 85
Finding A + : use DP Two ideas: (a) A + contains v 1 or vertex of least index in N ( v 1 ) ; call this u (b) Can maneuver a token to u and delete neighborhood without making new rigid tokens ◮ Formally: R ( G \ N [ u ] , I \ { u } ) = ∅ where u ∈ I ∈ [ A ] 47 / 85
Finding A + : use DP Two ideas: (a) A + contains v 1 or vertex of least index in N ( v 1 ) ; call this u (b) Can maneuver a token to u and delete neighborhood without making new rigid tokens ◮ Formally: R ( G \ N [ u ] , I \ { u } ) = ∅ where u ∈ I ∈ [ A ] 48 / 85
Recommend
More recommend