Skip to content

Commit 723982e

Browse files
committed
Update GUI to data-farming beta version
Update GUI to data-farming beta version
1 parent 4c5de2e commit 723982e

File tree

10 files changed

+3252
-71
lines changed

10 files changed

+3252
-71
lines changed

.csv

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
DesignPt#,purchase_price,sales_price,salvage_price,order_quantity,Burr_c,Burr_k,MacroRep#,profit,stockout_qty,stockout
2+
0,5,9.0,1.0,0.5,10,20.0,0,2.0,0.10721839531008015,1
3+
0,5,9.0,1.0,0.5,10,20.0,1,2.0,0.13759403035824747,1
4+
0,5,9.0,1.0,0.5,10,20.0,2,2.0,0.19123378055265372,1
5+
1,3,9.0,1.0,0.5,3,20.0,0,0.2691970029976898,0,0
6+
1,3,9.0,1.0,0.5,3,20.0,1,1.9968238977942399,0,0
7+
1,3,9.0,1.0,0.5,3,20.0,2,0.7050225197791442,0,0
8+
2,4,9.0,1.0,0.5,5,20.0,0,1.6374944079236617,0,0
9+
2,4,9.0,1.0,0.5,5,20.0,1,2.2601185641497175,0,0
10+
2,4,9.0,1.0,0.5,5,20.0,2,1.7774216949654034,0,0
11+
3,4,9.0,1.0,0.5,7,20.0,0,2.5,0.23141579641316556,1
12+
3,4,9.0,1.0,0.5,7,20.0,1,2.5,0.1654358099658486,1
13+
3,4,9.0,1.0,0.5,7,20.0,2,2.5,0.12306434922951537,1
14+
4,8,9.0,1.0,0.5,9,20.0,0,0.5,0.0809899770032183,1
15+
4,8,9.0,1.0,0.5,9,20.0,1,0.5,0.2709702257604225,1
16+
4,8,9.0,1.0,0.5,9,20.0,2,0.0578392568824837,0,0
17+
5,10,9.0,1.0,0.5,4,20.0,0,-1.164254915068072,0,0
18+
5,10,9.0,1.0,0.5,4,20.0,1,-1.6771869687705316,0,0
19+
5,10,9.0,1.0,0.5,4,20.0,2,-1.225734012204176,0,0
20+
6,7,9.0,1.0,0.5,3,20.0,0,-1.1642093953278665,0,0
21+
6,7,9.0,1.0,0.5,3,20.0,1,1.0,0.14694922880188932,1
22+
6,7,9.0,1.0,0.5,3,20.0,2,-0.9914143174844927,0,0
23+
7,7,9.0,1.0,0.5,9,20.0,0,1.0,0.2241587303019441,1
24+
7,7,9.0,1.0,0.5,9,20.0,1,1.0,0.2807101425144599,1
25+
7,7,9.0,1.0,0.5,9,20.0,2,1.0,0.09709637554267114,1
26+
8,7,9.0,1.0,0.5,6,20.0,0,1.0,0.010388179531884312,1
27+
8,7,9.0,1.0,0.5,6,20.0,1,1.0,0.1814375777989372,1
28+
8,7,9.0,1.0,0.5,6,20.0,2,-0.012133736782900417,0,0
29+
9,8,9.0,1.0,0.5,1,20.0,0,-3.4453996589510467,0,0
30+
9,8,9.0,1.0,0.5,1,20.0,1,-3.0657223966658,0,0
31+
9,8,9.0,1.0,0.5,1,20.0,2,-2.811005187094276,0,0
32+
10,10,9.0,1.0,0.5,8,20.0,0,-0.5,0.022000817749947554,1
33+
10,10,9.0,1.0,0.5,8,20.0,1,-0.5,0.2307461027042732,1
34+
10,10,9.0,1.0,0.5,8,20.0,2,-0.5,0.2773146317955876,1
35+
11,9,9.0,1.0,0.5,6,20.0,0,0.0,0.10034593920806101,1
36+
11,9,9.0,1.0,0.5,6,20.0,1,-0.452451464056276,0,0
37+
11,9,9.0,1.0,0.5,6,20.0,2,0.0,0.291704281645329,1
38+
12,9,9.0,1.0,0.5,4,20.0,0,-0.5586081776816338,0,0
39+
12,9,9.0,1.0,0.5,4,20.0,1,-0.2829155556466043,0,0
40+
12,9,9.0,1.0,0.5,4,20.0,2,0.0,0.1674115266446603,1
41+
13,5,9.0,1.0,0.5,2,20.0,0,-0.5665080947964394,0,0
42+
13,5,9.0,1.0,0.5,2,20.0,1,0.10731721569211716,0,0
43+
13,5,9.0,1.0,0.5,2,20.0,2,0.032627206115135365,0,0
44+
14,3,9.0,1.0,0.5,7,20.0,0,3.0,0.23951617362044098,1
45+
14,3,9.0,1.0,0.5,7,20.0,1,3.0,0.21826448226276218,1
46+
14,3,9.0,1.0,0.5,7,20.0,2,2.929593220224854,0,0
47+
15,6,9.0,1.0,0.5,8,20.0,0,1.5,0.14910249491711747,1
48+
15,6,9.0,1.0,0.5,8,20.0,1,1.5,0.14171398868862162,1
49+
15,6,9.0,1.0,0.5,8,20.0,2,1.5,0.24972183126166347,1
50+
16,6,9.0,1.0,0.5,2,20.0,0,-0.2236730178409183,0,0
51+
16,6,9.0,1.0,0.5,2,20.0,1,-1.6511109603265066,0,0
52+
16,6,9.0,1.0,0.5,2,20.0,2,0.39494976342200916,0,0

