Giải bài toán đồ thị đẳng cấu dùng thuật toán VF

20 666 2
Giải bài toán đồ thị đẳng cấu dùng thuật toán VF

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

I HC QUC GIA TP. H CHÍ MINH I HC CÔNG NGH THÔNG TIN KHOA KHOA HC MÁY TÍNH TIU LUN :    Ging dn: PGS. TS.  Hc viên thc hin: NGUY Lp: Cao hc Khóa 6 MSHV: CH1101159 TP. H Chí Minh, tháng 08   Em xin bày t lòng bin PGS. TS. i hc Công Ngh ng dn, cung cp kin thc, truyn t nhng kinh nghim quí báu giúp em hoàn thành tt bài tiu lun này. , các anh, ch  tr, lo lng viên. ng tht c các bng h chúng tôi trong quá trình thc hin bài tiu lun này. u c gc chn s không tránh khi nhng thiu sót, em rt mong nhc s n ca các Thy giáo, Cô giáo và các b  c hoàn thi Em xin chân thành c Tp H Chí Minh, tháng 05  Hc viên NHN XÉT (Ca ging dn)   1  th 2  th 2  3 1.2.1. Cnh liên thunh k, bc 3  4 1.3. Biu di th 4 1.3.1. Ma trn k 4 1.3.2. Danh sách cnh 5 1.3.3. Danh sách k 6 1.3.4. Danh sách liên thuc 7 Ch th ng cu 8 2.1. Gii thiu bài toán 8 2.2. Thut toán VF 9 2.3. Biu din thut toán VF 10 2.4. Các lut xét tính kh thi ca trng thái 11  phc tp ca thut toán VF 12 t lun 13  14 TÀI LIU THAM KHO 16 Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 1 GVHD: PGS. TS.  Hc viên: Nguy   th là mt cu trúc d lic s dng rng rãi trong vic biu din thông tin c ng dng rng trong qun lý và khai phá d lin các bài  th th ng cn nay vi gii hoàn ch phc tp ca bài toán là rt l th có s nh ln và m các cnh dày. ng 5 thum gii quyt  th ng cu bao gm Ullman, SD, Nauty, VF và VF2. Trong s u qu nht là VF và VF2 vi VF2 là thut toán ci tin da trên VF. Báo cáo s trình bày v  lý thuy thm v bài toán ng c thng ca thut, ng thi tính toán  phc tp ca thut toán này nhm làm rõ tính hiu qu ca thut toán VF. Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 2 GVHD: PGS. TS.  Hc viên: Nguy   1.1.   th là mô hình biu din mt tng và mi quan h hai ngôi gia các ng: Graph = Object + Connections G = (V,E) Có th  th G là mt cp các nh (vertices) biu ding và E gi là tp các cnh (edges) biu din mi quan h gi ng. Chúng ta quan tâm ti mi quan h hai ngôi (pairwise relations) ging nên có th coi E là tp các cp (u, v) vi u và v là hai nh ca V biu ding có quan h vi nhau. Hình 1: Các ng dng c th. Có th phân lo th c tính và s ng ca tp các cnh E:  c g th (hay gi t th) nu ginh u, v  V có nhiu nht là 1 cnh trong E ni t n v.  c g th (multigraph) nu ginh u, v  V có th có nhiu nh trong E ni u và v. Nu có nhiu cnh ni ginh u, v  V thì nhng cc gi là cnh song song (parallel edges)  c g th ng (undirected graph) nu các cnh trong E là ng, tc là cnh nnh u, v  V bnh ni 2 nh v, u. Hay nói cách khác, tp E gm các cp (u, v) không tính th t: (u, v) = (v, u).  c g th ng (directed graph) nu các cnh trong E là có ng, tc là có th có cnh ni t c Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 3 GVHD: PGS. TS.  Hc viên: Nguy có cnh ni t nh u. Hay nói cách khác, tp E gm các cp (u, v) có tính th t: (u, v)   th ng, các cc gi là các cung (arcs). Hình 2: Phân lo th. 1.2.   th G = (V, E) là mt cu trúc ri rc, tc là các tp V và E là tc, vì vy ta có th  th t n t ca tng nht các phn t thuc tp V và E vi s th t ca chúng. i lp trình cho máy tính thì ta ch n  th hu hn (V và E là tp hu hn), chính vì vy t  sau, nu không chú thích gì thêm thì khi nói t th, ta hiu r th hu hn. 1.2.1. Cnh liên thunh k, bc i v th ng G = (V, E). Xét mt cnh e  E, nu e = (u,v) thì ta nói hai nh u và v là k nhau (adjacent) và cnh e này liên thuc (incident) vnh v. Vi m th c (degree) ca v, kí hiu deg(v) là s cnh liên thuc v th thì s cnh liên thuc v s nh k vi v. i v th ng G = (V, E). Xét trong mt cung e  E, nu e = (u,v) thì ta nói u ni ti v và v ni t  c gnh c gnh cui ca cung e. Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 4 GVHD: PGS. TS.  Hc viên: Nguy Vi m th c ra (out-degree) ca v kí hiu deg + (v) là s i nó; bán bc vào (in-degree) kí hiu deg - (v) là s . 1.2.2.  Mt nh: P = <p 0 , p 1  k > Sao cho (p i-1 , p i )  E,vi mc gi là m này gnh p 0 , p 1  k và k cnh (p 0 , p 1 ), (p 1 , p 2 ),  k-1 , p k ). Nu có mt  k, , kí hiu p 0 ~> p k nh p 0 c gnh p k gnh cui cnh p 1 , p 2  k-1 c gnh trong ca . Mu tt c nh trên        0 , p 1   k > tr thành chu trình (circuit) nu p 0 = p k  th c gu k nh p 1 , p 2 ,  k hoàn toàn phân bit. 1.3.  Khi lp trình gic mô hình hóa b th, viu tiên ta cn làm tìm cu trúc d li biu di th sao cho vic gii quyc thun tin nht. Có rt nhiu di th, trong bài này chúng ta s kho sát mt s  bin nht. Tính hiu qu ca tu din s c ch ng thut toán c th. 1.3.1. Ma trn k Vi G = (V, E) là m th   các nh t ng nht mnh vi s th t ca nó. B  v th G có th biu din bng ma trn vuông A = {a ij } n*n  a ij = 1 nu (i,j)  E 0 nu (i,j) không  E Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 5 GVHD: PGS. TS.  Hc viên: Nguy Vi mi i, giá tr ca các phn t ng chéo chính ma trn A: {a ij }có th t tùy theo m th, chng ht bng 0. Ma trn A xây dc gi là ma trn k (adjacent matrix) c th G. Vic biu di th c qui v vic biu din phiên b    ng: thay mi cnh (i,j) bi hai cung ng nhau: (i,j) và (j,i). i v th thì vic biu di  u n là cung thì a ij là s cnh ni ginh j. Hình 3: Ma trn k biu di th. m ca ma trn k:  n, trc quan, d cài t trên máy tính.  Kinh liên kt rn thông qua phép so sánh giá tr a ij  0. m ca ma trn k:  i n 2 ô nh   d liu gây lãng phí b nh.  Khi bài toán yêu cu duyt qua tt c nh j k vnh i, ta luôn phi duy kim tra giá tr a ij . 1.3.2. Danh sách cnh Hình 4: Danh sách cnh biu di th. Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 6 GVHD: PGS. TS.  Hc viên: Nguy V th nh, m cnh, ta có th lit kê tt c các cnh c th trong mt danh sách, mi phn t ca danh sách là mt cp (x, ng vi mt cp cng h th ng thì (x, y) là m n y. Cách biu din này gi là danh sách cnh. m ca danh sách cnh:  ng h th  tit ki vì ch s dng m ô nh.  ng hp phi xét tt c các cnh thì vic duyt qua các cnh s d c t m ca danh sách cnh:  Khi cn duynh j k v th ta phi duyt ht m cnh.  Khi kinh i, j có k i duyt qua m cnh.  Khi g th  phc tp thut toán s m trên. 1.3.3. Danh sách k  khc phm ca 2 cách biu di th  pháp biu di th bng danh sách k (adjacency list). Trong cách biu din này, vi mnh v c th ng vi nó mnh k vi u. V th ng G = (V, E). V gnh và E gm m cung. Có hai cách cài t danh sách k ph bin:  Forward Star: vi m mt danh sách adj[u] chnh ni t u: adj[u] = { v: (u, v)  E }.  Reserve Star: vi m mt danh sách adj[v] chnh ni n v: adj[v] = { u: (u, v)  E }. m ca danh sách k  i vi danh sách k , vic duynh k vc là ht sc d dàng.  Vic duyt các cn vì mt cnh thc ra là ni mnh vi mt nh khác k nó. m ca danh sách k [...]... đẳng cấu giữa đồ thị 2 và các đồ thị con của đồ thị 1, ta nhấn nút Kết quả để xem bộ các ánh xạ thu đƣợc nếu bài toán có kết quả Ngƣợc lại, nếu hoàn toàn không có bất kỳ đồ thị con nào của đồ thị 1 đẳng cấu với đồ thị 2, chƣơng trình sẽ hiển thị thông báo là không tìm đƣợc đồ thị đẳng cấu GVHD: PGS TS h c Học viên: Nguyễn hƣơng Anh Tiểu luận CSDL nâng cao: Giải bài toán đồ thị đẳng cấu bằng thuật toán. .. nâng cao: Giải bài toán đồ thị đẳng cấu bằng thuật toán VF Trang 15  Tạo bộ dữ liệu ngẫu nhiên: ngƣời dùng nhập số đỉnh của đồ thị và nhấn vào nút Tạo Random để tạo đồ thị ngẫu nhiên  Tạo bộ dữ liệu ngẫu nhiên nhƣng đẳng cấu: ngƣời dùng nhấn nút Tạo đẳng c u để tạo ngẫu nhiên cả 2 đồ thị hoàn toàn đẳng cấu với nhau Sau khi nhập dữ liệu, danh sách cạnh kề sẽ hiển thị dƣới m i đồ thị để ngƣời dùng có... hai đồ thị G1 và G2: f: M(G1) → M(G2) với tính chất rằng cặp đỉnh ni và nj bất kỳ của G1 kề nhau khi và chỉ khi hai đỉnh f(ni) và f(nj) kề nhau trong đồ thị G2 Nếu có thể xây dựng một phép đẳng cấu giữa hai đồ thị, ta nói rằng hai đồ thị này đẳng cấu với nhau Bài toán đồ thị đẳng cấu xác định xem hai đồ thị có đẳng cấu với nhau hay không Ví dụ: xét 2 đồ thị: Tuy trông rất khác nhau, ch ng là hai đồ thị. .. liên thuộc ặc biệt trong trƣờng hợp đồ thị có hƣớng, ta có thể xây dựng danh sách liên thuộc từ danh sách cạnh tƣơng đối dễ dàng bằng cách bổ sung các con trỏ liên kết GVHD: PGS TS h c Học viên: Nguyễn hƣơng Anh Tiểu luận CSDL nâng cao: Giải bài toán đồ thị đẳng cấu bằng thuật toán VF Trang 8 hương 2: ài toán tìm đồ thị đẳng cấu 2.1 Giới thiệu bài toán hép đẳng cấu đồ thị (graph isomorphism) là một song... giữa đồ thị và đồ thị con trong đó đẳng cấu giữa đồ thị và đồ thị con thƣờng đƣợc sử dụng nhiều nhất Ta có thể định nghĩa M là một tập có thứ tự các cặp (n, m) với n ϵ G1 và m ϵ G2 thể hiện ánh xạ từ n đến m: M = { (n, m) ϵ N1 x N2 | n ánh xạ đến m } GVHD: PGS TS h c Học viên: Nguyễn hƣơng Anh Tiểu luận CSDL nâng cao: Giải bài toán đồ thị đẳng cấu bằng thuật toán VF Trang 9 Theo lý thuyết, việc giải quyết... thị đồng cấu Dƣới đây là một phép đẳng cấu giữa ch ng: f(a) = 1 f(b) = 6 f(c) = 8 f(d) = 3 f(g) = 5 f(h) = 2 f(i) = 4 f(j) = 7 Quá trình tìm đẳng cấu giữa 2 đồ thị G1 = (N1, B1) và G2 = (N2, B2) là quá trình tìm ra ánh xạ M từ đồ thị G1 sang G2 Có nhiều luật khác nhau đƣợc áp dụng cho M và tƣơng ứng với các luật thì sẽ có nhiều loại đẳng cấu khác nhau: đơn đẳng cấu, đẳng cấu hoàn toàn, đẳng cấu giữa đồ. .. Anh Tiểu luận CSDL nâng cao: Giải bài toán đồ thị đẳng cấu bằng thuật toán VF Trang 13 hương 3: Kết luận Thuật toán VF với đặc trƣng là xử lý theo từng trạng thái của lời giải kết hợp với các luật xét tính khả thi của trạng thái kế tiếp đã làm giảm đáng kể các phép so sánh cần sử dụng, qua đó làm giảm độ phức tạp của thuật toán một cách đáng kể Cụ thể khi so sánh với thuật toán Ullman với độ phức tạp... giải quyết bài toán này có thể đƣợc thực hiện bằng cách duyệt qua tất cả các trạng thái ánh xạ có thể có và chọn ra một lời giải phù hợp với loại đẳng cấu cần tìm (sử dụng thuật toán Brute Force) 2.2 Thuật toán VF Thuật toán VF dựa trên khái niệm không gian mô tả trạng thái (viết tắt tiếng anh là SSR) mô tả quá trình tìm đẳng cấu của đồ thị với m i trạng thái s thể hiện một phần của lời giải Khi đó... CSDL nâng cao: Giải bài toán đồ thị đẳng cấu bằng thuật toán VF Trang 10 Sau đó ch ng ta lại tiếp tục tìm một cặp ánh xạ (n, m) sao cho vẫn đảm bảo tính đẳng cấu của đồ thị tức là tìm trạng thái sj mới dựa trên si nhƣ sau: L c đó trạng thái M(sj) = { (n1, m4), (n2, m1), (n3, m2) } L c đó trạng thái của 2 đồ thị đẳng cấu ta xây dựng đƣợc nhƣ sau: Việc lặp đi lặp lại các thao tác tính toán theo từng trạng... mật độ cạnh dày đặc (mạng xã hội) nên việc tìm hiểu và nghiên cứu nhằm đƣa ra một thuật toán mới có tính ứng dụng cao trong việc tìm đồ thị đẳng cấu vẫn còn là một câu hỏi lớn chƣa có lời giải - o0o - GVHD: PGS TS h c Học viên: Nguyễn hƣơng Anh Tiểu luận CSDL nâng cao: Giải bài toán đồ thị đẳng cấu bằng thuật toán VF Trang 14 P Ụ Ụ ướng dẫn sử dụng chương trình demo Chƣơng trình đƣợc cài đặt bằng . SD, Nauty, VF và VF2 . Trong s u qu nht là VF và VF2 vi VF2 là thut toán ci tin da trên VF. Báo cáo s trình bày v  lý thuy thm v bài toán ng. cu 8 2.1. Gii thiu bài toán 8 2.2. Thut toán VF 9 2.3. Biu din thut toán VF 10 2.4. Các lut xét tính kh thi ca trng thái 11  phc tp ca thut toán VF 12 t. thut, ng thi tính toán  phc tp ca thut toán này nhm làm rõ tính hiu qu ca thut toán VF. Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 2 GVHD:

Ngày đăng: 10/04/2015, 14:34

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan