Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cptanalatriste/prioritisation-game-model
Game-theoretic tools for task prioritisation process modelling.
https://github.com/cptanalatriste/prioritisation-game-model
bug-reporting game-theory simulation
Last synced: about 1 month ago
JSON representation
Game-theoretic tools for task prioritisation process modelling.
- Host: GitHub
- URL: https://github.com/cptanalatriste/prioritisation-game-model
- Owner: cptanalatriste
- License: mit
- Created: 2016-07-03T13:35:51.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-06-17T22:24:45.000Z (over 4 years ago)
- Last Synced: 2024-11-13T14:32:41.566Z (3 months ago)
- Topics: bug-reporting, game-theory, simulation
- Language: Python
- Homepage: https://ieeexplore.ieee.org/abstract/document/8852726
- Size: 450 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Equilibrium Analysis for Task Prioritisation
*For an in-depht discussion of our empirical game-theoretic model, you can read our paper in the IEEE Transactions on Software Engineering: https://ieeexplore.ieee.org/abstract/document/8852726*
This collection of Python scripts make use of a simulation model of task prioritisation for obtaining the Nash-Equilibrium of its empirical game-theoretic model.
## Pre-requisites
The code was built and tested using the [Anaconda distribution for Python 2.7](https://www.continuum.io/DOWNLOADS). For equilibrium calculation, it relies on the [Gambit Software version 15](http://www.gambit-project.org/).Besides the libraries available in Anaconda, we also need the following:
- *Simpy* version 2.3.1, for the simulation model implementation.
- *Pathos* version 0.2.0, for the parallel execution of simulation replications. If you're working on Windows, be sure to [install a C++ compiler first](https://www.microsoft.com/en-gb/download/details.aspx?id=44266).
- *Recordtype*, for mutable named tuples support.## Configuration
The file `gtconfig.py` exposes the configurations parameters. Edit following according to your needs:- `all_issues_csv`, is the file location of the CSV file containing the bug tracking system data needed for obtaining the simulation inputs.
- `gambit_folder`, is the installation directory of the Gambit Software
- `quantal_response_solver`, is the name of the command for obtaining the quantal response equilibria in Gambit.
- `replications_per_profile`, is the number of replications to execute per strategy profile.
- `parallel`, to enable the parallel execution of simulation replications.
- `parallel_blocks`, the number of parallel blocks to divide simulation execution. It can be set to the number of cores available on your system.
- `is_windows`, should be `False` if you are not using a Windows operating system.## Execution
The search-based mechanism design experiments are based on games with the following characteristics:- *Simulation model:* Bug reports arrive individually to a priority queue based on the priority contained in the report.
- *Strategy catalog:* Contains only the always-honest and always-dishonest strategies.
- *Game reduction:* No game reduction is performed, nor any symmetry assumption is made.
- *Player selection:* From the bug tracking system data, we pick the most productive bug reporters as players.
- *Equilibrium algorithm:* Quantal response equilibrium, since is the one recommended by Gambit for games with more than 2 players.To execute this scenario, you can do the following:
`python getequilibrium.py testers developers target_bugs file_name`
Where:
- *testers* is the number of bug reporters.
- *developers* is the number of developers available for bug fixing.
- *target_bugs* is the number of bugs to be fixed before release.
- *file_name* is the CSV file name where the equilibrium will be stored.