Trong khoa học máy tính, thứ tự tô pô của một đồ thị có hướng là một thứ tự sắp xếp của các đỉnh sao cho với mọi cung từ u đến v trong đồ thị, u luôn nằm trước v. Thuật toán để tìm thứ tự tô pô gọi là thuật toán sắp xếp tô pô. Thứ tự tô pô tồn tại khi và chỉ khi đồ thị không có chu trình (viết tắt là DAG - tiếng Anh directed acyclic graph). Đồ thị có hướng không có chu trình luôn có ít nhất một thứ tự tô pô, và có thuật toán để tìm thứ tự tô pô trong thời gian tuyến tính.
Ví dụ
Một ứng dụng kinh điển của thứ tự tô pô là lập kế hoạch cho một chuỗi các công việc. Các thuật toán sắp xếp tô pô được nghiên cứu lần đầu tiên vào những năm 1960 trong phương pháp PERT cho việc lập kế hoạch trong quản lý dự án. Các công việc được đại diện bởi các đỉnh đồ thị. Đồ thị có cung từ x đến y nếu công việc x phải hoàn thành trước khi công việc y bắt đầu (chẳng hạn như khi giặt quần áo, việc giặt phải hoàn thành trước khi bắt đầu phơi khô). Khi đó, một thứ tự tô pô tương ứng với một thứ tự thực hiện các công việc.
Trong khoa học máy tính, các ứng dụng tương tự phát sinh trong lập kế hoạch thực thi lệnh, xác định thứ tự biên dịch trong makefile, xác định quan hệ phụ thuộc giữa các biểu tượng trong chương trình liên kết.
Các thuật toán
Các thuật toán sắp xếp tô pô thường có thời gian tuyến tính trong số nút cộng với số cung ().
Một trong những thuật toán này, phát hiện bởi Kahn năm 1962, hoạt động bằng cách lần lượt chọn các đỉnh theo thứ tự đúng như thứ tự tô pô. Đầu tiên, xác định một danh sách các "nút bắt đầu" không có cung vào và chèn chúng vào một tập S. Trong một đồ thị có hướng không có chu trình, luôn có ít nhất một nút như vậy. Sau đó:
L ← danh sách rỗng (cuối cùng sẽ chứa danh sách đã sắp xếp)
S ← tập hợp các nút không có cung vào
while S khác rỗng do
loại bỏ một nút n từ S
chèn n vào L
for each nút m sao cho có cung e từ n đến m do
loại bỏ cung e từ đồ thị
if m không có cung vào then
chèn m vào S
if đồ thị vẫn còn cung then
thông báo lỗi (đồ thị có ít nhất một chu trình)
else
thông báo thứ tự tô pô là L
Nếu đồ thị là một DAG, danh sách L luôn chứa một thứ tự hợp lệ(thứ tự tô pô không nhất thiết là duy nhất). Nếu đồ thị không là DAG thì nó có ít nhất một chu trình và do đó không thể có thứ tự tô pô.
Lưu ý rằng S có thể lựa chọn phần tử n một cách tùy ý. Tùy thuộc vào thứ tự các nút n được loại bỏ từ S, một thứ tự tô pô khác nhau được tạo ra. Một biến thể của thuật toán của Kahn sử dụng thứ tự từ điển cho việc lựa chọn n là một thành phần quan trọng của thuật toán Coffman-Graham cho lập kế hoạch song song và vẽ đồ thị lớp.
Có một thuật toán khác cho sắp xếp tô pô dựa trên tìm kiếm theo chiều sâu. Đối với thuật toán này, các cung chỉ theo hướng ngược lại so với thuật toán trước: có một cung từ x đến y nếu công việc x phụ thuộc vào công việc y (nói cách khác, nếu công việc y phải hoàn thành trước khi công việc x có thể bắt đầu). Thuật toán duyệt qua các nút của đồ thị, trong một trật tự tùy ý, và thực hiện tìm kiếm theo chiều sâu cho đến khi tìm đến một nút đã được thăm:
L ← danh sách rỗng (cuối cùng sẽ chứa thứ tự sắp xếp)
S ← tập hợp các nút không có cung vào
for each nút n trong S do
thăm(n)
function thăm(nút n)
if chưa thăm n then
đánh dấu n là đã thăm
for each nút m sao cho có cung từ n đến m do
thăm(m)
chèn n vào L
Lưu ý rằng mỗi nút n được thêm vào danh sách L chỉ sau khi đã thăm tất cả các nút khác mà n phụ thuộc vào(tất cả các nút hậu duệ của n trong đồ thị). Cụ thể là, khi thuật toán thêm nút n, nó đảm bảo rằng tất cả các nút n phụ thuộc vào đã có trong danh sách L: chúng đã được thêm vào L hoặc do lời gọi đệ quy đến thăm(), hoặc do một lời gọi đến thăm() từ trước. Vì mỗi cung và mỗi nút được thăm một lần, thuật toán chạy trong thời gian tuyến tính. Lưu ý rằng mã giả trên không thể phát hiện trường hợp lỗi khi đồ thị có chu trình. Thuật toán có thể được thay đổi để phát hiện chu trình bằng cách kiểm tra có nút nào được thăm nhiều hơn một lần trong bất kỳ một chuỗi lồng nhau của các lời gọi đệ quy đến thăm(). Thuật toán này có thể đã được mô tả lần đầu tiên bởi Tarjan năm 1976.
👁️
0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
Trong khoa học máy tính, **thứ tự tô pô** của một đồ thị có hướng là một thứ tự sắp xếp của các đỉnh sao cho với mọi cung từ _u_ đến _v_ trong đồ
**Đợt sắp xếp, sáp nhập đơn vị hành chính tại Việt Nam 2019–2022** đề cập đến cuộc sắp xếp, sáp nhập các đơn vị hành chính (ĐVHC) cấp xã và cấp huyện tại Việt Nam
right|thumb|upright=1.15|**Hình 1.** [[Hasse diagram|Biểu đố Hasse của tập hợp các tập con của tập ba phần tử dưới thứ tự là tập con của. Các tập hợp nối với nhau theo đường
thumb|[[Bảng tuần hoàn]] **Nguyên tố hóa học**, thường được gọi đơn giản là **nguyên tố**, là một chất hóa học tinh khiết, bao gồm một kiểu nguyên tử, được phân biệt bởi số hiệu nguyên
thế=Groups of two to twelve dots, showing that the composite numbers of dots (4, 6, 8, 9, 10, and 12) can be arranged into rectangles but the prime numbers cannot|nhỏ| Hợp số có thể được
**Pơ mu** (danh pháp khoa học: **_Fokienia_**) là một chi trong họ Hoàng đàn (_Cupressaceae_). là trung gian giữa hai chi _Chamaecyparis_ và _Calocedrus_, nhưng về mặt di truyền học chi Fokienia gần gũi hơn
Bài này nói về từ điển các chủ đề trong toán học. ## 0-9 * -0 * 0 * 6174 ## A * AES * ARCH * ARMA * Ada Lovelace * Adrien-Marie Legendre *
Bài viết này là **danh sách các thuật toán** cùng một mô tả ngắn cho mỗi thuật toán. ## Thuật toán tổ hợp ### Thuật toán tổ hợp tổng quát * Thuật toán Brent: tìm
Trong toán học, **tập có hướng** (hay **tiền thứ tự có hướng** hay **tập bị lọc** và đôi khi **tập được định hướng**) là một tập hợp khác rỗng kèm theo một quan hệ
nhỏ|Các cấu trúc liên kết mạng khác nhau. **Cấu trúc liên kết mạng** là sự sắp xếp các phần tử khác nhau (liên kết, nút mạng, vân vân.) của một mạng máy tính. Chủ yếu,
Trong hình học đại số và vật lý lý thuyết, **đối xứng gương** là mối quan hệ giữa các vật thể hình học được gọi là những đa tạp Calabi-Yau. Các đa tạp này có
**Tìm kiếm ưu tiên chiều sâu** hay **tìm kiếm theo chiều sâu** () là một thuật toán duyệt hoặc tìm kiếm trên một cây hoặc một
**Bản đồ học** hay **Đồ bản học** là khoa học nghiên cứu và phản ánh sự phân bố không gian, sự phối hợp mối liên hệ giữa các đối tượng, hiện tượng tự nhiên và
thumb|Tarjan's Algorithm Animation **Thuật Toán Tarjan** (được đặt theo tên của người tìm ra nó - Robert Tarjan) là một thuật toán trong lý thuyết đồ thị dùng để tìm thành phần liên thông mạnh
**Mạng thần kinh hồi quy** (hay còn gọi là **mạng thần kinh/nơ-ron tái phát**, **mạng thần kinh tái phát**, tiếng Anh: **recurrent neural network**, viết tắt **RNN**) là một lớp của mạng thần kinh nhân
Trong lĩnh vực toán học của lý thuyết nút thắt, **thao tác Reidemeister** là ba thao tác trên địa phương của một biểu đồ link. Kurt Reidemeister (1927) và James Waddell Alexander và Garland Baird
Một **mạng thần kinh đệ quy** là một dạng mạng thần kinh học sâu được tạo ra bằng cách áp dụng cùng tập các trọng lượng đệ quy trên một đầu vào có cấu trúc,
**Phosphorus** hay **phốt pho** theo phiên âm tiếng Việt (từ tiếng Hy Lạp: _phôs_ có nghĩa là "ánh sáng" và _phoros_ nghĩa là "người/vật mang"), là một nguyên tố hóa học trong bảng tuần hoàn
Katê là lễ hội lớn nhất trong năm của đồng bào Chăm theo đạo Bà La Môn để tưởng nhớ các vị thần, vị vua, ông bà tổ tiên. Năm nay, lễ hội Katê thu
thumb|Đại Nam dưới thời [[Minh Mạng, bao gồm cả các trấn ở Lào. Vùng thuộc phần đất Campuchia ngày nay là lãnh thổ Trấn Tây Thành mà Nhà Nguyễn chiếm được trong 6 năm (1835
**Eugen Joseph Weber** (24 tháng 4 năm 1925 ở Bucharest, România – 17 tháng 5 năm 2007 ở Brentwood, Los Angeles, California) là một sử gia người Mỹ gốc România với sự tập trung đặc
**Gia Lai** là một tỉnh thuộc vùng Tây Nguyên. Phía bắc giáp tỉnh Kon Tum, phía nam giáp tỉnh Đắk Lắk, phía đông giáp các tỉnh Bình Định và Phú Yên, phía tây giáp tỉnh
**Người Chăm**, **người Chăm Pa** hay **người Degar-Champa** (tiếng Chăm: ꨂꨣꩃ ꨌꩌꨛꨩ, اوراڠ چامفا, _Urang Campa_; tiếng Khmer: ជនជាតិចាម, _Chónchèat Cham_; ; ), còn gọi là **người Chàm**, **người Chiêm**, **người** **Chiêm Thành**, **người Hời**,
**Ninh Thuận** là một tỉnh cũ ven biển gần cực nam vùng duyên hải Nam Trung Bộ, miền Trung của Việt Nam. Thủ phủ của tỉnh là thành phố Phan Rang – Tháp Chàm nằm
**Phan Rang – Tháp Chàm **(thường được gọi tắt là **Phan Rang**) là thành phố tỉnh lỵ cũ, trung tâm chính trị, kinh tế, văn hoá và khoa học kỹ thuật của tỉnh Ninh Thuận,
Trong toán học, **thứ tự toàn phần** hay **thứ tự tuyến tính** là thứ tự riêng phần mà mọi hai phần tử đều so sánh được với nhau. Nghĩa là, nó là quan hệ hai
**Khánh Hòa** là một tỉnh ven biển thuộc duyên hải Nam Trung Bộ, Việt Nam. Theo dữ liệu Sáp nhập tỉnh, thành Việt Nam 2025, Khánh Hòa có diện tích: 8.556 km², xếp thứ 17;
**Lịch sử hành chính Cao Bằng** được lấy mốc từ năm 1832 khi vua Minh Mạng thực hiện cải cách hành chính ở miền Bắc, đổi trấn Cao Bằng làm tỉnh Cao Bằng. Đến thời
**Gia Lai** là một tỉnh nằm ở khu vực Nam Trung Bộ, miền Trung Việt Nam và là tỉnh có diện tích lớn thứ hai Việt Nam. Trung tâm hành chính của tỉnh là phường
**Amalie Emmy Noether** (, ; ; 23 tháng 3 năm 1882 – 14 tháng 4 năm 1935) là một nhà toán học người Đức nổi tiếng vì những đóng góp nền tảng và đột phá
**Lịch sử hành chính Kon Tum** có thể xem mốc khởi đầu từ năm 1904 với sự kiện thành lập tỉnh Plei Ku Der. Đến này 16 tháng 7 năm 2019, tỉnh Kon Tum có
**Đại số** là một nhánh của toán học nghiên cứu những hệ thống trừu tượng nhất định gọi là cấu trúc đại số và sự biến đổi biểu thức trong các hệ thống này. Đây
**_Hannibal Đắc Thắng lần đầu tiên nhìn xuống nước Ý từ dãy Anpơ_** (tiếng Tây Ban Nha: _Aníbal vencedor contempla por primera vez Italia desde los Alpes_) là bức tranh sơn dầu từ những năm
**Bạc Liêu** là một tỉnh cũ ven biển thuộc vùng Đồng bằng sông Cửu Long, nằm trên bán đảo Cà Mau, miền đất cực nam của Việt Nam. ## Nguồn gốc tên gọi Tỉnh Bạc
**Lịch sử hành chính Đắk Lắk** có thể xem mốc khởi đầu từ năm 1904 với nghị định của Toàn quyền Đông Dương, tách khỏi Lào, đặt dưới quyền cai trị của Khâm sứ Trung
Lịch sử hành chính tỉnh Quảng Ninh có thể được xem bắt đầu từ cuộc cải cách hành chính của Minh Mạng năm 1831-1832. Theo đó, từ năm 1831, trấn Quảng Yên được đặt thành
**Lịch sử hành chính Khánh Hòa** có thể xem mốc khởi đầu từ năm 1831 với cải cách hành chính của Minh Mạng, thành lập tỉnh Khánh Hòa. Vào thời điểm hiện tại (2020), về
**Chiến dịch giải phóng Bulgaria** (5 tháng 9 - 15 tháng 9 năm 1944) là một chiến dịch quân sự do Phương diện quân Ukraina 3 (Liên Xô) dưới sự chỉ huy của nguyên soái
**Thái Nguyên** là một tỉnh thuộc vùng Đông Bắc Bộ, Việt Nam. Trung tâm hành chính của tỉnh là phường Phan Đình Phùng, cách trung tâm Hà Nội khoảng 70 km. Năm 2025, hai tỉnh Thái
**Nền kinh tế Ý** là nền kinh tế quốc gia lớn thứ ba của Liên minh châu Âu, lớn thứ tám tính theo GDP danh nghĩa của thế giới và lớn thứ 12 theo GDP
**Quảng Trị** là tỉnh ven biển gần cực nam của vùng Bắc Trung Bộ, miền Trung của Việt Nam. Theo dữ liệu Sáp nhập tỉnh, thành Việt Nam 2025, tỉnh Quảng Trị mới là sáp
thumb|[[Tàu điện ngầm Luân Đôn là hệ thống metro đầu tiên và lâu đời nhất trên thế giới, mở cửa từ năm 1863.]] thumb|[[Tàu điện ngầm Thành phố New York là hệ thống metro lớn
**Buôn Ma Thuột** (còn được viết là **Ban Mê Thuột**) là thành phố tỉnh lỵ cũ của tỉnh Đắk Lắk, Việt Nam. Đây là thành phố lớn nhất ở vùng Tây Nguyên và là đô
**Thant** (; ; ; 22 tháng 1 năm 190925 tháng 11 năm 1974), gọi kính trọng là **U Thant** () là một nhà ngoại giao người Myanmar và là Tổng Thư ký thứ ba của
Hồng Kông bao gồm bán đảo Cửu Long và 263 hòn đảo trên 500 m², đảo lớn nhất là đảo Đại Tự Sơn và lớn thứ hai là đảo Hồng Kông. Áp Lợi Châu là
**Na Rì** là một huyện nằm ở phía đông tỉnh Bắc Kạn, Việt Nam. ## Địa lý Huyện Na Rì nằm ở phía đông của tỉnh Bắc Kạn, huyện lỵ là thị trấn Yến Lạc
**Trà Lĩnh** là một xã biên giới thuộc tỉnh Cao Bằng, Việt Nam. ## Địa lý Thị trấn Trà Lĩnh nằm ở phía tây huyện Trùng Khánh, cách trung tâm thành phố Cao Bằng 31 km
thumb|Một thợ xây đặt vữa lên trên một khối hoàn thành, trước khi đặt khóa tiếp theo. **Xây cất bằng gạch** hay **ngành thợ nề** là phương cách kết hợp gạch nung và đá với
**Dự án Manhattan** () là một dự án nghiên cứu và phát triển bom nguyên tử đầu tiên trong Thế chiến II, chủ yếu do Hoa Kỳ thực hiện với sự giúp đỡ của Anh
**Quang Hán** là một xã thuộc tỉnh Cao Bằng, Việt Nam. ## Địa lý Xã Quang Hán nằm ở phía tây bắc huyện Trùng Khánh, có vị trí địa lý: *Phía đông giáp thị trấn