efficient generation of minimal graphs using independent path analysis linda s. humphrey 20 november...
Post on 19-Dec-2015
216 views
TRANSCRIPT
Efficient Generation of Minimal Graphs
Using Independent Path Analysis
Linda S. Humphrey
20 November 2006
Department of Computer Science and Engineering
Thanks
Thesis Advisor: Dr. Frederick C. Harris, Jr. Thesis Committee:
Dr. Dwight Egbert Dr. Indira Chatterjee
Mentor: Dr. Judith Fredrickson Dept. Chair: Dr. Yaakov L. Varol
Overview
History of the Crossing Number Problem Recent Work
Exhaustive Search Algorithm Optimizations
Minimal Graph Creation by Star Analysis Results Obtained Using Star Analysis to
Grow Kn From Kn-1
Conclusions and Future Directions
Turán’s Brick Factory Problem
Turán’s Brick Factory Problem
1 2
54
3
6 7
Complete Bipartite Graph K3,4
3
1
2
54 6 7
Minimal Complete Bipartite Graph
Zarankewicz’ Conjecture
The crossing number of the complete bipartite graph Km,n satisfies the equality:
ν(Km,n) = | ½ m | | ½ (m-1) | | ½ n | | ½ (n-1) |
A Few Definitions
Graph A finite, nonempty set of vertices in a plane and a
set of unordered pairs of vertices representing edges
Complete graph (Kn) each of the n vertices of the graph is adjacent (i.e.
connected by an edge) to every other vertex Crossing number ( )
the smallest number of edge crossings over all planar representations of a graph G
Minimal graph a graph that exhibits its crossing number
)(G
21
3 4
5
Complete K5 Graph One Crossing and Eight Regions
Guy’s Conjecture Crossing number of Kn
Given n vertices, what is the minimum number of edge crossings if every vertex has an edge to every other vertex?
Problem popularized by R. Guy [Guy60] Conjectured solution [Guy 69]
42
32
22
12
)(
nnnn
Kn
The Path Leading to Star Analysis
Introduction of exhaustive search algorithm [HH98] Parallel implementation of exhaustive search
algorithm [TH97] Dynamic load balancing with a queuing system
added to the parallel implementation [YMFH04] Isomorphic testing to create graph families Search space reductions [FYH04, F06]
Region restriction Radical region restriction
3
4
21
3
1
42
4 2
13
(a) (b) (c)
Isomorphic Family Designation
Separating graphs into isomorphic families allows us to take one representative of each family for the next graph iteration.
Isomorphic Families
n 5 6 7 8 9 10
Minimal graphs generated
12 4 76 20 4,590 56,618
Isomorphic families 1 1 5 3 1,453 5,679
Remaining Issues
High overhead parallel algorithm Elaborate setup Extensive message passing Enqueuing and dequeuing of jobs More processors increases the number of jobs
All graphs created (edges laid down) until minimum regions to be crossed is exceeded Many partial graphs thrown out
What if…….
Rather than drawing graphs, we simply find the shortest distances to each existing vertex from a newly placed one
The shortest paths across regions are saved as path lists rather than as graphs
We eliminate the parallel system along with all of its time-consuming overhead
Star Analysis - Overview
Representative graphs from Kn-1 isofamilies are converted to lists of regions
A new vertex, n, is placed into each of the existing regions
Shortest paths from n to each of the n-1 original vertices are independently determined and saved as path lists
Graphs are subsequently constructed from desired path lists; minimal, locally minimal, etc.
K6 and Star K1,6 with Center 7
7
K1,6
Star AnalysisK1,6 Placement to Grow K7
Star Analysis Data Structures
Region List Kn Graph
Distance Tree Path List Edges-to-Add List Restricted Regions List Look-up Tables
Region Edge
Region List
Based on the Region List class developed by Yuan Updated to function in the Star Analysis environment Used to represent a Kn graph
Each sublist defines one region Extensive housekeeping tools
Adding and deleting regions Adding and deleting vertices within regions Examining regions for specific vertices Adding edges to a graph and updating the surrounding
regions Searching for regions based on various parameters
R1 : 1 2 7
R2 : 1 7 4
R3 : 7 2 5
R4 : 4 7 5
R5 : 1 4 3
R6 : 4 5 3
R7 : 5 2 3
R8 : 3 2 1
1
5
2
4
3
7
6
R1
R2 R3
R4R5
R6
R7
R8
Region List
K5 Graph and its Region List
Distance Tree
Constructed of TreeNode class objects Vertex pair representing an edge Region End vertex number Parent pointer Array-of-pointers pointer
Root represents newly placed vertex Created breadth-first; each level is complete Each level further down in the tree represents
a crossing
Edge = {3.2}
Region = 8
Vertex num = 1
Parent ptr
List of pointers ptr Ø
2
Edge = {5,2}
Region = 3
Vertex num = 0
Parent ptr
List of pointers ptr Ø
Edge = {3,5}
Region = 6
Vertex num = 4
Parent ptr
List of pointers ptr Ø
Edge = {0,0}
Region = 7
Vertex num = 0
Parent ptr Ø
List of pointers ptr
54
3
7
6
R1 R2 R3
R4R5
R6
R7
R8
Root
Level 1
Level 0
1
Distance Tree Snapshot, K6
2
54
3
7
6
R1 R2 R3
R4R5
R6
R7
R8
1
Edge = {3,5}
Region = 6
Vertex = 4
Path List
Edge = {0,0}
Region = 7
Vertex = 5
Edge = {0,0}
Region = 7
Vertex = 2
Edge = {0,0}
Region = 7
Vertex = 3
Edge = {0,0}
Region = 7
Vertex = 0
Edge = {0,0}
Region = 7
Vertex = 0
Edge = {3,2}
Region = 8
Vertex = 1
Path List for K6
Drawing Graphs:Two Valid Combinations
1 2
3
45
6
n R1
R2
R3
R4
R5 R6
8
9
P2
P4
1 2
3
45
6
n R1
R2
R3
R4
R5 R6
8
9
P3 P1
1 2
3
45
6
7 R1
R2R3
R4
R5R6
8
9
conflict
Potential Graph Drawing Problem
Two edges make an illegal crossing midregion
6
Look-up Tables
1 2
3
45
7 R1
R7R3
R4
R5R6
8
9
Edge Legal Alternatives
{1,8} {1,10}, {10,8}
{8,6} {8,11}, {11,6}
{9,3} {9,12}, {12,3}
Region Legal Alternatives
R2 R7
R4 R8
R6 R9
(after first new path laid down)
10
11
12
R2
R8
R9
Conflict Resolution
Conflict is prevented by look-up tables
R1 R6R5
R14 R4R7
R3
R11
R12R2
R8 R13R9
4 2
3
8
10 9
1 5
6
7
R10
Edges to Add
{7,1}
{7,2}
{7,3}
{7,4}
{7,5}
{7,6}
Restricted Regions
Root
Edge = {0,0}
Region = 9
Vertex num = 0
Parent ptr Ø
List of pointers ptr
Level 0
Ø
Growing K7 From K6
Path List
Edge = {0,0}
Region = 9
Vertex = 6
Edge = {0,0}
Region = 9
Vertex = 3
Path List After Level 0
Edge = {6,9}
Region = 11
Vertex num = 5
Parent ptr
List of pointers ptr Ø
Edges to Add
{7,1}
{7,2}
{7,4}
{7,5}
Restricted Regions
R9Edge = {6,3}
Region = 13
Vertex num = 0
Parent ptr
List of pointers ptr Ø
Edge = {9,3}
Region = 12
Vertex num = 2
Parent ptr
List of pointers ptr Ø
Edge = {0,0}
Region = 9
Vertex num = 0
Parent ptr Ø
List of pointers ptr
Root
Level 1
Level 0
R1 R6R5
R14 R4R7
R3
R11
R12R2
R8 R13R9
4 2
3
8
10 9
1 5
6
7
R10
Growing K7 From K6, cont.
Path List
Edge = {0,0}
Region = 9
Vertex = 3
Edge = {0,0}
Region = 9
Vertex = 0
Edge = {9,3}
Region = 12
Vertex = 2
Edge = {0,0}
Region = 9
Vertex = 6
Edge = {0,0}
Region = 9
Vertex = 0
Edge = {6,9}
Region = 11
Vertex = 5
Path List After Level 1
Edge = {6,9}
Region = 11
Vertex num = 5
Parent ptr
List of pointers ptr
Edge = {5,6}
Region = 10
Vertex num = 1
Parent ptr
List of pointers ptr Ø
Edge = {6,3}
Region = 13
Vertex num = 0
Parent ptr
List of pointers ptr
Edge = {9,3}
Region = 12
Vertex num = 2
Parent ptr
List of pointers ptr
Edge = {0,0}
Region = 9
Vertex num = 0
Parent ptr Ø
List of pointers ptr
Root
Level 1
Level 0
R1 R6R5
R14 R4R7
R3
R11
R12R2
R8 R13R9
4 2
3
8
10 9
1 5
6
7
R10
Edges to Add
{7,1}
{7,4}
Restricted Regions
R9
R11
R12
R13
Edge = {3,2}
Region = 3
Vertex num = 4
Parent ptr
List of pointers ptr Ø
Edge = {6,10}
Region = 8
Vertex num = 1
Parent ptr
List of pointers ptr Ø
Edge = {10,3}
Region = 2
Vertex num = 4
Parent ptr
List of pointers ptr Ø
Level 2
Growing K7, cont.
Edge = {0,0}
Region = 9
Vertex = 6
Edge = {6,3}
Region = 13
Vertex = 0
Path List
Edge = {0,0}
Region = 9
Vertex = 0
Edge = {6,10}
Region = 8
Vertex = 1
Edge = {6,9}
Region = 11
Vertex = 0
Edge = {5,6}
Region = 10
Vertex = 1
Edge = {3,10}
Region = 2
Vertex = 4
Edge = {3,2}
Region = 3
Vertex = 4
Edge = {0,0}
Region = 9
Vertex = 0
Edge = {9,3}
Region = 12
Vertex = 2
Edge = {0,0}
Region = 9
Vertex = 0
Edge = {0,0}
Region = 9
Vertex = 0
Edge = {0,0}
Region = 9
Vertex = 0
Edge = {0,0}
Region = 9
Vertex = 0
Edge = {0,0}
Region = 9
Vertex = 3
Edge = {9,3}
Region = 12
Vertex = 0
Edge = {6,9}
Region = 11
Vertex = 5
Edge = {6,3}
Region = 13
Vertex = 0
Path List After Level 2
Results – Kn Complete Graphs n 5 6 7 8 9 10 11
Total Graphs
Region Rest. 12 4 76 20 4,590 56,618 * Star 12 4 76 20 4,590 56,658 ~ 7.1B
Isofamilies
Region Rest.
1 1 5 3 1,453 5,679 *
Star 1 1 5 3 1,453 5,679 *Number of Regions
Region Rest.
8 14 25 40 65 97 *
Star 8 14 25 40 65 97 140Crossing Number
Region Rest. 1 3 9 18 36 60 *
Star 1 3 9 18 36 60 100
Comparative Results from Minimal Kn-1 to Minimal Kn
Kn K8 K9 K10 K11
Region restriction*
156 min >> 1wk -- --
Radical restriction*
5 min 8 min 1 wk --
Star analysis**
< 1 sec 27 sec 110 min 63 hr
Approximate Timing Comparisons
* 16 processors ** 1 processor
One Interesting Observation
One interesting and not previously reported finding: when growing from n-even to n-odd, minimal graphs could be found with vertex placement in every region of every isomorphic family. This was never the case growing from n-odd to n-even.
n 5 6 7 8 9 10
Isomorphic families 1 1 5 3 1,453 5,679
Regions 8 14 25 40 63 97
Regions growing minimal Kn+1
<8 14 <25 40 <63 97
Complete Bipartite Graph Results
Tested on the K3,n family of bipartite graphs, 3 ≤ n ≤ 10
All crossing numbers confirm those previously reported
All crossing numbers confirm Zarankiewicz’ conjecture
All regions of n-odd produce minimal graphs, but not n-even
n 3 4 5 6 7 8 9 10
1 2 4 6 9 12 16 20
y n y n y n y n
Crossing Number
All regions grow
min graphs when
vertex placed
Future Work
Creating minimal graphs n > 11 remains a formidable challenge
Further optimizations will be required Use clusters and distribute the work Scrutinize graph substructure to eliminate some
graph/region placements from participating in evolution to next generation
Investigate the possibility of nonminimal Kn-1 graphs generating minimal Kn
Thank You