Create Presentation
Download Presentation

Download Presentation

Exact Exponential Time Algorithms for Frequency Assignment

Download Presentation
## Exact Exponential Time Algorithms for Frequency Assignment

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**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