Class LSVMBidder
- java.lang.Object
-
- org.spectrumauctions.sats.core.model.SATSBidder
-
- org.spectrumauctions.sats.core.model.lsvm.LSVMBidder
-
- All Implemented Interfaces:
java.io.Serializable,org.marketdesignresearch.mechlib.core.bidder.Bidder,org.marketdesignresearch.mechlib.instrumentation.MipInstrumentationable
public final class LSVMBidder extends SATSBidder
- Author:
- Fabio Isler
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.spectrumauctions.sats.core.model.SATSBidder
DEFAULT_DEMAND_QUERY_EPSILON, DEFAULT_DEMAND_QUERY_TIME_LIMIT
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doublecalculateFactor(int size)This factor is used to calculate the bonus for having adjacent items.java.math.BigDecimalcalculateValue(org.marketdesignresearch.mechlib.core.Bundle bundle)Returns the value this bidder has for a specific bundle.LSVMBidderdrawSimilarBidder(RNGSupplier rngSupplier)java.util.Map<java.lang.Long,java.math.BigDecimal>getBaseValues()java.util.LinkedHashSet<org.marketdesignresearch.mechlib.core.Bundle>getBestBundles(org.marketdesignresearch.mechlib.core.price.Prices prices, int maxNumberOfBundles, boolean allowNegative)java.lang.StringgetDescription()com.google.common.collect.ImmutableSet<LSVMLicense>getProximity()<T extends BiddingLanguage>
TgetValueFunction(java.lang.Class<T> clazz, RNGSupplier rngSupplier)LSVMWorldgetWorld()voidrefreshReference(World world)To prevent from creating too many identical world instances, worlds are not serialized and deserialized with the bidder
As a temporary solution, the world instance is re-added after deserialization by calling this method.
This method will be removed in a later version and be done automatically during deserialization.-
Methods inherited from class org.spectrumauctions.sats.core.model.SATSBidder
canEqual, equals, getId, getLongId, getMipInstrumentation, getName, getPopulation, getSetup, getSetupType, getShortDescription, getStrategy, getValue, getValueFunction, getValueFunction, getWorldId, hashCode, setMipInstrumentation, setStrategy, store, toString
-
-
-
-
Method Detail
-
getProximity
public com.google.common.collect.ImmutableSet<LSVMLicense> getProximity()
-
calculateValue
public java.math.BigDecimal calculateValue(org.marketdesignresearch.mechlib.core.Bundle bundle)
Description copied from class:SATSBidderReturns the value this bidder has for a specific bundle.- Specified by:
calculateValuein classSATSBidder- Parameters:
bundle- the bundle for which the value is asked- Returns:
- bidder specific value for this bundle
-
getValueFunction
public <T extends BiddingLanguage> T getValueFunction(java.lang.Class<T> clazz, RNGSupplier rngSupplier) throws UnsupportedBiddingLanguageException
- Specified by:
getValueFunctionin classSATSBidder- Throws:
UnsupportedBiddingLanguageException
-
getWorld
public LSVMWorld getWorld()
- Specified by:
getWorldin classSATSBidder- Returns:
- World to which this bidder belongs. The implementing Bidder class, overriding this method, should return a world type corresponding to the specific model.
- See Also:
SATSBidder.getWorld()
-
refreshReference
public void refreshReference(World world)
Description copied from class:SATSBidderTo prevent from creating too many identical world instances, worlds are not serialized and deserialized with the bidder
As a temporary solution, the world instance is re-added after deserialization by calling this method.
This method will be removed in a later version and be done automatically during deserialization.- Specified by:
refreshReferencein classSATSBidder
-
drawSimilarBidder
public LSVMBidder drawSimilarBidder(RNGSupplier rngSupplier)
- Specified by:
drawSimilarBidderin classSATSBidder
-
getBaseValues
public java.util.Map<java.lang.Long,java.math.BigDecimal> getBaseValues()
-
calculateFactor
public double calculateFactor(int size)
This factor is used to calculate the bonus for having adjacent items.Note: The current interpretation of Scheffel et al. (2010) is such that a bidder has no positive marginal value for any licenses he is not interested in. (I.e. adding or removing such a license from a bundle does not change the value of the bundle). There are mainly two arguments for this interpretation: 1. Scheffel et al. (2010) states that the bidding space of the regional bidder consists of 63 - 2047 packages (bundles). As a regional bidder is interested in 6 to 11 licenses this makes clear that the bidding space of a regional bidder does not include any licences he is not interested in 2. This interpretation follows the implementation of GSVM where items of no interest have no influence on the bundle values. The interpretation which was used to implement the legacy version of LVSM is stated as Note II. In addition to this note you may notice that licenses where a bidder has no interest in, do not only affect the computation of maximally connected subsets of licenses, but also increases the synergies in the legacy version. I.e. assume a bundle of 3 licenses DEJ. The bidder is only interested in licenses E and J. (see table 1 in Scheffel et al. (2010)). In the current version no synergies will be applied to this package. The legacy version will apply synergies for 3 licenses. Note II could also be interpreted towards that only synergies for 2 licenses are applied and the license of no interest (D) is only used to compute maximally connected subpackages. This last interpretation is not implemented in any version of LSVM in sats. Note II: To our knowledge, Scheffel et al. (2010) do not specify the behavior in case a license is added which the bidder does not have any interest in. This one license could connect two subsets of items which the bidder is interested in, creating one larger subset, thus increasing the bonus for adjacent items. A possible extension of the model is to adjust the bonus accordingly in this situation. Currently, SATS doesn't prevent this behavior, sticking to the original model.
-
getBestBundles
public java.util.LinkedHashSet<org.marketdesignresearch.mechlib.core.Bundle> getBestBundles(org.marketdesignresearch.mechlib.core.price.Prices prices, int maxNumberOfBundles, boolean allowNegative)
-
getDescription
public java.lang.String getDescription()
- Specified by:
getDescriptionin interfaceorg.marketdesignresearch.mechlib.core.bidder.Bidder- Overrides:
getDescriptionin classSATSBidder
-
-