Previous Page: CPXNETdelset First PageNext Page: CPXNETfreeprob

CPXNETextract


Description

This function finds an embedded network in the LP stored in a CPLEX LP problem object and copies it as a network to the CPLEX network problem object, net. The extraction algorithm is controlled by the environment parameter CPX_PARAM_NETFIND.

If the LP problem object has a basis, an attempt is made to copy the basis to the network object. However, this may fail if the statuses corresponding to the rows and columns of the subnetworks do not form a basis. Even if the entire LP is a network, it may not be possible to load the basis to the network object if none of the slack or artificial variables are basic.

Return Value

If the operation is successful, CPXNETextract() returns the value 0; if not, it returns a nonzero value to indicate an error.

Synopsis

int CPXNETextract (CPXENVptr env,
                   CPXNETptr net,
                   CPXLPptr lp,
                   int *colmap,
                   int *rowmap);

Arguments


CPXENVptr env
The pointer to the CPLEX environment as returned by one of the CPXopenCPLEX routines.

CPXNETptr net
A pointer to a CPLEX network problem object as returned by CPXNETcreateprob().

CPXLPptr lp
A pointer to a CPLEX LP problem object as returned by CPXcreateprob().

int *colmap
If not NULL, after completion colmap[i] will contain the index of the LP column that has been mapped to arc i. If colmap[i] < 0, arc i corresponds to the slack variable for row -colmap[i]-1.

The size of colmap must be at leastCPXnumcols(env, lp) + CPXnumrows(env, lp).

int *rowmap
If not NULL, after completion rowmap[i] will contain the index of the LP row that has been mapped to node i. If colmap[i] < 0, node i is a dummy node that has no corresponding row in the LP.

The size of rowmap must be least CPXnumrows(env, lp) + 1.

Example

status = CPXNETextract (env, net, lp, colmap, rowmap);
Previous Page: CPXNETdelset First PageNext Page: CPXNETfreeprob