public class DeliberativeConsumerAgentAdoptionDecisionProcess extends UtilitarianConsumerAgentAdoptionDecisionProcess
associatedUtilityFunction
Constructor and Description |
---|
DeliberativeConsumerAgentAdoptionDecisionProcess(UtilityFunction associatedUtilityFunction,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Double>> importanceAttitudeProtoMap) |
Modifier and Type | Method and Description |
---|---|
boolean |
betterProductAvailable(SimulationContainer simulationContainer,
ConsumerAgent consumerAgent,
Product productToCompare,
java.util.Set<Product> potentialProducts,
double systemTime)
Method to see if any of the potential products have a higher utility for the consumerAgent at systemTime than the productToCompare,
based on DeliberativeDecision utilitarian approach
|
protected double |
calculateUtility(SimulationContainer simulationContainer,
Product product,
ConsumerAgent consumerAgent,
double systemTime)
Method to calculate the utility of the given product for the consumerAgent at systemTime using the DeliberativeDecision utility function.
|
Product |
makeProductAdoptionDecision(SimulationContainer simulationContainer,
ConsumerAgent consumerAgent,
java.util.Set<Product> potentialProducts,
double systemTime)
Agent will make a decision to adopt one of the products entering this decision process based on the process of Deliberative Decision if more than one product is available.
|
getUtilityFunctionUsed
public DeliberativeConsumerAgentAdoptionDecisionProcess(UtilityFunction associatedUtilityFunction, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Double>> importanceAttitudeProtoMap)
public Product makeProductAdoptionDecision(SimulationContainer simulationContainer, ConsumerAgent consumerAgent, java.util.Set<Product> potentialProducts, double systemTime) throws java.lang.IllegalArgumentException
makeProductAdoptionDecision
in class ConsumerAgentAdoptionDecisionProcess
simulationContainer
- The container the simulation runs inconsumerAgent
- The consumer agent making the decisionpotentialProducts
- The products eligible for the adoption of this agentsystemTime
- The current time of the simulationjava.lang.IllegalArgumentException
- Will be thrown when no potential products are givenpublic boolean betterProductAvailable(SimulationContainer simulationContainer, ConsumerAgent consumerAgent, Product productToCompare, java.util.Set<Product> potentialProducts, double systemTime)
betterProductAvailable
in class ConsumerAgentAdoptionDecisionProcess
simulationContainer
- The container the simulation runs inconsumerAgent
- The consumer agent making the decisionproductToCompare
- The product of interest (that is compared to the other products)potentialProducts
- The products the productToCompare is compared tosystemTime
- The current time of the simulationprotected double calculateUtility(SimulationContainer simulationContainer, Product product, ConsumerAgent consumerAgent, double systemTime) throws java.lang.IllegalArgumentException
calculateUtility
in class UtilitarianConsumerAgentAdoptionDecisionProcess
simulationContainer
- The container the simulation is contained inproduct
- The product whose utility is to be calculatedconsumerAgent
- The consumer agent for which the utility is calculatedsystemTime
- The time at which the utility is calculatedjava.lang.IllegalArgumentException