diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index bdc2c670..75157052 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,6 +6,7 @@ Changelog
===========================
- Lock pandas to 2.1.4 or later
- Capital Investment result calculation fixed
+- Add HiGHS as a solver
Version 1.1.2
=============
diff --git a/docs/_static/otoole_figures.drawio b/docs/_static/otoole_figures.drawio
index e0a3be79..4ac2fc71 100644
--- a/docs/_static/otoole_figures.drawio
+++ b/docs/_static/otoole_figures.drawio
@@ -1 +1,281 @@
-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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/_static/overview_v2.png b/docs/_static/overview_v2.png
index b96fb672..8889aeb7 100644
Binary files a/docs/_static/overview_v2.png and b/docs/_static/overview_v2.png differ
diff --git a/docs/_static/workflow.png b/docs/_static/workflow.png
index a26e2dab..fcd1f77e 100644
Binary files a/docs/_static/workflow.png and b/docs/_static/workflow.png differ
diff --git a/docs/convert.rst b/docs/convert.rst
index 2333d976..bc7eae24 100644
--- a/docs/convert.rst
+++ b/docs/convert.rst
@@ -23,7 +23,7 @@ See :py:func:`otoole.convert.convert` for more details
Converting solver results to a folder of CSV files
--------------------------------------------------
-The ``convert_results`` function creates a folder of CSV result files from a CBC_, CLP_,
+The ``convert_results`` function creates a folder of CSV result files from a CBC_, CLP_, HiGHS_,
Gurobi_ or CPLEX_ solution file::
>>> from otoole import convert_results
@@ -34,7 +34,7 @@ See :func:`otoole.convert.convert_results` for more details
Reading solver results into a dict of Pandas DataFrames
-------------------------------------------------------
-The ``read_results`` function reads a CBC_, CLP_,
+The ``read_results`` function reads a CBC_, CLP_, HiGHS_,
Gurobi_ or CPLEX_ solution file into memory::
>>> from otoole import read_results
@@ -68,3 +68,4 @@ You can use the :py:func:`otoole.convert.write` function to write data out to di
.. _CLP: https://github.com/coin-or/Clp
.. _CPLEX: https://www.ibm.com/products/ilog-cplex-optimization-studio/cplex-optimizer
.. _Gurobi: https://www.gurobi.com/
+.. _HiGHS: https://ergo-code.github.io/HiGHS/dev/
diff --git a/docs/examples.rst b/docs/examples.rst
index aec99b71..47349f64 100644
--- a/docs/examples.rst
+++ b/docs/examples.rst
@@ -21,9 +21,9 @@ Solver Setup
Objective
~~~~~~~~~
-Install GLPK_ (required) and CBC_ (optional) to use in the otoole examples.
-While ``otoole`` does not require a solver, these examples will use the free
-and open source solvers GLPK_ and CBC_.
+Install GLPK_ (required), CBC_ (optional), and HiGHS_ (optional) to use in the otoole
+examples. While ``otoole`` does not require a solver, these examples will use the free
+and open source solvers GLPK_, CBC_, and HiGHS_.
1. Install GLPK
~~~~~~~~~~~~~~~~
@@ -50,8 +50,6 @@ your Python packages, you can install GLPK via the command::
$ conda install -c conda-forge glpk
-2. Test the GLPK install
-~~~~~~~~~~~~~~~~~~~~~~~~
Once installed, you should be able to call the ``glpsol`` command::
$ glpsol
@@ -61,7 +59,7 @@ Once installed, you should be able to call the ``glpsol`` command::
.. TIP::
See the `GLPK Wiki`_ for more information on the ``glpsol`` command
-3. Install CBC
+2. Install CBC
~~~~~~~~~~~~~~
CBC_ is a free and open-source mixed integer linear programming solver. Full
@@ -84,8 +82,6 @@ your Python packages, you can install CBC via the command::
$ conda install -c conda-forge coincbc
-4. Test the CBC install
-~~~~~~~~~~~~~~~~~~~~~~~
Once installed, you should be able to directly call CBC::
$ cbc
@@ -99,6 +95,60 @@ Once installed, you should be able to directly call CBC::
You can exit the solver by typing ``quit``
+3. Install HiGHS
+~~~~~~~~~~~~~~~~
+
+HiGHS_ is a free and open-source mixed integer linear programming solver. HiGHS_ can be
+run through the command line or through one of their
+`API interfaces `_. See the
+`HiGHS install instructions `_ for full
+details on both methods. Here we will cover abbreviated instructions for CLI and Python
+execution.
+
+CLI Install
++++++++++++
+
+To install the HiGHS executable, install a pre-compiled binary as directed by
+the `HiGHS install documentation `_.
+
+Extract the binary with the following command on MacOS/Linux::
+
+ $ tar -xzf filename.tar.gz
+
+Navigate to the ``./bin/`` folder and run HiGHS from the command line::
+
+ $ ./highs
+
+.. TIP::
+ To call HiGHS_ from anywhere in the command line, add the path to the execultable
+ to your environment variables.
+
+Once installed, you should be able to directly call HiGHS_::
+
+ $ highs
+ Please specify filename in .mps|.lp|.ems format.
+
+Python Install
+++++++++++++++
+
+In Python, simple install HiGHS through pip with::
+
+ $ pip install highspy
+
+Once installed, you should be able to see ``highspy`` in your environment::
+
+ $ pip show highspy
+ Name: highspy
+ Version: 1.5.3
+ Summary: Python interface to HiGHS
+ Home-page: https://github.com/ergo-code/highs
+ Author:
+ Author-email:
+ License: MIT
+ Location: /home/xxx/.local/lib/python3.10/site-packages
+ Requires:
+ Required-by:
+
Input Data Conversion
---------------------
@@ -145,7 +195,7 @@ Process Solutions from Different Solvers
Objective
~~~~~~~~~
-Process solutions from GLPK_, CBC_, Gurobi_, and CPLEX_. This example assumes
+Process solutions from GLPK_, CBC_, HiGHS_, Gurobi_, and CPLEX_. This example assumes
you have an existing GNU MathProg datafile called ``simplicity.txt`` (from the
previous example).
@@ -175,7 +225,62 @@ save the solution as ``simplicity.sol``. Use otoole to create a folder of CSV re
$ otoole results cbc csv simplicity.sol results csv data config.yaml
-3. Process a solution from Gurobi
+3. Process a solution from HiGHS (CLI)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Use GLPK_ to build the model and save the problem as ``simplicity.lp``. Use HiGHS_ to solve the model and
+save the solution as ``simplicity.sol``. Use otoole to create a folder of CSV results called ``results/``.
+
+HiGHS_ has the ability to write solutions in a variety of formats; ``otoole`` will process the
+``kSolutionStylePretty`` solution style. We pass this into the HiGHS_ solver through an
+`options file `_. First, create the options file::
+
+ $ touch highs_options.txt
+
+And add the following option to the file::
+
+ write_solution_style = 1
+
+Next, we can follow a similar process to processing results from other solvers::
+
+ $ glpsol -m OSeMOSYS.txt -d simplicity.txt --wlp simplicity.lp --check
+
+ $ highs --model_file simplicity.lp --solution_file simplicity.sol --options_file="highs_options.txt"
+
+ $ otoole results highs csv simplicity.sol results csv data config.yaml
+
+.. NOTE::
+ Run the following command to see all the options available to pass into highs in the options file::
+
+ $ highs --options_file=""
+
+4. Process a solution from HiGHS (Python)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Use `HiGHS Python API`_ to solve a model, and use otoole's Python API to create a folder of CSV results called ``results/``.
+HiGHS can process models in both ``.mlp`` and CPLEX ``.lp`` format. This example will assume you have a model file called ``simplicity.lp``
+already created. This can be created through GLPK following the first command in the previous example.
+
+First, install HiGHS and otoole into your Python environment::
+
+ $ pip install highspy
+ $ pip install otoole
+
+Next, use HiGHS to solve the model and write a solution file::
+
+ import highspy
+ h = highspy.Highs()
+ h.readModel("simplicity.lp")
+ h.run()
+ h.writeSolution("simplicity.sol", 1)
+
+.. warning::
+ The HiGHS_ solution style **must be** solution style ``1`` (ie. ``kSolutionStylePretty``)
+
+Finally, use otoole to convert the solution file into a folder of result CSVs::
+
+ from otoole import convert_results
+ convert_results("config.yaml", "highs", "csv", "simplicity.sol", "results", "csv", "data")
+
+1. Process a solution from Gurobi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Use GLPK_ to build the model and save the problem as ``simplicity.lp``. Use Gurobi_ to solve the model and
save the solution as ``simplicity.sol``. Use otoole to create a folder of CSV results called ``results/`` from the solution file::
@@ -186,7 +291,7 @@ save the solution as ``simplicity.sol``. Use otoole to create a folder of CSV re
$ otoole results gurobi csv simplicity.sol results csv data config.yaml
-4. Process a solution from CPLEX
+6. Process a solution from CPLEX
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Use GLPK_ to build the model and save the problem as ``simplicity.lp``. Use CPLEX_ to solve the model and
save the solution as ``simplicity.sol``. Use otoole to create a folder of CSV results called ``results/`` from the solution file::
@@ -504,3 +609,5 @@ will also flag it as an isolated fuel. This means the fuel is unconnected from t
.. _Anaconda: https://www.anaconda.com/
.. _Gurobi: https://www.gurobi.com/
.. _graphviz: https://www.graphviz.org/download/
+.. _HiGHS: https://ergo-code.github.io/HiGHS/dev/
+.. _HiGHS Python API: https://ergo-code.github.io/HiGHS/dev/interfaces/python/
diff --git a/docs/functionality.rst b/docs/functionality.rst
index 503fc899..4d184abc 100644
--- a/docs/functionality.rst
+++ b/docs/functionality.rst
@@ -11,7 +11,7 @@ to turbo-charge your modelling, are described on this page!
As shown in the diagram, ``otoole`` deals primarily with data before and after OSeMOSYS.
Data work prior to the generation of a datafile, which is read in by GLPK_, is called
pre-processing. Anything that happens with the immediate outputs of a solver, such as
-the recommended open-source solvers GLPK_, CBC_, or the proprietary solvers CPLEX_ and
+the recommended open-source solvers GLPK_, CBC_, HiGHS_, or the commercial solvers CPLEX_ and
Gurobi_, is called results and post-processing.
.. image:: _static/workflow.png
@@ -71,11 +71,10 @@ Overview
With small OSeMOSYS models, it is normally fine to use the free open-source GLPK_ solver.
If you do, then OSeMOSYS will write out a full set of results as a folder of CSV files.
As you progress to larger models, the performance constraints of GLPK_ quickly become
-apparent. CBC_ is an alternative open-source solver which offers better performance than
-GLPK_ and can handle much larger models. However, CBC_ has no way of knowing how to write
-out the CSV files you were used to dealing with when using GLPK_. ``otoole`` to the rescue!
+apparent. CBC_ and HiGHS_ are alternative open-source solvers which offer better performance than
+GLPK_ and can handle much larger models.
-``otoole`` currently supports using GLPK_, CBC_, CPLEX_ or Gurobi_ with all versions of
+``otoole`` currently supports using GLPK_, CBC_, HiGHS_, CPLEX_ or Gurobi_ with all versions of
GNU MathProg OSeMOSYS - the long, short and fast versions.
The long version includes all results as variables within the formulation, so the
@@ -94,21 +93,21 @@ Gurobi_ or CPLEX_ solution file together with the input data::
$ otoole results --help
usage: otoole results [-h] [--glpk_model GLPK_MODEL] [--write_defaults]
- {cbc,cplex,gurobi} {csv} from_path to_path {csv,datafile,excel} input_path config
+ {cbc,cplex,glpk,gurobi,highs} {csv} from_path to_path {csv,datafile,excel} input_path config
positional arguments:
- {cbc,cplex,glpk,gurobi} Result data format to convert from
- {csv} Result data format to convert to
- from_path Path to file or folder to convert from
- to_path Path to file or folder to convert to
- {csv,datafile,excel} Input data format
- input_path Path to input_data
- config Path to config YAML file
-
- optional arguments:
- -h, --help show this help message and exit
- --glpk_model GLPK_MODEL GLPK model file required for processing GLPK results
- --write_defaults Writes default values
+ {cbc,cplex,glpk,gurobi,highs} Result data format to convert from
+ {csv} Result data format to convert to
+ from_path Path to solver solution file
+ to_path Path to file or folder to convert to
+ {csv,datafile,excel} Input data format
+ input_path Path to input_data
+ config Path to config YAML file
+
+ options:
+ -h, --help show this help message and exit
+ --glpk_model GLPK_MODEL GLPK model file required for processing GLPK results
+ --write_defaults Writes default values
.. versionadded:: v1.0.0
The ``config`` positional argument is now required
@@ -218,3 +217,4 @@ the rest of the model::
.. _Gurobi: https://www.gurobi.com/
.. _`OSeMOSYS Repository`: https://github.com/OSeMOSYS/OSeMOSYS_GNU_MathProg/tree/master/scripts
.. _graphviz: https://graphviz.org/
+.. _HiGHS: https://ergo-code.github.io/HiGHS/dev/