Ugrás a tartalomhoz

behavior tree

A Wikiszótárból, a nyitott szótárból


Főnév

behavior tree (tsz. behavior trees)

  1. (informatika, mesterséges intelligencia) A Behavior Tree (BT) – magyarul: viselkedési fa – egy hierarchikus vezérlési struktúra, amelyet leggyakrabban robotikában, videojáték-fejlesztésben és mesterséges intelligenciában használnak összetett viselkedések felépítésére. Célja, hogy egyszerűen kombinálható, újrahasználható, moduláris viselkedési egységeket szervezzünk strukturált formába.



🌳 1. Mi az a viselkedési fa?

Egy behavior tree egy fa-alapú vezérlőrendszer, ahol minden csomópont (node) egy tevékenységet vagy döntést reprezentál. A fa gyökérből indul, és lefelé haladva dönt a rendszer a viselkedésről.


🧩 2. Alapelemek

Leaf node (levélcsomópontok)

  • Action node – végrehajt valamit (pl. “Mozogj előre”, “Támadj”)
  • Condition node – logikai feltételt ellenőriz (pl. “Látom az ellenséget?”)

🔀 Control nodes (vezérlőcsomópontok)

  • Sequence (→) – sorban végrehajt minden gyereket, amíg egyik nem bukik el
  • Selector (?) – kipróbálja a gyerekeket balról jobbra, amíg egy sikeres nem lesz
  • Parallel – egyszerre több gyereket futtat, és szabály szerint határozza meg a sikert



🔁 3. Hogyan működik?

Minden csomópont visszatérési értéke lehet:

  • SUCCESS – a művelet sikeresen végrehajtva
  • FAILURE – nem sikerült
  • RUNNING – még folyamatban van

Példa (Sequence):

→
├── Check Battery
├── Navigate to Target
├── Pick Up Object

→ Az egész sorozat akkor lesz sikeres, ha mindhárom alcsomópont sikeres.



🕹️ 4. Hol használják?

  • Videojáték AI: NPC-k döntéshozatala (pl. patrol, chase, attack)
  • Robotika: feladatok szekvenciálása (pl. elindul, felismer objektumot, elkerül akadályt)
  • Szimuláció: komplex viselkedések modellezése (pl. katonai, mentőrobot)
  • Önjáró rendszerek: drónok, robotjárművek szabályozása



⚖️ 5. Előnyök

  • Moduláris – könnyen újrahasználható komponensekből épül
  • Olvasható – vizuálisan jól ábrázolható, könnyen érthető
  • Skálázható – összetett rendszerek is építhetők belőle
  • Jobb, mint FSM (finite state machine) nagy rendszerekre: nem robban szét az állapottér



⚠️ 6. Hátrányok

  • ❌ Kevésbé rugalmas, ha nagyon sok feltétel és állapot van (komplex szabályrendszernél zavarossá válhat)
  • ❌ Nem feltétlenül optimális idő- vagy memóriaszempontból
  • ❌ Nincs beépített tanulási mechanizmus → nem adaptív (de kombinálható RL-lel)



🛠️ 7. Eszközök és implementációk

  • Behavior3.js (webes BT editor)
  • Unity (Pluggable AI, NodeCanvas, Behavior Designer)
  • ROS (BehaviorTree.CPP, py_trees)
  • Godot játékmotor (GDScript + behavior tree struktúra)



📚 8. Összefoglalás

A behavior tree:

  • Egy hierarchikus, döntésalapú vezérlési modell
  • Egyszerűen alkalmazható robotikában, játékokban és MI-ben
  • Képes strukturált, olvasható, újrahasználható viselkedési logikát biztosítani
  • Alternatívája vagy kiegészítője a véges állapotú automatáknak (FSM)