Difference between revisions of "Gilgalad/movementStrategy"
(Updates) |
(more detailed description) |
||
Line 1: | Line 1: | ||
+ | =====Simplified explanation of Gilgalad's algorithm===== | ||
+ | |||
+ | Gilgalad keeps a log of past information for use when wave surfing. | ||
+ | |||
+ | Once certain events are detected (bullet passes, bullet hits, bullet collides, Gilgalad fires, or enemy fires) Gilgalad recalculates movement paths. | ||
+ | |||
+ | Gilgalad selects a [[wave]] to be the main surf wave. | ||
+ | |||
+ | Gilgalad first simulates movement clockwise and counter-clockwise at full speed with [[Precise Prediction]] until the wave breaks. | ||
+ | |||
+ | From this Gilgalad simulates going to each point on the first two paths. | ||
+ | |||
+ | Gilgalad selects the secondary surf wave for each point. | ||
+ | |||
+ | Gilgalad simulates movement full speed clockwise and counter-clockwise from here until the second wave breaks. | ||
+ | |||
+ | Gilgalad evaluates the danger of the path, accounting for [[Bullet Shadows]] and using the [[DC|kNN algorithm]]. | ||
+ | |||
+ | Gilgalad moves on the safest path. | ||
+ | |||
+ | |||
+ | |||
+ | Gilgalad also uses minimum risk movement when there are no waves to surf. | ||
+ | |||
Gilgalad uses goto wave surfing, which I chose because it doesn't waste time recalculating large portions of the movement path every turn, however, it does most of its calculations in one turn, which means that it has trouble with skipped turns even though the average time is much less than the allowed time per turn. To make up for this, the second wave is surfed in a limited fashion. Currently, Gilgalad will take at most the twenty best points on the first wave, and then calculates the minimum danger of the stop immediately point and the final points that could be reached while stopping for the second wave. | Gilgalad uses goto wave surfing, which I chose because it doesn't waste time recalculating large portions of the movement path every turn, however, it does most of its calculations in one turn, which means that it has trouble with skipped turns even though the average time is much less than the allowed time per turn. To make up for this, the second wave is surfed in a limited fashion. Currently, Gilgalad will take at most the twenty best points on the first wave, and then calculates the minimum danger of the stop immediately point and the final points that could be reached while stopping for the second wave. | ||
− | For estimating the dangers, Gilgalad currently uses fourteen classification schemes. It uses the K Nearest Neighbors algorithm, with many of the weights based off of Diamond. | + | For estimating the dangers, Gilgalad currently uses fourteen classification schemes. It uses the K Nearest Neighbors algorithm, with many of the weights based off of Diamond. Various classification schemes are enabled, an certain hit rates. |
To calculate the dangers, Gilgalad uses atan (which is the integral of 1 / (x^2 + 1)). This allows precise danger calculations which are easily adapted to bullet shadows. | To calculate the dangers, Gilgalad uses atan (which is the integral of 1 / (x^2 + 1)). This allows precise danger calculations which are easily adapted to bullet shadows. | ||
Gilgalad is the first robot to use variable bandwidth. | Gilgalad is the first robot to use variable bandwidth. | ||
− | |||
− | |||
− |
Latest revision as of 02:10, 29 December 2012
Simplified explanation of Gilgalad's algorithm
Gilgalad keeps a log of past information for use when wave surfing.
Once certain events are detected (bullet passes, bullet hits, bullet collides, Gilgalad fires, or enemy fires) Gilgalad recalculates movement paths.
Gilgalad selects a wave to be the main surf wave.
Gilgalad first simulates movement clockwise and counter-clockwise at full speed with Precise Prediction until the wave breaks.
From this Gilgalad simulates going to each point on the first two paths.
Gilgalad selects the secondary surf wave for each point.
Gilgalad simulates movement full speed clockwise and counter-clockwise from here until the second wave breaks.
Gilgalad evaluates the danger of the path, accounting for Bullet Shadows and using the kNN algorithm.
Gilgalad moves on the safest path.
Gilgalad also uses minimum risk movement when there are no waves to surf.
Gilgalad uses goto wave surfing, which I chose because it doesn't waste time recalculating large portions of the movement path every turn, however, it does most of its calculations in one turn, which means that it has trouble with skipped turns even though the average time is much less than the allowed time per turn. To make up for this, the second wave is surfed in a limited fashion. Currently, Gilgalad will take at most the twenty best points on the first wave, and then calculates the minimum danger of the stop immediately point and the final points that could be reached while stopping for the second wave.
For estimating the dangers, Gilgalad currently uses fourteen classification schemes. It uses the K Nearest Neighbors algorithm, with many of the weights based off of Diamond. Various classification schemes are enabled, an certain hit rates.
To calculate the dangers, Gilgalad uses atan (which is the integral of 1 / (x^2 + 1)). This allows precise danger calculations which are easily adapted to bullet shadows.
Gilgalad is the first robot to use variable bandwidth.