Installation
First things first: install Julia. You can follow my tutorial here.
To install TORA.jl, start Julia and enter Pkg mode by pressing ], and then run
add https://github.com/ferrolho/TORA.jlAfter the command above, you are pretty much done.
I recommend you to go and follow the tutorial now.
The installation notes below need not be followed right now. At the end of the tutorial, I will refer you back here.
HSL Routines for Ipopt
This section will guide you through the steps required to install the Harwell Subroutine Library (HSL).
TORA.jl uses Ipopt (Interior-Point OPTimizer) by default, a large-scale nonlinear optimization solver.
Ipopt itself depends on other solvers to handle systems of linear equations.
The Harwell Subroutine Library (HSL) provides a number of linear solvers that can be used in Ipopt.
Picking a good linear solver is extremely important to maximise the performance of nonlinear solvers.
For example, the linear solver MA27 is out dated and can be quite slow. MA57 is a much better alternative, especially for highly-sparse problems (such as trajectory optimization problems).
First, install the following dependencies:
sudo apt install gcc g++ gfortran git patch wget pkg-config liblapack-dev libmetis-devClone Ipopt to your Home folder:
git clone https://github.com/coin-or/Ipopt.git ~/IpoptClone the COIN-OR Tools project ThirdParty-HSL into Ipopt's folder:
cd ~/Ipopt
git clone https://github.com/coin-or-tools/ThirdParty-HSL.gitGo to http://www.hsl.rl.ac.uk/ipopt/ and download Coin-HSL Full (Stable) [Linux x86_64].
Downloading Coin-HSL Full requires a licence. If you are an academic, you can get one for free.
Extract and rename the downloaded archive into ~/Ipopt/ThirdParty-HSL:
cd ~/Ipopt/ThirdParty-HSL
tar -xvzf ~/Downloads/coinhsl-2019.05.21.tar.gz
mv coinhsl-2019.05.21 coinhslConfigure, make, and install HSL:
./configure
make
sudo make installFor compatibility, create libhsl.so linking to libcoinhsl.so:
cd /usr/local/lib
sudo ln -s libcoinhsl.so libhsl.soFinally, add the following line to the end of your .bashrc (or .zshrc):
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"Artelys Knitro
Documentation to be written.