Choices is an abstract class for selecting choices according to given
probabilities in the discrete choice modeling framework. Opus package opus_core supports
two classes in this category. random_choices returns an index of
randomly selected choices, one per observation. The number of alternatives is
simply derived from the second dimension of the array of probabilities, which
is passed as argument to the run() method. random_choices_from_index allows one to define an index array whose
elements are returned as the selected choices. This index array should be
contained in the argument resources (dictionary) as an entry index. This can be
useful for example if we are not dealing with the whole set of alternatives,
but rather with a subsampled set.