Permudah alur kerja Anda: Cari miniwebtool.
Tambahkan
Lihat juga
Kalkulator Jalur Terpendek DijkstraKalkulator Matriks KetetanggaanKalkulator Aliran Jaringan (Aliran Maksimum)
Beranda > Matematika > Operasi matematika tingkat lanjut > Kalkulator Pengurutan Topologi
 

Kalkulator Pengurutan Topologi

Hitung pengurutan topologi dari graf asiklik terarah (DAG) menggunakan algoritma Kahn atau DFS. Mendeteksi siklus, melaporkan jalur siklus, membangun tampilan lapisan eksekusi paralel, mendukung pengurutan leksikografis terkecil, dan menganimasikan setiap langkah pada graf interaktif.

Kalkulator Pengurutan Topologi
Format tepi: A -> B (juga menerima โ†’, =>, :). Maks 80 simpul / 800 tepi.
Algoritma Kahn (leksikografis) memberikan urutan unik yang dapat diproduksi ulang. DFS post-order adalah metode depth-first klasik.

Embed Kalkulator Pengurutan Topologi Widget

Tentang Kalkulator Pengurutan Topologi

Kalkulator Pengurutan Topologi menghitung pengurutan linier dari simpul-simpul dalam graf asiklik terarah (DAG) sedemikian rupa sehingga setiap tepi terarah dari u ke v menempatkan u sebelum v. Masukkan graf Anda sebagai daftar tepi atau daftar adjasensi dan alat ini akan mengembalikan urutan topologi menggunakan algoritma Kahn atau DFS post-order, mendeteksi siklus (dengan jalur siklus yang tepat), mengelompokkan tugas ke dalam lapisan eksekusi paralel, menghitung jumlah urutan yang valid, dan menganimasikan setiap langkah pada graf interaktif.

Apa itu pengurutan topologi?

Diberikan sebuah graf terarah G = (V, E), pengurutan topologi adalah pengaturan linier vโ‚, vโ‚‚, โ€ฆ, vโ‚™ dari simpul-simpulnya sedemikian rupa sehingga untuk setiap tepi terarah (u โ†’ v), u muncul sebelum v dalam pengaturan tersebut. Pengurutan topologi ada jika dan hanya jika graf tersebut tidak memiliki siklus terarah โ€” artinya, graf tersebut adalah sebuah DAG. Pengurutan ini jarang bersifat unik: sebuah graf dapat memiliki banyak pengurutan topologi yang valid ketika beberapa simpul memiliki in-degree nol pada saat yang sama.

Definisi urutan topologi
Permutasi (vโ‚, vโ‚‚, โ€ฆ, vn) dari V adalah topologis jika dan hanya jika
untuk setiap tepi (u โ†’ v) di E: posisi(u) < posisi(v)

Algoritma yang digunakan oleh kalkulator ini

Algoritma Kahn (berbasis BFS, 1962)

Algoritma Kahn adalah pengurutan topologi yang paling intuitif. Pada setiap langkah, algoritma ini memilih simpul dengan in-degree nol (tidak ada tepi masuk), menambahkannya ke hasil, dan "menghapus"-nya dari graf dengan mengurangi in-degree dari setiap penerusnya. Ketika beberapa simpul memiliki in-degree nol, penyelesaian kebuntuan dapat menggunakan min-heap (memberikan urutan terkecil secara leksikografis) atau antrean FIFO (memberikan urutan input). Algoritma Kahn berjalan dalam waktu O(|V| + |E|) dan berfungsi ganda sebagai detektor siklus: jika ada simpul yang masih memiliki in-degree > 0 setelah antrean kosong, graf tersebut memiliki siklus.

Algoritma Kahn (pseudocode)
Kahn(G):
  Q โ† { v โˆˆ V : indeg(v) = 0 }
  L โ† [ ]
  selama Q tidak kosong:
    u โ† Q.pop()
    L.append(u)
    untuk setiap tepi u โ†’ v:
      indeg(v) -= 1
      jika indeg(v) = 0: Q.push(v)
  jika |L| < |V|: laporkan siklus
  lainnya: kembalikan L

DFS post-order (Tarjan, 1976)

