Det Biovidenskabelige Fakultet - KÝbenhavns Universitetwww.life.ku.dkFaculty of Life Sciences

Software

[Home][Software]

 

MLHMP software - version 2.0

Multi-level hierarchic Markov processes

Updated version

This page describes and links to the MLHMP software in the current version 2.0. The current version is subject to changes without notice. For the original version described in the paper "A general software system for Markov decision processes in herd management applications" published in Computers and Electronics in Agriculture 38, 199-215, refer to http://www.prodstyr.ihh.kvl.dk/software/mlhmp-org/mlhmp.html. Version 1 can still be found at http://www.prodstyr.ihh.kvl.dk/software/mlhmp1/mlhmp.html.

 

MLHMP software: Program window

 

General description

Originally, the main purpose was to demonstrate the structure, parameter needs and optimization methods of hierarchic Markov processes, but very soon it was realized that it was also a very powerful tool for real models. Over the years, numerous optimization models have been developed by use of MLHMP. For further information about the system, you should consult the paper "A general software system for Markov decision processes in herd management applications" published in Computers and Electronics in Agriculture 38, 199-215.  

 

Features

  • Full graphical user interface
  • Supports multi-level hierarchic models
  • Supports actions defined at all levels thus integrating decisions on multiple time scales
  • All stages, states and actions may be labeled by explanatory text strings
  • Entirely programmed in Java thus supporting multiple platforms.
  • Visible editing of models
  • Hierarchic optimization under 3 criteria of optimality
  • Value iteration
  • Supports probabilistic simulation under user defined policies
  • Supports calculation of additional technical or economic values by definition of supplementary parameters
  • Powerful plug-in facility for real world applications
  • No built-in restrictions on model size (but in practice model size is limited by system performance)
  • Saving of models to disk files for later use
  • An XML specification language for saving models in readable format.
  • Documentation available in PDF-format

User manual

The user manual is available in PDF format which may be read by the free Adobe Acrobat ReaderGet Acrobat Reader

 

Availability and disclaimer

The MLHMP software is free and may be downloaded by anyone. It is delivered as it is without warranties of any kind.

 

Downloading and installing the software

 

Microsoft Windows

Scripts for the native windows installer are available. The software system is provided in four versions (32/64 bits and with/without a Java Runtime Environment (JRE) bundled with the application). Just download and run the relevant MSI install file, which installs the software and all plugins automatically and creates a shortcut in the windows start menu:

If you download a version without JRE, you must first make sure that you have Java installed on your system.  The JRE must be at least version 1.6. For the 64 bit version, it is recommended also to use a 64 bit JRE (otherwise you will not be able to utilize the extended memory capacity of a 64 bit system).

 

If you download a version with the JRE bundled, a separate JRE exclusively for MLHMP will be installed on your system. Those versions, therefore, take up much more space on your hard disk.

 

Other platforms

The updated version of MLHMP is installed manually. You must make sure that you have Java installed on your system. If that is not the case you can download it from Sun's website. At least the Java Runtime Environment (JRE) must be installed on your system. It is not necessary to install the Software Development Kit (SDK).

 

Having verified the presence of Java on your system, the recommended install procedure  is as follows:

  1. Create a new directory.
  2. Download the MLHMP2.0.jar file and save it in the new directory just created.
  3. Optionally, download the plugins2.0.jar file and save it in the same directory.
  4. Download the Alien.zip file containing necessary external libraries. Extract the contents of the zip file into the same directory as the other files.
  5. Download the Limid.jar file (from esthauge.dk) and save it in the same directory.
  6. Create a script for launching the MLHMP software.

Samples

Currently, the following samples are available as examples of working models. Download the desired model, save it to disk, and open in the MLHMP software:

sow.hmp:
A sow replacement model with 3 levels.
simple-sow.hmp:
A very simple sow replacement model with 2 levels.

Plug-ins

The MLHMP software has a facility for installing and removing plug-ins, which are Java classes extending an abstract ModelProvider class. The purpose of a plug-in is to generate an entire model for a specific purpose. When MLHMP is downloaded and installed it may already be equipped with some plug-ins. It is also possible to download additional plug-ins from this homepage. For information on how to install and remove plug-ins, reference is made to the manual. Currently, the following plug-ins (and several others) are included at download or available for separate download:

 
Description Name Class, zip or JAR file
A plug-in only serving as example. Since the source code is available, it may be used as a template for writing your own plug-ins. dk.ku.life.iph.mlhmp.plugins.StandardPlugin Included at download
A model for optimization of ley lengths of grass lands in northern Norway. The model has 2 levels and around 75,000 states. It uses Baysian updating of ley yield potentials. The model is generated after a dialog with the user, who may modify many basic parameters. A separate menu is installed when the plug-in is invoked. The menu is as an interface for entering yield and damage observations from fields. The model has been presented in a conference paper as well as in a journal paper. plugins.grass.GrassLand plugins2.0.jar
A realistic sow replacement model using Baysian updating in a three-level hierarchical Markov process with decisions at two levels. The model is generated after a dialog with the user, who may modify many basic parameters. A separate menu is installed when the plug-in is invoked. The menu is as an interface for reading sow records from a herd and afterwards to show the results for individual sows. This is a good example of a realistic model that runs fast even on small computers. The model has been presented in two journal papers: Biological model and Optimization model dk.ku.life.iph.mlhmp.plugins.sows.ReducedSowModel Included at download
A model for simultaneous optimization of feeding level and slaughtering policy of organic steers. The model has 4 levels and almost 500,000 states. It requires around 500 MB RAM. The model is generated after a dialog with the user, who may modify many basic parameters. The model has been presented in a journal paper. A later paper further illyustrates the model. plugins.steer.SteerModel plugins2.0.jar
A beef heifer model for optimal weaning, feeding and insemination of beef heifers under Polish conditions. plugins.beef.BeefHeiferModel beef.zip
A small toy example of a dairy cow replacement model. It resembles the example described in Dina Notat No. 49. plugins.dairy.DairyCow plugins2.0.jar

 

If the plug-in comes as a zip file or a jar file, it must be saved on the hard disk. The file must be included in the class path of Java. If the plug-in comes as a single class file it must be saved in a directory which is included in the Java class path. The class path is typically specified in the script used for launching. The name appearing in the table above is the name to be specified when installing the plug-in.

 

Under Microsoft Windows a plug-in coming as a zip file can be unzipped to the UserPlugins directory (see the manual for further details).

 

Writing your own plug-ins

If you want to write plug-ins yourself, you may consult the automatically generated JavaDoc documentation online (also installed locally by the Windows installer). It has to be un-zipped in an empty directory, and afterwards you can load the index.html file in a browser. As a further service you may use the sample code for StandardPlugin.java as a template for writing your own plug-in. The corresponding compiled class file is included with the software at download, but it has to be installed as a plug-in as described in the manual through the "Edit"/"Installed plugins" menu item.