Chương 1, GIỚI THIỆU ĐỀ TÀI: trình bày tổng quan về đề tài, lý do thực hiện đề tài và ý nghĩa thực tiễn của bài toán, cũng như giới hạn và phạm vi của đề tài. Cuối cùng là nhiệm vụ và cấu trúc của luận văn. – Chương 2, CƠ SỞ LÝ THUYẾT: tổng hợp những vấn đề học thuật liên quan nhất sẽ áp dụng để giải quyết bài toán, tập trung chủ yếu vào nội dung của học sâu, từ Mạng nơ ron nhân tạo (Artificial Neural Network) tới Recurrent Neural Network, cơ chế attention và đặc biệt là lý thuyết về Graph Neural Network. – Chương 3, CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN: trình bày một cách tổng quát về những nghiên cứu liên quan đã và đang được thực hiện, cũng như xu hướng chung hiện nay trong việc 8 giải quyết bài toán.
Phần này cũng đưa ra những bàn luận và đánh giá cho các phương pháp kể trên vì đó là cơ sở quan trọng cho những nghiên cứu của học viên trong quá trình thực hiện luận văn. – Chương 4, MÔ HÌNH ĐỀ XUẤT: giới thiệu mô hình cơ sở cho Bài toán khuyến nghị theo phiên. Đồng thời đưa ra các cải tiến và động lực cho các đề xuất đó. Cuối cùng, học viên trình bày các bước tiến hành thí nghiệm trên những tập dữ liệu khác nhau và đánh giá kết quả của những cải tiến so với mô hình cơ sở.
– Chương 5, KẾT LUẬN: tổng hợp các kết quả đạt được trong quá trình thực hiện luận văn từ bước nghiên cứu và xây dựng giả thuyết đến triển khai thực nghiệm. Phần này cũng trình bày những hạn chế và vấn đề tồn đọng, cuối cùng đề xuất các giải pháp cải tiến trong tương lai. Mục lục, Danh sách hình vẽ, Danh sách bảng được cung cấp ở đầu luận văn. Tài liệu tham khảo sẽ được trình bày ở cuối luận văn.
9 Chương 2 CƠ SỞ LÝ THUYẾT 2. Tổng quan về Lý thuyết đồ thị 2. Định nghĩa và ví dụ về đồ thị Lý thuyết đồ thị được xem như một lĩnh vực của toán học rời rạc, được phát triển từ rất lâu và có nhiều ứng dụng trong khoa học cũng như thực tiễn, đặc biệt là đối với các ngành toán học và khoa học máy tính.1 minh họa Bài toán 7 cây cầu 1 dưới dạng đồ thị.1: Bài toán 7 cây cầu Königsberg biểu diễn dưới dạng đồ thị Định nghĩa: Một đồ thị được biểu diễn dưới dạng G = (V, E), trong đó V, E là hai tập hợp hữu hạn, với V là tập hợp các đỉnh (vertex) của đồ thị, E là tập hợp các cạnh (edge). Một cạnh e của đồ thị được hình thành từ sự liên kết hai đỉnh u, v thuộc đồ thị, thường được viết e = (u, v).
Khi này ta nói, u, v là hai mút của cạnh e và e là cạnh nối u với v. Như vậy, nếu coi mỗi đỉnh của đồ thị biểu diễn một đối tượng, thì một cạnh 10 trong đồ thị biểu diễn một quan hệ hai ngôi giữa các đối tượng này. Nếu vai trò của hai đầu mút u, v đối với cạnh e là như nhau, tức là không kể đến thứ tự của chúng trong việc biểu diễn cạnh, ta gọi đó là cạnh vô hướng. Ngược lại, việc biểu diễn e cần kể đến thứ tự trước sau của u, v, khi này e là cạnh có hướng, trong đó u (giả sử) là đỉnh đầu, v là đỉnh cuối của cạnh e.
Trong biểu diễn e = (u, v) đối với cạnh có hướng, ta nói e là cạnh nối từ u đến v. Ngoài ra, trong định nghĩa cạnh, nếu một cạnh được nối bởi một đỉnh đến chính nó, hay e = (u, u), e được gọi là khuyên. Dưới đây là phân loại một số dạng đồ thị: − Đồ thị vô hướng và đồ thị có hướng: Một đồ thị mà tất cả các cạnh của nó là vô hướng được gọi là đồ thị vô hướng (Hình 2.2a), ngược là là đồ thị có hướng (Hình 2. Nếu bỏ đi hướng trên tất cả các cạnh có hướng, một đồ thị có hướng sẽ trở thành đồ thị vô hướng.2: Đồ thị vô hướng và đồ thị có hướng − Đơn đồ thị và đa đồ thị: Một đồ thị không có khuyên và giữa hai đỉnh chỉ có nhiều nhất là một cạnh nối được gọi là một đơn đồ thị (Hình 2.
Các đồ thị có khuyên hay có nhiều hơn một cạnh nối giữa hai đỉnh được gọi là các đa đồ thị (Hình 2. − Đồ thị có trọng số: Trong một đồ thị, nếu trên mỗi cạnh được gán 11 Hình 2.3: Đơn đồ thị và đa đồ thị cho một số thực nào đó, ta gọi đó là đồ thị có trọng số. Nếu không nói gì thêm, ta xem như đồ thị không có trọng số (trọng số trên tất cả các cạnh là bằng nhau). Một số khái niệm khác trong đồ thị: − Kề: Đỉnh v được gọi là kề với u nếu có cạnh nối từ u đến v trên một cạnh có hướng.
Nếu đó là cạnh vô hướng, ta nói u, v kề nhau. − Liên thuộc: Nếu đỉnh u là một trong hai mút của cạnh e, khi này ta nói đỉnh u liên thuộc cạnh e. − Bậc của đỉnh: Trong đồ thị vô hướng, bậc của đỉnh u là tổng số cạnh liên thuộc với nó, kí hiệu là deg(u). Trong đồ thị có hướng, người ta quan tâm đến cả cạnh ra, vào tại một đỉnh, vì vậy khái niệm bậc được thay thế bằng nửa bậc, bao gồm nửa bậc vào, kí hiệu deg− (u), là số cạnh đi vào u, và nửa bậc ra, kí hiệu deg+ (u), là số cạnh đi ra từ u.
Nếu một đỉnh có bậc (hoặc nửa bậc vào, ra) bằng 0, ta gọi đó là đỉnh treo. Từ những khái niệm về bậc nói trên, ta có Định lý bắt tay. Định lý bắt tay: Trong đơn đồ thị vô hướng G = (V, E), tổng bậc của 12 tất cả các đỉnh trong đồ thị bằng 2 lần số cạnh: ∑ deg(u) = 2|E| (2.1) u∈V Nếu đồ thị được cho là có hướng, tổng của nửa bậc vào và tổng của nửa bậc ra bằng nhau và cùng bằng số cạnh trong đồ thị: ∑ deg+ (u) = ∑ deg− (u) = |E| (2.2) u∈V u∈V − Đường đi: là một dãy các cạnh kề nhau (cạnh sau kề cạnh trước), xuất phát từ đỉnh s và kết thúc tại đỉnh t. Đường đi có thể là vô hướng hoặc có hướng.
Số cạnh trên đường đi được gọi là độ dài của đường đi. − Chu trình: là một đường đi không có cạnh lặp lại và đỉnh đầu trùng với đỉnh cuối. Tương tự như đường đi, chu trình có thể có hướng hoặc vô hướng. Một chu trình không có đỉnh lặp (trừ đỉnh đầu, đỉnh cuối trùng nhau) được gọi là một chu trình đơn.
− Đồ thị con: Đồ thị con của một đồ thị G là một đồ thị nhận được từ G bằng cách bỏ đi một số cạnh và một số đỉnh (cùng với các cạnh liên quan đến những đỉnh này). Khi đó, đồ thị con G′ = (V ′ , E ′ ), trong đó V ′ ⊆ V và E ′ ⊆ E. − Liên thông: Một đồ thị vô hướng được gọi là liên thông nếu giữa hai đỉnh bất kỳ đều tồn tại một đường đi nào đó giữa hai đỉnh này là điểm bắt đầu và kết thúc. Trong đồ thị có hướng, nếu ta không quan tâm đến hướng của cạnh, và đồ thị vô hướng thu được là liên thông, ta nói đồ thị có hướng đó liên thông yếu.
Nếu điều kiện có hướng cũng được thỏa mãn, đồ thị đó được gọi là liên thông mạnh. 13 Trong đời sống, chúng ta bắt gặp nhiều hình ảnh có thể mô tả được dưới dạng đồ thị. Ví dụ như một mạng máy tính gồm nhiều trung tâm máy được kết nối với nhau để chia sẻ thông tin, lúc này mỗi trung tâm được xem như một đỉnh trong đồ thị, giữa hai trung tâm có hình thành kênh thoại sẽ tạo thành một cạnh. Vì kênh thoại như là một cách trao đổi thông tin nên sẽ có hai chiều, dẫn đến đồ thị được xây dựng từ cách biểu diễn trên là một đa đồ thị có hướng (vì tồn tại khuyên, một trung tâm có thể có kênh trao đổi trong chính nó).
Một ví dụ khác là hệ thống mạng giao thông khi mà mỗi nút giao thông được xem như một đỉnh, và đoạn đường nối hai nút giao thông có thể xem như một cạnh. Các loại đồ thị đặc biệt Một số đồ thị đặc biệt thường gặp: − Đồ thị đầy đủ: là đồ thị đơn vô hướng mà giữa hai đỉnh bất kì của nó luôn có cạnh nối. Như vậy số cạnh của đồ thị đầy đủ gồm n đỉnh là n(n − 1) và được kí hiệu là Kn 2 − Đồ thị vòng: là đơn đồ thị vô hướng và tồn tại một chu trình đơn đi qua tất cả các đỉnh và các cạnh của nó. Số cạnh trong một đồ thị vòng n đỉnh cũng bằng n và được kí hiệu là Cn.
Ngoài ra có thể thấy, bậc của mỗi đinh trong đồ thị vòng đều bằng 2. − Đồ thị bánh xe: được định nghĩa là khi ta thêm một đỉnh và n cạnh từ đỉnh đó đến tất cả các đỉnh khác trong đồ thị vòng Cn , ta thu được đồ thị bánh xe Wn. Số cạnh trong đồ thị bánh xe Wn là 2n. − Đồ thị lập phương: là đơn đồ thị vô hướng gồm 2n đỉnh, mỗi đỉnh được đặt tên bằng một chuỗi n bit.
Hai đỉnh được nối với nhau nếu và 14 chỉ nếu tên của chúng chỉ khác nhau đúng một bit. Đồ thị lập phương như vậy được kí hiệu là Qn , bao gồm n × 2n−1 đỉnh. − Đồ thị phẳng: Một đồ thị được gọi là phẳng nếu có thể vẽ nó trên mặt phẳng sao cho không có cạnh nào cắt nhau trừ tại đỉnh. − Đồ thị hai phía: là một đơn đồ thị vô hướng có thể phân hoạch tập đỉnh thành hai lớp sao cho chỉ có các cạnh nối đỉnh của lớp này với đỉnh của lớp kia (nghĩa là không có cạnh nối hai đỉnh của cùng một lớp).
Một đồ thị được gọi là đồ thị hai phía đầy đủ nếu nó là đồ thị hai phía và mỗi đỉnh thuộc tập đỉnh thứ nhất có cạnh nối đến tất cả các định của tập đỉnh thứ hai, và được kí hiệu là Km,n (m, n là số lượng đỉnh ở mỗi tập) 2. Biểu diễn đồ thị Có nhiều cách biểu diễn đồ thị, để thuận tiện cho việc lưu trữ và tính toán trên máy tính, ba cách biểu diễn thường gặp nhất của đồ thị: 1. Ma trận kề: trong cách biểu diễn này, các đỉnh của đồ thị được đánh số lần lượt từ 1 đến n (với n là số đỉnh của đồ thị).