Grafik campuran adalah grafik yang mungkin memiliki tepi terarah dan tidak berarah. Grafiknya yang tidak diarahkan mendasari diperoleh dengan melupakan orientasi dari tepi yang diarahkan, dan di arah lain orientasi dari grafik campuran diperoleh dengan menetapkan arah ke setiap tepi yang tidak diarahkan. Seperangkat tepi membentuk siklus dalam grafik campuran jika dapat berorientasi untuk membentuk siklus terarah. Grafik campuran asiklik jika dan hanya jika tidak memiliki siklus.
Ini semua standar dan ada banyak makalah yang diterbitkan menyebutkan grafik campuran asiklik. Jadi algoritma berikut untuk menguji acyclicity dari grafik campuran harus diketahui:
Ulangi langkah-langkah berikut:
- Hapus semua titik yang tidak memiliki tepi terarah masuk dan tidak ada tepi tidak berarah, karena tidak dapat menjadi bagian dari siklus apa pun.
- Jika ada titik yang tidak memiliki tepi diarahkan masuk tetapi memiliki tepat satu insiden tepi tidak terarah, maka setiap siklus menggunakan tepi tidak diarahkan harus masuk di tepi itu. Ganti tepi yang tidak terarah dengan tepi yang diarahkan masuk.
Berhentilah ketika tidak ada lagi langkah yang dapat dilakukan. Jika hasilnya adalah grafik kosong, maka grafik asli pastilah asiklik. Kalau tidak, mulai dari titik mana pun yang tersisa, seseorang dapat mundur melalui grafik, pada setiap langkah mengikuti mundur melalui tepi masuk atau mengikuti tepi tidak diarahkan yang bukan yang digunakan untuk mencapai puncak saat ini, sampai melihat simpul berulang. Urutan tepi yang diikuti antara pengulangan pertama dan kedua dari simpul ini (dalam urutan terbalik) membentuk siklus dalam grafik campuran.
Artikel Wikipedia tentang grafik campuran menyebutkan grafik campuran asiklik tetapi tidak menyebutkan cara mengujinya, jadi saya ingin menambahkan sesuatu tentang algoritma ini, tetapi untuk itu saya perlu referensi yang diterbitkan. Dapatkah seseorang memberi tahu saya di mana itu (atau algoritma lain untuk menguji asiklik) muncul dalam literatur?