Davranış ağacı (yapay zeka, robotik ve kontrol)

testwiki sitesinden
12.31, 3 Ocak 2024 tarihinde imported>InternetArchiveBot tarafından oluşturulmuş 2677 numaralı sürüm (1 kitap ekle (20240102)) #IABot (v2.0.9.5) (GreenC bot)
(fark) ← Önceki sürüm | Güncel sürüm (fark) | Sonraki sürüm → (fark)
Gezinti kısmına atla Arama kısmına atla

Şablon:Öksüz

Şablon:Ortala

Davranış ağacı, bilgisayar bilimi, robotik, kontrol sistemleri ve video oyunlarında kullanılan matematiksel bir plan yürütme modelidir. Sonlu bir dizi görev arasındaki geçişleri modüler bir şekilde tanımlamaktadır. Güçleri, basit görevlerin nasıl uygulanacağı konusunda endişelenmeden, basit görevlerden oluşan çok karmaşık görevler oluşturma yeteneklerinden gelmektedir. Davranış ağaçları, bir davranışın ana yapı taşının bir durumdan ziyade bir görev olması arasındaki temel farkla, hiyerarşik durum makinelerine bazı benzerlikler sunmaktadır. İnsan anlayışının kolaylığı, davranış ağaçlarını daha az hataya açık hale getirmiştir. Davranış ağaçlarının diğer birkaç kontrol mimarisini genelleştirdiği gösterilmiştir.[1][2] Matematiksel olarak yönlendirilmiş dönsüz grafiklerdir.

Arka plan

