> Ana Sayfa > Yazılar

Graft Bağlantıları

Önceki yazıda graflardan grid şeklinde yapılar tasarlamıştık. Bu yazıda gridlerin arasındaki bağlantıları ve bu bağlantıların dinamik değişimine bakacağız. Eğer okumadıysanız öncelikle Graftlardan Gridlere yazımı okumanızı öneririm.

Bağlantıların Yönleri

Önceki yazıda sadece yönsüz bağlantılardan bahsettik. Yönsüz bağlantı düğümlerin her ikisine de bağlantı kurarlar. Böylece bir bağlantı ilişkide olduğu her iki nod içinde kullanılabilir durumda olur. Yönü bağlantılarda ise bağlantı sadece bir düğüm için tanımlanır, tek yönlüdür.

Burada görüldüğü gibi düğümü ile düğümü birbirine yönsüz bağlantı ile bağlıdır. Hangisinde olduğunun önemi olmadan birbirine bağlantıları vardır.

Yanındaki yönlü bağlantılı düğümlerde bağlantı tek yönlüdür. düğümünden düğümüne bağlantı ile gidilebilir fakat D düğümünden C düğümüne gidilemez.

Yönlü bağlantılar sayesinde oyunlarda tekrar bir kere geçildiği zaman tekrar aynı yoldan geri dönülemeyecek bağlantılar yapılabilir. Örnek olarak portal, yükseklikten düşüm veya akıntılı nehir gibi. Yönü ve yönsüz bağlantıları beraber kullanmanın en pratik yolu bütün yönleri tek yönlü yapmaktır. Yönsüz bağlantılarda ise her iki taraf için ayrı ayrı tek yönlü bağlantı kullanırız.

Bağlantı Ağırlıkları

Aslında bağlantılara istediğimiz her çeşit parametreyi verebiliriz. Ağırlıkta bunlardan biri ve en çok kullanılanı. Ağırlık aslında hareket bedeli anlamına gelir ve bir düğümden diğer düğüme gitmek için gereken birim maliyetidir. Aşağıdaki görselde bağlantı kalınlıkları ters orantılı olarak gösterilmiştir. Kalın bağlantılardan geçiş maliyeti daha düşükken ince bağlantılardan geçmek daha maliyetlidir. Bağlantı ağırlıkları daha sonra anlatacağım yol bulma algoritmalarında daha da anlam kazanacaktır.

Yukarıdaki bağlantıları tek tek incelersek yazdığım koda göre bağlantısının ağırlığı 1'dir. Ortadaki bağlantı olan bağlantısının ağırlığı 5'dir. Son olarak bağlantısının ağırlığı 1'dir.

            
        

Yönlü ve Ağırlıklı Grid yapısı

Griddeki her bir düğümü ve bu düğümlerin sahip olduğu bağlantıları aşağıdaki gibi gösterebiliriz

  1. Düğümler

  2. Herbir düğümün bağlantılarının kümesi

    A→ 
    AD
    B→ 
    BEBCBA
    C→ 
    D→ 
    DDDGDE
    E→ 
    EEEHEF
    F→ 
    FI
    G→ 
    GGGH
    H→ 
    HHHI
    I→ 
    II

Bağlantıların dinamik değişimi

Bağlantıları ağırlıklarını dinamik olarak değiştirebiliriz. Eğer bir bağlantının yok olmasını istiyorsak ta ona çok büyük bir ağırlık değeri veririz. Böyle teorik olarak bağlantı olmasına rağmen pratikte o bağlantı hiç kullanılmayacaktır.

Yukarıdaki görselde sürüklenebilir görseller bağlantıların ağırlığını arttırmaktadır. Sarı dörtgen bağlantıların ağırlığını biraz arttırmakta bu yüzden bağlantılar hala kullanılabilmektedir. Kırmızı dörtgen ise bağlantıların ağırlık maliyeti çok fazla arttırdığı için teorikte bağlantıyı yoketmese bile kullanımını pratikte ortadan kaldırmaktadır.