edu.ntnu.ecosim.agents.consumers
Class BehaviourModel

java.lang.Object
  extended by edu.ntnu.ecosim.agents.consumers.BehaviourModel

public class BehaviourModel
extends java.lang.Object

This behaviour model is based on "Diffusion of innovation theory". The behaviour will reflect the "willingness" to adopt the new technology, based on the characteristics of each user type.

Author:
Martin

Constructor Summary
protected BehaviourModel(Memory memory, Market m)
          This is the constructor of the Behaviour Model The category of the consumer is selected based on the technology acceptance curve.
 
Method Summary
protected  double[] calculateInnovationsEffects(ServiceProvider sp, double valuation, int nofFriends)
          Method to calculate the innvations network effects for the specified provider
protected  double calculateValuation()
          Method to calculate the valuation of a basic subscription (the intrisic value of a subscription)
protected  double getBindingFee(ServiceProvider sp)
          A method to get the binding fee of a given service provider.
protected  int getInfluence()
          Method to get the influence this consumer has on others
protected  int getMaxFriends()
          Method to get the maximum number of friends this consumer may have.
protected  int getNofSubscribers(ServiceProvider sp, boolean isCurrent)
          This method adds noise to the number of subscribers as percieved by the consumers.
protected  double getSubscriptionFee(ServiceProvider sp, boolean isCurrent)
          A method to get the subscription fee of the service provider.
protected  void searchForNewProviders()
          Method used to search for new providers in the market.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BehaviourModel

protected BehaviourModel(Memory memory,
                         Market m)
This is the constructor of the Behaviour Model The category of the consumer is selected based on the technology acceptance curve.

Parameters:
memory - the memory of the consumer
m - the market the consumer operates within
Method Detail

calculateInnovationsEffects

protected double[] calculateInnovationsEffects(ServiceProvider sp,
                                               double valuation,
                                               int nofFriends)
Method to calculate the innvations network effects for the specified provider

Parameters:
sp - The service provider
valuation - The valuation of a basic subscription
nofFriends - the number of friends this consumer has
Returns:
A double giving the innovation effects pr. friend using this provider

calculateValuation

protected double calculateValuation()
Method to calculate the valuation of a basic subscription (the intrisic value of a subscription)

Returns:
a double giving the value

getBindingFee

protected double getBindingFee(ServiceProvider sp)
A method to get the binding fee of a given service provider.

Returns:
the binding fee of the provider

getInfluence

protected int getInfluence()
Method to get the influence this consumer has on others

Returns:
the influence

getMaxFriends

protected int getMaxFriends()
Method to get the maximum number of friends this consumer may have.

Returns:
the max number of friends

getNofSubscribers

protected int getNofSubscribers(ServiceProvider sp,
                                boolean isCurrent)
This method adds noise to the number of subscribers as percieved by the consumers. Laggards have less correct information than innovators. At most there may be 100% noise, which means that laggards may perceive a company with many subscribers to have none

Parameters:
sp - The service provider to get information from
isCurrent - Whether or not this is the current provider
Returns:
The assumed number of subscribers

getSubscriptionFee

protected double getSubscriptionFee(ServiceProvider sp,
                                    boolean isCurrent)
A method to get the subscription fee of the service provider.

Parameters:
sp - the service provider
isCurrent - Whether or not this is the current provider
Returns:
the subscription fee

searchForNewProviders

protected void searchForNewProviders()
Method used to search for new providers in the market. The rate of the search is configurable through the configuration file.