%==========================================================================
% File Name     : <CandidateGeneration.m>
% Usage         : Lists = CandidateGeneration(Sets, Lists, iac, problem, isLP)
% Description   : This function generates all possible candidates from the
% current active set and the minimal representation of the critical region.
% Note that knowning that a mp-LP is considered drastically reduces the
% number of candidates. The input 'const_track' links the minimal
% representation to the corresponding constraints of the problem, 'iac' is
% the active set, 'Infeas' is the list of infeasible nodes (pruning
% according to Gupta et al. (2011) and 'isLP' denotes whether the solution
% is a mp-LP, thus drastically reducing the number of combinations.
%
% Additionally, note the following: in Toendel et al. (2003), the authors
% state in Theorem 2 that you can directly predict the next active set
% based on 'const_track'. However, this is not implemented here, because
% the theorem requires that (a) LICQ holds on the facet itself (i.e. no
% degeneracy) and (b) no weakly active constraints. We will investigate
% whether we can enforce these conditions, as this will drastically reduce
% the number of active sets. However, for the time being we consider all
% possible combinations.
%--------------------------------------------------------------------------
% Author        : Richard Oberdieck, Nikolaos A. Diangelakis
% Office        : Giesecke Engineering Research Building, Texas A&M, USA.
% Mail          : paroc@tamu.edu
%--------------------------------------------------------------------------
% Last Revision | Author  | Description
%---------------+---------+------------------------------------------------
% 26-Nov-2015   | RO      | Initial version
%==========================================================================