Miklix

Kruskal Algoritması Labirent Oluşturucu

Yayınlandı: 16 Şubat 2025 18:00:51 UTC
Son güncelleme: 12 Ocak 2026 08:59:24 UTC

Kruskal algoritmasını kullanarak mükemmel bir labirent oluşturan labirent jeneratörü. Bu algoritma, orta uzunlukta koridorlara ve birçok çıkmaz sokağa sahip, ayrıca oldukça düz bir çözüme sahip labirentler oluşturma eğilimindedir.

Bu sayfa, mümkün olduğunca çok kişi tarafından erişilebilir olması amacıyla İngilizce'den makine çevirisiyle çevrilmiştir. Ne yazık ki, makine çevirisi henüz mükemmelleştirilmiş bir teknoloji değildir, bu nedenle hatalar meydana gelebilir. Tercih ederseniz, orijinal İngilizce versiyonu buradan görüntüleyebilirsiniz:

Kruskal's Algorithm Maze Generator

Kruskal algoritması, labirent oluşturmak için uyarlanabilen minimum yayılma ağacı algoritmasıdır. Özellikle mükemmel labirentler oluşturmada etkilidir. Kruskal algoritmasına alternatif olarak, yine minimum yayılma ağacı algoritması olan Prim algoritması da vardır, ancak her ikisi de aynı labirentleri oluşturduğu ve Kruskal daha hızlı çalıştığı için Prim algoritmasını uygulamaya gerek duymadım.

Mükemmel bir labirent, labirentteki herhangi bir noktadan diğer herhangi bir noktaya tam olarak tek bir yolun olduğu bir labirenttir. Bu, daireler çizerek ilerleyemeyeceğiniz, ancak sık sık çıkmaz sokaklarla karşılaşacağınız ve sizi geri dönmeye zorlayacağınız anlamına gelir.

Burada oluşturulan labirent haritaları, herhangi bir başlangıç ve bitiş konumu olmayan varsayılan bir sürüm içerir, böylece bunlara kendiniz karar verebilirsiniz: labirentin herhangi bir noktasından başka bir noktaya bir çözüm olacaktır. İlham almak isterseniz, önerilen bir başlangıç ve bitiş konumunu etkinleştirebilir ve hatta ikisi arasındaki çözümü görebilirsiniz.


Yeni labirent oluşturun








Kruskal Algoritması Hakkında

Kruskal algoritması, Amerikalı matematikçi, istatistikçi ve bilgisayar bilimcisi Joseph Bernard Kruskal Jr. tarafından geliştirilmiştir. Algoritmayı ilk olarak 1956 yılında "Bir Grafın En Kısa Kapsayan Alt Ağacı ve Gezgin Satıcı Problemi Üzerine" adlı makalesinde tanımlamıştır.

Algoritma, döngülerden kaçınırken tüm köşelerin mümkün olan en düşük toplam kenar ağırlığıyla birbirine bağlı olmasını sağlayarak bir grafın minimum kapsayan ağacını (MST) bulmak üzere tasarlanmıştır.

Kruskal Algoritmasının Labirent Oluşturmada Çalışma Şekli

Adım 1: Başlatma

  • Labirentteki her hücreyi ayrı bir küme (benzersiz bir bileşen) olarak ele alın.
  • Komşu hücreler arasındaki tüm duvarları potansiyel kenarlar olarak listeleyin.

Adım 2: Duvarları Sıralayın

  • Duvarları karıştırın veya rastgele sıralayın. Gerçek bir Kruskal algoritması olarak uyguluyorsanız, duvarları rastgele bir sırada sıralayın (çünkü labirent oluşturma ağırlık gerektirmez).

Adım 3: Duvarları İşlemek

  • Karıştırılmış duvarlar arasında yineleme yapın.
  • Duvarla ayrılan iki hücre farklı kümelere aitse (yani labirentte henüz birbirine bağlı değillerse), duvarı kaldırın ve kümeleri birleştirin.
  • Eğer zaten aynı gruptaysalar, duvarı atlayın (döngüleri önlemek için).

Adım 4: Tamamlanana Kadar Devam Edin

  • Tüm hücreler birbirine bağlanıp tek bir yayılma ağacı oluşturana kadar bu işlemi tekrarlayın.
  • Sonuç olarak, her hücre döngüler veya izole bölümler olmaksızın diğerleriyle bağlantılıdır.

Kruskal algoritması kümeleri birleştirmeye dayandığı için, labirent oluşturma sırasında bağlantılı hücreleri izlemenin verimli bir yolunu sağlayan Birleştirme-Bulma algoritması kullanılarak optimize edilebilir. Birleştirme-Bulma algoritmasının PHP uygulamasını burada görebilirsiniz: Bağlantı

Daha Fazla Okuma

Bu yazıyı beğendiyseniz, şu öneriler de ilginizi çekebilir:


Bluesky'de paylaşFacebook'ta paylaşLinkedIn'de paylaşTumblr'da paylaşX'te paylaşLinkedIn'de paylaşPinterest'e Pinleyin

Mikkel Christensen

Yazar Hakkında

Mikkel Christensen
Mikkel miklix.com'un yaratıcısı ve sahibidir. Profesyonel bilgisayar programcısı/yazılım geliştiricisi olarak 20 yılı aşkın deneyime sahiptir ve şu anda büyük bir Avrupa BT şirketinde tam zamanlı olarak çalışmaktadır. Blog yazmadığı zamanlarda, boş zamanlarını çok çeşitli ilgi alanları, hobiler ve aktivitelerle geçirmektedir ve bu da bir dereceye kadar bu web sitesinde kapsanan konuların çeşitliliğine yansıyabilir.