monit may be used to print out intermediate output and to affect the course of the computation. Specifically, it allows you to specify a realistic value for the cut-off value (see [Description]) and to terminate the algorithm. If you do not require any intermediate output, have no estimate of the cut-off value and require an exhaustive tree search then monit may be the dummy method H02CBU.

Syntax

C#
public delegate void H02CB_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 H02CB_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 H02CB_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 H02CB_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: specifies the number of integer solutions obtained so far.
nodes
Type: System..::..Int32
On entry: specifies the number of nodes (sub-problems) solved so far.
depth
Type: System..::..Int32
On entry: specifies the depth in the tree of sub-problems the algorithm has now reached.
obj
Type: System..::..Double
On entry: specifies the value of the objective function of the end of the latest sub-problem.
x
Type: array<System..::..Double>[]()[][]
On entry: specifies the values of the independent variables at the end of the latest sub-problem.
bstval
Type: System..::..Double%
On entry: normally specifies the value of the best integer solution found so far.
On exit: may be set a cut-off value if you are an experienced user as follows. Before an integer solution has been found bstval will be set by h02cb 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: specifies the solution vector which gives rise to the best integer solution value so far discovered.
bl
Type: array<System..::..Double>[]()[][]
On entry: bl[i] specifies the current lower bounds on the variable xi.
bu
Type: array<System..::..Double>[]()[][]
On entry: bu[i] specifies the current upper bounds on the variable xi.
n
Type: System..::..Int32
On entry: specifies the number of variables.
halt
Type: System..::..Boolean%
On entry: will have the value false.
On exit: if halt is set to true, e04nf will be brought to a halt with ifail=-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%
On entry: unchanged from previous call.
On exit: may be used by you 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