a method for generating colorings over graph automophism
Post on 07-Jan-2017
197 views
TRANSCRIPT
A METHOD FOR GENERATING COLORINGS OVER GRAPH
AUTOMORPHISM
Fei He, Hiroshi Nagamochi
2015.8.22.
1
The 12th International Symposium on Operations Research and its Applications in engineering, technology and management (ISORA 2015), Luoyang, August 21-24, 2015. 何 飛 プレゼン資料
平成28年度数理工学専攻説明会
第1回: 平成28年5月7日(土)第2回: 平成28年5月30日(月)
場所,プログラムの詳細は以下の専攻HPをご覧ください.http://www.amp.i.kyoto-u.ac.jp
研究室見学できます.在学生から,入試勉強のしかた,過去問の勉強方法などを聞くチャンスです.
京都大学大学院 情報学研究科 数理工学専攻
修士課程,博士課程の学生募集
Background
Enumeration of isomers of chemical compounds
Ex. N
10 Isomers
Naphthalene
N
cl
cl N
cl
N
cl N
cl
N
cl
N
cl
N
cl
N cl N
cl
N cl
Nitrogen Atom
Chlorine Atom
W
2
Background Enumeration of isomers of chemical compounds can be converted into graph coloring problems.
Ex. N
cl
cl
N
10 Isomers 10 Colorings
Chemistry Problem
Graph Coloring Problem
N
cl
Color the vertices with the color of the atom attached to it.
See the carbon atoms as vertices.
3
Assumption on Graphs -- Symmetries
graph G
automorphism φ1 automorphism φ2
automorphism φ3
Axial symmetries
A combination of φ1 and φ2
We only deal with graphs of two axial symmetries.
Ex. 180°
4
Assumption on Graphs --Blocks
graph G
A block: a set of vertices that can be mapped to each other by some automorphism.
Ex. Block B1
180° Block B2
B1∨ B2 = W
Blocks are equivalence classes defined by automorphisms.
W
5
Equivalent Colorings
Coloring c1 Coloring c2
φ2
equivalent
There exists an automorphism φ1, φ2 or φ3
Coloring c1 Coloring c3
non-equivalent
6
Problem Statement
A graph G=(V, E) of two axial symmetries, a subset W of vertices of V
Input :
Output : All non-equivalent colorings to W
Ex.
Input 1 Input 2 7
Output
Output : All non-equivalent colorings to W Color Index In case of a Naphthalene ring: Ex.
We want to realize the generation of colorings in polynomial delay. Avoid duplication of calculation
Total number of possible colorings : > 460,000
… 8
Total number of non-equivalent colorings : 23,911
Idea of Algorithm -- Family Tree
…
…
…
…
…
…
…
* We put colorings with the same color index in one set.
…
The Family Tree
9
Parent-child Relationship
…
Color Priority: Constraints on #: # ≥# ≥# ≥# ≥# ≥# ≥
… …
Color Index
Parent Parent
Child Child Child
Parent
# in Parent = # + #min in Child
the leading color
the leading color
the leading color
10
min
Generate Children Color Indices
… min=
… … … …
# = 1
# = 2
# = #min
# ≥ # ≥ … ≥ # ≥ # Color Priority: …
The next color in the ordering 12
becomes the new min
Recursive Problem Set A coloring c
Input :
Output : All colorings c’ that are the children of c
c
c’
Ex. How to generate colorings?
14
By using blocks
Summary
A graph G=(V, E) of two axial symmetries, a subset W of vertices of V
Input :
Output : All non-equivalent colorings to W
Can be realized in polynomial delay by using Family Trees Blocks defined after automorphisms
graph G
15
colorings
Flow of the Algorithm
Input: c Define Blocks
Assign Numbers
Output: c’
Assign Numbers
Decide Positions Output: c’
Decide Positions
Decide Positions
Decide Positions
Output: c’
Output: c’ …
…
…
17
Flow of the Algorithm
Input: c Define Blocks
Assign Numbers
Check the symmetry of parent coloring c and define blocks on vertices with the leading color over c’s symmetries.
Output: c’
Assign Numbers
Decide Positions Output: c’
Decide Positions
Decide Positions
Decide Positions
Output: c’
Output: c’
…
…
…
18
Define Blocks For a coloring c, its block is a collection of vertices with the leading color, and can be shifted to one another by one of the automorphisms of c.
Ex. Naphthalene ring
φ1
Block 1 Block 2 Block 3
Blocks are equivalence classes defined by c’s automorphism.
c
19
Define Blocks
Define blocks: check the symmetry of c and define blocks on vertices with the leading color.
Block 1
Block 2
Block 1
Block 2
Block 3
φ1, φ2, φ3
φ1
Block 1
Block 2
Block 3
Block 4
Block 5 __
Ex. c
20
Flow of the Algorithm
Input: c Define Blocks
Assign Numbers
Assign the number of the new color to each block.
Output: c’
Assign Numbers
Decide Positions Output: c’
Decide Positions
Decide Positions
Decide Positions
Output: c’
Output: c’
…
…
…
21
Assign Numbers
Block 1
Block 2
Block 3
Change two into
Block 1
Block 2
Block 3
2
0
0
1
1
0
1
0
1
0
2
0
0
1
1
0
0
2
Assign Numbers of to each block:
c
Ex.
22
Flow of the Algorithm
Input: c Define Blocks
Assign Numbers
Output: c’
Assign Numbers
Decide Positions Output: c’
Decide Positions
Decide Positions
Decide Positions
Output: c’
Output: c’
…
…
…
Decide the positions for the new color by the assignment of numbers in each block.
23
Decide Positions
Block 1
Block 2
Block 3
Change two into
Block 1
Block 2
Block 3
2
0
0
Assign Numbers of to each block:
c
c’
Block 1
Ex.
24
Decide Positions
Block 1
Block 2
Block 3
Change two into
Block 1
Block 2
Block 3
1
1
0
Assign Numbers of to each block:
c
c’
c’
Block 2 Block 1
Ex.
25
Decide Positions
c
c’
Block 1
c’
c’
Block 2 Block 1
Block 1
Block 2
Block 3
2
0
0
1
1
0
1
0
1
0
2
0
0
1
1
0
0
2
… Output
Ex.
26
Flow of the Algorithm
Input: c Define Blocks
Assign Numbers
Output: c’
Assign Numbers
Decide Positions Output: c’
Decide Positions
Decide Positions
Decide Positions
Output: c’
Output: c’ …
…
…
Can be calculated automatically by our algorithm
27