public class UserMerit extends AbstractMerit
UserShare#SHAREREQUEST, and the actual user share, the user name
augmented with UserShare#SHARECURRENT. The difference in this
fractional shares is shifted by KEY_OFFSET to positive values. It
is then multiplied with the KEY_IMPACT to gain the actual merit.
Merits below zero are set to zero.
tsme(t) = impact·∑user(offset+(request-actual)α)userδuserme
| Modifier and Type | Field and Description |
|---|---|
private static double |
DEFIMPACT
Default value for the priority impact.
|
private static double |
DEFOFFSET
Default value for the user merit offset.
|
private static double |
DEFSTEEPNESS
Default value for the priority impact.
|
private static String |
DEFUSERREQUEST
Default value for the requested user share parameter name.
|
private static String |
DEFUSERSHARE
Default value for the current user share parameter name.
|
static String |
KEY_IMPACT
The key linked to the impact of the user merit.
|
static String |
KEY_OFFSET
The key linked to the offest in the user merit.
|
static String |
KEY_STEEPNESS
The key linked to the steepness of time share inhomogenities.
|
static String |
KEY_USERREQUEST
The name of the paramter pointing to the requested user share.
|
static String |
KEY_USERSHARE
The name of the paramter pointing to the current user share.
|
KEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATORCONFIG, KEY_CLASS| Constructor and Description |
|---|
UserMerit(Map prop)
Constructs a new user merit, defaulting the
KEY_IMPACT
parameter. |
| Modifier and Type | Method and Description |
|---|---|
double |
getMerit(GlobalGrouping set,
Appointable target,
Collection ignore,
long dummy)
Calculates the actual gain from the user group of the target.
|
createMerit, getInitializer, initMeritaugment, augment, augment, augment, augment, clone, defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsEnums, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, initProperties, isNew, parseObject, parseObject, reload, reload, removeProperty, requires, rescanned, setObject, setProperties, setProperty, stringProperties, toStringpublic static final String KEY_IMPACT
public static final String KEY_OFFSET
public static final String KEY_STEEPNESS
public static final String KEY_USERSHARE
public static final String KEY_USERREQUEST
private static final double DEFIMPACT
private static final double DEFOFFSET
private static final double DEFSTEEPNESS
private static final String DEFUSERSHARE
private static final String DEFUSERREQUEST
public UserMerit(Map prop)
KEY_IMPACT
parameter. Proper creation should be
done using the
AbstractMerit.createMerit(java.util.Map<java.lang.String, java.lang.String>)
method. This create method also takes care of proper parameter
overloading.public double getMerit(GlobalGrouping set, Appointable target, Collection ignore, long dummy)
KEY_OFFSET parameter allows to shift even targets that
constribute to a user group that has already exploited its share into
positive merits. The general use of this parameter to provide a sort
of a cutoff high-shar. An offset of zero forbids target selection that
belongs to a user group that has its share on the observing time
already observed. An offset of one makes target selection even in the
most drastically shift of the user share possible. Values higher than
one only dilute the effectiveness of the user share.set - Current observing conditions.target - The actual target.ignore - All targets, observable or not.dummy - The relevant time span in ms.