Graphic Edition - by Amit Cohen & Aviv Galily
Students Project for Java Course - The Academic College of Tel Aviv - Yaffo
The described system is a simulation framework designed to model the effects of proposed laws and changes in various scenarios on a simulated population. The system's motivation lies in providing decision-makers, like lawmakers, with the tools to predict the potential outcomes of policy changes before they are implemented. The system is centered around the Knesset's research institute, which employs various analysis techniques to forecast the effects of new bills on the state and its citizens.
Key Components:
-
World: The central component of each simulation, the world defines entities and their relationships. The population consists of various types of entities, each with defined properties. A timeline advances in discrete steps, allowing for the application of laws and changes to entities over time.
-
Entities: Representing individuals in the simulated world, entities possess names, properties, and specified quantities. Properties differentiate entities, and each entity type appears a set number of times within the population.
-
Laws, Actions, Functions: Laws contain sets of instructions and actions that modify entities' properties. Actions can be simple, like changing property values, or complex, incorporating conditions and multi-entity interactions. Activation timing for laws is determined by ticks and probability.
-
Activation Timing: Laws are triggered based on specified tick intervals and probabilities, allowing for controlled and probabilistic application.
-
Environment Variables: Similar to entity properties, environment variables are properties that affect the simulation at large.
-
Termination Conditions: The simulation includes predefined conditions that trigger its termination, indicating when the simulation has achieved its goals or a specific scenario has unfolded.
-
Graduation Process: The simulation progresses through iterations, applying actions and laws to entities according to the defined timeline until termination conditions are met. Errors are detected and reported, halting the simulation and providing information about the nature and context of the error.
-
Simulation Results: Upon completion, the operator can obtain insights about the simulation, including entity statistics, average property values, and the consistency of specific properties over time.
The system is designed to facilitate the creation and execution of simulations that model real-world scenarios affected by laws and changes. By providing a flexible framework with tools for defining entities, laws, and simulation parameters, the system empowers users to explore the potential impacts of policy decisions and gain insights into the complex relationships between different variables.
- Polymorphism
- Collections
- Interfaces
- Exceptions
- JAXB (Java Architecture for XML Binding)
- Java I/O
- Threads (Parallel Programming)
- JavaFX (Graphic App)
- Scene Builder
- Logic expansion - add actions and functions for simulation running
- Graphic design
- Parallel Programming - running several simulations at the same time
- Clone this repository
- Open the CMD with the folder path 'submit'
- Write the command:
run.bat
- load XML files from the folder 'test-files' to run simulations.
Completed
- Lecturer: Aviad Cohen
- The Academic College of Tel Aviv - Yaffo
- Logo & Design: Image by storyset - on Freepik
This project is licensed under the MIT License - see the LICENSE file for details