Karışık grafik, hem yönlendirilmiş hem de yönlendirilmemiş kenarlara sahip olabilen bir grafiktir. Alttaki yönlendirilmemiş grafiği, yönlendirilmiş kenarların yönelimlerinin unutulmasıyla elde edilir ve diğer yönde, karıştırılmamış her bir kenara bir yön atanarak karışık bir grafiğin bir yönelimi elde edilir. Bir kenar kümesi, yönlendirilmiş bir döngü oluşturmak üzere yönlendirilebiliyorsa, karışık bir grafikte bir döngü oluşturur. Karışık bir grafik, yalnızca ve hiç döngüsü yoksa döngüseldir.
Bunların hepsi standarttır ve asiklik karışık grafiklerden bahseden birçok yayınlanmış makale vardır. Bu nedenle, karışık grafiklerin döngüselliğini test etmek için aşağıdaki algoritma bilinmelidir:
Aşağıdaki adımları tekrarlayın:
- Herhangi bir döngünün parçası olamayacağından, gelen yönlendirilmiş kenarları ve olay yönlendirilmemiş kenarları olmayan tepe noktalarını kaldırın.
- Herhangi bir tepe noktasının gelen yönlendirilmiş kenarları yoksa ancak tam olarak bir olay yönlendirilmemiş kenarı varsa, yönlendirilmemiş kenarı kullanan herhangi bir döngü bu kenarda gelmelidir. Yönlendirilmemiş kenarı gelen bir yönlendirilmiş kenarla değiştirin.
Başka adım gerçekleştirilemediğinde durun. Sonuç boş bir grafikse, orijinal grafiğin mutlaka döngüsel olması gerekir. Aksi takdirde, kalan herhangi bir tepe noktasından başlayarak, her adımda, gelen bir kenardan geriye doğru takip eden veya geçerli tepe noktasına ulaşmak için kullanılan olmayan yönlendirilmemiş bir kenarı takip eden, tekrarlanan bir tepe noktası görülene kadar grafik boyunca geriye doğru izlenebilir. Bu tepe noktasının birinci ve ikinci tekrarı arasında takip edilen kenar sırası (ters sırada), karışık grafikte bir döngü oluşturur.
Karışık grafiklerle ilgili Wikipedia makalesinde çevrimsel olmayan karışık grafiklerden bahsediliyor, ancak bunların nasıl test edileceğinden bahsetmiyor, bu yüzden bu algoritma hakkında bir şeyler eklemek istiyorum, ancak bunun için yayınlanmış bir referansa ihtiyacım var. Birisi bana literatürde nerede (veya döngüselliği test etmek için herhangi bir algoritmanın) göründüğünü söyleyebilir mi?