Algoritma DFS menjalankan pencarian depth-first, dan setiap kali sebuah simpul selesai (artinya semua penerusnya telah dieksplorasi sepenuhnya), simpul tersebut dimasukkan ke dalam tumpukan (stack). Membalikkan tumpukan di akhir menghasilkan urutan topologi yang valid. Deteksi siklus terjadi secara alami: menemukan simpul yang masih dalam proses (ditandai ABU-ABU) berarti tepi balik telah ditemukan, sehingga graf tersebut bukan DAG. DFS post-order juga berjalan dalam waktu O(|V| + |E|).

DFS post-order (pseudocode)
DFS-Topo(G):
  untuk setiap simpul u di V: color[u] โ† PUTIH
  L โ† tumpukan kosong
  untuk setiap simpul u di V:
    jika color[u] = PUTIH: kunjungi(u)
  kembalikan reverse(L)

kunjungi(u):
  color[u] โ† ABU-ABU
  untuk setiap tepi u โ†’ v:
    jika color[v] = ABU-ABU: laporkan siklus
    jika color[v] = PUTIH: kunjungi(v)
  color[u] โ† HITAM; L.push(u)

Lapisan eksekusi paralel

Tampilan berlapis dari sebuah DAG membagi simpul-simpulnya menjadi level-level sedemikian rupa sehingga setiap tepi mengarah dari level bernomor lebih rendah ke level yang lebih tinggi. Simpul dalam lapisan yang sama independen satu sama lain, sehingga dapat dieksekusi secara paralel. Jumlah lapisan sama dengan panjang jalur terpanjang ditambah satu โ€” ini adalah jalur kritis dari DAG, jumlah minimum putaran sekuensial yang diperlukan untuk menyelesaikan semua tugas bahkan dengan paralelisme tak terbatas. Kalkulator ini menghasilkan tampilan lapisan secara otomatis setiap kali inputnya adalah sebuah DAG.

Deteksi siklus

Jika graf mengandung siklus terarah, pengurutan topologi tidak mungkin dilakukan. Kalkulator kami melaporkan jalur siklus yang tepat (misalnya A โ†’ B โ†’ C โ†’ A) dan menyorot tepi siklus dengan warna merah pada visualisasi. Menghapus satu pun tepi pada siklus sudah cukup untuk memulihkan sifat asiklik.

Format input

Daftar tepi (Edge list)

Tulis setiap tepi terarah sebagai sumber -> target, dipisahkan oleh koma atau baris baru. Varian panah yang diterima: ->, โ†’, =>, -->, :. Anda juga dapat merantai tepi: A -> B -> C adalah singkatan untuk A->B dan B->C. Label simpul dapat berupa huruf, angka, garis bawah, tanda hubung, dan titik.

A -> B, B -> C, A -> C
C -> D
Kemeja -> Dasi -> Jaket

Daftar adjasensi (Adjacency list)

Tulis setiap simpul, titik dua, dan penerus langsungnya (simpul yang ditunjuknya). Simpul tanpa penerus tetap memerlukan barisnya sendiri, seperti D:.

A: B, C
B: D
C: D
D:

Cara menggunakan kalkulator ini

  1. Pilih format: Beralih antara daftar tepi dan daftar adjasensi dengan tombol radio.
  2. Masukkan graf: Tempel data Anda atau klik salah satu contoh cepat (urutan berpakaian, prasyarat kursus, target build, graf dengan siklus, dan lainnya).
  3. Pilih algoritma: Kahn leksikografis untuk urutan unik yang dapat diproduksi ulang; urutan input untuk mempertahankan urutan input; DFS post-order untuk metode depth-first klasik; atau Tampilkan semua untuk melihat setiap urutan berdampingan.
  4. Klik "Urutkan Secara Topologi": Urutan, deteksi siklus, tampilan lapisan, panjang jalur kritis, total jumlah pengurutan yang valid, dan graf interaktif akan muncul di bawah.
  5. Eksplorasi: Tekan Putar untuk melihat setiap simpul dikeluarkan langkah demi langkah. Badge in-degree akan diperbarui secara langsung. Geser simpul mana pun untuk mengatur ulang tata letak.

Aplikasi dunia nyata

Sistem build dan compiler

