Exact Exponential Time Algorithms for Frequency Assignment
Exact Exponential Time Algorithms for Frequency Assignment. F. Havet M. Klazar, Jan Kratochvíl D. Kratsch, M. Liedloff. Graph coloring, Boolean Satisfiability, Traveling Salesperson Problem … All NP-hard. Graph coloring, Boolean Satisfiability, Traveling Salesperson Problem … Heuristics
Exact Exponential Time Algorithms for Frequency Assignment
E N D
Presentation Transcript
Exact Exponential Time Algorithms for Frequency Assignment F. Havet M. Klazar, Jan Kratochvíl D. Kratsch, M. Liedloff
Graph coloring, Boolean Satisfiability, Traveling Salesperson Problem … All NP-hard
Graph coloring, Boolean Satisfiability, Traveling Salesperson Problem … Heuristics Approximation algorithms Fixed Parameter Tractability Exact exponential-time algorithms - O*(cn)
Frequency Assignment Problem • Branching approach – fixed span • Dynamic programming approach
1.1 Branching n n-1 n-2 0
1.1 Branching n n-1 n-2 0
1.1 Branching n T(n) 3T(n-1) n-1 n-2 n-3
1.1 Branching n T(n) 3T(n-1) T(n) 3n n-1 n-2 n-3
1.1 Branching n T(n) 3T(n-1) T(n) 3n T(n) 4T(n-2) T(n) 2n n-1 n-2 n-3
1.1 Branching n T(n) 3T(n-1) T(n) 3n T(n) 4T(n-2) T(n) 2n n-1 n-2 n-3 T(n)aT(n-b) T(n) an/b
2 Frequency Assignment Problem Assigning frequencies (channels) to transmitters while avoiding undesired interference of signals
Channel Assignment Given G, a weight function w on E(G) and a number k, does there exist f: V(G) {0,1,2,…,k} such that uv E(G) |f(u) – f(v)| w(uv)?
L(2,1)-labeling f: V(G) {0,1,2,…,k} uv E(G) |f(u) – f(v)| 2 dG(u,v) = 2 |f(u) – f(v)| 1
L(2,1)-labeling f: V(G) {0,1,2,…,k} uv E(G) |f(u) – f(v)| 2 dG(u,v) = 2 |f(u) – f(v)| 1 L(2,1)(G) = min such k
L(2,1)-labeling 2 2 0 4 3 4 0 1 1
L(2,1)-labeling Roberts 1985 Griggs, Yeh 1993 – NP-complete when k part of input Chang, Kuo 1996 – polynomial for trees Georges, Mauro 1998 – bounds for grids Fiala, Kloks, JK 1999 – NP-c for fixed k 4 Bodlaender, Kloks, Tan, van Leeuwen 2001 – NP-c for planar Liu, Zhu 2003 – cyclic metric Král, Škrekovski 2004 – upper bounds Fiala, Golovach, JK 2005 – NP-c for tree-width 2
3 Branching Algorithm for Fixed k • Pick a vertex and label it in all k+1 ways
3 Branching Algorithm for Fixed k • Pick a vertex and label it in all k+1 ways • Pick a neighbor and label it in all k-1 ways
3 Branching Algorithm for Fixed k • Pick a vertex and label it in all k+1 ways • Pick a neighbor and label it in all k-1 ways • Repeat: Pick an unlabeled vertex with a labeled neighbor and label it in all k-2 ways
3 Branching Algorithm for Fixed k • Pick a vertex and label it in all k+1 ways • Pick a neighbor and label it in all k-1 ways • Repeat: Pick an unlabeled vertex with a labeled neighbor and label it in all k-2 ways Running time O*((k-2)n)
3 Branching Algorithm for k = 4 • Pick a vertex and label it in all 5 ways • Pick a neighbor and label it in all 3 ways • Repeat: Pick an unlabeled vertex with a labeled neighbor and label it in all 2 ways Running time O*(2n)
3 Branching Algorithm for k = 4 • Pick a vertex and label it in all 5 ways • Pick a neighbor and label it in all 3 ways • Repeat: Pick an unlabeled vertex with a labeled neighbor and label it in all 2 ways Running time O*(2n) Theorem: L2,1(G) 4 can be solved in O*(1.32n) time
3 Branching Algorithm for k = 4 Theorem: L2,1(G) 4 can be solved in O*(1.32n) time • Introduction of reduction and branching rules • Careful running time analysis
2 0 4 3 1
2 0 4 3 1 R1 Forced extensions u u 1,2,3 u u
2 0 4 3 1 R1 Forced extensions u u 1,2,3 u 0 4 u 0 2 4
2 0 4 3 1 R1 Forced extensions R2 Free extensions
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions – dynamic programming 0 4 0 1
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions – dynamic programming 0 4 0 1 • 1
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions – dynamic programming 0 4 0 1 • 1 3 • 0
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions – dynamic programming 0 4 0 1 • 1 3 0 • 0 3 • 2 0 4
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions – dynamic programming 0 4 0 1 • 1 3 0 2,4 • 0 3 1 • 2 0 4 1,2
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions – dynamic programming 0 4 2 0 4 2 0 1 • 1 3 0 2,4 • 0 3 1 • 2 0 4 1,2
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions R4 Extensions with strong constraints – branch along labeling x,y,u(,v) x y u v
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions R4 Extensions with strong constraints – branch along labeling x,y,u(,v) R5 Extensions with weak constraints – branch along labeling v,w(,u) w v u
3 Branching Algorithm for k = 4 Running-time analysis
2 0 4 3 1 R1 Forced extensions - constant time per application u u 1,2,3 u u
2 0 4 3 1 R1 Forced extensions R2 Free extensions - constant time per reduction
2 0 4 3 1 R1 Forced extensions R2 Free extensions R3 Cheap extensions – dynamic programming – constant time 0 4 0 1
2 x y 0 4 3 1 u v R4 Extensions with strong constraints – branch along x,y,u(,v)
2 x y 0 4 3 1 u v R4 Extensions with strong constraints – branch along x,y,u(,v) x = y x u
2 x y 0 4 3 1 u v R4 Extensions with strong constraints – branch along x,y,u(,v) x = y – no branching 0 2 4 u
2 x y 0 4 3 1 u v R4 Extensions with strong constraints – branch along x,y,u(,v) 0 x y u v
2 x y 0 4 3 1 u v R4 Extensions with strong constraints – branch along x,y,u(,v) 0 x y 20-3-1-40 40-3-1-40 20-4-2-03 40-2-4-03 20-3-1-42 40-3-1-42 20-4-2-04 40-2-4-02 30-4-2-04 30-2-4-02 30-2-4-03 30-4-2-03 u v