Pebble motion problems

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The pebble motion problems, or pebble motion on graphs, are a set of related problems in graph theory dealing with the movement of multiple objects ("pebbles") from vertex to vertex in a graph with a constraint on the number of pebbles that can occupy a vertex at any time. Pebble motion problems occur in domains such as multi-robot motion planning (in which the pebbles are robots) and network routing (in which the pebbles are packets of data). The best-known example of a pebble motion problem is the famous 15 puzzle where a disordered group of fifteen tiles must be rearranged within a 4x4 grid by sliding one tile at a time.

Theoretical formulation

[edit | edit source]

The general form of the pebble motion problem is Pebble Motion on Graphs[1] formulated as follows:

Let G=(V,E) be a graph with n vertices. Let P={1,,k} be a set of pebbles with k<n. An arrangement of pebbles is a mapping S:PV such that S(i)S(j) for ij. A move m=(p,u,v) consists of transferring pebble p from vertex u to adjacent unoccupied vertex v. The Pebble Motion on Graphs problem is to decide, given two arrangements S0 and S+, whether there is a sequence of moves that transforms S0 into S+.

Variations

[edit | edit source]

Common variations on the problem limit the structure of the graph to be:

Another set of variations consider the case in which some[5] or all[3] of the pebbles are unlabeled and interchangeable.

Other versions of the problem seek not only to prove reachability but to find a (potentially optimal) sequence of moves (i.e. a plan) which performs the transformation.

Complexity

[edit | edit source]

Finding the shortest solution sequence in the pebble motion on graphs problem (with labeled pebbles) is known to be NP-hard[6] and APX-hard.[3] The unlabeled problem can be solved in polynomial time when using the cost metric mentioned above (minimizing the total number of moves to adjacent vertices), but is NP-hard for other natural cost metrics.[3]

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).