To provide feed-back on the progress of the branch and bound process. Additionally monit provides, via its parameter halt, the ability to terminate the process. (You might choose to do this when an integer solution is found, rather than search for a better solution.) If you do not require any intermediate output then monit may be the dummy method (H02CEY not in this release).

Syntax

C#
public delegate void H02CE_MONIT(
	int intfnd,
	int nodes,
	int depth,
	double obj,
	double[] x,
	ref double bstval,
	double[] bstsol,
	double[] bl,
	double[] bu,
	int n,
	ref bool halt,
	ref int count
)
Visual Basic
Public Delegate Sub H02CE_MONIT ( _
	intfnd As Integer, _
	nodes As Integer, _
	depth As Integer, _
	obj As Double, _
	x As Double(), _
	ByRef bstval As Double, _
	bstsol As Double(), _
	bl As Double(), _
	bu As Double(), _
	n As Integer, _
	ByRef halt As Boolean, _
	ByRef count As Integer _
)
Visual C++
public delegate void H02CE_MONIT(
	int intfnd, 
	int nodes, 
	int depth, 
	double obj, 
	array<double>^ x, 
	double% bstval, 
	array<double>^ bstsol, 
	array<double>^ bl, 
	array<double>^ bu, 
	int n, 
	bool% halt, 
	int% count
)
F#
type H02CE_MONIT = 
    delegate of 
        intfnd : int * 
        nodes : int * 
        depth : int * 
        obj : float * 
        x : float[] * 
        bstval : float byref * 
        bstsol : float[] * 
        bl : float[] * 
        bu : float[] * 
        n : int * 
        halt : bool byref * 
        count : int byref -> unit

Parameters

intfnd
Type: System..::..Int32
On entry: contains the number of integer solutions obtained so far.
nodes
Type: System..::..Int32
On entry: contains the number of nodes (sub-problems) solved so far.
depth
Type: System..::..Int32
On entry: contains the depth reached in the tree of problems.
obj
Type: System..::..Double
On entry: contains the solution value to the sub-problem at this node.
x
Type: array<System..::..Double>[]()[][]
On entry: contains the solution vector to the sub-problem at this node.
bstval
Type: System..::..Double%
On entry: contains the value of the objective function corresponding to the best integer solution obtained so far. If no integer solution has been found bstval contains the largest machine representable number (see x02al).
On exit: may be set to a cut-off value, if you are a sophisticated user, as follows. Before an integer solution has been found bstval will be set by h02ce to the largest machine representable number (see x02al). If you know that the solution being sought is a much smaller number, then bstval may be set to this number as a cut-off value (see []). Beware of setting bstval too small, since then no integer solutions will be discovered. Also make sure that bstval is set using a statement of the form
IF (intfnd.EQ.0) bstval= cut-off value
on entry to monit. This statement will not prevent the normal operation of the algorithm when subsequent integer solutions are found. It would be a grievous mistake to unconditionally set bstval and if you have any doubts whatsoever about the correct use of this parameter then you are strongly recommended to leave it unchanged.
bstsol
Type: array<System..::..Double>[]()[][]
On entry: contains the value of the best integer solution obtained so far.
bl
Type: array<System..::..Double>[]()[][]
On entry: contains the current lower bounds on the variables at this point.
bu
Type: array<System..::..Double>[]()[][]
On entry: contains the current upper bounds on the variables at this point.
n
Type: System..::..Int32
On entry: contains the number of variables in the minimization problem.
halt
Type: System..::..Boolean%
On entry: will have the value false.
On exit: if halt is set to true, e04nk will be brought to a halt with ifail exit -1. This facility may be useful if you are content with any integer solution, or with any integer solution that fits certain criteria. Under these circumstances setting halt=true can save considerable unnecessary computation.
count
Type: System..::..Int32%
count may be used to save the last value of intfnd. If a subsequent call of monit has a value of intfnd which is greater than count, then you know that a new integer solution has been found at this node.

See Also