Directed Acyclic Graph (DAG) là gì?

Directed Acyclic Graph (DAG) là gì?

Directed Acyclic Graph (DAG) là một cấu trúc trừu tượng bao gồm các “nút” và “cạnh. Các cạnh tạo thành các kết nối giữa các nút và có hướng. Trong cấu trúc này, các vòng lặp bị loại trừ. Nếu bạn đi theo hướng của các cạnh, bạn sẽ đi từ một điểm bắt đầu (nút bắt đầu) đến một nút đích và không bao giờ quay trở lại nút bắt đầu. Quá trình này tạo ra một trật tự topolog (Sắp xếp Tô-pô). DAG có thể được sử dụng để biểu diễn các mối quan hệ nhân quả một cách hiệu quả.

DAG khi dịch sang tiếng Việt có nghĩa là “đồ thị không chu trình có hướng. Đây là một dạng đặc biệt của đồ thị dựa trên lý thuyết đồ thị. Nó được đặc trưng bởi việc các kết nối giữa các nút, được gọi là cạnh, có một hướng và vòng lặp bị loại trừ. Nó được đặc trưng bởi các kết nối giữa các nút, được gọi là cạnh, có hướng và các vòng lặp bị loại trừ. Nếu bạn đi theo các cạnh có hướng, bạn sẽ đi từ một điểm bắt đầu (nút bắt đầu) đến một nút đích và không bao giờ quay trở lại điểm bắt đầu. Đồ thị DAG có thể được biểu diễn đồ họa bằng các điểm được nối với nhau bằng các đường và mũi tên.

DAG được sử dụng trong nhiều lĩnh vực và là thành phần của nhiều ứng dụng và khái niệm toán học hoặc khoa học máy tính. Do các cạnh có hướng và cấu trúc không có vòng lặp, chúng rất phù hợp để biểu diễn các mối quan hệ nhân quả. Với các đồ thị này có thể tìm, biểu diễn và tối ưu hóa các tuyến đường trong mạng máy tính, hiển thị và mô hình hóa các mối quan hệ kế thừa hoặc mô tả quy trình làm việc. Giống như blockchain, DAG cũng thuộc loại công nghệ sổ cái phân tán (DLT). Chúng có thể được sử dụng như một giải pháp thay thế cho công nghệ blockchain để ghi lại các giao dịch tiền điện tử.

Lý thuyết đồ thị và đặc điểm đặc trưng của đồ thị không chu trình có hướng

Trước khi đi sâu vào việc tìm hiểu về đồ thị không chu trình có hướng, hãy cùng tìm hiểu một số thông tin cơ bản về lý thuyết đồ thị. Nói chung, một đồ thị là một cấu trúc trừu tượng của các đối tượng được liên kết với nhau. Các đối tượng này được gọi là “nút” và các kết nối giữa chúng được gọi là “cạnh”. Tùy thuộc vào loại đồ thị, các cạnh có thể có hướng hoặc không hướng. Đồ thị có thể được minh họa với các điểm được kết nối với nhau bằng các đường, có hoặc không có hướng mũi tên.

Những đặc điểm nổi bật của một đồ thị không chu trình có hướng bao gồm việc tất cả các kết nối (cạnh) giữa các nút đều có hướng và vòng lặp là không được phép. Khi bắt đầu từ một nút cụ thể, bạn không bao giờ quay lại nút xuất phát. Với sự giúp đỡ của các kết nối có hướng, ví dụ, có thể biểu diễn các mối quan hệ nguyên nhân. “Nút gốc” của một DAG tạo thành “nút gốc”. Tất cả các kết nối đều xuất phát từ nó. Nó không có nút tiền nhiệm. Nút mà các kết nối kết thúc và không còn kết nối đi ra nữa được gọi là “nút lá” hoặc “lá”. Một tên gọi thay thế cho thuật toán DAG là “thứ tự topolog”. Mỗi nút của một sắp xếp topolog đều nằm trong một trật tự cụ thể.

Sự khác biệt so với Blockchain

