Metadata-Version: 2.4
Name: PyPRS
Version: 1.0.0
Summary: A Python Software Package for Parallel Ranking and Selection Procedures.
Author-email: Song Huang <23b910018@stu.hit.edu.cn>, Guangxin Jiang <gxjiang@hit.edu.cn>, Ying Zhong <yzhong4@uestc.edu.cn>
Project-URL: Homepage, https://github.com/simulation-optimization/PyPRS
Project-URL: Bug Tracker, https://github.com/simulation-optimization/PyPRS/issues
Keywords: ranking,selection,simulation,operations research,GSP,KT,PASS,FBKT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: ray==2.44.1
Requires-Dist: mrg32k3a_numba==1.0.0



# PyPRS: A Python Software Package for Parallel Ranking and Selection Procedures



**PyPRS** is a Python software package specifically developed to solve large-scale ranking and selection (R&S) problems in parallel computing environments. The underlying parallel computing framework is **Ray**. PyPRS incorporates four well-known parallel procedures: 

- **The Good Selection Procedure (GSP)**
- **The Knockout-Tournament (KT) Procedure**
- **The Parallel Adaptive Survivor Selection (PASS) Procedure**
- **The Fixed-Budget Knockout-Tournament (FBKT) Procedure**

Users can also upload custom procedures to test and compare performance against these built-in procedures.

---
## 📋 Prerequisites
- Python **3.10** is recommended for optimal compatibility.
- Required packages:  `ray==2.44.1`, `numpy`, `scipy`, `matplotlib`, `mrg32k3a_numba`. Install them using:
```bash
python -m pip install ray==2.44.1 numpy scipy matplotlib mrg32k3a_numba
```

## 📦 Installation

```bash
python -m pip install PyPRS
```

## 🖥️ How to use
To run PyPRS on a single computer, users just need to execute the **`GUI.py`** file located in the `UserInterface` package in a Python environment： 
- If the PyPRS is downloaded from the source repository,  users should first navigate to the parent folder of `PyPRS` folder and then execute the `python -m PyPRS.UserInterface.GUI` command in the terminal or command prompt.
- If users installed PyPRS using `pip`, users can directly run `python -m PyPRS.UserInterface.GUI` in the terminal or command prompt.

Once the command is executed, the **Graphical User Interface (GUI)** will launch. In the GUI, users can:
- **select a procedure**
- **configure input parameters**
- **upload required files**
- **run the procedure**
