Announcement

Collapse
No announcement yet.

New realistic search behaviour

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [WIP] New realistic search behaviour

    I've recently been cooking up some fun stuff trying to develop the best search AI. I'm tired of the seemingly lazy way that AI will give up on searching after a qualification such as "Time out of LoS" is achieved, and then they magically forget about it. Instead, I became determined to devise a way to solve this. And so, I have. My solution is simple, that instead of following a searching roam algorithm using randomly selected points over a proximity distribution to create psuedo intelligent search patterns for a period of time, instead my design searches the environment with EQS, forming a collection of convex shapes which include all areas which are currently out of the AIs line of sight. It then gets a set of all the places through the environment it can't go. It selects these areas in order of proximity to eachother, finding the nearest point to the previous and tracing a path through the environment that eventually visits at least one point from which any given shape previously unseen is seen in it entirety.

    Ive encountered a bit of a problem though as I try to improve this. One, is that occasionally shapes which have already been seen will be seen twice. I can tweak this through lazy approximation, and check if anywhere along the route is "close enough" and then look for a point near there which meets the qualifications. This works but everytime the route changes, this process becomes recursively more and more needed to create the perfect route. Secondly, the random chance is occasionally miraculously inefficient. I can solve this by generating 10 paths, and choosing the best among them. However, both of these solutions exponentially increase the processor time required to accomplish the goal as the size and complexity of the environment increases.

    I'm posting this to see if I can hopefully inspire some more mathematically inclined coders here to assist me in determining a way to efficiently generate the shortest path through a grid, such that there exists on the path at least one point from which an uninterrupted line can be traced to each corner of any given concave shape, that does not intersect with any shape from another given set. Any kind of thought, even an incomplete answer is welcome in developing this new form of AI search pathing.

    #2
    I think your approach is wrong. Why would you want to calculate the optimal path between countless nodes? I think humans only consider up to a couple places at a single time, when searching for an object. So you would only need to somehow find the top 3 most probable locations where you can find your target and then calculate the optimal path to travel to these three locations.

    You would of course randomly start reconsidering your options.

    Comment


      #3
      Originally posted by rYuxq View Post
      I think your approach is wrong. Why would you want to calculate the optimal path between countless nodes? I think humans only consider up to a couple places at a single time, when searching for an object. So you would only need to somehow find the top 3 most probable locations where you can find your target and then calculate the optimal path to travel to these three locations.

      You would of course randomly start reconsidering your options.
      Mostly, because I wanted the AI to search out the space, finding searching through the environment in the most effective, fast, and humanlike way possible. If you walk into a room, and don't spot what you're looking for, you make reasonable guesses based on the environemt about places it might be, such as behind the couch or under the table. You then move in the path that most effectively takes you to all these place in order of probability that your goal is there. its about searching based on blindspots

      Comment

      Working...
      X