Directed Acyclic Graph (đồ thị không chu trình có hướng) và Blockchain đều thuộc về nhóm công nghệ sổ cái phân tán (Distributed-Ledger-Technologies – DLTs). Mặc dù chúng có thể được sử dụng cho các ứng dụng tương tự, nhưng DAGs và Blockchains có sự khác biệt rõ ràng. Cả hai công nghệ này đều ghi chép và quản lý dữ liệu giao dịch hoặc dữ liệu khác trong một sổ cái số phân tán. Chẳng hạn, chúng có thể được sử dụng để ghi chép các giao dịch của tiền điện tử. Trong khi Blockchains gom dữ liệu hoặc giao dịch lại, phân phối chúng vào các khối và tổ chức chúng trong một chuỗi các khối, DAGs lại tổ chức chúng dưới dạng đồ thị. Một Directed Acyclic Graph không tạo ra các khối giao dịch được kết nối trong chuỗi và không cần đến quá trình khai thác (mining) để xác nhận giao dịch. Ưu điểm của DAGs là tốc độ giao dịch nhanh và khả năng mở rộng tốt.

Sự khác biệt chính giữa hai công nghệ này là cách phân phối dữ liệu. Trong DAG, giao dịch không được gom lại và cũng không được lưu trữ dưới dạng các khối trên tất cả các nút, mà từng giao dịch được kết nối với nhau thông qua đồ thị và chỉ được gửi đến các nút được chọn để xác minh. Kết quả là giao dịch có thể được xử lý và xác nhận nhanh chóng hơn và do đó cũng rẻ hơn.

Trước khi một người gửi có thể thực hiện một giao dịch, anh ấy phải xác minh hai giao dịch được chọn ngẫu nhiên trước tiên. Để điều phối, một quản trị viên tồn tại. Ví dụ: đồ thị không chu trình có hướng được sử dụng trong nền tảng DLT Corda; nhưng nói chung Blockchain hiện tại vẫn được áp dụng rộng rãi hơn so với DAG.

Một số ứng dụng đặc trưng của Directed Acyclic Graph

Vì thuật toán DAG tạo ra một trật tự topolog của các đối tượng các nút được kết nối có thể được chuyển đổi thành các chuỗi tuyến tính với một trình tự được quy định và có điểm bắt đầu và kết thúc. Những đồ thị không chu trình có hướng này với các chuỗi tuyến tính của chúng rất phù hợp để biểu diễn các mối quan hệ nhân quả, mối quan hệ huyết thống hoặc mô tả các quy trình. DAGs có thể được sử dụng một cách hiệu quả trong nhiều ứng dụng khác nhau. Trong công nghệ viễn thông, chúng được sử dụng để tìm các tuyến đường tối ưu hoặc các kết nối thay thế trong mạng và đồng thời tránh các vòng lặp gốc. Nhiều giao thức và thuật toán định tuyến sử dụng lý thuyết đồ thị và Directed Acyclic Graph. Một ứng dụng khác là quản lý dự án. DAGs có thể được sử dụng để lập kế hoạch, tối ưu hóa và quản lý các nhiệm vụ phức tạp. Một số ứng dụng khác của đồ thị không chu trình có hướng bao gồm:

  • Quản lý quy trình công việc
  • Tiền điện tử
  • Nghiên cứu lâm sàng và y học
  • Quản lý quy trình
  • Nghiên cứu tổ tiên và cây phả hệ
  • Nghiên cứu tiến hóa
  • Trí tuệ nhân tạo (KI) và mạng nơ-ron
  • Kho lưu trữ phần mềm và quản lý phiên bản
  • Danh mục nguồn và chứng từ
  • Nén dữ liệu
  • Biểu đồ cây quyết định
tac gia nguyen duc truong

CEO tại Geneat Software, là một người luôn muốn giải quyết các vấn đề cuộc sống bằng công nghệ một cách tối ưu, mình tin rằng các giải pháp phần mềm phải hữu ích, thiết thực và nên được dễ dàng tiếp cận bởi tất cả mọi người.

logo geneat crop

Được thành lập với niềm tin rằng phần mềm phải là một công cụ mạnh mẽ và hiệu quả cho các doanh nghiệp thay vì tốn kém, cầu kỳ và khó hiểu.

GENEAT SOFTWARE CO., LTD Mã số thuế: 0108725114

Địa chỉ thuế: Số nhà 35 đường Cổ Loa, Xã Cổ Loa, Huyện Đông Anh, Hà Nội

Đại diện pháp luật: NGUYỄN ĐỨC TRƯỜNG

Ngày cấp: 08/05/2019

Văn phòng Hà Nội

Tầng 6, tòa nhà D8, Đại học Bách Khoa Hà Nội, số 1 Đại Cồ Việt, Hai Bà Trưng, Hà Nội.

Văn phòng Huế

C122, Khu đô thị Green City, Phú Vang, Thừa Thiên Huế

Hotline: 

+84 934 571 626

+84 985 267 138