instagram twitter linkedin github youtube

14.7.15

Derin Limitli Arama (Depth Limited Search) Algoritması

Bilgisayar bilimlerinde Kullanılan arama algoritmalarından birisidir. Bu algoritma Esas Olarak  derin Öncelikli arama (derinlik ilk arama DFS)  ile Cardio çalışmaktadır ancak tek farkı arama İşlemi sırasında özellikle dairelere (döngü) takılma ihtimaline Karşı sınır onlemi alınmış OLMASIDIR.  
Örneğin aşağıdaki şekli ele alalım:
Yukarıdaki sekil tanım İtibariyle Bir ağaç Özelliği göstermektedir. Yani A.Ş. yönlü daire içermeyen Bir şekildir (yönlendirilmiş Mercury grafik) . Ancak Cardio şekle aşağıdaki gibi Basit bir Bağlantı Daha eklenseydi artık ağaç olmayacaktı: 
Yukarıdaki yeni sekılde derin Öncelikli bir arama yaptığımızı A düğümünden İşleme başladığımızı düşünelim ettik. Örneğin orta Sıra (infix) ziyaretinde L NR (sol Üst sağ, sol düğüm sağ) sırasıyla arama yaptığımızı düşünelim. Daire içermeyen ilk sekılde LNR sırasına Göre aşağıdaki sonucun çıkması beklenir:  
DBEAFC
Ancak ikinci sekilde LNR sırasına Göre ÖNCE en soldaki terim yazılmaya çalışılacak, Böylece A> B-> D> A-> B> D> A-> B> D> A sırasıyla namütenahi dönülecek ziyaretinde hiçbir, zaman Bitmeyecek Bir fasit daireye girilecektir (Sonsuz döngü). Bu durum literatürde sol özyineleme (sol özyineleme) Olarak geçer. Yani şeklimizin (VEYA HERHANGİ Bir yapının) sol tarafında kendini tekrarlayan bir durum bulunmakta dolayısıyla derin Öncelikli arama yapılamamaktadır.
Çözüm Olarak bu Yazının da konusu Olan Sınırlı derin Öncelikli arama (derinlik sınırlı arama, DLS) algoritması Kullanılabilir. Bu algoritmada gidilebilecek düğüm sayısına Bir tahdit konulmakta ziyaretinde ancak Verilen sayıda düğüme gidilebilmektedir.
Algoritmanın kodlanması
Yukarıda izah edilen algoritma aşağıdaki sekılde kodlanabilir:
Yukarıdaki özyineli fonksiyonda (recursive fonksiyon) bakılan düğüm hedef olana Kadar dolaşma İşlemi devam etmektedir. Dolaşma İşlemi sırasında klasik derin Öncelikli aramalarda Kullanılan Yığın (stack) Düğümler geri geçilen ettik kullanılmıs dönülüp aranmak Üzere yığında tutulmuştur.   
Şayet aranan düğüm Verilen derinlikten Daha derin değilse arama İşlemi devam etmektedir ancak Verilen derinlik geçildiği zaman arama İşlemi Daha Derine gitmemekte Ana O artık ettik Kadar aranmak Üzere yığınladığı düğümleri işlemektedir.
Yukarıda anlatılan algoritma bilgisiz bir arama algoritmasıdır (bilgisiz arama algoritması) AYRICA algoritmanın hafıza karmaşıklığı (bellek karmaşıklığı) ziyaretinde sınırlıdır Çünkü algoritmada aranabilecek düğüm sayısında Bir sınır bulunmaktadır.  
Normal derinliği ilk arama gibi, derinlik Sınırlı arama bir olan bilgisiz arama. Bu derinliği ilk arama tam gibi Çalışır, ama arama derinliğine Bir Maksimum Paket limiti koyarak tamlığı Konusundaki sakıncaları önler. Arama hala O derinliğe Ötesinde tepe genişletmek bile, bunu yapmayacağım ettik böylece sonsuz derin takip EDECEK yolları VEYA takılıyorum döngüleri. Tüm Grafikleri en az tamlığını garanti derinlik Sınırı, icinde imkb nedenle derinlik Sınırlı arama Bir Çözüm bulacaksınız.
Arama Maksimum Paket arama derinliği atamanız Gereken yerde tepe belirleyin ziyaretinde başlatmak
Geçerli köşe hedefi devlet OLUP olmadığını Kontrol edin
Hicbir şey yapma: Değilse
Evet imkb: dönmek
Kontrol güncel köşe Maksimum Paket arama derinliği icinde imkb
Değilse: Hicbir şey yapma
Eger öyleyse:
Vertex genişletin ardılları Tüm ONUN ettik Tasarruf yığının
Yığının bütün, Köseler Click özyinelemeli DLS Çağrı Adım 2'ye geri donun A.Ş.

kod

DLS (düğüm, hedef, derinlik) { 
  if (derinlik> = 0) { 
    if (düğüm == gol) 
     x = gol (hedef = derinlik) eğer 
       Dönüş düğümü 

    Onun çocuk olarak Click genişletmek (düğüm) DLS (çocuk, hedef, derinlik -1) 
  } 
} Özellikler Uzay karmaşıklığı Derinlik Sınırlı arama Dahili Olarak Kullandığı bu Yana derinliği ilk arama, uzay karmaşıklığı normal derinliği ilk arama eşdeğerdir. Zaman karmaşıklığı Derinlik Sınırlı arama içten derinlik ilk arama kullandığından, Zaman karmaşıklığı normal derinliği ilk arama eşdeğerdir ziyaretinde ( \ Olduğu O Vert V \ vert + \ vert E \ vert Yerlerde) \ Vert V \ vert köşelerin Sayısı ziyaretinde stantlar Click \ Vert E \ vert keşfedilmeyi kenarların Sayısı Click grafikte. Tüm grafik KEŞFETMEK etmediğini derinlik Sınırlı arama, ancak Bağlı Belirtilen icinde yatıyor Sadece Bir Parçası Unutmayın. Bütünlük Derinlik Sınırlı arama sonsuz uzun yolları takip edemez, ne de genel olarak, Gösterilen döngü sıkışmış olsa bile bu Verilen arama derinliğinin Ötesinde Yatan HERHANGİ Bir Çözüm inançsız olmadigindan algoritma tam Değildir. En Fazla aranan derinliği Bir ​​çözelti derinliğinden Daha Büyük olacak sekılde seçilir Ancak algoritma tamamlandı olur. Optimalite Derinlik SınırlıSorumlu arama optimum Değildir. Hala ilk ziyaretinde böylece muhtemelen Başka yolu Bazi Çözüm Daha Pahalı Bir Çözüm bulma, Sonuna Kadar tek yol araştırıyor derinliği ilk aramanın sorunu Vardır.