Approaches are described for discovering a formation associated with an agent group engaging in an activity over a window of time. A formation analysis system computes first and second results for an objective function based on first and second sets of role assignments for each agent in the agent group at first and second moments in time, respectively. The formation analysis system iterates by: replacing the first set of role assignments with the second set of role assignments, and determining whether completion criteria have been met based at least in part on comparing the first result with the second result. If the completion criteria have not been met, then the formation analysis system replaces the second set of role assignments with a third set of role assignments that associate each agent in the first agent group with a different role assignment in the third set of role assignments at a third moment in time. If the completion criteria have been met, then the formation analysis system determines the first formation based on the second result.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for discovering a first formation associated with a first agent group from a plurality of agent groups engaging in an activity over a window of time, comprising: computing a first result for an objective function based on a first set of role assignments that associate each agent in the first agent group with a different role assignment in the first set of role assignments at a first moment in time; computing a second result for the objective function based on a second set of role assignments that associate each agent in the first agent group with a different role assignment in the second set of role assignments at a second moment in time; performing an iteration step, the iteration comprising: replacing the first set of role assignments with the second set of role assignments; determining whether completion criteria have been met based at least in part on comparing the first result with the second result; and if the completion criteria have not been met, then replacing the second set of role assignments with a third set of role assignments that associate each agent in the first agent group with a different role assignment in the third set of role assignments at a third moment in time; or if the completion criteria have been met, then determining the first formation based on the second result. 2. The method of claim 1, wherein the objective function comprises a mean position associated with a role assignment in at least one of the first set of role assignments and the second set of role assignments. 3. The method of claim 1, wherein the objective function comprises an entropy value associated with a role assignment in at least one of the first set of role assignments and the second set of role assignments. 4. The method of claim 1, further comprising distinguishing the first agent group from all other agent groups in the plurality of agent groups based on the second result. 5. The method of claim 1, further comprising predicting a second formation associated with the first agent group based on at least one of the first formation and the second result. 6. The method of claim 1, wherein computing the second result comprises, for each data frame in a first plurality of data frames comprising spatiotemporal data for the first agent group, assigning a different role assignment from the second set of role assignments to each data point in a set of data points associated with the data frame. 7. The method of claim 6, further comprising: for each data frame in a second plurality of data frames comprising spatiotemporal data for the first agent group, assigning a different role assignment from a fourth set of role assignments to each data point in a set of data points associated with the data frame; computing a third result for the objective function based on the fourth set of role assignments; computing a difference between the second result and the fourth result; determining that the difference is below a threshold value; and retrieving at least a portion of the data frames in the second plurality of data frames. 8. The method of claim 6, further comprising: for each data frame in a second plurality of data frames comprising spatiotemporal data for the first agent group, assigning a different role assignment from a fourth set of role assignments to each data point in a set of data points associated with the data frame; computing a third result for the objective function based on the fourth set of role assignments; determining a second formation associated with the first agent group based on the third result; and detecting that the second formation is different from the first formation. 9. The method of claim 6, further comprising: for each data frame in a second plurality of data frames comprising spatiotemporal data for the first agent group, assigning a different role assignment from a fourth set of role assignments to each data point in a set of data points associated with the data frame; computing a third result for the objective function based on the fourth set of role assignments; retrieving a first statistic associated with the first plurality of data frames; and predicting a second statistic associated with the second plurality of data frames based on the first statistic, the second result, and the third result. 10. The method of claim 6, further comprising, for each data frame in the first plurality of data frames, normalizing the set of data points such that a mean value associated with the set of data points is equal to zero. 11. The method of claim 1, further comprising computing a position of an object of interest based on at least one of the first set of role assignments and the second set of role assignments. 12. The method of claim 1, wherein the position of the object of interest is further based on image data related to the object of interest from one or more image frames. 13. A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to discover a formation associated with a first agent group engaging in an activity over a window of time, by performing the steps of: computing a first result for an objective function based on a first set of role assignments that associate each agent in the first agent group with a different role assignment in the first set of role assignments at a first moment in time; computing a second result for the objective function based on a second set of role assignments that associate each agent in the first agent group with a different role assignment in the second set of role assignments at a second moment in time; performing an iteration step, the iteration comprising: replacing the first set of role assignments with the second set of role assignments; determining whether completion criteria have been met based at least in part on comparing the first result with the second result; and if the completion criteria have not been met, then replacing the second set of role assignments with a third set of role assignments that associate each agent in the first agent group with a different role assignment in the third set of role assignments at a third moment in time; or if the completion criteria have been met, then determining the first formation based on the second result. 14. The non-transitory computer-readable storage medium of claim 13, wherein the objective function comprises a mean position associated with a role assignment in at least one of the first set of role assignments and the second set of role assignments. 15. The non-transitory computer-readable storage medium of claim 13, wherein the objective function comprises an entropy value associated with a role assignment in at least one of the first set of role assignments and the second set of role assignments. 16. The non-transitory computer-readable storage medium of claim 13, further comprising distinguishing the first agent group from all other agent groups in the plurality of agent groups based on the second result. 17. The non-transitory computer-readable storage medium of claim 13, further comprising predicting a second formation associated with the first agent group based on at least one of the first formation and the second result. 18. The non-transitory computer-readable storage medium of claim 13, further comprising computing a position of an object of interest based on at least one of the first set of role assignments and the second set of role assignments. 19. The non-transitory computer-readable storage medium of claim 13, wherein the position of the object of interest is further based on image data related to the object of interest from one or more image frames. 20. A computing system, comprising: a memory that is configured to store instructions for a program; and a processor that is configured to execute the instructions for the program to discover a formation associated with a first agent group engaging in an activity over a window of time, by performing the steps of: computing a first result for an objective function based on a first set of role assignments that associate each agent in the first agent group with a different role assignment in the first set of role assignments at a first moment in time; computing a second result for the objective function based on a second set of role assignments that associate each agent in the first agent group with a different role assignment in the second set of role assignments at a second moment in time; performing an iteration step, the iteration comprising: replacing the first set of role assignments with the second set of role assignments; determining whether completion criteria have been met based at least in part on comparing the first result with the second result; and if the completion criteria have not been met, then replacing the second set of role assignments with a third set of role assignments that associate each agent in the first agent group with a different role assignment in the third set of role assignments at a third moment in time; or if the completion criteria have been met, then determining the first formation based on the second result.