stella.xml
Class UserMerit

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by stella.AbstractMerit
                  extended by stella.xml.UserMerit
All Implemented Interfaces:
Serializable, Cloneable, Meriting, Initializable, LocalizedSupplying, PropertySupplying, ResourceSupplying

public class UserMerit
extends AbstractMerit

A user merit for balancing user-based target selection. This merit assumes that the handed over parameter cluster contains two parameters, an (imutable) requested user share, named according to the user name augmented with 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
   

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
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.
 
Fields inherited from class util.PropertyBundles
KEY_LOCALECOUNTRY, KEY_LOCALELANGUAGE, KEY_RESOURCEBUNDLES
 
Fields inherited from class util.PropertyResources
KEY_NOINITONCREATE, localurl, locate, POSTFIX_DIR, POSTFIX_EXT, POSTFIX_FILE, POSTFIX_LIST, POSTFIX_URL, urlset
 
Fields inherited from class util.PropertyContainer
KEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATOR
 
Fields inherited from interface util.ResourceSupplying
KEY_URLRESOURCES, KEY_URLUSECONFIG, KEY_URLUSECURRENT, KEY_URLUSEHOME
 
Fields inherited from interface util.PropertySupplying
CONFIG, KEY_CLASS
 
Constructor Summary
UserMerit(Map prop)
          Constructs a new user merit, defaulting the KEY_IMPACT parameter.
 
Method Summary
 double getMerit(ParameterClustering set, TargetDefinition target, Collection ignore, long dummy)
          Calculates the actual gain from the user group of the target.
 
Methods inherited from class stella.AbstractMerit
createMerit, getInitializer, initMerit
 
Methods inherited from class util.PropertyBundles
clone, getLocalized, getLocalized, getLocalizedString, getLocalizedString, loadResource
 
Methods inherited from class util.PropertyResources
createFrom, createFrom, createFrom, getApplet, getAsResources, getLocalClassLoader, getPropertiesToKey, getPropertiesToKey, getResource, getResourceAsStream, getResourceFromKey, getResources, init, keyCreate, keyCreate, reload, setApplet
 
Methods inherited from class util.PropertyContainer
augment, augment, augment, 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, isNew, parseObject, reload, removeProperty, rescanned, setObject, setProperties, setProperty, stringProperties, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface util.ResourceSupplying
getResource, getResourceAsStream, getResources
 
Methods inherited from interface util.PropertySupplying
defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, parseObject, removeProperty, setObject, setProperty, stringProperties
 
Methods inherited from interface util.Initializable
init
 

Field Detail

KEY_IMPACT

public static final String KEY_IMPACT
The key linked to the impact of the user merit.

See Also:
Constant Field Values

KEY_OFFSET

public static final String KEY_OFFSET
The key linked to the offest in the user merit.

See Also:
Constant Field Values

KEY_STEEPNESS

public static final String KEY_STEEPNESS
The key linked to the steepness of time share inhomogenities.

See Also:
Constant Field Values

KEY_USERSHARE

public static final String KEY_USERSHARE
The name of the paramter pointing to the current user share.

See Also:
Constant Field Values

KEY_USERREQUEST

public static final String KEY_USERREQUEST
The name of the paramter pointing to the requested user share.

See Also:
Constant Field Values

DEFIMPACT

private static final double DEFIMPACT
Default value for the priority impact.

See Also:
Constant Field Values

DEFOFFSET

private static final double DEFOFFSET
Default value for the user merit offset.

See Also:
Constant Field Values

DEFSTEEPNESS

private static final double DEFSTEEPNESS
Default value for the priority impact.

See Also:
Constant Field Values

DEFUSERSHARE

private static final String DEFUSERSHARE
Default value for the current user share parameter name.

See Also:
Constant Field Values

DEFUSERREQUEST

private static final String DEFUSERREQUEST
Default value for the requested user share parameter name.

See Also:
Constant Field Values
Constructor Detail

UserMerit

public UserMerit(Map prop)
Constructs a new user merit, defaulting the KEY_IMPACT parameter. Proper creation should be done using the AbstractMerit.createMerit(java.util.Map) method. This create method also takes care of proper parameter overloading.

Method Detail

getMerit

public double getMerit(ParameterClustering set,
                       TargetDefinition target,
                       Collection ignore,
                       long dummy)
Calculates the actual gain from the user group of the target. The gain is higher if the actual user group share is below the requested share. The 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.

Parameters:
set - Current observing conditions.
target - The actual target.
ignore - The list of targetes relevant to the actual target.
dummy - The relevant time span in ms.