İçeriğe atla

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

İki kollu bir robotun arama ve kavrama planını modelleyen davranış ağacı.

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

Şekil I. N görevin bir geri dönüş bileşiminin grafiksel gösterimi.

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ü

Şekil II. N görevin bir dizi bileşiminin grafiksel gösterimi.

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]

  • ağacın indeksidir.
  • adi fark denkleminin sağ tarafını temsil eden bir vektör alanıdır.
  • bir zaman adımıdır.
  • iade durumudur.
  • Çalışma ,
  • Başarı ,
  • Başarısızlık 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:

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

Sıra kompozisyonu

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

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

Ayrıca bakınız

Kaynakça

  1. ^ Colledanchise, Michele; Ögren, Petter (2017). "How Behavior Trees Modularize Hybrid Control Systems and Generalize Sequential Behavior Compositions, the Subsumption Architecture, and Decision Trees". IEEE Transactions on Robotics. 33 (2): 372-389. doi:10.1109/TRO.2016.2633567. 
  2. ^ Colledanchise, Michele; Ögren, Petter (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press. arXiv:1709.00084 $2. doi:10.1201/9780429489105. ISBN 978-1-138-59373-2. 
  3. ^ Isla, D. (2005). "Handling complexity in the Halo 2 AI". Game Developers Conference (Vol. 12). 11 Mayıs 2012 tarihinde kaynağından arşivlendi. 
  4. ^ Isla, D. (2008). Halo 3-building a better battle. Game Developers Conference 2008. 
  5. ^ a b Agis, Ramiro A.; Gottifredi, Sebastian; García, Alejandro J. (2020). "An event-driven behavior trees extension to facilitate non-player multi-agent coordination in video games" (PDF). Expert Systems with Applications. 155 (1): 113457. doi:10.1016/j.eswa.2020.113457. 26 Temmuz 2020 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 23 Haziran 2021. 
  6. ^ Lim, C. U.; Baumgarten, R.; Colton, S. (2010). "Evolving behaviour trees for the commercial game DEFCON" (PDF). Applications of Evolutionary Computation. Berlin: Springer. ss. 100-110. doi:10.1007/978-3-642-12239-2_11. ISBN 978-3-642-12238-5. 
  7. ^ Ögren, Petter (2012). "Increasing Modularity of UAV Control Systems using Computer Game Behavior Trees" (PDF). AIAA Guidance, Navigation and Control Conference, Minneapolis, Minnesota. ss. 13-16. 
  8. ^ Colledanchise, Michele; Marzinotto, Alejandro; Ögren, Petter (2014). "Performance Analysis of Stochastic BTs" (PDF). Robotics and Automation (ICRA), 2014 IEEE International Conference on. doi:10.1109/ICRA.2014.6907328. 2 Mart 2021 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 23 Haziran 2021. 
  9. ^ Marzinotto, Alejandro; Colledanchise, Michele; Smith, Christian; Ögren, Petter (2014). "Towards a Unified BTs Framework for Robot Control" (PDF). Robotics and Automation (ICRA), 2014 IEEE International Conference on. 
  10. ^ Klöckner, Andreas. "Interfacing BTs with the World Using Description Logic." In AIAA Guidance, Navigation and Control Conference, Boston, MA. 2013.
  11. ^ Klöckner, Andreas (2013). "Behavior Trees for UAV Mission Management". GI-Jahrestagung. ss. 57-68. 
  12. ^ Bagnell, J. Andrew; Cavalcanti, Felipe; Cui, Lei; Galluzzo, Thomas; Hebert, Martial; Kazemi, Moslem; Klingensmith, Matthew (2012). "An integrated system for autonomous robotics manipulation" (PDF). Intelligent Robots and Systems (IROS), 2012 IEEE/RSJ International Conference on. IEEE. ss. 2955-2962. doi:10.1109/IROS.2012.6385888. hdl:20.500.11937/14608. ISBN 978-1-4673-1736-8. 
  13. ^ Millington; Funge (2009). Artificial Intelligence for Games. CRC Press. ISBN 978-0-12-374731-0. 
  14. ^ Rabin, S. (2014). Game AI Pro. CRC Press. ISBN 978-1-4665-6596-8. 
  15. ^ Champandard, Alex J.; Dunstan, Philip (2012). "The Behavior Tree Starter Kit" (PDF). Game AI Pro: Collected Wisdom of Game AI Professionals. ss. 72-92. 
  16. ^ craft ai (2015). "BT 101 – Behavior Trees grammar basics". 26 Haziran 2015 tarihinde kaynağından arşivlendi. 
  17. ^ Colledanchise, Michele; Ögren, Petter (2014). "How Behavior Trees Modularize Robustness and Safety in Hybrid Systems" (PDF). In Intelligent Robots and Systems (IROS), 2014 IEEE/RSJ International Conference on. IEEE. 

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Grup teorisi</span> simetrileri inceleyen matematik dalı

Grup teorisi veya Grup kuramı, simetrileri inceleyen matematik dalıdır. Simetri kuramı olarak da adlandırılabilir. Bir nesnenin simetrileri ile kast edilen, nesneye uygulandığında nesneye hiçbir etki olmamış gibi sonuç veren dönüşümlerdir. Her nesnenin en az bir simetrisi vardır: hiçbir şey yapmadan olduğu gibi bırakma dönüşümü. Bahsettiğimiz dönüşümlerin tersleri de vardır ve aradığımız özellikleri sağlarlar. Son olarak da dönüşümlerin art arda yapılması, birleşimli bir işlemdir. Bu üç koşula sırasıyla birim elemana sahip olma, elemenların tersi olma ve grup işleminin birleşmeli olması denir. Bu kavramların matematikte soyutlanması, üzerinde tersinebilir ve bileşme özelliğine sahip ikili bir işlemin tanımlı olduğu kümeler ile yapılır. Daha detaylı açıklamak gerekirse, grup nesnesi bir küme G ve onun üzerinde tanımlı bir işleminden oluşur. Bu operasyonun aşağıdaki şartları sağlaması gereklidir:

<span class="mw-page-title-main">Türev</span> Fonksiyonun grafiğine çizilen teğetin eğimini hesaplama tekniğidir.

Matematikte türev, bir fonksiyonun tanımlı olduğu herhangi bir noktada değişim yönünü veya hızını veren temel bir kavramdır. Tek değişkenli bir fonksiyonun tanım kümesinin belli bir noktasında türevi, fonksiyonun grafiğine bu noktada karşılık gelen değerde çizilen teğet doğrunun eğimidir. Teğet doğru, tanım kümesinin bu noktasında fonksiyonun en iyi doğrusal yaklaşımıdır. Bu nedenle türev genellikle anlık değişim oranı ya da daha açık bir ifadeyle, bağımlı değişkendeki anlık değişimin bağımsız değişkendeki anlık değişime oranı olarak tanımlanır. Bir fonksiyonun türevini teorik olarak bulmaya türev alma denilir. Eğer bir fonksiyonun tanım kümesindeki her değerinde hesaplanan türev değerlerini veren başka bir fonksiyon varsa, bu fonksiyona eldeki fonksiyonun türevi denir.

Fonksiyon, matematikte değişken sayıları girdi olarak kabul edip bunlardan bir çıktı sayısı oluşmasını sağlayan kurallardır. Fonksiyon, 17. yüzyılda matematiğin kavramlarından biri olmuştur. Fizik, mühendislik, mimarlık ve birçok alanda kullanılmaktadır. Galile, Kepler ve Newton hareketlerin araştırılmasında, zaman ve mesafe arasındaki durumu incelemek için fonksiyonlardan faydalanmıştır. Dört işlemden sonra gelen bir işlem türüdür.

<span class="mw-page-title-main">Türev alma kuralları</span> Vikimedya liste maddesi

Türev, matematikteki ve özellikle diferansiyeldeki temel kavramlardan biridir. Aşağıda temel türev alma kuralları ve bazı fonksiyonların türev kuralları yer almaktadır.

<span class="mw-page-title-main">Bifurkasyon</span>

Bifurkasyon (dallanma), ilk kez Henri Poincaré tarafından yaratılan bir kavramdır.

<span class="mw-page-title-main">Navier-Stokes denklemleri</span> Akışkanların hareketini tanımlamaya yarayan denklemler dizisi

Navier-Stokes denklemleri, ismini Claude-Louis Navier ve George Gabriel Stokes'tan almış olan, sıvılar ve gazlar gibi akışkanların hareketini tanımlamaya yarayan bir dizi denklemden oluşmaktadır.

Matematikte karmaşık sayı, bir gerçel bir de sanal kısımdan oluşan bir nesnedir. a ve b sayıları gerçek olursa karmaşık sayılar şu biçimde gösterilirler:

Cisim, halka ve grup gibi soyut bir cebirsel yapıdır. Kabaca, elemanları arasında toplama, çıkarma, çarpma ve bölme yapılabilen ve bu işlemlerde sayılardan alışık olduğumuz temel aritmetik kurallarının geçerli olduğu bir küme olarak tanımlanabilir.

Olasılık kuramı ve istatistik bilim dallarında bir rassal değişken X için olasılık yoğunluk fonksiyonu bir reel sayılı sürekli fonksiyonu olup f ile ifade edilir ve şu özellikleri olması gereklidir:

Bağıntıda yansıma, simetri ve geçişme özelliği varsa bu bağıntı denklik bağıntısıdır.

Hermann von Helmholtz'un ardından adlandirilan Helmholtz denklemi veya indirgenmiş dalga denklemi

<span class="mw-page-title-main">Cebirsel topoloji</span>

Cebirsel topoloji, topolojik uzayları cebirsel gereç ve yöntemlerle inceleyen matematik dalı. Matematikte bir kümenin üzerine döşenecek yapı, yönelinen matematik dalını belirler. Bir kümeye bir ya da birkaç işlem konarak sayılar kuramı ya da cebir yapmaya başlanabilir. Kümenin üzerine bir topoloji koyaraksa topoloji ve, ayrıca uzunluk koyarsak, geometri yapmaya başlanır. Üzerine topoloji konmuş bir uzayı incelemek için kimi cebirsel, aritmetik veya topolojik değişmezler tanımlanır; bunlar aracılığıyla topolojik uzayın özellikleri ayırdedilir. Örneğin tıkızlık, bağlantılılık, sayılabilirlik bu tür değişmezlerdir. Topolojik eşyapısal iki uzaydan biri bu değişmeze sahipse diğeri de buna sahip olmalıdır. Yani, eğer iki uzay için ayrı ayrı bakılan bir değişmez aynı değilse, bu iki uzay eşyapısal olmayacaktır. Yukarıda anılan en eski değişmezlerin hemen ardından inşa edilen klasik değişmezler cebirsel olanlardır.

<span class="mw-page-title-main">Beta fonksiyonu</span>

Matematik'te, beta fonksiyonu, Euler integrali'nin ilk türüdür,

Merkle imzası, anahtarlama ağaçları ve sayısal imza şemalarını birleştiren bir veri doğrulama yapısıdır. Özet değeri tabanlı kriptografidir ve Merkle ağacı da denen özet değeri ağacını kullanmaktadır. Verileri Lampart imza algoritması gibi tek kullanımlık şekilde imzalar. Ralph Merkle tarafından 1970 sonu itibarıyla geliştirilmiştir ve RSA, Dijital İmza Algoritması gibi geleneksel dijital imzalara alternatif olmuştur.

Pólya'nın sayma teoremi, bir küme üzerindeki bir grup davranışının yörünge sayısını veren Burnside önsavını izleyen ve genelleştiren bir kombinatorik teoremidir. Teorem; ilk olarak 1927 yılında J. Howard Redfield tarafından yayımlanmış, 1937'de ise teoremin ortaya çıkardığı sonuçları birçok sayma problemine, özellikle kimyasal bileşiklerin sayımına uygulayarak büyük ölçüde yaygınlaştıran George Pólya tarafından yeniden keşfedilmiştir.

<span class="mw-page-title-main">Duran dalga</span>

Fizikte duran dalgalar, zamana göre salınım yapmasına rağmen belli bir bölgede sabit duran dalgalardır. Bu dalgaların uzayda herhangi bir noktadaki maksimum genliği zamana göre sabittir ve salınımları eş fazdadır. Bir duran dalgada genliğin minimum kaldığı noktalar düğüm (node), maksimum olduğu noktalar ise anti-düğüm (anti-node) olarak bilinir.

<span class="mw-page-title-main">Non-uniform rational B-spline</span>

Düzgün olmayan rasyonel temelli eğri, eğrileri ve yüzeyleri oluşturmak ve temsil etmek için bilgisayar grafiklerinde yaygın olarak kullanılan matematiksel bir modeldir. Hem analitik hem de modellenmiş şekilleri işlemek için büyük esneklik ve hassasiyet sunar. NURBS yaygın olarak bilgisayar destekli tasarım, imalat ve mühendislikte kullanılır ve IGES, STEP, ACIS ve PHIGS gibi çok sayıda endüstri çapında standardın parçasıdır. NURBS araçları ayrıca çeşitli 3B modelleme ve animasyon yazılım paketlerinde de bulunur. NURBS yüzeyleri, üç boyutlu uzayda bir yüzeye eşlenen iki parametrenin işlevleridir. Yüzeyin şekli kontrol noktaları ile belirlenir. NURBS yüzeyleri, kompakt bir biçimde basit geometrik şekilleri temsil edebilir. T-spline'lar ve alt bölme yüzeyleri, NURBS yüzeylerine kıyasla kontrol noktalarının sayısını iki kat azalttığı için karmaşık organik şekiller için daha uygundur. NURBS eğrilerini ve yüzeylerini düzenlemek oldukça sezgisel ve öngörülebilirdir. Kontrol noktaları her zaman doğrudan eğriye / yüzeye bağlanır veya bir lastik bantla bağlanmış gibi davranır. Kullanıcı arayüzünün türüne bağlı olarak, düzenleme, Bézier eğrileri için en açık ve yaygın olan bir elemanın kontrol noktaları aracılığıyla veya spline modelleme veya hiyerarşik düzenleme gibi daha yüksek seviyeli araçlar aracılığıyla gerçekleştirilebilir.

<span class="mw-page-title-main">AVL ağacı</span>

Bilgisayar bilimlerinde bir AVL ağacı kendi kendini dengeleyen bir İkili arama ağacıdır. Bu tip Veri yapılarının icat edilmiş ilk örneğidir. Bir AVL ağacında, iki çocuk alt ağacın uzunluk farklı en fazla bir olabilir; Eğer herhangi bir anda fark birden fazlaysa, dengeleme yapılarak bu özellik korunur. Arama, ekleme ve silme işlemlerinin hepsi hem ortalama hem de en kötü durumlarda O(log n) zaman sürer, burada harfi operasyon öncesindeki düğüm(node) adetidir. Ekleme ve çıkarma işlemleri ağacın bir veya daha fazla ağaç rotasyonları ile dengelenmesini gerektirebilir.

Rastgele yürüten algoritması, görüntü segmentasyonu için bir algoritmadır. Algoritmanın ilk açıklamasında, bir kullanıcı etkileşimli olarak az sayıda pikseli bilinen etiketlerle, örneğin "nesne" ve "arka plan" olarak etiketlemektedir. Etiketlenmemiş piksellerin her birinin rastgele bir yürüteç serbest bıraktığı düşünülmektedir. Her pikselin rastgele yürüteçlerinin ilk olarak her etiketi taşıyan bir tohuma ulaşma olasılığı hesaplanmaktadır. Yani bir kullanıcı her biri farklı bir etikete sahip K tohum yerleştirirse, o zaman gereklidir. Her piksel için, pikselden ayrılan rastgele bir yürüyenin her bir tohuma ilk varma olasılığını hesaplanır. Bu olasılıklar, bir lineer denklem sistemi çözülerek analitik olarak belirlenmektedir. Her piksel için bu olasılıkları hesapladıktan sonra, piksel, rastgele bir yürüteç gönderme olasılığı en yüksek olan etikete atanmaktadır. Görüntü, her pikselin komşu piksellere kenarlarla bağlanan bir düğüme karşılık geldiği ve kenarların pikseller arasındaki benzerliği yansıtacak şekilde ağırlıklandırıldığı bir grafik olarak modellenmektedir. Bu nedenle, rastgele yürüyüş ağırlıklı grafikte geçekleşmektedir.

<span class="mw-page-title-main">Trigonometrik polinom</span> Matematiksel bir fonksiyon

Sayısal analiz ve matematiksel analiz alt alanlarında, bir trigonometrik polinom, sin(nx) ve cos(nx) fonksiyonlarının sonlu bir doğrusal kombinasyonu olup n bir veya daha fazla doğal sayı değerini alır. Gerçel değerli fonksiyonlar için, katsayılar gerçel sayılar olarak alınabilir. Kompleks katsayılar için, böyle bir fonksiyon ile sonlu bir Fourier serisi arasında bir fark yoktur.