Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 A Compact Encoding of Plane Triangulations with Efficient Query Supports Gunma Univ. ○Katsuhisa Yamanaka and Shin-ichi Nakano Auxiliary table : o(n)

Similar presentations


Presentation on theme: "1 A Compact Encoding of Plane Triangulations with Efficient Query Supports Gunma Univ. ○Katsuhisa Yamanaka and Shin-ichi Nakano Auxiliary table : o(n)"— Presentation transcript:

1 1 A Compact Encoding of Plane Triangulations with Efficient Query Supports Gunma Univ. ○Katsuhisa Yamanaka and Shin-ichi Nakano Auxiliary table : o(n) bits 11011001101001110001010100 00001110011011100110011100 1010110110011001 A plane triangulation 0-1 binary string Query ( Question ) Ans. Query Supports Kyoto Gunma Tokyo Where is Gunma? Question Japan Decode Encode

2 2 Contents Introduction Definition A Compact Encoding of Plane Triangulations Query Supports Conclusion

3 3 A Graph Encoding Problem Encoding a given graph with a binary string Decode Efficiently Encode 11011001101001110 00101010000001110 01101110011001110 01010110110011001 A binary string with compact space efficiently Compact Space Efficiently A graph Decode to the original graph efficiently Graph Compression

4 4 A Motivation of Graph Compressions ( a.k.a. Graph Encodings ) 2. XML3. Fine 3D mesh WHEN NOTE TIME HOURMINUTE ( Tree Struct. ) Huge There are many situations to use a huge graph structures A motivation 1. WWW Easy Chair BW La Vinci BUET WALCOM 2008 Library ICME ISES LNCS Ambala Huge Compact representation of Graphs are needed Graph structure

5 5 A “Normal” Graph Compression Compress Compressed data Compact A huge graph Important for data storage Important for data transfer Full main memory A lot of running time is needed to use a huge graph Decode Decoded graph

6 6 Compact Compact A “Clever” Graph Compression Important for data storage Important for data transfer Compress cleverly Compressed data A huge graph Query supports The same situation as one we have original graph data However actual data is compact Computation on main memory Great improvement of the running time On main memory

7 7 The Main Known Results Plane triangulations Ordered trees 3-connected plane graphs Plane graphs n: the number of vertices, m: the number of edges O(n) 2m+8n+o(n) 2m+(5+1/k)n+o(n) 2m+2n+o(n) 2m+3n+o(n) 2m+o(n) Size ( bits ) 2m+n+o(n) Chuang, et. al. 1.45m+o(n) Aleardi, et. al. 1.08m+o(n) Aleardi, et. al. Size ( bits ) 2m+o(n) Jacobson Munro, Raman Benoit, et. al. Greary, et. al. Jacobson Munro, Raman Chuang, et. al. Chiang et. al. Chuang, et. al. Aleardi, et. al. Authors 1989 1997 1998 2001 1998 2006 1998 2005 2006 1989 1997 2005 2006 Results on compact representations by graph encodings with efficient query supports for each graph class 2m+o(n) Lu, Yeh 2007 2m+o(n) Ours 2008 Simple Practical Easy to implement A plane triangulation is a plane graph in which every face is a triangle Every face is a triangle 7

8 8 Why Plane Triangulations? Plane triangulations have a variety of applications A plane triangulation Correspond- dece Application to fine 3D mesh Correspond- dece A plane triangulation Correspond- dece 8

9 9 Our Goal Design an algorithm to encode plane triangulations with efficient query supports A plane triangulation Input Algorithm to encode plane triangulations Binary string (Short) Query ( Question ) Ans. (Efficiently) OutputOutput with n vertices m edges

10 10 Contents Introduction Definition A Compact Encoding of Plane Triangulations Query Supports Conclusion

11 11 A Plane Triangulation A plane graph: A embedded graph without any edge-intersection A plane triangulation A plane triangulation is A plane graph in which every face is a triangle Every face is a triangle Inner edges Inner vertices Outer edges Outer vertices

12 12 Contents Introduction Definition A Compact Encoding of Plane Triangulations Query Supports Conclusion The main part

