public class KieslingUtilitarianConsumerAgentAdoptionDecisionProcess extends UtilitarianConsumerAgentAdoptionDecisionProcess
associatedUtilityFunction
Constructor and Description |
---|
KieslingUtilitarianConsumerAgentAdoptionDecisionProcess(double rangeEpsilon,
UtilityFunction utilityFunctionUsed)
Constructor for the utilitarian decision process based on Kiesling
|
Modifier and Type | Method and Description |
---|---|
boolean |
betterProductAvailable(SimulationContainer simulationContainer,
ConsumerAgent consumerAgent,
Product productToCompare,
java.util.Set<Product> potentialProducts,
double systemTime)
Method to determine whether a product is at least as good as all products within a given set.
|
protected double |
calculateMaxUtility(SimulationContainer simulationContainer,
ConsumerAgent consumerAgent,
double systemTime)
Method to calculate the maximal (pertubated) utility a product can obtain for consumerAgent at systemTime
|
protected double |
calculateUtility(SimulationContainer simulationContainer,
Product product,
ConsumerAgent consumerAgent,
double systemTime)
Method to calculate the normalized utility of the given product for consumerAgent at systemTime
by summing over the partial utilities of each product attribute and distorting them by
a (uniformly) random value within [-rangeEpsilon, rangeEpsilon]
|
double |
getRangeEpsilon() |
Product |
makeProductAdoptionDecision(SimulationContainer simulationContainer,
ConsumerAgent consumerAgent,
java.util.Set<Product> potentialProducts,
double systemTime)
Decision method that decides which product has the highest (randomly pertubated) utility and makes the consumerAgent adopt it
|
getUtilityFunctionUsed
public KieslingUtilitarianConsumerAgentAdoptionDecisionProcess(double rangeEpsilon, UtilityFunction utilityFunctionUsed)
rangeEpsilon
- the (maximal) magnitude of the random deviation of calculated product utilityutilityFunctionUsed
- the utility function used to calculate the utility of a product for the consumer agentpublic double getRangeEpsilon()
public boolean betterProductAvailable(SimulationContainer simulationContainer, ConsumerAgent consumerAgent, Product productToCompare, java.util.Set<Product> potentialProducts, double systemTime)
betterProductAvailable
in class ConsumerAgentAdoptionDecisionProcess
simulationContainer
- The container in which the model runsconsumerAgent
- The agent who is to evaluate the given productsproductToCompare
- The product for which a better product shall be foundpotentialProducts
- The set of product which which productToCompare is compared withsystemTime
- The current time of the simulationpublic Product makeProductAdoptionDecision(SimulationContainer simulationContainer, ConsumerAgent consumerAgent, java.util.Set<Product> potentialProducts, double systemTime)
makeProductAdoptionDecision
in class ConsumerAgentAdoptionDecisionProcess
simulationContainer
- The container the model runs inconsumerAgent
- The agent for with whose preferences and perceptions the utility is calculated and which adoptspotentialProducts
- The products entering the decision processsystemTime
- The current time of the simulationjava.lang.IllegalArgumentException
- Will be thrown when no potential products are givenprotected double calculateUtility(SimulationContainer simulationContainer, Product product, ConsumerAgent consumerAgent, double systemTime)
calculateUtility
in class UtilitarianConsumerAgentAdoptionDecisionProcess
simulationContainer
- The container the model runs inconsumerAgent
- The agent for with whose preferences and perceptions the utility is calculated and which adoptsproduct
- The product for which the utility is calculatedsystemTime
- The current time of the simulationprotected double calculateMaxUtility(SimulationContainer simulationContainer, ConsumerAgent consumerAgent, double systemTime)
simulationContainer
- The container the model runs inconsumerAgent
- The agent for with whose preferences and perceptions the utility is calculated and which adoptssystemTime
- The current time of the simulation