IP Library Granted Patent US 11,036,903
Granted Patent B2
US 11,036,903 · App. 16/381,282 · Granted Jun 15, 2021

Data structures and processing methods for highly scalable simulation platforms

Inventor: Ilya Basin (Vienna, VA)
Assignee: NOBLIS, INC.
G06F30/20G06F16/2228G06F16/245G06F16/285
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,036,903
App. No.
16/381,282
Granted
Jun 15, 2021
Kind
B2
Abstract

Disclosed herein are systems and methods for simulating an environment over a plurality of intervals of in-simulation time by using a two-part data structure to represent agents or entities in the simulation. A system may create and store a data structure representing an agent in the simulation, wherein a first portion of the data structure represents characteristics of the agent at a present interval and a second portion of data structure represents characteristics of the agent at a future interval of the simulation. Also disclosed herein are systems and methods for executing a multi-agent simulation using multiple processing threads. A system may group a plurality of agents in the simulated environment into subsets associated respectively with nodes of the simulated environment, assign the subsets to respective separate processors of the system, and execute the simulation using separate processing threads associated respectively with the separate processors.

Claims (50)

1. A system for simulating an environment over a plurality of intervals of in-simulation time, comprising:

one or more processors; and

memory storing one or more programs, wherein the one or more programs are configured to be executable by the one or more processors to cause the system to:

create and store a data structure representing an agent in a simulation, wherein the data structure comprises a first portion representing one or more characteristics of the agent at a first time interval of the simulation and a second portion representing the one or more characteristics of the agent at a second time interval of the simulation;

configure the first portion to represent the one or more characteristics of the agent at a present interval of the simulation;

configure the second portion to represent the one or more characteristics of the agent at a future interval of the simulation;

execute the present interval of the simulation;

after executing the present interval of the simulation, reverse the configuration of the first portion of the data structure and the second portion of the data structure by configuring the first portion to represent the one or more characteristics of the agent at a new future interval of the simulation and configuring the second interval to represent the one or more characteristics of the agent at a new present interval of the simulation.

2. The system of claim 1 , wherein creating and storing the data structure comprises storing data representing an initial state of the agent in both the first portion and the second portion of the data structure.

3. The system of claim 1 , wherein:

configuring the first portion to represent the one or more characteristics of the agent at the present interval of the simulation comprises configuring data stored in the first portion as read-only data; and

configuring the second interval to represent the one or more characteristics of the agent at the future interval of the simulation comprises configuring data stored in the second portion as write-only data.

4. The system of claim 3 , wherein executing the present interval of the simulation comprises:

reading data regarding the one or more characteristics of the agent at the present interval from the first portion of the data structure; and

writing data regarding the one or more characteristics of the agent at the future interval to the second portion of the data structure.

5. The system of claim 4 , wherein writing data regarding the one or more characteristics of the agent at the future interval to the second portion of the data structure comprises writing data to each of a plurality of fields included in the second portion of the data structure.

6. A method for simulating an environment over a plurality of intervals of in-simulation time, comprising:

at a simulation system comprising one or more processors and storage:

creating and storing a data structure representing an agent in a simulation, wherein the data structure comprises a first portion representing one or more characteristics of the agent at a first time interval of the simulation and a second portion representing the one or more characteristics of the agent at a second time interval of the simulation;

configuring the first portion to represent the one or more characteristics of the agent at a present interval of the simulation;

configuring the second portion to represent the one or more characteristics of the agent at a future interval of the simulation;

executing the present interval of the simulation;

after executing the present interval of the simulation, reversing the configuration of the first portion of the data structure and the second portion of the data structure by configuring the first portion to represent the one or more characteristics of the agent at a new future interval of the simulation and configuring the second interval to represent the one or more characteristics of the agent at a new present interval of the simulation.

7. A non-transitory computer-readable storage medium for simulating an environment over a plurality of intervals of in-simulation time, wherein the storage medium stores instructions that, when executed by one or more processors of a simulation system, cause the simulation system to:

create and store a data structure representing an agent in a simulation, wherein the data structure comprises a first portion representing one or more characteristics of the agent at a first time interval of the simulation and a second portion representing the one or more characteristics of the agent at a second time interval of the simulation;

configure the first portion to represent the one or more characteristics of the agent at a present interval of the simulation;

configure the second portion to represent the one or more characteristics of the agent at a future interval of the simulation;

execute the present interval of the simulation;

after executing the present interval of the simulation, reverse the configuration of the first portion of the data structure and the second portion of the data structure by configuring the first portion to represent the one or more characteristics of the agent at a new future interval of the simulation and configuring the second interval to represent the one or more characteristics of the agent at a new present interval of the simulation.

8. The system of claim 1 , wherein configuring the first portion and the second portion comprises storing an indicator indicating that the first portion represents the one or more characteristics of the agent at the present interval and that the second portion represents the one or more characteristics of the agent at the future interval.

9. The system of claim 8 , wherein the indicator is stored separately from the data structure.

10. The system of claim 8 , wherein the indicator is stored as part of the data structure.

11. The system of claim 8 , wherein reversing the configuration of the first portion of the data structure and the second portion of the data structure comprises replacing the indicator.

12. The system of claim 8 , wherein reversing the configuration of the first portion of the data structure and the second portion of the data structure comprises modifying the indicator.

13. The method of claim 6 , wherein creating and storing the data structure comprises storing data representing an initial state of the agent in both the first portion and the second portion of the data structure.

14. The method of claim 6 , wherein:

configuring the first portion to represent the one or more characteristics of the agent at the present interval of the simulation comprises configuring data stored in the first portion as read-only data; and

configuring the second interval to represent the one or more characteristics of the agent at the future interval of the simulation comprises configuring data stored in the second portion as write-only data.

15. The method of claim 12 , wherein executing the present interval of the simulation comprises:

reading data regarding the one or more characteristics of the agent at the present interval from the first portion of the data structure; and

writing data regarding the one or more characteristics of the agent at the future interval to the second portion of the data structure.

16. The method of claim 6 , wherein configuring the first portion and the second portion comprises storing an indicator indicating that the first portion represents the one or more characteristics of the agent at the present interval and that the second portion represents the one or more characteristics of the agent at the future interval.

17. The non-transitory computer-readable storage medium of claim 7 , wherein creating and storing the data structure comprises storing data representing an initial state of the agent in both the first portion and the second portion of the data structure.

18. The non-transitory computer-readable storage medium of claim 7 , wherein:

configuring the first portion to represent the one or more characteristics of the agent at the present interval of the simulation comprises configuring data stored in the first portion as read-only data; and

configuring the second interval to represent the one or more characteristics of the agent at the future interval of the simulation comprises configuring data stored in the second portion as write-only data.

19. The non-transitory computer-readable storage medium of claim 16 , wherein executing the present interval of the simulation comprises:

reading data regarding the one or more characteristics of the agent at the present interval from the first portion of the data structure; and

writing data regarding the one or more characteristics of the agent at the future interval to the second portion of the data structure.

20. The non-transitory computer-readable storage medium of claim 7 , wherein configuring the first portion and the second portion comprises storing an indicator indicating that the first portion represents the one or more characteristics of the agent at the present interval and that the second portion represents the one or more characteristics of the agent at the future interval.

Assignments (2)
SECURITY INTEREST Recorded May 27, 2025
From: NOBLIS, INC.
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 071415/0887 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2019
From: BASIN, ILYA
To: NOBLIS, INC.
Reel/Frame 048892/0314 →
Continuity (2)
Provisional Application 62714837 · Aug 6, 2018
Related Publication 20200042658A1 · Feb 6, 2020
Cited By (1)
US 12,608,518