Alat seperti make, Bazel, Gradle, dan npm mengurutkan target build mereka secara topologi sehingga setiap target dikompilasi hanya setelah semua dependensinya selesai. Siklus dalam graf dependensi biasanya dilaporkan sebagai kesalahan fatal โ€” sistem build tidak dapat menentukan dari mana harus memulai.

Penjadwalan tugas

Manajer proyek menggunakan DAG untuk mencatat dependensi tugas. Pengurutan topologi memberikan urutan eksekusi yang valid, dan tampilan lapisan memberikan jumlah minimum putaran di bawah paralelisme tak terbatas. Rantai terpanjang adalah jalur kritis yang menentukan durasi proyek.

Perencanaan prasyarat mata kuliah

Katalog kursus universitas adalah sebuah DAG: tepi adalah hubungan prasyarat. Urutan topologi adalah rencana studi yang valid, dan lapisan-lapisan memberi tahu mahasiswa kumpulan kursus mana yang dapat mereka ambil secara paralel selama setiap semester.

Penghitungan ulang spreadsheet

Ketika sebuah sel berubah, spreadsheet harus menghitung ulang setiap sel hilir dalam urutan dependensi โ€” sebuah pengurutan topologi dari DAG dependensi sel. Referensi melingkar (siklus) akan ditolak oleh aplikasi.

Manajer paket dan pemuat plugin

Apt, pip, Homebrew, Maven, dan banyak kerangka kerja plugin menyelesaikan urutan instalasi atau pemuatan dengan mengurutkan DAG dependensi mereka secara topologi.

Resolusi simbol dan penjadwalan instruksi

Compiler menggunakan pengurutan topologi untuk mengurutkan deklarasi, dan CPU menggunakan DAG dependensi data untuk menjadwalkan instruksi dalam buffer urutan ulang tanpa melanggar hazard data.

Menghitung pengurutan topologi

Untuk sebuah DAG dengan n simpul, jumlah pengurutan topologi valid yang berbeda dapat berkisar dari 1 (untuk rantai yang terurut total) hingga n! (untuk graf tanpa tepi). Menghitung jumlah persisnya secara umum adalah masalah #P-complete, tetapi untuk graf hingga 16 simpul, kalkulator ini menghitungnya menggunakan formulasi bitmask dynamic-programming: f(S) = ฮฃ f(S โˆช {v}) untuk semua v โˆ‰ S yang pendahulunya semuanya ada di S.

Kompleksitas dan performa

Pertanyaan yang sering diajukan

Apa itu pengurutan topologi?

Pengurutan topologi dari graf asiklik terarah adalah pengurutan linier dari simpul-simpulnya sedemikian rupa sehingga setiap tepi terarah dari u ke v menempatkan u sebelum v. Ini mewakili urutan yang valid untuk memproses tugas-tugas yang menghormati dependensi mereka.

Algoritma mana yang digunakan kalkulator ini?

Kalkulator ini menjalankan algoritma Kahn dan DFS post-order. Algoritma Kahn berulang kali menghapus simpul dengan in-degree nol dan mengurangi in-degree penerusnya. DFS post-order menjalankan pencarian depth-first dan membalikkan urutan selesai. Keduanya berjalan dalam waktu O(|V| + |E|).

Bagaimana jika graf saya memiliki siklus?

Graf dengan siklus terarah tidak memiliki pengurutan topologi. Kalkulator mendeteksi siklus tersebut, menyorotnya dengan warna merah pada visualisasi, dan melaporkan jalur siklus yang tepat sehingga Anda dapat melihat tepi mana yang harus dihapus untuk menjadikan graf tersebut sebuah DAG.

Apa itu urutan topologi terkecil secara leksikografis?

Ketika banyak pengurutan topologi yang valid, yang terkecil secara leksikografis diperoleh dengan selalu memilih simpul terkecil secara alfabetis yang in-degree-nya nol pada setiap langkah. Mode default Kahn pada kalkulator ini mengembalikan urutan unik ini, yang stabil dan mudah diproduksi ulang.

Apa itu tampilan lapisan atau level?