13 13 The Main Idea of Our Encoding spanning tree edges By defining a ( slightly special ) spanning tree, we divide edges into spanning tree edges and the other edges [ ] [[[[[]][[[[]]][]]][[[[]]]... 1 2 3 4 5 6 7 8 9 10 11 12 13 2. The other edges 1 2 3 4 5 6 7 8 9 10 11 12 13 (()(())(()())((()))()()()) () () Spanning tree edges 1. Spanning tree edges A plane triangulation

14 14 Each inner vertex v has exactly one leaving edge for each color at least zero entering edge for each color Edges incident to v appear in clockwise order as above To Define a Spanning Tree… ⇒ A Realizer [ Schnyder ‘90 ] v (Blue root) (Red root) (Yellow root) A partition of inner edges into 3 spanning trees A realizer of a plane triangulation is Red tree Blue tree Yellow tree A realizer To red root To blue root Constructed in O(n) time Each tree includes one outer vertex as its root, and all inner vertices To yellow root A situation of each inner vertex v Intuitively Three color lines are formed around v

15 15 A Realizer ⇒ A ( Slightly Special ) Spanning Tree Red tree Blue tree Yellow tree Around each inner vertex v… A realizer We regard … By adding two outer edges A spanning tree spanning tree edges ( spanning tree edges ) The other edges The other edges in left of v The other edges in right of v v (Blue root) (Red root) (Yellow root) v has at least one other edge in the left side v has at least one other edge in the right side keypoints 16

16 String of Each Type of Edges We define a string of each type of edges [ ] [[[[[]][[[[]]][]]][[[[]]]... 1 2 3 4 5 6 7 8 9 10 11 12 13 2. The other edges 1 2 3 4 5 6 7 8 9 10 11 12 13 (()(())(()())((()))()()()) () () Spanning tree edges 1. Spanning tree edges

17 17 The String of The Spanning Tree Edges 1 2 3 4 5 6 7 8 9 10 11 12 13 10 9 8 1 23 4 5 67 111213 () i Each vertex ⇒ A pair of parentheses ‘(’ and ‘)’ ‘(’ and ‘)’ for the parent enclose ‘(’ and ‘)’ for its children immediately Actually … “(” → “1” “)” → “0” Each vertex is recognized by preorder of the spanning tree Parent Child ()() Parent Child String of spanning tree edges (( )(( ))(( )( ))((( )))( )( )( ))

18 18 [ ] [[[[[]][[[[]]][]]][[[[]]]... 1 2 3 4 5 6 7 8 9 10 11 12 13 2. The other edges 1 2 3 4 5 6 7 8 9 10 11 12 13 (()(())(()())((()))()()()) () () Spanning tree edges 1. Spanning tree edges String of Each Type of Edges We define a string of each type of edges

19 19 The Other Edges Have a Nested Structure 1 2 3 4 5 6 7 8 9 10 11 12 13 To see the nested structure of the other edges... 1 2 3 4 5 6 7 8 9 10 11 12 13 Ex. Around vertex 5 55 5 rightleft 5 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 1. Introduce a multiple edge for each spanning tree edge DivideIntro.

20 20 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

21 21 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

22 22 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 77 11 2 2 33 44 5 5 6 6 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

23 23 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

24 24 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 12 9 10 9 8 11 12 13 10 11 1. Introduce a multiple edge for each spanning tree edge

25 25 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

26 26 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

27 27 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

28 28 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

29 29 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

30 30 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

31 31 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

32 32 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

33 33 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

34 34 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

35 35 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

36 36 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

37 37 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

38 38 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

39 39 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 1. Introduce a multiple edge for each spanning tree edge

40 40 The Other Edges Have a Nested Structure To see the nested structure of the other edges... 2. Divide each vertex into two vertices: left and right the spanning tree edges 3. Arrange all vertices in order of DFS on the spanning tree edges 11 2 2 33 44 5 5 6 6 77 8 13 11 12 9 10 9 8 11 12 13 10 12234435676 leftrightleftleftleftrightrightrightleftleftleft The nested structure [[[[[]][[[[]]][]]] 1. Introduce a multiple edge for each spanning tree edge

41 41 [[[[[]][[[[]]][]]][[[[ The String of the Other Edges 1/2 1 2 3 4 5 6 7 8 9 10 11 12 13 1 223443567765 [[[[[ ] ] [[[ [ ] ]] ]]][ [[[ ] ] ]]] [[ ]]] [ [[ [ ]] [ [ ] 5 A situation around vertex 5… 3 4 8 9 10 [ Each other edge ⇒ A pair of brackets ‘[’ and ‘]’ The nested structure String of the other edges the spanning tree edges ( In order of DFS on the spanning tree edges ) ]] Close-bracket group [[[ Open-bracket group

42 42 The String for the Other Edges 2/2: Brackets String ⇒ 0-1 Binary String 1223443567765 Each bracket ⇒ ‘0’ Each boundary of groups ⇒ ‘1’ String of the other edges String of spanning tree edges 8 00000000000000000000000 11111111111 0000111001101111001 1 [[[[[]][[[[]]][]]][[[[ ] )(((())(()))(( 2 1 467 3 5 Always at least one other edge ⇒ we can save one ‘0’ in each group!!

43 43 The Length of The Strings 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 (( )(( ))(( )( ))((( )))( )( )( )) 10 11 9 8 67 5 4 321213 1 1 [[[[[]][[[[]]][]]][[[[ 223443567765 spanning tree edge Each spanning tree edge is represented by 2 bits Each edge is represented by 2 bits 2. The other edges Spanning tree edges 1. Spanning tree edges Each other edge is represented by 2 bits 8 2m bits The total length is… 0000 1 1100110101 11 1 m: # of edges

44 44 Contents Introduction Definition A Compact Encoding of Plane Triangulations Query Supports Conclusion The details are omitted

45 45 Query Supports By using auxiliary tables of o(n) bits, the following queries can be computed in O(1) time Adjacency query Degree query Clockwise neighbour query Plane Triangulation x y Adj.? x y ? x Plane Triangulation Deg.? Next? k-th clockwise neighbour query The details are omitted

46 46 Contents Introduction Definition A Compact Encoding of Plane Triangulations Query Supports Conclusion

47 47 Auxiliary table : o(n) bit Conclusion We have designed a simple algorithm to encode plane triangulations with 2m + o(n) bits Adjacency query Degree query O(1) time Clockwise neigh. query O(1) time 11011001101001110001010100 00001110011011100110011100 1010110110011001 k-th clockwise neigh. query O(1) time Reconstruction O(n) time Plane triangulation 0-1 binary string The detail is shown in the proceeding

48 48 Many Query Supports Give The Great Contribution We can use the compressed graph data without unpacking ( = reconstruction ) Aux. table ( 2m + o(n) bits ) 1100010110110011010 0110 0000000100010101000 0011 Query Supports Compress A Huge plane triangulation Compressed graph data The compressed graph data can be used directly

49 49 Thank you very much for your attention

50 50 How to Encode a Ordered Tree [ Munro and Raman, 97 ] We traverse ordered tree starting at the root with depth first manner up “( ( ( ) ) )”“( ( ) ( ) )” “( ( ) ) ( )” “( ) ( ( ) )”“( ) ( ) ( )” down down up up down go down If we go down an edge → “(” go up If we go up an edge → “)” optimal 2m bits A m edges ordered tree can be encoded with 2m bits

51 51 Future Works Since our algorithm is simple 1. Implementation of our algorithm ( We are trying now ) It is easy to implement High performance 2. Encode other graph classes If you have a graph class you want to encode, let’s try together

52 52 隣接判定 2 点 x, y が与えられたとき, 辺 (x,y) に対応するカッコを見つけ出 す 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 (( )(( ))(( )( ))((( )))( )( )( )) 10 11 9 8 67 5 4 321213 1 1 [[[[[]][[[[]]][]]][[[[ 223443567765 定数時間

53 53 次数判定 点 x が与えられたとき, 点 x に接続する辺に対応するカッコの数を算 出 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 (( )(( ))(( )( ))((( )))( )( )( )) 10 11 9 8 67 5 4 321213 1 1 [[[[[]][[[[]]][]]][[[[ 223443567765 8 ] 定数時間

54 54 時計回りで次の点を見つける 定数時間 省略 点 x の全ての隣接点を, O(d(x)) 時間で求めることがで きる x y この命令を利用する と,

55 55 先行研究 (クエリの提供 “ あ り ” ) 極大平面グラ フ 順序木 3 連結 平面グラフ 平面グラフ n: 点数 m: 辺数 O(n) 2m+8n+o(n) 2m+(5+1/k)n+o(n) 2m+2n+o(n) 2m+3n+o(n) 2m+o(n) 長さ ( bit ) 2m+n+o(n) Chuang 等 1.45m+o(n) Aleardi 等 1.08m+o(n) Aleardi 等 長さ ( bit ) 2m+o(n) Jacobson Munro 等 Benoit 等 Greary 等 Jacobson Munro 等 Chuang 等 Chiang 等 Chuang 等 Aleardi 等 著者 グラフクラスごとにたくさんの符号が提案され ている ラベル無しの一般グラ フ : + n lg n + O(n) n 2 bit [Naor, 90] 他にも … 1989 1997 1998 2001 1998 2006 1998 2005 2006 1989 1997 1999 2006

56 56 先行研究 (クエリの提供 “ な し ” ) n: 点数 m: 辺数 より省スペースを実現 4m 3.58m 2.38m 2.835m 長さ ( bit ) 1.53m Keeler 等 4m/3 -1 He 等 4m/3 Poulalhon 等 長さ ( bit ) Turan Keeler 等 Chuang 等 He 等 著者 1984 1995 1998 1999 1995 1999 2003 3m (loopless, deg1-free) 極大平面グラ フ 順序木 3 連結 平面グラフ 平面グラフ

57 57 極大平面グラフに対する符号化の概 要 1. 極大平面グラ フ 2. リアライ ザ 3. 全域木とその 他 4. 符号 110110011010011100 010101000000111001 101110011001110010 10110110011001

58 58 Rank 巧妙な分割と、様々なテーブルにもとづく → 比較的簡単な例: Rank Rank :その位置までに出現する “1” の数を求め る 1. 長さ lg(s)^2 個に分割 各ブロックの先頭の Rank を格納しておく 2. 長さ lg(s) 個に分割 各ブロックの先頭の Rank を格納しておく ( ※ big ブ ロック内の Rank) 3. 定数個に分割(実際のところは 2 個で十分) このサイズでユニバーサルテーブルを用意する

59 59 超大規模なグラフを扱いたい グラフスパ ナー 本質的ではない辺を削 除 非可逆 グラフの符号化 可逆 定数時間クエリのサポート Graph spanner: a subgraph which is sparse and still preserves all-pairs approximate distances

60 60 Findclose の見積もり 必要となるメモリ量の見積もり 使用メモリ量( n: 頂点数) n=10 6 (bit)n=10 9 (bit)n=10 12 (bit) Munro and Raman 1.020×10 26 5.533×10 32 8.523×10 37 親だけ保存 2.000×10 7 3.000×10 10 4.000×10 13 Endo Method5.761×10 7 3.504×10 9 2.970×10 12 各テーブルの値は bit

61 61 References for Auxiliary Table Y.T. Chiang, C.C. Lin and H.I. Lu, Orderly Spanning Trees with Applications to Graph Encoding and Graph Drawing, Proc. of SODA2001, pp.506--515, 2001. D. Clark, Compact Pat Trees, Ph. D, thesis, Department of Computer Science, University of Waterloo, 1998. G. Jacobson, Space-efficient Static Trees and Graphs, Proc. of FOCS1989, pp.549--554, 1989. J.I. Munro and V. Raman, Succinct Representation of Balanced Parentheses, Static Trees and Planar Graphs, Proc. of FOCS, pp.118--126, 1997. J.I. Munro and V. Raman, Succinct Representation of Balanced Parentheses and Static Trees, SIAM Journal on Computing, vol.31, no.3, pp.762--776, 2001.

62 62 順序木に関する先行研究 順序木 n: 点数 m: 辺数 長さ ( bit ) 2m+o(n) Jacobson Munro 等 Benoit 等 Greary 等 著者 各符号ごとに提供できるクエリに違いがある 1989 1997 1999 2006 {pre,post} -order {pre,post} -vertex childdegree child rank depthdescendantancestor 提供できるクエリ( O(1) 時 間)

63 63 The Main Known Results There are many encoding schemes of plane triangulations without query supports / with query Supports n: # vertices m: # edges Size ( bits ) AuthorsYear Keeler, Westbrook He, Kao and Lu 1.53m 4m/3 - 1 Poulalhon, Schaeffer4m/3 1995 Publish Discrete Appl. Math. 1999SIAM J. Discrete Math. ICALP2003 Bonichon, et. al.3.37m/3STACS2003 ( Without query supports ) Size ( bits ) AuthorsYear Chuang, et. al.7n + o(n)1998 Publish ICALP Aleardi, et. al.4.35n + o(n)2005WADS Ours6n + o(n)2008WALCOM ( With query supports ) n: # vertices m: # edges

64 64

65 65

66 66 Standard Representations of Graphs Adjacency Matrix Adjacency List 1 2 3 4 5 0 111 0 1 010 1 0 111 0 1 101 1 1 010 1 1 234 5 1 2 3 4 5 3 3 2 3 3 4 1 5 5 2 41 2 4 5 1 5 3 4 1 2 5 3 4 1 2 n 2 bits 2m log n bits + (pointer) 1 010 1 2 2 2 315 n: # of vertices m: # of edges


Download ppt "1 A Compact Encoding of Plane Triangulations with Efficient Query Supports Gunma Univ. ○Katsuhisa Yamanaka and Shin-ichi Nakano Auxiliary table : o(n)"

Similar presentations


Ads by Google