Supplementary materials for P-Graph and MILP models (2023) for revisiting the "Bad Zell case study".

Article:
Modeling of a biomass-based energy production case study using flexible inputs with the P-Graph framework
Andras Eles, Istvan Heckl, Heriberto Cabezas
eles.andras@mik.uni-pannon.hu
Journal: Energies

*** MILP models

The MILP implementations can be found in the MILP/ directory.
Implementations are written in GNU MathProg, and solved on Ubuntu OS with the glpsol command line tool.

Note: the MILP model implementations have an own naming convention unrelated to the nomenclature of the article.
Futhermore, the formulations as written have some minor differences from the model codes (e.g. parameters are not one-to-one mapped), not affecting the search space of the models.
The motivation behind this was the easier understanding for those who read the formulation in the article.

badzell-5-merged.mod
	Single file for model and data, represents production of the original Bad Zell case study. (Considered as a draft.)

badzell-6-orig.mod
	Model file for the "initial model", referred to in the article, using fixed input compositions for fermenters.
	Must be supplied with 'badzell-6-common.dat' and either 'badzell-6-exact.dat' or 'badzell-6-linear.dat'.
	The choice on the latter two represents whether we want to use the original data from the case study, or the fair comparison.

badzell-7-flexible.mod
	Model file for the "modified model", using fermenters with flexible inputs.
	Must be supplied with 'badzell-7-flexible.dat'.

regression-calculatons.xlsx
	Shows how the estimated data are obtained for fermenter heating and investment costs.

The log files show model execution results.

*** P-Graph model

The P-Graph implementations can be found in the P-Graph/ directory.
The P-Graph Studio software was used with the included ABB algorithm for solving PNS problems, on Windows.
Since the P-Graph Studio frontend is in its present form not suitable to formulate very large PNS problems (as the Bad Zell case study), a small framework in Python was implemented which does the following: constructs P-Graphs programmatically, generate input files (.in) for the ABB solver, launches the ABB solver, then parses the resulting output file (.out).
This can be reproduced but a P-Graph Studio installation the ABB solver path must be hardcoded into the Python script.

The first version contains the solution for the Bad Zell case study, with ".in" and ".out" files and results.

The second version contains the final version of the framework, with two other sample PNS problems, and also alternative solutions for the Bad Zell case study using the CBC and GLPK solvers.

Andras Eles
2023.08.25.