Tampilan lapisan mengelompokkan simpul berdasarkan panjang jalur terpanjang dari sumber mana pun. Simpul dalam lapisan yang sama tidak memiliki dependensi di antara mereka, sehingga dapat dijalankan secara paralel. Jumlah lapisan sama dengan rantai dependensi terpanjang ditambah satu dan memberikan jumlah putaran paralel minimum yang diperlukan untuk menyelesaikan semua tugas.

Dapatkah sebuah graf memiliki banyak pengurutan topologi yang valid?

Ya. Jika pada langkah apa pun algoritma Kahn memiliki beberapa simpul dengan in-degree nol, salah satunya dapat dipilih berikutnya. Kalkulator ini menghitung jumlah persis pengurutan topologi yang berbeda untuk graf hingga 16 simpul.

Apa perbedaan antara algoritma Kahn dan DFS post-order?

Kahn bekerja secara top-down: ia berulang kali memilih sumber (in-degree 0) dan mengeluarkannya terlebih dahulu. DFS post-order bekerja secara bottom-up: ia menyelesaikan muara (sink) terlebih dahulu dan menambahkannya ke depan urutan. Keduanya adalah O(|V| + |E|) dan menghasilkan pengurutan topologi yang valid, tetapi biasanya berbeda. Kahn lebih mudah diparalelkan dan diadaptasi untuk pengurutan leksikografis; DFS lebih mudah digabungkan dengan analisis berbasis DFS lainnya seperti komponen terhubung kuat.

Berapa ukuran graf maksimum yang didukung alat ini?

Kalkulator mendukung hingga 80 simpul dan 800 tepi. Penghitungan jumlah total pengurutan topologi yang valid dibatasi hingga 16 simpul karena masalahnya adalah #P-complete dan ruang status tumbuh sebesar 2โฟ. Visualisasi interaktif dan animasi algoritma dapat diskalakan dengan lancar hingga ukuran penuh.

Bacaan Selanjutnya

Kutip konten, halaman, atau alat ini sebagai:

"Kalkulator Pengurutan Topologi" di https://MiniWebtool.com/id/kalkulator-pengurutan-topologi/ dari MiniWebtool, https://MiniWebtool.com/

oleh tim miniwebtool. Diperbarui: 20 Apr 2026

Anda juga dapat mencoba Penyelesai Matematika AI GPT kami untuk menyelesaikan masalah matematika Anda melalui pertanyaan dan jawaban dalam bahasa alami.

Operasi matematika tingkat lanjut:

Alat unggulan:

Pembagi Kelompok AcakKalkulator Zodiak Matahari, Bulan & Ascendant ๐ŸŒž๐ŸŒ™โœจKalkulator Kecocokan CintaKompresor VideoKompres PDFPengacak DaftarNama Generator AcakPengacak NomorKalkulator NumerologiKalkulator Persentase KenaikanKonverter DMS ke Derajat DesimalKalkulator UsiaGabungkan VideoKonverter Desimal ke BinerPembuat Teka Teki SilangGenerator Bracket Turnamen AcakBerapa Nomor Keberuntungan Saya?Generator Acak KataKalkulator Pace LariMengurutkan Berdasarkan AbjadKalkulator Durasi WaktuKonverter Biner ke DesimalKalkulator Nomor NamaKonverter Ukuran FilePembuat Kode MorsePemilih Nama AcakHuruf Kecil Huruf BesarKonverter FPSKonverter Desimal ke OktalMengacak AngkaPencarian ID Pengguna InstagramKonverter Biner ke OktalHapus Nomor BarisUrutkan Angkakonverter ppm ke persenKonverter Persen ke PPMKonverter Oktal ke BinerKalkulator Pengurangan PersenKalkulator TanggaGenerator Teks Kecil โฝแถœแต’แต–สธ โฟ แต–แตƒหขแต—แต‰โพKalkulator Membandingkan PecahanKalkulator Nomor MingguKalkulator hasil bagi dan sisaLooper MP3Pencari KerjaKonverter Hex ke DesimalGenerator Kode BatangKalkulator Defisit KaloriTabel Periodik Interaktifโฑ๏ธ Kalkulator JamKalkulator Rasio Kompresi MesinKonverter Oktal ke DesimalKonverter Lbs ke KgKalkulator Notasi IlmiahPemisah AudioTeks TerbalikGenerator Skema WarnaKalkulator OktalHapus SpasiKalkulator Ukuran Cetak dan Resolusi (DPI/PPI)Kalkulator AtapKalkulator Hari dalam Tahun - Hari ke Berapa Hari Ini?Panduan Ukuran Gambar Media SosialPembagi GambarPemilih Nomor AcakKalkulator Angka PentingKalkulator Angka TakdirKonverter Biner ke HexKalkulator Deviasi Standar RelatifKalkulator Golongan DarahGenerator AnagramKalkulator Teorema PythagorasKalkulator SinusKalkulator Konversi Oktal ke Hexadesimalโฑ๏ธ Timer Hitung MundurGenerator Truth or Dare AcakPencarian ID Pengguna FacebookGenerator PaletKalkulator Akar KuadratGenerator Kartu Kredit Acak๐Ÿ“… Kalkulator TanggalParafrase AIGenerator Teka-Teki Cari KataKalkulator Jumlah DigitKonverter Desimal ke HeksadesimalKalkulator Pecahan ke DesimalHari Per BulanKalkulator Keliling ElipsKalkulator Konversi GajiKalkulator PembulatanKalkulator PerkalianPembuat Huruf AcakPemeriksa Nama Pengguna Media SosialPemilih AcakPengembang Kalimat AIGabungkan PDFGenerator Nomor LotereKalkulator Hari KelahiranKalkulator KomisiKalkulator Massa MolarKalkulator Posisi MatahariKonverter Hex ke BinerKalkulator KecepatanKalkulator Model Diskon DividenKalkulator Penurunan Berat BadanKalkulator Usia KehamilanPemotong Video๐Ÿ–ฑ๏ธ Penghitung KlikHumanizer Teks AIKalkulator IRRKalkulator Nilai SekarangDaftar Tahun KabisatGenerator Kartu Remi AcakKalkulator Tanda Venus๐Ÿฅง Pembuat Diagram LingkaranPenghitung karakterGenerator Aku Tidak PernahKalkulator Bilangan KompleksKalkulator Faktor PrimaKalkulator Harga SatuanKalkulator Hasil DividenKalkulator Kode Warna ResistorKalkulator kVAKalkulator Log (Logaritma)Kalkulator MarkupKalkulator NPVKalkulator Persentaseโฌ› Kalkulator Rasio AspekKalkulator Ukuran BanKonverter Angka Romawi๐Ÿ” Pemeriksa PlagiarismeGenerator Nama FantasiGenerator Kue KeberuntunganGenerator Ide MenggambarGenerator Prompt JurnalGenerator Afirmasi HarianGenerator PujianGenerator GombalanGenerator Lelucon Bapak-BapakGenerator Lelucon AcakGenerator Fakta AcakGenerator Pertanyaan TriviaGenerator Kata HangmanGenerator Kata PictionaryGenerator Tebak GayaGenerator Pertanyaan Pencair SuasanaGenerator Kamu Pilih yang ManaGenerator Pertanyaan AcakPenafsir Mimpi AIGenerator Ucapan Terima Kasih AIGenerator Pidato Pernikahan AIGenerator Siaran Pers AIGenerator Deskripsi Produk AIGenerator Skrip Video AIGenerator Judul dan Deskripsi YouTube AIGenerator Caption Instagram AIGenerator Judul dan Bio LinkedIn AIGenerator Poin Resume AIGenerator Surat Lamaran Kerja AIGenerator Lirik Rap AIAlat Ratakan PDFBuka Kunci PDF (Hapus Kata Sandi Pemilik)Ekstraktor PDF ke TeksEkstraktor Halaman PDFPenghitung Kata PDFLindungi PDFTambah Nomor Halaman ke PDFSusun Ulang Halaman PDFHapus Halaman PDFPutar PDFJPG ke PDFPDF ke JPGPisahkan PDFKonverter PT ke PXKonverter PX ke REMKonverter Tola ke GramKonverter Satuan Lahan IndiaKonverter Mcg ke MgGenerator Lirik Lagu AIGenerator Puisi AIGenerator Cerita AIPenerjemah AIPeringkas Teks AIKonverter Mg ke MlKonverter MPH ke KMH / KMH ke MPHKonverter Knot ke MPHKonverter Meter Kubik ke Kaki KubikKonverter Kaki Kubik ke Yard KubikKonverter Kaki Persegi ke Meter PersegiKonverter Meter Persegi ke Kaki PersegiKonverter Oz ke MLKonverter ML ke OzKonverter Galon ke LiterKonverter Liter ke GalonKonverter Kg ke StoneKonverter Stone ke KgKonverter Inci ke MilimeterKonverter Milimeter ke InciKonverter Mil ke KmKonverter Km ke MilKonverter Fahrenheit ke CelsiusKonverter Celsius ke FahrenheitKalkulator Ukuran RanselKalkulator Volume Papan SelancarKalkulator Ukuran Grip Raket TenisKalkulator Ukuran HelmKalkulator Ukuran Sarung TanganKonverter Ukuran TopiKalkulator Ukuran SnowboardKalkulator Ukuran SkiKalkulator Ukuran SepedaPengatur Waktu Split SpeedrunKalkulator StablefordKalkulator Checkout DartKalkulator Economy BowlingKalkulator Strike Rate KriketKalkulator Net Run RateKalkulator Rasio K/DKalkulator Rating EloKalkulator Pemulihan Detak JantungKalkulator Waktu HikingKalkulator Pace MendayungKalkulator Age-Grading LariKalkulator FTP & Zona DayaKalkulator Beep TestKalkulator Skor ACFTKalkulator Wilks & DOTSKalkulator Offset RodaPencarian Indeks Beban & Rating Kecepatan BanKalkulator Biaya per MilKalkulator Pembelian LeasingKalkulator Campuran OktanKalkulator Campuran Oli 2 TakKalkulator Kapasitas MesinKalkulator Sofa Muat PintuKalkulator Cord Kayu BakarKalkulator CADR Pembersih UdaraKalkulator Ukuran DehumidifierKalkulator Ukuran Kipas Angin Langit-LangitKalkulator Ukuran TiraiKalkulator Ukuran KarpetKalkulator Tinggi Menggantung BingkaiKalkulator Ketinggian Pemasangan TVKalkulator Ukuran TVKalkulator Volume dan Liner KolamKalkulator Garam Kolam RenangKalkulator Volume Kolam RenangKalkulator Ukuran Pemanas AirKalkulator Resin EpoksiKalkulator Jarak BalusterKalkulator Plin & TrimKalkulator Pelapis DindingKalkulator Pewarna DekKalkulator Benih RumputKalkulator Rumput GulungKalkulator AspalKalkulator Yard KubikKalkulator Panjang AntenaKalkulator Pengisian KonduitKalkulator Kapasitor Seri dan ParalelKalkulator Reaktansi InduktifKalkulator Pencahayaan RuanganKalkulator Lux ke LumenKonverter Lumen ke WattKalkulator Ukuran GeneratorKonverter mAh ke WhKalkulator Daya 3 FasaKalkulator Ampere ke WattKalkulator Watt ke AmpereKalkulator Resistor SeriKalkulator GesekanKalkulator Bidang MiringKalkulator Keuntungan MekanisKalkulator Kecepatan SuaraKalkulator Kecepatan GelombangKalkulator Daya ApungKalkulator Kecepatan TerminalKalkulator Panjang Gelombang de BroglieKalkulator Energi FotonKalkulator E=mcยฒKalkulator Dilatasi WaktuKalkulator Hukum Ketiga KeplerKalkulator Kecepatan LepasKalkulator Gaya GravitasiKalkulator Hukum Beer-LambertKalkulator Persamaan NernstKalkulator Tekanan OsmotikKalkulator Kenaikan Titik DidihKalkulator Penurunan Titik BekuKalkulator Komposisi PersenKalkulator NormalitasKalkulator MolalitasKonverter pKa ke KaKalkulator Henderson-HasselbalchKalkulator Hasil TeoretisKalkulator Reaktan PembatasKalkulator Konfigurasi ElektronGenerator Rencana Pembelajaran AIGenerator Kuis AIGenerator Sitasi APA/MLA/ChicagoKalkulator Persentase KehadiranKalkulator Skor APKalkulator Skor ACTKalkulator Skor SATKalkulator Penghasilan YouTubeGenerator Karakter RPG Acak