<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I don't recall the details of what makes David's subsumption
      unique. In my first NASA competition I used subsumption with a
      unique twist. There was a behavior that would switch the
      subsumption list being used.</p>
    <p> If you're not familiar with subsumption is is a list of
      behaviors or actions. Every cycle the list begins again until one
      of the behaviors "fires". The processing starts again at the
      beginning of the list. That's simplified but gives the idea. I
      actually found that setting a flag and letting the list finish
      processing also worked. Once the flag was any following behavior
      would not "fire" but it could record information. That was useful
      for handling behaviors that did a timing function.</p>
    <p>Since then I've moved to behavior trees (BT) which are used in
      robotics and for autonomous actors in games. That shooter coming
      after you is driven by a BT. Subsumption is actually subsumed
      (ha!) by BTs as one of the techniques used in the trees. <br>
    </p>
    <p>Subsumption is basically an OR operation, just like a logic gate.
      If one behavior fires the overall  gate becomes true and returns
      to a higher level in the tree. There is also an AND operation
      where all the behaviors must fire before returning true. If one
      fails to fire a false is returned. The other main operation is NOT
      which is an inverter of the output of a list. <br>
    </p>
    <p>There is a lot written about BTs but not as logic gates as I've
      described them. I have code which does this but need to update it
      for C++20. Once I complete that revision I want to look at
      learning using BTs, i.e. adding new behaviors including expanding
      the trees. An advantage of treating them as logic gates is boolean
      algebra is applicable which allows simplifying trees using some
      well known techniques. After learning a larger tree can be trimmed
      to a more compact but logically equivalent representation. <br>
    </p>
    <p><br>
    </p>
    <div class="moz-signature"><font face="Comic Sans MS"
        color="#000080"> <br>
        -73 - <br>
        <b>Rud Merriam K5RUD</b> <br>
        <a href="http://mysticlakesoftware.com/"> <i>Mystic Lake
            Software</i> </a> <br>
        <br>
      </font>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <blockquote type="cite"
cite="mid:CABfe6oQAJpE-HK2GL-cCtjiUxm7RjLJ-NA5qhH7sOevZKtG5VQ@mail.gmail.com">Thanks
      for the reply.  I think that perhaps part of the reality is that I
      have developed a subsumption based reactive navigation method that
      I believe is fairly unique --- the only other people I've
      encountered that do the same have learned it from me.  </blockquote>
  </body>
</html>