User:Dsekercioglu/Thoughts on targeting

From Robowiki
Jump to navigation Jump to search

Introduction

When your robot fights against a weaker robot about %55 - %65 of the score comes from damage.

Prediction Technics

There are mainly 2 ways for predicting where the enemy will be.

  • 1. Angular Systems.
  • 2. Positional Systems.
Angular Systems
Positional Systems
Linear Targeting, Circular Targeting, Pattern Matching are used.
The most efficient system so far is Play It Forward.

Choosing the Correct Angle/Position

  • Oscillators change their direction periodically.
  • When close to walls some bots change direction.
  • Many bots tries to get away from the enemy when close.
  • Stop And Go bots move less when bullet float time is low.
  • Decelerating bots generally change direction.
Classification algorithms are used here to get the best prediction.
The most used 2 algorithms are KNN(DC) and VCS.

Choosing Attributes

Lateral Velocity
Lateral Velocity has a direct affect on enemy movement.
Simple movements generally keeps the velocity while moving.
It will be one of the highest weighted attributes you will have in your KNN algorithm. Lateral Velocity is always a good point to start with.
Lateral Acceleration
Lateral acceleration tells you if the bot is changing its direction.
It is one of the most important attributes as lateral acceleration makes a huge difference when combined with lateral velocity. There is a huge difference between (LatVel = 4, LatAcc = 1) and (LatVel = 4, LatAcc = -2).
Advancing Velocity
Advancing velocity helps you to understand if enemy is coming closer or moving away.
Useful against: Bots doing distancing, bots moving non-perpendicularly.
Advancing velocity is one of the less useful attributes in targeting but it is always useful.
Bullet Float Time
Helps to hit non perpendicular movement.
For example Walls, SpinBot.
If you are using guess factors Bullet Float Time is a must. Alone, it won't help much but combined it is arguably the most useful attribute.
Forward/Backward Wall MEA
Helps hit nearly any type of movement.
  • If a bot changes direction after hitting or before hitting the wall.
  • If a bot does wall smoothing
  • If a bot gets stuck in the corners
Forward MEA is a must if you want to have a powerful targeting system. Every bot will change how they react near walls as they are the boundaries of where you can move to.
Time Since Attributes
Useful against Oscillator,Stop And Go, Direction Based Random Movement.
Randomly Moving bots will probably have a random direction change algorithm based on a constant. Time since attributes will help your targeting system find the tendency of a bot changing directions.
I would say they are one of the less useful attributes but it certainly helps.
Lateral Distance Last X
Lateral Distance Last X is equivalent to Average Velocity Last X and gives you valuable information.
It works great against random movement.
It increased my bot's accuracy against robots like Aspid, DuelistMicro that stop and move randomly.


Shots Fired /Shots hit
These attributes will help you with data decay. Even if you are aiming to hit simple bots data decay helps.
Data decay is one of the attributes which will boost your score against learning movements.
Attribute Importance Ranking
This is more of a fun part but after having WhiteFang trained against multiple robots with the given attributes I found out that they were simply the how important the given attributes are.
Disclaimer: These are not perfect values nor the best ones since they have been generated by a Genetic Algorithm in less than one hour. However, it can give you a general idea about the attributes.
Lateral Acceleration: 9.02
Bullet Float Time: 8.151
Lateral Distance Last 10: 6.68
Lateral Velocity: 6.47
Wall Distance Forwards: 6.32
Advancing Velocity: 3.64
Time Since Deceleration: 2.74
Wall Distance Backwards: 0.98