README.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@
22

33
SimOpt is a testbed of simulation-optimization problems and solvers. Its purpose is to encourage the development and constructive comparison of simulation-optimization (SO) solvers (algorithms). We are particularly interested in the finite-time performance of solvers, rather than the asymptotic results that one often finds in related literature.
44

5-
The most-up-to-date publication about this library is [Eckman et al. (2021)](https://eckman.engr.tamu.edu/wp-content/uploads/sites/233/2022/01/SimOpt-software-paper.pdf).
6-
7-
85
For the purposes of this project, we define simulation as a very general technique for estimating statistical measures of complex systems. A system is modeled as if the probability distributions of the underlying random variables were known. Realizations of these random variables are then drawn randomly from these distributions. Each replication gives one observation of the system response, i.e., an evaluation of the objective function or stochastic constraints. By simulating a system in this fashion for multiple replications and aggregating the responses, one can compute statistics and use them for evaluation and design.
96

107
Several papers have discussed the development of SimOpt and experiments run on the testbed:
11-
* [Pasupathy and Henderson (2006)](https://www.informs-sim.org/wsc06papers/028.pdf) explains the original motivation for the testbed.
12-
* [Pasupathy and Henderson (2011)](https://www.informs-sim.org/wsc11papers/363.pdf) describes an earlier interface for MATLAB implementations of problems and solvers.
13-
* [Dong et al. (2017)](https://www.informs-sim.org/wsc17papers/includes/files/179.pdf) conducts an experimental comparison of several solvers in SimOpt and analyzes their relative performance.
8+
* [Eckman et al. (2023)](https://pubsonline.informs.org/doi/10.1287/ijoc.2023.1273) is the most up-to-date publication about SimOpt and describes the code architecture and how users can interact with the library.
9+
* [Eckman et al. (2023)](https://pubsonline.informs.org/doi/10.1287/ijoc.2022.1261) introduces the design of experiments for comparing solvers; this design has been implemented in the latest Python version of SimOpt. For detailed description of the terminology used in the library, e.g., factors, macroreplications, post-processing, solvability plots, etc., see this paper.
1410
* [Eckman et al. (2019)](https://www.informs-sim.org/wsc19papers/374.pdf) describes in detail changes to the architecture of the MATLAB version of SimOpt and the control of random number streams.
15-
* [Eckman et al. (2021)](https://eckman.engr.tamu.edu/wp-content/uploads/sites/233/2021/09/SimOpt-metrics-paper.pdf) introduces the design of experiments for comparing solvers; this design has been implemented in the latest Python version of SimOpt. For detailed description of the terminology used in the library, e.g., factors, macroreplications, post-processing, solvability plots, etc., see this paper.
11+
* [Dong et al. (2017)](https://www.informs-sim.org/wsc17papers/includes/files/179.pdf) conducts an experimental comparison of several solvers in SimOpt and analyzes their relative performance.
12+
* [Pasupathy and Henderson (2011)](https://www.informs-sim.org/wsc11papers/363.pdf) describes an earlier interface for MATLAB implementations of problems and solvers.
13+
* [Pasupathy and Henderson (2006)](https://www.informs-sim.org/wsc06papers/028.pdf) explains the original motivation for the testbed.
1614

1715

1816
## Code
@@ -23,7 +21,7 @@ Several papers have discussed the development of SimOpt and experiments run on t
2321
Full documentation for the source code can be found **[here](https://simopt.readthedocs.io/en/latest/index.html)**.
2422

2523
## Getting Started
26-
The most straightforward way to interact with the library is to [clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) this repository. *(If you anticipate making improvements or contributions to SimOpt, you should first [fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) the repository so that you can later request your changes be integrated via GitHub's pull request feature.)* Alternatively, you can choose to install the library as a Python package; see the sections titled **Package** and **Basic Example** below for more details about this option.
24+
The most straightforward way to interact with the library is to [clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) this repository. Alternatively, you can choose to install the library as a Python package; see the sections titled **Package** and **Basic Example** below for more details about this option.
2725

2826
Download a copy of the cloned repository to your local machine and navigate to the `simopt` folder in your preferred integrated development environment (IDE). You will need to make sure that you have the following dependencies installed: Python 3, `numpy`, `scipy`, `matplotlib`, `pandas`, `seaborn`, and `mrg32k3a`. Run the command ``` python -m pip install numpy scipy matplotlib pandas seaborn mrg32k3a``` to install them from the terminal.
2927

@@ -154,8 +152,17 @@ The type of plots that are currently available in the GUI are: Mean Progress Cur
154152
7. To return to the main page, click the red "x" in the top-left corner of the window.
155153

156154
## Contributing
157-
You can contribute problems and solver to SimOpt by using [pull requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) in GitHub or corresponding with the developers.
155+
You can contribute problems and solvers to SimOpt (or fix other coding bugs) by [forking](https://docs.github.com/en/get-started/quickstart/fork-a-repo) the repository and initiating [pull requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) in GitHub to request that your changes be integrated.
156+
157+
We also maintain a short list of next steps for improving the libary:
158158

159+
### Short-Term To-Do List
160+
1. **Accelerating and Hardening the Source Code:** profiling, exception tracking, unit testing.
161+
1. **Random Variate Generation:** adding to the random-variate generating capabilities of the `mrg32k3a` package that supports SimOpt.
162+
1. **Robustness to User Specification:** additional exception handling for changing model/problem/solver factors.
163+
1. **Improving the Diversity of Solvers and Problems:** we especially welcome more solvers for problems with discrete feasible regions and/or deterministic linear constraints and/or stochastic constraints and/or multiple objectives.
164+
1. **Parallelization for Large-Scale Experiments:** using `OpenMP` to parallelize macroreplications.
165+
1. **Performance Metrics and Plots:** new metrics and plots for problems with stochastic constraints and/or multiple objectives.
159166

160167
## Package
161168
The `simoptlib` package is available to download through the Python Packaging Index (PyPI) and can be installed from the terminal with the following command:
@@ -209,11 +216,11 @@ To cite this work, please use
209216
@misc{simoptgithub,
210217
author = {D. J. Eckman and S. G. Henderson and S. Shashaani and R. Pasupathy},
211218
title = {{SimOpt}},
212-
year = {2021},
219+
year = {2023},
213220
publisher = {GitHub},
214221
journal = {GitHub repository},
215222
howpublished = {\url{https://github.com/simopt-admin/simopt}},
216-
commit = {eda24b9f6a5885a37321ad7f8534bf10dec22480}
223+
commit = {4c5de2e7576a596ea20979636cb034e75fada3f4}
217224
}
218225
```
219226

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Design #,purchase_price,sales_price,salvage_price (default),order_quantity (default),Burr_c (default),Burr_k (default)
2+
0,5,20,1.0,0.5,2.0,20.0
3+
1,3,8,1.0,0.5,2.0,20.0
4+
2,4,11,1.0,0.5,2.0,20.0
5+
3,4,14,1.0,0.5,2.0,20.0
6+
4,8,19,1.0,0.5,2.0,20.0
7+
5,10,9,1.0,0.5,2.0,20.0
8+
6,7,7,1.0,0.5,2.0,20.0
9+
7,7,18,1.0,0.5,2.0,20.0
10+
8,7,12,1.0,0.5,2.0,20.0
11+
9,8,4,1.0,0.5,2.0,20.0
12+
10,10,16,1.0,0.5,2.0,20.0
13+
11,9,13,1.0,0.5,2.0,20.0
14+
12,9,10,1.0,0.5,2.0,20.0
15+
13,5,5,1.0,0.5,2.0,20.0
16+
14,3,15,1.0,0.5,2.0,20.0
17+
15,6,17,1.0,0.5,2.0,20.0
18+
16,6,6,1.0,0.5,2.0,20.0

0 commit comments

Comments
 (0)