MLHMP software
Multi-level hierarchic Markov processes
Updated version
This page describes and links to the MLHMP software in the current version. 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.
General description
The MLHMP software may be regarded as a heavily improved and generalized
upgrade of the old HIERARKI
software for the DOS platform. On the other hand it has so many additional
facilities that it has very little in common with the DOS program. The
main purpose is to demonstrate the structure, parameter needs and optimization
methods of hierarchic Markov processes. It may however also be used for
real models. 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 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
A script for the native windows installer is available. Just download and run
the mlhmp.msi install file. It installs the
software and all plugins automatically and creates a shortcut in the windows
start menu.
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:
- Create a new directory.
- Download the mlhmp.jar file and save it in
the new directory just created.
- Download the Limid.jar
file (from esthauge.dk) and save it in
the same directory.
- Create a script 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.
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:
| 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.kvl.ihh.prodstyr.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 |
plugins.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.kvl.ihh.prodstyr.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 conference
paper. |
plugins.steer.SteerModel |
plugins.jar |
| A small toy example of a dairy cow replacement model.
It resembles the example described in Dina
Notat No. 49. |
plugins.dairy.DairyCow |
plugins.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. Writing your own plug-ins
If you want to write plug-ins yourself, you may consult the automatically
generated JavaDoc documentation online or
download it as a zip-file. 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.
|