To use the HUGIN Development Environment (if not a special version - see the Versions section) you need:
Windows: Microsoft Windows 7/8/10 (x86/x64)
Linux: Red Hat Enterprise Linux 7, Ubuntu 18.04 LTS, and compatible distributions (x86/x64)
macOS: macOS Mojave (10.14) (64-bit only)
The Java API and the Graphical User Interface requires Oracle’s JVM to run. On macOS, Oracle’s JVM is only available in 64 bit.
The complexity (both in terms of space and time) of making inference in a Bayesian network or a LIMID model can be quite large. For most applications, however, the complexity is moderate.
The time and memory required for making inference depends on the number of variables, the number of states of the variables, and the structure of the network. Among these three factors, it is the structure of the network that is the most important. As an example, an early version of the TREAT network (a decision support system for treatment of severe bacterial infections) developed at Aalborg University contains more than 1400 variables, but still requires less than 2 Mbytes of memory (using optimal triangulation). On the other hand, one can easily construct networks with less than 50 variables where the complexity of inference gets prohibitive. Note that by using the compression and approximation facilities of the HUGIN compiler, memory requirements can be vastly reduced. Also, using the optimal triangulation feature when compiling a network can be very useful in minimizing the complexity of inference.
Please note that the memory requirements mentioned above assume that we are using the standard single-precision HUGIN API. (Using the double-precision version will double that amount.) If we are using the HUGIN Graphical User Interface, there will also be a memory overhead from running Java and representing the variables as Java objects, etc.
In most cases, when our customers experience problems with lack of memory, the problems were caused by inappropriate structures in the models which could be solved by optimizing the representation.
See the section on junction trees for a more detailed discussion of how inference is performed and what causes the potential high complexity.
Application Programming Interfaces¶
Application Programming Interfaces (APIs) for the HUGIN Decision Engine (HDE) are provided for the C, C++, Java, Python, and C# (.NET Core 2.0) programming languages for all supported platforms (Windows, Linux, and macOS). Additionally, a web service API is provided for all supported platforms.
For the Microsoft Windows platform, APIs for C# (.NET Framework 2.0 and 4.0) and Excel (COM) are also provided.
For macOS and iOS, library frameworks for the Swift programming language are provided.
For the Microsoft Windows platform, DLLs for C/C++ are provided for use with Visual Studio 6.0, Visual Studio .NET 2003, Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio 2012, Visual Studio 2013, Visual Studio 2015, Visual Studio 2017, and Visual Studio 2019.
For the Linux platform, two software packages are available: One compiled on Red Hat Enterprise Linux 7 (RHEL7), and one compiled on Ubuntu 18.04 LTS (64-bit only). Most Linux software distributions should be compatible with at least one of these packages. If you experience problems, please contact HUGIN Expert A/S.
The packages have been compiled using the default system compiler. For RHEL7, this is gcc/g++ 4.8.5, and for Ubuntu 18.04 LTS, this is gcc/g++ 7.4.0. The APIs may not work with other compilers (including the version of the compiler). This is most likely to be the case for the HUGIN C++ API.
For macOS/iOS, all libraries have been compiled using Xcode 10.3.
The HUGIN Java API is compatible with Java 1.4.2 and newer versions from Oracle.
The HUGIN Web Service API requires Java 8 or newer on the server.
The HUGIN Python API works with Python 2.7 and Python 3.x.
If you have special requirements (e.g., operating systems, compilers, or hardware) you would like to see supported, please contact HUGIN Expert A/S. If possible, we will be happy to produce special HUGIN API versions on request.