Davranış ağaçları, bilgisayar oyunu endüstrisinden, oyuncu olmayan karakterlerin (NPC'ler) davranışını modellemek için güçlü bir araç olarak ortaya çıkmaktadır.[3][4][5][6] Halo, Bioshock ve Spore gibi yüksek profilli video oyunlarında yaygın olarak kullanılmıştır. Son çalışmalar, davranış ağaçlarını İHA, karmaşık robotlar, robotik manipülasyon ve çoklu robot sistemleri için çok görevli bir kontrol çerçevesi olarak önermektedir.[7][8][9][10][11][12] Davranış ağaçları artık Game AI ders kitaplarında[13][14] ve Unity (oyun motoru) ve Unreal Engine gibi genel oyun ortamlarında ele alınacak olgunluğa ulaşmıştır.

Davranış ağaçları, geliştirme paradigmaları için popüler hale gelmiştir. Sadece NPC'nin eylemlerini programlayarak ve ardından yaprak düğümleri eylemler olan ve iç düğümleri NPC'nin karar vermesini belirleyen bir ağaç yapısı (genellikle sürükle ve bırak yoluyla) tasarlayarak karmaşık bir davranış yaratabilmektedir. Davranış ağaçları görsel olarak sezgiseldir ve tasarlaması, test etmesi ve hata ayıklaması kolaydır. Diğer davranış oluşturma yöntemlerinden daha fazla modülerlik, ölçeklenebilirlik ve yeniden kullanılabilirlik sağlamaktadır.

Yıllar boyunca, davranış ağaçlarının çeşitli uygulamaları, olay güdümlü davranış ağaçlarına dönüşene kadar endüstrinin taleplerini karşılamak için hem verimlilik hem de yetenekler açısından gelişmeye devam etmiştir.[5][15] Olay güdümlü davranış ağaçları, ağacın dahili olarak yürütmesini nasıl idare ettiğini değiştirerek ve olaylara tepki verebilen ve çalışan düğümleri iptal edebilen yeni bir düğüm türü sunarak klasik davranış ağaçlarının bazı ölçeklenebilirlik sorunlarını çözmüştür. Günümüzde, olay güdümlü davranış ağacı kavramı bir standarttır ve basitlik için hala "davranış ağaçları" olarak adlandırılsalar da, uygulamaların çoğunda kullanılmaktadır.

Anahtar kavramlar

Bir davranış ağacı, düğümlerin kök, kontrol akış düğümleri veya yürütme düğümleri (görevler) olarak sınıflandırıldığı yönlendirilmiş bir ağaç olarak grafiksel şekilde temsil edilmektedir. Her bir bağlı düğüm çifti için giden düğüme ebeveyn, gelen düğüme alt düğüm denmektedir. Kökün ebeveyni ve tam olarak bir çocuğu(alt dalı) yoktur. Kontrol akış düğümlerinin bir ebeveyni ve en az bir çocuğu vardır. Yürütme düğümlerinin bir ebeveyni ve çocuğu yoktur. Grafiksel olarak, bir kontrol akış düğümünün çocukları, soldan sağa doğru sıralanarak onun altına yerleştirilmektedir.[16]

Bir davranış ağacının yürütülmesi, çocuğuna belirli bir sıklıkta işaretler gönderen kökten başlamaktadır. Bir onay işareti, bir çocuğun yürütülmesine izin veren etkinleştirici bir sinyaldir. Davranış ağacında bir düğümün yürütülmesine izin verildiğinde, yürütmesi henüz bitmemişse çalışıyor, hedefine ulaşmışsa başarılı, aksi takdirde başarısızsa üst öğeye bir durum döndürmektedir.

Kontrol akışı düğümü

Oluşturulduğu alt görevleri kontrol etmek için bir kontrol akış düğümü kullanılmaktadır. Bir kontrol akış düğümü, bir seçici (geri dönüş) düğümü veya bir dizi düğümü olabilmektedir. Alt görevlerinin her birini sırayla yürütmektedirler. Bir alt görev tamamlandığında ve durumunu döndürdüğünde (başarılı veya başarısız), kontrol akış düğümü bir sonraki alt görevi yürütüp yürütmemeye karar vermektedir.

Seçici (yedek) düğüm

Şablon:Ortala

Geri dönüş düğümleri, başarısız olmayan ilk çocuğu bulmak ve yürütmek için kullanılmaktadır. Bir geri dönüş düğümü, çocuklarından biri başarılı veya çalışır durumda olduğunda, başarı veya çalışıyor durum koduyla hemen geri dönmektedir. Çocuklar önem sırasına göre soldan sağa doğru işaretlenmektedir.

Kodda, bir geri dönüş kompozisyonunun algoritması şöyledir:

1 for i from 1 to n do (for i'den birer 1'er n'ye kadar do)
2     çocuk_durumu ← İşaret(çocuk(i))
3     if çocuk_durumu= çalışma
4         return çalışma
5     else if çocuk_durumu= başarı
6         return başarı
7 end
8 return başarısızlık

Sıra düğümü

Şablon:Ortala

Dizi düğümleri, henüz başarılı olmayan ilk çocuğu bulmak ve yürütmek için kullanılmaktadır. Bir dizi düğümü, alt öğelerinden biri başarısız veya çalışır durumda olduğunda (bkz. Şekil II ve aşağıdaki kod) durum koduyla hemen geri dönmektedir. Çocuklar sırayla soldan sağa doğru işaretlenmektedir.

Kodda, bir dizi bileşimi için algoritma şöyledir:

1 for i from 1 to n do (for i'den birer 1'er n'ye kadar do)
2     çocuk_durumu ← İşaret(çocuk(i))
3     if çocuk_durumu= çalışma
4         return çalışma
5     else if çocuk_durumu= başarı
6         return başarı
7 end
8 return başarısızlık

Matematiksel durum uzayı tanımı

Davranış ağaçlarının analizine kontrol teorisi araçlarını uygulamak için, üçlü grup olarak tanımlanmaktadır.[17]

Ti={fi,ri,Δt},

  • i ağacın indeksidir.
  • fi:nn adi fark denkleminin sağ tarafını temsil eden bir vektör alanıdır.
  • Δt bir zaman adımıdır.
  • ri:n{Ri,Si,Fi} iade durumudur.
  • Çalışma Ri,
  • Başarı Si,
  • Başarısızlık Fi dır.

Not: Görev, ebeveyni ve çocuğu olmayan dejenere bir davranış ağacıdır.

Davranış ağacı yürütme

Bir davranış ağacının yürütülmesi, aşağıdaki standart adi fark denklemleriyle tanımlanmaktadır:

xk+t(tk+1)=fi(xk(tk))

tk+1=tk+Δt

  • k ayrık zamanı temsil etmektedir.
  • xndavranış ağacı tarafından modellenen sistemin durum uzayıdır.

Sıra kompozisyonu

İki karar ağacı "Ti ve Tj" bir Sıra operatörü kullanılarak daha karmaşık bir davranış ağacı T0 olarak oluşturulabilir.

T0=sıra(Ti,Tj).

Ardından dönüş durumu ve T0 ile ilişkili vektör alanı f0 aşağıdaki gibi tanımlanmaktadır:

r0(xk)={rj(xk) eğer xk𝒮1ri(xk) aksi takdirde .

f0(xk)={fj(xk) eğer xk𝒮1fi(xk) aksi takdirde .

Ayrıca bakınız

Kaynakça

Şablon:Kaynakça

Dış bağlantılar

Şablon:Otorite kontrolü